Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loPfx
LOCAL lnExportable
LOCAL lnUserProtected
LOCAL lnMachineKeyset
LOCAL lnAllowOverwriteKey
LOCAL lnAllowExport
LOCAL lcLeafStore
LOCAL lcIntermediateStore
LOCAL lcRootStore
LOCAL loJson

lnSuccess = 0

loPfx = CreateObject('Chilkat.Pfx')

lnSuccess = loPfx.LoadPfxFile("qa_data/pfx/example.p12","p12Password")
IF (lnSuccess = 0) THEN
    ? loPfx.LastErrorText
    RELEASE loPfx
    CANCEL
ENDIF

* See the online reference documentation for more information about the ImportToWindows method.

* Mark imported privae keys as exportable.
lnExportable = 1

* If userProtected is 1, the user is to be notified through a dialog box or other method when certain attempts to use this key are made. 
lnUserProtected = 0

* If machineKeyset is 1, the private keys are stored under the local computer and not under the current user. 
lnMachineKeyset = 0

* If allowOverwriteKey is 1, allow overwrite of the existing key. 
lnAllowOverwriteKey = 0

* If allowExport is 1, then the imported key can later be exported back to a PFX.
* (It also allows for applications to directly access the private key material.)
lnAllowExport = 1

* Indicate where to import types of certs.
lcLeafStore = "My"
lcIntermediateStore = "CertificationAuthority"
lcRootStore = "AuthRoot"

lnSuccess = loPfx.ImportToWindows(lnExportable,lnUserProtected,lnMachineKeyset,lnAllowOverwriteKey,lnAllowExport,lcLeafStore,lcIntermediateStore,lcRootStore,"")
IF (lnSuccess = 0) THEN
    ? loPfx.LastErrorText
    RELEASE loPfx
    CANCEL
ENDIF

* Show information about the certificates imported
loJson = CreateObject('Chilkat.JsonObject')
loPfx.GetLastJsonData(loJson)

loJson.EmitCompact = 0
? loJson.Emit()

* 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
*     }
*   ]
* }

? "Success."

RELEASE loPfx
RELEASE loJson