From d04faa54b5e3bea14e1686e6fd88e7d234500fa9 Mon Sep 17 00:00:00 2001 From: Daniel Richter Date: Fri, 5 Mar 2021 04:59:57 +0100 Subject: [PATCH] feat: add HKTAN Segment Version 7 --- packages/fints/src/segments/hitans.ts | 2 +- packages/fints/src/tan-method.ts | 44 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/packages/fints/src/segments/hitans.ts b/packages/fints/src/segments/hitans.ts index 4ea8892..c79844b 100644 --- a/packages/fints/src/segments/hitans.ts +++ b/packages/fints/src/segments/hitans.ts @@ -19,7 +19,7 @@ export class HITANS extends SegmentClass(HITANSProps) { protected serialize(): string[][] { throw new Error("Not implemented."); } protected deserialize(input: string[][]) { - if (![1, 2, 3, 4, 5, 6].includes(this.version)) { + if (![1, 2, 3, 4, 5, 6, 7].includes(this.version)) { throw new Error(`Unimplemented TAN method version ${this.version} encountered.`); } const [ diff --git a/packages/fints/src/tan-method.ts b/packages/fints/src/tan-method.ts index 44c9f19..1cce2c9 100644 --- a/packages/fints/src/tan-method.ts +++ b/packages/fints/src/tan-method.ts @@ -129,6 +129,35 @@ tanMethodArgumentMap.set(6, [ "supportedMediaNumber", ]); +tanMethodArgumentMap.set(7, [ + "securityFunction", + "tanProcess", + "techId", + "dkId", + "dkVersion", + "name", + "maxLengthInput", + "allowedFormat", + "textReturnvalue", + "maxLengthReturnvalue", + "multiple", + "tanTimeDialogAssociation", + "cancellable", + "smsChargeAccountRequired", + "principalAccountRequired", + "challengeClassRequired", + "challengeStructured", + "initializationMode", + "descriptionRequired", + "hhdUcRequired", + "supportedMediaNumber", + "maxStatusRequestDecoupled", + "waitTimeBeforeFirstStatusRequest", + "waitTimeBeforeNextStatusRequest", + "manual", + "automated", +]); + export class TanMethod { public allowedFormat?: string; public cancellable?: boolean; @@ -154,7 +183,14 @@ export class TanMethod { public textReturnvalue?: string; public zkaId?: string; public zkaVersion?: string; + public dkId?: string; + public dkVersion?: string; public version?: number; + public maxStatusRequestDecoupled?: number; + public waitTimeBeforeFirstStatusRequest?: number; + public waitTimeBeforeNextStatusRequest?: number; + public manual?: boolean; + public automated?: boolean; constructor(version: number, config?: string[]) { this.version = version; @@ -187,5 +223,13 @@ export class TanMethod { this.textReturnvalue = map.get("textReturnvalue"); this.zkaId = map.get("zkaId"); this.zkaVersion = map.get("zkaVersion"); + this.dkId = map.get("dkId"); + this.dkVersion = map.get("dkVersion"); + this.maxStatusRequestDecoupled = Parse.num(map.get("maxStatusRequestDecoupled")); + this.waitTimeBeforeFirstStatusRequest = Parse.num(map.get("waitTimeBeforeFirstStatusRequest")); + this.waitTimeBeforeNextStatusRequest = Parse.num(map.get("waitTimeBeforeNextStatusRequest")); + this.manual = Parse.bool(map.get("manual")); + this.automated = Parse.bool(map.get("automated")); + } }