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 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.