DataFlex
DataFlex
Export a Certificate's Private Key to Various Formats
See more Certificates Examples
Loads a digital certificate and private key from a PFX file (also known as PKCS#12) and exports the private key to various formats: (1) PKCS8 Encrypted, (2) PKCS8 Encrypted PEM, (3) PKCS8 unencrypted, (4) PKCS8 PEM unencrypted, (5) RSA DER unencrypted, (6) RSA PEM unencrypted, (7) XML.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoCert
String sPfxFilename
String sPfxPassword
Variant vPrivKey
Handle hoPrivKey
String sPassword
String sPath
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
// Load from the PFX file
Move "/Users/chilkat/testData/pfx/chilkat_ssl_pwd_is_test.pfx" To sPfxFilename
Move "test" To sPfxPassword
// A PFX typically contains certificates in the chain of authentication.
// The Chilkat cert object will choose the certificate w/
// private key farthest from the root authority cert.
// To access all the certificates in a PFX, use the
// Chilkat certificate store object instead.
Get ComLoadPfxFile Of hoCert sPfxFilename sPfxPassword To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Get the private key...
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
Get pvComObject of hoPrivKey to vPrivKey
Get ComGetPrivateKey Of hoCert vPrivKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Export to various formats:
Move "secret" To sPassword
// PKCS8 Encrypted DER
Move "/Users/chilkat/testData/privkeys/chilkat_pkcs8_enc.der" To sPath
Get ComSavePkcs8EncryptedFile Of hoPrivKey sPassword sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// PKCS8 Encrypted PEM
Move "/Users/chilkat/testData/privkeys/chilkat_pkcs8_enc.pem" To sPath
Get ComSavePkcs8EncryptedPemFile Of hoPrivKey sPassword sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// PKCS8 Unencrypted DER
Move "/Users/chilkat/testData/privkeys/chilkat_pkcs8.der" To sPath
Get ComSavePkcs8File Of hoPrivKey sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// PKCS8 Unencrypted PEM
Move "/Users/chilkat/testData/privkeys/chilkat_pkcs8.pem" To sPath
Get ComSavePkcs8PemFile Of hoPrivKey sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// RSA DER (unencrypted)
Move "/Users/chilkat/testData/privkeys/chilkat_rsa.der" To sPath
Get ComSavePkcs1File Of hoPrivKey sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// RSA PEM (unencrypted)
Move "/Users/chilkat/testData/privkeys/chilkat_rsa.pem" To sPath
Get ComSavePemFile Of hoPrivKey sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
// XML (unencrypted)
Move "/Users/chilkat/testData/privkeys/chilkat.xml" To sPath
Get ComSaveXmlFile Of hoPrivKey sPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPrivKey To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Private key exported to various formats."
End_Procedure