WeIdentity Sample案例演示记录

2020年11月30日11:24:03BCOS评论600阅读模式

WeIdentity是一套分布式多中心身份认证的技术解决方案(去中心化身份),由微众银行开发。本文对官方WeIdentity Sample 开发样例进行测试记录。

WeIdentity Sample 包含以下三种角色

  • 凭证发行者Issuer
  • 用户代理User Agent
  • 凭证验证者Verifier

涉及到的术语:

Issuer(凭证发行者):任意拥有WeIdentity DID的Entity都可以作为Issuer来发行Credential。

User Agent(用户代理):用户私钥托管机构,例如某个用户身份管理APP。依据业务场景需求,可以是云端保存机制的,也可以是客服端本地保存机制的。

Verifier(凭证验证者):使用凭证的第三方,会验证这个凭证是否经过权威机构认证,例如劳工局办理业务时需要用户提供驾照,这时劳工局就是Verifier。

Authority Issuer(权威凭证发行者):例如对Claim进行认证的权威机构或者可信机构,例如下发驾照的交通事务局。

Credential(可验证数字凭证):同WeIdentity Credential,简称“凭证”,遵循W3C Verifiable Credential规范的电子凭证,可用来抽象现实世界凭证类的对象,一个Credential可以包含一个或者多个Claim。例如电子驾照,电子学历等。

CPT(凭证的声明类型):Claim Protocol Type,不同的Issuer按业务场景需要,各自定义不同类型数据结构的Claim,各种各样的Claim用不同的CPT来定义。

Presentation(Verifiable Presentation):遵循W3C Verifiable Presentation规范的凭证打包集。一个Presentation可以包括一个或多个Credential。

Policy:机构指定的Verifiable Presentation验证策略,例如:至少包括哪些Credential;每个Credential的Claim中属性项对应要求等

AMOP(链上信使协议):基于FISCO BCOS区块链的消息信道,不依赖区块链交易和共识,消息在节点间实时传输,自动寻找区块链网络中所有可行的链路进行通讯。所有通讯链路使用SSL加密,加密算法可配置,支持身份认证机制。

一.前置配置

  • 安装部署 weid-java-sdk
  • 配置 Committee Member 私钥
  • 修改节点和机构配置(每个机构需要配置为连接不同的区块链节点)
  • 编译 weid-sample
  • 启动 AMOP 服务,AMOP 服务是模拟 Verifier 向 User Agent 发送获取秘钥的请求,因此 Verifier 和 User Agent 需要连接同一条链中的不同的区块链节点。 先启动 Verifier 进程:
./command.sh daemon
  • 修改 User Agent 配置

在启动完 Verifier 进程之后,还需要修改 User Agent 的配置,确保 User Agent 连接的区块链节点和 Verifier 连接的区块链节点在同一条链上,且连接的是不同的区块链节点。(确保User Agent 和Verifier ,否则就是自己验证自己,没啥意思了。)

二.演示流程

issuer

命令行执行issuer

./command.sh issuer

会依次执行以下过程:

  1. 创建 WeID
  2. 设置认证
  3. 注册成为 Authority Issuer
  4. 确认该Authority Issuer
  5. 注册第一个 CPT
  6. 注册第二个 CPT
  7. 注册第三个 CPT
  8. 创建第一个 Credential(用Map生成)
  9. 创建第二个 Credential (用pojo生成)
  10. 创建第三个 Credential (用josn生成)
  11. 保持credentialList(credential列表)
  12. 完成

so,打印出如下很长的log。。

展开收缩
+ daemon_pid=
+ JAVA_OPTS='-Djdk.tls.namedGroups="secp256r1,secp256k1"'
+ [[ issuer != \i\s\s\u\e\r ]]
+ [[ issuer == daemon ]]
+ echo '--------- start issuer ----------'
--------- start issuer ----------
+ java '-Djdk.tls.namedGroups="secp256r1,secp256k1"' -cp 'dist/app/*:resources/:dist/lib/*' com.webank.weid.demo.command.De
issuer() init...

begin to createWeId...

createWeId result:

result:(com.webank.weid.protocol.response.CreateWeIdDataResult)
   weId: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   userWeIdPublicKey:(com.webank.weid.protocol.base.WeIdPublicKey)
      publicKey: 8352667352083333244246013104527429585381663346996241753635514217429500648305210698638429933856252275152296
   userWeIdPrivateKey:(com.webank.weid.protocol.base.WeIdPrivateKey)
      privateKey: 48864554169591656990805905852483344119773439303118565587790441339896517653185
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 63
   transactionHash: 0xf80ec622fb54adc2a3be8498ba0bcdbe828d82002699541223500c36d0ada54f
   transactionIndex: 0

------------------------------

begin to setAuthenticate...

setAuthentication result:

result: true
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 64
   transactionHash: 0x599edd6bc8441fa13d5451cb815159d75bb11fc1bff528b9c35d2278f0663e9e
   transactionIndex: 0

------------------------------

begin to registerAuthorityIssuer...

registerAuthorityIssuer result:

result: true
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 65
   transactionHash: 0x98cfc8cb0e58ceb4d5bf1b44420cba463d18f20aa467c0e7603cb326ae262355
   transactionIndex: 0

------------------------------

begin to recognizeAuthorityIssuer...

recognizeAuthorityIssuer result:

result: true
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 66
   transactionHash: 0x6b17f2f3ce42c3c4818a54d35f851e21c3731b8fa057ecb238c9298689cb689a
   transactionIndex: 0

------------------------------

begin to regist the first Cpt...

registerCpt result:

result:null
errorCode: 500304
errorMessage: cpt already exist on chain
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 67
   transactionHash: 0xec3749473446221fab8d42001b5d638876c3626506b33823b6ed23d6479ea59a
   transactionIndex: 0

------------------------------

begin to regist the second Cpt...

registerCpt result:

result:null
errorCode: 500304
errorMessage: cpt already exist on chain
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 68
   transactionHash: 0xd22c7b6d66c5968379eadf5a029c165f5660c086b33b2be698edbe1858b5f715
   transactionIndex: 0

