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
(Visual FoxPro) 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.
LOCAL loKeyCon LOCAL loJson LOCAL lnSuccess LOCAL lcName LOCAL lnMachineKey LOCAL lcAlgId LOCAL lcProvType LOCAL lcStorageProvider LOCAL i LOCAL lnCount_i * This example requires Chilkat v9.5.0.83 or greater. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.KeyContainer') loKeyCon = CreateObject('Chilkat.KeyContainer') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.EmitCompact = 0 lnSuccess = loKeyCon.GetKeys("Microsoft Software Key Storage Provider",loJson) IF (lnSuccess <> 1) THEN ? loKeyCon.LastErrorText RELEASE loKeyCon RELEASE loJson CANCEL ENDIF ? loJson.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 lcStorageProvider = loJson.StringOf("storageProvider") i = 0 lnCount_i = loJson.SizeOfArray("key") DO WHILE i < lnCount_i loJson.I = i lcName = loJson.StringOf("key[i].name") lnMachineKey = loJson.BoolOf("key[i].machineKey") IF (loJson.HasMember("key[i].algId") = 1) THEN lcAlgId = loJson.StringOf("key[i].algId") ENDIF IF (loJson.HasMember("key[i].provType") = 1) THEN lcProvType = loJson.StringOf("key[i].provType") ENDIF i = i + 1 ENDDO RELEASE loKeyCon RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.