用于处理用于存储新链私钥的加密密钥文件的库。

newchain-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 ^{tt1}$.

安装

pip install eth-keyfile

开发

pip install -e .[dev]

运行测试

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

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"

文档

newchain_keyfile.load_keyfile(path_or_file_obj) --> keyfile_json

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

>>>fromnewchain_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}

newchain_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}

newchain_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'

newchain_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使用ApachePOI将excel文件导入postgreSQL表   java多线程从iText pdf提取文本   winapi Java和SetWindowDisplayAffinity   eclipse juno的java Websphere 6.1插件   java MPAndroidChart:为Y轴提供一些偏移   java中作为参数传递枚举类型的继承   java Gui jframe的工作原理与netbeans不同   使用Bouncy Castle和PDFBox在Java中验证PDF签名   优化缩小Java代码   java无法在安卓中从Firebase取回子数据   返回的java方法?我应该什么时候用?   java错误处理已完成,退出代码为1。与穿过阵列的for循环有关   多线程Java volatile是否阻止缓存或强制执行写缓存?   java Multi-collectItems如何提前终止并返回已收集的项目   java为什么不在服务(请求,响应)中直接调用processRequest(请求,响应)?   java如何从字符串生成int数组?   打印获取用户输入的值并在其他预选文本中显示。JAVA   未显示java DynamicAsper UTF8字符   java Eclipse RCP:不启动应用程序的命令行参数