Record Class SecretSharedKey

java.lang.Object
java.lang.Record
com.yahoo.security.SecretSharedKey

public record SecretSharedKey(SecretKey secretKey, SealedSharedKey sealedSharedKey) extends Record
A SecretSharedKey represents a pairing of both the secret and public parts of a secure one-way ephemeral key exchange. The underlying SealedSharedKey may be made public, generally as a token. It should not come as a surprise that the underlying SecretKey must NOT be made public.
  • Constructor Details

    • SecretSharedKey

      public SecretSharedKey(SecretKey secretKey, SealedSharedKey sealedSharedKey)
      Creates an instance of a SecretSharedKey record class.
      Parameters:
      secretKey - the value for the secretKey record component
      sealedSharedKey - the value for the sealedSharedKey record component
  • Method Details

    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • makeEncryptionCipher

      public AeadCipher makeEncryptionCipher()
      Returns:
      an encryption cipher that matches the version of the SealedSharedKey bound to the secret shared key
    • makeDecryptionCipher

      public AeadCipher makeDecryptionCipher()
      Returns:
      a decryption cipher that matches the version of the SealedSharedKey bound to the secret shared key. In other words, the cipher shall match the cipher algorithm used to perform the encryption this key was used for.
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • secretKey

      public SecretKey secretKey()
      Returns the value of the secretKey record component.
      Returns:
      the value of the secretKey record component
    • sealedSharedKey

      public SealedSharedKey sealedSharedKey()
      Returns the value of the sealedSharedKey record component.
      Returns:
      the value of the sealedSharedKey record component