PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $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>
$cert = New-Object Chilkat.Cert
$success = $cert.LoadPfxFile("qa_data/pfx/cert_test123.pfx","test123")
if ($success -eq $false) {
$($cert.LastErrorText)
exit
}
$xml = New-Object Chilkat.Xml
$xml.Tag = "SignaturePubKeyOrderData"
$xml.AddAttribute("xmlns","http://www.ebics.org/S001")
$xml.AddAttribute("xmlns:ds","http://www.w3.org/2000/09/xmldsig#")
$xml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
$xml.AddAttribute("xsi:schemaLocation","http://www.ebics.org/S002")
$xml.UpdateChildContent("SignaturePubKeyInfo|ds:X509Data|X509IssuerSerial|ds:X509IssuerName",$cert.IssuerDN)
$xml.UpdateChildContent("SignaturePubKeyInfo|ds:X509Data|X509IssuerSerial|ds:X509SerialNumber",$cert.SerialNumber)
$xml.UpdateChildContent("SignaturePubKeyInfo|ds:X509Data|ds:X509Certificate",$cert.GetEncoded())
$pubkey = New-Object Chilkat.PublicKey
$cert.GetPublicKey($pubkey)
$xmlPubKey = New-Object Chilkat.Xml
$xmlPubKey.LoadXml($pubkey.GetXml())
# The public key XML will look like this:
#
# <RSAPublicKey>
# <Modulus>...</Modulus>
# <Exponent>...</Exponent>
# </RSAPublicKey>
$xml.UpdateChildContent("SignaturePubKeyInfo|PubKeyValue|ds:RSAPublicKey|ds:Modulus",$xmlPubKey.GetChildContent("Modulus"))
$xml.UpdateChildContent("SignaturePubKeyInfo|PubKeyValue|ds:RSAPublicKey|ds:Exponent",$xmlPubKey.GetChildContent("Exponent"))
$xml.UpdateChildContent("SignaturePubKeyInfo|SignatureVersion","A005")
$xml.UpdateChildContent("PartnerID","")
$xml.UpdateChildContent("UserID","")
$($xml.GetXml())