Module java.security.jgss
Package javax.security.auth.kerberos

## Class KerberosCredMessage

- java.lang.Object
- - javax.security.auth.kerberos.KerberosCredMessage

- All Implemented Interfaces:
    `Destroyable`

      public final class KerberosCredMessage
      extends Object
      implements Destroyable

  This class encapsulates a Kerberos 5 KRB_CRED message which can be used to send Kerberos credentials from one principal to another.

  A KRB_CRED message is defined in Section 5.8.1 of the Kerberos Protocol Specification (RFC 4120) as:

          KRB-CRED        ::= [APPLICATION 22] SEQUENCE {
                  pvno            [0] INTEGER (5),
                  msg-type        [1] INTEGER (22),
                  tickets         [2] SEQUENCE OF Ticket,
                  enc-part        [3] EncryptedData -- EncKrbCredPart
          }

  Since:
    9

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `KerberosCredMessage​(KerberosPrincipal sender, KerberosPrincipal recipient, byte[] message)` | Constructs a `KerberosCredMessage` object.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `destroy()` | Destroys this object by clearing out the message.
    `boolean` | `equals​(Object other)` | Compares the specified object with this `KerberosCredMessage` for equality.
    `byte[]` | `getEncoded()` | Returns the DER encoded form of the KRB_CRED message.
    `KerberosPrincipal` | `getRecipient()` | Returns the recipient of this message.
    `KerberosPrincipal` | `getSender()` | Returns the sender of this message.
    `int` | `hashCode()` | Returns a hash code for this `KerberosCredMessage`.
    `String` | `toString()` | Returns an informative textual representation of this `KerberosCredMessage`.

    - ### Methods declared in class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods declared in interface javax.security.auth.Destroyable

      `isDestroyed`

- - ### Constructor Detail

    - #### KerberosCredMessage

          public KerberosCredMessage​(KerberosPrincipal sender,
                                     KerberosPrincipal recipient,
                                     byte[] message)

      Constructs a `KerberosCredMessage` object.

      The contents of the `message` argument are copied; subsequent modification of the byte array does not affect the newly created object.

      Parameters:
        `sender` - the sender of the message
        `recipient` - the recipient of the message
        `message` - the DER encoded KRB_CRED message
      Throws:
        `NullPointerException` - if any of sender, recipient or message is null

  - ### Method Detail

    - #### getEncoded

          public byte[] getEncoded()

      Returns the DER encoded form of the KRB_CRED message.
      Returns:
        a newly allocated byte array that contains the encoded form
      Throws:
        `IllegalStateException` - if the object is destroyed

    - #### getSender

          public KerberosPrincipal getSender()

      Returns the sender of this message.
      Returns:
        the sender
      Throws:
        `IllegalStateException` - if the object is destroyed

    - #### getRecipient

          public KerberosPrincipal getRecipient()

      Returns the recipient of this message.
      Returns:
        the recipient
      Throws:
        `IllegalStateException` - if the object is destroyed

    - #### destroy

          public void destroy()

      Destroys this object by clearing out the message.
      Specified by:
        `destroy` in interface `Destroyable`

    - #### toString

          public String toString()

      Returns an informative textual representation of this `KerberosCredMessage`.
      Overrides:
        `toString` in class `Object`
      Returns:
        an informative textual representation of this `KerberosCredMessage`.

    - #### hashCode

          public int hashCode()

      Returns a hash code for this `KerberosCredMessage`.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code for this `KerberosCredMessage`.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### equals

          public boolean equals​(Object other)

      Compares the specified object with this `KerberosCredMessage` for equality. Returns true if the given object is also a `KerberosCredMessage` and the two `KerberosCredMessage` instances are equivalent. More formally two `KerberosCredMessage` instances are equal if they have equal sender, recipient, and encoded KRB_CRED messages. A destroyed `KerberosCredMessage` object is only equal to itself.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `other` - the object to compare to
      Returns:
        true if the specified object is equal to this `KerberosCredMessage`, false otherwise.
      See Also:
        `Object.hashCode()`, `HashMap`