Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- newtype CipherSuite = CipherSuite {}
- defCipherSuite :: CipherSuiteTag
- data CipherSuiteTag
- cipherSuiteTag :: CipherSuite -> Maybe CipherSuiteTag
- tagCipherSuite :: CipherSuiteTag -> CipherSuite
- newtype SignatureScheme = SignatureScheme {}
- class IsSignatureScheme (ss :: SignatureSchemeTag)
- data SignatureSchemeTag
- type family SignatureSchemeCurve (ss :: SignatureSchemeTag)
- signatureSchemeName :: SignatureSchemeTag -> Text
- csSignatureScheme :: CipherSuiteTag -> SignatureSchemeTag
- type KeyPair (ss :: SignatureSchemeTag) = (PrivateKey ss, PublicKey ss)
- csHash :: CipherSuiteTag -> ByteString -> RawMLS a -> ByteString
- csVerifySignatureWithLabel :: CipherSuiteTag -> ByteString -> ByteString -> RawMLS a -> ByteString -> Bool
- csVerifySignature :: CipherSuiteTag -> ByteString -> RawMLS a -> ByteString -> Bool
- signWithLabel :: forall ss a m. (IsSignatureScheme ss, MonadRandom m) => ByteString -> KeyPair ss -> RawMLS a -> m ByteString
MLS ciphersuites
newtype CipherSuite Source #
Instances
data CipherSuiteTag Source #
Instances
tagCipherSuite :: CipherSuiteTag -> CipherSuite Source #
Inverse of cipherSuiteTag
MLS signature schemes
newtype SignatureScheme Source #
A TLS signature scheme.
See https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-signaturescheme.
Instances
Arbitrary SignatureScheme Source # | |
Defined in Wire.API.MLS.CipherSuite | |
Show SignatureScheme Source # | |
Defined in Wire.API.MLS.CipherSuite showsPrec :: Int -> SignatureScheme -> ShowS # show :: SignatureScheme -> String # showList :: [SignatureScheme] -> ShowS # | |
Eq SignatureScheme Source # | |
Defined in Wire.API.MLS.CipherSuite (==) :: SignatureScheme -> SignatureScheme -> Bool # (/=) :: SignatureScheme -> SignatureScheme -> Bool # | |
ParseMLS SignatureScheme Source # | |
Defined in Wire.API.MLS.CipherSuite |
class IsSignatureScheme (ss :: SignatureSchemeTag) Source #
sign
Instances
IsSignatureScheme 'Ecdsa_secp256r1_sha256 Source # | |
Defined in Wire.API.MLS.CipherSuite sign :: MonadRandom m => KeyPair 'Ecdsa_secp256r1_sha256 -> ByteString -> m ByteString | |
IsSignatureScheme 'Ecdsa_secp384r1_sha384 Source # | |
Defined in Wire.API.MLS.CipherSuite sign :: MonadRandom m => KeyPair 'Ecdsa_secp384r1_sha384 -> ByteString -> m ByteString | |
IsSignatureScheme 'Ecdsa_secp521r1_sha512 Source # | |
Defined in Wire.API.MLS.CipherSuite sign :: MonadRandom m => KeyPair 'Ecdsa_secp521r1_sha512 -> ByteString -> m ByteString | |
IsSignatureScheme 'Ed25519 Source # | |
Defined in Wire.API.MLS.CipherSuite sign :: MonadRandom m => KeyPair 'Ed25519 -> ByteString -> m ByteString |
data SignatureSchemeTag Source #
Instances
type family SignatureSchemeCurve (ss :: SignatureSchemeTag) Source #
Instances
type SignatureSchemeCurve 'Ecdsa_secp256r1_sha256 Source # | |
Defined in Wire.API.MLS.CipherSuite | |
type SignatureSchemeCurve 'Ecdsa_secp384r1_sha384 Source # | |
Defined in Wire.API.MLS.CipherSuite | |
type SignatureSchemeCurve 'Ecdsa_secp521r1_sha512 Source # | |
Defined in Wire.API.MLS.CipherSuite |
Key pairs
type KeyPair (ss :: SignatureSchemeTag) = (PrivateKey ss, PublicKey ss) Source #
Utilities
csHash :: CipherSuiteTag -> ByteString -> RawMLS a -> ByteString Source #
csVerifySignatureWithLabel :: CipherSuiteTag -> ByteString -> ByteString -> RawMLS a -> ByteString -> Bool Source #
csVerifySignature :: CipherSuiteTag -> ByteString -> RawMLS a -> ByteString -> Bool Source #
signWithLabel :: forall ss a m. (IsSignatureScheme ss, MonadRandom m) => ByteString -> KeyPair ss -> RawMLS a -> m ByteString Source #