0

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

但是,这会因 SyntaxError 而失败。剥离换行符,仅使用破折号之间的字符串部分等都失败。

我很高兴使用不同的通用密钥格式,但是我需要 TLSLite 或其他纯 Python 解决方案才能读取文件,因为我使用的是 Google AppEngine。

4

1 回答 1

0

您可能应该包括implementations参数,如:

parsePEMKey(key_data, private=False, implementations=['python'])

于 2013-12-02T00:32:50.263 回答