public class WSSecEncryptedKey extends WSSecBase
EncryptedKey has to be used to sign and encrypt the message In
such a situation this builder will add the EncryptedKey to the
security header and we can use the information form the builder to provide to
other builders to reference to the token| Modifier and Type | Field and Description |
|---|---|
protected Document |
document |
protected byte[] |
encryptedEphemeralKey
Encrypted bytes of the ephemeral key
|
protected SecretKey |
symmetricKey
Symmetric key used in the EncryptedKey.
|
attachmentCallbackHandler, callbackLookup, doDebug, keyIdentifierType, password, storeBytesInAttachment, user| Constructor and Description |
|---|
WSSecEncryptedKey() |
| Modifier and Type | Method and Description |
|---|---|
void |
appendBSTElementToHeader(WSSecHeader secHeader)
Append the BinarySecurityToken to the elements already in the Security
header.
|
void |
appendToHeader(WSSecHeader secHeader)
Append the EncryptedKey element to the elements already in the Security
header.
|
void |
clean() |
protected Element |
createCipherValue(Document doc,
Element encryptedKey) |
protected Element |
createEncryptedKey(Document doc,
String keyTransportAlgo)
Create DOM subtree for
xenc:EncryptedKey |
Element |
getBinarySecurityTokenElement() |
String |
getBSTTokenId()
Get the id of the BSt generated during
prepare(). |
Element |
getCustomEKKeyInfoElement() |
String |
getDigestAlgorithm()
Get the digest algorithm to use with the RSA-OAEP key transport algorithm.
|
byte[] |
getEncryptedEphemeralKey() |
Element |
getEncryptedKeyElement() |
byte[] |
getEphemeralKey() |
String |
getId()
Get the id generated during
prepare(). |
String |
getKeyEncAlgo() |
String |
getMGFAlgorithm()
Get the MGF algorithm to use with the RSA-OAEP key transport algorithm.
|
String |
getSymmetricEncAlgorithm()
Get the name of symmetric encryption algorithm to use.
|
SecretKey |
getSymmetricKey() |
X509Certificate |
getUseThisCert() |
boolean |
isCertSet() |
boolean |
isIncludeEncryptionToken() |
void |
prepare(Document doc,
Crypto crypto)
Prepare the ephemeralKey and the tokens required to be added to the
security header
|
protected void |
prepareInternal(SecretKey secretKey) |
protected void |
prepareInternal(SecretKey secretKey,
X509Certificate remoteCert,
Crypto crypto)
Encrypt the symmetric key data and prepare the EncryptedKey element
This method does the most work for to prepare the EncryptedKey element.
|
void |
prependBSTElementToHeader(WSSecHeader secHeader)
Prepend the BinarySecurityToken to the elements already in the Security
header.
|
void |
prependToHeader(WSSecHeader secHeader)
Prepend the EncryptedKey element to the elements already in the Security
header.
|
void |
setCustomEKKeyInfoElement(Element customEKKeyInfoElement) |
void |
setCustomEKTokenId(String customEKTokenId) |
void |
setCustomEKTokenValueType(String customEKTokenValueType) |
void |
setDigestAlgorithm(String digestAlgorithm)
Set the digest algorithm to use with the RSA-OAEP key transport algorithm.
|
void |
setDocument(Document document) |
void |
setEncKeyId(String encKeyId) |
void |
setEncryptedEphemeralKey(byte[] encryptedKey) |
void |
setEncryptedKeyElement(Element encryptedKeyElement)
Set the encrypted key element when a pre prepared encrypted key is used
|
void |
setEphemeralKey(byte[] ephemeralKey) |
void |
setIncludeEncryptionToken(boolean includeEncryptionToken) |
void |
setKeyEncAlgo(String keyEncAlgo) |
void |
setMGFAlgorithm(String mgfAlgorithm)
Set the MGF algorithm to use with the RSA-OAEP key transport algorithm.
|
void |
setSymmetricEncAlgorithm(String algo)
Set the name of the symmetric encryption algorithm to use.
|
void |
setSymmetricKey(SecretKey key)
Set the symmetric key to be used for encryption
|
void |
setUserInfo(String user)
Set the user name to get the encryption certificate.
|
void |
setUseThisCert(X509Certificate cert)
Set the X509 Certificate to use for encryption.
|
getIdAllocator, getKeyIdentifierType, getParts, setAttachmentCallbackHandler, setBodyID, setCallbackLookup, setIdAllocator, setKeyIdentifierType, setStoreBytesInAttachment, setUserInfo, setWsuIdprotected Document document
protected byte[] encryptedEphemeralKey
protected SecretKey symmetricKey
public void setUserInfo(String user)
user - public String getId()
prepare().
Returns the the value of wsu:Id attribute of the EncryptedKey element.prepare()
was not called before.public void clean()
public void prepare(Document doc, Crypto crypto) throws WSSecurityException
doc - The SOAP envelope as Documentcrypto - An instance of the Crypto API to handle keystore and certificatesWSSecurityExceptionprotected void prepareInternal(SecretKey secretKey, X509Certificate remoteCert, Crypto crypto) throws WSSecurityException
secretKey - The symmetric keyremoteCert - The certificate that contains the public key to encrypt the
symmetric key datacrypto - An instance of the Crypto API to handle keystore and certificatesWSSecurityExceptionprotected void prepareInternal(SecretKey secretKey) throws WSSecurityException
WSSecurityExceptionprotected Element createEncryptedKey(Document doc, String keyTransportAlgo)
xenc:EncryptedKeydoc - the SOAP envelope parent documentkeyTransportAlgo - specifies which algorithm to use to encrypt the symmetric keyxenc:EncryptedKey elementpublic void prependToHeader(WSSecHeader secHeader)
prepare(). This
allows to insert the EncryptedKey element at any position in the Security
header.secHeader - The security header that holds the Signature element.public void appendToHeader(WSSecHeader secHeader)
prepare(). This
allows to insert the EncryptedKey element at any position in the Security
header.secHeader - The security header that holds the Signature element.public void prependBSTElementToHeader(WSSecHeader secHeader)
prepare(). This
allows to insert the BST element at any position in the Security header.secHeader - The security header that holds the BST element.public void appendBSTElementToHeader(WSSecHeader secHeader)
prepare(). This
allows to insert the BST element at any position in the Security header.secHeader - The security header that holds the BST element.public byte[] getEphemeralKey()
public void setUseThisCert(X509Certificate cert)
DirectReference then use this certificate to get the
public key for encryption.cert - is the X509 certificate to use for encryptionpublic X509Certificate getUseThisCert()
public Element getEncryptedKeyElement()
public void setEncryptedKeyElement(Element encryptedKeyElement)
encryptedKeyElement - EncryptedKey element of the encrypted key usedpublic Element getBinarySecurityTokenElement()
public void setKeyEncAlgo(String keyEncAlgo)
public String getKeyEncAlgo()
public void setEphemeralKey(byte[] ephemeralKey)
ephemeralKey - The ephemeralKey to set.public String getBSTTokenId()
prepare().public void setDocument(Document document)
document - The document to set.public void setEncKeyId(String encKeyId)
encKeyId - The encKeyId to set.public boolean isCertSet()
public byte[] getEncryptedEphemeralKey()
public void setEncryptedEphemeralKey(byte[] encryptedKey)
public void setCustomEKTokenValueType(String customEKTokenValueType)
public void setCustomEKTokenId(String customEKTokenId)
public void setSymmetricEncAlgorithm(String algo)
algo - Is the name of the encryption algorithmWSS4JConstants.TRIPLE_DES,
WSS4JConstants.AES_128,
WSS4JConstants.AES_192,
WSS4JConstants.AES_256public String getSymmetricEncAlgorithm()
WSS4JConstants.TRIPLE_DES,
WSS4JConstants.AES_128,
WSS4JConstants.AES_192,
WSS4JConstants.AES_256public void setDigestAlgorithm(String digestAlgorithm)
digestAlgorithm - the digest algorithm to use with the RSA-OAEP key transport algorithmpublic String getDigestAlgorithm()
public void setMGFAlgorithm(String mgfAlgorithm)
mgfAlgorithm - the MGF algorithm to use with the RSA-OAEP key transport algorithmpublic String getMGFAlgorithm()
public SecretKey getSymmetricKey()
public void setSymmetricKey(SecretKey key)
key - public boolean isIncludeEncryptionToken()
public void setIncludeEncryptionToken(boolean includeEncryptionToken)
public Element getCustomEKKeyInfoElement()
public void setCustomEKKeyInfoElement(Element customEKKeyInfoElement)
Copyright © 2016 JBoss by Red Hat. All rights reserved.