Java Requires Chilkat v11.0.0+
Chilkat2 Java
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 Java Downloads
import com.chilkatsoft.chilkat2.Cert;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.PublicKey;
import com.chilkatsoft.chilkat2.Xml;
public class ChilkatExample {
public static void main(String[] args) {
// 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 cert = new Cert();
try {
cert.loadPfxFile("qa_data/pfx/cert_test123.pfx", "test123");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
Xml xml = new Xml();
xml.setTag("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.getIssuerDN());
xml.updateChildContent("SignaturePubKeyInfo|ds:X509Data|X509IssuerSerial|ds:X509SerialNumber", cert.getSerialNumber());
xml.updateChildContent("SignaturePubKeyInfo|ds:X509Data|ds:X509Certificate", cert.getEncoded());
PublicKey pubkey = new PublicKey();
cert.getPublicKey(pubkey);
Xml xmlPubKey = new 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", "");
System.out.println(xml.getXml());
}
}