Skip to content

Commit c65c198

Browse files
authored
fix serialization of init_tan_request for #114 (#128)
* fix serialization of init_tan_request for #114 * fix array check
1 parent d73abae commit c65c198

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

fints/client.py

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,8 +1021,12 @@ def __repr__(self):
10211021
@classmethod
10221022
def _from_data_v1(cls, data):
10231023
if data["version"] == 1:
1024-
segs = SegmentSequence(data['segments_bin']).segments
1025-
return cls(segs[0], segs[1], data['resume_method'], data['tan_request_structured'])
1024+
if "init_tan" in data:
1025+
segs = SegmentSequence(data['segments_bin']).segments
1026+
return cls(None, segs[0], data['resume_method'], data['tan_request_structured'])
1027+
else:
1028+
segs = SegmentSequence(data['segments_bin']).segments
1029+
return cls(segs[0], segs[1], data['resume_method'], data['tan_request_structured'])
10261030

10271031
raise Exception("Wrong blob data version")
10281032

@@ -1031,13 +1035,23 @@ def get_data(self) -> bytes:
10311035
10321036
To restore the object, use :func:`fints.client.NeedRetryResponse.from_data`.
10331037
"""
1034-
data = {
1035-
"_class_name": self.__class__.__name__,
1036-
"version": 1,
1037-
"segments_bin": SegmentSequence([self.command_seg, self.tan_request]).render_bytes(),
1038-
"resume_method": self.resume_method,
1039-
"tan_request_structured": self.tan_request_structured,
1040-
}
1038+
if self.command_seg:
1039+
data = {
1040+
"_class_name": self.__class__.__name__,
1041+
"version": 1,
1042+
"segments_bin": SegmentSequence([self.command_seg, self.tan_request]).render_bytes(),
1043+
"resume_method": self.resume_method,
1044+
"tan_request_structured": self.tan_request_structured,
1045+
}
1046+
else:
1047+
data = {
1048+
"_class_name": self.__class__.__name__,
1049+
"version": 1,
1050+
"init_tan": True,
1051+
"segments_bin": SegmentSequence([self.tan_request]).render_bytes(),
1052+
"resume_method": self.resume_method,
1053+
"tan_request_structured": self.tan_request_structured,
1054+
}
10411055
return compress_datablob(DATA_BLOB_MAGIC_RETRY, 1, data)
10421056

10431057
def _parse_tan_challenge(self):

0 commit comments

Comments
 (0)