Class KerberosKey
- java.lang.Object
-
- javax.security.auth.kerberos.KerberosKey
-
- All Implemented Interfaces:
- java.io.Serializable, java.security.Key, javax.crypto.SecretKey, javax.security.auth.Destroyable
public class KerberosKey extends java.lang.Object implements javax.crypto.SecretKey, javax.security.auth.DestroyableThis 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
Subjectduring the commit phase of the authentication process.It might be necessary for the application to be granted a
PrivateCredentialPermissionif 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 appropriateServicePermission.- Since:
- 1.4
- Version:
- 1.12, 12/03/01
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description 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, java.lang.String algorithm)Constructs a KerberosKey from a principal's password.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voiddestroy()Destroys this key.booleanequals(java.lang.Object other)Compares the specified Object with this KerberosKey for equality.java.lang.StringgetAlgorithm()Returns the standard algorithm name for this key.byte[]getEncoded()Returns the key material of this secret key.java.lang.StringgetFormat()Returns the name of the encoding format for this secret key.intgetKeyType()Returns the key type for this long-term key.KerberosPrincipalgetPrincipal()Returns the principal that this key belongs to.intgetVersionNumber()Returns the key version number.inthashCode()Returns a hashcode for this KerberosKey.booleanisDestroyed()Determines if this key has been destroyed.java.lang.StringtoString()DOCUMENT ME!
-
-
-
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 tokeyBytes- the raw bytes for the secret keykeyType- 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, java.lang.String algorithm)
Constructs a KerberosKey from a principal's password.- Parameters:
principal- the principal that this password belongs topassword- the password that should be used to compute the keyalgorithm- 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 java.lang.String getAlgorithm()
Returns the standard algorithm name for this key.- Specified by:
getAlgorithmin interfacejava.security.Key- Returns:
- the name of the algorithm associated with this key.
-
getFormat
public final java.lang.String getFormat()
Returns the name of the encoding format for this secret key.- Specified by:
getFormatin interfacejava.security.Key- Returns:
- the String "RAW"
-
getEncoded
public final byte[] getEncoded()
Returns the key material of this secret key.- Specified by:
getEncodedin interfacejava.security.Key- Returns:
- the key material
-
destroy
public void destroy() throws javax.security.auth.DestroyFailedExceptionDestroys this key. A call to any of its other methods after this will cause an IllegalStateException to be thrown.- Specified by:
destroyin interfacejavax.security.auth.Destroyable- Throws:
javax.security.auth.DestroyFailedException- if some error occurs while destorying this key.
-
isDestroyed
public boolean isDestroyed()
Determines if this key has been destroyed.- Specified by:
isDestroyedin interfacejavax.security.auth.Destroyable- Returns:
- DOCUMENT ME!
-
toString
public java.lang.String toString()
DOCUMENT ME!- Overrides:
toStringin classjava.lang.Object- Returns:
- DOCUMENT ME!
-
hashCode
public int hashCode()
Returns a hashcode for this KerberosKey.- Overrides:
hashCodein classjava.lang.Object- Returns:
- a hashCode() for the
KerberosKey - Since:
- 1.6
-
equals
public boolean equals(java.lang.Object other)
Compares the specified Object with this KerberosKey for equality. Returns true if the given object is also aKerberosKeyand the twoKerberosKeyinstances are equivalent.- Overrides:
equalsin classjava.lang.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
-
-