Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
local pfx = chilkat.Pfx.new()
local success = pfx:load_pfx_file("qa_data/pfx/example.p12", "p12Password")
if not success then
print(pfx.last_error_text)
return
end
-- See the online reference documentation for more information about the ImportToWindows method.
-- Mark imported privae keys as exportable.
local exportable = true
-- 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.
local userProtected = false
-- If machineKeyset is true, the private keys are stored under the local computer and not under the current user.
local machineKeyset = false
-- If allowOverwriteKey is true, allow overwrite of the existing key.
local allowOverwriteKey = false
-- 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.)
local allowExport = true
-- Indicate where to import types of certs.
local leafStore = "My"
local intermediateStore = "CertificationAuthority"
local rootStore = "AuthRoot"
success = pfx:import_to_windows(exportable, userProtected, machineKeyset, allowOverwriteKey, allowExport, leafStore, intermediateStore, rootStore, "")
if not success then
print(pfx.last_error_text)
return
end
-- Show information about the certificates imported
local json = chilkat.JsonObject.new()
pfx:get_last_json_data(json)
json.emit_compact = false
print(json: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
-- }
-- ]
-- }
print("Success.")