9

RFC 7516によれば、JWE と呼ばれるペイロード/クレームを暗号化できるはずです。

それをサポートするpythonライブラリはありますか?

PyJWT、python-jose、および jwcrypto を確認しましたが、それらはすべてHS256(JWS) で署名するための例を示しているだけです。

これがまったく明白である場合は申し訳ありませんが、暗号に関連することになると、私は特に慎重になります.

4

2 に答える 2

12

Jose ライブラリと jwcrypto ライブラリの両方で JWE を実行できます。

ホセの場合:

claims = {
'iss': 'http://www.example.com',
'sub': 42,
}
pubKey = {'k':\
           '-----BEGIN PUBLIC KEY-----\n\
-----END PUBLIC KEY-----'
    }
# decrypt on the other end using the private key
privKey = {'k': 
    '-----BEGIN RSA PRIVATE KEY-----\n'+\
'-----END RSA PRIVATE KEY-----'
}

encJwt = jose.encrypt(claims, pubKey)
serJwt = jose.serialize_compact(encJwt)
decJwt = jose.decrypt(jose.deserialize_compact(serJwt), privKey)

jwcryptoの場合:

# algorithm to use
eprot = {'alg': "RSA-OAEP", 'enc': "A128CBC-HS256"}
stringPayload = u'attack at dawn'
E = jwe.JWE(stringPayload, json_encode(eprot))
E.add_recipient(pubKey)
encrypted_token = E.serialize(compact=True)
E = jwe.JWE()
E.deserialize(encrypted_token, key=privKey)
decrypted_payload = E.payload
于 2016-11-19T18:33:08.653 に答える