documentation & relaxing types.
This commit is contained in:
parent
be6bf11138
commit
f84aa5d7ce
@ -27,7 +27,6 @@ module Crypto.PubKey.Curve25519
|
|||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Data.ByteString (ByteString)
|
|
||||||
import Data.Word
|
import Data.Word
|
||||||
import Foreign.Ptr
|
import Foreign.Ptr
|
||||||
import Foreign.Storable
|
import Foreign.Storable
|
||||||
@ -36,7 +35,7 @@ import GHC.Ptr
|
|||||||
import Crypto.Error
|
import Crypto.Error
|
||||||
import Crypto.Internal.Compat
|
import Crypto.Internal.Compat
|
||||||
import Crypto.Internal.Imports
|
import Crypto.Internal.Imports
|
||||||
import Crypto.Internal.ByteArray (ByteArrayAccess, ScrubbedBytes, Bytes, withByteArray)
|
import Crypto.Internal.ByteArray (ByteArrayAccess, ByteArray, ScrubbedBytes, Bytes, withByteArray)
|
||||||
import qualified Crypto.Internal.ByteArray as B
|
import qualified Crypto.Internal.ByteArray as B
|
||||||
import Crypto.Error (CryptoFailable(..))
|
import Crypto.Error (CryptoFailable(..))
|
||||||
import Crypto.Random
|
import Crypto.Random
|
||||||
@ -120,6 +119,7 @@ foreign import ccall "cryptonite_curve25519_donna"
|
|||||||
-> Ptr Word8 -- ^ basepoint
|
-> Ptr Word8 -- ^ basepoint
|
||||||
-> IO ()
|
-> IO ()
|
||||||
|
|
||||||
|
-- | Generate a secret key.
|
||||||
generateSecretKey :: MonadRandom m => m SecretKey
|
generateSecretKey :: MonadRandom m => m SecretKey
|
||||||
generateSecretKey = return $ unsafeDoIO $ do
|
generateSecretKey = return $ unsafeDoIO $ do
|
||||||
sb <- getRandomBytes 32
|
sb <- getRandomBytes 32
|
||||||
@ -130,10 +130,12 @@ generateSecretKey = return $ unsafeDoIO $ do
|
|||||||
pokeByteOff inp 31 ((e31 .&. 0x7f) .|. 0x40)
|
pokeByteOff inp 31 ((e31 .&. 0x7f) .|. 0x40)
|
||||||
return $ SecretKey sb
|
return $ SecretKey sb
|
||||||
|
|
||||||
toPublicKey :: ByteString -> PublicKey
|
-- | Create a public key.
|
||||||
|
toPublicKey :: ByteArrayAccess bs => bs -> PublicKey
|
||||||
toPublicKey bs = pub
|
toPublicKey bs = pub
|
||||||
where
|
where
|
||||||
CryptoPassed pub = publicKey bs
|
CryptoPassed pub = publicKey bs
|
||||||
|
|
||||||
fromPublicKey :: PublicKey -> ByteString
|
-- | Convert a public key.
|
||||||
|
fromPublicKey :: ByteArray bs => PublicKey -> bs
|
||||||
fromPublicKey (PublicKey b) = B.convert b
|
fromPublicKey (PublicKey b) = B.convert b
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user