创建可以通过Python TLSLite的parseAsPublicKey加载的公钥
我想从Python的TLSlite库中加载一个公钥。
这个公钥可以用任何我们喜欢的方式创建,只要它的格式是常见的。目前我使用的是用openssl命令行工具创建的PEM格式的密钥:
openssl genrsa 2048 > private.pem
然后:
openssl rsa -in private.pem -pubout > public.pem
这是结果:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCw0zAfn11dltN7b3HL+vDsp+oS
rhwAYPjtpMtsdKp7/i5fCf2oAo2wSBPfjM7q9DAZgPrnlzDYldIZ5MooUL2EJ59c
6TRQN/2pBeE59nzvRif1DSgWgZhK7mvjo4YtLS10eqOxY5A8VVyKmNzQ15ILbYwg
8ZwXoiMJJPECmt0iswIDAQAB
-----END PUBLIC KEY-----
这个密钥将通过以下方式加载:
from libs.tlslite.utils import keyfactory
pubkey = open('public.pem').read()
keyfactory.parsePEMKey(pubkey, private=False)
不过,这样做会出现语法错误。去掉换行符、只使用破折号之间的部分等等,都是失败的。
我很乐意使用其他常见的密钥格式,但我需要TLSlite或其他纯Python的解决方案来读取这个文件,因为我正在使用Google AppEngine。
1 个回答
0
你可能应该加上 implementations
这个参数,像这样:
parsePEMKey(key_data, private=False, implementations=['python'])