skip book previous and next navigation links
go up to top of book: HP Open Source Security for OpenVMS Volume 2:... HP Open Source Security for OpenVMS Volume 2:...
go to previous page: Creating Certificates and Keys for the Example ProgramsCreating Certificates and Keys for the Example Programs
go to next page: asn1parseasn1parse
end of book navigation links

CRYPTO and SSL ApplicationProgramming Interface (API) Reference  



This reference section includes the OpenSSL Crypto and SSL APIs,and is based on information provided by The Open Group. This informationcan also be found at the following URL:

http://www.openssl.org

Crypto APIs

The OpenSSL Crypto library implements a wide range of cryptographicalgorithms used in various Internet standards. The services providedby this library are used by the OpenSSL implementations of SSL,TLS and S/MIME, and they have also been used to implement SSH, OpenPGP,and other cryptographic standards. The Crypto library consists ofa number of sublibraries that implement the individual algorithms.The functionality includes symmetric encryption, public key cryptographyand key agreement, certificate handling, cryptographic hash functionsand a cryptographic pseudorandom number generator.

The Crypto library is provided in the form of a shareableimage and is located at:

SYS$LIBRARY:SSL$LIBCRYPTO_SHR.EXE (for 64-bitAPIs)

SYS$LIBRARY:SSL$LIBCRYPTO_SHR32.EXE (for 32-bit APIs)


NoteThe documentation for the following Crypto APIsare not included in this manual. The APIs themselves are providedin the HP SSL for OpenVMS kit and can be found in the preceding shareableimages.

X509_NAME_oneline()

X509_STORE_CTX_get_current_cert()

X509_STORE_CTX_get_error()

X509_STORE_CTX_get_error_depth()

X509_STORE_CTX_get_ex_data()

X509_STORE_CTX_set_error()

X509_verify_cert_error_string()

X509_get_issuer_name()

X509_get_pubkey()

X509_get_subject_name()

X509_free()

SSL APIs

The OpenSSL SSL library implements the Secure Sockets Layer(SSL v2/v3) and Transport Layer Security (TLS v1) protocols.

This library is provided in the form of a shareable imageand is located at:

SYS$LIBRARY:SSL$LIBSSL_SHR.EXE(for 64-bit APIs)

SYS$LIBRARY:SSL$LIBSSL_SHR32.EXE (for 32-bit APIs)

The C header files (.H) that contain the prototypes for theseAPIs are found in SSL$ROOT:[INCLUDE]. A logical name, SSL$INCLUDE,allows you to access this directory. The logical name OPENSSL, whichpoints to SSL$INCLUDE, is provided so that applications can usestatements similar to the following:

#include <openssl/include.filename.h>

NoteDo not confuse the OPENSSL logical name with the OPENSSLforeign symbol. The foreign symbol provides access to the OpenSSLcommand line interface.

HP SSL APIs Grouped by Function lists all of theAPIs included in HP SSL for OpenVMS and categorizes the APIs byfunction.

Table 2   HP SSL APIs Grouped by Function
CA Perl Script for Interface to OpenSSL CertificatePrograms
CA.pl

OpenSSL Utility Commands
asn1parse
pkcs7
ca
pkcs8
ciphers
rand
crl
req
crl2pkcs7
rsa
dgst
rsautl
dHParam
s_client
dsa
s_server
dsaparam
sess_id
enc
smime
gendsa
speed
genrsa
spkac
nseq
verify
openssl
version
passwd
x509
pkcs12

BIO Crypto Sublibrary -- Provides I/OAbstraction APIs
bio
BIO_push
BIO_ctrl
BIO_read
BIO_ctrl_get_read_request
BIO_s_accept
BIO_ctrl_pending
BIO_s_bio
BIO_f_base64
BIO_s_connect
BIO_f_buffer
BIO_s_fd
BIO_f_cipher
BIO_s_file
BIO_f_md
BIO_s_mem
BIO_f_null
BIO_s_null
BIO_f_ssl
BIO_s_socket
BIO_find_type
BIO_set_callback
BIO_new
BIO_should_retry
BIO_new_bio_pair

BIGNUM Crypto Sublibrary -- Provides MultiprecisionInteger Arithmetic APIs
bn
bn_internal
BN_CTX_new
BN_mod_inverse
BN_CTX_start
BN_mod_mul_montgomery
BN_add
BN_mod_mul_reciprocal
BN_add_word
BN_new
BN_bn2bin
BN_num_bytes
BN_cmp
BN_rand
BN_copy
BN_set_bit
BN_generate_prime
BN_zero
Blowfish Crypto Sublibrary -- Providesthe Blowfish Cipher APIs
blowfish

