* Allow DEBUG mode without sanitizers
Valgrind is incompatible with AddressSanitizer, so it is nice to turn
on DEBUG mode without the sanitizers.
* PrivateKey import/export functions
* Define PT_CHECK*() macros for better test output
When using P_CHECKC(), you get no information about where
or why the test failed. These macros also call `mu_check()`
so that you can more easily figure out what went wrong.
* Fix clang-format issues
* Configure travis to use NSS 3.39
* Update README with new version dependencies.
* Fixes per rhelmer's review
* Fix typos.
* Use (pointer,length)-style arguments for import and export functions.
PR #34 changes the way compiler flags are read from the environment, and
SCons seems to want "LINKFLAGS" set in the enviroment instead of
"LDFLAGS" - this was being mapped before.
It's probably not worth re-mapping this, just changing it so what is
specified in the README still works for platforms that need to install
NSS in a weird place (like macOS and Windows) :)
* The core libprio code for Prio client and server.
These files contain the core cryptographic routines needed
to implement the Prio client and Prio server.
* Tests and example code for libprio.
* A copy of NSS's MPI library.
Since NSS does not export the MPI bignum library, we ship a copy
with the standalone version of libprio.
* Build file and README for libprio.
* Edits per code review by franziskuskiefer
* More edits per code review by franziskuskiefer
* Fix memory bugs found by clang-analyzer
* Remove ugly hack from PublicKey_import method
Now we can import a 32-byte curve25519 public key into NSS without
having to generate a new keypair from scratch.
* Replace SConstruct file with simpler one
* Update README to incorporate code review edits
* Allow importing and exporting public keys in hex
- Public functions PublicKey_import_hex and PublicKey_export_hex
- Tests for these functions
* Add end-to-end test program for PrioEncoder.
Add browser-test utility that
1) generates new server keypairs,
2) uses xpcshell to call the PrioEncoder DOM routines,
3) parses the output of PrioEncoder,
4) validates the encoded packet, and
5) checks that the submitted data is what we expected.
* Fixes to make browser-test compile on Linux