我用24个单词的助记符为Alice生成了pub/priv主密钥对。在
master_private_key='9f74f4534cbdf01a1f925e20108d86045bd96849af9c94534a10ef2a26ff133b',
master_public_key="0308de0952b00ebc83a41830794534ae912b86d3718832a36ce98c256ab5bfdc4e"
mnemonic='flash city relief spirit federal own metal history great hello toy volcano same subway loan bleak rapid swamp pigeon secret pyramid spoon famous blouse',
类似地,我重复了为Bob生成密钥的相同过程。现在我想从Alice的私钥和Bob的公钥生成Diffie Hellman密钥。python中Diffie-Hellman的所有实现都生成自己的公钥/私钥对。在
来自secp256k1 python documentation:
^{pr2}$注意:ecdh只能在secp256k1c库编译时使用。如果没有支持,则调用它时将引发异常。在
我只是不知道如何用libsecp256k1编译这个库。我认为Diffie Hellman ECC版本更适合这里。在
这是我得到的错误:
from sawtooth_signing.secp256k1 import Secp256k1PublicKey
bob_pub='033036dd96b7bef82556fe09eef42bef5e66545317c92a5deca99275f616729fef'
public_key = Secp256k1PublicKey.from_hex(bob_pub)
public_key.secp256k1_public_key.ecdh(alice_private_key)
----------------------
Exception Traceback (most recent call last)
<ipython-input-4-5175cf593934> in <module>()
----> 1 public_key.secp256k1_public_key.ecdh("dsds")
~/SawtoothClient/SawtoothClient/lib/python3.6/site-packages/secp256k1-0.13.2-py3.6-linux-x86_64.egg/secp256k1/__init__.py in ecdh(self, scalar)
305 assert self.public_key, "No public key defined"
306 if not HAS_ECDH:
--> 307 raise Exception("secp256k1_ecdh not enabled")
308 if not isinstance(scalar, bytes) or len(scalar) != 32:
309 raise TypeError('scalar must be composed of 32 bytes')
异常:secp256k1_ecdh未启用
我已尝试安装https://github.com/bitcoin-core/secp256k1,按照说明进行了安装,结果显示:
Libraries have been installed in:
/usr/local/lib
现在,当我再次尝试用python3.6安装secp256k1时,正如他们在git页面上提到的那样:
INCLUDE_DIR=include/ LIB_DIR=/usr/local/lib pip install --no-binary secp256k1,
我得到这个错误:
ERROR: You must give at least one requirement to install (see "pip help install")
我用另一个库coincurve做的。在
十六进制编码的共享机密是
^{pr2}$核查工作
相关问题 更多 >
编程相关推荐