Buffer Crypto Sublibrary -- Provides APIsto Manipulate Simple Character Arrays
buffer

OpenSSL Cryptographic Library
crypto
CRYPTO_set_ex_data
d2i Sublibrary
d2i_DHparamS
d2i_SSL_SESSION
d2i_RSAPublicKey

DES Crypto Sublibrary -- Provides DESEncryption Algorithm APIs
des

DH Crypto Sublibrary -- Provides Diffie-HellmanKey Agreement APIs
dh
DH_new
DH_generate_key
DH_set_method
DH_generate_parameters
DH_size
DH_get_ex_new_index

DSA Crypto Sublibrary -- Provides DigitalSignature Algorithm (DSA) APIs
dsa
DSA_get_ex_new_index
DSA_SIG_new
DSA_new
DSA_do_sign
DSA_set_method
DSA_dup_DH
DSA_sign
DSA_generate_key
DSA_size
DSA_generate_parameters

ERR Crypto Sublibrary -- Provides ErrorHandling APIs
err
ERR_load_crypto_strings
ERR_GET_LIB
ERR_load_strings
ERR_clear_error
ERR_print_errors
ERR_error_string
ERR_put_error
ERR_get_error
RR_remove_state
ERR_load_SSL_strings

EVP Crypto Sublibrary -- Provides High-LevelCryptographic APIs
evp
EVP_SealInit
EVP_DigestInit
EVP_SignInit
EVP_EncryptInit
EVP_VerifyInit
EVP_OpenInit

HMAC Crypto Sublibrary -- Provides HashedMessage Authentication Code API
HMAC

MDC2 Crypto Sublibrary -- Provides MessageDigest API with DES Algorithm
MDC2

LH_Stats Crypto Sublibrary -- ProvidesAPI to Access the Lhash Structure Stats
lh_stats

LHASH Crypto Sublibrary -- Provides APIto Implement Dynamic Hash Tables
lhash

MD5 Crypto Sublibrary -- Provides MD5Cryptographic Hash API
md5

Miscellaneous OpenSSL APIs
OPENSSL_VERSION_NUMBER
OpenSSL_add_all_algorithms
PEM Crypto Sublibrary -- Provides APIsto Read and Write Data in a PEM Format
pem

RAND Crypto Sublibrary -- Provides Pseudo-RandomNumber Generator APIs
rand_ssl
RAND_egd
RAND_add
RAND_load_file
RAND_bytes
RAND_set_rand_method
RAND_cleanup

RIPEMD160 Crypto Sublibrary -- ProvidesCryptographic Hash Function with 160-Bit Output
RIPEMD160

RC4 Crypto Sublibrary -- Provides RC4Encryption APIs
rc4

RSA Crypto Sublibrary -- Provides RSAPublic Key Cryptosystem APIs
rsa
RSA_print
RSA_blinding_on
RSA_private_encrypt
RSA_check_key
RSA_public_encrypt
RSA_generate_key
RSA_set_method
RSA_get_ex_new_index
RSA_sign
RSA_new
RSA_sign_ASN1_OCTET_STRING
RSA_padding_add_PKCS1_type_1
RSA_size
SHA Crypto Sublibrary -- Provides SecureHash Algorithm (SHA-1) APIs
sha

Threads Crypto Sublibrary -- ProvidesAPIS to Implement Thread-Safe Code
threads

OpenSSL CONF Library Configuration Files
config

Variants of DES and Other Crypto Algorithms ofOpenSSL
des_modes

SSL_CTX Data Structure APIs
SSL_CTX_add_extra_chain_cert
SSL_CTX_set_client_CA_list
SSL_CTX_add_session
SSL_CTX_set_def_verify_paths
SSL_CTX_ctrl
SSL_CTX_set_default_passwd_cb
SSL_CTX_flush_sessions
SSL_CTX_set_info_callback
SSL_CTX_free
SL_CTX_set_mode
SSL_CTX_get_cert_store
SSL_CTX_set_options
SSL_CTX_get_ex_new_index
SSL_CTX_set_purpose
SSL_CTX_get_quiet_shutdown
SSL_CTX_set_quiet_shutdown
SSL_CTX_get_verify_mode
SSL_CTX_set_session_cache_mode
SSL_CTX_load_verify_locations
SSL_CTX_set_session_id_context
SSL_CTX_new
SSL_CTX_set_ssl_version
SSL_CTX_sess_number
SL_CTX_set_timeout
SSL_CTX_sess_set_cache_size
SSL_CTX_set_tmp_dh_callback
SSL_CTX_sess_set_get_cb
SSL_CTX_set_tmp_rsa_callback
SSL_CTX_sessions
SSL_CTX_set_trust
SSL_CTX_set_cert_store
SSL_CTX_set_verify
SSL_CTX_set_cert_verify_cb
SSL_CTX_use_certificate
SSL_CTX_set_cipher_list

