Function fujisaki_ringsig::trace::trace[][src]

pub fn trace<'a>(
    msg1: &[u8],
    sig1: &Signature,
    msg2: &[u8],
    sig2: &Signature,
    tag: &'a Tag
) -> Trace<'a>

Get a Trace object representing the relationship between the two provided signatures and messages.

Example:

use fujisaki_ringsig::{gen_keypair, sign, trace, Tag, Trace};

let msg1 = b"cooking MCs like a pound of bacon";
let msg2 = msg1;
let issue = b"testcase 54321".to_vec();

let (my_privkey, pubkey1) = gen_keypair(&mut rng);
let (_, pubkey2) = gen_keypair(&mut rng);
let (_, pubkey3) = gen_keypair(&mut rng);

let pubkeys = vec![pubkey1, pubkey2, pubkey3];
let tag = Tag {
    issue,
    pubkeys,
};

let sig1 = sign(&mut rng, &*msg1, &tag, &my_privkey);
let sig2 = sign(&mut rng, &*msg2, &tag, &my_privkey);

assert_eq!(trace(&*msg1, &sig1, &*msg2, &sig2, &tag), Trace::Linked);