Skip to content

Commit 5345281

Browse files
committed
Fixed bug in key_jar
Updated tests
1 parent f91cf05 commit 5345281

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/cryptojwt/key_jar.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,10 +786,10 @@ def init_key_jar(public_path='', private_path='', key_defs='', owner='',
786786
_kb = _kj.issuer_keys[owner][0]
787787
_diff = key_diff(_kb, key_defs)
788788
if _diff:
789+
update_key_bundle(_kb, _diff)
789790
if read_only:
790791
logger.error('Not allowed to write to disc!')
791792
else:
792-
update_key_bundle(_kb, _diff)
793793
_kj.issuer_keys[owner] = [_kb]
794794
jwks = _kj.export_jwks(private=True, issuer=owner)
795795
fp = open(private_path, 'w')

tests/test_02_jwk.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -408,8 +408,8 @@ def test_encryption_key():
408408

409409
def test_equal():
410410
assert RSA1 == RSA1
411-
assert RSA1 != RSA2
412-
assert RSA2 == RSA3
411+
assert RSA1 != RSA2 # different keys altogether
412+
assert RSA2 != RSA3 # different kid
413413

414414

415415
def test_get_asym_key_for_verify():

tests/test_04_key_jar.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ def test_init_key_jar_update():
851851
# New set of keys, JWKSs with keys and public written to file
852852
_keyjar_1 = init_key_jar(private_path=PRIVATE_FILE, key_defs=KEYSPEC,
853853
owner='https://example.com',
854-
public_path=PUBLIC_FILE)
854+
public_path=PUBLIC_FILE, read_only=False)
855855
assert list(_keyjar_1.owners()) == ['https://example.com']
856856

857857
_keyjar_2 = init_key_jar(private_path=PRIVATE_FILE, key_defs=KEYSPEC_2,
@@ -865,18 +865,28 @@ def test_init_key_jar_update():
865865
assert len(rsa2) == 1
866866
assert rsa1[0] == rsa2[0]
867867

868-
# keyjar1 should only contain one EC key while keyjar2 should contain 3.
868+
# keyjar1 should only contain one EC key while keyjar2 should contain 2.
869869

870870
ec1 = _keyjar_1.get_signing_key('EC', 'https://example.com')
871871
ec2 = _keyjar_2.get_signing_key('EC', '')
872872
assert len(ec1) == 1
873873
assert len(ec2) == 2
874874

875-
# The file on disc should have changed
875+
# The file on disc should not have changed
876876
_keyjar_3 = init_key_jar(private_path=PRIVATE_FILE)
877877

878878
assert len(_keyjar_3.get_signing_key('RSA')) == 1
879-
assert len(_keyjar_3.get_signing_key('EC')) == 2
879+
assert len(_keyjar_3.get_signing_key('EC')) == 1
880+
881+
_keyjar_4 = init_key_jar(private_path=PRIVATE_FILE, key_defs=KEYSPEC_2,
882+
public_path=PUBLIC_FILE, read_only=False)
883+
884+
# Now it should
885+
_keyjar_5 = init_key_jar(private_path=PRIVATE_FILE)
886+
887+
assert len(_keyjar_5.get_signing_key('RSA')) == 1
888+
assert len(_keyjar_5.get_signing_key('EC')) == 2
889+
880890

881891

882892
OIDC_KEYS = {

tests/test_07_jwe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def rndstr(size=16):
5353

5454

5555
def intarr2bytes(arr):
56-
return array.array('B', arr).tostring()
56+
return array.array('B', arr).tobytes()
5757

5858

5959
def bytes2intarr(bts):

0 commit comments

Comments
 (0)