SSL_SESSION Data Structure APIs
SSL_SESSION_cmp
SSL_SESSION_hash
SSL_SESSION_free
SSL_SESSION_new
SSL_SESSION_get_ex_new_index
SSL_SESSION_print
SSL_SESSION_get_time

SSL APIs
ssl
SSL_get_rbio
SSL_accept
SSL_get_re ad_ahead
SSL_alert_desc_string.
SL_get_session
SSL_alert_type_string
SSL_get_shared_ciphers
SSL_callback_ctrl
SSL_get_verify_result
SSL_check_private_key
SSL_get_version
SSL_CIPHER_get_name
SSL_library_init
SSL_clear
SSL_load_client_CA_file
SSL_COMP_add_compression_method
SSL_new
SSL_connect
SL_peek
SSL_copy_session_id
SSL_pending
SSL_ctrl
SSL_read
SSL_do_handshake
SSL_renegotiate
SSL_dup
SSL_rstate_string
SSL_dup_CA_list
SSL_session_reused
SSL_free
SSL_set_bio
SSL_get_SSL_CTX
SSL_set_connect_state
SSL_get_certificate
SSL_set_fd
SSL_get_ciphers
SSL_set_info_callback
SSL_get_client _CA_list
SSL_set_purpose
SSL_get_current_cipher
SSL_set_quiet_shutdown
SSL_get_default_timeout
SSL_set_read_ahead
SSL_get_error
SSL_set_session
SSL_get_ex_data_X509_STORE_CTX_idx
SSL_set_shutdown
SSL_get_ex_new_index
SSL_set_trust
SSL_get_fd
SSL_set_verify_result
SSL_get_finished
SSL_shutdown
SSL_get_info_callback
SSL_state
SSL_get_peer_cert_chain
SSL_state_string
SSL_get_peer_certificate
SSL_version
SSL_get_peer_finished
SSL_want
SSL_get_privatekey
SSL_write
SSL_get_quiet_shutdown


