Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) List Keys in a Microsoft Storage ProviderDemonstrates how to list the keys found in a Microsoft CNG Storage Provider, or a Legacy CryptoAPI Storage Provider. Important: This example requires Chilkat v9.5.0.83 or greater.
integer li_rc oleobject loo_KeyCon oleobject loo_Json integer li_Success string ls_Name integer li_MachineKey string ls_AlgId string ls_ProvType string ls_StorageProvider integer i integer li_Count_i // This example requires Chilkat v9.5.0.83 or greater. loo_KeyCon = create oleobject // Use "Chilkat_9_5_0.KeyContainer" for versions of Chilkat < 10.0.0 li_rc = loo_KeyCon.ConnectToNewObject("Chilkat.KeyContainer") if li_rc < 0 then destroy loo_KeyCon MessageBox("Error","Connecting to COM object failed") return end if loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.EmitCompact = 0 li_Success = loo_KeyCon.GetKeys("Microsoft Software Key Storage Provider",loo_Json) if li_Success <> 1 then Write-Debug loo_KeyCon.LastErrorText destroy loo_KeyCon destroy loo_Json return end if Write-Debug loo_Json.Emit() // Sample JSON returned by GetKeys // If the storage provider is CNG, then each key has an "algId". // If the storage provider is legacy CryptoAPI, then each key has a "provType" (see below) // If the storage provider is CNG: // { // "storageProvider": "Microsoft Software Key Storage Provider", // "key": [ // { // "name": "cn=Chilkat Admin,ou=Persona Not Verified,ou=For Test Purposes Only Decryption Key", // "machineKey": false, // "algId": "ECDH_P384" // }, // { // "name": "CD1CC265-0DA0-4230-8419-CB6F808FE688", // "machineKey": false, // "algId": "SP800_108_CTR_HMAC" // }, // { // "name": "{FF14487C-0AED-471E-8FAD-4BF757C2195C}", // "machineKey": false, // "algId": "ECDH_P256" // }, // { // "name": "{869FD9A6-D815-44FD-A916-4D4A708CD949}", // "machineKey": false, // "algId": "ECDH_P256" // }, // { // "name": "D530ECA9-FF5A-4A6A-AAB3-6EC1870F2CC3", // "machineKey": false, // "algId": "SP800_108_CTR_HMAC" // }, // { // "name": "{F524771E-93C0-4D56-8DE7-2FE3CB5BD837}", // "machineKey": false, // "algId": "RSA" // }, // { // "name": "Microsoft Connected Devices Platform device certificate", // "machineKey": false, // "algId": "ECDSA_P256" // } // ] // } // If the storage provider is legacy CryptoAPI: // { // "storageProvider": "Microsoft Base Cryptographic Provider v1.0", // "key": [ // { // "name": "{48D7FF88-A52E-41E2-9EBD-0CC7E880DC65}", // "machineKey": false, // "provType": "PROV_RSA_FULL" // }, // { // "name": "{CBF7A33A-F9CF-4C30-8A06-94A5C7981058}", // "machineKey": false, // "provType": "PROV_RSA_FULL" // } // ] // } // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON ls_StorageProvider = loo_Json.StringOf("storageProvider") i = 0 li_Count_i = loo_Json.SizeOfArray("key") do while i < li_Count_i loo_Json.I = i ls_Name = loo_Json.StringOf("key[i].name") li_MachineKey = loo_Json.BoolOf("key[i].machineKey") if loo_Json.HasMember("key[i].algId") = 1 then ls_AlgId = loo_Json.StringOf("key[i].algId") end if if loo_Json.HasMember("key[i].provType") = 1 then ls_ProvType = loo_Json.StringOf("key[i].provType") end if i = i + 1 loop destroy loo_KeyCon destroy loo_Json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.