| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Jose.Jwe
Description
JWE RSA encrypted token support.
Example usage:
>>>import Jose.Jwe>>>import Jose.Jwa>>>import Crypto.Random.AESCtr>>>g <- makeSystem>>>import Crypto.PubKey.RSA>>>let ((kPub, kPr), g') = generate g 512 65537>>>let (jwt, g'') = rsaEncode g' RSA_OAEP A128GCM kPub "secret claims">>>fst $ rsaDecode g'' kPr jwtRight (JweHeader {jweAlg = RSA_OAEP, jweEnc = A128GCM, jweTyp = Nothing, jweCty = Nothing, jweZip = Nothing, jweKid = Nothing},"secret claims")
- jwkEncode :: CPRG g => g -> JweAlg -> Enc -> Jwk -> ByteString -> (Either JwtError ByteString, g)
- rsaEncode :: CPRG g => g -> JweAlg -> Enc -> PublicKey -> ByteString -> (ByteString, g)
- rsaDecode :: CPRG g => g -> PrivateKey -> ByteString -> (Either JwtError Jwe, g)
Documentation
Arguments
| :: CPRG g | |
| => g | Random number generator |
| -> JweAlg | Algorithm to use for key encryption |
| -> Enc | Content encryption algorithm |
| -> Jwk | The key to use to encrypt the content key |
| -> ByteString | The token content (claims) |
| -> (Either JwtError ByteString, g) | The encoded JWE if successful |
Create a JWE using a JWK. The key and algorithms must be consistent or an error will be returned.
Arguments
| :: CPRG g | |
| => g | Random number generator |
| -> JweAlg | RSA algorithm to use ( |
| -> Enc | Content encryption algorithm |
| -> PublicKey | RSA key to encrypt with |
| -> ByteString | The JWT claims (content) |
| -> (ByteString, g) | The encoded JWE and new generator |
Creates a JWE.
Arguments
| :: CPRG g | |
| => g | |
| -> PrivateKey | Decryption key |
| -> ByteString | The encoded JWE |
| -> (Either JwtError Jwe, g) | The decoded JWT, unless an error occurs |
Decrypts a JWE.