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

Codec.Encryption.OpenPGP.Signatures

Synopsis

Documentation

data VerificationError Source #

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

signCertificationWithRSA Source #

Arguments

:: SigType

certification type (GenericCert, PersonaCert, CasualCert, PositiveCert)

-> SomePKPayload

public key "payload" of user ID being signed

-> UserId

user ID being signed

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

signDirectKeyWithRSA Source #

Arguments

:: SigType

key-scoped signature type (SignatureDirectlyOnAKey or KeyRevocationSig)

-> SomePKPayload

primary key "payload" being signed

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

signKeyRevocationWithRSA Source #

Arguments

:: SomePKPayload

primary key "payload" being revoked

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

signSubkeyRevocationWithRSA Source #

Arguments

:: SomePKPayload

primary key "payload"

-> SomePKPayload

public subkey "payload" being revoked

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

signCertRevocationWithRSA Source #

Arguments

:: SomePKPayload

primary key "payload"

-> UserId

user ID certification being revoked

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

signUserIDwithRSA Source #

Arguments

:: SomePKPayload

public key "payload" of user ID being signed

-> UserId

user ID being signed

-> [SigSubPacket]

hashed signature subpackets

-> [SigSubPacket]

unhashed signature subpackets

-> PrivateKey

RSA signing key

-> Either SignError SignaturePayload 

crossSignSubkeyWithRSA Source #

Arguments

:: 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 

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

signDataWithEd448V6Builder :: SigBuilder Unhashed V6Sig 'Ed448 -> SecretKey -> ByteString -> Either SignError SignaturePayload Source #

Builder-based signature creation for Ed448 (v6)

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).