Skip to content

Commit 8746747

Browse files
committed
fix: trust chain serialization and resolve example
1 parent 5355473 commit 8746747

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

spid_cie_oidc/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.3.1"
1+
__version__ = "1.3.2"

spid_cie_oidc/authority/tests/test_02_trust_anchor_intermediary.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from django.urls import reverse
33

44
from spid_cie_oidc.entity.exceptions import InvalidRequiredTrustMark
5-
from spid_cie_oidc.entity.jwtse import verify_jws
5+
from spid_cie_oidc.entity.jwtse import verify_jws, unpad_jwt_payload
66
from spid_cie_oidc.entity.models import *
77

88
from spid_cie_oidc.entity.trust_chain_operations import (
@@ -132,6 +132,15 @@ def test_trust_chain_valid_with_intermediary(self, mocked):
132132
self.assertTrue(len(trust_chain.trust_path) == 3)
133133
self.assertTrue((len(trust_chain.trust_path) - 2) == trust_chain.max_path_len)
134134

135+
tc_ser = trust_chain.serialize()
136+
_p0 = unpad_jwt_payload(tc_ser[0])
137+
_p1 = unpad_jwt_payload(tc_ser[1])
138+
_p2 = unpad_jwt_payload(tc_ser[2])
139+
140+
self.assertEqual(_p0['iss'], _p0['sub'])
141+
self.assertNotEqual(_p2['iss'], _p1['sub'])
142+
self.assertEqual(_p2['iss'], _p2['sub'])
143+
135144
dumps = dumps_statements_from_trust_chain_to_db(trust_chain)
136145

137146
self.assertTrue(isinstance(dumps, list) and len(dumps) == 5)

spid_cie_oidc/entity/models.py

-2
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,6 @@ def exp_as_timestamp(self):
398398
def is_valid(self):
399399
return self.is_active and ENTITY_STATUS[self.status]
400400

401-
# TODO: property is_expired
402-
403401
def __str__(self):
404402
return "{} [{}] [{}]".format(
405403
self.sub, self.trust_anchor, self.is_valid

spid_cie_oidc/entity/trust_chain.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,13 @@ def serialize(self):
271271
if not isinstance(self.trust_anchor, str):
272272
if (self.subject == stat.sub == stat.iss):
273273
res.append(stat.jwt)
274+
continue
274275
elif (self.trust_anchor.sub == stat.sub == stat.iss):
275276
ta_ec = stat.jwt
277+
continue
276278

277279
if stat.verified_descendant_statements:
278-
res.append(
280+
res.extend(
279281
# [dict(i) for i in stat.verified_descendant_statements.values()]
280282
[i for i in stat.verified_descendant_statements_as_jwt.values()]
281283
)

0 commit comments

Comments
 (0)