------------------------------

begin to regist the third Cpt...

registerCpt result:

result:null
errorCode: 500304
errorMessage: cpt already exist on chain
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 69
   transactionHash: 0xb1cc9140e24f1f0459c8fd790508d942bf808043865fd29951dbe4c3ea6e8dc2
   transactionIndex: 0

------------------------------

begin to create the first credential with Map...

createCredential result:

result:(com.webank.weid.protocol.base.CredentialPojo)
   context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
   id: feda33bf-f8e0-4e07-b155-ce7a26270c05
   cptId: 4000000
   issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   issuanceDate: 1606700039
   expirationDate: 1606786439
   claim:(java.util.HashMap)
      gender: F
      name: 张三
      age: 23
      weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   proof:(java.util.HashMap)
      creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
      salt:(java.util.HashMap)
         gender: ENPKG
         name: efFx8
         age: AlykT
         weid: xJxNU
      created: 1606700039
      type: Secp256k1
      signatureValue: BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=
   type:(java.util.ArrayList)
      [0]:VerifiableCredential
      [1]:original
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to create the second credential with pojo...

createCredential result:

result:(com.webank.weid.protocol.base.CredentialPojo)
   context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
   id: 95eba4f9-c17b-4fc3-8ed6-93e55e372059
   cptId: 4000001
   issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   issuanceDate: 1606700039
   expirationDate: 1606786439
   claim:(java.util.HashMap)
      courses:(java.util.ArrayList)
         [0]:java.util.LinkedHashMap
            code: 0
            duration: 0
            endDate: 0
            grade: 0
            language: 0
            score: 0
            startDate: 0
            title:(java.util.LinkedHashMap)
               cn: 0
               en: 0
         [1]:java.util.LinkedHashMap
            code: 0
            duration: 0
            endDate: 0
            grade: 0
            language: 0
            score: 0
            startDate: 0
            title:(java.util.LinkedHashMap)
               cn: 0
               en: 0
      cert:(java.util.LinkedHashMap)
         category:(java.util.LinkedHashMap)
            cn: 0
            en: 0
         code: 0
         issueDate: 0
         permanent: 0
         title:(java.util.LinkedHashMap)
            cn: 0
            en: 0
         totalDuration: 0
         validBefore: 0
      fullname:(java.util.LinkedHashMap)
         cn: 0
         en: 0
      issuers:(java.util.ArrayList)
         [0]:java.util.LinkedHashMap
            name:(java.util.LinkedHashMap)
               cn: 0
               en: 0
         [1]:java.util.LinkedHashMap
            name:(java.util.LinkedHashMap)
               cn: 0
               en: 0
      did: 0
      weid: did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895
   proof:(java.util.HashMap)
      creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
      salt:(java.util.HashMap)
         courses:(java.util.ArrayList)
            [0]:java.util.LinkedHashMap
               code: 21hSv
               duration: 8O1z1
               endDate: PjqJa
               grade: XuneG
               language: VesTV
               score: k6p6z
               startDate: cD46U
               title:(java.util.LinkedHashMap)
                  cn: fVAkU
                  en: 75ERx
            [1]:java.util.LinkedHashMap
               code: 8Jzi7
               duration: QePQx
               endDate: rXz9Z
               grade: tHdLT
               language: Q5N9R
               score: ISWGm
               startDate: 004MZ
               title:(java.util.LinkedHashMap)
                  cn: SUDeH
                  en: qvQ9t
         cert:(java.util.LinkedHashMap)
            category:(java.util.LinkedHashMap)
               cn: kdanY
               en: uXhfu
            code: iYJjD
            issueDate: yS0Yc
            permanent: rPtP7
            title:(java.util.LinkedHashMap)
               cn: nxxGF
               en: lFxY9
            totalDuration: 8C8L8
            validBefore: BtuvN
         fullname:(java.util.LinkedHashMap)
            cn: Um6Ey
            en: YAYiW
         issuers:(java.util.ArrayList)
            [0]:java.util.LinkedHashMap
               name:(java.util.LinkedHashMap)
                  cn: 2zdSb
                  en: 5RuQG
            [1]:java.util.LinkedHashMap
               name:(java.util.LinkedHashMap)
                  cn: o2lwJ
                  en: ij6iS
         did: PMncJ
         weid: eviUH
      created: 1606700039
      type: Secp256k1
      signatureValue: Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=
   type:(java.util.ArrayList)
      [0]:VerifiableCredential
      [1]:original
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to create the third credential with JSONString...

createCredential result:

result:(com.webank.weid.protocol.base.CredentialPojo)
   context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
   id: 20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b
   cptId: 4000002
   issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   issuanceDate: 1606700039
   expirationDate: 1606786439
   claim:(java.util.HashMap)
      data:(java.util.LinkedHashMap)
         id: 123
         sipTellAddress: sipTellAddress
         userlevel: 1
      meta:(java.util.LinkedHashMap)
         code: 12.2
         error: metaError
         info: metaInfo
      name: test1001
      weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
   proof:(java.util.HashMap)
      creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
      salt:(java.util.HashMap)
         data:(java.util.LinkedHashMap)
            id: wXyYD
            sipTellAddress: YPmV6
            userlevel: AdxaX
         meta:(java.util.LinkedHashMap)
            code: 4P7qJ
            error: imt5L
            info: 1R49c
         name: LYrTj
         weid: msuBT
      created: 1606700039
      type: Secp256k1
      signatureValue: wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=
   type:(java.util.ArrayList)
      [0]:VerifiableCredential
      [1]:original
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to save the credentialList...

------------------------------

issuer() finish...

user_agent

命令行执行user_agent

./command.sh user_agent

依次执行以下过程

  1. 创建 WeID
  2. 设置认证
  3. 获取credentialList(credential列表)
  4. 通过 AMOP 获取 Verifier 发布的 Presentation Policy
  5. 创建 Presentation
  6. 打包 Presentation 成 QRcode 或者 Json 串的流程

