jose-0.9: JSON Object Signing and Encryption (JOSE) and JSON Web Token (JWT) library
Safe HaskellNone
LanguageHaskell2010

Crypto.JOSE.Types

Description

Data types for the JOSE library.

Synopsis

Documentation

newtype Base64Integer Source #

A base64url encoded octet sequence interpreted as an integer.

The value is encoded in the minimum number of octets (no leading zeros) with the exception of 0 which is encoded as AA. A leading zero when decoding is an error.

Constructors

Base64Integer Integer 

Instances

Instances details
Eq Base64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Show Base64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> Base64Integer -> ShowS

show :: Base64Integer -> String

showList :: [Base64Integer] -> ShowS

FromJSON Base64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser Base64Integer

parseJSONList :: Value -> Parser [Base64Integer]

ToJSON Base64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

toJSON :: Base64Integer -> Value

toEncoding :: Base64Integer -> Encoding

toJSONList :: [Base64Integer] -> Value

toEncodingList :: [Base64Integer] -> Encoding

Arbitrary Base64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

data SizedBase64Integer Source #

A base64url encoded octet sequence interpreted as an integer and where the number of octets carries explicit bit-length information.

Constructors

SizedBase64Integer Int Integer 

Instances

Instances details
Eq SizedBase64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Show SizedBase64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> SizedBase64Integer -> ShowS

show :: SizedBase64Integer -> String

showList :: [SizedBase64Integer] -> ShowS

FromJSON SizedBase64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser SizedBase64Integer

parseJSONList :: Value -> Parser [SizedBase64Integer]

ToJSON SizedBase64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

Arbitrary SizedBase64Integer Source # 
Instance details

Defined in Crypto.JOSE.Types

makeSizedBase64Integer :: Integer -> SizedBase64Integer Source #

Create a SizedBase64Integer' from an Integer.

genSizedBase64IntegerOf :: Int -> Gen SizedBase64Integer Source #

Generate a SizedBase64Integer of the given number of bytes

checkSize :: Int -> SizedBase64Integer -> Parser SizedBase64Integer Source #

Parsed a SizedBase64Integer with an expected number of bytes.

newtype Base64Octets Source #

A base64url encoded octet sequence. Used for payloads, signatures, symmetric keys, salts, initialisation vectors, etc.

Constructors

Base64Octets ByteString 

Instances

Instances details
Eq Base64Octets Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

(==) :: Base64Octets -> Base64Octets -> Bool

(/=) :: Base64Octets -> Base64Octets -> Bool

Show Base64Octets Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> Base64Octets -> ShowS

show :: Base64Octets -> String

showList :: [Base64Octets] -> ShowS

FromJSON Base64Octets Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser Base64Octets

parseJSONList :: Value -> Parser [Base64Octets]

ToJSON Base64Octets Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

toJSON :: Base64Octets -> Value

toEncoding :: Base64Octets -> Encoding

toJSONList :: [Base64Octets] -> Value

toEncodingList :: [Base64Octets] -> Encoding

Arbitrary Base64Octets Source # 
Instance details

Defined in Crypto.JOSE.Types

newtype Base64SHA1 Source #

A base64url encoded SHA-1 digest. Used for X.509 certificate thumbprints.

Constructors

Base64SHA1 ByteString 

Instances

Instances details
Eq Base64SHA1 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

(==) :: Base64SHA1 -> Base64SHA1 -> Bool

(/=) :: Base64SHA1 -> Base64SHA1 -> Bool

Show Base64SHA1 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> Base64SHA1 -> ShowS

show :: Base64SHA1 -> String

showList :: [Base64SHA1] -> ShowS

FromJSON Base64SHA1 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser Base64SHA1

parseJSONList :: Value -> Parser [Base64SHA1]

ToJSON Base64SHA1 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

toJSON :: Base64SHA1 -> Value

toEncoding :: Base64SHA1 -> Encoding

toJSONList :: [Base64SHA1] -> Value

toEncodingList :: [Base64SHA1] -> Encoding

Arbitrary Base64SHA1 Source # 
Instance details

Defined in Crypto.JOSE.Types

newtype Base64SHA256 Source #

A base64url encoded SHA-256 digest. Used for X.509 certificate thumbprints.

Constructors

Base64SHA256 ByteString 

Instances

Instances details
Eq Base64SHA256 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

(==) :: Base64SHA256 -> Base64SHA256 -> Bool

(/=) :: Base64SHA256 -> Base64SHA256 -> Bool

