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
(DataFlex) 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.
Use ChilkatAx-win32.pkg Procedure Test Handle hoKeyCon Variant vJson Handle hoJson Boolean iSuccess String sName Boolean iMachineKey String sAlgId String sProvType String sStorageProvider Integer i Integer iCount_i String sTemp1 Boolean bTemp1 // This example requires Chilkat v9.5.0.83 or greater. Get Create (RefClass(cComChilkatKeyContainer)) To hoKeyCon If (Not(IsComObjectCreated(hoKeyCon))) Begin Send CreateComObject of hoKeyCon End Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Set ComEmitCompact Of hoJson To False Get pvComObject of hoJson to vJson Get ComGetKeys Of hoKeyCon "Microsoft Software Key Storage Provider" vJson To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoKeyCon To sTemp1 Showln sTemp1 Procedure_Return End Get ComEmit Of hoJson To sTemp1 Showln sTemp1 // 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 Get ComStringOf Of hoJson "storageProvider" To sStorageProvider Move 0 To i Get ComSizeOfArray Of hoJson "key" To iCount_i While (i < iCount_i) Set ComI Of hoJson To i Get ComStringOf Of hoJson "key[i].name" To sName Get ComBoolOf Of hoJson "key[i].machineKey" To iMachineKey Get ComHasMember Of hoJson "key[i].algId" To bTemp1 If (bTemp1 = True) Begin Get ComStringOf Of hoJson "key[i].algId" To sAlgId End Get ComHasMember Of hoJson "key[i].provType" To bTemp1 If (bTemp1 = True) Begin Get ComStringOf Of hoJson "key[i].provType" To sProvType End Move (i + 1) To i Loop End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.