gpgme_op_keylist_start: error: Invalid crypto engine <GPGME>
Hans-Christoph Steiner
hans at guardianproject.info
Mon Oct 22 22:19:06 CEST 2012
On 10/22/2012 05:13 AM, Werner Koch wrote:
> Hi,
>
> looking closer at the logs shows that none of the tools return any
> information for a call with EGNINE --version.
>
> <0x0391> _gpgme_io_spawn: check: path=0x4a2ea798, argv[ 0] = /data/data/info.guardianproject.gpg/app_opt/bin/gpg2
> <0x0391> _gpgme_io_spawn: check: path=0x4a2ea798, argv[ 1] = --version
> <0x0391> _gpgme_io_spawn: check: path=0x4a2ea798, fd[0] = 0x26 -> 0x1
>
> Setup everything for an exec. Register to connect stdout of gpg2 to the
> pipe.
>
> <0x0391> _gpgme_io_spawn: check: path=0x4a2ea798, waiting for child
> process pid=941
>
> Wait in the parent for gpg to finish.
>
> <0x03ae> gpgme:max_fds: call: 0=0x0, max fds=1024 (RLIMIT_NOFILE)
>
> The child is about to close all file descriptors. Actually this is the
> grandchild because gpgme uses double forking to let init reap the
> children.
>
> <0x0391> _gpgme_io_close: enter: fd=0x26
> <0x0391> _gpgme_io_close: leave: result=0
>
> Close other end of the pipe in the parent.
>
> <0x0391> _gpgme_io_spawn: leave: result=0
>
> Finished.
>
> <0x0391> _gpgme_io_read: enter: fd=0x25, buffer=0xbeac65e4, count=79
> <0x0391> _gpgme_io_read: leave: result=0
>
> Read end of the pipe was called with a 79 byte buffer but returned
> nothing. Here is what you should have seen between these two log lines:
>
> <0x0391> _gpgme_io_read: check: 6770672028476e75 50472920312e342e gpg (GnuPG) 1.4
> [...]
>
>
> I assume you already verified that
>
> $ /data/data/info.guardianproject.gpg/app_opt/bin/gpg2 --version
I have a menu item in the test Android app that downloads a key from a
keyserver using the gpg2 command line binary. That has been working fine for
a while now. In case you're curious, I ran this from 'adb shell', i.e. a
terminal to an Android emulator:
# export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/data/info.guardianproject.gpg/app_opt/lib
# /data/data/info.guardianproject.gpg/app_opt/bin/gpg2 --version
gpg (GnuPG) 2.1.0-beta82
libgcrypt 1.6.0-git38fcd59
NOTE: THIS IS A DEVELOPMENT VERSION!
It is only intended for test purposes and should NOT be
used in a production environment or with production keys!
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA
Cipher: 3DES, CAST5, BLOWFISH, AES128, AES192, AES256, TWOFISH, CAMELLIA128,
CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB
> return something to stdout. The next step would be to enable the trace
> calls in src/posix-io.c:gpgme_io_spawn . The are all "#if 0"-ed to
> avoid problems with pthread. Change the all to "#if 1" and check the
> logs again.
I'll run that now.
> How long would it take me to setup a test environment? Does that make
> sense?
If you are interested in GnuPG on Android beyond just this problem, I think it
does make sense. If you are running a Debian-deriv, its not too bad to setup,
I think the whole thing might take no more than an hour, if you ignore the
Eclipse setup:
apt-get install ia32-libs (only if running amd64 64-bit)
apt-get install autoconf automake libtool transfig wget patch \
texinfo ant gettext build-essential bison
cd /path/to/folder/for/your/android/tools
wget https://dl.google.com/android/ndk/android-ndk-r8b-linux-x86.tar.bz2
tar xjf android-ndk-r8b-linux-x86.tar.bz2
wget https://dl.google.com/android/android-sdk_r20.0.3-linux.tgz
tar xjf android-sdk_r20.0.3-linux.tgz
I source a ~/.android/bashrc file to set the relevant vars for locating the
NDK and SDK, I attached the one I use.
Next you need to install setup an emulator, unless you have an Android phone
you want to use:
http://developer.android.com/sdk/installing/adding-packages.html Then it
should just be:
git clone https://github.com/guardianproject/gnupg-for-android
cd gnupg-for-android
. /path/to/your/android-bashrc
make -C external/ distclean
make -C external/ gnupg-install
make -C external/ gnupg-static
make -C external/ gpgme-install
make -C external/ android-assets
ndk-build
android update project --path . --target android-8 --name GnuPrivacyGuard
ant clean debug
adb install bin/info.guardianproject.gpg.GnuPrivacyGuard.apk
.hc
-------------- next part --------------
export NDK_BASE=/opt/android-ndk
export NDK_ROOT=$NDK_BASE
export NDK_TOOLCHAIN_BASE=${NDK_BASE}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
export NDK_SYSROOT=$NDK_BASE/platforms/android-$NDK_PLATFORM_VERSION/arch-arm
export SDK_BASE=/opt/android-sdk
export SDK_ROOT=$SDK_BASE
export SDK_TOOLS=${SDK_BASE}/tools
export SDK_PLATFORM_TOOLS=${SDK_BASE}/platform-tools
export PATH="${PATH}:${NDK_BASE}:${NDK_TOOLCHAIN_BASE}/bin:${SDK_TOOLS}:${SDK_PLATFORM_TOOLS}"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 937 bytes
Desc: OpenPGP digital signature
URL: </pipermail/attachments/20121022/f235ae19/attachment.pgp>
More information about the Gnupg-devel
mailing list