libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

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:
Mnexus/src/main/kotlin/Main.kt | 27+++++++++++++++++++--------
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") {