0

Python で RSA-256 の公開鍵を読み込もうとしています。

public_key=Out[24]: '-----BEGIN CERTIFICATE-----\nMIIEYTCCA0mgAwIBAgIOAXdD+6OnAAAAACcBwuUwDQYJKoZIhvcNAQELBQAweTER\nMA8GA1UEAwwIQWxkZXJhYW4xGDAWBgNVBAsMDzAwRDBDMDAwMDAwOGV6UDEXMBUG\nA1UECgwOU2FsZXNmb3JjZS5jb20xFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xCzAJ\nBgNVBAgMAkNBMQwwCgYDVQQGEwNVU0EwHhcNMjEwMTI3MTMxNTAwWhcNMjIwMTI3\nMTIwMDAwWjB5MREwDwYDVQQDDAhBbGRlcmFhbjEYMBYGA1UECwwPMDBEMEMwMDAw\nMDA4ZXpQMRcwFQYDVQQKDA5TYWxlc2ZvcmNlLmNvbTEWMBQGA1UEBwwNU2FuIEZy\nYW5jaXNjbzELMAkGA1UECAwCQ0ExDDAKBgNVBAYTA1VTQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAN0KKolUflB1/wZDnFScGkFf1SkoeuOFPw+UURCz\nc8tPLOLPLIt/qkUBt5X8ptCVuWfIoscrj4my25xW9c21d4cxTM7wlUDunoH2lohu\n4KbrpOoGJ0HelsPV9BV3RKuj/hDsypS5StW1RLUZYBOUFRQaQPB7drb1KUYqUV1q\nXbf/gWm9TGq5vQS29LZYDgW+T+6xBGltqNtlNAPRUbShQUsmTizZM8v54zbtSjaP\nWHdZ4S1VWqSt+03JRobEIMBHr2L2otsAXOBfaBUqVkGDi8b1YynBOa0A+6cogq9x\nb3xH6fW+RTvTyA9VkptcFfWO+ePOTqkR+f8ObhO1if94c50CAwEAAaOB5jCB4zAd\nBgNVHQ4EFgQUMj3VA9/H7zXx8UsOCAuQuRQGLkswDwYDVR0TAQH/BAUwAwEB/zCB\nsAYDVR0jBIGoMIGlgBQyPdUD38fvNfHxSw4IC5C5FAYuS6F9pHsweTERMA8GA1UE\nAwwIQWxkZXJhYW4xGDAWBgNVBAsMDzAwRDBDMDAwMDAwOGV6UDEXMBUGA1UECgwO\nU2FsZXNmb3JjZS5jb20xFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xCzAJBgNVBAgM\nAkNBMQwwCgYDVQQGEwNVU0GCDgF3Q/ujpwAAAAAnAcLlMA0GCSqGSIb3DQEBCwUA\nA4IBAQDPkaJgi7mqMmhwz7x7q7LssZiuuenYMzFWewry6SZmjqZwLWvxhSWLmog9\nkeNQH7nAbI+6KrMHJ36LPJdD+zbNYQaz8S9qW8HBVOap/J6wKYOC6h/dtKLcfmbt\nZlCyCy6SJv0mDQyxMVyq6gybjRrBnNcoy/hTAEQNhmHL6aZ7E2/eX/EOD1Y1EHWl\nmFqmtpST36F9Y2WaYpKVwBPcZqcwxPpGrJ95FfxR+kkA84Ke3SZ/RHHkZzexcOOR\n5YLaIZf9sVzslSsLrt6uaFMQOdTT5kY1CvCMHaw3j/kDrIpladwyfzhmVgUVx1D3\nxF5JnmOe6qhhyPwRMg7Myw7KIfF5\n-----END CERTIFICATE-----'

encoded = <my jwt token>
import jwt
decoded = jwt.decode(encoded, public_key, algorithms=["RS256"])

これにより、次のエラーが発生しました。

ValueError: Could not deserialize key data.

そこで、別の方法で公開鍵をロードしようとしました。

from Crypto.PublicKey import RSA
pub_key = RSA.importKey(public_key)

発生した:

ValueError: RSA key format is not supported

また、バイナリ(b'----- ...)にロードして試してみると、同じエラーが発生します

アップデート:

pycryptodome で RSA オブジェクトを作成できました:

from Crypto.PublicKey.RSA import import_key
key = import_key(public_key)

しかし、実行時:

decoded = jwt.decode(encoded, key, algorithms=["RS256"])

私は得ています:

TypeError: Expecting a PEM-formatted key.
4

0 に答える 0