aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* CLA no longer requiredHEADmasterGravatar Benjamin Barenblat2021-08-15
|
* Update BoringSSLGravatar Benjamin Barenblat2018-12-21
|
* Begin implementing symmetric encryptionGravatar Benjamin Barenblat2018-09-28
| | | | Support RC4. Future commits will add support for more modern algorithms.
* Make NID-to-string routine saferGravatar Benjamin Barenblat2018-09-28
| | | | | Eliminate the possibility of a null pointer dereference by converting short names to `Maybe String`.
* 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.
* Start using base16-bytestring in btlsGravatar Benjamin Barenblat2018-09-21
| | | | | We’re already using it in tests, so eliminate some hand-rolled hexification code.
* Update BoringSSLGravatar Benjamin Barenblat2018-09-19
|
* Marshal `ForeignPtr` to `Ptr` within c2hs codeGravatar Benjamin Barenblat2018-09-04
|
* 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
|
* Consolidate buffer-handling functionsGravatar Benjamin Barenblat2018-09-04
|
* Enable error checking for HMAC computationsGravatar Benjamin Barenblat2018-09-04
|
* Begin wrapping BoringSSL’s error typeGravatar Benjamin Barenblat2018-08-31
|
* Remove some unnecessary `fromIntegral`sGravatar Benjamin Barenblat2018-08-31
|
* Replace `unsafeCoerce' with `castPtr'Gravatar Benjamin Barenblat2018-08-31
|
* Marshal `ByteString` input arguments to `fun`sGravatar Benjamin Barenblat2018-08-31
|
* Begin switching to `fun` in c2hsGravatar Benjamin Barenblat2018-08-31
| | | | | Replace most invocations of `call` with `fun`. There’s a lot of explicit `id`-marshalling going on; future commits will remove it.
* Clean up castsGravatar Benjamin Barenblat2018-08-23
| | | | | | | 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.
* Wrap random number generatorGravatar Benjamin Barenblat2018-08-23
|
* Codec.Crypto.HKDF: Implement `hkdf` convenience functionGravatar Benjamin Barenblat2018-08-23
|
* Factor out common allocate-modify-read patternGravatar Benjamin Barenblat2018-08-23
| | | | | | | Many functions in BoringSSL accept a buffer and a pointer to size, write data into the buffer, and mutate the size. Create a function representing this pattern that also loads the result into a ByteString for convenience.
* Remove unnecessary base-compat dependencyGravatar Benjamin Barenblat2018-08-07
|
* Add build instructionsGravatar Benjamin Barenblat2018-08-07
| | | | Thanks to Jesse Selover <jselover@google.com> for trying them out.
* Eliminate Data.Digest.InternalGravatar Benjamin Barenblat2018-08-02
| | | | | | Move Data.Digest.Internal’s functions and types into more appropriate modules. There’s now a single BTLS hierarchy that contains all internal modules for the project.
* Move BTLS.ConstantTimeEquals into the BTLS.BoringSSL hierarchyGravatar Benjamin Barenblat2018-08-02
| | | | | It’s a direct wrapper around a BoringSSL function, so it really belongs there.
* Factor out common char* ↔ unsigned char* castGravatar Benjamin Barenblat2018-08-02
|
* Begin cleaning up internal modulesGravatar Benjamin Barenblat2018-08-02
| | | | | | Clarify the division between internal and external modules in the source by consolidating all internal modules except Data.Digest.Internal into a flatter BTLS directory.
* 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.
* Enable `-Werror` and a reasonable set of warningsGravatar Benjamin Barenblat2018-07-30
| | | | | | | | | | Instead of using `-Weverything` and turning warnings off as they become problematic, enable `-Werror` and turn on a specific set of warnings judged to have high signal-to-noise ratio. Fix up all instances of those warnings in the code. These warnings are all available in GHC 8.0.1, which is the default in the current Debian (Debian 9).
* Only build libcrypto.aGravatar Benjamin Barenblat2018-07-17
| | | | | We’re not currently using any other part of BoringSSL, so don’t waste time building anything else.
* Update BoringSSLGravatar Benjamin Barenblat2018-07-03
| | | | | | | https://boringssl.googlesource.com/boringssl/+/03de6813d8992a649092b4874ef0ebc022e2f58a means BoringSSL now by default includes relocations that don't play well with shared libraries. Make `cabal build --enable-shared` work again by building all BoringSSL code as PIC.
* Factor out common resource create/initialize/set-finalizer cycleGravatar Benjamin Barenblat2018-04-28
|
* Abstract out common body between hashing and HMACingGravatar Benjamin Barenblat2018-04-28
|
* Switch initialism style to follow the rest of the Haskell worldGravatar Benjamin Barenblat2018-04-28
|
* Remove unneeded extensions from Cabal fileGravatar 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.
* Split low-level HMAC bindings into their own moduleGravatar Benjamin Barenblat2018-04-28
|
* Split low-level digest bindings into their own moduleGravatar Benjamin Barenblat2018-04-28
|
* Begin refactoring low-level foreign imports into their own hierarchyGravatar Benjamin Barenblat2018-04-28
| | | | | | | It’s clear at this point that this system is going to get large enough that a two-layer implementation is warranted. `Internal` will contain low-level bindings to BoringSSL; other modules will export an idiomatic interface on top of them.
* Move result-handling functions into their own moduleGravatar Benjamin Barenblat2018-04-28
|
* Switch to c2hsGravatar Benjamin Barenblat2018-04-28
| | | | | | | | | | Let the computer figure out its own types for most foreign imports. Continue using the vanilla FFI for finalizers, though, as that’s the easiest way to deal with function pointers. Reuse the build hook from gtk2hs-buildtools to work around Cabal’s inability to topologically sort .chs dependencies (https://github.com/haskell/cabal/issues/1906).
* Relax constraint on `process` versionGravatar Benjamin Barenblat2018-04-21
| | | | | process 1.4.2 is in Debian 9 (the current stable), and it provides everything we need.
* Correct license field in .cabal fileGravatar Benjamin Barenblat2018-04-21
| | | | | | Turns out Cabal doesn’t play well with licenses with spaces in their names. Just use “other license”, which Hackage will convert to a link to the LICENSE file.
* Apply Apache LicenseGravatar Benjamin Barenblat2018-03-28
|
* Implement HMACGravatar Benjamin Barenblat2018-03-24
|