Skip to content

Commit 3dec4ee

Browse files
committed
SDK-1160: Fix anchor parsing critical extensions after parsing one non-critical extension
1 parent dee3c05 commit 3dec4ee

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

yoti_python_sdk/anchor.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ def parse_anchors(anchors):
7272

7373
has_found_anchor = False
7474
for i in range(len(crypto_cert.extensions)):
75+
anchor_type = UNKNOWN_ANCHOR_TYPE
76+
7577
try:
7678
extensions = crypto_cert.extensions[i]
7779
if hasattr(extensions, "oid"):

yoti_python_sdk/tests/anchor_fixture_parser.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
ANCHOR_PASSPORT = join(FIXTURES_DIR, "anchor_passport.txt")
1111
ANCHOR_YOTI_ADMIN = join(FIXTURES_DIR, "anchor_yoti_admin.txt")
1212
ANCHOR_UNKNOWN_ANCHOR = join(FIXTURES_DIR, "unknown_anchor.txt")
13+
ANCHOR_CRITICAL_LAST = join(FIXTURES_DIR, "anchor_critical_last.txt")
1314

1415

1516
def get_anchor_from_base64_text(file_path):
@@ -28,6 +29,12 @@ def get_parsed_driving_license_anchor():
2829
)[0]
2930

3031

32+
def get_parsed_anchor_critical_last():
33+
return anchor.Anchor().parse_anchors(
34+
get_anchor_from_base64_text(ANCHOR_CRITICAL_LAST)
35+
)
36+
37+
3138
def get_parsed_passport_anchor():
3239
return anchor.Anchor().parse_anchors(get_anchor_from_base64_text(ANCHOR_PASSPORT))[
3340
0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
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

yoti_python_sdk/tests/test_anchor.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ def get_utc_offset():
2020
return utc_offset
2121

2222

23+
def test_parse_anchor_non_critical_only():
24+
parsed_anchor_list = anchor_fixture_parser.get_parsed_anchor_critical_last()
25+
26+
assert len(parsed_anchor_list) == 1
27+
28+
2329
def test_parse_anchors_driving_license():
2430
parsed_anchor = anchor_fixture_parser.get_parsed_driving_license_anchor()
2531

@@ -83,6 +89,7 @@ def test_error_parsing_anchor_certificate_carries_on_parsing():
8389
# 1st anchor will log a warning when being parsed
8490
logger = logging.getLogger()
8591
logger.propagate = False
92+
8693
parsed_anchors = Anchor.parse_anchors(anchors)
8794
logger.propagate = True
8895

0 commit comments

Comments
 (0)