| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Codec.Encryption.OpenPGP.Signing
Description
Synopsis
- data SigningT (tk :: TKKind) (m :: Type -> Type) a
- runSigningT :: Monad m => TK 'SecretTK -> ThirtyTwoBitTimeStamp -> SigningT 'SecretTK m a -> m (Either SigningError a)
- data SigningTarget
- data AvailableSigner = AvailableSigner {
- asKeyId :: !EightOctetKeyId
- asFingerprint :: !Fingerprint
- asKeyPacket :: !(KeyPkt 'SecretPkt)
- asSKey :: !SKey
- asIsPrimary :: !Bool
- asUsage :: !(Set KeyFlag)
- listAvailableSigners :: TK 'SecretTK -> [AvailableSigner]
- filterSigningCapable :: [AvailableSigner] -> [AvailableSigner]
- filterByKeyId :: EightOctetKeyId -> [AvailableSigner] -> [AvailableSigner]
- filterByFingerprint :: Fingerprint -> [AvailableSigner] -> [AvailableSigner]
- data SigningPayload
- signWith :: forall (m :: Type -> Type). MonadRandom m => SigningTarget -> SigningPayload -> SigningT 'SecretTK m (Either SigningError SignaturePayload)
- signUserId :: forall (m :: Type -> Type). MonadRandom m => SigType -> UserId -> SigningT 'SecretTK m (Either SigningError SignaturePayload)
- signUat :: forall (m :: Type -> Type). MonadRandom m => SigType -> UserAttribute -> SigningT 'SecretTK m (Either SigningError SignaturePayload)
- getCurrentTimestamp :: forall (m :: Type -> Type) (tk :: TKKind). Monad m => SigningT tk m ThirtyTwoBitTimeStamp
- setCurrentTimestamp :: forall (m :: Type -> Type) (tk :: TKKind). Monad m => ThirtyTwoBitTimeStamp -> SigningT tk m ()
- withTimestamp :: forall (m :: Type -> Type) (tk :: TKKind) a. Monad m => ThirtyTwoBitTimeStamp -> SigningT tk m a -> SigningT tk m a
SigningT transformer
data SigningT (tk :: TKKind) (m :: Type -> Type) a Source #
The signing monad transformer.
Instances
| Monad m => Applicative (SigningT tk m) Source # | |
Defined in Codec.Encryption.OpenPGP.Signing Methods pure :: a -> SigningT tk m a Source # (<*>) :: SigningT tk m (a -> b) -> SigningT tk m a -> SigningT tk m b Source # liftA2 :: (a -> b -> c) -> SigningT tk m a -> SigningT tk m b -> SigningT tk m c Source # (*>) :: SigningT tk m a -> SigningT tk m b -> SigningT tk m b Source # (<*) :: SigningT tk m a -> SigningT tk m b -> SigningT tk m a Source # | |
| Functor m => Functor (SigningT tk m) Source # | |
| Monad m => Monad (SigningT tk m) Source # | |
Arguments
| :: Monad m | |
| => TK 'SecretTK | The secret transferable key to sign with |
| -> ThirtyTwoBitTimeStamp | Initial timestamp |
| -> SigningT 'SecretTK m a | Action to run |
| -> m (Either SigningError a) |
Run a SigningT action.
Signing target selection
data SigningTarget Source #
Which key to sign with.
Constructors
| SignWithPrimary | |
| SignWithKey !EightOctetKeyId | |
| SignWithBest | |
| SignWithBestFilter !(AvailableSigner -> Bool) |
data AvailableSigner Source #
A signing-capable key extracted from a TK.
Constructors
| AvailableSigner | |
Fields
| |
listAvailableSigners :: TK 'SecretTK -> [AvailableSigner] Source #
filterSigningCapable :: [AvailableSigner] -> [AvailableSigner] Source #
Filter to only signing-capable keys.
filterByKeyId :: EightOctetKeyId -> [AvailableSigner] -> [AvailableSigner] Source #
Filter by key ID.
filterByFingerprint :: Fingerprint -> [AvailableSigner] -> [AvailableSigner] Source #
Filter by fingerprint.
Signing payloads
data SigningPayload Source #
A typed signing payload.
Constructors
Instances
| Show SigningPayload Source # | |
Defined in Codec.Encryption.OpenPGP.Signing | |
| Eq SigningPayload Source # | |
Defined in Codec.Encryption.OpenPGP.Signing Methods (==) :: SigningPayload -> SigningPayload -> Bool Source # (/=) :: SigningPayload -> SigningPayload -> Bool Source # | |
Low-level signing
signWith :: forall (m :: Type -> Type). MonadRandom m => SigningTarget -> SigningPayload -> SigningT 'SecretTK m (Either SigningError SignaturePayload) Source #
Sign an arbitrary payload with a selected key.
High-level signing operations
signUserId :: forall (m :: Type -> Type). MonadRandom m => SigType -> UserId -> SigningT 'SecretTK m (Either SigningError SignaturePayload) Source #
Sign a user ID with the primary key.
signUat :: forall (m :: Type -> Type). MonadRandom m => SigType -> UserAttribute -> SigningT 'SecretTK m (Either SigningError SignaturePayload) Source #
Sign a user attribute with the primary key.
Timestamp control
getCurrentTimestamp :: forall (m :: Type -> Type) (tk :: TKKind). Monad m => SigningT tk m ThirtyTwoBitTimeStamp Source #
Get the current signing timestamp.
setCurrentTimestamp :: forall (m :: Type -> Type) (tk :: TKKind). Monad m => ThirtyTwoBitTimeStamp -> SigningT tk m () Source #
Set the current signing timestamp.
withTimestamp :: forall (m :: Type -> Type) (tk :: TKKind) a. Monad m => ThirtyTwoBitTimeStamp -> SigningT tk m a -> SigningT tk m a Source #
Execute an action with a specific timestamp.