packages feed

securemem 0.1.5 → 0.1.6

raw patch · 2 files changed

+13/−3 lines, 2 files

Files

Data/SecureMem.hs view
@@ -252,9 +252,19 @@  -- | Create a SecureMem from a bytestring secureMemFromByteString :: ByteString -> SecureMem-secureMemFromByteString b = B.inlinePerformIO $ do-    sm <- allocateSecureMem len +secureMemFromByteString b = pureIO $ do+    sm <- allocateSecureMem len     withSecureMemPtr sm $ \dst -> withBytestringPtr $ \src -> B.memcpy dst src (fromIntegral len)     return sm   where (fp, off, !len) = B.toForeignPtr b         withBytestringPtr f = withForeignPtr fp $ \p -> f (p `plusPtr` off)+{-# NOINLINE secureMemFromByteString #-}++-- | Create a SecureMem from any byteable object+secureMemFromByteable :: Byteable b => b -> SecureMem+secureMemFromByteable bs = pureIO $ do+    sm <- allocateSecureMem len+    withSecureMemPtr sm $ \dst -> withBytePtr bs $ \src -> B.memcpy dst src (fromIntegral len)+    return sm+  where len = byteableLength bs+{-# NOINLINE secureMemFromByteable #-}
securemem.cabal view
@@ -1,5 +1,5 @@ Name:                securemem-Version:             0.1.5+Version:             0.1.6 Synopsis:            abstraction to an auto scrubbing and const time eq, memory chunk. Description:     SecureMem is similar to ByteString, except that it provides a memory chunk that