Skip to content

Commit

Permalink
- Add code blocks about encode Credential signing
Browse files Browse the repository at this point in the history
- Fix deployment misuses

Signed-off-by: chaoxinhu <chaoxinhu@hotmail.com>
  • Loading branch information
chaoxinhu committed Feb 21, 2020
1 parent 66d8f43 commit b8cb3f6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
21 changes: 19 additions & 2 deletions docs/_sources/docs/weidentity-rest-api.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1705,14 +1705,31 @@ POST /weid/api/encode 接口入参
"errorMessage": "success"
}
请注意,这个生成的CredentialPojo的签名值(proof中的signatureValue项)并没有经过私钥签名。因此,您还需要其经过Base64解码之后,再使用Issuer的私钥进行签名并Base64编码,就能得到一个正确的CredentialPojo了。
请注意,这个生成的CredentialPojo的签名值(proof中的signatureValue项)并没有经过私钥签名。正确的签名方式包括下面几步:
- base64解码,生成一个二进制字节数组
- 对解码的byte[]做一次secp256k1的hash
- 对完成hash过byte[],再做一次hash(如果您使用的是Java web3sdk的SignMessage(),这一步它替您完成了)
- 传入私钥,进行签名,得到r,s,v
- 对进行序列化
- 把序列化的byte进行base64编码发回RestService

使用ECDSA私钥进行签名和Base64编码的范例代码见下:
使用ECDSA私钥进行签名和Base64编码的范例代码见下(Java和Go)

.. code-block:: java
String signature = DataToolUtils.sign(new String(DataToolUtils.base64Decode(signatureValue)), privateKey);
.. code-block:: go
base64SignatureValue := credentialEncodeResponse.RespBody.Proof.SignatureValue
signatureValue, err3 := base64.StdEncoding.DecodeString(base64SignatureValue)
hashedMsg := Hash(signatureValue)
doubleHashedMsg := Hash(hashedMsg)
privateKeyBytes := ConvertPrivateKeyBigIntToPrivateKeyBytes(privateKeyBigInt)
signatureBytes, err4 := SignSignature(doubleHashedMsg, privateKeyBytes)
signatureBase64String := base64.StdEncoding.EncodeToString(signatureBytes)
WeIdentity Endpoint Service API
------------------------------------

Expand Down
8 changes: 4 additions & 4 deletions docs/_sources/docs/weidentity-rest-deploy.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,17 +87,17 @@ Server 的环境要求与 WeIdentity-Java-SDK 的 `环境要求 <./weidentity-in

.. code-block:: xml
nodes=WeIdentity@127.0.0.1:8812,WeIdentity@127.0.0.1:8900
nodes=127.0.0.1:8812,127.0.0.1:8900
* 拷贝您 WeIdentity 合约部署者的私钥到 ``keys/priv`` 目录下,并重命名为 ``ecdsa_key``。如果您使用部署工具部署了 WeIdentity 合约,这个文件在 ``output/admin/`` 目录。如果您使用源码部署,这个文件在源代码根目录下。

* 修改 ``dist/conf/application.properties`` ,填入需要打开的监听端口地址(用于 RestServer 监听外来的 HTTP/HTTPS RESTful 请求,默认为 6000/6001,不可被其他程序占用)。同时,请确认用来调用默认合约部署者私钥的暗语;由于此暗语可直接调用 WeIdentity 合约部署者的私钥,权限较高(详见 \ `RestService API 说明文档 <./weidentity-rest-api.html>`_\ ),因此请您务必对其进行修改。
* 修改 ``dist/conf/application.properties`` ,填入需要打开的监听端口地址(用于 RestServer 监听外来的 HTTP/HTTPS RESTful 请求,默认为 6001/6000,不可被其他程序占用;HTTPS接口默认不开放)。同时,请确认用来调用默认合约部署者私钥的暗语;由于此暗语可直接调用 WeIdentity 合约部署者的私钥,权限较高(详见 \ `RestService API 说明文档 <./weidentity-rest-api.html>`_\ ),因此请您务必对其进行修改。

.. code-block:: bash
# HTTPS请求端口
server.port=6001
# HTTP请求端口
server.port=6001
# HTTPS请求端口,默认不开放
server.http.port=6000
# 合约部署者私钥暗语
default.passphrase=ecdsa_key
Expand Down

0 comments on commit b8cb3f6

Please sign in to comment.