# Passport API

介绍

Passport API是对Passport模块进行的功能,Passport模块可完成对用户身份信息的管理。快速开发请阅读以下文档

Build

 private String nodeurl = "http://54.64.220.165:21604";//亦来云测试节点地址
 private PassportServiceImpl passportService = new PassportServiceImpl(nodeurl);

目录


API

1. 创建did

  • 方法名 :create()

  • 参数说明:

参数名 参数类型 参数说明
mnemonicType MnemonicType 助记词类型(目前支持中文、英文)
  • 返回值类型:DIDAccount

  • 返回说明:

返回值 参数类型 返回值说明
privateKey String 私钥
publicKey String 公钥
address String 侧链地址
did String did地址
mnemonic String 助记词
  • 示例代码
    /*
    * 创建did
    * */
    @Test
    public void createDid() {
        DIDAccount didAccount = passportService.create(HdSupport.MnemonicType.ENGLISH);
        String didAddress = didAccount.getDid();//did地址
        String address = didAccount.getAddress();//侧链地址
        String mnemonic = didAccount.getMnemonic();//助记词
        String privateKey = didAccount.getPrivateKey();//私钥
        String publicKey = didAccount.getPublicKey();//公钥
        System.out.println(didAddress);
        System.out.println(address);
        System.out.println(mnemonic);
        System.out.println(privateKey);
        System.out.println(publicKey);
    }

        /*    
        iUa4HdUPsXqexgKXzpDomJRdW831BDQ7RL
        ELw7jSZ5Mvriw65h3x9G5oezwzzMkanwUm
        deny correct hello ride junior raise clever phrase aspect inflict stone enter
        B6873904CB64F13395F37D238F7F6580308F30C9E9ECB7EB98454A565A573B44
        02E9B224CC68DFB7980B32755DA87140C6B9315D8D6C706A698D49CA6E7A5ABC40

        */

2. 根据私钥导出did

  • 方法名 :exportByPrivateKey()

  • 参数说明:

参数名 参数类型 参数说明
privateKey String 私钥
  • 返回值类型:DIDAccount

  • 返回说明:

返回值 参数类型 返回值说明
privateKey String 私钥
publicKey String 公钥
address String 侧链地址
did String did地址
  • 示例代码
    /*
    * 根据私钥导出钱包
    * */
    @Test
    public void exportByPrivateKey() {
        String privateKey = "B6873904CB64F13395F37D238F7F6580308F30C9E9ECB7EB98454A565A573B44";
        DIDAccount didAccount = passportService.exportByPrivateKey(privateKey);
        String did = didAccount.getDid();//did
        String address = didAccount.getAddress();//侧链地址
        String publicKey = didAccount.getPublicKey();//公钥
        System.out.println(did);
        System.out.println(address);
        System.out.println(privateKey);
        System.out.println(publicKey);
    }

3. 根据助记词导出did

  • 方法名 :exportByMnemonic()

  • 参数说明:

参数名 参数类型 参数说明
mnemonic String 助记词
  • 返回值类型:DIDAccount

  • 返回说明:

返回值 参数类型 返回值说明
privateKey String 私钥
publicKey String 公钥
address String 侧链地址
did String did地址
mnemonic String 助记词
  • 示例代码
    /*
    * 根据 助记词导出钱包
    * */
    @Test
    public void exportByMnemonic() {
        String mnemonic = "deny correct hello ride junior raise clever phrase aspect inflict stone enter";
        DIDAccount didAccount = passportService.exportByMnemonic(mnemonic);
        String did = didAccount.getDid();//did
        String address = didAccount.getAddress();//侧链地址
        String privateKey = didAccount.getPrivateKey();//私钥
        String publicKey = didAccount.getPublicKey();//公钥
        System.out.println(did);
        System.out.println(address);
        System.out.println(mnemonic);
        System.out.println(privateKey);
        System.out.println(publicKey);
    }

4. 使用私钥签名信息

  • 方法名 :sign()

  • 参数说明:

参数名 参数类型 参数说明
privateKey String 私钥
msg String 签名信息
  • 返回值类型:SignDataEntity

  • 返回说明:

返回值 参数类型 返回值说明
msg String 信息
pub String 公钥
sig String 已签名信息
  • 示例代码
    @Test
    public void sign() throws Exception {
        String privateKey = "4B1AA0C6F0BF55BDF3DB22122215FBAE5743B0D5BB199AF951AF6306E812704E";
        String msg="test msg";
        SignDataEntity signDataEntity = passportService.sign(msg,privateKey);
        System.out.println(JSON.toJSONString(signDataEntity));
       // {"msg":"74657374206D7367",
        // "pub":"026E57442BEC014401C0484CD844A05785083656B51A393DC7C1F1BA9269203278",
        // "sig":"86A0C2F4CCDA3BC753F15592FF50335CD2BDB72777F0A062433CBB7045C30920EE9DF2E2169832C14E310FF45E3D02CCC3E5E8F7D870F82FD750DC1ECFD35A60"}

    }

5. 验证签名

  • 方法名 :verify()

  • 参数说明:

参数名 参数类型 参数说明
msg String 验证信息
sig String 签名信息
pub String 公钥
  • 返回值类型:Boolean

  • 返回说明:

true 验证通过;false 验证不通过

  • 示例代码
    @Test
    public void verify() throws Exception {
        String msg = "test msg";
        String sig = "86A0C2F4CCDA3BC753F15592FF50335CD2BDB72777F0A062433CBB7045C30920EE9DF2E2169832C14E310FF45E3D02CCC3E5E8F7D870F82FD750DC1ECFD35A60";
        String pub = "026E57442BEC014401C0484CD844A05785083656B51A393DC7C1F1BA9269203278";
        Boolean aBoolean = passportService.verify(msg, sig, pub);
        System.out.println(aBoolean);
    }