web5-rust 1.1.9

A rust crate for interacting with Web5
Documentation
use crate::error::Error;
use crate::test_utils::MemoryDidResolver;

#[tokio::test]
async fn did_round_trip() {
    let result: Result<(), Error> = async {
        let secret_key = ed25519::SecretKey::generate_key();
        let identity_key = DidKey::new(
            Some("0".to_string()),
            secret_key.public_key(),
            vec![DidKeyPurpose::Auth, DidKeyPurpose::Asm, DidKeyPurpose::Inv, DidKeyPurpose::Del],
            None
        )?;

        let secret_key = ed25519::SecretKey::generate_key();
        let signing_key = DidKey::new(
            Some("sig".to_string()),
            secret_key.public_key(),
            vec![DidKeyPurpose::Auth, DidKeyPurpose::Asm],
            None
        )?;

        let ext_key = ExtendedSecretKey::generate_key();
        let encryption_key = DidKey::new(
            Some("enc".to_string()),
            ext_key.key().public_key(),
            vec![DidKeyPurpose::Agm],
            None
        )?;

        let mut keys = BTreeMap::default();
        keys.insert("0".to_string(), identity_key);
        keys.insert("sig".to_string(), signing_key);
        keys.insert("enc".to_string(), encryption_key);

        let mut services = BTreeMap::default();
        services.insert("dwn".to_string(), DidService{
            id: "dwn".to_string(),
            types: vec!["DecentralizedWebNode".to_string()],
            service_endpoints,
            enc: vec!["enc".to_string()],
            sig: vec!["sig".to_string()]
        });

        let doc = DhtDocument::new(Vec::new(), Vec::new(), services, keys, Vec::new())?;

        Ok(())
    }.await;
    assert!(result.is_ok())
}