全部log显示如下:

展开收缩
+ daemon_pid=
+ JAVA_OPTS='-Djdk.tls.namedGroups="secp256r1,secp256k1"'
+ [[ user_agent != \i\s\s\u\e\r ]]
+ [[ user_agent != \u\s\e\r\_\a\g\e\n\t ]]
+ [[ user_agent == daemon ]]
+ echo '--------- start user_agent ----------'
--------- start user_agent ----------
+ java '-Djdk.tls.namedGroups="secp256r1,secp256k1"' -cp 'dist/app/*:resources/:dist/lib/*' com.webank.weid.demo.command.DemoCommand user_agent
userAgent() init...

------------------------------

begin to create weId for useragent...

createWeId result:

result:(com.webank.weid.protocol.response.CreateWeIdDataResult)
   weId: did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e
   userWeIdPublicKey:(com.webank.weid.protocol.base.WeIdPublicKey)
      publicKey: 6736029473975597831493909655265353595566366715204339892374613676262134517797879038992510802720009756919362822417596055288953372704249050280843230536624293
   userWeIdPrivateKey:(com.webank.weid.protocol.base.WeIdPrivateKey)
      privateKey: 35981617633347526848174501115997288761730452464787335167687753539606515500055
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 70
   transactionHash: 0x6ecb410857401e81185fb054018d11b0442a3827fc7c271c2861f1263d25b1ce
   transactionIndex: 0

------------------------------

begin to setAuthenticate...

setAuthentication result:

result: true
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 71
   transactionHash: 0x5896fa4f846531018d046d0d650a0e923b4c9bbe1c577475d11f694dc3cafcbe
   transactionIndex: 0

------------------------------

begin to get the credentialList from json...

------------------------------

begin to get the PolicyAndChallenge...

{"challenge":{"nonce":"8ZmFjfr9LXyt7jBEbJp6","version":1,"weId":"did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e"},"presentationPolicyE":{"extra":{"extra1":"","extra2":""},"id":123456,"orgId":"organizationA","policy":{"4000000":{"fieldsToBeDisclosed":"{\"age\":0,\"gender\":0,\"name\":1,\"weid\":1}"},"4000001":{"fieldsToBeDisclosed":"{\"cert\":{\"category\":{\"cn\":1,\"en\":0},\"code\":1,\"issueDate\":0,\"permanent\":1,\"title\":{\"cn\":1,\"en\":0},\"totalDuration\":0,\"validBefore\":1},\"courses\":[{\"code\":1,\"duration\":0,\"endDate\":1,\"grade\":0,\"language\":1,\"score\":0,\"startDate\":1,\"title\":{\"cn\":0,\"en\":1}}],\"did\":0,\"fullname\":{\"cn\":0,\"en\":1},\"issuers\":[{\"name\":{\"cn\":0,\"en\":1}}],\"weid\":1}"},"4000002":{"fieldsToBeDisclosed":"{\"data\":{\"id\":0,\"sipTellAddress\":1,\"userlevel\":0},\"meta\":{\"code\":1,\"error\":0,\"info\":1},\"name\":0,\"weid\":1}"}},"policyPublisherWeId":"did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e","policyType":"original","version":1}}
------------------------------

begin to createPresentation...

createPresentation result:

result:(com.webank.weid.protocol.base.PresentationE)
   context:(java.util.ArrayList)
      [0]:https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
   type:(java.util.ArrayList)
      [0]:VerifiablePresentation
   verifiableCredential:(java.util.ArrayList)
      [0]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: feda33bf-f8e0-4e07-b155-ce7a26270c05
         cptId: 4000000
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            age: 0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762
            gender: 0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66
            name: 张三
            weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               age: 0
               gender: 0
               name: efFx8
               weid: xJxNU
            signatureValue: BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
      [1]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: 95eba4f9-c17b-4fc3-8ed6-93e55e372059
         cptId: 4000001
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            cert:(java.util.LinkedHashMap)
               category:(java.util.LinkedHashMap)
                  cn: 0
                  en: 0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016
               code: 0
               issueDate: 0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c
               permanent: 0
               title:(java.util.LinkedHashMap)
                  cn: 0
                  en: 0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809
               totalDuration: 0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39
               validBefore: 0
            courses:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  code: 0
                  duration: 0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81
                  endDate: 0
                  grade: 0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f
                  language: 0
                  score: 0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae
                  startDate: 0
                  title:(java.util.LinkedHashMap)
                     cn: 0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff
                     en: 0
               [1]:java.util.LinkedHashMap
                  code: 0
                  duration: 0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645
                  endDate: 0
                  grade: 0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95
                  language: 0
                  score: 0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9
                  startDate: 0
                  title:(java.util.LinkedHashMap)
                     cn: 0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6
                     en: 0
            did: 0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20
            fullname:(java.util.LinkedHashMap)
               cn: 0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4
               en: 0
            issuers:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81
                     en: 0
               [1]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02
                     en: 0
            weid: did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               cert:(java.util.LinkedHashMap)
                  category:(java.util.LinkedHashMap)
                     cn: kdanY
                     en: 0
                  code: iYJjD
                  issueDate: 0
                  permanent: rPtP7
                  title:(java.util.LinkedHashMap)
                     cn: nxxGF
                     en: 0
                  totalDuration: 0
                  validBefore: BtuvN
               courses:(java.util.ArrayList)
                  [0]:java.util.LinkedHashMap
                     code: 21hSv
                     duration: 0
                     endDate: PjqJa
                     grade: 0
                     language: VesTV
                     score: 0
                     startDate: cD46U
                     title:(java.util.LinkedHashMap)
                        cn: 0
                        en: 75ERx
                  [1]:java.util.LinkedHashMap
                     code: 8Jzi7
                     duration: 0
                     endDate: rXz9Z
                     grade: 0
                     language: Q5N9R
                     score: 0
                     startDate: 004MZ
                     title:(java.util.LinkedHashMap)
                        cn: 0
                        en: qvQ9t
               did: 0
               fullname:(java.util.LinkedHashMap)
                  cn: 0
                  en: YAYiW
               issuers:(java.util.ArrayList)
                  [0]:java.util.LinkedHashMap
                     name:(java.util.LinkedHashMap)
                        cn: 0
                        en: 5RuQG
                  [1]:java.util.LinkedHashMap
                     name:(java.util.LinkedHashMap)
                        cn: 0
                        en: ij6iS
               weid: eviUH
            signatureValue: Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
      [2]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: 20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b
         cptId: 4000002
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            data:(java.util.LinkedHashMap)
               id: 0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73
               sipTellAddress: sipTellAddress
               userlevel: 0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67
            meta:(java.util.LinkedHashMap)
               code: 12.2
               error: 0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4
               info: metaInfo
            name: 0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d
            weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               data:(java.util.LinkedHashMap)
                  id: 0
                  sipTellAddress: YPmV6
                  userlevel: 0
               meta:(java.util.LinkedHashMap)
                  code: 4P7qJ
                  error: 0
                  info: 1R49c
               name: 0
               weid: msuBT
            signatureValue: wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
   proof:(java.util.HashMap)
      created: 1606703457
      type: Secp256k1
      verificationMethod: did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0
      nonce: 8ZmFjfr9LXyt7jBEbJp6
      signatureValue: OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to transfom presentation to json ...

