diff options
author | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 15:26:04 -0700 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 15:26:04 -0700 |
commit | 22b190b55afcbbd2e014339ead081a552fea4287 (patch) | |
tree | 9b2ecd376d3430b51a795c6f9c6e62c84066d3b8 /src/Data | |
parent | 403466452dcda68763b82f409310fc41a3a6a9ab (diff) |
Switch initialism style to follow the rest of the Haskell world
Diffstat (limited to 'src/Data')
-rw-r--r-- | src/Data/Digest.hs | 16 | ||||
-rw-r--r-- | src/Data/Digest/Internal.hs | 4 | ||||
-rw-r--r-- | src/Data/HMAC.hs (renamed from src/Data/Hmac.hs) | 24 |
3 files changed, 22 insertions, 22 deletions
diff --git a/src/Data/Digest.hs b/src/Data/Digest.hs index 3bd042c..34279e5 100644 --- a/src/Data/Digest.hs +++ b/src/Data/Digest.hs @@ -35,23 +35,23 @@ import Internal.Digest type LazyByteString = ByteString.Lazy.ByteString md5, sha1, sha224, sha256, sha384, sha512 :: Algorithm -md5 = Algorithm evpMd5 -sha1 = Algorithm evpSha1 -sha224 = Algorithm evpSha224 -sha256 = Algorithm evpSha256 -sha384 = Algorithm evpSha384 -sha512 = Algorithm evpSha512 +md5 = Algorithm evpMD5 +sha1 = Algorithm evpSHA1 +sha224 = Algorithm evpSHA224 +sha256 = Algorithm evpSHA256 +sha384 = Algorithm evpSHA384 +sha512 = Algorithm evpSHA512 -- | Hashes according to the given 'Algorithm'. hash :: Algorithm -> LazyByteString -> Digest hash (Algorithm md) bytes = unsafeLocalState $ do - ctxFP <- mallocEvpMdCtx + ctxFP <- mallocEVPMDCtx withForeignPtr ctxFP $ \ctx -> do evpDigestInitEx ctx md noEngine mapM_ (updateBytes ctx) (ByteString.Lazy.toChunks bytes) d <- - allocaArray evpMaxMdSize $ \mdOut -> + allocaArray evpMaxMDSize $ \mdOut -> alloca $ \pOutSize -> do evpDigestFinalEx ctx mdOut pOutSize outSize <- fromIntegral <$> peek pOutSize diff --git a/src/Data/Digest/Internal.hs b/src/Data/Digest/Internal.hs index be88e68..859f765 100644 --- a/src/Data/Digest/Internal.hs +++ b/src/Data/Digest/Internal.hs @@ -21,10 +21,10 @@ import Data.Char (intToDigit) import Data.Word (Word8) import Foreign (Ptr) -import Internal.Base (EvpMd) +import Internal.Base (EVPMD) -- | A cryptographic hash function. -newtype Algorithm = Algorithm (Ptr EvpMd) +newtype Algorithm = Algorithm (Ptr EVPMD) -- | The result of a hash operation. newtype Digest = Digest ByteString diff --git a/src/Data/Hmac.hs b/src/Data/HMAC.hs index 2211248..1ad1bfb 100644 --- a/src/Data/Hmac.hs +++ b/src/Data/HMAC.hs @@ -12,9 +12,9 @@ -- License for the specific language governing permissions and limitations under -- the License. -module Data.Hmac +module Data.HMAC ( SecretKey(SecretKey) - , Hmac + , HMAC , hmac ) where @@ -30,7 +30,7 @@ import Data.Digest.Internal (Algorithm(Algorithm), Digest(Digest)) import Foreign.Ptr.ConstantTimeEquals (constantTimeEquals) import Internal.Base import Internal.Digest -import Internal.Hmac +import Internal.HMAC type LazyByteString = ByteString.Lazy.ByteString @@ -41,29 +41,29 @@ newtype SecretKey = SecretKey ByteString -- | A hash-based message authentication code. Equality comparisons on this type -- are constant-time. -newtype Hmac = Hmac ByteString +newtype HMAC = HMAC ByteString -instance Eq Hmac where - (Hmac a) == (Hmac b) = +instance Eq HMAC where + (HMAC a) == (HMAC b) = unsafeLocalState $ ByteString.unsafeUseAsCStringLen a $ \(a', size) -> ByteString.unsafeUseAsCStringLen b $ \(b', _) -> constantTimeEquals a' b' size -instance Show Hmac where - show (Hmac m) = show (Digest m) +instance Show HMAC where + show (HMAC m) = show (Digest m) -- | Creates an HMAC according to the given 'Algorithm'. -hmac :: Algorithm -> SecretKey -> LazyByteString -> Hmac +hmac :: Algorithm -> SecretKey -> LazyByteString -> HMAC hmac (Algorithm md) (SecretKey key) bytes = unsafeLocalState $ do - ctxFP <- mallocHmacCtx + ctxFP <- mallocHMACCtx withForeignPtr ctxFP $ \ctx -> do ByteString.unsafeUseAsCStringLen key $ \(keyBytes, keySize) -> hmacInitEx ctx keyBytes (fromIntegral keySize) md noEngine mapM_ (updateBytes ctx) (ByteString.Lazy.toChunks bytes) m <- - allocaArray evpMaxMdSize $ \hmacOut -> + allocaArray evpMaxMDSize $ \hmacOut -> alloca $ \pOutSize -> do hmacFinal ctx hmacOut pOutSize outSize <- fromIntegral <$> peek pOutSize @@ -71,7 +71,7 @@ hmac (Algorithm md) (SecretKey key) bytes = -- GHC reinterpret it as a 'Ptr CChar' so that it can be ingested -- into a 'ByteString'. ByteString.packCStringLen (unsafeCoerce hmacOut, outSize) - return (Hmac m) + return (HMAC m) where updateBytes ctx chunk = -- 'hmacUpdate' treats its @bytes@ argument as @const@, so the sharing |