微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 JSON 网络密钥生成 jose4j EllipticCurveJsonWebKey

如何解决如何从 JSON 网络密钥生成 jose4j EllipticCurveJsonWebKey

我能够按照 https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples 创建 JWE。 问题:无法使用 json web key 创建 JWE(如下所述的 EC 类型)。

要求:创建并验证以下 JWE 类型

  "typ": "JWT","alg": "ECDH-ES+A256KW","enc": "A128CBC-HS256",

我想避免EcJwkGenerator.generateJwk(EllipticCurves.P256);

EllipticCurveJsonWebKey senderJwk = EcJwkGenerator.generateJwk(EllipticCurves.P256);
    

我可以从 json web key 创建 EllipticCurveJsonWebKey 吗?

这是 json 网络密钥:

{
  "kty":"EC","d":"648B3L4cIM8oMDPshuo3jeV5nd8XjMp3bVDjMQgXqhE","use":"enc","crv":"P-256","x":"w_UdBacxbKLLMbdvFaHWRK-O-GdnaBkRPtPaCQWcV44","y":"tHYH0m2uHIFNotcTJxwDLyykUtVHHd8XSXlFwyxJXNQ"
}

解决方法

https://bitbucket.org/b_c/jose4j/wiki/JWS%20Examples#markdown-header-using-the-rfc-7797-jws-unencoded-payload-option 中的第一件事有这个例子:

    // The public/private key pair for this example as a JWK
    PublicJsonWebKey jwk = PublicJsonWebKey.Factory.newPublicJwk("{" +
            "  \"kty\": \"EC\"," +
            "  \"d\": \"Tk7qzHNnSBMioAU7NwZ9JugFWmWbUCyzeBRjVcTp_so\"," +
            "  \"use\": \"sig\"," +
            "  \"crv\": \"P-256\"," +
            "  \"kid\": \"example\"," +
            "  \"x\": \"qqeGjWmYZU5M5bBrRw1zqZcbPunoFVxsfaa9JdA0R5I\"," +
            "  \"y\": \"wnoj0YjheNP80XYh1SEvz1-wnKByEoHvb6KrDcjMuWc\"" +
            "}"); 

我确实希望您发布的 JWK 只是一个示例。它具有私钥,即 d 参数,该参数应该保密。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。