This is a C/C++ library for verifying WAVE proofs. It provides a Go interface as well, mainly used for ease of testing. This library is compatible with WAVE v0.4.1, excluding the unimplemented features listed in the TODO section.
First, clone the repository into the appropriate directory in your Go source tree (src/github.com/ddreyer/wave-verify
). Then, run git submodule init
and then git submodule update
to clone the submodules. Finally, run make
to produce the verify.a
file.
A Go testing suite can be run via the command go test
in the lang/go
directory. The testing suite requires that the WAVE daemon be running. WAVE releases can be found here
The code uses two third party libraries as Git submodules: an ED25519 library and a Keccak hashing library.
The sgx branch of this repository allows this library to interface as a Git submodule with a parent library that provides a C API for verifying WAVE proofs inside an Intel SGX enclave.
- The files in the
src/asn1c
directory were generated using the commandasn1c -fcompound-names objects-lite.asn
. The code uses a forked branch of the open source ASN.1 to C compiler.
- write a C testing suite such that valgrind can be run
- add support for decrypting attestation body in prover's role without symmetric key -> has to do with updated EntityKeySchemeInstanceFor function
- implement expiry checks for attestations and entities
- implement revocation checks
- provide a better C interface