Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.security.auth.kerberos
Class KerberosKey

    java.lang.Object
      javax.security.auth.kerberos.KerberosKey

All Implemented Interfaces:
  Serializable, Key, SecretKey, Destroyable

    public class KerberosKey

extends Object
implements SecretKey, Destroyable

This class encapsulates a long term secret key for a Kerberos principal.

All Kerberos JAAS login modules that obtain a principal's password and generate the secret key from it should use this class. Where available, the login module might even read this secret key directly from a Kerberos "keytab". Sometimes, such as when authenticating a server in the absence of user-to-user authentication, the login module will store an instance of this class in the private credential set of a `Subject` during the commit phase of the authentication process.

It might be necessary for the application to be granted a `PrivateCredentialPermission` if it needs to access the KerberosKey instance from a Subject. This permission is not needed when the application depends on the default JGSS Kerberos mechanism to access the KerberosKey. In that case, however, the application will need an appropriate `ServicePermission`.

Since:
  1.4
See Also:
  Serialized Form

Constructor Summary
`KerberosKey(KerberosPrincipal principal, byte[] keyBytes, int keyType, int versionNum)` Constructs a KerberosKey from the given bytes when the key type and key version number are known.
`KerberosKey(KerberosPrincipal principal, char[] password, String algorithm)` Constructs a KerberosKey from a principal's password.

Method Summary
`void` | `destroy()` Destroys this key.
`boolean` | `equals(Object other)` Compares the specified Object with this KerberosKey for equality.
`String` | `getAlgorithm()` Returns the standard algorithm name for this key.
`byte[]` | `getEncoded()` Returns the key material of this secret key.
`String` | `getFormat()` Returns the name of the encoding format for this secret key.
`int` | `getKeyType()` Returns the key type for this long-term key.
`KerberosPrincipal` | `getPrincipal()` Returns the principal that this key belongs to.
`int` | `getVersionNumber()` Returns the key version number.
`int` | `hashCode()` Returns a hashcode for this KerberosKey.
`boolean` | `isDestroyed()` Determines if this key has been destroyed.
`String` | `toString()` Returns a string representation of the object.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### KerberosKey

    public KerberosKey(KerberosPrincipal principal,
                       byte[] keyBytes,
                       int keyType,
                       int versionNum)

  Constructs a KerberosKey from the given bytes when the key type and key version number are known. This can be used when reading the secret key information from a Kerberos "keytab".

  Parameters:
    `principal` - the principal that this secret key belongs to
    `keyBytes` - the raw bytes for the secret key
    `keyType` - the key type for the secret key as defined by the Kerberos protocol specification.
    `versionNum` - the version number of this secret key

### KerberosKey

    public KerberosKey(KerberosPrincipal principal,
                       char[] password,
                       String algorithm)

  Constructs a KerberosKey from a principal's password.

  Parameters:
    `principal` - the principal that this password belongs to
    `password` - the password that should be used to compute the key
    `algorithm` - the name for the algorithm that this key will be used for. This parameter may be null in which case the default algorithm "DES" will be assumed.
  Throws:
    `IllegalArgumentException` - if the name of the algorithm passed is unsupported.

Method Detail

### getPrincipal

    public final KerberosPrincipal getPrincipal()

  Returns the principal that this key belongs to.

  Returns:
    the principal this key belongs to.

### getVersionNumber

    public final int getVersionNumber()

  Returns the key version number.

  Returns:
    the key version number.

### getKeyType

    public final int getKeyType()

  Returns the key type for this long-term key.

  Returns:
    the key type.

### getAlgorithm

    public final String getAlgorithm()

  Returns the standard algorithm name for this key. For example, "DES" would indicate that this key is a DES key. See Appendix A in the Java Cryptography Architecture API Specification & Reference for information about standard algorithm names.

  Specified by:
    `getAlgorithm` in interface `Key`
  Returns:
    the name of the algorithm associated with this key.

### getFormat

    public final String getFormat()

  Returns the name of the encoding format for this secret key.

  Specified by:
    `getFormat` in interface `Key`
  Returns:
    the String "RAW"

### getEncoded

    public final byte[] getEncoded()

  Returns the key material of this secret key.

  Specified by:
    `getEncoded` in interface `Key`
  Returns:
    the key material

### destroy

    public void destroy()
                 throws DestroyFailedException

  Destroys this key. A call to any of its other methods after this will cause an IllegalStateException to be thrown.

  Specified by:
    `destroy` in interface `Destroyable`
  Throws:
    `DestroyFailedException` - if some error occurs while destorying this key.

### isDestroyed

    public boolean isDestroyed()

  Determines if this key has been destroyed.

  Specified by:
    `isDestroyed` in interface `Destroyable`
  Returns:
    true if this `Object` has been destroyed, false otherwise.

### toString

    public String toString()

  Description copied from class: `Object`
  Returns a string representation of the object. In general, the `toString` method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

  The `toString` method for class `Object` returns a string consisting of the name of the class of which the object is an instance, the at-sign character ``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

  >      getClass().getName() + '@' + Integer.toHexString(hashCode())

  Overrides:
    `toString` in class `Object`
  Returns:
    a string representation of the object.

### hashCode

    public int hashCode()

  Returns a hashcode for this KerberosKey.

  Overrides:
    `hashCode` in class `Object`
  Returns:
    a hashCode() for the `KerberosKey`
  Since:
    1.6
  See Also:
    `Object.equals(java.lang.Object)`, `Hashtable`

### equals

    public boolean equals(Object other)

  Compares the specified Object with this KerberosKey for equality. Returns true if the given object is also a `KerberosKey` and the two `KerberosKey` instances are equivalent.

  Overrides:
    `equals` in class `Object`
  Parameters:
    `other` - the Object to compare to
  Returns:
    true if the specified object is equal to this KerberosKey, false otherwise. NOTE: Returns false if either of the KerberosKey objects has been destroyed.
  Since:
    1.6
  See Also:
    `Object.hashCode()`, `Hashtable`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 1993, 2010, Oracle and/or its affiliates. All rights reserved.