| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
| |
Support RC4. Future commits will add support for more modern algorithms.
|
|
|
|
|
| |
Eliminate the possibility of a null pointer dereference by converting
short names to `Maybe String`.
|
|
|
|
| |
It’s getting messy, so switch to a parameters datatype pattern.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We’re already using it in tests, so eliminate some hand-rolled
hexification code.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It’s not clear what equality between errors should mean, so don’t
support it.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Replace most invocations of `call` with `fun`. There’s a lot of explicit
`id`-marshalling going on; future commits will remove it.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Thanks to Jesse Selover <jselover@google.com> for trying them out.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It’s a direct wrapper around a BoringSSL function, so it really belongs
there.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Implement the `extract` phase of HKDF.
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
We’re not currently using any other part of BoringSSL, so don’t waste
time building anything else.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
process 1.4.2 is in Debian 9 (the current stable), and it provides
everything we need.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|