Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.0.0+

Get ETK Public Key (api-acpt.ehealth.fgov.be)

See more Belgian eHealth Platform Examples

The 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.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  This example requires the Chilkat API to have been previously unlocked.
;  See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")

Local $sJsonStr = $oHttp.QuickGetStr("https://api-acpt.ehealth.fgov.be/etee/v1/etks?identifier=12345678901&type=SSIN")
If ($oHttp.LastMethodSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($sJsonStr & @CRLF)

;  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.
$oJarr = ObjCreate("Chilkat.JsonArray")
$bSuccess = $oJarr.Load($sJsonStr)
If ($bSuccess = False) Then
    ConsoleWrite("Failed to load JSON." & @CRLF)
    Exit
EndIf

Local $oJson = $oJarr.ObjectAt(0)
$oBdPkcs7 = ObjCreate("Chilkat.BinData")
$oBdPkcs7.AppendEncoded($oJson.StringOf("value"),"base64")

;  Let's verify the PKCS7, and then examine the signing cert,
;  and get the signing cert's public key.
$oCrypt = ObjCreate("Chilkat.Crypt2")

;  Validate the signedData PKCS7, and replace the contents of bdPkcs7 with the extracted signed content.
$bSuccess = $oCrypt.OpaqueVerifyBd($oBdPkcs7)
If ($bSuccess = False) Then
    ConsoleWrite($oCrypt.LastErrorText & @CRLF)
    Exit
EndIf

;  The signed content is the DER of a certificate.
;  In other words, bdPkcs7 now contains a certificate.
$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oCert.LoadFromBd($oBdPkcs7)
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

;  Show some certificate information:
ConsoleWrite("Subject: " & $oCert.SubjectDN & @CRLF)
ConsoleWrite("Serial: " & $oCert.SerialNumber & @CRLF)
ConsoleWrite("Issuer: " & $oCert.IssuerDN & @CRLF)

;  Let's get the cert's public key...
$oPubKey = ObjCreate("Chilkat.PublicKey")
$oCert.GetPublicKey($oPubKey)

;  OK, you now have the public key and can do whatever is needed..
ConsoleWrite($oPubKey.KeyType & @CRLF)
ConsoleWrite($oPubKey.KeySize & @CRLF)