| Stability | internal |
|---|---|
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Crypto.WebAuthn.Cose.Internal.Verify
Description
public keys and signature algorithms are represented with three different types:
CoseSignAlg, which is the signature algorithm used, equivalent to a COSE Algorithm from the COSE registryCosePublicKey, which is a combination of aCoseSignAlgalong with a public key that can be used with it. This is what the COSE_Key CBOR structure decodes toPublicKey, only the public key part ofCosePublicKey
The following main operations are supported for these types:
CosePublicKeycan be totally decomposed into aCoseSignAlgwithsignAlgand aPublicKeywithpublicKey- A
PublicKeycan be created from an X.509 public key withfromX509 - A
CoseSignAlgand aPublicKeycan be used to verify a signature withverify
Synopsis
- fromX509 :: PubKey -> Either Text PublicKey
- verify :: PublicKeyWithSignAlg -> ByteString -> ByteString -> Either Text ()
- data SomeHashAlgorithm = forall a.HashAlgorithm a => SomeHashAlgorithm a
- toCryptHashECDSA :: CoseHashAlgECDSA -> SomeHashAlgorithm
- data SomeHashAlgorithmASN1 = forall a.HashAlgorithmASN1 a => SomeHashAlgorithmASN1 a
- toCryptHashRSA :: CoseHashAlgRSA -> SomeHashAlgorithmASN1
Public Key
Signature verification
verify :: PublicKeyWithSignAlg -> ByteString -> ByteString -> Either Text () Source #
Verifies an asymmetric signature for a message using a
PublicKeyWithSignAlg Returns an error if the signature algorithm
doesn't match. Also returns an error if the signature wasn't valid or for
other errors.
Hash Conversions to cryptonite types
data SomeHashAlgorithm Source #
Some cryptonite HashAlgorithm type, used as a return value of toCryptHashECDSA
Constructors
| forall a.HashAlgorithm a => SomeHashAlgorithm a |
toCryptHashECDSA :: CoseHashAlgECDSA -> SomeHashAlgorithm Source #
Returns the cryptonite SomeHashAlgorithm corresponding to this hash algorithm
data SomeHashAlgorithmASN1 Source #
Some cryptonite HashAlgorithmASN1 type, used as a return value of toCryptHashRSA
Constructors
| forall a.HashAlgorithmASN1 a => SomeHashAlgorithmASN1 a |
toCryptHashRSA :: CoseHashAlgRSA -> SomeHashAlgorithmASN1 Source #
Returns the cryptonite SomeHashAlgorithmASN1 corresponding to this hash algorithm