gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated: test case, fix JAXB problem, key confu


From: gnunet
Subject: [libeufin] branch master updated: test case, fix JAXB problem, key confusion
Date: Mon, 03 Feb 2020 15:11:37 +0100

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new 15977a2  test case, fix JAXB problem, key confusion
15977a2 is described below

commit 15977a23724d993e6dc01d55b0947e5f20a91085
Author: Florian Dold <address@hidden>
AuthorDate: Mon Feb 3 15:11:29 2020 +0100

    test case, fix JAXB problem, key confusion
---
 nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt  |  19 +-
 util/src/main/kotlin/CryptoUtil.kt                 |  33 ++-
 util/src/main/kotlin/EbicsOrderUtil.kt             |   1 +
 util/src/main/kotlin/ebics_h004/EbicsTypes.kt      |   4 +-
 .../main/kotlin/ebics_h004/HTDResponseOrderData.kt |   1 -
 util/src/test/kotlin/EbicsOrderUtilTest.kt         | 274 +++++++++++++++++++++
 6 files changed, 320 insertions(+), 12 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index 08649fb..61e236c 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -258,6 +258,11 @@ fun main() {
                 if (response.value.body.returnCode.value != "000000") {
                     throw EbicsError(response.value.body.returnCode.value)
                 }
+
+                val encPubKeyDigestViaBank = 
(response.value.body.dataTransfer!!.dataEncryptionInfo as 
EbicsTypes.DataEncryptionInfo)
+                    .encryptionPubKeyDigest.value;
+                println("encPubKeyDigestViaBank 
${encPubKeyDigestViaBank.toHexString()}")
+
                 val er = CryptoUtil.EncryptionResult(
                     
response.value.body.dataTransfer!!.dataEncryptionInfo!!.transactionKey,
                     (response.value.body.dataTransfer!!.dataEncryptionInfo as 
EbicsTypes.DataEncryptionInfo)
@@ -267,7 +272,7 @@ fun main() {
 
                 val dataCompr = CryptoUtil.decryptEbicsE002(
                     er,
-                    subscriberData.customerEncPriv
+                    subscriberData.customerAuthPriv
                 )
                 val data = 
EbicsOrderUtil.decodeOrderDataXml<HTDResponseOrderData>(dataCompr)
                 logger.debug("HTD payload is: 
${XMLUtil.convertJaxbToString(data)}")
@@ -725,6 +730,7 @@ fun main() {
                     HttpStatusCode.OK
                 )
             }
+
             post("/ebics/subscribers/{id}/sync") {
                 val id = expectId(call.parameters["id"])
                 val bundle = transaction {
@@ -749,15 +755,20 @@ fun main() {
                 if (response.value.body.returnCode.value != "000000") {
                     throw EbicsError(response.value.body.returnCode.value)
                 }
+                val encPubKeyDigestViaBank = 
(response.value.body.dataTransfer!!.dataEncryptionInfo as 
EbicsTypes.DataEncryptionInfo)
+                    .encryptionPubKeyDigest.value;
+                val customerEncPub = 
CryptoUtil.getRsaPublicFromPrivate(bundle.customerEncPriv);
+                val encPubKeyDigestViaNexus = 
CryptoUtil.getEbicsPublicKeyHash(customerEncPub)
+                println("encPubKeyDigestViaBank: 
${encPubKeyDigestViaBank.toHexString()}")
+                println("encPubKeyDigestViaNexus: 
${encPubKeyDigestViaNexus.toHexString()}")
                 val er = CryptoUtil.EncryptionResult(
                     
response.value.body.dataTransfer!!.dataEncryptionInfo!!.transactionKey,
-                    (response.value.body.dataTransfer!!.dataEncryptionInfo as 
EbicsTypes.DataEncryptionInfo)
-                        .encryptionPubKeyDigest.value,
+                    encPubKeyDigestViaBank,
                     response.value.body.dataTransfer!!.orderData.value
                 )
                 val dataCompr = CryptoUtil.decryptEbicsE002(
                     er,
-                    bundle.customerEncPriv
+                    bundle.customerAuthPriv
                 )
                 val data = 
EbicsOrderUtil.decodeOrderDataXml<HPBResponseOrderData>(dataCompr)
                 // put bank's keys into database.
diff --git a/util/src/main/kotlin/CryptoUtil.kt 
b/util/src/main/kotlin/CryptoUtil.kt
index 65798cf..752c0e9 100644
--- a/util/src/main/kotlin/CryptoUtil.kt
+++ b/util/src/main/kotlin/CryptoUtil.kt
@@ -43,6 +43,7 @@ object CryptoUtil {
      * RSA key pair.
      */
     data class RsaCrtKeyPair(val private: RSAPrivateCrtKey, val public: 
RSAPublicKey)
+
     class EncryptionResult(
         val encryptedTransactionKey: ByteArray,
         val pubKeyDigest: ByteArray,
@@ -52,7 +53,9 @@ object CryptoUtil {
          */
         val plainTransactionKey: SecretKey? = null
     )
+
     private val bouncyCastleProvider = BouncyCastleProvider()
+
     /**
      * Load an RSA private key from its binary PKCS#8 encoding.
      */
@@ -63,6 +66,7 @@ object CryptoUtil {
             throw Exception("wrong encoding")
         return priv
     }
+
     /**
      * Load an RSA public key from its binary X509 encoding.
      */
@@ -73,6 +77,7 @@ object CryptoUtil {
             throw Exception("wrong encoding")
         return pub
     }
+
     /**
      * Load an RSA public key from its binary X509 encoding.
      */
@@ -83,6 +88,7 @@ object CryptoUtil {
             throw Exception("wrong encoding")
         return pub
     }
+
     /**
      * Generate a fresh RSA key pair.
      *
@@ -100,6 +106,7 @@ object CryptoUtil {
             throw Exception("key generation failed")
         return RsaCrtKeyPair(priv, pub)
     }
+
     /**
      * Load an RSA public key from its components.
      *
@@ -139,6 +146,7 @@ object CryptoUtil {
             transactionKey
         )
     }
+
     /**
      * Encrypt data according to the EBICS E002 encryption process.
      */
@@ -147,13 +155,15 @@ object CryptoUtil {
         encryptionPublicKey: RSAPublicKey,
         transactionKey: SecretKey
     ): EncryptionResult {
-        val symmetricCipher = Cipher.getInstance("AES/CBC/X9.23Padding",
+        val symmetricCipher = Cipher.getInstance(
+            "AES/CBC/X9.23Padding",
             bouncyCastleProvider
         )
         val ivParameterSpec = IvParameterSpec(ByteArray(16))
         symmetricCipher.init(Cipher.ENCRYPT_MODE, transactionKey, 
ivParameterSpec)
         val encryptedData = symmetricCipher.doFinal(data)
-        val asymmetricCipher = Cipher.getInstance("RSA/None/PKCS1Padding",
+        val asymmetricCipher = Cipher.getInstance(
+            "RSA/None/PKCS1Padding",
             bouncyCastleProvider
         )
         asymmetricCipher.init(Cipher.ENCRYPT_MODE, encryptionPublicKey)
@@ -166,6 +176,7 @@ object CryptoUtil {
             transactionKey
         )
     }
+
     fun decryptEbicsE002(enc: EncryptionResult, privateKey: RSAPrivateCrtKey): 
ByteArray {
         return decryptEbicsE002(
             enc.encryptedTransactionKey,
@@ -173,14 +184,21 @@ object CryptoUtil {
             privateKey
         )
     }
-    fun decryptEbicsE002(encryptedTransactionKey: ByteArray, encryptedData: 
ByteArray, privateKey: RSAPrivateCrtKey): ByteArray {
-        val asymmetricCipher = Cipher.getInstance("RSA/None/PKCS1Padding",
+
+    fun decryptEbicsE002(
+        encryptedTransactionKey: ByteArray,
+        encryptedData: ByteArray,
+        privateKey: RSAPrivateCrtKey
+    ): ByteArray {
+        val asymmetricCipher = Cipher.getInstance(
+            "RSA/None/PKCS1Padding",
             bouncyCastleProvider
         )
         asymmetricCipher.init(Cipher.DECRYPT_MODE, privateKey)
         val transactionKeyBytes = 
asymmetricCipher.doFinal(encryptedTransactionKey)
         val secretKeySpec = SecretKeySpec(transactionKeyBytes, "AES")
-        val symmetricCipher = Cipher.getInstance("AES/CBC/X9.23Padding",
+        val symmetricCipher = Cipher.getInstance(
+            "AES/CBC/X9.23Padding",
             bouncyCastleProvider
         )
         val ivParameterSpec = IvParameterSpec(ByteArray(16))
@@ -189,6 +207,7 @@ object CryptoUtil {
         val data = symmetricCipher.doFinal(encryptedData)
         return data
     }
+
     /**
      * Signing algorithm corresponding to the EBICS A006 signing process.
      *
@@ -203,6 +222,7 @@ object CryptoUtil {
         signature.update(data)
         return signature.sign()
     }
+
     fun verifyEbicsA006(sig: ByteArray, data: ByteArray, publicKey: 
RSAPublicKey): Boolean {
         val signature = Signature.getInstance("SHA256withRSA/PSS", 
bouncyCastleProvider)
         signature.setParameter(PSSParameterSpec("SHA-256", "MGF1", 
MGF1ParameterSpec.SHA256, 32, 1))
@@ -210,6 +230,7 @@ object CryptoUtil {
         signature.update(data)
         return signature.verify(sig)
     }
+
     fun digestEbicsOrderA006(orderData: ByteArray): ByteArray {
         val digest = MessageDigest.getInstance("SHA-256")
         for (b in orderData) {
@@ -220,6 +241,7 @@ object CryptoUtil {
         }
         return digest.digest()
     }
+
     fun decryptKey(data: EncryptedPrivateKeyInfo, passphrase: String): 
RSAPrivateCrtKey {
         /* make key out of passphrase */
         val pbeKeySpec = PBEKeySpec(passphrase.toCharArray())
@@ -239,6 +261,7 @@ object CryptoUtil {
             throw Exception("wrong encoding")
         return priv
     }
+
     fun encryptKey(data: ByteArray, passphrase: String): ByteArray {
         /* Cipher parameters: salt and hash count */
         val hashIterations = 30
diff --git a/util/src/main/kotlin/EbicsOrderUtil.kt 
b/util/src/main/kotlin/EbicsOrderUtil.kt
index b9c2d20..bcdc836 100644
--- a/util/src/main/kotlin/EbicsOrderUtil.kt
+++ b/util/src/main/kotlin/EbicsOrderUtil.kt
@@ -39,6 +39,7 @@ object EbicsOrderUtil {
     inline fun <reified T> decodeOrderDataXml(encodedOrderData: ByteArray): T {
         return InflaterInputStream(encodedOrderData.inputStream()).use {
             val bytes = it.readAllBytes()
+            println("decoded order data bytes 
${bytes.toString(Charsets.UTF_8)}")
             
XMLUtil.convertStringToJaxb<T>(bytes.toString(Charsets.UTF_8)).value
         }
     }
diff --git a/util/src/main/kotlin/ebics_h004/EbicsTypes.kt 
b/util/src/main/kotlin/ebics_h004/EbicsTypes.kt
index c101243..d362100 100644
--- a/util/src/main/kotlin/ebics_h004/EbicsTypes.kt
+++ b/util/src/main/kotlin/ebics_h004/EbicsTypes.kt
@@ -345,13 +345,13 @@ object EbicsTypes {
             XmlElement(name = "AccountNumber", type = 
GeneralAccountNumber::class),
             XmlElement(name = "NationalAccountNumber", type = 
NationalAccountNumber::class)
         )
-        var accountNumberList: List<AbstractAccountNumber>? = null
+        var accountNumberList: List<AbstractAccountNumber>? = 
LinkedList<AbstractAccountNumber>()
 
         @get:XmlElements(
             XmlElement(name = "BankCode", type = GeneralBankCode::class),
             XmlElement(name = "NationalBankCode", type = 
NationalBankCode::class)
         )
-        var bankCodeList: List<AbstractBankCode>? = null
+        var bankCodeList: List<AbstractBankCode>? = 
LinkedList<AbstractBankCode>()
 
         @get:XmlElement(name = "AccountHolder")
         var accountHolder: String? = null
diff --git a/util/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt 
b/util/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
index ac4c8d8..4162379 100644
--- a/util/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
+++ b/util/src/main/kotlin/ebics_h004/HTDResponseOrderData.kt
@@ -1,6 +1,5 @@
 package tech.libeufin.util.ebics_h004
 
-import java.security.Permission
 import javax.xml.bind.annotation.*
 
 @XmlAccessorType(XmlAccessType.NONE)
diff --git a/util/src/test/kotlin/EbicsOrderUtilTest.kt 
b/util/src/test/kotlin/EbicsOrderUtilTest.kt
index 2186f2f..3e0899f 100644
--- a/util/src/test/kotlin/EbicsOrderUtilTest.kt
+++ b/util/src/test/kotlin/EbicsOrderUtilTest.kt
@@ -1,5 +1,7 @@
 import org.junit.Test
 import tech.libeufin.util.EbicsOrderUtil
+import tech.libeufin.util.XMLUtil
+import tech.libeufin.util.ebics_h004.HTDResponseOrderData
 import kotlin.test.assertEquals
 
 
@@ -12,4 +14,276 @@ class EbicsOrderUtilTest {
         assertEquals("OR10", EbicsOrderUtil.computeOrderIDFromNumber(36))
         assertEquals("OR11", EbicsOrderUtil.computeOrderIDFromNumber(37))
     }
+
+    @Test
+    fun testDecodeOrderData() {
+        val orderDataXml = """
+            <?xml version="1.0" encoding="UTF-8"?>
+            <HTDResponseOrderData xmlns="urn:org:ebics:H004" 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="urn:org:ebics:H004 ebics_orders_H004.xsd">
+                <PartnerInfo>
+                    <AddressInfo>
+                        <Name>Mr Anybody</Name>
+                        <Street>CENSORED</Street>
+                        <PostCode>12345</PostCode>
+                        <City>Footown</City>
+                    </AddressInfo>
+                    <BankInfo>
+                        <HostID>BLABLUBLA</HostID>
+                    </BankInfo>
+                    <AccountInfo ID="accid000000001" Currency="EUR">
+                        <AccountNumber 
international="false">12345667</AccountNumber>
+                        <AccountNumber 
international="true">DE54430609999999999999</AccountNumber>
+                        <BankCode international="false">43060967</BankCode>
+                        <BankCode international="true">GENODEM1GLS</BankCode>
+                        <AccountHolder>Mr Anybody</AccountHolder>
+                    </AccountInfo>
+                    <OrderInfo>
+                        <OrderType>C52</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>CAMT052</OrderFormat>
+                        <Description>Abholen Vormerkposten</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>C53</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>CAMT053</OrderFormat>
+                        <Description>Abholen Kontoauszuege</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>C54</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>CAMT054</OrderFormat>
+                        <Description>Abholen Nachricht Sammelbuchungsdatei, 
Soll-, Haben-Avis</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CDZ</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>XMLBIN</OrderFormat>
+                        <Description>Abholen Payment Status Report for Direct 
Debit</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CRZ</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>XMLBIN</OrderFormat>
+                        <Description>Abholen Payment Status Report for Credit 
Transfer</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HAA</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Abrufbare Auftragsarten 
abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HAC</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>HAC</OrderFormat>
+                        <Description>Kundenprotokoll (XML-Format) 
abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HKD</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Kunden- und Teilnehmerdaten 
abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HPB</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Public Keys der Bank abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HPD</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Bankparameter abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HTD</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Kunden- und Teilnehmerdaten 
abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVD</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Status abrufen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVT</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Transaktionsdetails 
abrufen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVU</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Uebersicht abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVZ</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Uebersicht mit Zusatzinformationen 
abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>PTK</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>PTK</OrderFormat>
+                        <Description>Protokolldatei abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>STA</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MT940</OrderFormat>
+                        <Description>Swift-Tagesauszuege abholen</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>VMK</OrderType>
+                        <TransferType>Download</TransferType>
+                        <OrderFormat>MT942</OrderFormat>
+                        <Description>Abholen kurzfristige 
Vormerkposten</Description>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>AZV</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>DTAZVJS</OrderFormat>
+                        <Description>AZV im Diskettenformat 
senden</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>C1C</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>P8CCOR1</OrderFormat>
+                        <Description>Einreichen von Lastschriften D-1-Option 
in einem Container</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>C2C</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PN8CONCS</OrderFormat>
+                        <Description>Einreichen von Firmenlastschriften in 
einem Container</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CCC</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PN1CONCS</OrderFormat>
+                        <Description>Ueberweisungen im 
SEPA-Container</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CCT</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PN1GOCS</OrderFormat>
+                        <Description>Ɯberweisungen im ZKA-Format</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CCU</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>P1URGCS</OrderFormat>
+                        <Description>Einreichen von 
Eilueberweisungen</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CDB</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PAIN8CS</OrderFormat>
+                        <Description>Einreichen von 
Firmenlastschriften</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CDC</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PN8CONCS</OrderFormat>
+                        <Description>Einreichen von Lastschriften in einem 
Container</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>CDD</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>PN8GOCS</OrderFormat>
+                        <Description>Einreichen von Lastschriften</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HCA</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Public Key senden</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HCS</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Teilnehmerschluessel EU und EBICS 
aendern</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HIA</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Initiales Senden Public Keys</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVE</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Unterschrift hinzufuegen</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>HVS</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>VEU-Storno</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>INI</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Passwort-Initialisierung</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>PUB</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Public-Key senden</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                    <OrderInfo>
+                        <OrderType>SPR</OrderType>
+                        <TransferType>Upload</TransferType>
+                        <OrderFormat>MISC</OrderFormat>
+                        <Description>Sperrung der 
Zugangsberechtigung</Description>
+                        <NumSigRequired>0</NumSigRequired>
+                    </OrderInfo>
+                </PartnerInfo>
+                <UserInfo>
+                    <UserID Status="1">ANYBOMR</UserID>
+                    <Name>Mr Anybody</Name>
+                    <Permission>
+                        <OrderTypes>C52 C53 C54 CDZ CRZ HAA HAC HKD HPB HPD 
HTD HVD HVT HVU HVZ PTK</OrderTypes>
+                    </Permission>
+                    <Permission>
+                        <OrderTypes></OrderTypes>
+                        <AccountID>accid000000001</AccountID>
+                    </Permission>
+                    <Permission AuthorisationLevel="E">
+                        <OrderTypes>AZV CCC CCT CCU</OrderTypes>
+                    </Permission>
+                    <Permission AuthorisationLevel="T">
+                        <OrderTypes>HCA HCS HIA HVE HVS INI PUB 
SPR</OrderTypes>
+                    </Permission>
+                </UserInfo>
+            </HTDResponseOrderData>
+        """.trimIndent()
+        XMLUtil.convertStringToJaxb<HTDResponseOrderData>(orderDataXml);
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]