# DAVROS: Deterministic And Verifiable Randomness On Schnorr signatures [](https://crates.io/crates/davros) [](https://docs.rs/davros) [](https://travis-ci.org/isislovecruft/davros)
**A cryptographic library for creating and verifing extensible Schnorr
signatures using the
[Ristretto](https://docs.rs/curve25519-dalek/0.13.2/curve25519_dalek/ristretto/index.html)
prime-order group.**
## SPOILER ALERT
*Davros was thought to have died during the first year of the Time War, when his
command ship "flew into the jaws of the Nightmare Child" at the Gates of Elysium
despite the Doctor's failed efforts to save him. But Davros was pulled out of
the time lock of the war by Dalek Caan, using his own flesh to create a "new
empire" of Daleks who place him in the Vault as their prisoner to make use of
his knowledge. Under Davros' guidance, the Daleks steal 27 planets, including
Earth, and hide them in the Medusa Cascade, one second out of sync with the rest
of the universe.*
*In the follow-up episode "Journey's End", it is revealed that the stolen
planets are required as a power source for Davros' ideal final solution: the
reality bomb, which produces a wavelength that would cancel out the electrical
field binding atoms to reduce all life outside the Crucible into nothingness in
both his universe and countless other realities. But Davros learns too late that
Dalek Caan, who came to the realisation of his race's atrocities as a
consequence of saving his creator, used his prophecies and influence to ensure
the Daleks' destruction while manipulating events to bring the Tenth Doctor and
Donna Noble together for the role the latter would play. Though the Doctor
attempts to save him, having earlier taunted the Doctor for turning his
companions into killers and being the cause of the deaths of countless people
during his travels, Davros furiously refuses the Doctor's help and accuses him
of being responsible for the destruction while screaming: "Never forget, Doctor,
you did this! I name you forever: You are the Destroyer of Worlds!" Thus the
Doctor is forced to leave Davros to his fate as the Crucible self-destructs.*
# Warnings
davros and
[our elliptic curve library](https://github.com/isislovecruft/curve25519-dalek)
(which this code uses) have received *one* formal cryptographic and security
review. Neither have yet received what we would consider *sufficient* peer
review by other qualified cryptographers to be considered in any way, shape,
or form, safe.
**USE AT YOUR OWN RISK.**
## Documentation
Extensive documentation is available [here](https://docs.rs/davros).
# Installation
To install, add the following to the dependencies section of your project's
`Cargo.toml`:
davros = "^0.13"
Then, in your library or executable source, add:
extern crate davros
On nightly Rust, using the `nightly` feature enables a radix-51 field
arithmetic implementation using `u128`s, which is approximately twice as
fast.
## Contributing
Please see
[CONTRIBUTING.md](https://github.com/isislovecruft/davros/blob/master/CONTRIBUTING.md).
Patches and pull requests should be make against the `develop`
branch, **not** `master`.