AutoIt
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
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)