2013-08-01 17 views
10

SignedJwtAssertionCredentials auf appengine erkennen (mit PyCrypto 2.6) nicht das PKCS12-Format unterstützen, deshalb PEM Schlüssel Ich versuche stattdessen zu verwenden, wie überall vorgeschlagen ..SignedJwtAssertionCredentials auf App Engine nicht PEM Schlüssel

dies mein Code:

f = file(os.path.join(os.path.dirname(__file__), KEY_FILE), "r") 
    key = f.read() 
    f.close() 

    credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key, 
     scope="https://www.googleapis.com/auth/drive" 
    http = httplib2.Http() 
    http = credentials.authorize(http) 

und die KEY_FILE ist ein PEM-Schlüssel, mit dem Befehl umgewandelt:

openssl pkcs12 -in privatekey.p12 -nodes -nocerts > privatekey.pem 

aber ich immer noch diese Fehlermeldung erhalten, einem s, wenn es nicht erkannt, das ist ein PEM-Schlüssel:

NotImplementedError: PKCS12 format is not supported by the PyCrpto library. 
Try converting to a "PEM" (openssl pkcs12 -in xxxxx.p12 -nodes -nocerts > privatekey.pem) or using PyOpenSSL if native code is an option. 

gleiche Fehler, wenn ich nur die Dateinamen an den Konstruktor übergeben (ohne den Inhalt der Datei lesen)

irgendeine Idee?

Antwort

17

Ja, der Fehler ist sehr irreführend. Was du machst, ist in Ordnung; nur den Header von der PEM-Datei entfernen, so dass es mit -----BEGIN PRIVATE KEY----- beginnt, oder den folgenden Befehl über sie laufen:

openssl pkcs8 -nocrypt -in privatekey.pem -passin pass:notasecret -topk8 -out pk.pem 
+0

ich ein ähnliches Problem und ich versuchte, Ihre Lösung zu aber ich erhalte einen neuen Fehler. Hast du eine Lösung? Überprüfen Sie bitte [PyCrypto Errors mit x.p12-Datei von Google Developer Console] (http://stackoverflow.com/q/25571504/1443563) – gsinha

6

für Interessenten, landete ich eine kurze Anleitung Kompilieren auf, wie die Google+ Domains APIs verwenden, um mit python auf App Engine, können Sie es hier finden: https://gist.github.com/vircheck/6292176

es ist auch auf andere APIs basieren auf Dienstkonten, wie die Drive API usw. anwendbar ..

+0

Ich habe ein ähnliches Problem, und ich habe Ihre Lösung auch versucht, aber ich bekomme einen neuen Fehler. Hast du eine Lösung? Überprüfen Sie die [PyCrypto Errors mit x.p12-Datei von der Google Developer Console] (http://stackoverflow.com/q/25571504/1443563). – gsinha