Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Apply Apache License | Benjamin Barenblat | 2018-03-28 |
| | |||
* | Implement HMAC | Benjamin Barenblat | 2018-03-24 |
| | |||
* | Data.Digest: Reify hash algorithms | Benjamin Barenblat | 2018-03-23 |
| | | | | | | | Eliminate the functional interface for hashing. Hashing now occurs exclusively through the `hash` function, which accepts a `Data.Digest.Algorithm`. This makes btls somewhat less extensible, but it’s the most elegant way to support HMACs. | ||
* | Implement MD5 | Benjamin Barenblat | 2018-01-26 |
| | |||
* | Implement SHA-1 | Benjamin Barenblat | 2018-01-26 |
| | |||
* | Data.Digest.Sha2: Accept lazy ByteStrings | Benjamin Barenblat | 2018-01-26 |
| | | | | | | | Switch SHA-2 API to use lazy ByteStrings rather than strict. Lazy ByteStrings make the hash function compatible with streaming I/O patterns; users no longer need to preload all the data they wish to hash into RAM. | ||
* | Begin writing btls, a Haskell crypto and TLS library using BoringSSL | Benjamin Barenblat | 2017-12-30 |
So far, btls provides SHA-224, SHA-256, SHA-384, and SHA-512 algorithms. To do that, I - vendor BoringSSL and create a custom `Setup.hs` to build it, - wrap a number of functions and values from BoringSSL's EVP subsystem, and - implement the four SHA-2 algorithms using the wrapped routines. I provide conformance tests incorporating the official NIST example vectors and the vectors used in the Go SHA-2 test suite. The tests also use SmallCheck to compare btls’s SHA-2 implementations with those provided by the system’s Coreutils and openssl(1) installations. |