gpt4 book ai didi

java - 如何使用 KeyTool 创建带有 RSA-OAEP (opensaml) 的 CSR

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:18 26 4
gpt4 key购买 nike

我非常熟悉 java keytool 命令,但我似乎不知道如何生成 OAEP 填充的 RSA 证书。我正在尝试生成一个来保护 SAML channel 。我感觉我误解了指定填充方法的工作原理。

理想情况下,我最终会得到一个使用 RSA SHA256 签名、使用 AES256 加密的 channel ,并且 key 传输算法具有 OAEP 填充。

作为一个附带问题,这可以与 opensaml 实现一起使用吗?我不明白为什么不这样做,因为它只是一个有效的 X509 证书。

keytool -genkey -alias myalias -keyalg RSA -keysize 512 -sigalg SHA256withRSA -keystore sample.jks -dname "CN=C, O=O, L=L, ST=S, C=US" -storepass changeit

最佳答案

OAEP 填充将应用于您的密文,而不是您的证书。

您的证书应使用 keytool 参数中的 SHA256。但我认为您的 SAML DSig 参数将需要 SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256

修改 OpenSaml 示例 here我认为您可以更改加密参数以使用 AES256 和 RSAOAEP:

Assertion assertion = createAssertion(); 

// Assume this contains a recipient's RSA public key
Credential keyEncryptionCredential = getKEKCredential();

EncryptionParameters encParams = new EncryptionParameters();
encParams.setAlgorithm(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256);

KeyEncryptionParameters kekParams = new KeyEncryptionParameters();
kekParams.setEncryptionCredential(keyEncryptionCredential);
kekParams.setAlgorithm(EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP);
KeyInfoGeneratorFactory kigf =
Configuration.getGlobalSecurityConfiguration()
.getKeyInfoGeneratorManager().getDefaultManager()
.getFactory(keyEncryptionCredential);
kekParams.setKeyInfoGenerator(kigf.newInstance());

Encrypter samlEncrypter = new Encrypter(encParams, kekParams);
samlEncrypter.setKeyPlacement(KeyPlacement.PEER);

关于java - 如何使用 KeyTool 创建带有 RSA-OAEP (opensaml) 的 CSR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com