2012-02-03 14 views
0

PythonのTLSliteライブラリから公開鍵をロードしたいと思います。Pythonでロード可能な公開鍵を作成するTLSLite parseAsPublicKey

キーは限り形式が一般的であるように、私たちが好きなように作成することができます - これまでのところ、私は、OpenSSLのコマンドラインツールで作成したPEMキーを使用しています。その後、

openssl genrsa 2048 > private.pem 

そして:

-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCw0zAfn11dltN7b3HL+vDsp+oS 
rhwAYPjtpMtsdKp7/i5fCf2oAo2wSBPfjM7q9DAZgPrnlzDYldIZ5MooUL2EJ59c 
6TRQN/2pBeE59nzvRif1DSgWgZhK7mvjo4YtLS10eqOxY5A8VVyKmNzQ15ILbYwg 
8ZwXoiMJJPECmt0iswIDAQAB 
-----END PUBLIC KEY----- 

キーがロードされます:

openssl rsa -in private.pem -pubout > public.pem 

はここでの結果です

from libs.tlslite.utils import keyfactory 
    pubkey = open('public.pem').read() 
    keyfactory.parsePEMKey(pubkey, private=False) 

ただし、これはSyntaxErrorで失敗します。改行の削除、ダッシュの間の文字列の部分のみの使用などはすべて失敗します。

私はGoogle AppEngineを使用しているため、別の一般的なキーフォーマットを使用しても大丈夫ですが、TLSLiteまたは別の純粋なPythonソリューションでファイルを読み取る必要があります。

+1

あなたのコードの少しを投稿してもらえますか?あなたが投稿した2つの行は、現在、お互いに関連しているようには見えません。その 'keyfactory.parsePEMKey'呼び出しで' pubkey'を使うべきですか? – kwatford

+0

@kwatford - 良い点 - 私はそれに応じてサンプルコードを修正しました – mikemaccana

答えて

0

にとあなたはおそらく、implementations引数を含める必要があります。

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

関連する問題