mam klucza publicznego RSA w formacie + PKCS PEM # 1 (chyba):Jak odczytać klucza publicznego RSA w PEM + PKCS # 1 format
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAJNrHWRFgWLqgzSmLBq2G89exgi/Jk1NWhbFB9gHc9MLORmP3BOCJS9k
onzT/+Dk1hdZf00JGgZeuJGoXK9PX3CIKQKRQRHpi5e1vmOCrmHN5VMOxGO4d+zn
JDEbNHODZR4HzsSdpQ9SGMSx7raJJedEIbr0IP6DgnWgiA7R1mUdAgMBAAE=
-----END RSA PUBLIC KEY-----
Chcę uzyskać SHA1 z jego kodowana ASN1 wersja w Pythonie. Pierwszym krokiem powinno być przeczytanie tego klucza, ale nie udało mi się to zrobić w PyCrypto:
>> from Crypto.PublicKey import RSA
>> RSA.importKey(my_key)
ValueError: RSA key format is not supported
documentation of PyCrypto mówi PEM + PKCS # 1 jest obsługiwany, więc jestem zdezorientowany. Próbowałem też M2Crypto, ale okazało się, że M2Crypto nie obsługuje PKCS # 1, a jedynie X.509.
To jest generowany poprzez PEM_write_bio_RSAPublicKey w OpenSSL. Uważam, że jest to poprawny klucz PEM i udało mi się go odczytać za pomocą python-rsa. –
Począwszy od wersji 2.6, PyCrypto może importować również obiekty kluczy RsaPublic, więc powyższy kod nie jest już potrzebny. – SquareRootOfTwentyThree
Używając Pythona 3, dekodowanie ASN1 zwraca bajty, podczas gdy 'construct' wymaga ints. Która kolejność bajtów jest używana? –