RSA BSAFE SSL-C

Security protocol components for C

Search

cert.h File Reference

This file contains information on the SSL-C certificate processing Application Programming Interface (API).

#include "r_lib.h"
#include "stack.h"

Go to the source code of this file.

Defines

#define SSLCERT_ENCODING_ASN1_UTCTIME
 Indicates the ASN.1 encoding value for Universal Coordinated Time (UTC) time.

#define SSLCERT_ENCODING_ASN1_GENERALIZEDTIME
 Indicates the ASN.1 encoding value for generalized time.

#define SSLCERT_KEY_USAGE_DIGITAL_SIGNATURE
 Indicates a digital signature extension.

#define SSLCERT_KEY_USAGE_NON_REPUDIATION
 Indicates a non-repudiation extension.

#define SSLCERT_KEY_USAGE_KEY_ENCIPHERMENT
 Indicates a key encipherment extension.

#define SSLCERT_KEY_USAGE_DATA_ENCIPHERMENT
 Indicates a data encipherment extension.

#define SSLCERT_KEY_USAGE_KEY_AGREEMENT
 Indicates a key agreement extension.

#define SSLCERT_KEY_USAGE_KEY_CERT_SIGN
 Indicates a key certificate signing extension.

#define SSLCERT_KEY_USAGE_CRL_SIGN
 Indicates a Certificate Revocation List (CRL) signing extension.

#define SSLCERT_KEY_USAGE_ENCIPHER_ONLY
 Indicates an encipherment only extension.

#define SSLCERT_KEY_USAGE_DECIPHER_ONLY
 Indicates a decipherment only extension.

#define SSLCERT_GET_CRL_DISTRIBUTION_POINT
 Identifies the distributionPoint field in the cRLDistributionPoints extension in the certificate.

#define SSLCERT_GET_CRL_REASONS
 Identifies the reasons field in the cRLDistributionPoints extension in the certificate.

#define SSLCERT_GET_CRL_ISSUER
 Identifies the cRLIssuer field in the cRLDistributionPoints extension in the certificate.

#define SSLCERT_NONE
 Indicates that no verification library is used.

#define SSLCERT_NORMAL
 Indicates that the X.509 verification library is used.

#define SSLCERT_TINYCODE
 Indicates that the tiny code verification library is used.

#define SSLCERT_LIBRARY_CONFIG_FLAG
 Indicates the verification library configuration feature flag.

#define SSLCERT_BIO_SUPPORTED_FLAG
 Indicates the BIO support feature flag.

#define EVP_PKEY_RSA
 Indicates the private key type is RSA.

#define EVP_PKEY_DSA
 Indicates the private key type is DSA.

#define SSLCERT_INFO_SUBJECT
 Indicates the name of the entity to which the certificate is issued.

#define SSLCERT_INFO_PUBLIC_KEY
 Indicates the public key information.

#define SSLCERT_INFO_ISSUER
 Indicates the name of the issuer of the certificate that is unique in combination with the serial number.

#define SSLCERT_INFO_SERIAL_NUMBER
 Indicates the serial number of the certificate that is unique in combination with the issuer name.

#define SSLCERT_INFO_BINARY
 Indicates the entire certificate in encoded (binary) form.

#define SSLCERT_INFO_TYPE
 Indicates the certificate type as an integer.

#define SSLCERT_INFO_CERT_TYPE
 Indicates the certificate type of the certificate. More...

#define SSLCERT_TYPE_X509
 Indicates the certificate type is X.509.

#define SSLCERT_INFO_HW_OBJ
 Indicates the cached handle last used to operate on the certificate.

#define SSLCERT_INFO_DELETE
 This identifier is used to delete an item that has been added to a certificate. More...

#define SSLCERT_INFO_ID_HW_KEY_TYPE
 Indicates the PKCS #11 key type of the certificate.

#define SSLCERT_INFO_HW_LABEL
 Indicates the PKCS #11 description of the object. More...

