Sample code for 30+ languages & platforms
AutoIt

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)