com.verisign.epp.codec.signedMark

## Class EPPSignedMark

- java.lang.Object
- - com.verisign.epp.codec.signedMark.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 and 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 and 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 and 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`.