Class XMLEncryptionUtil
java.lang.Object
org.keycloak.saml.processing.core.util.XMLEncryptionUtil
Utility for XML Encryption Note: This utility is currently using Apache XML Security library API. JSR-106 is
not yet
final. Until that happens,we rely on the non-standard API.
- Since:
- May 4, 2009
- Author:
- Anil.Saldhana@redhat.com
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Element
decryptElementInDocument
(Document documentWithEncryptedElement, XMLEncryptionUtil.DecryptionKeyLocator decryptionKeyLocator) Decrypts an encrypted element inside a document.static void
encryptElement
(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo) static void
encryptElement
(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo, String keyEncryptionAlgorithm) static void
encryptElement
(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo, String keyEncryptionAlgorithm, String keyEncryptionDigestMethod, String keyEncryptionMgfAlgorithm) Given an element in a Document, encrypt the element and replace the element in the document with the encrypted data
-
Field Details
-
DS_KEY_INFO
- See Also:
-
-
Constructor Details
-
XMLEncryptionUtil
public XMLEncryptionUtil()
-
-
Method Details
-
encryptElement
public static void encryptElement(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo) throws ProcessingException - Throws:
ProcessingException
-
encryptElement
public static void encryptElement(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo, String keyEncryptionAlgorithm) throws ProcessingException - Throws:
ProcessingException
-
encryptElement
public static void encryptElement(QName elementQName, Document document, PublicKey publicKey, SecretKey secretKey, int keySize, QName wrappingElementQName, boolean addEncryptedKeyInKeyInfo, String keyEncryptionAlgorithm, String keyEncryptionDigestMethod, String keyEncryptionMgfAlgorithm) throws ProcessingException Given an element in a Document, encrypt the element and replace the element in the document with the encrypted data- Parameters:
elementQName
- QName of the element that we like to encryptdocument
- The document with the element to encryptpublicKey
- The public Key to wrap the secret keysecretKey
- The secret key to use for encryptionkeySize
- The size of the public keywrappingElementQName
- A QName of an element that will wrap the encrypted elementaddEncryptedKeyInKeyInfo
- Need for the EncryptedKey to be placed in ds:KeyInfokeyEncryptionAlgorithm
- The wrap algorithm for the secret key (can be null, default is used depending the publicKey type)keyEncryptionDigestMethod
- An optional digestMethod to use (can be null)keyEncryptionMgfAlgorithm
- The xenc11 MGF Algorithm to use (can be null)- Throws:
ProcessingException
-
decryptElementInDocument
public static Element decryptElementInDocument(Document documentWithEncryptedElement, XMLEncryptionUtil.DecryptionKeyLocator decryptionKeyLocator) throws ProcessingException Decrypts an encrypted element inside a document. It tries to use all keys provided bydecryptionKeyLocator
and if it does not succeed it throwsProcessingException
.- Parameters:
documentWithEncryptedElement
- document containing encrypted elementdecryptionKeyLocator
- decryption key locator- Returns:
- the document with the encrypted element replaced by the data element
- Throws:
ProcessingException
- when decrypting was not successful
-