1

私は最近、Google Chrome のパッキング プロセスによって生成された PEM を PyCrypto に認識させる方法を見つけようとしています。問題は、標準の importKey メソッドがエラーを引き起こすことです。かなり長いプロセスの後、DerSequence.decode メソッドをリバース エンジニアリングすることで、最初にインポートをシミュレートできることに最終的に気付きました (すべての詳細はこちら)。残念ながら、未解決の問題が 1 つあります。

インポートするキーを取得できます。かなり一貫しているように見えますが、40 文字が残っています。

import binascii

# read the pem file into chromepem
# the first and last lines are useless, 
# we need it to be a string, not a tuple 
# and it needs to be one string with no newlines.
chromepem = ''.join(open("chrome.pem","r").readlines()[1:-1]).replace("\n","")

# not sure why, but it looks like the first 40 characters aren't necessary.
# removing them seems to create a consistent public key anyway...
pem = binascii.a2b_base64(chromepem[40:])

なぜその40文字がそこにあるのか誰か知っていますか? それらを無視すると、一部の秘密鍵と公開鍵のペアで問題が発生しますか?

4

1 に答える 1

2

今のところ、最も簡単な方法は、openssl rsa ユーティリティを使用して chrome.pem ファイルを chrome.der ファイルに変換することです。何かのようなもの

openssl rsa -in chrome.pem -out chrome.der -outform DER

トリックを行う必要があります。これで、chrome.der からのバイトをメソッドで直接使用できるようになりましたRSA.importKey()

于 2011-02-03T12:24:50.683 に答える