2013-08-01 12 views
10

SignedJwtAssertionCredentials su AppEngine (con pycrypto 2.6) non supporta il formato PKCS12, quindi sto cercando di utilizzare i tasti PEM, invece, come suggerito in tutto il mondo ..SignedJwtAssertionCredentials su AppEngine non riconosce PEM chiave

questo è il mio codice:

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) 

ed il KEY_FILE è una chiave PEM, convertito con il comando:

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

ma ancora ottengo questo errore, un s se non ha riconosciuto che è una chiave PEM:

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. 

stesso errore se mi passate solo il nome del file al costruttore (senza leggere il contenuto del file)

qualche idea?

risposta

17

Sì, l'errore è estremamente fuorviante. Quello che stai facendo va bene; è sufficiente rimuovere l'intestazione dal file PEM in modo che inizia con -----BEGIN PRIVATE KEY-----, o eseguire il seguente comando su di esso:

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

ho un problema simile e ho provato la soluzione troppo ma sto ottenendo un nuovo errore. hai una soluzione? Controlla [Errori PyCrypto con il file x.p12 dalla Google Developer Console] (http://stackoverflow.com/q/25571504/1443563) – gsinha

6

per chi fosse interessato, ho finito per la compilazione di un breve tutorial su come utilizzare le API di Google+ Domini con Python su App Engine, è possibile trovare qui: https://gist.github.com/vircheck/6292176

e 'applicabile anche ad altre API basate su account di servizio, ad esempio l'unità API ecc ..

+0

Ho un problema simile e ho provato anche tu la tua soluzione, ma sto ricevendo un nuovo errore. hai una soluzione? Controlla [Errori PyCrypto con il file x.p12 dalla Google Developer Console] (http://stackoverflow.com/q/25571504/1443563) – gsinha

Problemi correlati