Sample code for 30+ languages & platforms
Unicode C

Apple Keychain - Import ECDSA Private Key

See more Apple Keychain Examples

Imports an ECDSA private key to the Apple Keychain.

Note: This example requires Chilkat v10.0.0 or greater.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkPrivateKeyW.h>

void ChilkatSample(void)
    {
    BOOL success;
    const wchar_t *pemPath;
    const wchar_t *pemPassword;
    HCkPrivateKeyW privKey;

    success = FALSE;

    pemPath = L"/Users/chilkat/qa_data/ecc/prime256v1-privKey.pem";
    // Provide a password if your PEM is encrypted. Otherwise pass the empty string.
    pemPassword = L"";

    privKey = CkPrivateKeyW_Create();
    success = CkPrivateKeyW_LoadAnyFormatFile(privKey,pemPath,pemPassword);
    if (success == FALSE) {
        wprintf(L"%s\n",CkPrivateKeyW_lastErrorText(privKey));
        CkPrivateKeyW_Dispose(privKey);
        return;
    }

    // In Apple Keychain, the label for an item such as a private key is a user-friendly identifier that helps distinguish one item from
    // another in the Keychain. It is typically a brief name or description associated with the item. 
    // The label is displayed in the Keychain Access application and is useful for quickly identifying the purpose
    // or source of a specific key, certificate, or password entry.

    // The label does not affect the functionality or security of the item; it is purely for organizational purposes. 
    // You can edit or assign labels to make your Keychain easier to navigate.

    // On MacOS, you can save the private key to the Keychain by calling SavePkcs8File with a "filename" in the format"keychain:<label>"
    success = CkPrivateKeyW_SavePkcs8File(privKey,L"keychain:MyEcdsaKey123");
    if (success == FALSE) {
        wprintf(L"%s\n",CkPrivateKeyW_lastErrorText(privKey));
        CkPrivateKeyW_Dispose(privKey);
        return;
    }

    wprintf(L"Success.\n");

    // Here you can see:
    // 
    // image


    CkPrivateKeyW_Dispose(privKey);

    }