aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* Begin implementing symmetric encryptionGravatar Benjamin Barenblat2018-09-28
| | | | Support RC4. Future commits will add support for more modern algorithms.
* Stop using newtypes for labeled argumentsGravatar Benjamin Barenblat2018-09-28
| | | | It’s getting messy, so switch to a parameters datatype pattern.
* Give `Algorithm` a `Show` instanceGravatar Benjamin Barenblat2018-09-25
|
* Rewrite tests for readabilityGravatar Benjamin Barenblat2018-09-21
| | | | | | Replace tables of tuples with simple function calls, and normalize argument order to have outputs to the right of inputs. Also factor out some common patterns.
* Enable error checking for HKDF computationsGravatar Benjamin Barenblat2018-09-04
|
* Remove `Eq Error` instanceGravatar Benjamin Barenblat2018-09-04
| | | | | It’s not clear what equality between errors should mean, so don’t support it.
* Documentation improvementsGravatar Benjamin Barenblat2018-09-04
|
* Enable error checking for HMAC computationsGravatar Benjamin Barenblat2018-09-04
|
* Codec.Crypto.HKDF: Implement `hkdf` convenience functionGravatar Benjamin Barenblat2018-08-23
|
* Codec.Crypto.HKDF: Implement `expand`Gravatar Benjamin Barenblat2018-08-02
|
* Codec.Crypto.HKDF: Add test 7 from RFC 5869Gravatar Benjamin Barenblat2018-08-02
|
* Begin implementing HKDFGravatar Benjamin Barenblat2018-07-31
| | | | Implement the `extract` phase of HKDF.
* Switch initialism style to follow the rest of the Haskell worldGravatar Benjamin Barenblat2018-04-28
|
* Formatting passGravatar Benjamin Barenblat2018-04-28
| | | | | | I don’t always like the output hindent gives, so reformat the project to be a bit closer to what you see in published Haskell books and the like.
* Apply Apache LicenseGravatar Benjamin Barenblat2018-03-28
|
* Implement HMACGravatar Benjamin Barenblat2018-03-24
|
* Data.Digest: Reify hash algorithmsGravatar Benjamin Barenblat2018-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 MD5Gravatar Benjamin Barenblat2018-01-26
|
* Implement SHA-1Gravatar Benjamin Barenblat2018-01-26
|
* Data.Digest.Sha2: Accept lazy ByteStringsGravatar Benjamin Barenblat2018-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 BoringSSLGravatar Benjamin Barenblat2017-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.