#define SSLCERT_INFO_HW_CERT_CATEGORY
 Indicates the PKCS #11 categorization of the certificate. More...

#define SSLCERT_INFO_HW_ID
 Indicates the PKCS #11 certificate identifier. More...

#define SSLCERT_INFO_HW_HASH_SUB_PUBKEY
 Indicates the PKCS #11 field with SHA1 hash of the subject public key. More...

#define SSLCERT_INFO_HW_HASH_ISS_PUBKEY
 Indicates the PKCS #11 field with SHA1 hash of the issuer public key. More...

#define SSLCERT_INFO_HW_URL
 Indicates the PKCS #11 field with Uniform Resource Locator (URL) where the complete certificate can be obtained.
See Corresponds to CKA_URL.

#define SSLCERT_INFO_HW_JAVA_MIDP_SEC_DOM
 Indicates the PKCS #11 field with the Java MIDP security domain. More...

#define SSLCERT_INFO_HW_TRUSTED
 Indicates that the certificate on hardware is trusted. More...

#define SSLCERT_INFO_HW_MODIFIABLE
 Indicates that certificate data may be modified (that is, it is not read only). More...

#define SSLCERT_INFO_HW_PRIVATE
 Indicates that the certificate is accessible to authenticated users only. More...


Typedefs

typedef void SSLCERT
 SSLCERT is an opaque data type used to store certificate information. More...

typedef void SSLCERT_NAME
 SSLCERT_NAME is an opaque data type used to store certificate name information. More...

typedef void SSLCERT_NAME_ENTRY
 SSLCERT_NAME_ENTRY is an opaque data type used to store certificate name entry information. More...

typedef void SSLCERT_PKEY
 SSLCERT_PKEY is an opaque data type used to store private key data. More...

typedef void SSLCERT_STORE_CTX
 SSLCERT_STORE_CTX is an opaque data type that holds the certificate store information that is passed to the certificate verification routine. More...

typedef void SSLCERT_STORE
 An opaque data type that holds the SSL certificates and Certificate Revocation Lists (CRLs).


Functions

void SSLCERT_reference_inc (SSLCERT *cert)
 Increments the reference count for the specified certificate structure cert. More...

SSLCERTSSLCERT_new (void)
 Creates a new SSLCERT structure or certificate. More...

void SSLCERT_free (SSLCERT *cert)
 Removes all allocated memory for the certificate cert. More...

void* SSLCERT_PEM_read_bio_SSLCERT (void *bp, SSLCERT **cert, PEM_PASSWORD_CB_T *cb)
 Converts a Privacy Enhanced Mail (PEM) encoded certificate read from a BIO into an SSLCERT structure. More...

int SSLCERT_to_binary (SSLCERT *cert, unsigned char **pp)
 Creates ASN.1 binary certificate data from the specified SSLCERT structure. More...

SSLCERTSSLCERT_from_binary (SSLCERT **pcert, unsigned char **pp, long length)
 Creates an SSLCERT structure from the specified binary data in ASN.1 format indicated by pp with a length specified by length. More...

void* SSLCERT_from_binary_bio (void *bp, SSLCERT *cert)
 Converts a binary certificate read from a BIO into an SSLCERT structure. More...

char* SSLCERT_OID_to_string (unsigned char *data, long len, int flag)
 Returns a string representation for the specified ASN.1 Object Identifier (OID) for the Distinguished Name (DN) elements. More...

int SSLCERT_fingerprint (SSLCERT *cert, unsigned char *buf, unsigned int *plen)
 Returns the fingerprint hash of the certificate cert. More...

SSLCERT_NAMESSLCERT_get_issuer_name (SSLCERT *cert)
 Returns a reference to the name of the issuer of the certificate cert. More...

SSLCERT_NAMESSLCERT_get_subject_name (SSLCERT *cert)
 Returns the subject name for the certificate cert. More...

R_ITEMSSLCERT_get_AKI_keyid (SSLCERT *cert)
 Returns the Authority Key Identifier (AKI) key id data from the X.509 extensions of the given certificate, if it is present. More...

