diff --git a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelemente/implementierte/encryption/VerschluesselungsalgorithmusKodiert.kt b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelemente/implementierte/encryption/VerschluesselungsalgorithmusKodiert.kt index aef100a1..0a0c5817 100644 --- a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelemente/implementierte/encryption/VerschluesselungsalgorithmusKodiert.kt +++ b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelemente/implementierte/encryption/VerschluesselungsalgorithmusKodiert.kt @@ -17,8 +17,6 @@ open class VerschluesselungsalgorithmusKodiert(algorithm: Verschluesselungsalgor companion object { val AllowedValues = allCodes() - - val FinTsMock = Verschluesselungsalgorithmus.AES_256 } } \ No newline at end of file diff --git a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelementgruppen/implementierte/encryption/VerschluesselungsalgorithmusDatenelementgruppe.kt b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelementgruppen/implementierte/encryption/VerschluesselungsalgorithmusDatenelementgruppe.kt index 249ede32..96528e86 100644 --- a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelementgruppen/implementierte/encryption/VerschluesselungsalgorithmusDatenelementgruppe.kt +++ b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/datenelementgruppen/implementierte/encryption/VerschluesselungsalgorithmusDatenelementgruppe.kt @@ -24,12 +24,13 @@ import net.dankito.banking.fints.messages.datenelementgruppen.Datenelementgruppe * Belegung nicht zulässig. */ open class VerschluesselungsalgorithmusDatenelementgruppe( - mode: Operationsmodus + mode: Operationsmodus, + encryptionAlgorithm: Verschluesselungsalgorithmus ) : Datenelementgruppe(listOf( VerwendungDesVerschluesselungsalgorithmusKodiert(), // allowed: 2 OperationsmodusKodiert(mode), // allowed: 2, 18, 19 - VerschluesselungsalgorithmusKodiert(VerschluesselungsalgorithmusKodiert.FinTsMock), // allowed: 13, 14 + VerschluesselungsalgorithmusKodiert(encryptionAlgorithm), // allowed: 13, 14 WertDesAlgorithmusparametersSchluessel(WertDesAlgorithmusparametersSchluessel.FinTsMock), BezeichnerFuerAlgorithmusparameterSchluesselDatenelement(BezeichnerFuerAlgorithmusparameterSchluesselDatenelement.FinTsMock), // allowed: 6 // even though spec says for PIN/TAN no value may be set here ("Belegung nicht zulässig"), this value has to be set: diff --git a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/PinTanVerschluesselungskopf.kt b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/PinTanVerschluesselungskopf.kt index 4b83d32f..fbea5b9e 100644 --- a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/PinTanVerschluesselungskopf.kt +++ b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/PinTanVerschluesselungskopf.kt @@ -1,10 +1,8 @@ package net.dankito.banking.fints.messages.segmente.implementierte import net.dankito.banking.fints.messages.datenelemente.implementierte.encryption.Komprimierungsfunktion -import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.OperationsmodusKodiert -import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.Schluesselart -import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.Schluesselnummer -import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.Schluesselversion +import net.dankito.banking.fints.messages.datenelemente.implementierte.encryption.Verschluesselungsalgorithmus +import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.* import net.dankito.banking.fints.model.MessageBaseData @@ -18,7 +16,8 @@ open class PinTanVerschluesselungskopf( baseData.customer, date, time, - OperationsmodusKodiert.FinTsMockValue, + Operationsmodus.Cipher_Block_Chaining, + Verschluesselungsalgorithmus.Two_Key_Triple_DES, Schluesselart.Chiffrierschluessel, Schluesselnummer.FinTsMockValue, Schluesselversion.FinTsMockValue, diff --git a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/Verschluesselungskopf.kt b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/Verschluesselungskopf.kt index 1826ff57..c8522697 100644 --- a/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/Verschluesselungskopf.kt +++ b/fints4k/src/commonMain/kotlin/net/dankito/banking/fints/messages/segmente/implementierte/Verschluesselungskopf.kt @@ -3,6 +3,7 @@ package net.dankito.banking.fints.messages.segmente.implementierte import net.dankito.banking.fints.messages.datenelemente.implementierte.NotAllowedDatenelement import net.dankito.banking.fints.messages.datenelemente.implementierte.encryption.Komprimierungsfunktion import net.dankito.banking.fints.messages.datenelemente.implementierte.encryption.KomprimierungsfunktionDatenelement +import net.dankito.banking.fints.messages.datenelemente.implementierte.encryption.Verschluesselungsalgorithmus import net.dankito.banking.fints.messages.datenelemente.implementierte.signatur.* import net.dankito.banking.fints.messages.datenelementgruppen.implementierte.Segmentkopf import net.dankito.banking.fints.messages.datenelementgruppen.implementierte.encryption.VerschluesselungsalgorithmusDatenelementgruppe @@ -38,6 +39,7 @@ open class Verschluesselungskopf( date: Int, time: Int, mode: Operationsmodus, + encryptionAlgorithm: Verschluesselungsalgorithmus, key: Schluesselart, keyNumber: Int, keyVersion: Int, @@ -50,7 +52,7 @@ open class Verschluesselungskopf( RolleDesSicherheitslieferantenKodiert(), // allowed: 1, 4 SicherheitsidentifikationDetails(customer.customerSystemId), SicherheitsdatumUndUhrzeit(date, time), - VerschluesselungsalgorithmusDatenelementgruppe(mode), + VerschluesselungsalgorithmusDatenelementgruppe(mode, encryptionAlgorithm), Schluesselname(bank.countryCode, bank.bankCode, customer.customerId, key, keyNumber, keyVersion), KomprimierungsfunktionDatenelement(algorithm), NotAllowedDatenelement() // Certificate not applicapable for PIN/TAN