fi-verifiable-data 0.0.6

VC and VP wrapper for rust and WASM. fi-digital-signatures crate is used to sign and verify the data objects.
Documentation
use fi_verifiable_data::{document::VerificationDocument, proof::FiProof, vc::VC};
use serde_json::Value;

const PRIVATE_KEY_HEX: &'static str =
    "aa7f263d0a1a671a4c06ea22800c1391dd8974174f01d0e5a848fe51bdd1bcf8";
const PUBLIC_KEY_HEX: &'static str =
    "7b6df71975950d5ea15ac090c57d462f73d3a48644fbcf2c6d5db838adf136b5";

#[test]
pub fn vc_basic_test() {
    let id = String::from("id:1");
    let issuer = String::from("id:1#issuer");
    let name = String::from("Test Issuer");

    let mut vc = VC::new(id, Value::from(issuer), Some(Value::from(name)), None, None);

    let private_key_bytes = hex::decode(PRIVATE_KEY_HEX).expect("rivate key hex decode failed");
    let public_key_bytes = hex::decode(PUBLIC_KEY_HEX).expect("Public key hex decode failed");

    let mut eddsa_doc = VerificationDocument::new(
        String::from("doc_id"),
        Some(private_key_bytes),
        Some(public_key_bytes),
    );

    let proof = FiProof::new(
        fi_digital_signatures::algorithms::Algorithm::EdDSA,
        String::from("ESig"),
    );

    match vc.sign(&mut eddsa_doc, proof) {
        Err(error) => {
            eprintln!("{}", error);
            assert!(false);
        }
        Ok(_) => {}
    };

    let result = match vc.verify(&mut eddsa_doc) {
        Ok(val) => val,
        Err(error) => {
            eprintln!("{}", error);
            assert!(false);
            return;
        }
    };
    assert!(result);
}