Skip to content

Commit c6671cb

Browse files
authored
Merge pull request #18 from jschlyter/ec_thumbprint
use correct EC required parameters or thumbprint is wrong
2 parents 2be39b0 + e5aaf35 commit c6671cb

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

src/cryptojwt/jwk/ec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class ECKey(AsymmetricKey):
119119
public_members = AsymmetricKey.public_members[:]
120120
public_members.extend(["kty", "alg", "use", "kid", "crv", "x", "y"])
121121
# required attributes
122-
required = ['crv', 'key', 'x', 'y']
122+
required = ['kty', 'crv', 'x', 'y']
123123

124124
def __init__(self, kty="EC", alg="", use="", kid="", key=None,
125125
crv="", x="", y="", d="", **kwargs):

src/cryptojwt/tools/keygen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def main():
7171

7272
jwk_dict = jwk.serialize(private=True)
7373
print(json.dumps(jwk_dict, sort_keys=True, indent=4))
74-
print("SHA-256: " + b64e(jwk.thumbprint('SHA-256')).decode(), file=sys.stderr)
74+
print("SHA-256: " + jwk.thumbprint('SHA-256').decode(), file=sys.stderr)
7575

7676

7777
if __name__ == "__main__":

tests/test_02_jwk.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,3 +569,22 @@ def test_appropriate():
569569

570570
assert _j1.appropriate_for('sign')
571571
assert _j1.appropriate_for('encrypt') is False
572+
573+
def test_thumbprint_ec():
574+
jwk = key_from_jwk_dict({
575+
"kty": "EC",
576+
"crv": "P-256",
577+
"x": "MJ05vpfkWoIce1MwUpZYAyotenxp4yYVHJuc6lN_J0o",
578+
"y": "Kfzs5wbqnEWUlFElN8ErWEL5YL2WQ1yowxzHejlzlZ0"
579+
})
580+
thumbprint = "RCWR9g8NPt9iZeq-lh-qXbiFxXcU0_o1YLitDj3kpg0"
581+
assert (jwk.thumbprint('SHA-256').decode()) == thumbprint
582+
583+
def test_thumbprint_rsa():
584+
jwk = key_from_jwk_dict({
585+
"kty": "RSA",
586+
"e": "AQAB",
587+
"n": "3xIyjRLL1LYi2FULhN6koVwtsaixgXa5TBOMcq2EMsk_Fq-tSXmxA8ATYcUnuSGX3PGJ5pHwIF42eesIzQV5ypYklF0sLAkmkXow_TMDX0qoc4rdfc2prq-mzPWwGcYoRsjDKiSUFOUSKB41zQ6sMY2k4BWZVo1bEL0CVpVct1DDhqSME6uUKex9T2AbwWNvwFacrwJaWyKixBhiPSwVBn7dUWDnJiM39_4Lnw6JnriXcli-aJlPuXm5F_qspXL4Pfn9nR5Z9j9Qf7NFif7nVRyg8cx7OYTbbsoIbMYYG-boVPLL7ebEBZVIUysqH_WkNJlkl5m7gAs5DB_KfMx18Q",
588+
})
589+
thumbprint = "Q1wZMrouq_iCnG7mr2y03Zxf7iE9mie-y_Mfh9-Cgk0"
590+
assert (jwk.thumbprint('SHA-256').decode()) == thumbprint

0 commit comments

Comments
 (0)