[web-devel] [ANNOUNCE] First release of crypto-conduit

Felipe Almeida Lessa felipe.lessa at gmail.com
Sat Jan 7 04:16:58 CET 2012


Hello!

I'm pleased to announce the first release of crypto-conduit [1]!  The
crypto-api [2] package provides APIs for many cryptographic
operations, such as cryptographic hashes and block ciphers.  This new
crypto-conduit package allows you to use many of these operations with
conduits [3], giving you safe I/O using constant memory and no leaks.

As an example, here's how you could get the SHA1 hash a file:

  import Crypto.Conduit -- from crypto-conduit
  import Crypto.Hash.SHA1 (SHA1) -- from cryptohash
  import Data.Conduit -- from conduit
  import Data.Conduit.Binary (sourceFile) -- from conduit

  main = do
    hash <- runResourceT $ sourceFile "my-file" $$ sinkHash
    print (hash :: SHA1)

The code snippet above, despite having only "sourceFile ... $$
sinkHash" on its core, guarantees that the file handle is not kept
open and uses a constant amount of memory.  Sweet!

Please break this package!  Although it comes with a test suite, it
has just seen the light of the day.

Cheers, =)

[1] http://hackage.haskell.org/package/crypto-conduit
[2] http://hackage.haskell.org/package/crypto-api
[3] http://hackage.haskell.org/package/conduit

-- 
Felipe.



More information about the web-devel mailing list