public class

EncryptedData

extends Object
implements Cloneable
java.lang.Object
   ↳ sun.security.mule.krb5.EncryptedData

Class Overview

This class encapsulates Kerberos encrypted data. It allows callers access to both the ASN.1 encoded form of the EncryptedData type as well as the raw cipher text.

Summary

Constants
int ETYPE_AES128_CTS_HMAC_SHA1_96
int ETYPE_AES256_CTS_HMAC_SHA1_96
int ETYPE_ARCFOUR_HMAC
int ETYPE_ARCFOUR_HMAC_EXP
int ETYPE_DES3_CBC_HMAC_SHA1_KD
int ETYPE_DES_CBC_CRC
int ETYPE_DES_CBC_MD4
int ETYPE_DES_CBC_MD5
int ETYPE_NULL
Fields
byte[] cipher
int eType
Integer kvno
byte[] plain
Public Constructors
EncryptedData(int new_eType, Integer new_kvno, byte[] new_cipher)
EncryptedData(EncryptionKey key, byte[] plaintext, int usage)
Public Methods
byte[] asn1Encode()
Returns an ASN.1 encoded EncryptedData type.
Object clone()
byte[] decrypt(EncryptionKey key, int usage)
byte[] getBytes()
Returns the raw cipher text bytes, not in ASN.1 encoding.
int getEType()
Integer getKeyVersionNumber()
static EncryptedData parse(DerInputStream data, byte explicitTag, boolean optional)
Parse (unmarshal) an EncryptedData from a DER input stream.
byte[] reset(byte[] data, boolean encoded)
Reset data stream after decryption, remove redundant bytes.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int ETYPE_AES128_CTS_HMAC_SHA1_96

Constant Value: 17 (0x00000011)

public static final int ETYPE_AES256_CTS_HMAC_SHA1_96

Constant Value: 18 (0x00000012)

public static final int ETYPE_ARCFOUR_HMAC

Constant Value: 23 (0x00000017)

public static final int ETYPE_ARCFOUR_HMAC_EXP

Constant Value: 24 (0x00000018)

public static final int ETYPE_DES3_CBC_HMAC_SHA1_KD

Constant Value: 16 (0x00000010)

public static final int ETYPE_DES_CBC_CRC

Constant Value: 1 (0x00000001)

public static final int ETYPE_DES_CBC_MD4

Constant Value: 2 (0x00000002)

public static final int ETYPE_DES_CBC_MD5

Constant Value: 3 (0x00000003)

public static final int ETYPE_NULL

Constant Value: 0 (0x00000000)

Fields

byte[] cipher

int eType

Integer kvno

byte[] plain

Public Constructors

public EncryptedData (int new_eType, Integer new_kvno, byte[] new_cipher)

Parameters
new_eType
new_kvno
new_cipher

public EncryptedData (EncryptionKey key, byte[] plaintext, int usage)

Parameters
key
plaintext
usage

Public Methods

public byte[] asn1Encode ()

Returns an ASN.1 encoded EncryptedData type.

EncryptedData ::= SEQUENCE { etype [0] Int32 -- EncryptionType --, kvno [1] UInt32 OPTIONAL, cipher [2] OCTET STRING -- ciphertext }

This definition reflects the Network Working Group RFC 4120 specification available at http://www.ietf.org/rfc/rfc4120.txt.

Returns
  • byte array of encoded EncryptedData object.
Throws
Asn1Exception if an error occurs while decoding an ASN1 encoded data.
IOException if an I/O error occurs while reading encoded data.

public Object clone ()

public byte[] decrypt (EncryptionKey key, int usage)

public byte[] getBytes ()

Returns the raw cipher text bytes, not in ASN.1 encoding.

public int getEType ()

public Integer getKeyVersionNumber ()

public static EncryptedData parse (DerInputStream data, byte explicitTag, boolean optional)

Parse (unmarshal) an EncryptedData from a DER input stream. This form parsing might be used when expanding a value which is part of a constructed sequence and uses explicitly tagged type.

Parameters
data The Der input stream value, which contains one or more marshaled value.
explicitTag Tag number.
optional Indicate if this data field is optional
Returns
  • an instance of EncryptedData.
Throws
Asn1Exception if an error occurs while decoding an ASN1 encoded data.
IOException if an I/O error occurs while reading encoded data.

public byte[] reset (byte[] data, boolean encoded)

Reset data stream after decryption, remove redundant bytes.

Parameters
data The decrypted data from decrypt().
encoded True if the encrypted data is ASN1 encoded data, false if the encrypted data is not ASN1 encoded data.
Returns
  • the reset byte array which holds exactly one asn1 datum including its tag and length.