Sample code for 30+ languages & platforms
Visual FoxPro

Export an Encrypted PKCS #8 Private Key as Encoded Text

See more Private Key Examples

Demonstrates the Chilkat PrivateKey.GetPkcs8EncryptedENC method, which exports the key as password-protected PKCS #8 DER and encodes the encrypted DER as text. The first argument names the binary encoding and the second is the password. The cipher is selected by Pkcs8EncryptAlg.

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: This combines encryption with text encoding: the key is protected by a passphrase and returned as a string, ideal for storing an encrypted key in a text-only medium such as JSON or an environment variable. It is the encrypted counterpart to GetPkcs8ENC. Source the password securely.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loPrivKey
LOCAL lcPassword
LOCAL lcEncoded

lnSuccess = 0

*  Load a private key to export.
loPrivKey = CreateObject('Chilkat.PrivateKey')
lnSuccess = loPrivKey.LoadPemFile("qa_data/private.pem")
IF (lnSuccess = 0) THEN
    ? loPrivKey.LastErrorText
    RELEASE loPrivKey
    CANCEL
ENDIF

*  The key password is not hard-coded in a real application; obtain it from an interactive
*  prompt, environment variable, or a secrets vault.
lcPassword = "myKeyPassword"

*  Export as password-protected PKCS #8 DER, then encode the encrypted DER as text.  The 1st
*  argument names the binary encoding and the 2nd is the password.  The cipher is selected by the
*  Pkcs8EncryptAlg property.
lcEncoded = loPrivKey.GetPkcs8EncryptedENC("base64",lcPassword)
IF (loPrivKey.LastMethodSuccess = 0) THEN
    ? loPrivKey.LastErrorText
    RELEASE loPrivKey
    CANCEL
ENDIF

? lcEncoded

RELEASE loPrivKey