| Copyright | (c) Max Amanshauser 2021 |
|---|---|
| License | MIT |
| Maintainer | max@lambdalifting.org |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Crypto.Saltine.Internal.Box
Description
Synopsis
- box_publickeybytes :: Int
- box_secretkeybytes :: Int
- box_noncebytes :: Int
- box_zerobytes :: Int
- box_boxzerobytes :: Int
- box_macbytes :: Int
- box_beforenmbytes :: Int
- box_sealbytes :: Int
- c_box_keypair :: Ptr CChar -> Ptr CChar -> IO CInt
- c_box_easy :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> Ptr CChar -> Ptr CChar -> IO CInt
- c_box_open_easy :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> Ptr CChar -> Ptr CChar -> IO CInt
- c_box_beforenm :: Ptr CChar -> Ptr CChar -> Ptr CChar -> IO CInt
- c_box_easy_afternm :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> Ptr CChar -> IO CInt
- c_box_open_easy_afternm :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> Ptr CChar -> IO CInt
- c_box_seal :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> IO CInt
- c_box_seal_open :: Ptr CChar -> Ptr CChar -> CULLong -> Ptr CChar -> Ptr CChar -> IO CInt
- newtype SecretKey = SK {
- unSK :: ByteString
- newtype PublicKey = PK {
- unPK :: ByteString
- data Keypair = Keypair {}
- newtype CombinedKey = CK {
- unCK :: ByteString
- newtype Nonce = Nonce {}
Documentation
box_publickeybytes :: Int Source #
Size of a crypto_box public key
box_secretkeybytes :: Int Source #
Size of a crypto_box secret key
box_noncebytes :: Int Source #
Size of a crypto_box nonce
box_zerobytes :: Int Source #
Size of 0-padding prepended to messages before using crypto_box
or after using crypto_box_open
box_boxzerobytes :: Int Source #
Size of 0-padding prepended to ciphertext before using
crypto_box_open or after using crypto_box.
box_macbytes :: Int Source #
box_beforenmbytes :: Int Source #
Size of a crypto_box_beforenm-generated combined key
box_sealbytes :: Int Source #
Amount by which ciphertext is longer than plaintext in sealed boxes
Should always return a 0.
Arguments
| :: Ptr CChar | Cipher output buffer |
| -> Ptr CChar | Constant message input buffer |
| -> CULLong | Length of message input buffer |
| -> Ptr CChar | Constant nonce buffer |
| -> Ptr CChar | Constant public key buffer |
| -> Ptr CChar | Constant secret key buffer |
| -> IO CInt | Always 0 |
The secretbox C API uses C strings.
Arguments
| :: Ptr CChar | Message output buffer |
| -> Ptr CChar | Constant ciphertext input buffer |
| -> CULLong | Length of message input buffer |
| -> Ptr CChar | Constant nonce buffer |
| -> Ptr CChar | Constant public key buffer |
| -> Ptr CChar | Constant secret key buffer |
| -> IO CInt | 0 for success, -1 for failure to verify |
The secretbox C API uses C strings.
Arguments
| :: Ptr CChar | Combined key output buffer |
| -> Ptr CChar | Constant public key buffer |
| -> Ptr CChar | Constant secret key buffer |
| -> IO CInt | Always 0 |
Single target key precompilation.
Arguments
| :: Ptr CChar | Cipher output buffer |
| -> Ptr CChar | Constant message input buffer |
| -> CULLong | Length of message input buffer (incl. 0s) |
| -> Ptr CChar | Constant nonce buffer |
| -> Ptr CChar | Constant combined key buffer |
| -> IO CInt | Always 0 |
Precompiled key crypto box. Uses C strings.
c_box_open_easy_afternm Source #
Arguments
| :: Ptr CChar | Message output buffer |
| -> Ptr CChar | Constant ciphertext input buffer |
| -> CULLong | Length of message input buffer (incl. 0s) |
| -> Ptr CChar | Constant nonce buffer |
| -> Ptr CChar | Constant combined key buffer |
| -> IO CInt | 0 for success, -1 for failure to verify |
The secretbox C API uses C strings.
Arguments
| :: Ptr CChar | Cipher output buffer |
| -> Ptr CChar | Constant message input buffer |
| -> CULLong | Length of message input buffer |
| -> Ptr CChar | Constant public key buffer |
| -> IO CInt | Always 0 |
The sealedbox C API uses C strings.
Arguments
| :: Ptr CChar | Message output buffer |
| -> Ptr CChar | Constant ciphertext input buffer |
| -> CULLong | Length of message input buffer |
| -> Ptr CChar | Constant public key buffer |
| -> Ptr CChar | Constant secret key buffer |
| -> IO CInt | 0 for success, -1 for failure to decrypt |
The sealedbox C API uses C strings.
An opaque box cryptographic secret key.
Constructors
| SK | |
Fields
| |
Instances
An opaque box cryptographic public key.
Constructors
| PK | |
Fields
| |
Instances
| NFData PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| Data PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PublicKey -> c PublicKey # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PublicKey # toConstr :: PublicKey -> Constr # dataTypeOf :: PublicKey -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PublicKey) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PublicKey) # gmapT :: (forall b. Data b => b -> b) -> PublicKey -> PublicKey # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PublicKey -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PublicKey -> r # gmapQ :: (forall d. Data d => d -> u) -> PublicKey -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PublicKey -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PublicKey -> m PublicKey # | |||||
| Generic PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Associated Types
| |||||
| Show PublicKey Source # | |||||
| Eq PublicKey Source # | |||||
| Ord PublicKey Source # | |||||
| Hashable PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| IsEncoding PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods encode :: PublicKey -> ByteString Source # decode :: ByteString -> Maybe PublicKey Source # encoded :: (Choice p, Applicative f) => p PublicKey (f PublicKey) -> p ByteString (f ByteString) Source # | |||||
| type Rep PublicKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box type Rep PublicKey = D1 ('MetaData "PublicKey" "Crypto.Saltine.Internal.Box" "saltine-0.2.2.0-inplace" 'True) (C1 ('MetaCons "PK" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPK") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))) | |||||
A convenience type for keypairs
Instances
| NFData Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| Data Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Keypair -> c Keypair # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Keypair # toConstr :: Keypair -> Constr # dataTypeOf :: Keypair -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Keypair) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Keypair) # gmapT :: (forall b. Data b => b -> b) -> Keypair -> Keypair # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Keypair -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Keypair -> r # gmapQ :: (forall d. Data d => d -> u) -> Keypair -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Keypair -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Keypair -> m Keypair # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Keypair -> m Keypair # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Keypair -> m Keypair # | |||||
| Generic Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box Associated Types
| |||||
| Show Keypair Source # | |||||
| Eq Keypair Source # | |||||
| Ord Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| Hashable Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| type Rep Keypair Source # | |||||
Defined in Crypto.Saltine.Internal.Box type Rep Keypair = D1 ('MetaData "Keypair" "Crypto.Saltine.Internal.Box" "saltine-0.2.2.0-inplace" 'False) (C1 ('MetaCons "Keypair" 'PrefixI 'True) (S1 ('MetaSel ('Just "secretKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SecretKey) :*: S1 ('MetaSel ('Just "publicKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PublicKey))) | |||||
newtype CombinedKey Source #
An opaque boxAfterNM cryptographic combined key.
Constructors
| CK | |
Fields
| |
Instances
| NFData CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods rnf :: CombinedKey -> () # | |||||
| Data CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CombinedKey -> c CombinedKey # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CombinedKey # toConstr :: CombinedKey -> Constr # dataTypeOf :: CombinedKey -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CombinedKey) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CombinedKey) # gmapT :: (forall b. Data b => b -> b) -> CombinedKey -> CombinedKey # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CombinedKey -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CombinedKey -> r # gmapQ :: (forall d. Data d => d -> u) -> CombinedKey -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CombinedKey -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CombinedKey -> m CombinedKey # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CombinedKey -> m CombinedKey # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CombinedKey -> m CombinedKey # | |||||
| Generic CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Associated Types
| |||||
| Show CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods showsPrec :: Int -> CombinedKey -> ShowS # show :: CombinedKey -> String # showList :: [CombinedKey] -> ShowS # | |||||
| Eq CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| Ord CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods compare :: CombinedKey -> CombinedKey -> Ordering # (<) :: CombinedKey -> CombinedKey -> Bool # (<=) :: CombinedKey -> CombinedKey -> Bool # (>) :: CombinedKey -> CombinedKey -> Bool # (>=) :: CombinedKey -> CombinedKey -> Bool # max :: CombinedKey -> CombinedKey -> CombinedKey # min :: CombinedKey -> CombinedKey -> CombinedKey # | |||||
| Hashable CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| IsEncoding CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods encode :: CombinedKey -> ByteString Source # decode :: ByteString -> Maybe CombinedKey Source # encoded :: (Choice p, Applicative f) => p CombinedKey (f CombinedKey) -> p ByteString (f ByteString) Source # | |||||
| type Rep CombinedKey Source # | |||||
Defined in Crypto.Saltine.Internal.Box type Rep CombinedKey = D1 ('MetaData "CombinedKey" "Crypto.Saltine.Internal.Box" "saltine-0.2.2.0-inplace" 'True) (C1 ('MetaCons "CK" 'PrefixI 'True) (S1 ('MetaSel ('Just "unCK") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))) | |||||
An opaque box nonce.
Constructors
| Nonce | |
Fields | |
Instances
| NFData Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| Data Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Nonce -> c Nonce # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Nonce # dataTypeOf :: Nonce -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Nonce) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Nonce) # gmapT :: (forall b. Data b => b -> b) -> Nonce -> Nonce # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Nonce -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Nonce -> r # gmapQ :: (forall d. Data d => d -> u) -> Nonce -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Nonce -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Nonce -> m Nonce # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Nonce -> m Nonce # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Nonce -> m Nonce # | |||||
| Generic Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box Associated Types
| |||||
| Show Nonce Source # | |||||
| Eq Nonce Source # | |||||
| Ord Nonce Source # | |||||
| Hashable Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box | |||||
| IsEncoding Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box Methods encode :: Nonce -> ByteString Source # decode :: ByteString -> Maybe Nonce Source # encoded :: (Choice p, Applicative f) => p Nonce (f Nonce) -> p ByteString (f ByteString) Source # | |||||
| IsNonce Nonce Source # | |||||
| type Rep Nonce Source # | |||||
Defined in Crypto.Saltine.Internal.Box type Rep Nonce = D1 ('MetaData "Nonce" "Crypto.Saltine.Internal.Box" "saltine-0.2.2.0-inplace" 'True) (C1 ('MetaCons "Nonce" 'PrefixI 'True) (S1 ('MetaSel ('Just "unNonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString))) | |||||