From 84c0be1677b6143dda567c10641194d9750133bd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Henryk=20Pl=C3=B6tz?= Date: Thu, 9 Aug 2018 19:21:21 +0200 Subject: [PATCH] Implement HIPINS1 --- fints/formals.py | 12 ++++++++++++ fints/segments/__init__.py | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/fints/formals.py b/fints/formals.py index 4992926..d3abd95 100644 --- a/fints/formals.py +++ b/fints/formals.py @@ -586,3 +586,15 @@ class ParameterTwostepTAN3(DataElementGroup): multiple_tasks_allowed = DataElementField(type='jn') hash_algorithm = DataElementField(type='code', length=1) twostep_parameters = DataElementGroupField(type=TwoStepParameters3, min_count=1, max_count=98) + +class TransactionTanRequired(DataElementGroup): + transaction = DataElementField(type='an', max_length=6) + tan_required = DataElementField(type='jn') + +class ParameterPinTan(DataElementGroup): + min_pin_length = DataElementField(type='num', max_length=2, required=False) + max_pin_length = DataElementField(type='num', max_length=2, required=False) + max_tan_length = DataElementField(type='num', max_length=2, required=False) + user_id_field_text = DataElementField(type='an', max_length=30, required=False) + customer_id_field_text = DataElementField(type='an', max_length=30, required=False) + transaction_tans_required = DataElementGroupField(type=TransactionTanRequired, max_count=999, required=False) diff --git a/fints/segments/__init__.py b/fints/segments/__init__.py index b0e09b3..8115db8 100644 --- a/fints/segments/__init__.py +++ b/fints/segments/__init__.py @@ -1,6 +1,6 @@ import re -from fints.formals import Container, ContainerMeta, SegmentHeader, DataElementGroupField, DataElementField, ReferenceMessage, SegmentSequenceField, SecurityProfile, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, Certificate, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature, Response, AccountInformation, AccountLimit, AllowedTransaction, ParameterTwostepTAN1, ParameterTwostepTAN3 +from fints.formals import Container, ContainerMeta, SegmentHeader, DataElementGroupField, DataElementField, ReferenceMessage, SegmentSequenceField, SecurityProfile, SecurityIdentificationDetails, SecurityDateTime, EncryptionAlgorithm, KeyName, Certificate, HashAlgorithm, SignatureAlgorithm, UserDefinedSignature, Response, AccountInformation, AccountLimit, AllowedTransaction, ParameterTwostepTAN1, ParameterTwostepTAN3, ParameterPinTan from fints.utils import classproperty, SubclassesMixin @@ -145,3 +145,10 @@ class HITANS3(FinTS3Segment): min_number_signatures = DataElementField(type='num', length=1) security_class = DataElementField(type='num', length=1) parameters_twostep_tan = DataElementGroupField(type=ParameterTwostepTAN3) + +class HIPINS1(FinTS3Segment): + max_number_tasks = DataElementField(type='num', max_length=3) + min_number_signatures = DataElementField(type='num', length=1) + security_class = DataElementField(type='num', length=1) + parameters_pintan = DataElementGroupField(type=ParameterPinTan) + -- 2.47.3