Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
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:
  Destroyable, Key, SecretKey, Serializable

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

Field Summary

Fields inherited from interface java.security.Key
`serialVersionUID`

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.
`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.
`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, equals, finalize, getClass, hashCode, 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 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 wil be used for. This parameter may be null in which case "DES" will be assumed.

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.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
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 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.