Class EncryptedDataJackson

java.lang.Object
org.fuin.ddd4j.jackson.EncryptedDataJackson
All Implemented Interfaces:
Serializable, org.fuin.ddd4j.core.EncryptedData, org.fuin.objects4j.common.ValueObject

@Immutable public final class EncryptedDataJackson extends Object implements org.fuin.ddd4j.core.EncryptedData
Container for encrypted data. In addition to the data itself, the container has information about the key used to encrypt the data and the format of the data. The receiving system must have a notion of what the key identifier, versions and data type means. Equals and hash code is based on all data (value object)
See Also:
  • Constructor Details

    • EncryptedDataJackson

      protected EncryptedDataJackson()
      Default constructor for deserialization (JAX-B/JSON-B).
    • EncryptedDataJackson

      public EncryptedDataJackson(@NotEmpty @NotEmpty String keyId, @NotEmpty @NotEmpty String keyVersion, @NotEmpty @NotEmpty String dataType, @NotEmpty @NotEmpty String contentType, @NotEmpty @jakarta.validation.constraints.NotEmpty byte[] encryptedData)
      Constructor with all mandatory data.
      Parameters:
      keyId - Unique identifier of the private key used.
      keyVersion - Version of the private key used.
      dataType - Unique type of the data like "UserPersonalData" or even a fully qualified class name.
      contentType - Content/Mime type like "application/json; encoding=UTF-8; version=1".
      encryptedData - Encrypted data.
  • Method Details

    • getKeyId

      @NotEmpty public final @NotEmpty String getKeyId()
      Returns the unique identifier of the private key used.
      Specified by:
      getKeyId in interface org.fuin.ddd4j.core.EncryptedData
      Returns:
      Private key name.
    • getKeyVersion

      @NotEmpty public final @NotEmpty String getKeyVersion()
      Returns the version of the private key used.
      Specified by:
      getKeyVersion in interface org.fuin.ddd4j.core.EncryptedData
      Returns:
      Version.
    • getDataType

      @NotEmpty public final @NotEmpty String getDataType()
      Returns the unique type of the data like "UserPersonalData".
      Specified by:
      getDataType in interface org.fuin.ddd4j.core.EncryptedData
      Returns:
      Unique type name.
    • getContentType

      @NotEmpty public final @NotEmpty String getContentType()
      Returns the content type like "application/json; encoding=UTF-8; version=1".
      Specified by:
      getContentType in interface org.fuin.ddd4j.core.EncryptedData
      Returns:
      Mime type.
    • getEncryptedData

      @NotEmpty public final @jakarta.validation.constraints.NotEmpty byte[] getEncryptedData()
      Returns the encrypted data.
      Specified by:
      getEncryptedData in interface org.fuin.ddd4j.core.EncryptedData
      Returns:
      Data.
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public final String toString()
      Overrides:
      toString in class Object