Package Summary Overview Summary

### class:EncryptionKey [NONE]
- All Implemented Interfaces: Serializable, Key, SecretKey, Destroyable
      public final class EncryptionKey
      extends Object
      implements SecretKey
  This class encapsulates an EncryptionKey used in Kerberos. An EncryptionKey is defined in Section 4.2.9 of the Kerberos Protocol Specification (RFC 4120 ) as:
           EncryptionKey   ::= SEQUENCE {
                   keytype         [0] Int32 -- actually encryption type --,
                   keyvalue        [1] OCTET STRING
           }
The key material of an `EncryptionKey` is defined as the value of the `keyValue` above. Since: 1.9 See Also: Serialized Form

### constructor:EncryptionKey(byte[], int) [NONE]
- #### EncryptionKey
      public EncryptionKey(byte[] keyBytes,
                           int keyType)
Constructs a `EncryptionKey` from the given bytes and the key type. The contents of the byte array are copied; subsequent modification of the byte array does not affect the newly created key. Parameters: `keyBytes` - the key material for the key `keyType` - the key type for the key as defined by the Kerberos protocol specification. Throws: `NullPointerException` - if keyBytes is null

### method:getKeyType() [NONE]
- #### getKeyType
      public int getKeyType()
Returns the key type for this key. Returns: the key type. Throws: `IllegalStateException` - if the key is destroyed

### method:getAlgorithm() [NONE]
- #### getAlgorithm
      public String getAlgorithm()
Returns the standard algorithm name for this key. The algorithm names are the encryption type string defined on the IANA Kerberos Encryption Type Numbers page. This method can return the following value not defined on the IANA page: none: for etype equal to 0 unknown: for etype greater than 0 but unsupported by the implementation private: for etype smaller than 0 Specified by: `getAlgorithm` in interface `Key` Returns: the name of the algorithm associated with this key. Throws: `IllegalStateException` - if the key is destroyed

### method:getFormat() [NONE]
- #### getFormat
      public String getFormat()
Returns the name of the encoding format for this key. Specified by: `getFormat` in interface `Key` Returns: the String "RAW" Throws: `IllegalStateException` - if the key is destroyed

### method:getEncoded() [NONE]
- #### getEncoded
      public byte[] getEncoded()
Returns the key material of this key. Specified by: `getEncoded` in interface `Key` Returns: a newly allocated byte array that contains the key material Throws: `IllegalStateException` - if the key is destroyed

### method:destroy() [NONE]
- #### destroy
      public void destroy()
                   throws DestroyFailedException
Destroys this key by clearing out the key material of this key. Specified by: `destroy` in interface `Destroyable` Throws: `DestroyFailedException` - if some error occurs while destorying this key.

### method:isDestroyed() [NONE]
- #### isDestroyed
      public boolean isDestroyed()
Description copied from interface: `Destroyable` Determine if this `Object` has been destroyed. The default implementation returns false. Specified by: `isDestroyed` in interface `Destroyable` Returns: true if this `Object` has been destroyed, false otherwise.

### method:toString() [NONE]
- #### 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.

### method:hashCode() [NONE]
- #### hashCode
      public int hashCode()
Description copied from class: `Object` Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by `HashMap`. The general contract of `hashCode` is: Whenever it is invoked on the same object more than once during an execution of a Java application, the `hashCode` method must consistently return the same integer, provided no information used in `equals` comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the `equals(Object)` method, then calling the `hashCode` method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the `Object.equals(java.lang.Object)` method, then calling the `hashCode` method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables. As much as is reasonably practical, the hashCode method defined by class `Object` does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.) Overrides: `hashCode` in class `Object` Returns: a hash code value for this object. See Also: `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

### method:equals(java.lang.Object) [NONE]
- #### equals
      public boolean equals(Object other)
Compares the specified Object with this key for equality. Returns true if the given object is also a `EncryptionKey` and the two `EncryptionKey` 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 EncryptionKey, false otherwise. NOTE: Returns false if either of the EncryptionKey objects has been destroyed. See Also: `Object.hashCode()`, `HashMap`