def sig.check

bend-kit-jwt@0.11.0.1 · jwt.bend:501

import bend-kit-jwt@0.11.0.1/jwt.bend as Jwt
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes

501# Does sig sign input under key for alg? A key of the wrong kind fails with KeyType before any crypto.
502def sig.check(a: Alg, key: Key, input: Bytes.Bytes, sig: Bytes.Bytes) -> IO(Result<&1, &1, Err, Bool>):
503  match a key:
504    case HS256{} Hmac{k}:
505      mac.check("SHA256", 32, k, input, sig)
506    case HS384{} Hmac{k}:
507      mac.check("SHA384", 48, k, input, sig)
508    case HS512{} Hmac{k}:
509      mac.check("SHA512", 64, k, input, sig)
510    case RS256{} Pem{p}:
511      rsa.pem(p, input, sig)
512    case RS256{} Rsa{n, e}:
513      rsa.jwk(n, e, input, sig)
514    case ES256{} Pem{p}:
515      ec.pem(p, input, sig)
516    case ES256{} Ec{x, y}:
517      ec.jwk(x, y, input, sig)
518    case _ _:
519      IO.pure(Result<&1, &1, Err, Bool>, Fail{KeyType{}})

Uses (13)

Used by (1)