Application Programming Libraries

For an informative overview on cryptographic application programming interfaces see [NSA95].


Generic Security Services API (GSS-API)

SUP
Open Group - XOpen (John Linn) XoSpecs@xopen.co.uk
SRC
RFC 1508 Generic Security Service Application Program Interface
RFC 1509 Generic Security Service API: C-bindings
REM
Most general and stable high level API

Independent Data Unit Protection API (IDUP-API)

SUP
Open Group - XOpen (John Linn) XoSpecs@xopen.co.uk
REM
Companion API to GSS.

Generic Cryptographic Services API (GCS-API)

SUP
Open Group - XOpen Piers McMahon (ICL/UK);
SRC
Documentation

BSAFE (PKCS), RSAREF

SUP
(C) RSA Laboratories, Burt Kaliski
SRC
RSA Homepage
BSAFE Specification, PKCS (CRYPTOKI) Documentation
RSAREF Documentation
REM
BSAFE - PKCS (CRYPTOKI): Low-level object oriented CAPI. Hardware and software implementations are called ``cryptographic tokens''.
RSAREF: Cryptographic toolkit to facilitate rapid deployment of Internet Privacy-Enhanced Mail

RSAEURO

SUP
SRC
REM

Secure Distributed Environment (SecuDE)

SUP
(PD) GMD Darmstadt, Germany, Wolfgang Schneider
SRC
SecuDE Homepage (DE)
REM
Implementation of X.509, ASN.1, PKCS, PEM. Uses commonly accepted algorithms like RSA, DES, DSS...

Microsoft CryptoAPI

SUP
(C) Microsoft (David M. Balenson)
SRC
Software
REM
Cryptographic library that supports Win32(TM) applications. Hardware and software implementations of the library are called ``cryptographic service providers'' (CSP).

NSA CAPI

SUP
National Security Agency (NSA), Amy Reiss
SRC
Homepage
REM
First API definition by NSA. Second version announced for June 96. Implementations planned as Cryptographic Service Providers pluggable into Microsoft CAPI
Several accompanying APIs planned:

Crypto++ 2.1

SUP
(PD) Wei Dai
SRC
Homepage
Software (US)
REM
C++ class library of cryptographic primitives (mostly other people's code, repackaged into classes). Compiled and tested on Borland C++ 4.5, MSVC 4.0, and G++ 2.7.2 on MS-DOS, Windows NT, and a variety of UNIX machines.
CryptoSystems available:

SSLeay

SUP
(PD) Eric A. Young
SRC
Software (AUS)
German mirror
SSLeay FAQ
REM
Royalty free software library implementing the Secure Socket Layer Protocol. Provides strong end-to-end encryption even outside the US (No US product).

Protocols


Secure HyperText Transmission Protocol (S-HTTP)

SUP
(C) Terisa Systems
REM
Secure version of HTTP that uses an extra protocol specifier ``shttp://'' and adheres to the same dataflow conventions as HTTP, i.e., no interactivity between client and server.

Privacy Enhanced Mail (PEM)

SUP
John Linn
SRC
Privacy enhancement for Internet electronic mail:
RFC 1421 Part I: Message encryption and authentication procedures,
RFC 1422 Part II: Certificate-based key management
RFC 1423 Part III: Algorithms, modes, and identifiers
RFC 1424 Part IV: Key Certification and Related Services
REM
Application layer encryption + authentication + non-repudiation

The Directory Authentication Service (X.509)

SUP
ISO, CCITT
SRC
REM
ISO Standard for public key exchange using a hierarchical infrastructure of trusted certification authorities. Clients may generate private keys on their own. Public keys may be used for arbitrary purposes, e.g., digital signatures (strong authentication) and/or public key encryption.

Secure Sockets Layer (SSL)

SUP
Netscape Communications
SRC
Documentation
REM
Session layer encryption + authentication (no non-repudiation),

Internet Protocol 6 (IPv6)

SUP
IETF (R. Atkinson, P. Metzger)
SRC
IP-layer security architecture
RFC 1826 IP Authentication Header,
RFC 1827 IP Encapsulating Security Payload (ESP)
RFC 1828 IP Authentication using Keyed MD5
RFC 1829 ESP DES-CBC Transform
REM
Two alternative algorithm independent mechanisms:

MIME Object Service Security (MOSS)

SUP
?
SRC
RFC 1848 MIME Object Security Services
Documentation
REM

S-MIME (Secure MIME)

SUP
??
SRC
RFC 1847 Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted,
Software?? (US)
REM

Algorithms


Data Encryption Standard (DES)

SRC
Software?? (AUS)
REM
Symmetric block cipher with 64 bit input/output blocks and 56 bit keys.

Message Digest 5 (MD5)

SRC
RFC 1321 MD5 Message-Digest Algorithm
REM
Hash algorithm that produces 128 bit output.

RIPE-MD

SRC
Software (BE)
REM
Hash algorithms that produce 128-bit and 160-bit outputs, respectively.

Last modified: June 1, 1996

(Some links adapted: Birgit Pfitzmann, Jan 27, 1997)

Gerrit Bleumer
bleumer@acm.org