Class AbstractDOMSignatureMethod

  • All Implemented Interfaces:
    javax.xml.crypto.AlgorithmMethod, javax.xml.crypto.dsig.SignatureMethod, javax.xml.crypto.XMLStructure
    Direct Known Subclasses:
    DOMHMACSignatureMethod, DOMSignatureMethod

    abstract class AbstractDOMSignatureMethod
    extends DOMStructure
    implements javax.xml.crypto.dsig.SignatureMethod
    An abstract class representing a SignatureMethod. Subclasses implement a specific XML DSig signature algorithm.
    • Field Summary

      • Fields inherited from interface javax.xml.crypto.dsig.SignatureMethod

        DSA_SHA1, DSA_SHA256, ECDSA_SHA1, ECDSA_SHA224, ECDSA_SHA256, ECDSA_SHA384, ECDSA_SHA512, HMAC_SHA1, HMAC_SHA224, HMAC_SHA256, HMAC_SHA384, HMAC_SHA512, RSA_SHA1, RSA_SHA224, RSA_SHA256, RSA_SHA384, RSA_SHA512, SHA1_RSA_MGF1, SHA224_RSA_MGF1, SHA256_RSA_MGF1, SHA384_RSA_MGF1, SHA512_RSA_MGF1
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void checkParams​(javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec params)
      Checks if the specified parameters are valid for this algorithm.
      boolean equals​(java.lang.Object o)  
      (package private) abstract AbstractDOMSignatureMethod.Type getAlgorithmType()
      Returns the type of signature algorithm.
      (package private) abstract java.lang.String getJCAAlgorithm()
      Returns the java.security.Signature or javax.crypto.Mac standard algorithm name.
      int hashCode()  
      void marshal​(org.w3c.dom.Node parent, java.lang.String dsPrefix, javax.xml.crypto.dom.DOMCryptoContext context)
      This method invokes the marshalParams method to marshal any algorithm-specific parameters.
      (package private) void marshalParams​(org.w3c.dom.Element parent, java.lang.String paramsPrefix)
      Marshals the algorithm-specific parameters to an Element and appends it to the specified parent element.
      (package private) boolean paramsEqual​(java.security.spec.AlgorithmParameterSpec spec)
      Returns true if parameters are equal; false otherwise.
      (package private) abstract byte[] sign​(java.security.Key key, javax.xml.crypto.dsig.SignedInfo si, javax.xml.crypto.dsig.XMLSignContext context)
      Signs the bytes with the specified key, using the underlying Signature or Mac algorithm.
      (package private) javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec unmarshalParams​(org.w3c.dom.Element paramsElem)
      Unmarshals SignatureMethodParameterSpec from the specified Element.
      (package private) abstract boolean verify​(java.security.Key key, javax.xml.crypto.dsig.SignedInfo si, byte[] sig, javax.xml.crypto.dsig.XMLValidateContext context)
      Verifies the passed-in signature with the specified key, using the underlying Signature or Mac algorithm.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.xml.crypto.AlgorithmMethod

        getAlgorithm
      • Methods inherited from interface javax.xml.crypto.dsig.SignatureMethod

        getParameterSpec
      • Methods inherited from interface javax.xml.crypto.XMLStructure

        isFeatureSupported
    • Constructor Detail

      • AbstractDOMSignatureMethod

        AbstractDOMSignatureMethod()
    • Method Detail

      • verify

        abstract boolean verify​(java.security.Key key,
                                javax.xml.crypto.dsig.SignedInfo si,
                                byte[] sig,
                                javax.xml.crypto.dsig.XMLValidateContext context)
                         throws java.security.InvalidKeyException,
                                java.security.SignatureException,
                                javax.xml.crypto.dsig.XMLSignatureException
        Verifies the passed-in signature with the specified key, using the underlying Signature or Mac algorithm.
        Parameters:
        key - the verification key
        si - the SignedInfo
        sig - the signature bytes to be verified
        context - the XMLValidateContext
        Returns:
        true if the signature verified successfully, false if not
        Throws:
        java.lang.NullPointerException - if key, si or sig are null
        java.security.InvalidKeyException - if the key is improperly encoded, of the wrong type, or parameters are missing, etc
        java.security.SignatureException - if an unexpected error occurs, such as the passed in signature is improperly encoded
        javax.xml.crypto.dsig.XMLSignatureException - if an unexpected error occurs
      • sign

        abstract byte[] sign​(java.security.Key key,
                             javax.xml.crypto.dsig.SignedInfo si,
                             javax.xml.crypto.dsig.XMLSignContext context)
                      throws java.security.InvalidKeyException,
                             javax.xml.crypto.dsig.XMLSignatureException
        Signs the bytes with the specified key, using the underlying Signature or Mac algorithm.
        Parameters:
        key - the signing key
        si - the SignedInfo
        context - the XMLSignContext
        Returns:
        the signature
        Throws:
        java.lang.NullPointerException - if key or si are null
        java.security.InvalidKeyException - if the key is improperly encoded, of the wrong type, or parameters are missing, etc
        javax.xml.crypto.dsig.XMLSignatureException - if an unexpected error occurs
      • getJCAAlgorithm

        abstract java.lang.String getJCAAlgorithm()
        Returns the java.security.Signature or javax.crypto.Mac standard algorithm name.
      • marshal

        public void marshal​(org.w3c.dom.Node parent,
                            java.lang.String dsPrefix,
                            javax.xml.crypto.dom.DOMCryptoContext context)
                     throws javax.xml.crypto.MarshalException
        This method invokes the marshalParams method to marshal any algorithm-specific parameters.
        Specified by:
        marshal in class DOMStructure
        Throws:
        javax.xml.crypto.MarshalException
      • marshalParams

        void marshalParams​(org.w3c.dom.Element parent,
                           java.lang.String paramsPrefix)
                    throws javax.xml.crypto.MarshalException
        Marshals the algorithm-specific parameters to an Element and appends it to the specified parent element. By default, this method throws an exception since most SignatureMethod algorithms do not have parameters. Subclasses should override it if they have parameters.
        Parameters:
        parent - the parent element to append the parameters to
        paramsPrefix - the algorithm parameters prefix to use
        Throws:
        javax.xml.crypto.MarshalException - if the parameters cannot be marshalled
      • unmarshalParams

        javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec unmarshalParams​(org.w3c.dom.Element paramsElem)
                                                                         throws javax.xml.crypto.MarshalException
        Unmarshals SignatureMethodParameterSpec from the specified Element. By default, this method throws an exception since most SignatureMethod algorithms do not have parameters. Subclasses should override it if they have parameters.
        Parameters:
        paramsElem - the Element holding the input params
        Returns:
        the algorithm-specific SignatureMethodParameterSpec
        Throws:
        javax.xml.crypto.MarshalException - if the parameters cannot be unmarshalled
      • checkParams

        void checkParams​(javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec params)
                  throws java.security.InvalidAlgorithmParameterException
        Checks if the specified parameters are valid for this algorithm. By default, this method throws an exception if parameters are specified since most SignatureMethod algorithms do not have parameters. Subclasses should override it if they have parameters.
        Parameters:
        params - the algorithm-specific params (may be null)
        Throws:
        java.security.InvalidAlgorithmParameterException - if the parameters are not appropriate for this signature method
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • paramsEqual

        boolean paramsEqual​(java.security.spec.AlgorithmParameterSpec spec)
        Returns true if parameters are equal; false otherwise. Subclasses should override this method to compare algorithm-specific parameters.