Frage

Ich habe kürzlich versucht herauszufinden, wie man Pycrypto dazu bringt, PEMs zu erkennen, die vom Packungsprozess von Google Chrome hergestellt werden. Das Problem ist, dass die Standard -Importkey -Methode Fehler verursacht. Nach einem ziemlich langen Prozess wurde mir schließlich fest hier). Leider lässt es mir ein Problem ungelöst.

Ich kann den Schlüssel zum Import bekommen, und es sieht so aus, als wäre es ziemlich konsequent, aber ich habe 40 Zeichen übrig.

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:])

Weiß jemand, warum diese 40 Charaktere es gibt? Wird das Ignorieren Sie Probleme mit einigen privaten/öffentlichen Schlüsselpaaren verursachen?

War es hilfreich?

Lösung

Am einfachsten ist es, die OpenSSL RSA -Utiity zu verwenden, um die Datei Chrome.pem in eine Chrome.der -Datei zu konvertieren. Etwas wie

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

sollte den Trick machen. Jetzt können Sie die Bytes von Chrome.der direkt in der verwenden RSA.importKey() Methode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top