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) Get ETK Public Key (api-acpt.ehealth.fgov.be)See more Belgian eHealth Platform ExamplesThe following URL returns JSON, which contains a PKCS7 signed data: https://api-acpt.ehealth.fgov.be/etee/v1/etks?identifier=12345678901&type=SSIN This example extracts the signed data, validates it, and then extracts the public key from the certificate (obtained from signed content in the PKCS7) Note: The URL above uses "12345678901" which is not valid. You should replace it with a valid number.
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp String sJsonStr Handle hoJarr Boolean iSuccess Variant vJson Handle hoJson Variant vBdPkcs7 Handle hoBdPkcs7 Handle hoCrypt Handle hoCert Variant vPubKey Handle hoPubKey String sTemp1 Integer iTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Get ComQuickGetStr Of hoHttp "https://api-acpt.ehealth.fgov.be/etee/v1/etks?identifier=12345678901&type=SSIN" To sJsonStr Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Showln sJsonStr // The JSON contains something like this: // [ // { // "key": { // "applicationIdentifier": "", // "ssin": "12345678901" // }, // "value": "MIAGCSq....AAAAAAAA==" // } // ] // Note: The above is a JSON array (not a JSON object) // It should be loaded into a Chilkat JSON array. Get Create (RefClass(cComChilkatJsonArray)) To hoJarr If (Not(IsComObjectCreated(hoJarr))) Begin Send CreateComObject of hoJarr End Get ComLoad Of hoJarr sJsonStr To iSuccess If (iSuccess = False) Begin Showln "Failed to load JSON." Procedure_Return End Get ComObjectAt Of hoJarr 0 To vJson If (IsComObject(vJson)) Begin Get Create (RefClass(cComChilkatJsonObject)) To hoJson Set pvComObject Of hoJson To vJson End Get Create (RefClass(cComChilkatBinData)) To hoBdPkcs7 If (Not(IsComObjectCreated(hoBdPkcs7))) Begin Send CreateComObject of hoBdPkcs7 End Get ComStringOf Of hoJson "value" To sTemp1 Get ComAppendEncoded Of hoBdPkcs7 sTemp1 "base64" To iSuccess Send Destroy of hoJson // Let's verify the PKCS7, and then examine the signing cert, // and get the signing cert's public key. Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End // Validate the signedData PKCS7, and replace the contents of bdPkcs7 with the extracted signed content. Get pvComObject of hoBdPkcs7 to vBdPkcs7 Get ComOpaqueVerifyBd Of hoCrypt vBdPkcs7 To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End // The signed content is the DER of a certificate. // In other words, bdPkcs7 now contains a certificate. Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get pvComObject of hoBdPkcs7 to vBdPkcs7 Get ComLoadFromBd Of hoCert vBdPkcs7 To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // Show some certificate information: Get ComSubjectDN Of hoCert To sTemp1 Showln "Subject: " sTemp1 Get ComSerialNumber Of hoCert To sTemp1 Showln "Serial: " sTemp1 Get ComIssuerDN Of hoCert To sTemp1 Showln "Issuer: " sTemp1 // Let's get the cert's public key... Get ComExportPublicKey Of hoCert To vPubKey If (IsComObject(vPubKey)) Begin Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey Set pvComObject Of hoPubKey To vPubKey End Get ComLastMethodSuccess Of hoCert To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // OK, you now have the public key and can do whatever is needed.. Get ComKeyType Of hoPubKey To sTemp1 Showln sTemp1 Get ComKeySize Of hoPubKey To iTemp1 Showln iTemp1 Send Destroy of hoPubKey End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.