skip links to manpages within this section.
asn1parse
bio
BIO_ctrl
BIO_ctrl_get_read_request
BIO_ctrl_pending
BIO_f_base64
BIO_f_buffer
BIO_f_cipher
BIO_f_md
BIO_f_null
BIO_f_ssl
BIO_find_type
BIO_new
BIO_new_bio_pair
BIO_push
BIO_read
BIO_s_accept
BIO_s_bio
BIO_s_connect
BIO_s_fd
BIO_s_file
BIO_s_mem
BIO_s_null
BIO_s_socket
BIO_set_callback
BIO_should_retry
blowfish
bn
BN_add
BN_add_word
BN_bn2bin
BN_cmp
BN_copy
BN_CTX_new
BN_CTX_start
BN_generate_prime
bn_internal
BN_mod_inverse
BN_mod_mul_montgomery
BN_mod_mul_reciprocal
BN_new
BN_num_bytes
BN_rand
BN_set_bit
BN_zero
buffer
ca
ca.pl
ciphers
crl
crl2pkcs7
crypto
CRYPTO_set_ex_data
d2i_DHparams
d2i_RSAPublicKey
d2i_SSL_SESSION
des
des_modes
dgst
dh
DH_generate_key
DH_generate_parameters
DH_get_ex_new_index
DH_new
DH_set_method
DH_size
dsa
DSA_do_sign
DSA_dup_DH
DSA_generate_key
DSA_generate_parameters
DSA_get_ex_new_index
DSA_new
DSA_set_default_openssl_method
DSA_SIG_new
DSA_sign
DSA_size
dsaparam
enc
err
ERR_clear_error
ERR_error_string
ERR_get_error
ERR_GET_LIB
ERR_load_crypto_strings
ERR_load_SSL_strings
ERR_load_strings
ERR_print_errors
ERR_put_error
ERR_remove_state
evp
EVP_DigestInit
EVP_EncryptInit
EVP_OpenInit
EVP_SealInit
EVP_SignInit
EVP_VerifyInit
gendsa
genrsa
HMAC
lh_stats
lhash
md5
MDC2
nseq
openssl
OpenSSL_add_all_algorithms
OPENSSL_VERSION_NUMBER
passwd
pem
pkcs12
pkcs7
pkcs8
rand
RAND_add
RAND_bytes
RAND_cleanup
RAND_egd
RAND_load_file
RAND_set_rand_method
rand_ssl
rc4
req
RIPEMD160
rsa
RSA_blinding_on
RSA_check_key
RSA_generate_key
RSA_get_ex_new_index
RSA_new
RSA_padding_add_PKCS1_type_1
RSA_print
RSA_private_encrypt
RSA_public_encrypt
RSA_set_method
RSA_sign
RSA_sign_ASN1_OCTET_STRING
RSA_size
rsautl
s_client
s_server
sess_id
SHA
smime
speed
spkac
ssl
SSL_accept
SSL_alert_desc_string
SSL_alert_type_string
SSL_callback_ctrl
SSL_check_private_key
SSL_CIPHER_get_name
SSL_clear
SSL_COMP_add_compression_method
SSL_connect
SSL_copy_session_id
SSL_ctrl
SSL_CTX_add_extra_chain_cert
SSL_CTX_add_session
SSL_CTX_ctrl
SSL_CTX_flush_sessions
SSL_CTX_free
SSL_CTX_get_cert_store
SSL_CTX_get_ex_new_index
SSL_CTX_get_quiet_shutdown
SSL_CTX_get_verify_mode
SSL_CTX_load_verify_locations
SSL_CTX_new
SSL_CTX_sess_number
SSL_CTX_sess_set_cache_size
SSL_CTX_sess_set_get_cb
SSL_CTX_sessions
SSL_CTX_set_cert_store
SSL_CTX_set_cert_verify_cb
SSL_CTX_set_cipher_list
SSL_CTX_set_client_CA_list
SSL_CTX_set_def_verify_paths
SSL_CTX_set_default_passwd_cb
SSL_CTX_set_info_callback
SSL_CTX_set_mode
SSL_CTX_set_options
SSL_CTX_set_purpose
SSL_CTX_set_quiet_shutdown
SSL_CTX_set_session_cache_mode
SSL_CTX_set_session_id_context
SSL_CTX_set_ssl_version
SSL_CTX_set_timeout
SSL_CTX_set_tmp_dh_callback
SSL_CTX_set_tmp_rsa_callback
SSL_CTX_set_trust
SSL_CTX_set_verify
SSL_CTX_use_certificate
SSL_do_handshake
SSL_dup
SSL_dup_CA_list
SSL_free
SSL_get_certificate
SSL_get_ciphers
SSL_get_client_CA_list
SSL_get_current_cipher
SSL_get_default_timeout
SSL_get_error
SSL_get_ex_data_X509_STORE_CTX_idx
SSL_get_ex_new_index
SSL_get_fd
SSL_get_finished
SSL_get_info_callback
SSL_get_peer_cert_chain
SSL_get_peer_certificate
SSL_get_peer_finished
SSL_get_privatekey
SSL_get_quiet_shutdown
SSL_get_rbio
SSL_get_read_ahead
SSL_get_session
SSL_get_shared_ciphers
SSL_get_SSL_CTX
SSL_get_verify_result
SSL_get_version
SSL_library_init
SSL_load_client_CA_file
SSL_new
SSL_peek
SSL_pending
SSL_read
SSL_renegotiate
SSL_rstate_string
SSL_SESSION_cmp
SSL_SESSION_free
SSL_SESSION_get_ex_new_index
SSL_SESSION_get_time
SSL_SESSION_hash
SSL_SESSION_new
SSL_SESSION_print
SSL_session_reused
SSL_set_bio
SSL_set_connect_state
SSL_set_fd
SSL_set_info_callback
SSL_set_purpose
SSL_set_quiet_shutdown
SSL_set_read_ahead
SSL_set_session
SSL_set_shutdown
SSL_set_trust
SSL_set_verify_result
SSL_shutdown
SSL_state
SSL_state_string
SSL_version
SSL_want
SSL_write
threads
verify
version
x509
end of content navigation links


go to previous page: Creating Certificates and Keys for the Example ProgramsCreating Certificates and Keys for the Example Programs
go to next page: asn1parseasn1parse