result: {"amopId":"test_amop_id","data":"{\"context\":[\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\"],\"proof\":{\"created\":\"2020-11-30T10:30:57Z\",\"nonce\":\"8ZmFjfr9LXyt7jBEbJp6\",\"signatureValue\":\"OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=\",\"type\":\"Secp256k1\",\"verificationMethod\":\"did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0\"},\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"claim\":{\"age\":\"0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762\",\"gender\":\"0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66\",\"name\":\"张三\",\"weid\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000000,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"feda33bf-f8e0-4e07-b155-ce7a26270c05\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"age\":\"0\",\"gender\":\"0\",\"name\":\"efFx8\",\"weid\":\"xJxNU\"},\"signatureValue\":\"BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]},{\"claim\":{\"cert\":{\"category\":{\"cn\":0,\"en\":\"0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016\"},\"code\":0,\"issueDate\":\"0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c\",\"permanent\":0,\"title\":{\"cn\":0,\"en\":\"0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809\"},\"totalDuration\":\"0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39\",\"validBefore\":0},\"courses\":[{\"code\":0,\"duration\":\"0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81\",\"endDate\":0,\"grade\":\"0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f\",\"language\":0,\"score\":\"0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae\",\"startDate\":0,\"title\":{\"cn\":\"0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff\",\"en\":0}},{\"code\":0,\"duration\":\"0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645\",\"endDate\":0,\"grade\":\"0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95\",\"language\":0,\"score\":\"0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9\",\"startDate\":0,\"title\":{\"cn\":\"0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6\",\"en\":0}}],\"did\":\"0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20\",\"fullname\":{\"cn\":\"0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4\",\"en\":0},\"issuers\":[{\"name\":{\"cn\":\"0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81\",\"en\":0}},{\"name\":{\"cn\":\"0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02\",\"en\":0}}],\"weid\":\"did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000001,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"95eba4f9-c17b-4fc3-8ed6-93e55e372059\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"cert\":{\"category\":{\"cn\":\"kdanY\",\"en\":\"0\"},\"code\":\"iYJjD\",\"issueDate\":\"0\",\"permanent\":\"rPtP7\",\"title\":{\"cn\":\"nxxGF\",\"en\":\"0\"},\"totalDuration\":\"0\",\"validBefore\":\"BtuvN\"},\"courses\":[{\"code\":\"21hSv\",\"duration\":\"0\",\"endDate\":\"PjqJa\",\"grade\":\"0\",\"language\":\"VesTV\",\"score\":\"0\",\"startDate\":\"cD46U\",\"title\":{\"cn\":\"0\",\"en\":\"75ERx\"}},{\"code\":\"8Jzi7\",\"duration\":\"0\",\"endDate\":\"rXz9Z\",\"grade\":\"0\",\"language\":\"Q5N9R\",\"score\":\"0\",\"startDate\":\"004MZ\",\"title\":{\"cn\":\"0\",\"en\":\"qvQ9t\"}}],\"did\":\"0\",\"fullname\":{\"cn\":\"0\",\"en\":\"YAYiW\"},\"issuers\":[{\"name\":{\"cn\":\"0\",\"en\":\"5RuQG\"}},{\"name\":{\"cn\":\"0\",\"en\":\"ij6iS\"}}],\"weid\":\"eviUH\"},\"signatureValue\":\"Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]},{\"claim\":{\"data\":{\"id\":\"0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73\",\"sipTellAddress\":\"sipTellAddress\",\"userlevel\":\"0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67\"},\"meta\":{\"code\":12.2,\"error\":\"0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4\",\"info\":\"metaInfo\"},\"name\":\"0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d\",\"weid\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000002,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"data\":{\"id\":\"0\",\"sipTellAddress\":\"YPmV6\",\"userlevel\":\"0\"},\"meta\":{\"code\":\"4P7qJ\",\"error\":\"0\",\"info\":\"1R49c\"},\"name\":\"0\",\"weid\":\"msuBT\"},\"signatureValue\":\"wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]}],\"$from\":\"toJson\"}","encodeType":0,"extendData":null,"id":"598e4d97021d4d918b9a8bfa0d4ae8b7","type":"AMOP","version":1}
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to transfom presentation to QRCode ...

