org.apache.xml.security.algorithms
Class SignatureAlgorithm

java.lang.Object
  extended byorg.apache.xml.security.utils.ElementProxy
      extended byorg.apache.xml.security.utils.SignatureElementProxy
          extended byorg.apache.xml.security.algorithms.Algorithm
              extended byorg.apache.xml.security.algorithms.SignatureAlgorithm

public class SignatureAlgorithm
extends Algorithm

Allows selection of digital signature's algorithm, private keys, other security parameters, and algorithm's ID.

Author:
Christian Geuer-Pollmann

Field Summary
protected  SignatureAlgorithmSpi _signatureAlgorithm
          Field _signatureAlgorithm
 
Fields inherited from class org.apache.xml.security.utils.ElementProxy
_baseURI, _constructionElement, _doc
 
Constructor Summary
SignatureAlgorithm(org.w3c.dom.Document doc, java.lang.String algorithmURI)
          Constructor SignatureAlgorithm
SignatureAlgorithm(org.w3c.dom.Document doc, java.lang.String algorithmURI, int HMACOutputLength)
          Constructor SignatureAlgorithm
SignatureAlgorithm(org.w3c.dom.Element element, java.lang.String BaseURI)
          Constructor SignatureAlgorithm
 
Method Summary
 void clearSignatureCache()
          Clear the signature caches keysSigning and instancesSigning.
 void clearVerificationCache()
          Clear the verification caches keysVerify and instancesVerify.
 java.lang.String getBaseLocalName()
          Method getBaseLocalName
 java.lang.String getBaseNamespace()
          Method getBaseNamespace
 java.lang.String getJCEAlgorithmString()
          Proxy method for Signature.getAlgorithm() which is executed on the internal Signature object.
 java.lang.String getJCEProviderName()
          Method getJCEProviderName
 java.lang.String getURI()
          Returns the URI representation of Transformation algorithm
 void initSign(java.security.Key signingKey)
          Proxy method for Signature.initSign(java.security.PrivateKey) which is executed on the internal Signature object.
 void initSign(java.security.Key signingKey, java.security.spec.AlgorithmParameterSpec algorithmParameterSpec)
          Proxy method for Signature.initSign(java.security.PrivateKey) which is executed on the internal Signature object.
 void initSign(java.security.Key signingKey, java.security.SecureRandom secureRandom)
          Proxy method for Signature.initSign(java.security.PrivateKey, java.security.SecureRandom) which is executed on the internal Signature object.
 void initVerify(java.security.Key verificationKey)
          Proxy method for Signature.initVerify(java.security.PublicKey) which is executed on the internal Signature object.
static void providerInit()
          Initalizes for this Transform
static void register(java.lang.String algorithmURI, java.lang.String implementingClass)
          Registers implementing class of the Transform algorithm with algorithmURI
 void setParameter(java.security.spec.AlgorithmParameterSpec params)
          Proxy method for Signature.setParameter(java.security.spec.AlgorithmParameterSpec) which is executed on the internal Signature object.
 byte[] sign()
          Proxy method for Signature.sign() which is executed on the internal Signature object.
 void update(byte input)
          Proxy method for Signature.update(byte) which is executed on the internal Signature object.
 void update(byte[] input)
          Proxy method for Signature.update(byte[]) which is executed on the internal Signature object.
 void update(byte[] buf, int offset, int len)
          Proxy method for Signature.update(byte[], int, int) which is executed on the internal Signature object.
 boolean verify(byte[] signature)
          Proxy method for Signature.verify(byte[]) which is executed on the internal Signature object.
 
Methods inherited from class org.apache.xml.security.algorithms.Algorithm
getAlgorithmURI, setAlgorithmURI
 
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

_signatureAlgorithm

protected SignatureAlgorithmSpi _signatureAlgorithm
Field _signatureAlgorithm

Constructor Detail

SignatureAlgorithm

public SignatureAlgorithm(org.w3c.dom.Document doc,
                          java.lang.String algorithmURI)
                   throws XMLSecurityException
Constructor SignatureAlgorithm

Parameters:
doc -
algorithmURI -
Throws:
XMLSecurityException

SignatureAlgorithm

public SignatureAlgorithm(org.w3c.dom.Document doc,
                          java.lang.String algorithmURI,
                          int HMACOutputLength)
                   throws XMLSecurityException
Constructor SignatureAlgorithm

Parameters:
doc -
algorithmURI -
HMACOutputLength -
Throws:
XMLSecurityException

SignatureAlgorithm

