/** * Attempt to decrypt by resolving the decryption key by first resolving EncryptedKeys, and using the KEK credential * resolver to resolve the key decryption for each. * * @param encryptedData the encrypted data to decrypt * @param algorithm the algorithm of the key to be decrypted * @return the decrypted document fragment, or null if decryption key could not be resolved or decryption failed */ private DocumentFragment decryptUsingResolvedEncryptedKey(EncryptedData encryptedData, String algorithm) { if (encKeyResolver != null) { for (EncryptedKey encryptedKey : encKeyResolver.resolve(encryptedData)) { try { Key decryptedKey = decryptKey(encryptedKey, algorithm); return decryptDataToDOM(encryptedData, decryptedKey); } catch (DecryptionException e) { String msg = "Attempt to decrypt EncryptedData using key extracted from EncryptedKey failed: "; log.debug(msg, e); continue; } } } return null; }
/** * Attempt to decrypt by resolving the decryption key by first resolving EncryptedKeys, and using the KEK credential * resolver to resolve the key decryption for each. * * @param encryptedData the encrypted data to decrypt * @param algorithm the algorithm of the key to be decrypted * @return the decrypted document fragment, or null if decryption key could not be resolved or decryption failed */ private DocumentFragment decryptUsingResolvedEncryptedKey(EncryptedData encryptedData, String algorithm) { if (encKeyResolver != null) { for (EncryptedKey encryptedKey : encKeyResolver.resolve(encryptedData)) { try { Key decryptedKey = decryptKey(encryptedKey, algorithm); return decryptDataToDOM(encryptedData, decryptedKey); } catch (DecryptionException e) { String msg = "Attempt to decrypt EncryptedData using key extracted from EncryptedKey failed: "; log.debug(msg, e); continue; } } } return null; }
/** * Attempt to decrypt by resolving the decryption key using the standard credential resolver. * * @param encryptedData the encrypted data to decrypt * @return the decrypted document fragment, or null if decryption key could not be resolved or decryption failed */ private DocumentFragment decryptUsingResolvedKey(EncryptedData encryptedData) { if (resolver != null) { CriteriaSet criteriaSet = buildCredentialCriteria(encryptedData, resolverCriteria); try { for (Credential cred : resolver.resolve(criteriaSet)) { try { return decryptDataToDOM(encryptedData, SecurityHelper.extractDecryptionKey(cred)); } catch (DecryptionException e) { String msg = "Decryption attempt using credential from standard KeyInfo resolver failed: "; log.debug(msg, e); continue; } } } catch (SecurityException e) { log.error("Error resolving credentials from EncryptedData KeyInfo", e); } } return null; }
/** * Attempt to decrypt by resolving the decryption key using the standard credential resolver. * * @param encryptedData the encrypted data to decrypt * @return the decrypted document fragment, or null if decryption key could not be resolved or decryption failed */ private DocumentFragment decryptUsingResolvedKey(EncryptedData encryptedData) { if (resolver != null) { CriteriaSet criteriaSet = buildCredentialCriteria(encryptedData, resolverCriteria); try { for (Credential cred : resolver.resolve(criteriaSet)) { try { return decryptDataToDOM(encryptedData, SecurityHelper.extractDecryptionKey(cred)); } catch (DecryptionException e) { String msg = "Decryption attempt using credential from standard KeyInfo resolver failed: "; log.debug(msg, e); continue; } } } catch (SecurityException e) { log.error("Error resolving credentials from EncryptedData KeyInfo", e); } } return null; }
List<XMLObject> xmlObjects = new LinkedList<XMLObject>(); DocumentFragment docFragment = decryptDataToDOM(encryptedData);
List<XMLObject> xmlObjects = new LinkedList<XMLObject>(); DocumentFragment docFragment = decryptDataToDOM(encryptedData);