[Help-gnutls] Re: OpenSC and GnuTLS
Simon Josefsson
simon at josefsson.org
Tue May 8 12:56:41 CEST 2007
Daniel Kahn Gillmor <dkg-debian.org at fifthhorseman.net> writes:
> On Fri 2007-05-04 08:18:18 -0400, Simon Josefsson wrote:
>
>> If you can point to a PKCS#11 provider for your card, I can see if I
>> can make GnuTLS support linking to it -- I probably can't test it
>> myself though.
>
> on debian lenny (and probably etch too), the libopensc2 package
> provides /usr/lib/opensc-pkcs11.so:
>
> http://packages.qa.debian.org/o/opensc.html
>
> is that what you're looking for? i confess i still don't know enough
> about how the smartcard infrastructure works. But if you can get
> opensc to work, i think you'll enable many more cards than just the
> eGate that i'm using.
Yup.
That library appear to be linked with non-GPL compatible libraries
(OpenSSL), though, so it may not be possible to distribute anything that
support this approach. But using it to test my PKCS#11 implementation
would still be possible.
Another thing that would be useful is if I can figure out how to link to
NSS's soft token PKCS#11 library.
> If that's not what you're looking for, give me more details, and i'll
> try to find someting more appropriate.
What I don't know is how to link to it... Removing '-lscute' and adding
'/usr/lib/opensc-pkcs11.so' links fine:
jas at mocca:~/src/gnutls-pkcs11/pkcs11$ /bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -D_REENTRANT -D_THREAD_SAFE -g -Wall -Wcast-align -W -Wpointer-arith -Wchar-subscripts -Wformat-security -Wno-format-y2k -Wmissing-braces -Winline -Wstrict-prototypes -Wno-unused-parameter -Wno-pointer-sign -pipe -I/usr/local/include -I/usr/local/include -no-undefined -version-info 21:1:8 -L/usr/local/lib -lassuan -L/usr/local/lib -lgpg-error -R/usr/local/lib -o libgnutls-pkcs11.la -rpath /usr/local/lib gnutls_pkcs11.lo ../lib/libgnutls.la /usr/lib/opensc-pkcs11.so
rm -fr .libs/libgnutls-pkcs11.a .libs/libgnutls-pkcs11.la .libs/libgnutls-pkcs11.lai .libs/libgnutls-pkcs11.so .libs/libgnutls-pkcs11.so.13 .libs/libgnutls-pkcs11.so.13.8.1
gcc -std=gnu99 -shared .libs/gnutls_pkcs11.o -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/home/jas/src/gnutls-pkcs11/lib/.libs -Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -lassuan /usr/local/lib/libgpg-error.so ../lib/.libs/libgnutls.so -Wl,-soname -Wl,libgnutls-pkcs11.so.13 -o .libs/libgnutls-pkcs11.so.13.8.1
(cd .libs && rm -f libgnutls-pkcs11.so.13 && ln -s libgnutls-pkcs11.so.13.8.1 libgnutls-pkcs11.so.13)(cd .libs && rm -f libgnutls-pkcs11.so && ln -s libgnutls-pkcs11.so.13.8.1 libgnutls-pkcs11.so)
ar cru .libs/libgnutls-pkcs11.a gnutls_pkcs11.o
ranlib .libs/libgnutls-pkcs11.a
creating libgnutls-pkcs11.la
(cd .libs && rm -f libgnutls-pkcs11.la && ln -s ../libgnutls-pkcs11.la
libgnutls-pkcs11.la)
However, for some reason, the opensc-pkcs11 library doesn't get pulled
in:
jas at mocca:~/src/gnutls-pkcs11/pkcs11$ ldd .libs/libgnutls-pkcs11.so
linux-gate.so.1 => (0xffffe000)
libgpg-error.so.0 => /usr/local/lib/libgpg-error.so.0 (0xb7fa0000)
libgnutls.so.13 => /usr/local/lib/libgnutls.so.13 (0xb7f03000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dc2000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7dac000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7d98000)
libgcrypt.so.11 => /usr/local/lib/libgcrypt.so.11 (0xb7d47000)
/lib/ld-linux.so.2 (0x80000000)
jas at mocca:~/src/gnutls-pkcs11/pkcs11$
So when I start gnutls-cli, it complains that C_Initialize (the PKCS#11
init function) is not available, which is correct.
Perhaps opensc-pkcs11.so needs to be dlopen()'d, or something else is
needed.
/Simon
More information about the Gnutls-help
mailing list