CertStore C Library Reference

CertStore

* This is a freeware class/C library/library.

Represents a certificate store. The certificate store can be registry-based, file-based, or in-memory. Allows certificates to be added, removed, or retrieved.

Create/Dispose

HCkCertStore CkCertStore_Create(void);

Creates an instance of the CkCertStore object and returns a handle (i.e. a "void *" pointer). The handle is passed in the 1st argument for the functions listed on this page.

void CkCertStore_Dispose(HCkCertStore handle);

Objects created by calling CkCertStore_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function.

C "Properties"

void CkCertStore_getLastErrorHtml(HCkCertStore handle, HCkString retval);

Error information in HTML format for the last method called.

void CkCertStore_getLastErrorText(HCkCertStore handle, HCkString retval);

Error information in plain-text format for the last method called.

void CkCertStore_getLastErrorXml(HCkCertStore handle, HCkString retval);

Error information in XML format for the last method called.

long CkCertStore_getNumCertificates(HCkCertStore handle);

The number of certificates held in the certificate store.

long CkCertStore_getNumEmailCerts(HCkCertStore handle);

The number of certificates that can be used for sending secure email within this store.

BOOL CkCertStore_getUtf8(HCkCertStore handle);
void CkCertStore_putUtf8(HCkCertStore handle, BOOL newVal);

When set to true, all "const char *" arguments are expected to be utf-8 strings. If set to false, the "const char *" arguments are expected to be ANSI strings.

void CkCertStore_getVersion(HCkCertStore handle, HCkString retval);

The version of this component, such as "1.0"

C "Methods"

BOOL CkCertStore_AddCertificate(HCkCertStore handle, HCkCert cert);

Adds a certificate to the store. If the certificate is already in the store, it is updated with the new information.

BOOL CkCertStore_CreateFileStore(HCkCertStore handle, const char *filename);

To be documented soon...

BOOL CkCertStore_CreateMemoryStore(HCkCertStore handle);

To be documented soon...

BOOL CkCertStore_CreateRegistryStore(HCkCertStore handle, const char *regRoot, const char *regPath);

To be documented soon...

HCkCert CkCertStore_FindCertByRfc822Name(HCkCertStore handle, const char *name);

Locates a certificate by its RFC 822 name and returns it if found. Otherwise returns NULL.

HCkCert CkCertStore_FindCertBySerial(HCkCertStore handle, const char *serialNumber);

Finds and returns the certificate that has the matching serial number.

HCkCert CkCertStore_FindCertBySha1Thumbprint(HCkCertStore handle, const char *str);

To be documented soon...

HCkCert CkCertStore_FindCertBySubject(HCkCertStore handle, const char *subject);

Finds a certificate where one of the Subject properties (SubjectCN, SubjectE, SubjectO, SubjectOU, SubjectL, SubjectST, SubjectC) matches exactly (but case insensitive) with the passed string. A match in SubjectCN will be tried first, followed by SubjectE, and SubjectO. After that, the first match found in SubjectOU, SubjectL, SubjectST, or SubjectC, but in no guaranteed order, is returned. All matches are case insensitive.

HCkCert CkCertStore_FindCertBySubjectCN(HCkCertStore handle, const char *commonName);

Finds a certificate where the SubjectCN property (common name) matches exactly (but case insensitive) with the passed string.

HCkCert CkCertStore_FindCertBySubjectE(HCkCertStore handle, const char *emailAddress);

Finds a certificate where the SubjectE property (email address) matches exactly (but case insensitive) with the passed string. This function differs from FindCertForEmail in that the certificate does not need to match the ForSecureEmail property.

HCkCert CkCertStore_FindCertBySubjectO(HCkCertStore handle, const char *organization);

Finds a certificate where the SubjectO property (organization) matches exactly (but case insensitive) with the passed string.

HCkCert CkCertStore_FindCertForEmail(HCkCertStore handle, const char *emailAddress);

Finds a certificate that can be used to send secure email to the passed email address. A certificate matches only if the ForSecureEmail property is TRUE, and the email address matches exactly (but case insensitive) with the SubjectE property. Returns NULL if no matches are found.

HCkCert CkCertStore_GetCertificate(HCkCertStore handle, long index);

Returns the Nth certificate in the store. The first certificate is at index 0.

HCkCert CkCertStore_GetEmailCert(HCkCertStore handle, long index);

Returns the Nth email certificate in the store. The first certificate is at index 0. Use the NumEmailCertificates property to get the number of email certificates.

BOOL CkCertStore_LoadPfxData(HCkCertStore handle, HCkByteData pfxData, const char *password);

To be documented soon...

BOOL CkCertStore_LoadPfxData2(HCkCertStore handle, const unsigned char *buf, unsigned long bufLen, const char *password);

To be documented soon...

BOOL CkCertStore_LoadPfxFile(HCkCertStore handle, const char *filename, const char *password);

To be documented soon...

BOOL CkCertStore_OpenChilkatStore(HCkCertStore handle, BOOL readOnly);

To be documented soon...

BOOL CkCertStore_OpenCurrentUserStore(HCkCertStore handle, BOOL readOnly);

To be documented soon...

BOOL CkCertStore_OpenFileStore(HCkCertStore handle, const char *filename, BOOL readOnly);

To be documented soon...

BOOL CkCertStore_OpenOutlookStore(HCkCertStore handle, BOOL readOnly);

To be documented soon...

BOOL CkCertStore_OpenRegistryStore(HCkCertStore handle, const char *regRoot, const char *regPath, BOOL readOnly);

To be documented soon...

BOOL CkCertStore_RemoveCertificate(HCkCertStore handle, HCkCert cert);

Removes the passed certificate from the store. The certificate object passed as the argument can no longer be used once removed.

BOOL CkCertStore_SaveLastError(HCkCertStore handle, const char *filename);

Saves the last error information to an XML formatted file.

const char *CkCertStore_lastErrorHtml(HCkCertStore handle);

Error information in HTML format for the last method called.

const char *CkCertStore_lastErrorText(HCkCertStore handle);

Error information in plain-text format for the last method called.

const char *CkCertStore_lastErrorXml(HCkCertStore handle);

Error information in XML format for the last method called.

const char *CkCertStore_version(HCkCertStore handle);

The version of this component, such as "1.0"