Validating Certificates
Manipulating Certificates
Getting Certificate Information
Comparing SecItem Objects
CERT_VerifyCertNow
CERT_VerifyCertName
CERT_CheckCertValidTimes
NSS_CmpCertChainWCANames
#include <cert.h>
SECStatus CERT_VerifyCertNow( CERTCertDBHandle *handle, CERTCertificate *cert, PRBool checkSig, SECCertUsage certUsage, void *wincx);
This function has the following parameters:
handle |
|
cert |
|
checkSig |
|
certUsage |
|
wincx |
The PIN argument value to pass to PK11 functions. See description below for more information. |
The function returns one of these values:
SECSuccess
.SECFailure
. Use PR_GetError
to obtain the error code. 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
.
Compares the common name specified in the subject DN for a certificate with a specified hostname.
#include <cert.h>
SECStatus CERT_VerifyCertName( CERTCertificate *cert, char *hostname);
This function has the following parameters:
cert |
A pointer to the certificate against which to check the hostname referenced by |
hostname |
The function returns one of these values:
hostname
parameter, SECSuccess
.hostname
parameter, SECFailure
. Use PR_GetError
to obtain the error code.*
matches anything ?
matches one character \
escapes a special character $
matches the end of the string [abc]
matches one occurrence of a
, b
, or c
. The only character that needs to be escaped in this is ]
, all others are not special. [a-z]
matches any character between a
and z
[^az]
matches any character except a
or z
~
followed by another shell expression removes any pattern matching the shell expression from the match list (foo|bar)
matches either the substring foo
or the substring bar
. These can be shell expressions as well. 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);
This function has the following parameters:
cert |
A pointer to the certificate whose validity period you want to check against. |
t |
The function returns an enumerator of type SECCertTimeValidity
:
typedef enum { secCertTimeValid, secCertTimeExpired, secCertTimeNotValidYet } SECCertTimeValidity;
#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 |
The function returns one of these values:
SECSuccess
.SECFailure
. Use PR_GetError
to obtain the error code. CERT_DupCertificate
CERT_DestroyCertificate
Makes a shallow copy of a specified certificate.
#include <cert.h>
CERTCertificate *CERT_DupCertificate(CERTCertificate *c)
This function has the following parameter:
c |
If successful, the function returns a pointer to a certificate object of type CERTCertificate
.
Destroys a certificate object.
#include <cert.h> #include <certt.h>
void CERT_DestroyCertificate(CERTCertificate *cert);
This function has the following parameter:
cert |
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.
CERT_FindCertByName
CERT_GetCertNicknames
CERT_FreeNicknames
CERT_GetDefaultCertDB
NSS_FindCertKEAType
Finds the certificate in the certificate database with a specified DN.
#include <cert.h>
CERTCertificate *CERT_FindCertByName ( CERTCertDBHandle *handle, SECItem *name);
This function has the following parameters:
handle |
|
name |
If successful, the function returns a certificate object of type CERTCertificate
.
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 |
|
what |
|
wincx |
The PIN argument value to pass to PK11 functions. See description below for more information. |
The function returns a CERTCertNicknames
object containing the requested nicknames.
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
.
#include <cert.h>
void CERT_FreeNicknames(CERTCertNicknames *nicknames);
This function has the following parameter:
nicknames |
Returns a handle to the default certificate database.
#include <cert.h>
CERTCertDBHandle *CERT_GetDefaultCertDB(void);
The function returns the CERTCertDBHandle
for the default certificate database.
This function is useful for determining whether the default certificate database has been opened.
Returns key exchange type of the keys in an SSL server certificate.
#include <nss.h>
SSLKEAType NSS_FindCertKEAType(CERTCertificate * cert);
This function has the following parameter:
a |
The function returns one of these values:
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);
This function has the following parameters:
a |
|
b |
The function returns an enumerator of type SECComparison
.
typedef enum _SECComparison { SECLessThan = -1, SECEqual = 0, SECGreaterThan = 1 } SECComparison;