Methods Summary |
---|
public void | destroy()
if (!destroyed) {
destroyed = true;
Arrays.fill(keyBytes, (byte) 0);
}
|
public boolean | equals(java.lang.Object other)
if (other == this)
return true;
if (! (other instanceof KeyImpl)) {
return false;
}
KeyImpl otherKey = ((KeyImpl) other);
if (isDestroyed() || otherKey.isDestroyed()) {
return false;
}
if(keyType != otherKey.getKeyType() ||
!Arrays.equals(keyBytes, otherKey.getEncoded())) {
return false;
}
return true;
|
public final java.lang.String | getAlgorithm()
return getAlgorithmName(keyType);
|
private java.lang.String | getAlgorithmName(int eType)
if (destroyed)
throw new IllegalStateException("This key is no longer valid");
switch (eType) {
case EncryptedData.ETYPE_DES_CBC_CRC:
case EncryptedData.ETYPE_DES_CBC_MD5:
return "DES";
case EncryptedData.ETYPE_DES3_CBC_HMAC_SHA1_KD:
return "DESede";
case EncryptedData.ETYPE_ARCFOUR_HMAC:
return "ArcFourHmac";
case EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96:
return "AES128";
case EncryptedData.ETYPE_AES256_CTS_HMAC_SHA1_96:
return "AES256";
case EncryptedData.ETYPE_NULL:
return "NULL";
default:
throw new IllegalArgumentException(
"Unsupported encryption type: " + eType);
}
|
public final byte[] | getEncoded()
if (destroyed)
throw new IllegalStateException("This key is no longer valid");
return (byte[])keyBytes.clone();
|
public final java.lang.String | getFormat()
if (destroyed)
throw new IllegalStateException("This key is no longer valid");
return "RAW";
|
public final int | getKeyType()Returns the keyType for this key as defined in the Kerberos Spec.
if (destroyed)
throw new IllegalStateException("This key is no longer valid");
return keyType;
|
public int | hashCode()
int result = 17;
if(isDestroyed()) {
return result;
}
result = 37 * result + Arrays.hashCode(keyBytes);
return 37 * result + keyType;
|
public boolean | isDestroyed()
return destroyed;
|
private void | readObject(java.io.ObjectInputStream ois)
try {
EncryptionKey encKey = new EncryptionKey(new
DerValue((byte[])ois.readObject()));
keyType = encKey.getEType();
keyBytes = encKey.getBytes();
} catch (Asn1Exception ae) {
throw new IOException(ae.getMessage());
}
|
public java.lang.String | toString()
HexDumpEncoder hd = new HexDumpEncoder();
return "EncryptionKey: keyType=" + keyType
+ " keyBytes (hex dump)="
+ (keyBytes == null || keyBytes.length == 0 ?
" Empty Key" :
'\n" + hd.encode(keyBytes)
+ '\n");
|
private void | writeObject(java.io.ObjectOutputStream ois)
if (destroyed) {
throw new IOException("This key is no longer valid");
}
try {
ois.writeObject((new EncryptionKey(keyType, keyBytes)).asn1Encode());
} catch (Asn1Exception ae) {
throw new IOException(ae.getMessage());
}
|