Update JWKSetKeyStore.java

This commit is contained in:
MaxKey 2023-02-02 11:51:22 +08:00
parent c0df0c9d76
commit 6caa5a02f4

View File

@ -142,46 +142,54 @@ public class JWKSetKeyStore {
public String toString(String mediaType){ public String toString(String mediaType){
StringBuffer metaDataString = new StringBuffer(""); StringBuffer metaDataString = new StringBuffer("");
if(StringUtils.isNotBlank(mediaType) && mediaType.equalsIgnoreCase("XML")) { //RSA Only
metaDataString.append("<RSAKeyValue>").append("\n"); if(jwkSet.getKeys().get(0).getKeyType().getValue().equalsIgnoreCase("RSA")) {
for(JWK jwk : jwkSet.getKeys()) {
RSAKey rsaKey = jwk.toRSAKey(); if(StringUtils.isNotBlank(mediaType) && mediaType.equalsIgnoreCase("XML")) {
PublicKey publicKey;
try { metaDataString.append("<RSAKeyValue>").append("\n");
publicKey = rsaKey.toPublicKey(); for(JWK jwk : jwkSet.getKeys()) {
metaDataString.append("<Modulus>").append("\n"); RSAKey rsaKey = jwk.toRSAKey();
metaDataString.append(RSAUtils.getPublicKeyPEM(publicKey.getEncoded())); PublicKey publicKey;
metaDataString.append("</Modulus>").append("\n"); try {
//keyID publicKey = rsaKey.toPublicKey();
metaDataString.append("<Algorithm>"); metaDataString.append("<Modulus>").append("\n");
metaDataString.append(rsaKey.getAlgorithm()); metaDataString.append(RSAUtils.getPublicKeyPEM(publicKey.getEncoded()));
metaDataString.append("</Algorithm>").append("\n"); metaDataString.append("</Modulus>").append("\n");
//keyID
metaDataString.append("<KeyID>"); metaDataString.append("<Algorithm>");
metaDataString.append(rsaKey.getKeyID()); metaDataString.append(rsaKey.getAlgorithm());
metaDataString.append("</KeyID>").append("\n"); metaDataString.append("</Algorithm>").append("\n");
metaDataString.append("<KeyType>"); metaDataString.append("<KeyID>");
metaDataString.append(rsaKey.getKeyType()); metaDataString.append(rsaKey.getKeyID());
metaDataString.append("</KeyType>").append("\n"); metaDataString.append("</KeyID>").append("\n");
metaDataString.append("<Format>"); metaDataString.append("<KeyType>");
metaDataString.append(publicKey.getFormat()); metaDataString.append(rsaKey.getKeyType());
metaDataString.append("</Format>"); metaDataString.append("</KeyType>").append("\n");
metaDataString.append("<PublicExponent>"); metaDataString.append("<Format>");
metaDataString.append(rsaKey.getPublicExponent()); metaDataString.append(publicKey.getFormat());
metaDataString.append("</PublicExponent>").append("\n"); metaDataString.append("</Format>");
} catch (JOSEException e) {
_logger.error("JOSEException ", mediaType); metaDataString.append("<PublicExponent>");
metaDataString.append(rsaKey.getPublicExponent());
metaDataString.append("</PublicExponent>").append("\n");
} catch (JOSEException e) {
_logger.error("JOSEException ", mediaType);
}
} }
metaDataString.append("</RSAKeyValue>");
}else {
//RSA Only
metaDataString.append(PrettyFactory.getJsonPretty().format(
jwkSet.toPublicJWKSet().toString()));
} }
metaDataString.append("</RSAKeyValue>");
}else { }else {
metaDataString.append(PrettyFactory.getJsonPretty().format( metaDataString.append("RSA Only");
jwkSet.toPublicJWKSet().toString()));
} }
return metaDataString.toString(); return metaDataString.toString();
} }
} }