[Pkg-openssl-devel] Bug#431918: Bug#431918: openssl: multiple causes for libssl0.9.8 - unable to load crypto engines

Carsten Wolff carsten at wolffcarsten.de
Mon Jan 4 09:22:46 UTC 2010


Hi!

On Tuesday 22 December 2009, Kurt Roeckx wrote:
> On Tue, Dec 22, 2009 at 11:02:52AM +0100, Carsten Wolff wrote:
> Does the resulting shared object actually have an bind_engine
> symbol in it?  Try using objdump -T libpadlock.so to see if it
> has any.  Looking at the sources, only the capi and gmp engine
> seem to have that.

Nice hint. Attached is a text-file with some output showing that the symbol 
table is a lot larger, when compiled on debian-i386 compared to when compiled 
on debian-amd64. The VIA C3 and C7 where 32Bit CPUs, maybe the engine-
programmer did not expect a 64Bit VIA Nano?

> I believe that openssl should always use the padlock engine
> on such CPUs, but since I don't have any, I can't test this.

I would like that, too. Instead, openssl relies on the application to select a 
specific engine.

I will also attach the (ugly) patch for the debian package I use to produce a 
shared libpadlock.so (and to add SHA padlock support).

Regards,
Carsten
-- 
           /\-´-/\
          (  @ @  )
________o0O___^___O0o________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: package-openssl_0.9.8k-7_full-padlock-support.diff
Type: text/x-patch
Size: 23437 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-openssl-devel/attachments/20100104/f7fce671/attachment-0001.bin>
-------------- next part --------------
root at debian-amd64:~/openssl-shared# dpkg-source -x openssl_0.9.8k-7.dsc
root at debian-amd64:~/openssl-shared# cd openssl-0.9.8k/
root at debian-amd64:~/openssl-shared/openssl-0.9.8k# patch -p1 < ../package-openssl_0.9.8k-7_full-padlock-support.diff
root at debian-amd64:~/openssl-shared/openssl-0.9.8k# dpkg-buildpackage -uc -us
root at debian-amd64:~/openssl-shared/openssl-0.9.8k# objdump -T engines/libpadlock.so

engines/libpadlock.so:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000510 l    d  .init  0000000000000000              .init
0000000000000000  w   D  *UND*  0000000000000000              __gmon_start__
0000000000000000  w   D  *UND*  0000000000000000              _Jv_RegisterClasses
0000000000000000  w   DF *UND*  0000000000000000  GLIBC_2.2.5 __cxa_finalize
0000000000000630 g    DF .text  0000000000000002  OPENSSL_0.9.8 ENGINE_load_padlock
0000000000000000 g    DO *ABS*  0000000000000000  OPENSSL_0.9.8 OPENSSL_0.9.8
0000000000200940 g    D  *ABS*  0000000000000000  OPENSSL_0.9.8 _end
0000000000200930 g    D  *ABS*  0000000000000000  OPENSSL_0.9.8 _edata
0000000000200930 g    D  *ABS*  0000000000000000  OPENSSL_0.9.8 __bss_start
0000000000000510 g    DF .init  0000000000000000  OPENSSL_0.9.8 _init
0000000000000678 g    DF .fini  0000000000000000  OPENSSL_0.9.8 _fini




root at debian-i386:~/openssl-shared# dpkg-source -x openssl_0.9.8k-7.dsc
root at debian-i386:~/openssl-shared# cd openssl-0.9.8k/
root at debian-i386:~/openssl-shared/openssl-0.9.8k# patch -p1 < ../package-openssl_0.9.8k-7_full-padlock-support.diff
root at debian-i386:~/openssl-shared/openssl-0.9.8k# dpkg-buildpackage -uc -us
root at debian-i386:~/openssl-shared/openssl-0.9.8k# objdump -T engines/libpadlock.so

engines/libpadlock.so:     file format elf32-i386

DYNAMIC SYMBOL TABLE:
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_ex_data_implementation
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA224_Update                    
00000000      DF *UND*  00000000  OPENSSL_0.9.8 BIO_snprintf                     
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA1_Init                        
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA1_Final                       
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_set_ciphers               
00000000  w   D  *UND*  00000000              __gmon_start__                     
00000000  w   D  *UND*  00000000              _Jv_RegisterClasses
00000000      DF *UND*  00000000  GLIBC_2.0   realloc
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ERR_set_implementation
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_mem_functions
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA256_Init
00000000      DF *UND*  00000000  OPENSSL_0.9.8 EVP_CIPHER_CTX_flags
00000000      DF *UND*  00000000  GLIBC_2.0   memset
00000000      DF *UND*  00000000  GLIBC_2.0   free
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_dynlock_destroy_callback
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_set_id
00000000      DO *UND*  00000000  GLIBC_2.0   stderr
00000000      DF *UND*  00000000  GLIBC_2.0   memcpy
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_dynlock_lock_callback
00000000      DF *UND*  00000000  OPENSSL_0.9.8 RSA_verify
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA256_Update
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_locking_callback
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_get_static_state
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_set_digests
00000000      DF *UND*  00000000  OPENSSL_0.9.8 AES_set_decrypt_key
00000000      DF *UND*  00000000  GLIBC_2.0   fprintf
00000000      DF *UND*  00000000  OPENSSL_0.9.8 EVP_CIPHER_set_asn1_iv
00000000      DF *UND*  00000000  GLIBC_2.0   malloc
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_dynlock_create_callback
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ERR_clear_error
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA224_Final
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_free
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_new
00000000      DF *UND*  00000000  OPENSSL_0.9.8 EVP_CIPHER_CTX_key_length
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA224_Init
00000000      DF *UND*  00000000  OPENSSL_0.9.8 AES_set_encrypt_key
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_add
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_set_init_function
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA256_Final
00000000      DF *UND*  00000000  GLIBC_2.0   strcmp
00000000  w   DF *UND*  00000000  GLIBC_2.1.3 __cxa_finalize
00000000      DF *UND*  00000000  GLIBC_2.0   exit
00000000      DF *UND*  00000000  OPENSSL_0.9.8 ENGINE_set_name
00000000      DF *UND*  00000000  OPENSSL_0.9.8 CRYPTO_set_add_lock_callback
00000000      DF *UND*  00000000  OPENSSL_0.9.8 SHA1_Update
00000000      DF *UND*  00000000  OPENSSL_0.9.8 EVP_CIPHER_get_asn1_iv
00000000      DF *UND*  00000000  OPENSSL_0.9.8 RSA_sign
00002c00 g    DF .text  00000062  OPENSSL_0.9.8 ENGINE_load_padlock
00003728 g    DO .bss   00000004  OPENSSL_0.9.8 padlock_flags
00000000 g    DO *ABS*  00000000  OPENSSL_0.9.8 OPENSSL_0.9.8
0000372c g    D  *ABS*  00000000  OPENSSL_0.9.8 _end
00003690 g    D  *ABS*  00000000  OPENSSL_0.9.8 _edata
00001240 g    DF .text  00000015  OPENSSL_0.9.8 v_check
00003690 g    D  *ABS*  00000000  OPENSSL_0.9.8 __bss_start
00000f04 g    DF .init  00000000  OPENSSL_0.9.8 _init
00002da8 g    DF .fini  00000000  OPENSSL_0.9.8 _fini
000016b0 g    DF .text  000000e3  OPENSSL_0.9.8 bind_engine
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-openssl-devel/attachments/20100104/f7fce671/attachment-0001.pgp>


More information about the Pkg-openssl-devel mailing list