libsecp256k1 0.3.5

Pure Rust secp256k1 implementation.
Documentation
#![feature(test)]

extern crate test;
extern crate secp256k1;
extern crate secp256k1_test;
extern crate rand;
#[macro_use]
extern crate arrayref;

use test::Bencher;
use secp256k1::{sign, SecretKey, Message};
use secp256k1_test::Secp256k1;
use rand::thread_rng;

#[bench]
fn bench_sign_message(b: &mut Bencher) {
    let secp256k1 = Secp256k1::new();
    let message = Message::parse(&[5u8; 32]);
    let (secp_privkey, _) = secp256k1.generate_keypair(&mut thread_rng()).unwrap();
    let seckey = SecretKey::parse(array_ref!(secp_privkey, 0, 32)).unwrap();

    b.iter(|| {
        let _ = sign(&message, &seckey).unwrap();
    });
}