R_ITEMSSLCERT_get_SKI_keyid (SSLCERT *cert)
 Returns the Subject Key Identifier (SKI) key id data from the X.509 extensions of the given certificate, if it is present. More...

EVP_PKEYSSLCERT_get_pubkey (SSLCERT *cert)
 Returns the public key for the specified SSLCERT structure cert. More...

int SSLCERT_get_serialNumber_info (SSLCERT *cert, unsigned int *type, unsigned char **pp, long *length)
 Returns the serial number for the certificate passed via cert. More...

long SSLCERT_get_version (SSLCERT *cert)
 Returns the version number of the X.509 certificate cert. More...

int SSLCERT_get_flag (int indicator)
 Returns the library configuration flag which corresponds to the selected indicator. More...

int SSLCERT_set_flag (int indicator, int value)
 Sets the library configuration flag. More...

SSLCERT_NAMESSLCERT_NAME_new (void)
 Creates an SSLCERT_NAME structure that is used to store certificate subject or issuer information. More...

void SSLCERT_NAME_free (SSLCERT_NAME *cn)
 Removes all allocated memory for the SSLCERT_NAME structure xn including all SSLCERT_NAME_ENTRY structures contained in SSLCERT_NAME. More...

SSLCERT_NAMESSLCERT_NAME_dup (SSLCERT_NAME *cn)
 Duplicates the SSLCERT_NAME structure specified by xn. More...

unsigned long SSLCERT_NAME_hash (SSLCERT_NAME *cn)
 Generates a hash of the SSLCERT_NAME structure xname. More...

int SSLCERT_NAME_cmp (SSLCERT_NAME *cn1, SSLCERT_NAME *cn2)
 Compares two SSLCERT_NAME structures specified by xn1 and xn2. More...

SSLCERT_NAMESSLCERT_NAME_from_binary (SSLCERT_NAME **cn, unsigned char **pp, long length)
 Creates an SSLCERT_NAME structure from the specified binary ASN.1 encoded data specified by pp and allocates SSLCERT_NAME if xn is NULL. More...

int SSLCERT_NAME_to_binary (SSLCERT_NAME *cn, unsigned char **pp)
 Creates ASN.1 encoded binary data from the specified SSLCERT_NAME structure and places the binary output in pp. More...

int SSLCERT_NAME_ENTRY_get_info (SSLCERT_NAME_ENTRY *cne, unsigned int *oidtype, unsigned char **oidpp, long *oidlen, unsigned int *datatype, unsigned char **datapp, long *datalen)
 Extracts data elements from the specified SSLCERT_NAME_ENTRY structure. More...

int SSLCERT_NAME_ENTRY_get_oid_info (SSLCERT_NAME_ENTRY *cne, unsigned int *oidtype, unsigned char **oidpp, long *oidlen)
 Returns the data component for the specified SSLCERT_NAME_ENTRY structure. More...

int SSLCERT_NAME_ENTRY_get_data_info (SSLCERT_NAME_ENTRY *cne, unsigned int *datatype, unsigned char **datapp, long *datalen)
 Returns the data component for the specified SSLCERT_NAME_ENTRY structure. More...

int SSLCERT_NAME_get_entry_count (SSLCERT_NAME *xn)
 Returns the number of SSLCERT_NAME_ENTRY items in the SSLCERT_NAME structure xn. More...

SSLCERT_NAME_ENTRYSSLCERT_NAME_get_entry (SSLCERT_NAME *cn, int loc)
 Returns the specified SSLCERT_NAME_ENTRY from the SSLCERT_NAME structure xn. More...

char* SSLCERT_NAME_oneline (SSLCERT_NAME *cn, char *buf, int len)
 Returns a single string representation of the SSLCERT_NAME. More...

int SSLCERT_get_extension (SSLCERT *cert, const char *oid, int *crit, unsigned char **data, int *len)
 Retrieves the Object Identifier (OID) criticality flag (0 or 1) and data for an extension at position oid_str in the list of extensions for the certificate cert. More...

