]> git.ipfire.org Git - thirdparty/python-fints.git/commitdiff
Implement HITANS3
authorHenryk Plötz <henryk@ploetzli.ch>
Thu, 9 Aug 2018 10:34:48 +0000 (12:34 +0200)
committerRaphael Michel <mail@raphaelmichel.de>
Mon, 3 Dec 2018 18:34:17 +0000 (19:34 +0100)
fints/formals.py
fints/segments/__init__.py

index b95b89b8059332d9007d7a700e887a236aaec6ca..49929260e9b4d8ce205d92183df15ca78253987a 100644 (file)
@@ -541,7 +541,7 @@ class AllowedTransaction(DataElementGroup):
     limit_amount = DataElementField(type='btg', required=False)
     limit_days = DataElementField(type='num', max_length=3, required=False)
 
-class TwoStepParameters(DataElementGroup):
+class TwoStepParameters1(DataElementGroup):
     security_function = DataElementField(type='code', max_length=3)
     tan_process = DataElementField(type='code', length=1)
     technical_identification_tan_process = DataElementField(type='id')
@@ -554,9 +554,35 @@ class TwoStepParameters(DataElementGroup):
     multiple_tans_allowed = DataElementField(type='jn')
     tan_time_delayed_allowed = DataElementField(type='jn')
 
-class ParameterTwostepTAN(DataElementGroup):
+class TwoStepParameters3(DataElementGroup):
+    security_function = DataElementField(type='code', max_length=3)
+    tan_process = DataElementField(type='code', length=1)
+    technical_identification_tan_process = DataElementField(type='id')
+    name_twostep_process = DataElementField(type='an', max_length=30)
+    max_length_tan_entry = DataElementField(type='num', max_length=2)
+    allowed_format_tan_entry = DataElementField(type='code', length=1)
+    return_value_text = DataElementField(type='an', max_length=30)
+    max_length_return_value = DataElementField(type='num', max_length=3)
+    number_supported_tan_lists = DataElementField(type='num', length=1)
+    multiple_tans_allowed = DataElementField(type='jn')
+    tan_timedelayed_type = DataElementField(type='code', length=1)
+    tan_list_number_required = DataElementField(type='jn')
+    cancel_allowed = DataElementField(type='jn')
+    challenge_class_required = DataElementField(type='jn')
+    challenge_amount_required = DataElementField(type='jn')
+    initialisation_mode = DataElementField(type='code')
+    id_tan_medium_required = DataElementField(type='jn')
+    number_supported_tan_media = DataElementField(type='num', length=1, required=False)
+
+class ParameterTwostepTAN1(DataElementGroup):
     onestep_method_allowed = DataElementField(type='jn')
     multiple_tasks_allowed = DataElementField(type='jn')
     hash_algorithm = DataElementField(type='code', length=1)
     security_profile_bank_signature = DataElementField(type='code', length=1)
-    twostep_parameters = DataElementGroupField(type=TwoStepParameters, min_count=1, max_count=98)
+    twostep_parameters = DataElementGroupField(type=TwoStepParameters1, min_count=1, max_count=98)
+
+class ParameterTwostepTAN3(DataElementGroup):
+    onestep_method_allowed = DataElementField(type='jn')
+    multiple_tasks_allowed = DataElementField(type='jn')
+    hash_algorithm = DataElementField(type='code', length=1)
+    twostep_parameters = DataElementGroupField(type=TwoStepParameters3, min_count=1, max_count=98)
index 5d1cdc05e3707035795112c10ebd74d25ab6284e..b0e09b3d046f2587804ad2df623459f726ab2996 100644 (file)
@@ -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, ParameterTwostepTAN
+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.utils import classproperty, SubclassesMixin
 
@@ -138,4 +138,10 @@ class HITANS1(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_twostep_tan = DataElementGroupField(type=ParameterTwostepTAN)
+    parameters_twostep_tan = DataElementGroupField(type=ParameterTwostepTAN1)
+
+class HITANS3(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_twostep_tan = DataElementGroupField(type=ParameterTwostepTAN3)