Class JwtHmacKey


  • public final class JwtHmacKey
    extends JwtMacKey
    Represents a JWT HMAC key to create and verify JWT using HMAC.
    • Method Detail

      • getKid

        public java.util.Optional<java.lang.String> getKid()
        Returns the "kid" to be used for this key.

        If present, this kid will be written into the kid header during computeMacAndEncode. If absent, no kid will be written.

        If present, and the kid header is present, the contents of the kid header needs to match the return value of this function.

        Specified by:
        getKid in class JwtMacKey
      • getIdRequirementOrNull

        @Nullable
        public java.lang.Integer getIdRequirementOrNull()
        Description copied from class: Key
        Returns null if this key has no id requirement, otherwise the required id.

        Some keys, when they are in a keyset, are required to have a certain ID to work properly. This comes from the fact that Tink in some cases prefixes ciphertexts or signatures with the string 0x01<id>, where the ID is encoded in big endian (see the documentation of the key type for details), in which case the key requires a certain ID.

        Specified by:
        getIdRequirementOrNull in class Key
      • getParameters

        public JwtHmacParameters getParameters()
        Description copied from class: Key
        Returns a Parameters object containing all the information about the key which is not randomly chosen.

        Implementations need to ensure that getParameters().hasIdRequirement() returns true if and only if getIdRequirementOrNull is non-null.

        Specified by:
        getParameters in class JwtMacKey
      • equalsKey

        public boolean equalsKey​(Key o)
        Description copied from class: Key
        Returns true if the key is guaranteed to be equal to other.

        Implementations are required to do this in constant time.

        Note: this is allowed to return false even if two keys are guaranteed to represent the same function, but are represented differently. For example, a key is allowed to internally store the number of zero-bytes used as padding when a large number is represented as a byte array, and use this in the comparison.

        Note: Tink Key objects should typically not override hashCode (because it could risk leaking key material). Hence, they typically also should not override equals.

        Specified by:
        equalsKey in class Key