int SSLCERT_get_key_usage_int (SSLCERT *cert, unsigned int *crit, unsigned long *usage)
 Returns the Key Usage field as an integer. More...

int SSLCERT_get_basic_constraints_int (SSLCERT *cert, unsigned int *crit, unsigned long *constraints, int *is_ca)
 Returns the basic constraints value as an integer. More...

unsigned long SSLCERT_keyid_hash (R_ITEM *ck)
 Generates a hash of the R_ITEM structure keyid. More...

int SSLCERT_keyid_cmp (R_ITEM *ck1, R_ITEM *ck2)
 Compares two R_ITEM structures specified by ki1 and ki2. More...

int SSLCERT_verify (SSLCERT *cert, EVP_PKEY *pkey)
 Verifies the SSLCERT certificate cert using the public key pkey. More...

int SSLCERT_get_notAfter (SSLCERT *cert, unsigned int *type, unsigned char **pp, long *length)
 Returns a reference to the string representation of the NotAfter field of the specified certificate. More...

int SSLCERT_get_notBefore (SSLCERT *cert, unsigned int *type, unsigned char **pp, long *length)
 Returns a reference to the string representation of the NotBefore field of the specified certificate. More...

int SSLCERT_subject_name_cmp (SSLCERT *cert1, SSLCERT *cert2)
 Compares the subject names of the two specified SSLCERT structures cert1 and cert2. More...

int SSLCERT_SKI_keyid_cmp (SSLCERT *cert1, SSLCERT *cert2)
 Compares the Subject Key Identifier (SKI) key ids of the two specified SSLCERT structures cert1 and cert2. More...

int SSLCERT_check_private_key (SSLCERT *cert, EVP_PKEY *pkey)
 Checks that the passed private key pkey was used when signing the certificate cert. More...

int SSLCERT_verify_signature (int alg_id, unsigned char *data, unsigned int dlen, unsigned char *signature, unsigned int slen, EVP_PKEY *pubkey)
 Verifies the signature value by generating a hash of the data and comparing it with the hash retrieved from the signature data using the public key. More...

int SSLCERT_STORE_get_by_subject (SSLCERT_STORE_CTX *csctx, int type, SSLCERT_NAME *cn, void *ret)
 Examines the lists of certificates held by the SSLCERT_STORE_CTX for an object having the specified type and a subject equal to the specified name. More...

int SSLCERT_STORE_get_by_SKI (SSLCERT_STORE_CTX *csctx, int type, R_ITEM *ck, void *ret)
 Examines the lists of certificates held by the SSLCERT_STORE_CTX for an object having the specified type and a Subject Key Identifier (SKI) key id equal to the specified key id. More...

int SSLCERT_STORE_CTX_set_ex_data (SSLCERT_STORE_CTX *cctx, int idx, char *data)
 Sets the external data attached to the SSLCERT_STORE_CTX structure ctx. More...

char* SSLCERT_STORE_CTX_get_ex_data (SSLCERT_STORE_CTX *cctx, int idx)
 Returns the external data attached to the structure. More...

int SSLCERT_STORE_CTX_get_error (SSLCERT_STORE_CTX *cctx)
 Returns the current verification error for the SSLCERT_STORE_CTX ctx. More...

void SSLCERT_STORE_CTX_set_error (SSLCERT_STORE_CTX *cctx, int s)
 Sets an error code in the SSLCERT_STORE_CTX structure typically during a callback used for verification of a single certificate. More...

int SSLCERT_STORE_CTX_get_error_depth (SSLCERT_STORE_CTX *cctx)
 Returns the depth in the certificate chain where the verification error occurred. More...

void* SSLCERT_STORE_CTX_get_current_cert (SSLCERT_STORE_CTX *cctx)
 Returns the certificate currently being verified. More...

EVP_PKEYSSLCERT_PKEY_new (void)
 Creates a new EVP_PKEY structure. More...

