commit 7328033e05bbd0ce75012e0ea56ca95e0963ce51
parent d165285c5ad704a8998d7ec35932863c7c641730
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date: Thu, 21 Nov 2019 15:48:26 +0100
address null pointer exception
Diffstat:
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/nexus/src/main/kotlin/Main.kt b/nexus/src/main/kotlin/Main.kt
@@ -851,7 +851,8 @@ fun main() {
val usd_compressed = EbicsOrderUtil.encodeOrderDataXml(userSignatureData)
val usd_encrypted = CryptoUtil.encryptEbicsE002(
usd_compressed,
- CryptoUtil.loadRsaPublicKey(subscriber.bankEncryptionPublicKey!!.toByteArray()
+ CryptoUtil.loadRsaPublicKey(
+ subscriber.bankEncryptionPublicKey?.toByteArray() ?: throw BankKeyMissing(HttpStatusCode.NotFound)
)
)
@@ -876,14 +877,21 @@ fun main() {
algorithm = "http://www.w3.org/2001/04/xmlenc#sha256"
version = "X002"
value = CryptoUtil.getEbicsPublicKeyHash(
- CryptoUtil.loadRsaPublicKey(subscriber.bankAuthenticationPublicKey!!.toByteArray())
+ CryptoUtil.loadRsaPublicKey(
+ subscriber.bankAuthenticationPublicKey?.toByteArray() ?: throw BankKeyMissing(
+ HttpStatusCode.PreconditionFailed)
+ )
)
}
encryption = EbicsTypes.PubKeyDigest().apply {
algorithm = "http://www.w3.org/2001/04/xmlenc#sha256"
version = "E002"
value = CryptoUtil.getEbicsPublicKeyHash(
- CryptoUtil.loadRsaPublicKey(subscriber.bankEncryptionPublicKey!!.toByteArray())
+ CryptoUtil.loadRsaPublicKey(
+ subscriber.bankEncryptionPublicKey?.toByteArray() ?: throw BankKeyMissing(
+ HttpStatusCode.PreconditionFailed
+ )
+ )
)
}
}
@@ -909,7 +917,9 @@ fun main() {
version = "E002"
value = CryptoUtil.getEbicsPublicKeyHash(
CryptoUtil.loadRsaPublicKey(
- subscriber.bankEncryptionPublicKey!!.toByteArray()
+ subscriber.bankEncryptionPublicKey?.toByteArray() ?: throw BankKeyMissing(
+ HttpStatusCode.PreconditionFailed
+ )
)
)
}
@@ -922,11 +932,12 @@ fun main() {
jaxb = tmp,
ebicsUrl = subscriber.ebicsURL,
bankAuthPubBlob = subscriber.bankAuthenticationPublicKey?.toByteArray() ?: throw BankKeyMissing(
- HttpStatusCode.NotAcceptable),
+ HttpStatusCode.PreconditionFailed
+ ),
plainTransactionKey = usd_encrypted.plainTransactionKey,
customerAuthPrivBlob = subscriber.authenticationPrivateKey.toByteArray(),
bankEncPubBlob = subscriber.bankEncryptionPublicKey?.toByteArray() ?: throw BankKeyMissing(
- HttpStatusCode.NotAcceptable
+ HttpStatusCode.PreconditionFailed
),
hostId = subscriber.hostID
)
@@ -983,8 +994,8 @@ fun main() {
val responseTransaction = client.postToBankSignedAndVerify<EbicsRequest, EbicsResponse>(
container.ebicsUrl,
tmp,
- CryptoUtil.loadRsaPublicKey(container.bankAuthPubBlob!!),
- CryptoUtil.loadRsaPrivateKey(container.customerAuthPrivBlob!!)
+ CryptoUtil.loadRsaPublicKey(container.bankAuthPubBlob),
+ CryptoUtil.loadRsaPrivateKey(container.customerAuthPrivBlob)
)
if (responseTransaction.value.body.returnCode.value != "000000") {