The 'openssl <some_digest>' command produces incorrect results when
linked dynamically against the (newly created) libssl.so.0.9.6,
libcrypto.so.0.9.6. It seems to ignore the selected hash algorithm
and displays the md5 hash instead.
$ ./openssl version
OpenSSL 0.9.6g [engine] 9 Aug 2002
$ ldd ./openssl
libssl.so.0.9.6 => /usr/lib/libssl.so.0.9.6 (0x40017000)
libcrypto.so.0.9.6 => /usr/lib/libcrypto.so.0.9.6 (0x400ce000)
libc.so.6 => /lib/libc.so.6 (0x40191000)
libdl.so.2 => /lib/libdl.so.2 (0x40274000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ echo abc|./openssl md5
0bee89b07a248e27c83fc3d5951213c1
$ echo abc|./openssl sha1
0bee89b07a248e27c83fc3d5951213c1
$ echo abc|./openssl md2
0bee89b07a248e27c83fc3d5951213c1
When linked to the newly created libssl.a, libcrypto.a, however,
the results seem correct.
$ ./openssl version
OpenSSL 0.9.6g [engine] 9 Aug 2002
$ ldd ./openssl
libc.so.6 => /lib/libc.so.6 (0x40017000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ echo abc|./openssl md5
0bee89b07a248e27c83fc3d5951213c1
$ echo abc|./openssl sha1
03cfd743661f07975fa2f1220c5194cbaff48451
$ echo abc|./openssl md2
03e6b5ea837cde8acb18e612e0fe6f12
I suspect that the problem lies with the part of the program that
collects the arguments and options. Eg. the statically linked
executable works as expected with the following arguments:
$ echo abc|./openssl dgst -sha1
03cfd743661f07975fa2f1220c5194cbaff48451
The dynamically linked executable fails to parse the arguments and
gives an error:
$ echo abc|./openssl dgst -sha1
unknown option '-sha1'
options are
-c to output the digest with separating colons
-d to output debug info
-hex output as hex dump
-binary output in binary form
-sign file sign digest using private key in file
-verify file verify a signature using public key in file
-prverify file verify a signature using private key in file
-signature file signature to verify
-binary output in binary form
-engine e use engine e, possibly a hardware device.
-md5 to use the md5 message digest algorithm (default)
-md4 to use the md4 message digest algorithm
-md2 to use the md2 message digest algorithm
-sha1 to use the sha1 message digest algorithm
-sha to use the sha message digest algorithm
-mdc2 to use the mdc2 message digest algorithm
-ripemd160 to use the ripemd160 message digest algorithm
This bug is not specific to version 0.9.6g and must have been
introduced in version 0.9.6e, or perhaps earlier.
OpenSSL self-test report:
-------------------------
OpenSSL version: 0.9.6g
Last change: [In 0.9.6g-engine release:]...
Options: no-hw
OS (uname): Linux unknown 2.4.18 #1 Sat Jul 13 00:00:00 GMT 2002 i686 unknown
OS (config): i686-whatever-linux2
Target (default): linux-elf
Target: linux-elf
Compiler: gcc version 2.95.2 19991024 (release)
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]