void SSLCERT_PKEY_free (EVP_PKEY *pkey)
 Removes all allocated memory for the EVP_PKEY structure pkey. More...

EVP_PKEYSSLCERT_PKEY_from_binary (int type, EVP_PKEY **ppkey, unsigned char **pp, long length)
 Creates a new EVP_PKEY structure from the private key component of the binary data specified by ppkey. More...

EVP_PKEYSSLCERT_PKEY_from_PUBKEY_binary (int type, EVP_PKEY **ppkey, unsigned char **pp, long length)
 Creates a new EVP_PKEY structure from the public key component of the binary data specified by ppkey. More...

void SSLCERT_PKEY_reference_inc (EVP_PKEY *pkey)
 Increments the reference count for the specified EVP_PKEY structure pkey. More...

int SSLCERT_PKEY_set_info (SSLCERT_PKEY *pkey, int info_id, void *value)
 Sets the information, in value and identified by info_id into the key pkey. More...

int SSLCERT_PKEY_get_info (SSLCERT_PKEY *pkey, int info_id, void *value)
 Returns the requested information from the key pkey. More...

int SSLCERT_set_info (SSLCERT *cert, SSLCERT_INFO info_id, void *value)
 Sets information against a certificate. More...

int SSLCERT_get_info (SSLCERT *cert, SSLCERT_INFO info_id, void *value)
 Returns the requested information from the certificate. More...


Typedef Documentation

typedef void SSLCERT
 

SSLCERT is an opaque data type used to store certificate information. This type is resolved at run-time when either SSLC_get_default_resource_list() or SSLC_get_custom_resource_list() is used to load the SSL-C library.

typedef void SSLCERT_NAME
 

SSLCERT_NAME is an opaque data type used to store certificate name information. This type is resolved at run-time when either SSLC_get_default_resource_list() or SSLC_get_custom_resource_list() is used to load the SSL-C library.

typedef void SSLCERT_NAME_ENTRY
 

SSLCERT_NAME_ENTRY is an opaque data type used to store certificate name entry information. This type is resolved at run-time when either SSLC_get_default_resource_list() or SSLC_get_custom_resource_list() is used to load the SSL-C library.

typedef void SSLCERT_PKEY
 

SSLCERT_PKEY is an opaque data type used to store private key data. This type is resolved at run-time when either SSLC_get_default_resource_list() or SSLC_get_custom_resource_list() is used to load the SSL-C library.

typedef void SSLCERT_STORE_CTX
 

SSLCERT_STORE_CTX is an opaque data type that holds the certificate store information that is passed to the certificate verification routine. This type is resolved at run-time when either SSLC_get_default_resource_list() or SSLC_get_custom_resource_list() is used to load the SSL-C library.


Function Documentation

int SSLCERT_PKEY_get_info SSLCERT_PKEY   pkey,
int    info_id,
void *    value
;
 

Returns the requested information from the key pkey. The type of information is identified by info_id and returned in value.

Parameters:
pkey [In] The key from which to retrieve the information.
info_id [In] The information identifier.
See RSA Public Key Components for RSA identifiers.
See Diffie-Hellman Public Key Components for DH identifiers.
See DSA Public Key Components for DSA identifiers.
value [Out] Returns the requested information.
Returns:
1 indicates success.
Otherwise indicates error.
See also:
SSLCERT_PKEY_set_info().

int SSLCERT_PKEY_set_info SSLCERT_PKEY   pkey,
int    info_id,
void *    value
;
 

Sets the information, in value and identified by info_id into the key pkey.

Parameters:
pkey [In] The key into which to set the data.
info_id [In] The information identifier.
See RSA Public Key Components for RSA identifiers.
See Diffie-Hellman Public Key Components for DH identifiers.
See DSA Public Key Components for DSA identifiers.
value [In] The data to set.
Returns:
1 indicates success.
Otherwise indicates error.
See also:
SSLCERT_PKEY_get_info().


Copyright (c) 1999-2004 RSA Security Inc. All rights reserved. 050-001001-2600-000-000 - 2.6