From: Raphael Michel Date: Wed, 14 Jun 2017 15:02:11 +0000 (+0200) Subject: Proper escaping in more places X-Git-Tag: v0.2.1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17093046efd6cda9939c60ab3f0957ef0d2357e3;p=thirdparty%2Fpython-fints.git Proper escaping in more places --- diff --git a/fints/message.py b/fints/message.py index b6be2ae..62656cc 100644 --- a/fints/message.py +++ b/fints/message.py @@ -89,7 +89,7 @@ class FinTSResponse: return True def _get_segment_index(self, idx, seg): - seg = seg.split('+') + seg = split_for_data_groups(seg) if len(seg) > idx - 1: return seg[idx - 1] return None @@ -104,9 +104,9 @@ class FinTSResponse: def get_bank_name(self): seg = self._find_segment('HIBPA') if seg: - seg = seg.split('+') - if len(seg) > 3: - return seg[3] + parts = split_for_data_groups(seg) + if len(parts) > 3: + return parts[3] def get_systemid(self): seg = self._find_segment('HISYN') @@ -121,9 +121,9 @@ class FinTSResponse: res = {} seg = self._find_segment(name) - seg = seg.split('+')[1:] - for de in seg: - de = de.split(':') + parts = split_for_data_groups(seg)[1:] + for de in parts: + de = split_for_data_elements(de) res[de[0]] = de[2] return res @@ -136,7 +136,7 @@ class FinTSResponse: def get_supported_tan_mechanisms(self): segs = self._find_segments('HIRMS') for s in segs: - seg = s.split('+')[1:] + seg = split_for_data_groups(s)[1:] for s in seg: id, msg = s.split('::', 1) if id == "3920": @@ -148,7 +148,7 @@ class FinTSResponse: def _find_segment_for_reference(self, name, ref): segs = self._find_segments(name) for seg in segs: - segsplit = seg.split('+')[0].split(':') + segsplit = split_for_data_elements(split_for_data_groups(seg)[0]) if segsplit[3] == str(ref.segmentno): return seg diff --git a/fints/segments/auth.py b/fints/segments/auth.py index 445f265..16dc791 100644 --- a/fints/segments/auth.py +++ b/fints/segments/auth.py @@ -1,3 +1,4 @@ +from fints.utils import fints_escape from . import FinTS3Segment @@ -12,7 +13,7 @@ class HKIDN(FinTS3Segment): def __init__(self, segmentno, blz, username, systemid=0, customerid=1): data = [ '{}:{}'.format(self.country_code, blz), - username, + fints_escape(username), systemid, customerid ] @@ -36,7 +37,7 @@ class HKVVB(FinTS3Segment): def __init__(self, segmentno, lang=LANG_DE): data = [ - 0, 0, lang, self.PRODUCT_NAME, self.PRODUCT_VERSION + 0, 0, lang, fints_escape(self.PRODUCT_NAME), fints_escape(self.PRODUCT_VERSION) ] super().__init__(segmentno, data) diff --git a/fints/segments/message.py b/fints/segments/message.py index 83a66f1..0f79f32 100644 --- a/fints/segments/message.py +++ b/fints/segments/message.py @@ -1,5 +1,6 @@ import time +from fints.utils import fints_escape from . import FinTS3Segment @@ -120,7 +121,7 @@ class HNSHA(FinTS3Segment): data = [ secref, '', - pin + fints_escape(pin) ] super().__init__(segno, data)