sha512

Pure Haskell SHA-512, HMAC-SHA512 (docs.ppad.tech/sha512).
git clone git://git.ppad.tech/sha512.git
Log | Files | Refs | README | LICENSE

commit fb792a34a72d3bed61a153b2aa52a3cea3d419c7
parent 73d2f687b4788d902a29b8b245081396507336fd
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 10 Oct 2026 15:23:04 +0400

lib: bind sha512_arm_available as returning CInt

The C function returns an 'int'; binding it as 'Int' read a 64-bit
register whose upper half AAPCS64 leaves unspecified.

Diffstat:
Mlib/Crypto/Hash/SHA512/Arm.hs | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/Crypto/Hash/SHA512/Arm.hs b/lib/Crypto/Hash/SHA512/Arm.hs @@ -24,6 +24,7 @@ import qualified Data.ByteString as BS import qualified Data.ByteString.Internal as BI import qualified Data.ByteString.Unsafe as BU import Data.Word (Word8, Word64) +import Foreign.C.Types (CInt(..)) import Foreign.Marshal.Alloc (allocaBytes) import Foreign.Ptr (Ptr) import qualified GHC.Exts as Exts @@ -38,7 +39,7 @@ foreign import ccall unsafe "sha512_block_arm" c_sha512_block :: Ptr Word64 -> Ptr Word64 -> IO () foreign import ccall unsafe "sha512_arm_available" - c_sha512_arm_available :: IO Int + c_sha512_arm_available :: IO CInt -- utilities ------------------------------------------------------------------