首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从jose4j中的X.509 PEM证书生成JWK?

如何从jose4j中的X.509 PEM证书生成JWK?
EN

Stack Overflow用户
提问于 2022-06-29 09:13:51
回答 1查看 360关注 0票数 1

我正在尝试从jose4j中的X.509 PEM证书中生成JWK,但我没有得到任何类似的线索。

我已经用nimbus jose+jwt库实现了这一点,有人能帮我完成jose4j的等价代码吗?

代码片段用于nimbus jose+jwt :

代码语言:javascript
复制
try {
      jwk1 = (RSAKey) JWK.parseFromPEMEncodedX509Cert(certificateString);
      Map<String, Object> jwkMap = jwk1.toJSONObject();
      jwkMap.put("use", "enc");
      jwkMap.put("alg", "RSA-OAEP-256");
      jwk1 = (RSAKey) JWK.parse(jwkMap);
    } catch (JOSEException ex) {
      log.error("Exception while creating JWK from X.509 certificate : {}", ex.getMessage());
    }
EN

回答 1

Stack Overflow用户

发布于 2022-06-30 13:13:02

下面是一些大致相同的示例代码:

代码语言:javascript
复制
   String pemCert =
       "MIIC2jCCAkMCAg38MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\n" +
       "A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\n" +
       "MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\n" +
       "YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\n" +
       "ODIyMDUyNzQxWhcNMTcwODIxMDUyNzQxWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\n" +
       "CAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\n" +
       "ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0z9FeMynsC8+u\n" +
       "dvX+LciZxnh5uRj4C9S6tNeeAlIGCfQYk0zUcNFCoCkTknNQd/YEiawDLNbxBqut\n" +
       "bMDZ1aarys1a0lYmUeVLCIqvzBkPJTSQsCopQQ9V8WuT252zzNzs68dVGNdCJd5J\n" +
       "NRQykpwexmnjPPv0mvj7i8XgG379TyW6P+WWV5okeUkXJ9eJS2ouDYdR2SM9BoVW\n" +
       "+FgxDu6BmXhozW5EfsnajFp7HL8kQClI0QOc79yuKl3492rH6bzFsFn2lfwWy9ic\n" +
       "7cP8EpCTeFp1tFaD+vxBhPZkeTQ1HKx6hQ5zeHIB5ySJJZ7af2W8r4eTGYzbdRW2\n" +
       "4DDHCPhZAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAQMv+BFvGdMVzkQaQ3/+2noVz\n" +
       "/uAKbzpEL8xTcxYyP3lkOeh4FoxiSWqy5pGFALdPONoDuYFpLhjJSZaEwuvjI/Tr\n" +
       "rGhLV1pRG9frwDFshqD2Vaj4ENBCBh6UpeBop5+285zQ4SI7q4U9oSebUDJiuOx6\n" +
       "+tZ9KynmrbJpTSi0+BM=";

    X509Util x509Util = new X509Util();
    X509Certificate x509Certificate = x509Util.fromBase64Der(pemCert);

    // create the JWK object with the public key from the cert
    PublicJsonWebKey jwk = PublicJsonWebKey.Factory.newPublicJwk(x509Certificate.getPublicKey());

    // sets the cert on the JWK object, which will be output in the x5c parameter
    jwk.setCertificateChain(x509Certificate);

    jwk.setUse(Use.ENCRYPTION);
    jwk.setAlgorithm(KeyManagementAlgorithmIdentifiers.RSA_OAEP_256);

    System.out.println(jwk.toJson(JsonWebKey.OutputControlLevel.PUBLIC_ONLY));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72798809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档