[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: more migration (compilation fails)
From: |
gnunet |
Subject: |
[libeufin] branch master updated: more migration (compilation fails) |
Date: |
Thu, 12 Dec 2019 16:08:26 +0100 |
This is an automated email from the git hooks/post-receive script.
marcello pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 0013763 more migration (compilation fails)
0013763 is described below
commit 00137637638ad04989f60f6def9d95a69715893b
Author: Marcello Stanisci <address@hidden>
AuthorDate: Thu Dec 12 16:08:14 2019 +0100
more migration (compilation fails)
---
.idea/gradle.xml | 1 +
.idea/kotlinc.xml | 2 +-
nexus/build.gradle | 2 +-
nexus/src/main/kotlin/Helpers.kt | 11 ++-
nexus/src/main/kotlin/Main.kt | 24 +++----
nexus/src/main/resources/logback.xml | 3 +-
nexus/src/test/kotlin/LetterFormatTest.kt | 2 +-
nexus/src/test/kotlin/SignatureDataTest.kt | 5 +-
sandbox/build.gradle | 2 +
.../src/main/kotlin/tech/libeufin/sandbox/DB.kt | 4 --
.../tech/libeufin/sandbox/EbicsProtocolBackend.kt | 80 +++++++++++++++++-----
.../src/main/kotlin/tech/libeufin/sandbox/Main.kt | 7 +-
sandbox/src/main/resources/logback.xml | 13 +---
sandbox/src/test/kotlin/CryptoUtilTest.kt | 1 +
sandbox/src/test/kotlin/EbicsMessagesTest.kt | 10 +--
sandbox/src/test/kotlin/EbicsOrderUtilTest.kt | 1 +
sandbox/src/test/kotlin/LogTest.kt | 8 +++
sandbox/src/test/kotlin/XmlCombinatorsTest.kt | 2 +
sandbox/src/test/kotlin/XmlUtilTest.kt | 13 ++--
.../sandbox => util/src/main/kotlin}/CryptoUtil.kt | 39 ++++++++---
.../src/main/kotlin}/EbicsOrderUtil.kt | 2 +-
.../sandbox => util/src/main/kotlin}/XMLUtil.kt | 2 +-
.../src/main/kotlin}/XmlCombinators.kt | 5 +-
util/src/main/kotlin/blob.kt | 8 +++
.../sandbox => util/src/main/kotlin}/hex.kt | 2 +-
util/src/main/kotlin/logger.kt | 6 ++
.../ebics_h004/EbicsKeyManagementResponse.kt | 2 +-
.../kotlin}/schema/ebics_h004/EbicsNpkdRequest.kt | 12 ++--
.../main/kotlin}/schema/ebics_h004/EbicsRequest.kt | 48 ++++++-------
.../kotlin}/schema/ebics_h004/EbicsResponse.kt | 65 +++++++++---------
.../main/kotlin}/schema/ebics_h004/EbicsTypes.kt | 10 +--
.../schema/ebics_h004/EbicsUnsecuredRequest.kt | 38 +++++-----
.../schema/ebics_h004/HIARequestOrderData.kt | 2 +-
.../schema/ebics_h004/HKDResponseOrderData.kt | 2 +-
.../schema/ebics_h004/HPBResponseOrderData.kt | 2 +-
.../schema/ebics_h004/HTDResponseOrderData.kt | 2 +-
.../kotlin}/schema/ebics_h004/package-info.java | 2 +-
.../main/kotlin}/schema/ebics_hev/EbicsMessages.kt | 2 +-
.../kotlin}/schema/ebics_hev/package-info.java | 2 +-
.../kotlin}/schema/ebics_s001/SignatureTypes.kt | 2 +-
.../kotlin}/schema/ebics_s001/UserSignatureData.kt | 2 +-
.../kotlin}/schema/ebics_s001/package-info.java | 2 +-
42 files changed, 261 insertions(+), 189 deletions(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 49f0342..7d86b4b 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -15,6 +15,7 @@
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/nexus" />
<option value="$PROJECT_DIR$/sandbox" />
+ <option value="$PROJECT_DIR$/util" />
</set>
</option>
<option name="useQualifiedModuleNames" value="true" />
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index 9b02d59..0dd4b35 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Kotlin2JvmCompilerArguments">
- <option name="jvmTarget" value="11" />
+ <option name="jvmTarget" value="1.8" />
</component>
</project>
\ No newline at end of file
diff --git a/nexus/build.gradle b/nexus/build.gradle
index faee97e..e427771 100644
--- a/nexus/build.gradle
+++ b/nexus/build.gradle
@@ -46,7 +46,7 @@ application {
}
dependencies {
- implementation project(":sandbox")
+ implementation project(":util")
compile "io.ktor:ktor-client-apache:1.2.4"
}
diff --git a/nexus/src/main/kotlin/Helpers.kt b/nexus/src/main/kotlin/Helpers.kt
index 4537d26..328a272 100644
--- a/nexus/src/main/kotlin/Helpers.kt
+++ b/nexus/src/main/kotlin/Helpers.kt
@@ -3,12 +3,11 @@ package tech.libeufin.nexus
import io.ktor.client.HttpClient
import io.ktor.client.request.post
import io.ktor.http.HttpStatusCode
-import tech.libeufin.sandbox.CryptoUtil
-import tech.libeufin.sandbox.XMLUtil
-import tech.libeufin.sandbox.LOGGER
-import tech.libeufin.sandbox.toByteArray
-import tech.libeufin.schema.ebics_h004.EbicsRequest
-import tech.libeufin.schema.ebics_s001.UserSignatureData
+import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.XMLUtil
+import tech.libeufin.util.schema.ebics_h004.EbicsRequest
+import tech.libeufin.util.schema.ebics_s001.UserSignatureData
+import tech.libeufin.util.toByteArray
import java.math.BigInteger
import java.security.PrivateKey
import java.security.SecureRandom
diff --git a/nexus/src/main/kotlin/Main.kt b/nexus/src/main/kotlin/Main.kt
index 159368d..9b10f01 100644
--- a/nexus/src/main/kotlin/Main.kt
+++ b/nexus/src/main/kotlin/Main.kt
@@ -25,7 +25,6 @@ import io.ktor.application.ApplicationCallPipeline
import io.ktor.application.call
import io.ktor.application.install
import io.ktor.client.*
-import io.ktor.client.request.post
import io.ktor.features.ContentNegotiation
import io.ktor.features.StatusPages
import io.ktor.gson.gson
@@ -38,30 +37,23 @@ import io.ktor.response.respondText
import io.ktor.routing.*
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
-import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.apache.xml.security.binding.xmldsig.SignatureType
import org.jetbrains.exposed.sql.transactions.transaction
import org.joda.time.DateTime
+import org.slf4j.Logger
import org.slf4j.LoggerFactory
-import tech.libeufin.sandbox.*
-import tech.libeufin.schema.ebics_h004.*
+import tech.libeufin.util.schema.ebics_h004.*
+import tech.libeufin.util.*
import java.text.DateFormat
import javax.sql.rowset.serial.SerialBlob
-import javax.xml.bind.JAXBElement
-import tech.libeufin.schema.ebics_s001.SignatureTypes
-import tech.libeufin.schema.ebics_s001.UserSignatureData
+import tech.libeufin.util.toHexString
+import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.EbicsOrderUtil
+import tech.libeufin.util.XMLUtil
import java.math.BigInteger
-import java.security.PrivateKey
-import java.security.SecureRandom
-import java.security.interfaces.RSAPrivateCrtKey
import java.text.SimpleDateFormat
import java.util.*
import java.util.zip.DeflaterInputStream
import javax.crypto.EncryptedPrivateKeyInfo
-import javax.xml.datatype.DatatypeFactory
-import javax.xml.datatype.XMLGregorianCalendar
-import java.security.interfaces.RSAPublicKey
-import java.time.LocalDate
fun testData() {
@@ -94,7 +86,7 @@ data class BadSignature(val statusCode: HttpStatusCode) :
Exception("Signature v
data class BadBackup(val statusCode: HttpStatusCode) : Exception("Could not
restore backed up keys")
data class BankInvalidResponse(val statusCode: HttpStatusCode) :
Exception("Missing data from bank response")
-
+val LOGGER: Logger = LoggerFactory.getLogger("tech.libeufin.nexus")
fun main() {
dbCreateTables()
diff --git a/nexus/src/main/resources/logback.xml
b/nexus/src/main/resources/logback.xml
index 3338034..84b1e60 100644
--- a/nexus/src/main/resources/logback.xml
+++ b/nexus/src/main/resources/logback.xml
@@ -1,3 +1,4 @@
+
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
@@ -21,7 +22,7 @@
</encoder>
</appender>
- <logger name="tech.libeufin.sandbox" level="DEBUG" additivity="false">
+ <logger name="tech.libeufin.util" level="TRACE" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="SANDBOX-FILE" />
</logger>
diff --git a/nexus/src/test/kotlin/LetterFormatTest.kt
b/nexus/src/test/kotlin/LetterFormatTest.kt
index f6a559c..f5a455e 100644
--- a/nexus/src/test/kotlin/LetterFormatTest.kt
+++ b/nexus/src/test/kotlin/LetterFormatTest.kt
@@ -1,7 +1,7 @@
package tech.libeufin.nexus
import org.junit.Test
-import tech.libeufin.sandbox.toHexString
+import tech.libeufin.util.toHexString
class LetterFormatTest {
diff --git a/nexus/src/test/kotlin/SignatureDataTest.kt
b/nexus/src/test/kotlin/SignatureDataTest.kt
index 8cd133a..38db472 100644
--- a/nexus/src/test/kotlin/SignatureDataTest.kt
+++ b/nexus/src/test/kotlin/SignatureDataTest.kt
@@ -1,10 +1,9 @@
package tech.libeufin.nexus
-import okio.internal.commonAsUtf8ToByteArray
-import tech.libeufin.sandbox.XMLUtil
+import tech.libeufin.util.XMLUtil
import org.apache.xml.security.binding.xmldsig.SignatureType
import org.junit.Test
-import tech.libeufin.sandbox.CryptoUtil
+import tech.libeufin.util.CryptoUtil
import tech.libeufin.schema.ebics_h004.EbicsRequest
import tech.libeufin.schema.ebics_h004.EbicsTypes
import java.math.BigInteger
diff --git a/sandbox/build.gradle b/sandbox/build.gradle
index f96a44a..573671d 100644
--- a/sandbox/build.gradle
+++ b/sandbox/build.gradle
@@ -46,6 +46,8 @@ dependencies {
testImplementation group: 'junit', name: 'junit', version: '4.12'
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit:1.3.50'
testImplementation 'org.jetbrains.kotlin:kotlin-test:1.3.50'
+
+ implementation project(":util")
}
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/DB.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/DB.kt
index 7b899bd..ea4eedd 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/DB.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/DB.kt
@@ -95,10 +95,6 @@ enum class KeyState {
RELEASED
}
-fun Blob.toByteArray(): ByteArray {
- return this.binaryStream.readAllBytes()
-}
-
/**
* Any number can become a Amount IF it does NOT need to be rounded to comply
to the scale == 2.
*/
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
index 46eae7b..00ad119 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
@@ -27,16 +27,20 @@ import io.ktor.request.receiveText
import io.ktor.response.respond
import io.ktor.response.respondText
import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import org.apache.xml.security.c14n.Canonicalizer
import org.jetbrains.exposed.sql.and
+import org.jetbrains.exposed.sql.stringParam
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.upperCase
import org.w3c.dom.Document
-import tech.libeufin.schema.ebics_h004.*
-import tech.libeufin.schema.ebics_hev.HEVResponse
-import tech.libeufin.schema.ebics_hev.SystemReturnCodeType
-import tech.libeufin.schema.ebics_s001.SignatureTypes
-import tech.libeufin.schema.ebics_s001.UserSignatureData
+import tech.libeufin.util.schema.ebics_h004.*
+import tech.libeufin.util.schema.ebics_hev.HEVResponse
+import tech.libeufin.util.schema.ebics_hev.SystemReturnCodeType
+import tech.libeufin.util.schema.ebics_s001.SignatureTypes
+import tech.libeufin.util.schema.ebics_s001.UserSignatureData
+import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.EbicsOrderUtil
+import tech.libeufin.util.XMLUtil
+import tech.libeufin.util.*
import java.security.interfaces.RSAPrivateCrtKey
import java.util.*
import java.util.zip.DeflaterInputStream
@@ -59,7 +63,6 @@ private class EbicsInvalidOrderType : EbicsRequestError(
"091005"
)
-
private suspend fun ApplicationCall.respondEbicsKeyManagement(
errorText: String,
errorCode: String,
@@ -108,6 +111,56 @@ private suspend fun
ApplicationCall.respondEbicsKeyManagement(
respondText(text, ContentType.Application.Xml, HttpStatusCode.OK)
}
+private fun ApplicationCall.handleEbicsC52(header: EbicsRequest.Header) {
+
+ val userId = header.static.userID!!
+ val od = header.static.orderDetails ?: throw Exception("Need
'OrderDetails'")
+ val op = od.orderParams ?: throw Exception("Need 'StandardOrderParams'")
+
+ /**
+ * (StandardOrderParams (DateRange (Start, End)))
+ */
+
+ val subscriber = transaction {
+ EbicsSubscriberEntity.find {
+ stringParam(userId) eq EbicsSubscribersTable.userId // will have
to match partner and system IDs
+ }
+ }.firstOrNull() ?: throw Exception("Unknown subscriber")
+
+ val history = extractHistoryForEach(
+ subscriber.bankCustomer.id.value,
+ (op as EbicsRequest.StandardOrderParams).dateRange?.start.toString(),
+ op.dateRange?.end.toString()) { println(it) }
+
+ val ret = constructXml(indent = true) {
+ namespace("foo", "bar")
+ root("foo:BkToCstmrAcctRpt") {
+ element("GrpHdr") {
+
+ element("MsgId") {
+ text("id under group header")
+ }
+ element("CreDtTm") {
+ text("now")
+ }
+ }
+ element("Rpt") {
+ element("Id") {
+ text("id under report")
+ }
+ element("Acct") {
+ text("account identifier")
+ }
+
+ }
+
+
+ }
+ }
+
+ // val str = XMLUtil.convertJaxbToString(ret)
+ // return str.toByteArray()
+}
private suspend fun ApplicationCall.handleEbicsHia(header:
EbicsUnsecuredRequest.Header, orderData: ByteArray) {
val plainOrderData = InflaterInputStream(orderData.inputStream()).use {
@@ -444,17 +497,6 @@ fun signEbicsResponseX002(ebicsResponse: EbicsResponse,
privateKey: RSAPrivateCr
return signedDoc
}
-
-class EbicsTransactionDetails(
-
-)
-
-
-fun queryEbicsTransactionDetails(ebicsRequest: EbicsRequest):
EbicsTransactionDetails {
- throw NotImplementedError()
-}
-
-
suspend fun ApplicationCall.ebicsweb() {
val requestDocument = receiveEbicsXml()
@@ -471,7 +513,6 @@ suspend fun ApplicationCall.ebicsweb() {
when (header.static.orderDetails.orderType) {
"INI" -> handleEbicsIni(header, orderData)
"HIA" -> handleEbicsHia(header, orderData)
- // "C52" -> handleEbicsC52(header, orderData)
else -> throw EbicsInvalidXmlError()
}
}
@@ -562,6 +603,7 @@ suspend fun ApplicationCall.ebicsweb() {
val response = when (orderType) {
"HTD" -> handleEbicsHtd()
"HKD" -> handleEbicsHkd()
+ // "C52" ->
handleEbicsC52(requestObject.header)
else -> throw EbicsInvalidXmlError()
}
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
index 6a0cc09..f76ca95 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -38,16 +38,14 @@ import io.ktor.routing.post
import io.ktor.routing.routing
import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty
-import org.jetbrains.exposed.sql.GreaterEqOp
-import org.jetbrains.exposed.sql.LessEqOp
import org.jetbrains.exposed.sql.and
-import org.jetbrains.exposed.sql.dateTimeParam
import org.jetbrains.exposed.sql.transactions.transaction
import org.joda.time.DateTime
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.slf4j.event.Level
import org.w3c.dom.Document
+import tech.libeufin.util.CryptoUtil
import java.lang.ArithmeticException
import java.math.BigDecimal
import java.security.interfaces.RSAPublicKey
@@ -163,11 +161,8 @@ fun sampleData() {
date = DateTime.now()
localCustomer = customerEntity
}
-
}
}
-
-
}
fun extractHistoryForEach(id: Int, start: String?, end: String?, builder:
(BankTransactionEntity) -> Any) {
diff --git a/sandbox/src/main/resources/logback.xml
b/sandbox/src/main/resources/logback.xml
index 3338034..7df7bcc 100644
--- a/sandbox/src/main/resources/logback.xml
+++ b/sandbox/src/main/resources/logback.xml
@@ -13,24 +13,17 @@
</encoder>
</appender>
- <appender name="NEXUS-FILE" class="ch.qos.logback.core.FileAppender">
- <file>/tmp/nexus.log</file>
- <append>false</append>
- <encoder>
- <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
- </encoder>
- </appender>
-
<logger name="tech.libeufin.sandbox" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="SANDBOX-FILE" />
</logger>
- <logger name="tech.libeufin.nexus" level="TRACE" additivity="false">
+ <logger name="tech.libeufin.util" level="TRACE" additivity="false">
<appender-ref ref="STDOUT" />
- <appender-ref ref="NEXUS-FILE" />
+ <appender-ref ref="SANDBOX-FILE" />
</logger>
+
<logger name="io.netty" level="WARN" />
<logger name="ktor" level="WARN" />
<logger name="Exposed" level="WARN" />
diff --git a/sandbox/src/test/kotlin/CryptoUtilTest.kt
b/sandbox/src/test/kotlin/CryptoUtilTest.kt
index 229e067..0891c18 100644
--- a/sandbox/src/test/kotlin/CryptoUtilTest.kt
+++ b/sandbox/src/test/kotlin/CryptoUtilTest.kt
@@ -20,6 +20,7 @@
package tech.libeufin.sandbox
import org.junit.Test
+import tech.libeufin.util.CryptoUtil
import java.security.KeyPairGenerator
import java.security.interfaces.RSAPrivateCrtKey
import javax.crypto.EncryptedPrivateKeyInfo
diff --git a/sandbox/src/test/kotlin/EbicsMessagesTest.kt
b/sandbox/src/test/kotlin/EbicsMessagesTest.kt
index f3a9325..cbe9a55 100644
--- a/sandbox/src/test/kotlin/EbicsMessagesTest.kt
+++ b/sandbox/src/test/kotlin/EbicsMessagesTest.kt
@@ -4,10 +4,12 @@ import junit.framework.TestCase.assertEquals
import org.apache.xml.security.binding.xmldsig.SignatureType
import org.junit.Test
import org.w3c.dom.Element
-import tech.libeufin.schema.ebics_h004.*
-import tech.libeufin.schema.ebics_hev.HEVResponse
-import tech.libeufin.schema.ebics_hev.SystemReturnCodeType
-import tech.libeufin.schema.ebics_s001.SignatureTypes
+import tech.libeufin.util.schema.ebics_h004.*
+import tech.libeufin.util.schema.ebics_hev.HEVResponse
+import tech.libeufin.util.schema.ebics_hev.SystemReturnCodeType
+import tech.libeufin.util.schema.ebics_s001.SignatureTypes
+import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.XMLUtil
import javax.xml.datatype.DatatypeFactory
import kotlin.test.assertNotNull
import kotlin.test.assertTrue
diff --git a/sandbox/src/test/kotlin/EbicsOrderUtilTest.kt
b/sandbox/src/test/kotlin/EbicsOrderUtilTest.kt
index c35794e..9020ad6 100644
--- a/sandbox/src/test/kotlin/EbicsOrderUtilTest.kt
+++ b/sandbox/src/test/kotlin/EbicsOrderUtilTest.kt
@@ -1,6 +1,7 @@
package tech.libeufin.sandbox
import org.junit.Test
+import tech.libeufin.util.EbicsOrderUtil
import kotlin.test.assertEquals
diff --git a/sandbox/src/test/kotlin/LogTest.kt
b/sandbox/src/test/kotlin/LogTest.kt
index 0316c1d..c8a9479 100644
--- a/sandbox/src/test/kotlin/LogTest.kt
+++ b/sandbox/src/test/kotlin/LogTest.kt
@@ -5,6 +5,8 @@ import org.junit.Test
import org.junit.Assert.*
import org.slf4j.LoggerFactory
import java.net.URLClassLoader
+import tech.libeufin.util.LOGGER as utilLogger
+
class LogTest {
@@ -15,5 +17,11 @@ class LogTest {
loggerSandbox.info("line")
loggerNexus.trace("other line")
}
+
+ @Test
+ fun logFromUtil() {
+ /* This log should show up with 'util' name but without this latter
owning a logback.xml */
+ utilLogger.trace("shown")
+ }
}
diff --git a/sandbox/src/test/kotlin/XmlCombinatorsTest.kt
b/sandbox/src/test/kotlin/XmlCombinatorsTest.kt
index 1cc509c..f2b2148 100644
--- a/sandbox/src/test/kotlin/XmlCombinatorsTest.kt
+++ b/sandbox/src/test/kotlin/XmlCombinatorsTest.kt
@@ -20,6 +20,7 @@
package tech.libeufin.sandbox
import org.junit.Test
+import tech.libeufin.util.constructXml
class XmlCombinatorsTest {
@@ -36,6 +37,7 @@ class XmlCombinatorsTest {
element("g/h/")
}
}
+ element("one more")
}
}
println(s)
diff --git a/sandbox/src/test/kotlin/XmlUtilTest.kt
b/sandbox/src/test/kotlin/XmlUtilTest.kt
index 3260661..5367d69 100644
--- a/sandbox/src/test/kotlin/XmlUtilTest.kt
+++ b/sandbox/src/test/kotlin/XmlUtilTest.kt
@@ -4,13 +4,12 @@ import org.apache.xml.security.binding.xmldsig.SignatureType
import org.junit.Test
import org.junit.Assert.*
import org.junit.Ignore
-import org.junit.rules.ExpectedException
-import org.xml.sax.SAXParseException
-import tech.libeufin.schema.ebics_h004.EbicsKeyManagementResponse
-import tech.libeufin.schema.ebics_h004.EbicsResponse
-import tech.libeufin.schema.ebics_h004.EbicsTypes
-import tech.libeufin.schema.ebics_h004.HTDResponseOrderData
-import java.rmi.UnmarshalException
+import tech.libeufin.util.schema.ebics_h004.EbicsKeyManagementResponse
+import tech.libeufin.util.schema.ebics_h004.EbicsResponse
+import tech.libeufin.util.schema.ebics_h004.EbicsTypes
+import tech.libeufin.util.schema.ebics_h004.HTDResponseOrderData
+import tech.libeufin.util.CryptoUtil
+import tech.libeufin.util.XMLUtil
import java.security.KeyPairGenerator
import java.util.*
import javax.xml.transform.stream.StreamSource
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/CryptoUtil.kt
b/util/src/main/kotlin/CryptoUtil.kt
similarity index 93%
rename from sandbox/src/main/kotlin/tech/libeufin/sandbox/CryptoUtil.kt
rename to util/src/main/kotlin/CryptoUtil.kt
index 00690ce..0d7d86f 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/CryptoUtil.kt
+++ b/util/src/main/kotlin/CryptoUtil.kt
@@ -17,9 +17,11 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.sandbox
+package tech.libeufin.util
import org.bouncycastle.jce.provider.BouncyCastleProvider
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
import java.io.ByteArrayOutputStream
import java.math.BigInteger
import java.security.*
@@ -138,7 +140,11 @@ object CryptoUtil {
val keygen = KeyGenerator.getInstance("AES", bouncyCastleProvider)
keygen.init(128)
val transactionKey = keygen.generateKey()
- return encryptEbicsE002withTransactionKey(data, encryptionPublicKey,
transactionKey)
+ return encryptEbicsE002withTransactionKey(
+ data,
+ encryptionPublicKey,
+ transactionKey
+ )
}
/**
@@ -150,27 +156,44 @@ object CryptoUtil {
transactionKey: SecretKey
): EncryptionResult {
- val symmetricCipher = Cipher.getInstance("AES/CBC/X9.23Padding",
bouncyCastleProvider)
+ 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",
bouncyCastleProvider)
+ val asymmetricCipher = Cipher.getInstance("RSA/None/PKCS1Padding",
+ bouncyCastleProvider
+ )
asymmetricCipher.init(Cipher.ENCRYPT_MODE, encryptionPublicKey)
val encryptedTransactionKey =
asymmetricCipher.doFinal(transactionKey.encoded)
val pubKeyDigest = getEbicsPublicKeyHash(encryptionPublicKey)
- return EncryptionResult(encryptedTransactionKey, pubKeyDigest,
encryptedData, transactionKey)
+ return EncryptionResult(
+ encryptedTransactionKey,
+ pubKeyDigest,
+ encryptedData,
+ transactionKey
+ )
}
fun decryptEbicsE002(enc: EncryptionResult, privateKey: RSAPrivateCrtKey):
ByteArray {
- return decryptEbicsE002(enc.encryptedTransactionKey,
enc.encryptedData, privateKey)
+ return decryptEbicsE002(
+ enc.encryptedTransactionKey,
+ enc.encryptedData,
+ privateKey
+ )
}
fun decryptEbicsE002(encryptedTransactionKey: ByteArray, encryptedData:
ByteArray, privateKey: RSAPrivateCrtKey): ByteArray {
- val asymmetricCipher = Cipher.getInstance("RSA/None/PKCS1Padding",
bouncyCastleProvider)
+ 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",
bouncyCastleProvider)
+ val symmetricCipher = Cipher.getInstance("AES/CBC/X9.23Padding",
+ bouncyCastleProvider
+ )
val ivParameterSpec = IvParameterSpec(ByteArray(16))
symmetricCipher.init(Cipher.DECRYPT_MODE, secretKeySpec,
ivParameterSpec)
LOGGER.debug("decrypting: ${encryptedData.toHexString()}")
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsOrderUtil.kt
b/util/src/main/kotlin/EbicsOrderUtil.kt
similarity index 98%
rename from sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsOrderUtil.kt
rename to util/src/main/kotlin/EbicsOrderUtil.kt
index 2edfd8e..a271c85 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsOrderUtil.kt
+++ b/util/src/main/kotlin/EbicsOrderUtil.kt
@@ -17,7 +17,7 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.sandbox
+package tech.libeufin.util
import java.lang.IllegalArgumentException
import java.security.SecureRandom
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/XMLUtil.kt
b/util/src/main/kotlin/XMLUtil.kt
similarity index 99%
rename from sandbox/src/main/kotlin/tech/libeufin/sandbox/XMLUtil.kt
rename to util/src/main/kotlin/XMLUtil.kt
index 6f49d95..b871108 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/XMLUtil.kt
+++ b/util/src/main/kotlin/XMLUtil.kt
@@ -17,7 +17,7 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.sandbox
+package tech.libeufin.util
import com.sun.org.apache.xerces.internal.dom.DOMInputImpl
import org.w3c.dom.Document
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/XmlCombinators.kt
b/util/src/main/kotlin/XmlCombinators.kt
similarity index 96%
rename from sandbox/src/main/kotlin/tech/libeufin/sandbox/XmlCombinators.kt
rename to util/src/main/kotlin/XmlCombinators.kt
index 26fc940..1ef44e8 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/XmlCombinators.kt
+++ b/util/src/main/kotlin/XmlCombinators.kt
@@ -1,9 +1,7 @@
-package tech.libeufin.sandbox
+package tech.libeufin.util
import com.sun.xml.txw2.output.IndentingXMLStreamWriter
-import org.jetbrains.exposed.sql.Op
import java.io.StringWriter
-import java.util.*
import javax.xml.stream.XMLOutputFactory
import javax.xml.stream.XMLStreamWriter
@@ -23,7 +21,6 @@ class XmlElementBuilder(val w: XMLStreamWriter) {
}
fun element(path: String, f: XmlElementBuilder.() -> Unit = {}) {
-
val splitPath = path.trim('/').split("/").toMutableList()
this.element(splitPath, f)
}
diff --git a/util/src/main/kotlin/blob.kt b/util/src/main/kotlin/blob.kt
new file mode 100644
index 0000000..cb9250f
--- /dev/null
+++ b/util/src/main/kotlin/blob.kt
@@ -0,0 +1,8 @@
+package tech.libeufin.util
+
+import java.sql.Blob
+
+fun Blob.toByteArray(): ByteArray {
+ return this.binaryStream.readAllBytes()
+}
+
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/hex.kt
b/util/src/main/kotlin/hex.kt
similarity index 80%
rename from sandbox/src/main/kotlin/tech/libeufin/sandbox/hex.kt
rename to util/src/main/kotlin/hex.kt
index 11b4afb..b14d730 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/hex.kt
+++ b/util/src/main/kotlin/hex.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.sandbox
+package tech.libeufin.util
fun ByteArray.toHexString() : String {
return this.joinToString("") {
diff --git a/util/src/main/kotlin/logger.kt b/util/src/main/kotlin/logger.kt
new file mode 100644
index 0000000..f42b470
--- /dev/null
+++ b/util/src/main/kotlin/logger.kt
@@ -0,0 +1,6 @@
+package tech.libeufin.util
+
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
+
+val LOGGER: Logger = LoggerFactory.getLogger("tech.libeufin.util")
\ No newline at end of file
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsKeyManagementResponse.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsKeyManagementResponse.kt
similarity index 98%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsKeyManagementResponse.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsKeyManagementResponse.kt
index 7d4ec06..2d49808 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsKeyManagementResponse.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsKeyManagementResponse.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsNpkdRequest.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsNpkdRequest.kt
similarity index 92%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsNpkdRequest.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsNpkdRequest.kt
index 34f7ed2..b16c4fc 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsNpkdRequest.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsNpkdRequest.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import org.apache.xml.security.binding.xmldsig.SignatureType
import javax.xml.bind.annotation.*
@@ -112,22 +112,22 @@ class EbicsNpkdRequest {
return EbicsNpkdRequest().apply {
version = "H004"
revision = 1
- header = EbicsNpkdRequest.Header().apply {
+ header = Header().apply {
authenticate = true
- mutable = EbicsNpkdRequest.EmptyMutableHeader()
- static = EbicsNpkdRequest.StaticHeaderType().apply {
+ mutable = EmptyMutableHeader()
+ static = StaticHeaderType().apply {
hostID = hostId
partnerID = partnerId
userID = userId
securityMedium = "0000"
- orderDetails = EbicsNpkdRequest.OrderDetails()
+ orderDetails = OrderDetails()
orderDetails.orderType = "HPB"
orderDetails.orderAttribute = "DZHNN"
nonce = aNonce
timestamp = date
}
}
- body = EbicsNpkdRequest.EmptyBody()
+ body = EmptyBody()
authSignature = SignatureType()
}
}
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsRequest.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsRequest.kt
similarity index 91%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsRequest.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsRequest.kt
index b733c95..3a1e97a 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsRequest.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsRequest.kt
@@ -1,9 +1,7 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
-import io.ktor.http.HttpStatusCode
import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.sandbox.CryptoUtil
-import tech.libeufin.sandbox.toByteArray
+import tech.libeufin.util.CryptoUtil
import java.math.BigInteger
import java.security.interfaces.RSAPublicKey
import javax.xml.bind.annotation.*
@@ -259,7 +257,7 @@ class EbicsRequest {
@get:XmlElement(name = "Start")
lateinit var start: XMLGregorianCalendar
- @get:XmlElement(name = "END")
+ @get:XmlElement(name = "End")
lateinit var end: XMLGregorianCalendar
}
@@ -319,7 +317,7 @@ class EbicsRequest {
dateEnd: XMLGregorianCalendar
): EbicsRequest {
- val tmp = this.createForDownloadInitializationPhase(
+ val tmp = createForDownloadInitializationPhase(
userId,
partnerId,
hostId,
@@ -359,19 +357,19 @@ class EbicsRequest {
body = Body()
header = Header().apply {
authenticate = true
- static = EbicsRequest.StaticHeaderType().apply {
+ static = StaticHeaderType().apply {
userID = userId
partnerID = partnerId
hostID = hostId
nonce = nonceArg
timestamp = date
partnerID = partnerId
- orderDetails = EbicsRequest.OrderDetails().apply {
+ orderDetails = OrderDetails().apply {
orderType = aOrderType
orderAttribute = "DZHNN"
- orderParams = EbicsRequest.StandardOrderParams()
+ orderParams = StandardOrderParams()
}
- bankPubKeyDigests =
EbicsRequest.BankPubKeyDigests().apply {
+ bankPubKeyDigests = BankPubKeyDigests().apply {
authentication = EbicsTypes.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "X002"
@@ -384,8 +382,9 @@ class EbicsRequest {
}
securityMedium = "0000"
}
- mutable = EbicsRequest.MutableHeader().apply {
- transactionPhase =
EbicsTypes.TransactionPhaseType.INITIALISATION
+ mutable = MutableHeader().apply {
+ transactionPhase =
+ EbicsTypes.TransactionPhaseType.INITIALISATION
}
}
}
@@ -406,22 +405,22 @@ class EbicsRequest {
): EbicsRequest {
return EbicsRequest().apply {
- header = EbicsRequest.Header().apply {
+ header = Header().apply {
version = "H004"
revision = 1
authenticate = true
- static = EbicsRequest.StaticHeaderType().apply {
+ static = StaticHeaderType().apply {
hostID = hostId
nonce = nonceArg
timestamp = date
partnerID = partnerId
userID = userId
- orderDetails = EbicsRequest.OrderDetails().apply {
+ orderDetails = OrderDetails().apply {
orderType = aOrderType
orderAttribute = "OZHNN"
- orderParams = EbicsRequest.StandardOrderParams()
+ orderParams = StandardOrderParams()
}
- bankPubKeyDigests =
EbicsRequest.BankPubKeyDigests().apply {
+ bankPubKeyDigests = BankPubKeyDigests().apply {
authentication = EbicsTypes.PubKeyDigest().apply {
algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
version = "X002"
@@ -436,14 +435,15 @@ class EbicsRequest {
securityMedium = "0000"
numSegments = segmentsNumber
}
- mutable = EbicsRequest.MutableHeader().apply {
- transactionPhase =
EbicsTypes.TransactionPhaseType.INITIALISATION
+ mutable = MutableHeader().apply {
+ transactionPhase =
+ EbicsTypes.TransactionPhaseType.INITIALISATION
}
}
authSignature = SignatureType()
- body = EbicsRequest.Body().apply {
- dataTransfer = EbicsRequest.DataTransfer().apply {
- signatureData = EbicsRequest.SignatureData().apply {
+ body = Body().apply {
+ dataTransfer = DataTransfer().apply {
+ signatureData = SignatureData().apply {
authenticate = true
value = cryptoBundle.encryptedData
}
@@ -490,8 +490,8 @@ class EbicsRequest {
}
authSignature = SignatureType()
- body = EbicsRequest.Body().apply {
- dataTransfer = EbicsRequest.DataTransfer().apply {
+ body = Body().apply {
+ dataTransfer = DataTransfer().apply {
orderData = encryptedData
}
}
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsResponse.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsResponse.kt
similarity index 81%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsResponse.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsResponse.kt
index 4ba6949..bca7937 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsResponse.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsResponse.kt
@@ -1,14 +1,12 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import org.apache.xml.security.binding.xmldsig.SignatureType
-import tech.libeufin.sandbox.CryptoUtil
+import tech.libeufin.util.CryptoUtil
import java.math.BigInteger
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
-import javax.xml.bind.annotation.adapters.HexBinaryAdapter
import javax.xml.bind.annotation.adapters.NormalizedStringAdapter
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-import javax.xml.namespace.QName
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "", propOrder = ["header", "authSignature", "body"])
@@ -129,21 +127,22 @@ class EbicsResponse {
return EbicsResponse().apply {
this.version = "H004"
this.revision = 1
- this.header = EbicsResponse.Header().apply {
+ this.header = Header().apply {
this.authenticate = true
- this._static = EbicsResponse.StaticHeaderType().apply {
+ this._static = StaticHeaderType().apply {
this.transactionID = transactionID
}
- this.mutable = EbicsResponse.MutableHeaderType().apply {
- this.transactionPhase =
EbicsTypes.TransactionPhaseType.INITIALISATION
+ this.mutable = MutableHeaderType().apply {
+ this.transactionPhase =
+ EbicsTypes.TransactionPhaseType.INITIALISATION
this.orderID = orderID
this.reportText = "[EBICS_OK] OK"
this.returnCode = "000000"
}
}
this.authSignature = SignatureType()
- this.body = EbicsResponse.Body().apply {
- this.returnCode = EbicsResponse.ReturnCode().apply {
+ this.body = Body().apply {
+ this.returnCode = ReturnCode().apply {
this.authenticate = true
this.value = "000000"
}
@@ -156,13 +155,14 @@ class EbicsResponse {
return EbicsResponse().apply {
this.version = "H004"
this.revision = 1
- this.header = EbicsResponse.Header().apply {
+ this.header = Header().apply {
this.authenticate = true
- this._static = EbicsResponse.StaticHeaderType().apply {
+ this._static = StaticHeaderType().apply {
this.transactionID = transactionID
}
- this.mutable = EbicsResponse.MutableHeaderType().apply {
- this.transactionPhase =
EbicsTypes.TransactionPhaseType.RECEIPT
+ this.mutable = MutableHeaderType().apply {
+ this.transactionPhase =
+ EbicsTypes.TransactionPhaseType.RECEIPT
if (positiveAck) {
this.reportText =
"[EBICS_DOWNLOAD_POSTPROCESS_DONE] Received positive receipt"
this.returnCode = "011000"
@@ -173,8 +173,8 @@ class EbicsResponse {
}
}
this.authSignature = SignatureType()
- this.body = EbicsResponse.Body().apply {
- this.returnCode = EbicsResponse.ReturnCode().apply {
+ this.body = Body().apply {
+ this.returnCode = ReturnCode().apply {
this.authenticate = true
this.value = "000000"
}
@@ -192,13 +192,14 @@ class EbicsResponse {
return EbicsResponse().apply {
this.version = "H004"
this.revision = 1
- this.header = EbicsResponse.Header().apply {
+ this.header = Header().apply {
this.authenticate = true
- this._static = EbicsResponse.StaticHeaderType().apply {
+ this._static = StaticHeaderType().apply {
this.transactionID = transactionID
}
- this.mutable = EbicsResponse.MutableHeaderType().apply {
- this.transactionPhase =
EbicsTypes.TransactionPhaseType.TRANSFER
+ this.mutable = MutableHeaderType().apply {
+ this.transactionPhase =
+ EbicsTypes.TransactionPhaseType.TRANSFER
this.segmentNumber = EbicsTypes.SegmentNumber().apply {
this.value =
BigInteger.valueOf(segmentNumber.toLong())
if (lastSegment) {
@@ -211,8 +212,8 @@ class EbicsResponse {
}
}
this.authSignature = SignatureType()
- this.body = EbicsResponse.Body().apply {
- this.returnCode = EbicsResponse.ReturnCode().apply {
+ this.body = Body().apply {
+ this.returnCode = ReturnCode().apply {
this.authenticate = true
this.value = "000000"
}
@@ -230,14 +231,15 @@ class EbicsResponse {
return EbicsResponse().apply {
this.version = "H004"
this.revision = 1
- this.header = EbicsResponse.Header().apply {
+ this.header = Header().apply {
this.authenticate = true
- this._static = EbicsResponse.StaticHeaderType().apply {
+ this._static = StaticHeaderType().apply {
this.transactionID = transactionID
this.numSegments =
BigInteger.valueOf(numSegments.toLong())
}
- this.mutable = EbicsResponse.MutableHeaderType().apply {
- this.transactionPhase =
EbicsTypes.TransactionPhaseType.INITIALISATION
+ this.mutable = MutableHeaderType().apply {
+ this.transactionPhase =
+ EbicsTypes.TransactionPhaseType.INITIALISATION
this.segmentNumber = EbicsTypes.SegmentNumber().apply {
this.lastSegment = (numSegments == 1)
this.value = BigInteger.valueOf(1)
@@ -247,22 +249,23 @@ class EbicsResponse {
}
}
this.authSignature = SignatureType()
- this.body = EbicsResponse.Body().apply {
- this.returnCode = EbicsResponse.ReturnCode().apply {
+ this.body = Body().apply {
+ this.returnCode = ReturnCode().apply {
this.authenticate = true
this.value = "000000"
}
- this.dataTransfer =
EbicsResponse.DataTransferResponseType().apply {
+ this.dataTransfer = DataTransferResponseType().apply {
this.dataEncryptionInfo =
EbicsTypes.DataEncryptionInfo().apply {
this.authenticate = true
- this.encryptionPubKeyDigest =
EbicsTypes.PubKeyDigest().apply {
+ this.encryptionPubKeyDigest =
EbicsTypes.PubKeyDigest()
+ .apply {
this.algorithm =
"http://www.w3.org/2001/04/xmlenc#sha256"
this.version = "E002"
this.value = enc.pubKeyDigest
}
this.transactionKey = enc.encryptedTransactionKey
}
- this.orderData = EbicsResponse.OrderData().apply {
+ this.orderData = OrderData().apply {
this.value = encodedData.substring(0,
Math.min(segmentSize, encodedData.length))
}
}
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsTypes.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsTypes.kt
similarity index 97%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsTypes.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsTypes.kt
index 092ded5..c6bd88c 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsTypes.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsTypes.kt
@@ -17,7 +17,7 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
import org.w3c.dom.Element
@@ -241,7 +241,7 @@ object EbicsTypes {
lateinit var orderType: String
@get:XmlElement(name = "FileFormat")
- val fileFormat: EbicsTypes.FileFormatType? = null
+ val fileFormat: FileFormatType? = null
@get:XmlElement(name = "TransferType")
lateinit var transferType: String
@@ -288,7 +288,7 @@ object EbicsTypes {
var orderTypes: String? = null
@get:XmlElement(name = "FileFormat")
- val fileFormat: EbicsTypes.FileFormatType? = null
+ val fileFormat: FileFormatType? = null
@get:XmlElement(name = "AccountID")
val accountID: String? = null
@@ -325,8 +325,8 @@ object EbicsTypes {
@get:XmlElement(name = "HostID")
lateinit var hostID: String
- @get:XmlElement(type = EbicsTypes.Parameter::class)
- var parameters: List<EbicsTypes.Parameter>? = null
+ @get:XmlElement(type = Parameter::class)
+ var parameters: List<Parameter>? = null
}
@XmlAccessorType(XmlAccessType.NONE)
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsUnsecuredRequest.kt
b/util/src/main/kotlin/schema/ebics_h004/EbicsUnsecuredRequest.kt
similarity index 86%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsUnsecuredRequest.kt
rename to util/src/main/kotlin/schema/ebics_h004/EbicsUnsecuredRequest.kt
index 373bc8b..83cb0e2 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/EbicsUnsecuredRequest.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/EbicsUnsecuredRequest.kt
@@ -1,8 +1,8 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
-import tech.libeufin.sandbox.EbicsOrderUtil
-import tech.libeufin.schema.ebics_s001.SignatureTypes
+import tech.libeufin.util.EbicsOrderUtil
+import tech.libeufin.util.schema.ebics_s001.SignatureTypes
import java.security.interfaces.RSAPrivateCrtKey
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
@@ -122,10 +122,10 @@ class EbicsUnsecuredRequest {
version = "H004"
revision = 1
- header = EbicsUnsecuredRequest.Header().apply {
+ header = Header().apply {
authenticate = true
- static = EbicsUnsecuredRequest.StaticHeaderType().apply {
- orderDetails =
EbicsUnsecuredRequest.OrderDetails().apply {
+ static = StaticHeaderType().apply {
+ orderDetails = OrderDetails().apply {
orderAttribute = "DZNNN"
orderType = "HIA"
securityMedium = "0000"
@@ -134,14 +134,15 @@ class EbicsUnsecuredRequest {
partnerID = partnerId
}
}
- mutable = EbicsUnsecuredRequest.Header.EmptyMutableHeader()
+ mutable = Header.EmptyMutableHeader()
}
- body = EbicsUnsecuredRequest.Body().apply {
- dataTransfer =
EbicsUnsecuredRequest.UnsecuredDataTransfer().apply {
- orderData = EbicsUnsecuredRequest.OrderData().apply {
+ body = Body().apply {
+ dataTransfer = UnsecuredDataTransfer().apply {
+ orderData = OrderData().apply {
value = EbicsOrderUtil.encodeOrderDataXml(
HIARequestOrderData().apply {
- authenticationPubKeyInfo =
EbicsTypes.AuthenticationPubKeyInfoType().apply {
+ authenticationPubKeyInfo =
EbicsTypes.AuthenticationPubKeyInfoType()
+ .apply {
pubKeyValue =
EbicsTypes.PubKeyValueType().apply {
rsaKeyValue =
RSAKeyValueType().apply {
exponent =
authKey.publicExponent.toByteArray()
@@ -150,7 +151,8 @@ class EbicsUnsecuredRequest {
}
authenticationVersion = "X002"
}
- encryptionPubKeyInfo =
EbicsTypes.EncryptionPubKeyInfoType().apply {
+ encryptionPubKeyInfo =
EbicsTypes.EncryptionPubKeyInfoType()
+ .apply {
pubKeyValue =
EbicsTypes.PubKeyValueType().apply {
rsaKeyValue =
RSAKeyValueType().apply {
exponent =
encKey.publicExponent.toByteArray()
@@ -180,10 +182,10 @@ class EbicsUnsecuredRequest {
return EbicsUnsecuredRequest().apply {
version = "H004"
revision = 1
- header = EbicsUnsecuredRequest.Header().apply {
+ header = Header().apply {
authenticate = true
- static = EbicsUnsecuredRequest.StaticHeaderType().apply {
- orderDetails =
EbicsUnsecuredRequest.OrderDetails().apply {
+ static = StaticHeaderType().apply {
+ orderDetails = OrderDetails().apply {
orderAttribute = "DZNNN"
orderType = "INI"
securityMedium = "0000"
@@ -192,11 +194,11 @@ class EbicsUnsecuredRequest {
partnerID = partnerId
}
}
- mutable = EbicsUnsecuredRequest.Header.EmptyMutableHeader()
+ mutable = Header.EmptyMutableHeader()
}
body = Body().apply {
- dataTransfer =
EbicsUnsecuredRequest.UnsecuredDataTransfer().apply {
- orderData = EbicsUnsecuredRequest.OrderData().apply {
+ dataTransfer = UnsecuredDataTransfer().apply {
+ orderData = OrderData().apply {
value = EbicsOrderUtil.encodeOrderDataXml(
SignatureTypes.SignaturePubKeyOrderData().apply {
signaturePubKeyInfo =
SignatureTypes.SignaturePubKeyInfoType().apply {
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HIARequestOrderData.kt
b/util/src/main/kotlin/schema/ebics_h004/HIARequestOrderData.kt
similarity index 96%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HIARequestOrderData.kt
rename to util/src/main/kotlin/schema/ebics_h004/HIARequestOrderData.kt
index 1164825..5457f21 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HIARequestOrderData.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/HIARequestOrderData.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HKDResponseOrderData.kt
b/util/src/main/kotlin/schema/ebics_h004/HKDResponseOrderData.kt
similarity index 91%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HKDResponseOrderData.kt
rename to util/src/main/kotlin/schema/ebics_h004/HKDResponseOrderData.kt
index 1eb161d..a141dde 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HKDResponseOrderData.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/HKDResponseOrderData.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import java.security.Permission
import javax.xml.bind.annotation.*
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HPBResponseOrderData.kt
b/util/src/main/kotlin/schema/ebics_h004/HPBResponseOrderData.kt
similarity index 94%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HPBResponseOrderData.kt
rename to util/src/main/kotlin/schema/ebics_h004/HPBResponseOrderData.kt
index 9efe51b..2dfaed8 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HPBResponseOrderData.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/HPBResponseOrderData.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HTDResponseOrderData.kt
b/util/src/main/kotlin/schema/ebics_h004/HTDResponseOrderData.kt
similarity index 91%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HTDResponseOrderData.kt
rename to util/src/main/kotlin/schema/ebics_h004/HTDResponseOrderData.kt
index 9031e58..afbbc50 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/HTDResponseOrderData.kt
+++ b/util/src/main/kotlin/schema/ebics_h004/HTDResponseOrderData.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_h004
+package tech.libeufin.util.schema.ebics_h004
import java.security.Permission
import javax.xml.bind.annotation.*
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/package-info.java
b/util/src/main/kotlin/schema/ebics_h004/package-info.java
similarity index 76%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/package-info.java
rename to util/src/main/kotlin/schema/ebics_h004/package-info.java
index 4dc9c42..0b54c66 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_h004/package-info.java
+++ b/util/src/main/kotlin/schema/ebics_h004/package-info.java
@@ -7,7 +7,7 @@
namespace = "urn:org:ebics:H004",
elementFormDefault = XmlNsForm.QUALIFIED
)
-package tech.libeufin.schema.ebics_h004;
+package schema.ebics_h004;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/EbicsMessages.kt
b/util/src/main/kotlin/schema/ebics_hev/EbicsMessages.kt
similarity index 98%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/EbicsMessages.kt
rename to util/src/main/kotlin/schema/ebics_hev/EbicsMessages.kt
index d0939d5..527f314 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/EbicsMessages.kt
+++ b/util/src/main/kotlin/schema/ebics_hev/EbicsMessages.kt
@@ -17,7 +17,7 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.schema.ebics_hev
+package tech.libeufin.util.schema.ebics_hev
import javax.xml.bind.annotation.*
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/package-info.java
b/util/src/main/kotlin/schema/ebics_hev/package-info.java
similarity index 88%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/package-info.java
rename to util/src/main/kotlin/schema/ebics_hev/package-info.java
index ca84376..ada407c 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_hev/package-info.java
+++ b/util/src/main/kotlin/schema/ebics_hev/package-info.java
@@ -7,7 +7,7 @@
namespace = "http://www.ebics.org/H000",
elementFormDefault = XmlNsForm.QUALIFIED
)
-package tech.libeufin.schema.ebics_hev;
+package schema.ebics_hev;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/SignatureTypes.kt
b/util/src/main/kotlin/schema/ebics_s001/SignatureTypes.kt
similarity index 98%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/SignatureTypes.kt
rename to util/src/main/kotlin/schema/ebics_s001/SignatureTypes.kt
index 4841dfb..0d0c84d 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/SignatureTypes.kt
+++ b/util/src/main/kotlin/schema/ebics_s001/SignatureTypes.kt
@@ -17,7 +17,7 @@
* <http://www.gnu.org/licenses/>
*/
-package tech.libeufin.schema.ebics_s001
+package tech.libeufin.util.schema.ebics_s001
import org.apache.xml.security.binding.xmldsig.RSAKeyValueType
import org.apache.xml.security.binding.xmldsig.X509DataType
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/UserSignatureData.kt
b/util/src/main/kotlin/schema/ebics_s001/UserSignatureData.kt
similarity index 94%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/UserSignatureData.kt
rename to util/src/main/kotlin/schema/ebics_s001/UserSignatureData.kt
index 193979e..4575af8 100644
---
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/UserSignatureData.kt
+++ b/util/src/main/kotlin/schema/ebics_s001/UserSignatureData.kt
@@ -1,4 +1,4 @@
-package tech.libeufin.schema.ebics_s001
+package tech.libeufin.util.schema.ebics_s001
import javax.xml.bind.annotation.*
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/package-info.java
b/util/src/main/kotlin/schema/ebics_s001/package-info.java
similarity index 76%
rename from
sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/package-info.java
rename to util/src/main/kotlin/schema/ebics_s001/package-info.java
index 224ea72..6c5f18b 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/schema/ebics_s001/package-info.java
+++ b/util/src/main/kotlin/schema/ebics_s001/package-info.java
@@ -7,7 +7,7 @@
namespace = "http://www.ebics.org/S001",
elementFormDefault = XmlNsForm.QUALIFIED
)
-package tech.libeufin.schema.ebics_s001;
+package schema.ebics_s001;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: more migration (compilation fails),
gnunet <=