创建可以通过Python TLSLite的parseAsPublicKey加载的公钥

0 投票
1 回答
1036 浏览
提问于 2025-04-17 12:15

我想从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'])

撰写回答