KittenBlue.JWK.X509 (kitten_blue v0.9.1)

Handling JWK modules with regard to X.509

Link to this section Summary

Functions

Generate KittenBlue.JWK.X509 struct

Generate KittenBlue.JWK from JWS Token that includes X.509 Certificate Chain

Link to this section Types

Link to this type

certificate()

Specs

certificate() :: X509.ASN1.record(:otp_certificate)

Specs

t() :: %KittenBlue.JWK.X509{x5c: [String.t()]}

Link to this section Functions

Specs

new(params :: Keywords.t()) :: t()
new(params :: Map.t()) :: t()

Generate KittenBlue.JWK.X509 struct

kid = "sample_202301"
alg = "RS256"
key = JOSE.JWK.from_pem_file("rsa-2048.pem")

x5c = [cert |> X509.Certificate.to_der() |> Base.encode64()]
x509 = KittenBlue.JWK.X509.new([x5c: x5c])
kb_jwk = KittenBlue.JWK.new(%{kid: kid, alg: alg, key: key, x509: x509})
Link to this function

new_from_jws_token(jws_token, trusted_cert)

Specs

new_from_jws_token(jws_token :: String.t(), trusted_cert :: certificate()) ::
  KittenBlue.JWK.t()
  | {:error, :invalid_certificate}
  | {:error, :invalid_jws_header}
  | {:error, :invalid_jws_format}

Generate KittenBlue.JWK from JWS Token that includes X.509 Certificate Chain