public SignatureAlgorithm(org.w3c.dom.Element element,
                          java.lang.String BaseURI)
                   throws XMLSecurityException
Constructor SignatureAlgorithm

Parameters:
element -
BaseURI -
Throws:
XMLSecurityException
Method Detail

sign

public byte[] sign()
            throws XMLSignatureException
Proxy method for Signature.sign() which is executed on the internal Signature object.

Returns:
the result of the Signature.sign() method
Throws:
XMLSignatureException

getJCEAlgorithmString

public java.lang.String getJCEAlgorithmString()
Proxy method for Signature.getAlgorithm() which is executed on the internal Signature object.

Returns:
the result of the Signature.getAlgorithm() method

getJCEProviderName

public java.lang.String getJCEProviderName()
Method getJCEProviderName

Returns:
The Provider of this Signature Alogrithm

update

public void update(byte[] input)
            throws XMLSignatureException
Proxy method for Signature.update(byte[]) which is executed on the internal Signature object.

Parameters:
input -
Throws:
XMLSignatureException

update

public void update(byte input)
            throws XMLSignatureException
Proxy method for Signature.update(byte) which is executed on the internal Signature object.

Parameters:
input -
Throws:
XMLSignatureException

update

public void update(byte[] buf,
                   int offset,
                   int len)
            throws XMLSignatureException
Proxy method for Signature.update(byte[], int, int) which is executed on the internal Signature object.

Parameters:
buf -
offset -
len -
Throws:
XMLSignatureException

initSign

public void initSign(java.security.Key signingKey)
              throws XMLSignatureException
Proxy method for Signature.initSign(java.security.PrivateKey) which is executed on the internal Signature object.

Parameters:
signingKey -
Throws:
XMLSignatureException

initSign

public void initSign(java.security.Key signingKey,
                     java.security.SecureRandom secureRandom)
              throws XMLSignatureException
Proxy method for Signature.initSign(java.security.PrivateKey, java.security.SecureRandom) which is executed on the internal Signature object.

Parameters:
signingKey -
secureRandom -
Throws:
XMLSignatureException

initSign

public void initSign(java.security.Key signingKey,
                     java.security.spec.AlgorithmParameterSpec algorithmParameterSpec)
              throws XMLSignatureException
Proxy method for Signature.initSign(java.security.PrivateKey) which is executed on the internal Signature object.

Parameters:
signingKey -
algorithmParameterSpec -
Throws:
XMLSignatureException

setParameter

public void setParameter(java.security.spec.AlgorithmParameterSpec params)
                  throws XMLSignatureException
Proxy method for Signature.setParameter(java.security.spec.AlgorithmParameterSpec) which is executed on the internal Signature object.

Parameters:
params -
Throws:
XMLSignatureException

initVerify

public void initVerify(java.security.Key verificationKey)
                throws XMLSignatureException
Proxy method for Signature.initVerify(java.security.PublicKey) which is executed on the internal Signature object.

Parameters:
verificationKey -
Throws:
XMLSignatureException

clearVerificationCache

public void clearVerificationCache()
Clear the verification caches keysVerify and instancesVerify.


clearSignatureCache

public void clearSignatureCache()
Clear the signature caches keysSigning and instancesSigning.


verify

public boolean verify(byte[] signature)
               throws XMLSignatureException
Proxy method for Signature.verify(byte[]) which is executed on the internal Signature object.

Parameters:
signature -
Returns:
true if if the signature is valid.
Throws:
XMLSignatureException

getURI

public final java.lang.String getURI()
Returns the URI representation of Transformation algorithm

Returns:
the URI representation of Transformation algorithm

providerInit

public static void providerInit()
Initalizes for this Transform


register

public static void register(java.lang.String algorithmURI,
                            java.lang.String implementingClass)
                     throws AlgorithmAlreadyRegisteredException,
                            XMLSignatureException
Registers implementing class of the Transform algorithm with algorithmURI

Parameters:
algorithmURI - algorithmURI URI representation of Transform algorithm.
implementingClass - implementingClass the implementing class of SignatureAlgorithmSpi
Throws:
AlgorithmAlreadyRegisteredException - if specified algorithmURI is already registered
XMLSignatureException

getBaseNamespace

public java.lang.String getBaseNamespace()
Method getBaseNamespace

Overrides:
getBaseNamespace in class SignatureElementProxy
Returns:
URI of this element

getBaseLocalName

public java.lang.String getBaseLocalName()
Method getBaseLocalName

Specified by:
getBaseLocalName in class ElementProxy
Returns:
Local name