|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.xml.security.utils.ElementProxy
org.apache.xml.security.utils.SignatureElementProxy
org.apache.xml.security.signature.XMLSignature
Handles <ds:Signature>
elements.
This is the main class that deals with creating and verifying signatures.
There are 2 types of constructors for this class. The ones that take a document, baseURI and 1 or more Java Objects. This is mostly used for signing purposes. The other constructor is the one that takes a DOM Element and a BaseURI. This is used mostly with for verifying, when you have a SignatureElement. There are a few different types of methods:
Field Summary | |
static java.lang.String |
ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5
HMAC - NOT Recommended HMAC-MD5 |
static java.lang.String |
ALGO_ID_MAC_HMAC_RIPEMD160
HMAC - Optional HMAC-RIPEMD160 |
static java.lang.String |
ALGO_ID_MAC_HMAC_SHA1
MAC - Required HMAC-SHA1 |
static java.lang.String |
ALGO_ID_MAC_HMAC_SHA256
HMAC - Optional HMAC-SHA256 |
static java.lang.String |
ALGO_ID_MAC_HMAC_SHA384
HMAC - Optional HMAC-SHA284 |
static java.lang.String |
ALGO_ID_MAC_HMAC_SHA512
HMAC - Optional HMAC-SHA512 |
static java.lang.String |
ALGO_ID_SIGNATURE_DSA
Signature - Required DSAwithSHA1 (DSS) |
static java.lang.String |
ALGO_ID_SIGNATURE_ECDSA_SHA1
Signature - Optional ECDSAwithSHA1 |
static java.lang.String |
ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5
Signature - NOT Recommended RSAwithMD5 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA
Signature - Recommended RSAwithSHA1 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA_RIPEMD160
Signature - Optional RSAwithRIPEMD160 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA_SHA1
Signature - Recommended RSAwithSHA1 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA_SHA256
Signature - Optional RSAwithSHA256 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA_SHA384
Signature - Optional RSAwithSHA384 |
static java.lang.String |
ALGO_ID_SIGNATURE_RSA_SHA512
Signature - Optional RSAwithSHA512 |
Fields inherited from class org.apache.xml.security.utils.ElementProxy |
_baseURI, _constructionElement, _doc |
Constructor Summary | |
XMLSignature(org.w3c.dom.Document doc,
java.lang.String BaseURI,
org.w3c.dom.Element SignatureMethodElem,
org.w3c.dom.Element CanonicalizationMethodElem)
Creates a XMLSignature in a Document |
|
XMLSignature(org.w3c.dom.Document doc,
java.lang.String BaseURI,
java.lang.String SignatureMethodURI)
This creates a new ds:Signature Element and adds an empty
ds:SignedInfo . |
|
XMLSignature(org.w3c.dom.Document doc,
java.lang.String BaseURI,
java.lang.String SignatureMethodURI,
int HMACOutputLength)
Constructor XMLSignature |
|
XMLSignature(org.w3c.dom.Document doc,
java.lang.String BaseURI,
java.lang.String SignatureMethodURI,
int HMACOutputLength,
java.lang.String CanonicalizationMethodURI)
Constructor XMLSignature |
|
XMLSignature(org.w3c.dom.Document doc,
java.lang.String BaseURI,
java.lang.String SignatureMethodURI,
java.lang.String CanonicalizationMethodURI)
Constructor XMLSignature |
|
XMLSignature(org.w3c.dom.Element element,
java.lang.String BaseURI)
This will parse the element and construct the Java Objects. |
Method Summary | |
void |
addDocument(java.lang.String referenceURI)
Add a Reference with just this URI. |
void |
addDocument(java.lang.String referenceURI,
Transforms trans)
Adds a Reference with just the URI and the transforms. |
void |
addDocument(java.lang.String referenceURI,
Transforms trans,
java.lang.String digestURI)
This method is a proxy method for the Manifest.addDocument(java.lang.String, java.lang.String, org.apache.xml.security.transforms.Transforms, java.lang.String, java.lang.String, java.lang.String) method. |
void |
addDocument(java.lang.String referenceURI,
Transforms trans,
java.lang.String digestURI,
java.lang.String ReferenceId,
java.lang.String ReferenceType)
Add a Reference with full parameters to this Signature |
void |
addKeyInfo(java.security.PublicKey pk)
Add this public key to the KeyInfo. |
void |
addKeyInfo(java.security.cert.X509Certificate cert)
Add an X509 Certificate to the KeyInfo. |
void |
addResourceResolver(ResourceResolver resolver)
Adds a ResourceResolver to enable the retrieval of resources. |
void |
addResourceResolver(ResourceResolverSpi resolver)
Adds a ResourceResolverSpi to enable the retrieval of resources. |
void |
appendObject(ObjectContainer object)
Appends an Object (not a java.lang.Object but an Object
element) to the Signature. |
boolean |
checkSignatureValue(java.security.Key pk)
Verifies if the signature is valid by redigesting all References, comparing those against the stored DigestValues and then checking to see if the Signatures match on the SignedInfo. |
boolean |
checkSignatureValue(java.security.cert.X509Certificate cert)
Extracts the public key from the certificate and verifies if the signature is valid by re-digesting all References, comparing those against the stored DigestValues and then checking to see if the Signatures match on the SignedInfo. |
javax.crypto.SecretKey |
createSecretKey(byte[] secretKeyBytes)
Proxy method for SignedInfo.createSecretKey(byte[]) . |
java.lang.String |
getBaseLocalName()
Get the local name of this element |
java.lang.String |
getId()
Returns the Id attribute |
KeyInfo |
getKeyInfo()
Returns the KeyInfo child. |
ObjectContainer |
getObjectItem(int i)
Returns the i |
int |
getObjectLength()
Returns the number of all ds:Object elements. |
byte[] |
getSignatureValue()
Returns the octet value of the SignatureValue element. |
SignedInfo |
getSignedInfo()
Returns the completely parsed SignedInfo object. |
void |
setFollowNestedManifests(boolean followManifests)
Signal wether Manifest should be automatically validated. |
void |
setId(java.lang.String id)
Sets the Id attribute |
void |
sign(java.security.Key signingKey)
Digests all References in the SignedInfo, calculates the signature value and sets it in the SignatureValue Element. |
Methods inherited from class org.apache.xml.security.utils.SignatureElementProxy |
getBaseNamespace |
Methods inherited from class org.apache.xml.security.utils.ElementProxy |
addBase64Element, addBase64Text, addBigIntegerElement, addText, addTextElement, createElementForFamily, createElementForFamilyLocal, getBaseURI, getBigIntegerFromChildElement, getBytesFromChildElement, getBytesFromTextChild, getDefaultPrefix, getDefaultPrefixBindings, getDocument, getElement, getElementPlusReturns, getTextFromChildElement, getTextFromTextChild, length, setDefaultPrefix, setElement, setXPathNamespaceContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String ALGO_ID_MAC_HMAC_SHA1
public static final java.lang.String ALGO_ID_SIGNATURE_DSA
public static final java.lang.String ALGO_ID_SIGNATURE_RSA
public static final java.lang.String ALGO_ID_SIGNATURE_RSA_SHA1
public static final java.lang.String ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5
public static final java.lang.String ALGO_ID_SIGNATURE_RSA_RIPEMD160
public static final java.lang.String ALGO_ID_SIGNATURE_RSA_SHA256
public static final java.lang.String ALGO_ID_SIGNATURE_RSA_SHA384
public static final java.lang.String ALGO_ID_SIGNATURE_RSA_SHA512
public static final java.lang.String ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5
public static final java.lang.String ALGO_ID_MAC_HMAC_RIPEMD160
public static final java.lang.String ALGO_ID_MAC_HMAC_SHA256
public static final java.lang.String ALGO_ID_MAC_HMAC_SHA384
public static final java.lang.String ALGO_ID_MAC_HMAC_SHA512
public static final java.lang.String ALGO_ID_SIGNATURE_ECDSA_SHA1
Constructor Detail |
public XMLSignature(org.w3c.dom.Document doc, java.lang.String BaseURI, java.lang.String SignatureMethodURI) throws XMLSecurityException
ds:Signature
Element and adds an empty
ds:SignedInfo
.
The ds:SignedInfo
is initialized with the specified Signature
algorithm and Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS which is REQUIRED
by the spec. This method's main use is for creating a new signature.
doc
- Document in which the signature will be appended after creation.BaseURI
- URI to be used as context for all relative URIs.SignatureMethodURI
- signature algorithm to use.
XMLSecurityException
public XMLSignature(org.w3c.dom.Document doc, java.lang.String BaseURI, java.lang.String SignatureMethodURI, int HMACOutputLength) throws XMLSecurityException
doc
- BaseURI
- SignatureMethodURI
- the Signature method to be used.HMACOutputLength
-
XMLSecurityException
public XMLSignature(org.w3c.dom.Document doc, java.lang.String BaseURI, java.lang.String SignatureMethodURI, java.lang.String CanonicalizationMethodURI) throws XMLSecurityException
doc
- BaseURI
- SignatureMethodURI
- the Signature method to be used.CanonicalizationMethodURI
- the canonicalization algorithm to be
used to c14nize the SignedInfo element.
XMLSecurityException
public XMLSignature(org.w3c.dom.Document doc, java.lang.String BaseURI, java.lang.String SignatureMethodURI, int HMACOutputLength, java.lang.String CanonicalizationMethodURI) throws XMLSecurityException
doc
- BaseURI
- SignatureMethodURI
- HMACOutputLength
- CanonicalizationMethodURI
-
XMLSecurityException
public XMLSignature(org.w3c.dom.Document doc, java.lang.String BaseURI, org.w3c.dom.Element SignatureMethodElem, org.w3c.dom.Element CanonicalizationMethodElem) throws XMLSecurityException
doc
- BaseURI
- SignatureMethodElem
- CanonicalizationMethodElem
-
XMLSecurityException
public XMLSignature(org.w3c.dom.Element element, java.lang.String BaseURI) throws XMLSignatureException, XMLSecurityException
element
- ds:Signature element that contains the whole signatureBaseURI
- URI to be prepended to all relative URIs
XMLSecurityException
XMLSignatureException
- if the signature is badly formattedMethod Detail |
public void setId(java.lang.String id)
Id
attribute
id
- Id value for the id attribute on the Signature Elementpublic java.lang.String getId()
Id
attribute
Id
attributepublic SignedInfo getSignedInfo()
SignedInfo
object.
SignedInfo
object.public byte[] getSignatureValue() throws XMLSignatureException
XMLSignatureException
- If there is no contentpublic KeyInfo getKeyInfo()
public void appendObject(ObjectContainer object) throws XMLSignatureException
java.lang.Object
but an Object
element) to the Signature. Please note that this is only possible
when signing.
object
- ds:Object to be appended.
XMLSignatureException
- When this object is used to verify.public ObjectContainer getObjectItem(int i)
ith ds:Object
child of the signature
or null if no such ds:Object
element exists.
- Parameters:
i
-
- Returns:
- the
ith ds:Object
child of the signature
or null if no such ds:Object
element exists.
public int getObjectLength()
ds:Object
elements.
ds:Object
elements.public void sign(java.security.Key signingKey) throws XMLSignatureException
signingKey
- the PrivateKey
or
SecretKey
that is used to sign.
XMLSignatureException
public void addResourceResolver(ResourceResolver resolver)
ResourceResolver
to enable the retrieval of resources.
resolver
- public void addResourceResolver(ResourceResolverSpi resolver)
ResourceResolverSpi
to enable the retrieval of resources.
resolver
- public boolean checkSignatureValue(java.security.cert.X509Certificate cert) throws XMLSignatureException
cert
- Certificate that contains the public key part of the keypair
that was used to sign.
XMLSignatureException
public boolean checkSignatureValue(java.security.Key pk) throws XMLSignatureException
pk
- PublicKey
part of the keypair or
SecretKey
that was used to sign
XMLSignatureException
public void addDocument(java.lang.String referenceURI, Transforms trans, java.lang.String digestURI, java.lang.String ReferenceId, java.lang.String ReferenceType) throws XMLSignatureException
referenceURI
- URI of the resource to be signed. Can be null in
which case the dereferencing is application specific. Can be "" in which
it's the parent node (or parent document?). There can only be one "" in
each signature.trans
- Optional list of transformations to be done before digestingdigestURI
- Mandatory URI of the digesting algorithm to use.ReferenceId
- Optional id attribute for this ReferenceReferenceType
- Optional mimetype for the URI
XMLSignatureException
public void addDocument(java.lang.String referenceURI, Transforms trans, java.lang.String digestURI) throws XMLSignatureException
Manifest.addDocument(java.lang.String, java.lang.String, org.apache.xml.security.transforms.Transforms, java.lang.String, java.lang.String, java.lang.String)
method.
referenceURI
- URI according to the XML Signature specification.trans
- List of transformations to be applied.digestURI
- URI of the digest algorithm to be used.
XMLSignatureException
Manifest.addDocument(java.lang.String, java.lang.String, org.apache.xml.security.transforms.Transforms, java.lang.String, java.lang.String, java.lang.String)
public void addDocument(java.lang.String referenceURI, Transforms trans) throws XMLSignatureException
referenceURI
- URI according to the XML Signature specification.trans
- List of transformations to be applied.
XMLSignatureException
public void addDocument(java.lang.String referenceURI) throws XMLSignatureException
referenceURI
- URI according to the XML Signature specification.
XMLSignatureException
public void addKeyInfo(java.security.cert.X509Certificate cert) throws XMLSecurityException
cert
- Certificate to be included. This should be the certificate of
the key that was used to sign.
XMLSecurityException
public void addKeyInfo(java.security.PublicKey pk)
pk
- public javax.crypto.SecretKey createSecretKey(byte[] secretKeyBytes)
SignedInfo.createSecretKey(byte[])
. If you want
to create a MAC, this method helps you to obtain the
SecretKey
from octets.
secretKeyBytes
-
SignedInfo.createSecretKey(byte[])
public void setFollowNestedManifests(boolean followManifests)
followManifests
- public java.lang.String getBaseLocalName()
getBaseLocalName
in class ElementProxy
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |