aboutsummaryrefslogtreecommitdiff
path: root/src/System
diff options
context:
space:
mode:
authorGravatar Benjamin Barenblat <bbaren@google.com>2018-08-23 17:24:47 -0400
committerGravatar Benjamin Barenblat <bbaren@google.com>2018-08-23 17:24:47 -0400
commitd1a85eb87934d348c9789aec59c751fa615ec363 (patch)
tree09c72e290df883c1e2d4c7ea2ccf0b1470668ca2 /src/System
parent3be302655bc7e31805af4525d78beb6abfed9a5d (diff)
Clean up casts
Use unsigned char buffers more pervasively throughout the code. This removes most calls to `asCUCharBuf`, isolating `unsafeCoerce` further. By making some type signatures slightly more flexible, also eliminate most explicit integer conversions.
Diffstat (limited to 'src/System')
-rw-r--r--src/System/Random/Crypto.hs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/System/Random/Crypto.hs b/src/System/Random/Crypto.hs
index ca2fba5..903f7aa 100644
--- a/src/System/Random/Crypto.hs
+++ b/src/System/Random/Crypto.hs
@@ -17,15 +17,14 @@ module System.Random.Crypto
) where
import Data.ByteString (ByteString)
-import qualified Data.ByteString as ByteString
import Foreign (allocaArray)
import BTLS.BoringSSL.Rand (randBytes)
-import BTLS.Cast (asCUCharBuf)
+import BTLS.Buffer (packCUStringLen)
-- | Generates a cryptographically random buffer of the specified size.
randomBytes :: Int -> IO ByteString
randomBytes len =
allocaArray len $ \pBuf -> do
- randBytes (asCUCharBuf pBuf) (fromIntegral len)
- ByteString.packCStringLen (pBuf, len)
+ randBytes pBuf (fromIntegral len)
+ packCUStringLen (pBuf, len)