Using now CBC and TripleDES as PinTan default values for Operation mode and Encryption algorithm in encryption header

This commit is contained in:
dankito 2020-08-11 18:13:21 +02:00
parent dd74a613f2
commit 384523e854
4 changed files with 10 additions and 10 deletions

View File

@ -17,8 +17,6 @@ open class VerschluesselungsalgorithmusKodiert(algorithm: Verschluesselungsalgor
companion object {
val AllowedValues = allCodes<Verschluesselungsalgorithmus>()
val FinTsMock = Verschluesselungsalgorithmus.AES_256
}
}

View File

@ -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:

View File

@ -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,

View File

@ -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