Sample code for 30+ languages & platforms
Visual FoxPro

Install PFX Certificates and Private Keys to Windows

See more PFX/P12 Examples

Demonstrates how to install the certificates and private keys contained in a PFX 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/test_secret.pfx","secret")
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 output:

* {
*   "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