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

Create EBICS SignaturePubKeyOrderData XML

See more EBICS Examples

Demonstrates how to create the EBICS SignaturePubKeyOrderData XML. (EBICS is the Electronic Banking Internet Communication Standard)

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

;  The goal of this example is to create the XML shown below from the certificate to be used for signing.

;  <?xml version="1.0" encoding="UTF-8"?>
;  <SignaturePubKeyOrderData xmlns="http://www.ebics.org/S001" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ebics.org/S002">
;    <SignaturePubKeyInfo>
;      <ds:X509Data>
;        <X509IssuerSerial>
;          <ds:X509IssuerName>C=FR, O=Example, OU=1234, CN=Example eID User, OrganizationID=SI:FR-1234</ds:X509IssuerName>
;          <ds:X509SerialNumber>73FFFFB881F1629982F787DF161EFFFF</ds:X509SerialNumber>
;        </X509IssuerSerial>
;        <ds:X509Certificate>
;          MIIJT...kE=
;        </ds:X509Certificate>
;      </ds:X509Data>
;      <PubKeyValue>
;        <ds:RSAPublicKey>
;         <ds:Modulus>wedQ...22Kw==</ds:Modulus>
;          <ds:Exponent>AQAB</ds:Exponent>
;        </ds:RSAPublicKey>
;      </PubKeyValue>
;      <SignatureVersion>A005</SignatureVersion>
;    </SignaturePubKeyInfo>
;    <PartnerID/>
;    <UserID/>
;  </SignaturePubKeyOrderData>

$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oCert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
If ($bSuccess = False) Then
    ConsoleWrite($oCert.LastErrorText & @CRLF)
    Exit
EndIf

$oXml = ObjCreate("Chilkat.Xml")
$oXml.Tag = "SignaturePubKeyOrderData"
$oXml.AddAttribute("xmlns","http://www.ebics.org/S001")
$oXml.AddAttribute("xmlns:ds","http://www.w3.org/2000/09/xmldsig#")
$oXml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
$oXml.AddAttribute("xsi:schemaLocation","http://www.ebics.org/S002")
$oXml.UpdateChildContent "SignaturePubKeyInfo|ds:X509Data|X509IssuerSerial|ds:X509IssuerName",$oCert.IssuerDN
$oXml.UpdateChildContent "SignaturePubKeyInfo|ds:X509Data|X509IssuerSerial|ds:X509SerialNumber",$oCert.SerialNumber
$oXml.UpdateChildContent "SignaturePubKeyInfo|ds:X509Data|ds:X509Certificate",$oCert.GetEncoded()

$oPubkey = ObjCreate("Chilkat.PublicKey")
$oCert.GetPublicKey($oPubkey)

$oXmlPubKey = ObjCreate("Chilkat.Xml")
$oXmlPubKey.LoadXml($oPubkey.GetXml())

;  The public key XML will look like this:
;  
;  <RSAPublicKey>
;    <Modulus>...</Modulus>
;    <Exponent>...</Exponent>
;  </RSAPublicKey>

$oXml.UpdateChildContent "SignaturePubKeyInfo|PubKeyValue|ds:RSAPublicKey|ds:Modulus",$oXmlPubKey.GetChildContent("Modulus")
$oXml.UpdateChildContent "SignaturePubKeyInfo|PubKeyValue|ds:RSAPublicKey|ds:Exponent",$oXmlPubKey.GetChildContent("Exponent")
$oXml.UpdateChildContent "SignaturePubKeyInfo|SignatureVersion","A005"
$oXml.UpdateChildContent "PartnerID",""
$oXml.UpdateChildContent "UserID",""

ConsoleWrite($oXml.GetXml() & @CRLF)