aboutsummaryrefslogtreecommitdiff
path: root/src/Data
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data')
-rw-r--r--src/Data/Digest.hs16
-rw-r--r--src/Data/Digest/Internal.hs4
-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