Sample code for 30+ languages & platforms
Visual FoxPro

Export Selected PFX Contents as PEM

See more PFX/P12 Examples

Demonstrates Pfx.ToPemEx, which exports selected PFX contents as PEM-formatted text with control over which parts are included and how private keys are encrypted.

Background. Private keys are written in PKCS #8 form. Supported key-encryption algorithms include aes128, aes192, aes256, and 3des; leaving the algorithm empty produces unencrypted keys.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loPfx
LOCAL lcPassword
LOCAL lnBExtendedAttrs
LOCAL lnBNoKeys
LOCAL lnBNoCerts
LOCAL lnBNoCaCerts
LOCAL lcKeyPassword
LOCAL lcPem

lnSuccess = 0

loPfx = CreateObject('Chilkat.Pfx')

*  The file path is relative to the application's current working directory.  An absolute path
*  may also be used.  Supply the path appropriate to your own environment.
*  The PFX password should come from a secure source rather than being hard-coded.
lcPassword = "myPfxPassword"
lnSuccess = loPfx.LoadPfxFile("qa_data/identity.pfx",lcPassword)
IF (lnSuccess = 0) THEN
    ? loPfx.LastErrorText
    RELEASE loPfx
    CANCEL
ENDIF

*  Export selected PFX contents as PEM-formatted text.  The boolean arguments control what is
*  included: extended attributes, and whether to omit private keys, certificates, or CA certificates.
lnBExtendedAttrs = 0
lnBNoKeys = 0
lnBNoCerts = 0
lnBNoCaCerts = 0

*  Encrypt the exported private keys.  Supported algorithms include aes128, aes192, aes256, and 3des;
*  leave the algorithm empty for unencrypted keys.  The key password should come from a secure source.
lcKeyPassword = "myKeyPassword"
lcPem = loPfx.ToPemEx(lnBExtendedAttrs,lnBNoKeys,lnBNoCerts,lnBNoCaCerts,"aes256",lcKeyPassword)
IF (loPfx.LastMethodSuccess = 0) THEN
    ? loPfx.LastErrorText
    RELEASE loPfx
    CANCEL
ENDIF

? lcPem

RELEASE loPfx