Standards, Environments, and Macros openssl(5)
NAME
openssl - OpenSSL cryptographic and Secure Sockets Layer
toolkitDESCRIPTION
OpenSSL is a cryptography toolkit that implements the Secure Sockets Layer (SSLv2/v3) and Transport Layer Security (TLS v1) network protocols. The following features are omitted from the binaries for issues including but not limited to patents, trademark, and US export restrictions: ECC, IDEA, MDC2, RC3, RC5, DynamicEngine Loading, 4758_CCA Engine, AEP Engine, Atalla Engine,
CHIL Engine, CSWIFT Engine, GMP Engine, NURON Engine, PadLock Engine, Sureware Engine, and UBSEC Engine.A new PKCS#11 engine has been included with ENGINE name
pkcs11. The engine was developed in Sun and is not integrated in the OpenSSL project.The PKCS#11 engine is configured to use the Solaris Crypto-
graphic Framework. See cryptoadm(1M) for configuration information.The PKCS#11 engine can support the following set of mechan-
isms: CKM_AES_CBC, CKM_AES_ECB, CKM_BLOWFISH_CBC,
CKM_DES_CBC, CKM_DES_ECB, CKM_DES3_CBC, CKM_DES3_ECB,
CKM_DSA, CKM_MD5, CKM_RC4, CKM_RSA_PKCS, CKM_RSA_X_509,
CKM_SHA_1, CKM_SHA224, CKM_SHA256, CKM_SHA384, and
CKM_SHA512.
The set of mechanisms available depends on installed Crypto Framework providers. To see what mechanisms can be offloadedto the Cryptographic Framework through the PKCS#11 engine on
a given machine, run the following command:/usr/sfw/bin/openssl engine -vvv -t -c
Due to requirements of the PKCS#11 standard regarding
fork(2) behavior, some applications that use the OpenSSL EVP interfaces and fork() with active crypto contexts might experience unexpected behavior.SunOS 5.11 Last change: 23 Nov 2009 1
Standards, Environments, and Macros openssl(5)
Using FIPS ModeA FIPS Capable OpenSSL is available in /lib/openssl/fips-
140. To use this version of OpenSSL on a per-application
basis, LD_LIBRARY_PATH can be set. crle(1) can be used to
select this version of OpenSSL for all applications. Example:# crle -a /lib/libcrypto.so.0.9.8 -o \
/lib/openssl/fips-140
# crle -64 -a /lib/64/libcrypto.so.0.9.8 -o \
/lib/openssl/fips-140/64
The FIPS Capable libcrypto and the non-FIPS Capable lib-
crypto are ABI compatible. One exception to this is the useof the CRYPTO_NUM_LOCKS preprocessor macro. Instead of using
CRYPTO_NUM_LOCKS, the CRYPTO_num_locks(3openssl) function
should be used instead. Even when a FIPS Capable OpenSSL is used applications cannot automatically claim FIPS compliance. See the OpenSSL FIPS140-2 User Guide at http://openssl.org/ for more informa-
tion.openssl(1openssl) can be run in FIPS mode. The environmental
variable, OPENSSL_FIPS, must be set and the FIPS Capable
OpenSSL libraries must be used. Example:# export LD_LIBRARY_PATH=/lib/openssl/fips-140
# export OPENSSL_FIPS=1
# openssl version
OpenSSL 0.9.8k-fips 25 Mar 2009 (security fixes for: CVE-
2009-1377 CVE-2009-1378 CVE-2009-1379)
Building an OpenSSL ApplicationTo build an OpenSSL application, use the following cc com-
mand line options:cc [ flag... ] file... -lcrypto -lssl [ library... ]
SunOS 5.11 Last change: 23 Nov 2009 2
Standards, Environments, and Macros openssl(5)
To build an OpenSSL application which supports a FIPS mode of operation, use the following cc command line options:cc -I/usr/include/openssl/fips-140 -L/lib/openssl/fips-140 \
[ flag... ] file... -lcrypto -lssl [ library... ]
Accessing RSA Keys in PKCS#11 Keystores
OpenSSL can access RSA keys in PKCS#11 keystores using the
following functions of the ENGINE API:EVP_PKEY *ENGINE_load_private_key(ENGINE *e,
const char *key_id, UI_METHOD *ui_method,
void *callback_data)
EVP_PKEY *ENGINE_load_public_key(ENGINE *e,
const char *key_id, UI_METHOD *ui_method,
void *callback_data)
key_id, formerly for filenames only, can be now also set to
a PKCS#11 URI. The EVP_PKEY structure is newly allocated and
caller is responsible to free the structure later. To avoid clashes with existing filenames, file:// prefix forfilenames is now also accepted but only when the PKCS#11
engine is in use. The PKCS#11 URI specification follows:
pkcs11:[token=