summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2020-01-01 00:00:00 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2021-06-19 15:44:24 +0200
commit6202ffc3fa4ffd0ab4f62535a0526792571f76e7 (patch)
tree3a08b46f05339658544411bbd92ef93642c364f0 /tests
parentb421139970323462df02c52bccfc960558d4c10f (diff)
Add a signature and verification function for JWS
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/verification-failed.scm24
-rw-r--r--tests/verify.scm15
3 files changed, 42 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b889e0b..22718cf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -8,7 +8,9 @@ TESTS = %reldir%/load-library.scm \
%reldir%/jwk-kty-rsa-incorrect.scm \
%reldir%/hash-ok.scm \
%reldir%/hash-unsupported.scm \
- %reldir%/jkt.scm
+ %reldir%/jkt.scm \
+ %reldir%/verify.scm \
+ %reldir%/verification-failed.scm
EXTRA_DIST += $(TESTS)
diff --git a/tests/verification-failed.scm b/tests/verification-failed.scm
new file mode 100644
index 0000000..b580caa
--- /dev/null
+++ b/tests/verification-failed.scm
@@ -0,0 +1,24 @@
+(use-modules (webid-oidc stubs)
+ (webid-oidc errors)
+ (webid-oidc testing))
+
+(with-test-environment
+ "verification-failed"
+ (lambda ()
+ (let* ((key (json-string->scm "{
+ \"kty\":\"EC\",
+ \"x\":\"l8tFrhx-34tV3hRICRDY9zCkDlpBhF42UQUfWVAWBFs\",
+ \"y\":\"9VE4jf_Ok_o64zbTTlcuNJajHmt6v9TDVrU0CdvGRDA\",
+ \"crv\":\"P-256\"
+ }"))
+ (payload "eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IkVTMjU2IiwiandrIjp7Imt0eSI6IkVDIiwieCI6Imw4dEZyaHgtMzR0VjNoUklDUkRZOXpDa0RscEJoRjQyVVFVZldWQVdCRnMiLCJ5IjoiOVZFNGpmX09rX282NHpiVFRsY3VOSmFqSG10NnY5VERWclUwQ2R2R1JEQSIsImNydiI6IlAtMjU2In19.eyJqdGkiOiJlMWozVl9iS2ljOC1MQUVCIiwiaHRtIjoiR0VUIiwiaHR1IjoiaHR0cHM6Ly9yZXNvdXJjZS5leGFtcGxlLm9yZy9wcm90ZWN0ZWRyZXNvdXJjZSIsImlhdCI6MTU2MjI2MjYxOH0")
+ (signature "lNhmpAX_WwmpBvwhok4E74kWCiGBNdavjLAeevGy32H3dbF0Jbri69Nm2ukkwb-uyUI4AUg_JSskfWIyo4UCbQ")) ;; Replaced 1 with _
+ (with-exception-handler
+ (lambda (error)
+ (unless ((record-predicate &invalid-signature) error)
+ (exit 1)))
+ (lambda ()
+ (verify 'ES256 key payload signature)
+ (exit 2))
+ #:unwind? #t
+ #:unwind-for-type &invalid-signature))))
diff --git a/tests/verify.scm b/tests/verify.scm
new file mode 100644
index 0000000..e6dc2fd
--- /dev/null
+++ b/tests/verify.scm
@@ -0,0 +1,15 @@
+(use-modules (webid-oidc stubs)
+ (webid-oidc testing))
+
+(with-test-environment
+ "verify"
+ (lambda ()
+ (let* ((key (json-string->scm "{
+ \"kty\":\"EC\",
+ \"x\":\"l8tFrhx-34tV3hRICRDY9zCkDlpBhF42UQUfWVAWBFs\",
+ \"y\":\"9VE4jf_Ok_o64zbTTlcuNJajHmt6v9TDVrU0CdvGRDA\",
+ \"crv\":\"P-256\"
+ }"))
+ (payload "eyJ0eXAiOiJkcG9wK2p3dCIsImFsZyI6IkVTMjU2IiwiandrIjp7Imt0eSI6IkVDIiwieCI6Imw4dEZyaHgtMzR0VjNoUklDUkRZOXpDa0RscEJoRjQyVVFVZldWQVdCRnMiLCJ5IjoiOVZFNGpmX09rX282NHpiVFRsY3VOSmFqSG10NnY5VERWclUwQ2R2R1JEQSIsImNydiI6IlAtMjU2In19.eyJqdGkiOiJlMWozVl9iS2ljOC1MQUVCIiwiaHRtIjoiR0VUIiwiaHR1IjoiaHR0cHM6Ly9yZXNvdXJjZS5leGFtcGxlLm9yZy9wcm90ZWN0ZWRyZXNvdXJjZSIsImlhdCI6MTU2MjI2MjYxOH0")
+ (signature "lNhmpAX1WwmpBvwhok4E74kWCiGBNdavjLAeevGy32H3dbF0Jbri69Nm2ukkwb-uyUI4AUg1JSskfWIyo4UCbQ"))
+ (verify 'ES256 key payload signature))))