Show Base64SHA256 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> Base64SHA256 -> ShowS

show :: Base64SHA256 -> String

showList :: [Base64SHA256] -> ShowS

FromJSON Base64SHA256 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser Base64SHA256

parseJSONList :: Value -> Parser [Base64SHA256]

ToJSON Base64SHA256 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

toJSON :: Base64SHA256 -> Value

toEncoding :: Base64SHA256 -> Encoding

toJSONList :: [Base64SHA256] -> Value

toEncodingList :: [Base64SHA256] -> Encoding

Arbitrary Base64SHA256 Source # 
Instance details

Defined in Crypto.JOSE.Types

newtype Base64X509 Source #

A base64 encoded X.509 certificate.

Instances

Instances details
Eq Base64X509 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

(==) :: Base64X509 -> Base64X509 -> Bool

(/=) :: Base64X509 -> Base64X509 -> Bool

Show Base64X509 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

showsPrec :: Int -> Base64X509 -> ShowS

show :: Base64X509 -> String

showList :: [Base64X509] -> ShowS

FromJSON Base64X509 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

parseJSON :: Value -> Parser Base64X509

parseJSONList :: Value -> Parser [Base64X509]

ToJSON Base64X509 Source # 
Instance details

Defined in Crypto.JOSE.Types

Methods

toJSON :: Base64X509 -> Value

toEncoding :: Base64X509 -> Encoding

toJSONList :: [Base64X509] -> Value

toEncodingList :: [Base64X509] -> Encoding

type SignedCertificate = SignedExact Certificate #

data URI #

Instances

Instances details
Eq URI 
Instance details

Defined in Network.URI

Methods

(==) :: URI -> URI -> Bool

(/=) :: URI -> URI -> Bool

Data URI 
Instance details

Defined in Network.URI

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> URI -> c URI

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c URI

toConstr :: URI -> Constr

dataTypeOf :: URI -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c URI)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c URI)

gmapT :: (forall b. Data b => b -> b) -> URI -> URI

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> URI -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> URI -> r

gmapQ :: (forall d. Data d => d -> u) -> URI -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> URI -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> URI -> m URI

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> URI -> m URI

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> URI -> m URI

Ord URI 
Instance details

Defined in Network.URI

Methods

compare :: URI -> URI -> Ordering

(<) :: URI -> URI -> Bool

(<=) :: URI -> URI -> Bool

(>) :: URI -> URI -> Bool

(>=) :: URI -> URI -> Bool

max :: URI -> URI -> URI

min :: URI -> URI -> URI

Show URI 
Instance details

Defined in Network.URI

Methods

showsPrec :: Int -> URI -> ShowS

show :: URI -> String

showList :: [URI] -> ShowS

Generic URI 
Instance details

Defined in Network.URI

Associated Types

type Rep URI :: Type -> Type

Methods

from :: URI -> Rep URI x

to :: Rep URI x -> URI

NFData URI 
Instance details

Defined in Network.URI

Methods

rnf :: URI -> ()

FromJSON URI 
Instance details

Defined in Crypto.JOSE.Types.Orphans

Methods

parseJSON :: Value -> Parser URI

parseJSONList :: Value -> Parser [URI]

ToJSON URI 
Instance details

Defined in Crypto.JOSE.Types.Orphans

Methods

toJSON :: URI -> Value

toEncoding :: URI -> Encoding

toJSONList :: [URI] -> Value

toEncodingList :: [URI] -> Encoding

Lift URI 
Instance details

Defined in Network.URI

Methods

lift :: URI -> Q Exp

liftTyped :: URI -> Q (TExp URI)

type Rep URI 
Instance details

Defined in Network.URI

type Rep URI = D1 ('MetaData "URI" "Network.URI" "network-uri-2.6.4.1-2R61L6t2WzL2ZwKkeVSxCa" 'False) (C1 ('MetaCons "URI" 'PrefixI 'True) ((S1 ('MetaSel ('Just "uriScheme") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "uriAuthority") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe URIAuth))) :*: (S1 ('MetaSel ('Just "uriPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "uriQuery") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "uriFragment") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))))

base64url :: (AsEmpty s1, AsEmpty s2, Cons s1 s1 Word8 Word8, Cons s2 s2 Word8 Word8) => Prism' s1 s2 Source #

Prism for encoding / decoding base64url.

To encode, review base64url. To decode, preview base64url.

Works with any combinations of strict/lazy ByteString.