hOpenPGP-3.5: native Haskell implementation of OpenPGP (RFC9580)
Safe HaskellNone
LanguageHaskell2010

Codec.Encryption.OpenPGP.Signatures

Synopsis

Verification

data VerificationError Source #

verifyAgainstKeysWithPolicy :: VerificationPolicy -> [TK 'PublicTK] -> Pkt -> Maybe UTCTime -> ByteString -> Either VerificationError Verification Source #

Verify a signature against a list of keys with a custom verification policy.

verifyAgainstPKPsWithPolicy :: VerificationPolicy -> [SomePKPayload] -> Pkt -> Maybe UTCTime -> ByteString -> Either VerificationError Verification Source #

Verify a signature against a list of public key payloads with a custom verification policy.

verifyTKWith :: forall (k :: TKKind). (Pkt -> PktStreamContext -> Maybe UTCTime -> Either VerificationError Verification) -> Maybe UTCTime -> TK k -> Either VerificationError (TK k) Source #

crossSignSubkeyWithRSA Source #

Arguments

:: HashAlgorithm 
-> SomePKPayload

public key "payload" of key being signed

-> SomePKPayload

public subkey "payload" of key being signed

-> [SigSubPacket]

hashed signature subpackets for binding sig

-> [SigSubPacket]

unhashed signature subpackets for binding sig

-> [SigSubPacket]

hashed signature subpackets for embedded sig

-> [SigSubPacket]

unhashed signature subpackets for embedded sig

-> PrivateKey

RSA signing key

-> PrivateKey

RSA signing subkey

-> Either SignError SignaturePayload 

Payload builders

SignablePrivateKey typeclass

Builder-based API (Phase 2)

signDataWithRSABuilder :: SigBuilder Unhashed V4Sig 'RSA -> PrivateKey -> ByteString -> Either SignError SignaturePayload Source #

Builder-based signature creation for RSA

Example usage: builder <- sigBuilderInit BinarySig RSA SHA512 builder' <- addHashedSubs hashedSubpackets builder builder'' <- addUnhashedSubs unhashedSubpackets builder' sig <- signDataWithRSABuilder builder'' rsaPrivateKey payload

signDataWithEd25519Builder :: SigBuilder Unhashed V4Sig 'Ed25519 -> SecretKey -> ByteString -> Either SignError SignaturePayload Source #

Builder-based signature creation for Ed25519 (v4)

Example usage: builder <- sigBuilderInit BinarySig Ed25519 SHA512 builder' <- addHashedSubs hashedSubpackets builder builder'' <- addUnhashedSubs unhashedSubpackets builder' sig <- signDataWithEd25519Builder builder'' ed25519PrivateKey payload

signDataWithEd25519V6Builder :: SigBuilder Unhashed V6Sig 'Ed25519 -> SecretKey -> ByteString -> Either SignError SignaturePayload Source #

Builder-based signature creation for Ed25519 (v6)

Example usage: builder <- sigBuilderInitV6 BinarySig Ed25519 SHA512 salt builder' <- addHashedSubs hashedSubpackets builder builder'' <- addUnhashedSubs unhashedSubpackets builder' sig <- signDataWithEd25519V6Builder builder'' ed25519PrivateKey payload

signDataWithEd448Builder :: SigBuilder Unhashed V4Sig 'Ed448 -> SecretKey -> ByteString -> Either SignError SignaturePayload Source #

Builder-based signature creation for Ed448 (v4)

Example usage: builder <- sigBuilderInit BinarySig Ed448 SHA512 builder' <- addHashedSubs hashedSubpackets builder builder'' <- addUnhashedSubs unhashedSubpackets builder' sig <- signDataWithEd448Builder builder'' ed448PrivateKey payload

Text normalization mode

data TextNormalizationMode Source #

Controls how text payload is normalized for CanonicalTextSig.

RFC 9580 §5.2.1.2 requires only CRLF normalization for type 0x01 signatures. Trailing-whitespace stripping is only mandated by §7 (Cleartext Signature Framework). Use CleartextCompat for GnuPG-compatible behaviour when producing cleartext-armored signatures; use RFC9580Strict for inline text signatures.

Constructors

RFC9580Strict

CRLF normalization only; no trailing-whitespace stripping. Correct for inline type 0x01 document signatures.

CleartextCompat

CRLF normalization *plus* per-line trailing-whitespace stripping. Required by the Cleartext Signature Framework (RFC 9580 §7).