用于处理用于存储以太坊私钥的加密密钥文件的库。

eth-keyfile的Python项目详细描述


用于处理用于存储以太坊的加密密钥文件的库 私钥

This library and repository was previously located at https://github.com/pipermerriam/ethereum-keyfile. It was transferred to the Ethereum foundation github in November 2017 and renamed to ^{tt1}$. The PyPi package was also renamed from ^{tt2}$ to `eth-keyfile.

安装

pip install eth-keyfile

开发

pip install -e . -r requirements-dev.txt

运行测试

您可以使用以下命令运行测试:

py.test tests

或者您可以安装tox来运行完整的测试套件。

释放

要将降价自述转换为正确的 在pypi上正确呈现的格式。

对于类似Debian的系统:

apt install pandoc

或在OSX上:

brew install pandoc

发布新版本:

make release bump=$$VERSION_PART_TO_BUMP$$

如何颠簸

此repo的版本格式为 稳定,{major}.{minor}.{patch}-{stage}.{devnum}表示不稳定 (stage可以是alpha或beta)。

若要在行中发布下一个版本,请指定要凹凸的部分,如 make release bump=minormake release bump=devnum

如果您是beta版本,make release bump=stage将切换到 马厩。

若要在当前版本稳定时发布不稳定版本,请指定 新版本显式地 make release bump="--new-version2.0.0-alpha.1 devnum"

文档

eth_keyfile.load_keyfile(path_or_file_obj) --> keyfile_json

接受表示为字符串或文件对象的文件系统路径 并将解析后的密钥文件json作为python字典返回。

>>>frometh_keyfileimportload_keyfile>>>load_keyfile('path/to-my-keystore/keystore.json'){"crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"6087dab2f9fdbbfaddc31a909735c1e6"},"ciphertext":"5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46","kdf":"pbkdf2","kdfparams":{"c":262144,"dklen":32,"prf":"hmac-sha256","salt":"ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd"},"mac":"517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2"},"id":"3198bc9c-6672-5ab3-d995-4942343ae5b6","version":3}

eth_keyfile.create_keyfile_json(private_key, password, kdf="pbkdf2", work_factor=None) --> keyfile_json

采用以下参数:

  • private_key:长度为32的bytestring
  • password:一个bytestring,它将是 用于解密生成的密钥文件。
  • kdf:密钥派生函数。允许的值是pbkdf2scrypt。默认情况下,将使用pbkdf2
  • work_factor:将用于给定密钥的工作因子 求导函数。默认情况下,1000000将用于 pbkdf2262144用于scrypt

将keyfile json作为python字典返回。

>>>private_key=b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'>>>create_keyfile_json(private_key,b'foo'){"address":"1a642f0e3c3af545e7acbd38b07251b3990914f1","crypto":{"cipher":"aes-128-ctr","cipherparams":{"iv":"6087dab2f9fdbbfaddc31a909735c1e6"},"ciphertext":"5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46","kdf":"pbkdf2","kdfparams":{"c":262144,"dklen":32,"prf":"hmac-sha256","salt":"ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd"},"mac":"517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2"},"id":"3198bc9c-6672-5ab3-d995-4942343ae5b6","version":3}

eth_keyfile.decode_keyfile_json(keyfile_json, password) --> private_key

将keyfile json作为python字典,并将 密钥文件,返回解码的私钥。

>>>keyfile_json={..."crypto":{..."cipher":"aes-128-ctr",..."cipherparams":{..."iv":"6087dab2f9fdbbfaddc31a909735c1e6"...},..."ciphertext":"5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46",..."kdf":"pbkdf2",..."kdfparams":{..."c":262144,..."dklen":32,..."prf":"hmac-sha256",..."salt":"ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd"...},..."mac":"517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2"...},..."id":"3198bc9c-6672-5ab3-d995-4942343ae5b6",..."version":3...}>>>decode_keyfile_json(keyfile_json,b'foo')b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'

eth_keyfile.extract_key_from_keyfile(path_or_file_obj, password) --> private_key

采用由字符串或文件对象表示的文件系统路径, 密钥文件的密码。将私钥作为bytestring返回。

>>>extract_key_from_keyfile('path/to-my-keystore/keyfile.json',b'foo')b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:如何使用另一个类中的对象   如何在Java中迭代旁遮普语(阿拉伯语)?   类Java嵌套ArrayList返回对象   java正则表达式以匹配“:”之后包含的字符串   java为什么main()很好地显示“Lukaku”并包含_names()返回null?   java嵌套循环,无法理解如何编写此代码   java使用maven动物嗅探器插件检查自己的API   java上传的文件创建保存以备将来在GWT服务器端使用   java转换为Dalvik格式失败65536限制   Java后端的javascript最佳RIA工具   amazon web服务如何将tar文件从amazonS3 bucket提取到Java中的另一个s3   java如何在hibernate搜索中实现对int值的搜索?   使用Maven初始化引导层JavaFX时发生java错误   java Google登录API例外:10:   java Glassfish 3.1.2加载本机库(.dll)   java在join操作中使用TumblingWindow,但没有将任何元素传输到my JoinFunction   IBatis+Java:检索HashMap   多线程java与scala在单独线程上读取文件