path: root/lib/crypto
AgeCommit message (Collapse)Author
2018-05-13Add tests for AES GCM decryption, fix a small bug.Ori Bernstein
2018-05-12Add aesgcm decryptionOri Bernstein
2018-05-06Start of AES GCM work.Ori Bernstein
2018-04-16Add missing libcrypto dependencyOri Bernstein
2018-04-15Add support for ragged RSA numbers.Ori Bernstein
- Add a function to extract the top 32 bits regardless of alignment. - Remove ctbitcount from the public API. - Add it to the RSA, and makes it count from the right end of the number. - Remove some trash.
2018-04-15Add first tested RSA implementation.Ori Bernstein
2018-04-15Add big-endian constructor for ctbig.Ori Bernstein
It turns out that many places we use ctbig will want to create them from big endian byte buffers.
2018-04-15Misc fixes to ctbig.Ori Bernstein
- Make equality checks work properly. - Don't mix up endianness in modpow. - Clip everything correctly.
2018-04-08Remove dead code/comments.Ori Bernstein
2018-04-08Add a nontrivial modpow test.Ori Bernstein
2018-04-08Make constant time ints package local.Ori Bernstein
They're rather specialized, and a bit tricky to use.
2018-04-08Constant time modpow.Ori Bernstein
2018-03-31Clip top of ints.Ori Bernstein
2018-03-31Comment out unused tests (oops)Ori Bernstein
2018-03-30Add constant time bigint ops.Ori Bernstein
2018-03-24Improve test runner test filtering.Ori Bernstein
Filter on what the user sees. Before, we would use the internal target names, which bore a resemblance to the target names used by the user, but they didn't match perfectly. This led to unintuitive behavior. Now, we filter on a substring of the test name matching. So, you can do something like: mbld test crypto/sha3 instead of mbld test lib/bio/test:delim In addition, not all tests had an explicit target, and these would be impossible to match on. Still left to do is adding subtest patterns.
2018-03-14Add incomplete constant time bigint code.Ori Bernstein
2018-03-12Add constant time 'min()' and 'max()'Ori Bernstein
2018-02-26Fix build.Ori Bernstein
2018-02-24Add secure clearing util functions.Ori Bernstein
2018-02-19Add some constant time math helpers.Ori Bernstein
2018-02-18Add hmac implementation.Ori Bernstein
2018-01-27Remove std.sleqOri Bernstein
We have std.eq. We still export a generic sleq for compatibility, but we don't need it or want it.
2018-01-11Move to new trait syntax.Ori Bernstein
2017-12-30Fix test deps for crypto.Ori Bernstein
2017-08-27Ordonly/Owronly => Oread/Owrite.Ori Bernstein
2017-07-23Preparing for the new mbld.Ori Bernstein
It's a tad stricter about a couple of things.
2017-07-22Using implicit util files in tests is a bad idea.Ori Bernstein
Also, it's going to go away in the new mbld.
2017-07-17Convert from `in` to `:`.Ori Bernstein
The winds of change are a-blowin.
2017-02-17Search for usefiles relative to the output.Ori Bernstein
For most uses, this is equivalent to compiler cwd, but supports out of tree builds better. It also means that builds behave the same way regardless of the directory that the compiler is run from, which is convenient for testing. This also drops support for `.use` suffixes on local uses.
2017-01-28Describe lvalues and rvalues.Ori Bernstein
2016-12-03Add sha3 implementation.Ori Bernstein
2016-12-02We never actually got entropy.Ori Bernstein
Face. Meet palm. You two are going to be good friends.
2016-12-02Add missing dependency on uninstalled libthread.Ori Bernstein
We can't bootstrap build libcrypto if we don't have libthread installed.
2016-12-02Remove an unused constant.Ori Bernstein
2016-12-02Remove workaround for compiler bug.Ori Bernstein
We're no longer referencing an unexported function from within a generic.
2016-12-02Add mutexes.Ori Bernstein
2016-12-02Add CSPRNG based on arc4random.Ori Bernstein
2016-12-01Add 'getentropy()' call.Ori Bernstein
It gets entropy. Should work on all systems with /dev/random, and will get overridden on systems with getentropy() syscalls.
2016-11-29Implement constant time crypto.Ori Bernstein
Well, borrow it from BearSSL.
2016-11-24Add chacha20.myrOri Bernstein
We now have a cipher in libcrypto.
2016-11-24Rename 'libcryptohash' to 'libcrypto'Ori Bernstein
The ciphers are coming. Hold on to your hats. The ciphers are coming.