I wrote this library to familiarize myself with some basic pairing-based cryptosystems. I am not a cryptographer. Nor has any cryptographer that I know reviewed this code. I would advise against using it in any production system.
This library provides a high-level API for signing and verifying message digests using the BLS signature scheme. It includes support for aggregate signatures, threshold signatures, and ring signatures.
Install the pairing-based crypto library from Stanford.
wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
if [[ $(sha256sum pbc-0.5.14.tar.gz) = \
772527404117587560080241cedaf441e5cac3269009cdde4c588a1dce4c23d2* ]]
then
tar xf pbc-0.5.14.tar.gz
pushd pbc-0.5.14
sh configure
make
sudo make install
popd
else
echo 'Cannot download PBC library from crypto.stanford.edu.'
exit 1
fi
Install this library using the go get
command.
go get github.com/enzoh/go-bls
Check out the documentation.
GPLv3