我目前正在尝试编写一个脚本,使我能够从隐藏服务的私钥文件计算Tor HS地址。为了做到这一点,文件需要转换成DER格式。
使用OpenSSL可以通过以下方式完成:
openssl rsa -in private_key -pubout -outform DER
将以下内容输入python:
base64.b32encode(hashlib.sha1(sys.stdin.read()[22:]).digest()[:10]).lower()'
这段代码将正确返回地址。
然而,我想仅使用Python实现相同的功能。我的问题是,使用pycrypto模块时DER输出不同,因此地址不正确。
key = RSA.importKey(keyfile.read()).publickey()
print(key.exportKey(format='DER'))
会产生不同于openssl调用的输出结果。
这只是允许不同结果的实现问题吗?还是我在某个地方犯了错误?
任何帮助将不胜感激。
exportKey
方法在某些格式上并不是非常可靠。我不得不重新实现它的一些部分。在使用时要小心。 - Klaus D.