This chapter describes the functions and related types used to work with a certificate database such as the cert8.db database provided with NSS. This was converted from "Chapter 5: Certificate Functions".
Checks that the current date is within the certificate's validity period and that the CA signature on the certificate is valid.
#include <cert.h>
SECStatus CERT_VerifyCertNow( CERTCertDBHandle *handle, CERTCertificate *cert, PRBool checkSig, SECCertUsage certUsage, void *wincx);
This function has the following parameters:
handle A pointer to the certificate database handle.
cert A pointer to the certificate to be checked.
checkSig Indicates whether certificate signatures are to be checked.
certUsage One of these values:
wincx The PIN argument value to pass to PK11 functions. See description below for more information.
The function returns one of these values:
The CERT_VerifyCertNow function must call one or more PK11 functions to obtain the services of a PKCS #11 module. Some of the PK11 functions require a PIN argument (see SSL_SetPKCS11PinArg for details), which must be specified in the wincx parameter. To obtain the value to pass in the wincx parameter, call SSL_RevealPinArg.
Checks that the a given aribrary date is within the certificate's validity period and that the CA signature on the certificate is valid. It also optionally returns a log of all the problems with the chain. Calling CERT_VerifyCert with the paramters: CERT_VerifyCert(handle, cert, checkSig, certUsage, PR_Now(), wincx, NULL) is equivalent to calling CERT_VerifyNow(handle, cert, checkSig, certUsage, wincx).
#include <cert.h>
SECStatus CERT_VerifyCert( CERTCertDBHandle *handle, CERTCertificate *cert, PRBool checkSig, SECCertUsage certUsage, int 64 t, void *wincx CERTVerifyLog *log);
This function has the following parameters:
handle A pointer to the certificate database handle.
cert A pointer to the certificate to be checked.
checkSig Indicates whether certificate signatures are to be checked.
certUsage One of these values:
t Time in which to validate the certificate.
wincx The PIN argument value to pass to PK11 functions. See description below for more information.
log Optional certificate log which returns all the errors in processing a given certificate chain. See Using CERTVerifyLog for more information.
The function returns one of these values:
The CERT_VerifyCert function must call one or more PK11 functions to obtain the services of a PKCS #11 module. Some of the PK11 functions require a PIN argument (see SSL_SetPKCS11PinArg for details), which must be specified in the wincx parameter. To obtain the value to pass in the wincx parameter, call SSL_RevealPinArg.
Compares the common name specified in the subject DN for a certificate with a specified hostname.
This function has the following parameters:
cert A pointer to the certificate against which to check the hostname referenced by hostname.
hostname The hostname to be checked.
The function returns one of these values:
The comparison performed by CERT_VerifyCertName is not a simple string comparison. Instead, it takes account of the following rules governing the construction of common names in SSL server certificates:
Checks whether a specified time is within a certificate's validity period.
#include <cert.h> #include <certt.h>
SECCertTimeValidity CERT_CheckCertValidTimes( CERTCertificate *cert, int64 t);
Determines whether any of the signers in the certificate chain for a specified certificate are on a specified list of CA names.
#include <nss.h> SECStatus NSS_CmpCertChainWCANames( CERTCertificate *cert, CERTDistNames *caNames);
This function has the following parameters:
cert A pointer to the certificate structure for the certificate whose certificate chain is to be checked.
caNames A pointer to a structure that contains a list of distinguished names (DNs) against which to check the DNs for the signers in the certificate chain.
Makes a shallow copy of a specified certificate.
This function has the following parameter:
c A pointer to the certificate object to be duplicated.
Destroys a certificate object.
Certificate and key structures are shared objects. When an application makes a copy of a particular certificate or key structure that already exists in memory, SSL makes a shallow copy--that is, it increments the reference count for that object rather than making a whole new copy. When you call CERT_DestroyCertificate or SECKEY_DestroyPrivateKey, the function decrements the reference count and, if the reference count reaches zero as a result, both frees the memory and sets all the bits to zero. The use of the word "destroy" in function names or in the description of a function implies reference counting.
Never alter the contents of a certificate or key structure. If you attempt to do so, the change affects all the shallow copies of that structure and can cause severe problems.
Finds the certificate in the certificate database with a specified DN.
#include <cert.h>
CERTCertificate *CERT_FindCertByName ( CERTCertDBHandle *handle, SECItem *name);
Returns the nicknames of the certificates in a specified certificate database.
#include <cert.h> #include <certt.h>
CERTCertNicknames *CERT_GetCertNicknames ( CERTCertDBHandle *handle, int what, void *wincx);
This function has the following parameters:
handle A pointer to the certificate database handle.
what One of these values:
wincx The PIN argument value to pass to PK11 functions. See description below for more information.
CERT_GetCertNicknames must call one or more PK11 functions to obtain the services of a PKCS #11 module. Some of the PK11 functions require a PIN argument (see SSL_SetPKCS11PinArg for details), which must be specified in the wincx parameter. To obtain the value to pass in the wincx parameter, call SSL_RevealPinArg.
Frees a CERTCertNicknames structure. This structure is returned by CERT_GetCertNicknames.
Compares two SECItem objects and returns a SECComparison enumerator that shows the difference between them.
#include <secitem.h> #include <seccomon.h>
SECComparison SECITEM_CompareItem( SECItem *a, SECItem *b);
Page last modified 18:59, 26 Jan 2007 by Nelson%bolyard.com?