2013-08-01 14 views
10

SignedJwtAssertionCredentials na AppEngine (z pycrypto 2.6) nie obsługuje formatu PKCS12, dlatego staram się zamiast użyć klawiszy PEM, jak sugeruje wszędzie ..SignedJwtAssertionCredentials na AppEngine nie rozpoznaje PEM kluczowych

jest to mój kod:

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) 

i KEY_FILE jest kluczowym PEM, przeliczone z poleceniem:

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

ale ja wciąż dostać ten błąd, a s jeśli nie uznają, że jest to klucz 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. 

sam błąd, gdy przechodzę tylko nazwę pliku do konstruktora (bez czytania zawartości pliku)

jakiś pomysł?

Odpowiedz

17

Tak, błąd jest bardzo mylący. To, co robisz, jest w porządku; po prostu usunąć nagłówek z pliku PEM tak, że zaczyna się -----BEGIN PRIVATE KEY----- lub uruchom następującą komendę nad nim:

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

mam podobny problem i próbowałem swoje rozwiązanie zbyt ale dostaję nowy błąd. Czy masz rozwiązanie? Sprawdź [PyCrypto Errors z plikiem x.p12 z Google Developer Console] (http://stackoverflow.com/q/25571504/1443563) – gsinha

6

dla zainteresowanych, skończyło się na kompilacji krótki tutorial jak używać API Google+ domen python na App Engine, można go znaleźć tutaj: https://gist.github.com/vircheck/6292176

To również zastosowanie do innych interfejsów API opartych na rachunkach usług, takich jak napęd API etc ..

+0

Mam podobny problem i próbowałem Twojego rozwiązania, ale otrzymuję nowy błąd. Czy masz rozwiązanie? Sprawdź [PyCrypto Errors z plikiem x.p12 z Google Developer Console] (http://stackoverflow.com/q/25571504/1443563) – gsinha

Powiązane problemy