DataFlex
DataFlex
Import a PFX/P12 into the Windows Certificate Stores
See more Certificates Examples
Demonstrates how to import the certificates contained in a .pfx/.p12 to the Windows certificate stores.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoPfx
Boolean iExportable
Boolean iUserProtected
Boolean iMachineKeyset
Boolean iAllowOverwriteKey
Boolean iAllowExport
String sLeafStore
String sIntermediateStore
String sRootStore
Variant vJson
Handle hoJson
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatPfx)) To hoPfx
If (Not(IsComObjectCreated(hoPfx))) Begin
Send CreateComObject of hoPfx
End
Get ComLoadPfxFile Of hoPfx "qa_data/pfx/example.p12" "p12Password" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPfx To sTemp1
Showln sTemp1
Procedure_Return
End
// See the online reference documentation for more information about the ImportToWindows method.
// Mark imported privae keys as exportable.
Move True To iExportable
// If userProtected is True, the user is to be notified through a dialog box or other method when certain attempts to use this key are made.
Move False To iUserProtected
// If machineKeyset is True, the private keys are stored under the local computer and not under the current user.
Move False To iMachineKeyset
// If allowOverwriteKey is True, allow overwrite of the existing key.
Move False To iAllowOverwriteKey
// If allowExport is True, then the imported key can later be exported back to a PFX.
// (It also allows for applications to directly access the private key material.)
Move True To iAllowExport
// Indicate where to import types of certs.
Move "My" To sLeafStore
Move "CertificationAuthority" To sIntermediateStore
Move "AuthRoot" To sRootStore
Get ComImportToWindows Of hoPfx iExportable iUserProtected iMachineKeyset iAllowOverwriteKey iAllowExport sLeafStore sIntermediateStore sRootStore "" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPfx To sTemp1
Showln sTemp1
Procedure_Return
End
// Show information about the certificates imported
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get pvComObject of hoJson to vJson
Send ComGetLastJsonData To hoPfx vJson
Set ComEmitCompact Of hoJson To False
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// Sample of the last JSON data:
// {
// "exportable": true,
// "userProtected": false,
// "machineKeyset": false,
// "allowOverwriteKey": false,
// "allowExport": true,
// "key": [
// {
// "name": "{F09B755A-1E90-444D-9851-02B86CA14961}",
// "storageProvider": "Microsoft Software Key Storage Provider"
// }
// ],
// "cert": [
// {
// "DN": "...",
// "type": "intermediate",
// "storeName": "CertificationAuthority",
// "imported": true
// },
// {
// "DN": "...",
// "type": "root",
// "storeName": "AuthRoot",
// "imported": true
// },
// {
// "DN": "....",
// "type": "leaf",
// "storeName": "My",
// "keyContainer": "{345D4EAD-B8DD-4150-9A1F-4BC6437E77A2}",
// "machineKeyset": true,
// "imported": true
// }
// ]
// }
Showln "Success."
End_Procedure