result: 1|0|test_amop_id|6fbc1b89563c44379337bb430f4b0e92|{"context":["https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1"],"proof":{"created":"2020-11-30T10:30:57Z","nonce":"8ZmFjfr9LXyt7jBEbJp6","signatureValue":"OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=","type":"Secp256k1","verificationMethod":"did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0"},"type":["VerifiablePresentation"],"verifiableCredential":[{"claim":{"age":"0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762","gender":"0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66","name":"张三","weid":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff"},"context":"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1","cptId":4000000,"expirationDate":"2020-12-01T09:33:59Z","id":"feda33bf-f8e0-4e07-b155-ce7a26270c05","issuanceDate":"2020-11-30T09:33:59Z","issuer":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff","proof":{"created":"2020-11-30T09:33:59Z","creator":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0","salt":{"age":"0","gender":"0","name":"efFx8","weid":"xJxNU"},"signatureValue":"BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=","type":"Secp256k1"},"type":["VerifiableCredential","original"]},{"claim":{"cert":{"category":{"cn":0,"en":"0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016"},"code":0,"issueDate":"0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c","permanent":0,"title":{"cn":0,"en":"0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809"},"totalDuration":"0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39","validBefore":0},"courses":[{"code":0,"duration":"0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81","endDate":0,"grade":"0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f","language":0,"score":"0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae","startDate":0,"title":{"cn":"0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff","en":0}},{"code":0,"duration":"0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645","endDate":0,"grade":"0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95","language":0,"score":"0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9","startDate":0,"title":{"cn":"0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6","en":0}}],"did":"0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20","fullname":{"cn":"0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4","en":0},"issuers":[{"name":{"cn":"0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81","en":0}},{"name":{"cn":"0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02","en":0}}],"weid":"did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895"},"context":"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1","cptId":4000001,"expirationDate":"2020-12-01T09:33:59Z","id":"95eba4f9-c17b-4fc3-8ed6-93e55e372059","issuanceDate":"2020-11-30T09:33:59Z","issuer":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff","proof":{"created":"2020-11-30T09:33:59Z","creator":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0","salt":{"cert":{"category":{"cn":"kdanY","en":"0"},"code":"iYJjD","issueDate":"0","permanent":"rPtP7","title":{"cn":"nxxGF","en":"0"},"totalDuration":"0","validBefore":"BtuvN"},"courses":[{"code":"21hSv","duration":"0","endDate":"PjqJa","grade":"0","language":"VesTV","score":"0","startDate":"cD46U","title":{"cn":"0","en":"75ERx"}},{"code":"8Jzi7","duration":"0","endDate":"rXz9Z","grade":"0","language":"Q5N9R","score":"0","startDate":"004MZ","title":{"cn":"0","en":"qvQ9t"}}],"did":"0","fullname":{"cn":"0","en":"YAYiW"},"issuers":[{"name":{"cn":"0","en":"5RuQG"}},{"name":{"cn":"0","en":"ij6iS"}}],"weid":"eviUH"},"signatureValue":"Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=","type":"Secp256k1"},"type":["VerifiableCredential","original"]},{"claim":{"data":{"id":"0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73","sipTellAddress":"sipTellAddress","userlevel":"0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67"},"meta":{"code":12.2,"error":"0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4","info":"metaInfo"},"name":"0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d","weid":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff"},"context":"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1","cptId":4000002,"expirationDate":"2020-12-01T09:33:59Z","id":"20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b","issuanceDate":"2020-11-30T09:33:59Z","issuer":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff","proof":{"created":"2020-11-30T09:33:59Z","creator":"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0","salt":{"data":{"id":"0","sipTellAddress":"YPmV6","userlevel":"0"},"meta":{"code":"4P7qJ","error":"0","info":"1R49c"},"name":"0","weid":"msuBT"},"signatureValue":"wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=","type":"Secp256k1"},"type":["VerifiableCredential","original"]}],"$from":"toJson"}|?
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin to save the presentation json...

------------------------------

begin to generateQrCode ...

generateQrCode success in file: ./tmp/1606703457265.jpg

------------------------------

userAgent() finish...

Verifier

命令行执行Verifier

./command.sh verifier
  1. 为Verifier创建WeID
  2. 获取presentation的json数据
  3. Verifier反序列化PresentationJson数据
  4. 获取Policy
  5. 验证Presentation

全部log显示如下:

展开收缩
+ daemon_pid=
+ JAVA_OPTS='-Djdk.tls.namedGroups="secp256r1,secp256k1"'
+ [[ verifier != \i\s\s\u\e\r ]]
+ [[ verifier != \u\s\e\r\_\a\g\e\n\t ]]
+ [[ verifier != \v\e\r\i\f\i\e\r ]]
+ [[ verifier == daemon ]]
+ echo '--------- start verifier ----------'
--------- start verifier ----------
+ java '-Djdk.tls.namedGroups="secp256r1,secp256k1"' -cp 'dist/app/*:resources/:dist/lib/*' com.webank.weid.demo.command.DemoCommand verifier
verifier() init...

------------------------------

begin create weid for verifier...

createWeId result:

result:(com.webank.weid.protocol.response.CreateWeIdDataResult)
   weId: did:weid:1:0xb0d4c0719023a3d6dad4e2410160feb9e9a7f991
   userWeIdPublicKey:(com.webank.weid.protocol.base.WeIdPublicKey)
      publicKey: 11202991495023998349086933643435198986060380650793224511783862509605375110013240363487112697134027217545335021430593548190695909979735968173670173386346568
   userWeIdPrivateKey:(com.webank.weid.protocol.base.WeIdPrivateKey)
      privateKey: 102638916657242663900606572226420776500177229695694236882268598926711816503912
errorCode: 0
errorMessage: success
transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
   blockNumber: 72
   transactionHash: 0xfa715ca08e7c50a27d86683cc383b0b3f6e0da349fceb63a2b4c3c41929b5d7f
   transactionIndex: 0

------------------------------

begin get the presentation json...

getCredentialFromJson presentationJson result:

{"amopId":"test_amop_id","data":"{\"context\":[\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\"],\"proof\":{\"created\":\"2020-11-30T10:30:57Z\",\"nonce\":\"8ZmFjfr9LXyt7jBEbJp6\",\"signatureValue\":\"OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=\",\"type\":\"Secp256k1\",\"verificationMethod\":\"did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0\"},\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"claim\":{\"age\":\"0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762\",\"gender\":\"0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66\",\"name\":\"张三\",\"weid\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000000,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"feda33bf-f8e0-4e07-b155-ce7a26270c05\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"age\":\"0\",\"gender\":\"0\",\"name\":\"efFx8\",\"weid\":\"xJxNU\"},\"signatureValue\":\"BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]},{\"claim\":{\"cert\":{\"category\":{\"cn\":0,\"en\":\"0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016\"},\"code\":0,\"issueDate\":\"0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c\",\"permanent\":0,\"title\":{\"cn\":0,\"en\":\"0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809\"},\"totalDuration\":\"0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39\",\"validBefore\":0},\"courses\":[{\"code\":0,\"duration\":\"0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81\",\"endDate\":0,\"grade\":\"0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f\",\"language\":0,\"score\":\"0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae\",\"startDate\":0,\"title\":{\"cn\":\"0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff\",\"en\":0}},{\"code\":0,\"duration\":\"0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645\",\"endDate\":0,\"grade\":\"0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95\",\"language\":0,\"score\":\"0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9\",\"startDate\":0,\"title\":{\"cn\":\"0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6\",\"en\":0}}],\"did\":\"0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20\",\"fullname\":{\"cn\":\"0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4\",\"en\":0},\"issuers\":[{\"name\":{\"cn\":\"0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81\",\"en\":0}},{\"name\":{\"cn\":\"0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02\",\"en\":0}}],\"weid\":\"did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000001,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"95eba4f9-c17b-4fc3-8ed6-93e55e372059\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"cert\":{\"category\":{\"cn\":\"kdanY\",\"en\":\"0\"},\"code\":\"iYJjD\",\"issueDate\":\"0\",\"permanent\":\"rPtP7\",\"title\":{\"cn\":\"nxxGF\",\"en\":\"0\"},\"totalDuration\":\"0\",\"validBefore\":\"BtuvN\"},\"courses\":[{\"code\":\"21hSv\",\"duration\":\"0\",\"endDate\":\"PjqJa\",\"grade\":\"0\",\"language\":\"VesTV\",\"score\":\"0\",\"startDate\":\"cD46U\",\"title\":{\"cn\":\"0\",\"en\":\"75ERx\"}},{\"code\":\"8Jzi7\",\"duration\":\"0\",\"endDate\":\"rXz9Z\",\"grade\":\"0\",\"language\":\"Q5N9R\",\"score\":\"0\",\"startDate\":\"004MZ\",\"title\":{\"cn\":\"0\",\"en\":\"qvQ9t\"}}],\"did\":\"0\",\"fullname\":{\"cn\":\"0\",\"en\":\"YAYiW\"},\"issuers\":[{\"name\":{\"cn\":\"0\",\"en\":\"5RuQG\"}},{\"name\":{\"cn\":\"0\",\"en\":\"ij6iS\"}}],\"weid\":\"eviUH\"},\"signatureValue\":\"Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]},{\"claim\":{\"data\":{\"id\":\"0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73\",\"sipTellAddress\":\"sipTellAddress\",\"userlevel\":\"0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67\"},\"meta\":{\"code\":12.2,\"error\":\"0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4\",\"info\":\"metaInfo\"},\"name\":\"0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d\",\"weid\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\"},\"context\":\"https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1\",\"cptId\":4000002,\"expirationDate\":\"2020-12-01T09:33:59Z\",\"id\":\"20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b\",\"issuanceDate\":\"2020-11-30T09:33:59Z\",\"issuer\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff\",\"proof\":{\"created\":\"2020-11-30T09:33:59Z\",\"creator\":\"did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0\",\"salt\":{\"data\":{\"id\":\"0\",\"sipTellAddress\":\"YPmV6\",\"userlevel\":\"0\"},\"meta\":{\"code\":\"4P7qJ\",\"error\":\"0\",\"info\":\"1R49c\"},\"name\":\"0\",\"weid\":\"msuBT\"},\"signatureValue\":\"wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=\",\"type\":\"Secp256k1\"},\"type\":[\"VerifiableCredential\",\"original\"]}],\"$from\":\"toJson\"}","encodeType":0,"extendData":null,"id":"598e4d97021d4d918b9a8bfa0d4ae8b7","type":"AMOP","version":1}

------------------------------

begin deserialize presentationJson...

JsonTransportation.deserialize result:

result:(com.webank.weid.protocol.base.PresentationE)
   context:(java.util.ArrayList)
      [0]:https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
   type:(java.util.ArrayList)
      [0]:VerifiablePresentation
   verifiableCredential:(java.util.ArrayList)
      [0]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: feda33bf-f8e0-4e07-b155-ce7a26270c05
         cptId: 4000000
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            age: 0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762
            gender: 0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66
            name: 张三
            weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               age: 0
               gender: 0
               name: efFx8
               weid: xJxNU
            signatureValue: BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
      [1]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: 95eba4f9-c17b-4fc3-8ed6-93e55e372059
         cptId: 4000001
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            cert:(java.util.LinkedHashMap)
               category:(java.util.LinkedHashMap)
                  cn: 0
                  en: 0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016
               code: 0
               issueDate: 0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c
               permanent: 0
               title:(java.util.LinkedHashMap)
                  cn: 0
                  en: 0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809
               totalDuration: 0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39
               validBefore: 0
            courses:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  code: 0
                  duration: 0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81
                  endDate: 0
                  grade: 0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f
                  language: 0
                  score: 0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae
                  startDate: 0
                  title:(java.util.LinkedHashMap)
                     cn: 0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff
                     en: 0
               [1]:java.util.LinkedHashMap
                  code: 0
                  duration: 0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645
                  endDate: 0
                  grade: 0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95
                  language: 0
                  score: 0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9
                  startDate: 0
                  title:(java.util.LinkedHashMap)
                     cn: 0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6
                     en: 0
            did: 0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20
            fullname:(java.util.LinkedHashMap)
               cn: 0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4
               en: 0
            issuers:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81
                     en: 0
               [1]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02
                     en: 0
            weid: did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               cert:(java.util.LinkedHashMap)
                  category:(java.util.LinkedHashMap)
                     cn: kdanY
                     en: 0
                  code: iYJjD
                  issueDate: 0
                  permanent: rPtP7
                  title:(java.util.LinkedHashMap)
                     cn: nxxGF
                     en: 0
                  totalDuration: 0
                  validBefore: BtuvN
               courses:(java.util.ArrayList)
                  [0]:java.util.LinkedHashMap
                     code: 21hSv
                     duration: 0
                     endDate: PjqJa
                     grade: 0
                     language: VesTV
                     score: 0
                     startDate: cD46U
                     title:(java.util.LinkedHashMap)
                        cn: 0
                        en: 75ERx
                  [1]:java.util.LinkedHashMap
                     code: 8Jzi7
                     duration: 0
                     endDate: rXz9Z
                     grade: 0
                     language: Q5N9R
                     score: 0
                     startDate: 004MZ
                     title:(java.util.LinkedHashMap)
                        cn: 0
                        en: qvQ9t
               did: 0
               fullname:(java.util.LinkedHashMap)
                  cn: 0
                  en: YAYiW
               issuers:(java.util.ArrayList)
                  [0]:java.util.LinkedHashMap
                     name:(java.util.LinkedHashMap)
                        cn: 0
                        en: 5RuQG
                  [1]:java.util.LinkedHashMap
                     name:(java.util.LinkedHashMap)
                        cn: 0
                        en: ij6iS
               weid: eviUH
            signatureValue: Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
      [2]:com.webank.weid.protocol.base.CredentialPojo
         context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
         id: 20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b
         cptId: 4000002
         issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         issuanceDate: 1606700039
         expirationDate: 1606786439
         claim:(java.util.LinkedHashMap)
            data:(java.util.LinkedHashMap)
               id: 0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73
               sipTellAddress: sipTellAddress
               userlevel: 0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67
            meta:(java.util.LinkedHashMap)
               code: 12.2
               error: 0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4
               info: metaInfo
            name: 0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d
            weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
         proof:(java.util.LinkedHashMap)
            created: 1606700039
            creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
            salt:(java.util.LinkedHashMap)
               data:(java.util.LinkedHashMap)
                  id: 0
                  sipTellAddress: YPmV6
                  userlevel: 0
               meta:(java.util.LinkedHashMap)
                  code: 4P7qJ
                  error: 0
                  info: 1R49c
               name: 0
               weid: msuBT
            signatureValue: wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=
            type: Secp256k1
         type:(java.util.ArrayList)
            [0]:VerifiableCredential
            [1]:original
   proof:(java.util.LinkedHashMap)
      created: 1606703457
      nonce: 8ZmFjfr9LXyt7jBEbJp6
      signatureValue: OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=
      type: Secp256k1
      verificationMethod: did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0
errorCode: 0
errorMessage: success
transactionInfo:null

------------------------------

begin get the PolicyAndChallenge...

context:(java.util.ArrayList)
   [0]:https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
type:(java.util.ArrayList)
   [0]:VerifiablePresentation
verifiableCredential:(java.util.ArrayList)
   [0]:com.webank.weid.protocol.base.CredentialPojo
      context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
      id: feda33bf-f8e0-4e07-b155-ce7a26270c05
      cptId: 4000000
      issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
      issuanceDate: 1606700039
      expirationDate: 1606786439
      claim:(java.util.LinkedHashMap)
         age: 0xdb2e4fbe9d6f129987395a875523a878f92187d7a3a99e621e5517e142e80762
         gender: 0x166a777736f55026a30dab331292825e2386c23fb05fe622df5f65c267c17a66
         name: 张三
         weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
      proof:(java.util.LinkedHashMap)
         created: 1606700039
         creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
         salt:(java.util.LinkedHashMap)
            age: 0
            gender: 0
            name: efFx8
            weid: xJxNU
         signatureValue: BDEVraeDOuFLQINwu/UjxxXOr2DINmh5Mgtbf8ptUM0JVnoGSHOegvcNhqZgoRTWpOg83hu5dzuRYtme9c93nwE=
         type: Secp256k1
      type:(java.util.ArrayList)
         [0]:VerifiableCredential
         [1]:original
   [1]:com.webank.weid.protocol.base.CredentialPojo
      context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
      id: 95eba4f9-c17b-4fc3-8ed6-93e55e372059
      cptId: 4000001
      issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
      issuanceDate: 1606700039
      expirationDate: 1606786439
      claim:(java.util.LinkedHashMap)
         cert:(java.util.LinkedHashMap)
            category:(java.util.LinkedHashMap)
               cn: 0
               en: 0x27991ec4215510da681b2be59c4781136f41d10bc75be560d0395c87a2634016
            code: 0
            issueDate: 0xf5b0e6bdcdd036bfb4b420e9a3c9ceca66c7a23789ae06425ac041446fc9683c
            permanent: 0
            title:(java.util.LinkedHashMap)
               cn: 0
               en: 0x7a9534a74af4d8ed91e8d12a91cbcf8a2d8249474cb9467fbf30eaa67bfba809
            totalDuration: 0x8f398d907bac49958f6a08a181e0354dea2ae586d39ae4e5d6b41c7e83f59f39
            validBefore: 0
         courses:(java.util.ArrayList)
            [0]:java.util.LinkedHashMap
               code: 0
               duration: 0xa72f3b411ae16767cb35055aa2bf8059f1956f4a96a236bdb20aace008429c81
               endDate: 0
               grade: 0xe54beab09de368b666ca280277cc928f48c173c55bf74bcfe1f0cb4561297f1f
               language: 0
               score: 0xdd9f1c1af55ad12588bf5a625f82e49b12a95bcb32bbacc09a820b0130073cae
               startDate: 0
               title:(java.util.LinkedHashMap)
                  cn: 0x20e285aceab23005c2065bf9b5b6affebb4a478ec6b8c0216b499ebeca3a3eff
                  en: 0
            [1]:java.util.LinkedHashMap
               code: 0
               duration: 0xa32bdcce89162a2f49330615067c7ff941a7dc185dba636f2c388e2cabf6e645
               endDate: 0
               grade: 0x9cbe88c3a85dab4666306a3e8542efbed56c07ce5af031a55c21e449149d0e95
               language: 0
               score: 0x2c55791eebba704b0f2c91d1cf3016cc129160ab3963925e07cbc01c9f0564c9
               startDate: 0
               title:(java.util.LinkedHashMap)
                  cn: 0x8ca8432e496053108405cfebe4b9a7ea06eb49e037d706e100c1cee35a01efc6
                  en: 0
         did: 0x93af6531ca6567a20638b6a299575c3257d944e8f35527e54a34e221c922bd20
         fullname:(java.util.LinkedHashMap)
            cn: 0xfbce03a385adf56cd57f96ab9ef61305c89a9677e11f703e70109b7274fd74d4
            en: 0
         issuers:(java.util.ArrayList)
            [0]:java.util.LinkedHashMap
               name:(java.util.LinkedHashMap)
                  cn: 0xa17caf5dc80e02619d4940eeeeeacdca7f86457d2f7ff2d3f96c66426cd11f81
                  en: 0
            [1]:java.util.LinkedHashMap
               name:(java.util.LinkedHashMap)
                  cn: 0xeac139f51112dd6a813298c85970e98bff877150ee5c486f04472755f0fdbf02
                  en: 0
         weid: did:weid:101:0xa2c6ef0ea932fd3332da818a2608cb7665e55895
      proof:(java.util.LinkedHashMap)
         created: 1606700039
         creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
         salt:(java.util.LinkedHashMap)
            cert:(java.util.LinkedHashMap)
               category:(java.util.LinkedHashMap)
                  cn: kdanY
                  en: 0
               code: iYJjD
               issueDate: 0
               permanent: rPtP7
               title:(java.util.LinkedHashMap)
                  cn: nxxGF
                  en: 0
               totalDuration: 0
               validBefore: BtuvN
            courses:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  code: 21hSv
                  duration: 0
                  endDate: PjqJa
                  grade: 0
                  language: VesTV
                  score: 0
                  startDate: cD46U
                  title:(java.util.LinkedHashMap)
                     cn: 0
                     en: 75ERx
               [1]:java.util.LinkedHashMap
                  code: 8Jzi7
                  duration: 0
                  endDate: rXz9Z
                  grade: 0
                  language: Q5N9R
                  score: 0
                  startDate: 004MZ
                  title:(java.util.LinkedHashMap)
                     cn: 0
                     en: qvQ9t
            did: 0
            fullname:(java.util.LinkedHashMap)
               cn: 0
               en: YAYiW
            issuers:(java.util.ArrayList)
               [0]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0
                     en: 5RuQG
               [1]:java.util.LinkedHashMap
                  name:(java.util.LinkedHashMap)
                     cn: 0
                     en: ij6iS
            weid: eviUH
         signatureValue: Qe1YG6epswa0VpN1iTcw4sJpAoIz3J3pc+C+VQi3nxAAbYyhbE+vyc/Zky2vZcN74tGnyYPq1GlxEJZ7EB0hIAA=
         type: Secp256k1
      type:(java.util.ArrayList)
         [0]:VerifiableCredential
         [1]:original
   [2]:com.webank.weid.protocol.base.CredentialPojo
      context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
      id: 20df81b6-ea9f-455b-a7d6-c2a8e49c3c7b
      cptId: 4000002
      issuer: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
      issuanceDate: 1606700039
      expirationDate: 1606786439
      claim:(java.util.LinkedHashMap)
         data:(java.util.LinkedHashMap)
            id: 0xf69dc2e69dc46bae3ccdf8f902b72b0b7cafebce9c21ad1b6bda2eb401046d73
            sipTellAddress: sipTellAddress
            userlevel: 0x9428c4b66220aca6fb9faaef31e3cda0e144f2251d5415d03b5ac75e9af94f67
         meta:(java.util.LinkedHashMap)
            code: 12.2
            error: 0xf52f9e90e3cb3f999956c9a200f301e50053b83435ee06967c21dd56358a53a4
            info: metaInfo
         name: 0xd4c119e38317cc12ad9a3924df022eba58c741d5e0a95fc593d5dbfbdc316d9d
         weid: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff
      proof:(java.util.LinkedHashMap)
         created: 1606700039
         creator: did:weid:1:0x32d34435776f35ab26aca5b2d2c331208f9d95ff#keys-0
         salt:(java.util.LinkedHashMap)
            data:(java.util.LinkedHashMap)
               id: 0
               sipTellAddress: YPmV6
               userlevel: 0
            meta:(java.util.LinkedHashMap)
               code: 4P7qJ
               error: 0
               info: 1R49c
            name: 0
            weid: msuBT
         signatureValue: wLb/NY7EaTwpJVPFazfL0ikuz6EUAS30TwBsMifAgSciUkCzAajWipFua+jFhqtpV4Vsp/LonlRWFovk0FAJawA=
         type: Secp256k1
      type:(java.util.ArrayList)
         [0]:VerifiableCredential
         [1]:original
proof:(java.util.LinkedHashMap)
   created: 1606703457
   nonce: 8ZmFjfr9LXyt7jBEbJp6
   signatureValue: OagMWcq64+hRlYW2fj/vFBx01DYlc5vdvXyITOgrdO4awH3Wv5B7tyisGQsKj+TYuJa4rh+fq7ScuisM5CSN6gE=
   type: Secp256k1
   verificationMethod: did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e#keys-0

queryChallenge result:

weId: did:weid:1:0x8dfede1ec843882541f01964d2ff2ff96107610e
nonce: 8ZmFjfr9LXyt7jBEbJp6

------------------------------

begin verify presentationE for JSON...

verify result:

result: false
errorCode: 100104
errorMessage: the weid does not exist on blockchain.
transactionInfo:null