PrivateKey C Library Reference

PrivateKey

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

Represents an RSA private key. Provides methods for importing and exporting to/from PEM, DER, PKCS8, PVK, and XML formats. Private keys can be imported/exported to both memory and files.

Create/Dispose

HCkPrivateKey CkPrivateKey_Create(void);

Creates an instance of the CkPrivateKey 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 CkPrivateKey_Dispose(HCkPrivateKey handle);

Objects created by calling CkPrivateKey_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 CkPrivateKey_getLastErrorHtml(HCkPrivateKey handle, HCkString retval);

Error information in HTML format for the last method called.

void CkPrivateKey_getLastErrorText(HCkPrivateKey handle, HCkString retval);

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

void CkPrivateKey_getLastErrorXml(HCkPrivateKey handle, HCkString retval);

Error information in XML format for the last method called.

BOOL CkPrivateKey_getUtf8(HCkPrivateKey handle);
void CkPrivateKey_putUtf8(HCkPrivateKey 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.

C "Methods"

BOOL CkPrivateKey_GetPkcs8(HCkPrivateKey handle, HCkByteData data);

Gets the private key in PKCS8 format.

BOOL CkPrivateKey_GetPkcs8Encrypted(HCkPrivateKey handle, const char *password, HCkByteData outBytes);

Writes the private key to password-protected PKCS8 format.

BOOL CkPrivateKey_GetPkcs8EncryptedPem(HCkPrivateKey handle, const char *password, HCkString outStr);

Writes the private key to password-protected PKCS8 PEM format.

BOOL CkPrivateKey_GetPkcs8Pem(HCkPrivateKey handle, HCkString str);

Gets the private key in PKCS8 PEM format.

BOOL CkPrivateKey_GetRsaDer(HCkPrivateKey handle, HCkByteData data);

Gets the private key in RSA DER format.

BOOL CkPrivateKey_GetRsaPem(HCkPrivateKey handle, HCkString str);

Gets the private key in RSA PEM format.

BOOL CkPrivateKey_GetXml(HCkPrivateKey handle, HCkString str);

Returns the private key in XML format. The private key is returned unencrypted and the parts are base64 encoded. The XML has this structure:

<RSAKeyValue>
  <Modulus>...</Modulus>
  <Exponent>...</Exponent>
  <P>...</P>
  <Q>...</Q>
  <DP>...</DP>
  <DQ>...</DQ>
  <InverseQ>...</InverseQ>
  <D>...</D>
</RSAKeyValue>

BOOL CkPrivateKey_LoadEncryptedPem(HCkPrivateKey handle, const char *pemStr, const char *password);

Loads the private key from an in-memory encrypted PEM string.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadEncryptedPemFile(HCkPrivateKey handle, const char *filename, const char *password);

Loads a private key from an encrypted PEM file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPem(HCkPrivateKey handle, const char *str);

Loads the private key from an in-memory PEM string.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPemFile(HCkPrivateKey handle, const char *filename);

Loads a private key from a PEM file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPkcs8(HCkPrivateKey handle, HCkByteData data);

Loads a private key from in-memory PKCS8 byte data.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPkcs8Encrypted(HCkPrivateKey handle, HCkByteData data, const char *password);

Loads a private key from in-memory password-protected PKCS8 byte data.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPkcs8EncryptedFile(HCkPrivateKey handle, const char *filename, const char *password);

Loads a private key from a password-protected PKCS8 file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPkcs8File(HCkPrivateKey handle, const char *filename);

Loads a private key from a PKCS8 file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPvk(HCkPrivateKey handle, HCkByteData data, const char *password);

Loads a private key from in-memory PVK byte data.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadPvkFile(HCkPrivateKey handle, const char *filename, const char *password);

Loads a private key from a PVK format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadRsaDer(HCkPrivateKey handle, HCkByteData data);

Loads a private key from in-memory RSA DER byte data.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadRsaDerFile(HCkPrivateKey handle, const char *filename);

Loads a private key from an RSA DER format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadXml(HCkPrivateKey handle, const char *xml);

Loads a private key from an in-memory XML string.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_LoadXmlFile(HCkPrivateKey handle, const char *filename);

Loads a private key from an XML file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SaveLastError(HCkPrivateKey handle, const char *filename);

Saves the last error information to an XML formatted file.

BOOL CkPrivateKey_SavePkcs8EncryptedFile(HCkPrivateKey handle, const char *password, const char *filename);

Saves the private key to a password-protected PKCS8 format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SavePkcs8EncryptedPemFile(HCkPrivateKey handle, const char *password, const char *filename);

Saves the private key to a password-protected PKCS8 PEM format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SavePkcs8File(HCkPrivateKey handle, const char *filename);

Saves the private key to a PKCS8 format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SavePkcs8PemFile(HCkPrivateKey handle, const char *filename);

Saves the private key to a PKCS8 PEM format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SaveRsaDerFile(HCkPrivateKey handle, const char *filename);

Saves the private key to a RSA DER format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SaveRsaPemFile(HCkPrivateKey handle, const char *filename);

Saves the private key to a RSA PEM format file.

Returns TRUE for success, FALSE for failure.

BOOL CkPrivateKey_SaveXmlFile(HCkPrivateKey handle, const char *filename);

Saves the private key to an XML file.

Returns TRUE for success, FALSE for failure.

const char *CkPrivateKey_getPkcs8EncryptedPem(HCkPrivateKey handle, const char *password);

Writes the private key to password-protected PKCS8 PEM format.

const char *CkPrivateKey_getPkcs8Pem(HCkPrivateKey handle);

Gets the private key in PKCS8 PEM format.

const char *CkPrivateKey_getRsaPem(HCkPrivateKey handle);

Gets the private key in RSA PEM format.

const char *CkPrivateKey_getXml(HCkPrivateKey handle);

Returns the private key in XML format. The private key is returned unencrypted and the parts are base64 encoded. The XML has this structure:

<RSAKeyValue>
  <Modulus>...</Modulus>
  <Exponent>...</Exponent>
  <P>...</P>
  <Q>...</Q>
  <DP>...</DP>
  <DQ>...</DQ>
  <InverseQ>...</InverseQ>
  <D>...</D>
</RSAKeyValue>

const char *CkPrivateKey_lastErrorHtml(HCkPrivateKey handle);

Error information in HTML format for the last method called.

const char *CkPrivateKey_lastErrorText(HCkPrivateKey handle);

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

const char *CkPrivateKey_lastErrorXml(HCkPrivateKey handle);

Error information in XML format for the last method called.