diff --git a/openid-key.asd b/openid-key.asd index 28d977f..a5a1a3b 100644 --- a/openid-key.asd +++ b/openid-key.asd @@ -3,14 +3,14 @@ |# (defsystem "openid-key" - :version "0.1.0" + :version "0.1.1" :author "Koga Kazuo" :license "MIT" - :depends-on ("dexador" + :depends-on ("cl-base64" + "dexador" "ironclad" "jonathan" "local-time" - "qbase64" "quri" "trivial-rfc-1123") :components ((:module "src" diff --git a/src/openid-key.lisp b/src/openid-key.lisp index 362f7e1..553ec64 100644 --- a/src/openid-key.lisp +++ b/src/openid-key.lisp @@ -33,18 +33,9 @@ (setf (quri:uri-path config) well-known)) config)) -(defun padding (s) - (let ((p (- 4 (rem (length s) 4)))) - (case p - ((1) (concatenate 'string s "=")) - ((2) (concatenate 'string s "==")) - ((3) (concatenate 'string s "===")) - (otherwise s)))) - (defun b64-integer (s) - (let* ((b (qbase64:decode-string (padding s) :scheme :uri)) - (v (make-array (length b) :element-type '(unsigned-byte 8) :initial-contents b))) - (ironclad:octets-to-integer v))) + (ironclad:octets-to-integer + (base64:base64-string-to-usb8-array s :uri t))) (defun jwk-key (jwk) (when (equal "RSA" (cdr (assoc "kty" jwk :test 'equal)))