Class EPPSignedMark

  • All Implemented Interfaces:
    EPPCodecComponent, java.io.Serializable, java.lang.Cloneable
    Direct Known Subclasses:
    EPPEncodedSignedMark

    public class EPPSignedMark
    extends java.lang.Object
    implements EPPCodecComponent
    Class for the signed mark, which contains the mark (EPPMark), and additional elements associated with the signing of the mark like the serial number of the signed mark, the expiration of the signed mark, and the XMLSignature itself.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ELM_SIGNED_MARK_LOCALNAME
      Constant for the mark local name for signedMark element
      static java.lang.String ELM_SIGNED_MARK_NAME
      Constant for the mark tag for signedMark element
      static java.lang.String NS
      Namespace URI associated with EPPLaunchExtFactory.
      static java.lang.String NS_PREFIX
      Namespace prefix associated with EPPLaunchExtFactory.
      static java.lang.String NS_SCHEMA
      XML Schema definition for EPPLaunchExtFactory
    • Constructor Summary

      Constructors 
      Constructor Description
      EPPSignedMark()
      Create an EPPSignedMark instance.
      EPPSignedMark​(byte[] aSignedMarkArray)
      Create the EPPSignedMark object from the input byte[] (XML).
      EPPSignedMark​(EPPEncodedSignedMark aEncodedSignedMark)
      Convert an EPPEncodedSignedMark into an EPPSignedMark.
      EPPSignedMark​(java.lang.String aId, EPPIssuer aIssuer, java.util.Date aNotBefore, java.util.Date aNotAfter, EPPMark aMark)
      Create an EPPSignedMark with the id, issuer, not before date, not after date, and the mark attributes of the signed mark.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()
      Clone EPPSignedMark.
      protected void decode​(byte[] aSignedMarkArray)
      Create a DOM document from byte array.
      void decode​(org.w3c.dom.Element aElement)
      Decode the EPPSignedMark component
      byte[] encode()
      Encode the signed mark to a byte[].
      org.w3c.dom.Element encode​(org.w3c.dom.Document aDocument)
      Sets all this instance's data in the given XML document
      boolean equals​(java.lang.Object aObject)
      implements a deep EPPSignedMark compare.
      java.lang.String getAttrIdValue()
      Gets the "id" attribute value.
      java.lang.String getId()
      Gets the identifier of the signed mark.
      EPPIssuer getIssuer()
      Gets issuer of the signed mark.
      java.lang.String getLocalName()
      Gets the XML local name for the signed mark.
      EPPMark getMark()
      Gets the mark associated with the signed mark.
      java.lang.String getNamespace()
      Returns the XML namespace associated with the EPPCodecComponent.
      java.util.Date getNotAfter()
      Gets the date of expiration of the signed mark.
      java.util.Date getNotBefore()
      Gets the date of creation of the signed mark.
      void sign​(java.security.PrivateKey aPrivateKey)
      Digitally sign the signed mark using the passed private key.
      void sign​(java.security.PrivateKey aPrivateKey, java.security.cert.Certificate[] aCertChain)
      Digitally sign the signed mark using the passed private key and a chain of certificates.
      java.lang.String toString()
      Implementation of Object.toString, which will result in an indented XML String representation of the concrete EPPCodecComponent.
      boolean validate​(java.security.cert.PKIXParameters aPKIXParameters)
      Validate the signature attribute against the signed mark attributes by using the public key of the certificate or the top certificate in the certificate chain contained in the XMLSignature with using the passed PKIX parameters to the PKIX CertPathValidator algorithm.
      boolean validate​(java.security.cert.PKIXParameters aPKIXParameters, boolean aSynchronizePKIXParameters)
      Validate the signature attribute against the signed mark attributes by using the public key of the certificate or the top certificate in the certificate chain contained in the XMLSignature with using the passed PKIX parameters to the PKIX CertPathValidator algorithm.
      boolean validate​(java.security.PublicKey aPublicKey)
      Validate the signature attribute against the signed mark attributes.
      • Methods inherited from class java.lang.Object

        finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • NS

        public static final java.lang.String NS
        Namespace URI associated with EPPLaunchExtFactory.
        See Also:
        Constant Field Values
      • NS_PREFIX

        public static final java.lang.String NS_PREFIX
        Namespace prefix associated with EPPLaunchExtFactory.
        See Also:
        Constant Field Values
      • NS_SCHEMA

        public static final java.lang.String NS_SCHEMA
        XML Schema definition for EPPLaunchExtFactory
        See Also:
        Constant Field Values
      • ELM_SIGNED_MARK_LOCALNAME

        public static final java.lang.String ELM_SIGNED_MARK_LOCALNAME
        Constant for the mark local name for signedMark element
        See Also:
        Constant Field Values
      • ELM_SIGNED_MARK_NAME

        public static final java.lang.String ELM_SIGNED_MARK_NAME
        Constant for the mark tag for signedMark element
        See Also:
        Constant Field Values
    • Constructor Detail

      • EPPSignedMark

        public EPPSignedMark()
        Create an EPPSignedMark instance.
      • EPPSignedMark

        public EPPSignedMark​(EPPEncodedSignedMark aEncodedSignedMark)
        Convert an EPPEncodedSignedMark into an EPPSignedMark.
        Parameters:
        aEncodedSignedMark - EPPEncodedSignedMark to convert from.
      • EPPSignedMark

        public EPPSignedMark​(java.lang.String aId,
                             EPPIssuer aIssuer,
                             java.util.Date aNotBefore,
                             java.util.Date aNotAfter,
                             EPPMark aMark)
                      throws EPPEncodeException,
                             EPPDecodeException
        Create an EPPSignedMark with the id, issuer, not before date, not after date, and the mark attributes of the signed mark. The default encoding is XML and the signature must be generated by calling sign(PrivateKey). Once object is created using this constructor, one should not update the Mark object. In case mark object get updated, changes will not be included in XML/signature.
        Parameters:
        aId - Identifier of signed mark
        aIssuer - Signed mark issuer information
        aNotBefore - Date and time that the signed mark was created.
        aNotAfter - Date and time that the signed mark expires.
        aMark - Mark information
        Throws:
        EPPEncodeException - Thrown if any errors prevent encoding.
        EPPDecodeException - Error decoding the Issuer or Mark object.
      • EPPSignedMark

        public EPPSignedMark​(byte[] aSignedMarkArray)
                      throws EPPDecodeException
        Create the EPPSignedMark object from the input byte[] (XML).
        Parameters:
        aSignedMarkArray - byte[] to decode the attribute values
        Throws:
        EPPDecodeException - Error decoding the byte[].
    • Method Detail

      • decode

        public void decode​(org.w3c.dom.Element aElement)
                    throws EPPDecodeException
        Decode the EPPSignedMark component
        Specified by:
        decode in interface EPPCodecComponent
        Parameters:
        aElement - Root element of the EPPSignedMark
        Throws:
        EPPDecodeException - Error decoding the EPPSignedMark
      • decode

        protected void decode​(byte[] aSignedMarkArray)
                       throws EPPDecodeException
        Create a DOM document from byte array. Initialized the instance variables like mark, issuer etc. Sets the signedMarkElement.
        Parameters:
        aSignedMarkArray - byte[] to decode the attribute values
        Throws:
        EPPDecodeException - Error decoding the byte[].
      • encode

        public byte[] encode()
                      throws EPPEncodeException
        Encode the signed mark to a byte[].
        Returns:
        byte[] representing signed mark
        Throws:
        EPPEncodeException - Error encoding the signed mark
      • encode

        public org.w3c.dom.Element encode​(org.w3c.dom.Document aDocument)
                                   throws EPPEncodeException
        Sets all this instance's data in the given XML document
        Specified by:
        encode in interface EPPCodecComponent
        Parameters:
        aDocument - a DOM Document to attach data to.
        Returns:
        The root element of this component.
        Throws:
        EPPEncodeException - Thrown if any errors prevent encoding.
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Clone EPPSignedMark. Signature element is not cloned.
        Specified by:
        clone in interface EPPCodecComponent
        Overrides:
        clone in class java.lang.Object
        Returns:
        clone of EPPSignedMark
        Throws:
        java.lang.CloneNotSupportedException - standard Object.clone exception
      • sign

        public void sign​(java.security.PrivateKey aPrivateKey)
                  throws EPPException
        Digitally sign the signed mark using the passed private key. No certificates will be added using this method. If certificates need to be added use sign(PrivateKey, Certificate[]).
        Parameters:
        aPrivateKey - Private key used to sign the signed mark
        Throws:
        EPPException - Error creating the digital signature
      • sign

        public void sign​(java.security.PrivateKey aPrivateKey,
                         java.security.cert.Certificate[] aCertChain)
                  throws EPPException
        Digitally sign the signed mark using the passed private key and a chain of certificates.
        Parameters:
        aPrivateKey - Private key used to sign the signed mark
        aCertChain - Certificate chain to include in the XMLSignature associated with the private key. Pass null to not include the certificate chain in the XMLSignature.
        Throws:
        EPPException - Error creating the digital signature
      • validate

        public boolean validate​(java.security.cert.PKIXParameters aPKIXParameters)
        Validate the signature attribute against the signed mark attributes by using the public key of the certificate or the top certificate in the certificate chain contained in the XMLSignature with using the passed PKIX parameters to the PKIX CertPathValidator algorithm. The trust store can be loaded and used to create an instance of PKIXParameters to verify the certificate chain included in the XMLSignature with the trust anchors included in the trust store. This method will automatically synchronize the aPKIXParameters parameter when used, since it is not thread-safe. Use validate(PKIXParameters, boolean) to explicitly set the aPKIXParameters synchronization setting.
        Parameters:
        aPKIXParameters - Parameters used as input for the PKIX CertPathValidator algorithm.
        Returns:
        true if valid; false otherwise.
      • validate

        public boolean validate​(java.security.cert.PKIXParameters aPKIXParameters,
                                boolean aSynchronizePKIXParameters)
        Validate the signature attribute against the signed mark attributes by using the public key of the certificate or the top certificate in the certificate chain contained in the XMLSignature with using the passed PKIX parameters to the PKIX CertPathValidator algorithm. The trust store can be loaded and used to create an instance of PKIXParameters to verify the certificate chain included in the XMLSignature with the trust anchors included in the trust store.
        Parameters:
        aPKIXParameters - Parameters used as input for the PKIX CertPathValidator algorithm.
        aSynchronizePKIXParameters - Should the aPKIXParameters be synchronized inside the method? If there is no reason to synchronize, then false can be passed to increase performance.
        Returns:
        true if valid; false otherwise.
      • validate

        public boolean validate​(java.security.PublicKey aPublicKey)
        Validate the signature attribute against the signed mark attributes.
        Parameters:
        aPublicKey - Public used to validate the signature
        Returns:
        true if valid; false otherwise.
      • equals

        public boolean equals​(java.lang.Object aObject)
        implements a deep EPPSignedMark compare.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        aObject - EPPSignedMark instance to compare with
        Returns:
        true if equal false otherwise
      • getLocalName

        public java.lang.String getLocalName()
        Gets the XML local name for the signed mark.
        Returns:
        Either ELM_SIGNED_MARK_LOCALNAME or ELM_ENCODED_SIGNED_MARK_LOCALNAME
      • getId

        public java.lang.String getId()
        Gets the identifier of the signed mark.
        Returns:
        The identifier for the signed mark if set; null otherwise.
      • getIssuer

        public EPPIssuer getIssuer()
        Gets issuer of the signed mark.
        Returns:
        The issuer of the signed mark if defined: null otherwise.
      • getNotBefore

        public java.util.Date getNotBefore()
        Gets the date of creation of the signed mark.
        Returns:
        the date of creation of the signed mark if set; null otherwise.
      • getNotAfter

        public java.util.Date getNotAfter()
        Gets the date of expiration of the signed mark.
        Returns:
        the date of expiration of the signed mark if set; null otherwise.
      • getMark

        public EPPMark getMark()
        Gets the mark associated with the signed mark.
        Returns:
        The mark associated with the signed mark if defined: null otherwise.
      • getAttrIdValue

        public java.lang.String getAttrIdValue()
        Gets the "id" attribute value.
        Returns:
        Value of the "id" attribute value.
      • toString

        public java.lang.String toString()
        Implementation of Object.toString, which will result in an indented XML String representation of the concrete EPPCodecComponent.
        Overrides:
        toString in class java.lang.Object
        Returns:
        Indented XML String if successful; ERROR otherwise.
      • getNamespace

        public java.lang.String getNamespace()
        Returns the XML namespace associated with the EPPCodecComponent.
        Specified by:
        getNamespace in interface EPPCodecComponent
        Returns:
        XML namespace for the EPPCodecComponent.