using ByteArray(Access) instead of ByteString.

This commit is contained in:
Kazu Yamamoto 2016-11-30 14:19:39 +09:00
parent 39ecb3597a
commit 3a2eb3c631

View File

@ -15,8 +15,8 @@ module Crypto.KDF.HKDF
, extract , extract
, extractSkip , extractSkip
, expand , expand
, toByteString , fromPRK
, fromByteString , toPRK
) where ) where
import Data.Word import Data.Word
@ -24,18 +24,17 @@ import Crypto.Hash
import Crypto.MAC.HMAC import Crypto.MAC.HMAC
import Crypto.Internal.ByteArray (ScrubbedBytes, ByteArray, ByteArrayAccess) import Crypto.Internal.ByteArray (ScrubbedBytes, ByteArray, ByteArrayAccess)
import qualified Crypto.Internal.ByteArray as B import qualified Crypto.Internal.ByteArray as B
import qualified Data.ByteString as BS
-- | Pseudo Random Key -- | Pseudo Random Key
data PRK a = PRK (HMAC a) | PRK_NoExpand ScrubbedBytes data PRK a = PRK (HMAC a) | PRK_NoExpand ScrubbedBytes
deriving (Eq) deriving (Eq)
toByteString :: PRK a -> BS.ByteString fromPRK :: ByteArray b => PRK a -> b
toByteString (PRK hm) = B.convert hm fromPRK (PRK hm) = B.convert hm
toByteString (PRK_NoExpand sb) = B.convert sb fromPRK (PRK_NoExpand sb) = B.convert sb
fromByteString :: BS.ByteString -> PRK a toPRK :: ByteArrayAccess b => b -> PRK a
fromByteString = extractSkip toPRK = extractSkip
-- | Extract a Pseudo Random Key using the parameter and the underlaying hash mechanism -- | Extract a Pseudo Random Key using the parameter and the underlaying hash mechanism
extract :: (HashAlgorithm a, ByteArrayAccess salt, ByteArrayAccess ikm) extract :: (HashAlgorithm a, ByteArrayAccess salt, ByteArrayAccess ikm)