#did #forge #pk #address #hash #key #sk

forge_did

创建DID的Rust语言实现

4个版本

0.1.3 2019年10月21日
0.1.2 2019年10月16日
0.1.1 2019年10月14日
0.1.0 2019年10月12日

4 in #pk

每月 36 次下载
3 crates 中使用

Apache-2.0

40KB
781 代码行

简介

forge_did 通过 Rust 实现。是 Forge_wallet 核心实现。

从pk、sk或pk hash生成 forge did。例如 did:abt:zNYm1gM23ZGHNYDYyBwSaywzTqLKoj4WuTeC。前缀 did 表示字符串是一个 DIDabt 表示DID是 forge didzNYm1gM23ZGHNYDYyBwSaywzTqLKoj4WuTeC 是地址。

API

  • get_did_by_sk(sk: &[u8],did_type: &Option<DidType>) -> Result<String>
  • get_did_by_pk(pk: &[u8],did_type: &Option<DidType>) -> Result<String>
  • get_did_by_pk_hash(pk_hash: &[u8],did_type: &Option<DidType>) -> Result<String>

用法

    // generate key pair
    let (sk, pk) = forge_signer::get_key_pair(Some(forge_signer::SignType::Ed25519));
    let did_type = create_did::DidType{
        role_type: Some(RoleType::Account),
        key_type: Some(KeyType::Ed25519),
        hash_type: Some(HashType::Sha3),
    }
    let did_by_sk = forge_did::get_did_by_sk(&sk, &Some(w_type.to_owned()))?;
    let did_by_pk = forge_did::get_did_by_pk(&pk, &Some(w_type.to_owned()))?;
    // did_by_pk example: "did:abt:zNYm1gM23ZGHNYDYyBwSaywzTqLKoj4WuTeC";
    assert_eq!(did_by_sk, did_by_pk);

依赖项

~7.5MB
~114K SLoC