Crypto-API
Werner Koch
wk@gnupg.org
Fri, 10 Dec 1999 13:00:20 +0100
On Fri, Dec 10, 1999 at 11:59:51AM +0100
Warich, Eyck wrote:
> as i'm quite new to this list (as it seems that the list itself is
> quite new :)) i want to ask about the current status of the gcrypt
> development. A browsed the archive and found pluto mentioned, i want
I am only working partly on it becuase there are some other things to
do at the same time ;-). As of yesterday (see GnuPG CVS HEAD) the
library does compile but GnuPG, which uses it, does not. Configuration
and autoconf macros are already there so the only tasks left to do
before a first release is to implement the public key API for
encryption - the one for signing does already work. One thing with
the current code is that it only implements data formats which are
needed by GnuPG (this is to migrate GnuPG to libcrypt). However this
is not issue of the API as I believe that it is very flexible. I have
still to to some benchmarking to prove that the concept is okay.
The API is not build upon PKCS, but on an own API which I think is
much more modern than the one of PKCS11 and much more flexible. It
uses S-Expressions (like spki) for many of it's data structures and
is therefore quite easy to extend.
> My idea behind that is the integration of more specific crypto
> devices as smartcards. I would suggest the usage of PKCS#11, as an
> GPLed implementation of this one exists (gpkcs11) and it allows
I had a look at Gpkcs11 but noticed that it is based on OpenSSL which
is not a GPLed implementation. However it should be possible to use
libgcrypt as a backend for gpkcs. Frankly said, PKCS11 reminds me of
APIs as used with host software and I don't understand why the use
fixed length data structures and thinks like strings padded with
blanks (whatever a blank means, on a hoist it is 0x40). The use of
restrictions like "convention on packing is that structures should be
1-byte aligned" does not sound very portable for me.
Last not least, libgcrypt is not intended to be a "high"-level
library but merely a low-level crypto library. Okay, this might
change in the future but I think it is better to put high/level
abstractions on top of libgcrypt.
--
Werner Koch at guug.de www.gnupg.org keyid 621CC013