C
C
Write PKCS1 or PKCS8 Public Key PEM
See more PEM Examples
Demonstrates how to write either PKCS1 or PKCS8 format PEM files. PKCS1 public keys have this PEM format:-----BEGIN RSA PUBLIC KEY----- BASE64 ENCODED DATA -----END RSA PUBLIC KEY-----PKCS8 public keys have this PEM format:
-----BEGIN PUBLIC KEY----- BASE64 ENCODED DATA -----END PUBLIC KEY-----
Chilkat C Downloads
#include <C_CkPem.h>
void ChilkatSample(void)
{
BOOL success;
HCkPem pem;
int i;
int numPublicKeys;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
success = FALSE;
pem = CkPem_Create();
// Load a public key from a PEM file.
// (Assume the PEM contains at least one public key..)
success = CkPem_LoadPemFile(pem,"/Users/chilkat/testData/pem/myPublicKey.pem");
if (success != TRUE) {
printf("%s\n",CkPem_lastErrorText(pem));
CkPem_Dispose(pem);
return;
}
numPublicKeys = CkPem_getNumPublicKeys(pem);
if (numPublicKeys == 0) {
printf("%s\n",("Error: Expected the PEM to contain public keys."));
CkPem_Dispose(pem);
return;
}
// Get each public key as PEM, first in PKCS1 format, then in PKCS8.
for (i = 1; i <= numPublicKeys; i++) {
// First output to PKCS1 PEM format:
printf("This is PKCS1 format:\n");
CkPem_putPublicKeyFormat(pem,"pkcs1");
printf("%s\n",CkPem_toPem(pem));
// Now PKCS8 PEM format:
printf("This is PKCS8 format:\n");
CkPem_putPublicKeyFormat(pem,"pkcs8");
printf("%s\n",CkPem_toPem(pem));
}
CkPem_Dispose(pem);
}