diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt
index 3efcb759..3def85f0 100644
--- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt
+++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt
@@ -63,7 +63,7 @@ open class MessageBuilder(protected val generator: ISegmentNumberGenerator = Seg
return createSignedMessage(bank, customer, dialogData, listOf(
IdentifikationsSegment(generator.resetSegmentNumber(2), bank, customer),
Verarbeitungsvorbereitung(generator.getNextSegmentNumber(), bank, customer, product),
- ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, CustomerSegmentId.Identification.id)
+ ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, CustomerSegmentId.Identification)
))
}
@@ -72,7 +72,7 @@ open class MessageBuilder(protected val generator: ISegmentNumberGenerator = Seg
return createSignedMessage(bank, customer, dialogData, listOf(
IdentifikationsSegment(generator.resetSegmentNumber(2), bank, customer),
Verarbeitungsvorbereitung(generator.getNextSegmentNumber(), bank, customer, product),
- ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, CustomerSegmentId.Identification.id),
+ ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, CustomerSegmentId.Identification),
Synchronisierung(generator.getNextSegmentNumber(), Synchronisierungsmodus.NeueKundensystemIdZurueckmelden)
))
}
diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/JaNein.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/JaNein.kt
new file mode 100644
index 00000000..7ccd3d0d
--- /dev/null
+++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/JaNein.kt
@@ -0,0 +1,13 @@
+package net.dankito.fints.messages.datenelemente.abgeleiteteformate
+
+import net.dankito.fints.messages.Existenzstatus
+import net.dankito.fints.messages.datenelemente.basisformate.AlphanumerischesDatenelement
+
+
+/**
+ * Format: J bzw. N (in Großbuchstaben)
+ *
+ * Hat das DE den Status „Kann“, so gilt bei Auslassung der Standardwert „N“.
+ */
+open class JaNein(yes: Boolean?, existenzstatus: Existenzstatus)
+ : AlphanumerischesDatenelement(if (yes == true) "J" else "N", existenzstatus, 1)
\ No newline at end of file
diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/basisformate/BinaerDatenelement.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/basisformate/BinaerDatenelement.kt
index 3773820d..b2843dbc 100644
--- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/basisformate/BinaerDatenelement.kt
+++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/basisformate/BinaerDatenelement.kt
@@ -10,9 +10,12 @@ import net.dankito.fints.messages.datenelemente.Datenelement
* für binäre Daten keine Gültigkeit besitzt. Ferner gelten die speziellen Syntaxregeln für
* binäre Daten (s. Kap. H.1.3).
*/
-open class BinaerDatenelement @JvmOverloads constructor(val data: ByteArray, existenzstatus: Existenzstatus, val maxLength: Int? = null)
+open class BinaerDatenelement @JvmOverloads constructor(val data: String, existenzstatus: Existenzstatus, val maxLength: Int? = null)
: Datenelement(existenzstatus) {
+ @JvmOverloads constructor(data: ByteArray, existenzstatus: Existenzstatus, maxLength: Int? = null) :
+ this(String(data), existenzstatus, maxLength)
+
/**
* Für binäre Daten gilt eine besondere Syntaxregelung: Das Auftreten dieser Daten wird eingeleitet mit dem
* Binärdatenkennzeichen (@). Anschließend folgt die Längenangabe zu den binären Daten und der binäre Wert selbst,
@@ -25,8 +28,8 @@ open class BinaerDatenelement @JvmOverloads constructor(val data: ByteArray, exi
* Spezifikation vorzusehen.
*/
override fun format(): String {
- if (data.size > 0) {
- return "@${data.size}@" + String(data)
+ if (data.length > 0) {
+ return "@${data.length}@" + data
}
return ""
@@ -36,9 +39,9 @@ open class BinaerDatenelement @JvmOverloads constructor(val data: ByteArray, exi
// binary data aren't checked, so they are always valid
maxLength?.let {
- if (data.size > maxLength) {
+ if (data.length > maxLength) {
throwValidationException("Binäre Daten dürfen nur eine maximale Größe von $maxLength Bytes haben, " +
- "haben aber ${data.size} Bytes.")
+ "haben aber ${data.length} Bytes.")
}
}
}
diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/AuftragsHashwert.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/AuftragsHashwert.kt
index 63cede7a..c24100e1 100644
--- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/AuftragsHashwert.kt
+++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/AuftragsHashwert.kt
@@ -26,5 +26,5 @@ import net.dankito.fints.messages.datenelemente.basisformate.BinaerDatenelement
* Als Initialisierungsvektor dient die binäre Zeichenfolge
* X’01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 F0 E1 D2 C3’.
*/
-open class AuftragsHashwert(hash: ByteArray, existenzstatus: Existenzstatus)
+open class AuftragsHashwert(hash: String, existenzstatus: Existenzstatus)
: BinaerDatenelement(hash, existenzstatus, 256)
\ No newline at end of file
diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeHHD_UC.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeHHD_UC.kt
deleted file mode 100644
index 6312d083..00000000
--- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeHHD_UC.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package net.dankito.fints.messages.datenelemente.implementierte.tan
-
-import net.dankito.fints.messages.Existenzstatus
-import net.dankito.fints.messages.datenelemente.basisformate.BinaerDatenelement
-
-
-/**
- * Bei Verwendung von Zwei-Schritt-Verfahren mit unidirektionaler Kopplung (vgl. hierzu [HHD_UC])
- * müssen zusätzlich zum Datenelement „Challenge“ die Daten für die Übertragung z. B. über eine
- * optische Schnittstelle bereitgestellt werden. Die einzelnen Datenelemente der „Challenge HHD_UC“
- * sind in [HHD_UC] beschrieben und werden hier im FinTS Data Dictionary nicht näher erläutert.
- * Da HHD_UC einen anderen Basiszeichensatz verwendet (ISO 646) wird die HHD_UC-Struktur als binär
- * definiert. Als maximale Länge kann ein Wert von 128 angenommen werden.
- */
-open class ChallengeHHD_UC(challenge: ByteArray, existenzstatus: Existenzstatus)
- : BinaerDatenelement(challenge, existenzstatus, 128)
\ No newline at end of file
diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeVersion3.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeVersion3.kt
deleted file mode 100644
index 8b8b562d..00000000
--- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/tan/ChallengeVersion3.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package net.dankito.fints.messages.datenelemente.implementierte.tan
-
-import net.dankito.fints.messages.Existenzstatus
-import net.dankito.fints.messages.datenelemente.basisformate.AlphanumerischesDatenelement
-
-
-/**
- * Dieses Datenelement enthält im Falle des Zwei-Schritt-TAN-Verfahrens die Challenge zu einem
- * eingereichten Auftrag. Aus der Challenge wird vom Kunden die eigentliche TAN ermittelt.
- * Die Challenge wird unabhängig vom Prozessvariante 1 oder 2 in der Kreditinstitutsantwort im
- * Segment HITAN übermittelt.
- *
- * Ist der BPD-Parameter „Challenge strukturiert“ mit „J“ belegt, so können im Text folgende
- * Formatsteuerzeichen enthalten sein, die kundenseitig entsprechend zu interpretieren sind.
- * Eine Kaskadierung von Steuerzeichen ist nicht erlaubt.
- *
- *
Zeilenumbruch
- *
Neuer Absatz - * ... Fettdruck - * ... Kursivdruck - * ... Unterstreichen - *