APIdia Launch Partner
Top Description Fields Constructors Methods
sun.security.krb5.internal.crypto.dk

public Class ArcFourCrypto

extends DkCrypto
Class Inheritance
Imports
java.security.*, javax.crypto.*, javax.crypto.spec.*, java.util.*, sun.security.krb5.KrbCryptoException, .Confounder, sun.security.krb5.internal.crypto.KeyUsage

Support for ArcFour in Kerberos as defined in RFC 4757. http://www.ietf.org/rfc/rfc4757.txt
Author
Seema Malkani

Field Summary

Modifier and TypeField and Description
private static final int
private static final boolean
private static final int
private final int
private static final byte[]
Inherited from sun.security.krb5.internal.crypto.dk.DkCrypto:
ALLOW_WEAK_PBKDF2_ITERATION_COUNTKERBEROS_CONSTANT

Constructor Summary

AccessConstructor and Description
public
ArcFourCrypto(int length)

Method Summary

Modifier and TypeMethod and Description
private int
public byte[]
calculateChecksum(byte[] baseKey, int usage, byte[] input, int start, int len)

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.calculateChecksum.

Calculate the checksum

public byte[]
decrypt(byte[]
key from which keys are to be derived using usage
baseKey
,
int usage, byte[] ivec, byte[]
E(Ke, conf | plaintext | padding, ivec) | H1[1..h]
ciphertext
,
int start, int len)

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.decrypt.

public byte[]
decryptRaw(byte[]
encryption key to use
baseKey
,
int
ignored
usage
,
byte[] ivec, byte[]
encrypted data to be decrypted
ciphertext
,
int start, int len, byte[] seqNum)

Decrypts data using specified key and initial vector.

public byte[]
decryptSeq(byte[] baseKey, int usage, byte[] checksum, byte[] ciphertext, int start, int len)

Performs decryption of Sequence Number using derived key.

public byte[]
encrypt(byte[] baseKey, int usage, byte[] ivec, byte[] new_ivec, byte[] plaintext, int start, int len)

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.encrypt.

Performs encryption using derived key; adds confounder.

public byte[]
encryptRaw(byte[] baseKey, int usage, byte[] seqNum, byte[] plaintext, int start, int len)

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.encryptRaw.

Performs encryption using derived key; does not add confounder.

public byte[]
encryptSeq(byte[] baseKey, int usage, byte[] checksum, byte[] plaintext, int start, int len)

Performs encryption of Sequence Number using derived key.

public int
protected Cipher
getCipher(byte[] key, byte[] ivec, int mode)

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getCipher.

protected byte[]
getHmac(byte[] key, byte[] msg)

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getHmac.

Get the HMAC-MD5

protected int
private byte[]
getSalt(int usage)

protected byte[]
public byte[]
stringToKey(char[] passwd)

private byte[]
stringToKey(char[] secret, byte[] opaque)

Inherited from sun.security.krb5.internal.crypto.dk.DkCrypto:
bytesToStringcharToUtf16charToUtf8decryptRawdkdriterationCountnfoldreadBigEndianrounduptraceOutput

Field Detail

confounderSizeback to summary
private static final int confounderSize
debugback to summary
private static final boolean debug

Hides sun.security.krb5.internal.crypto.dk.DkCrypto.debug.

hashSizeback to summary
private static final int hashSize
keyLengthback to summary
private final int keyLength
ZERO_IVback to summary
private static final byte[] ZERO_IV

Constructor Detail

ArcFourCryptoback to summary
public ArcFourCrypto(int length)

Method Detail

arcfour_translate_usageback to summary
private int arcfour_translate_usage(int usage)
calculateChecksumback to summary
public byte[] calculateChecksum(byte[] baseKey, int usage, byte[] input, int start, int len) throws GeneralSecurityException

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.calculateChecksum.

Calculate the checksum

decryptback to summary
public byte[] decrypt(byte[] baseKey, int usage, byte[] ivec, byte[] ciphertext, int start, int len) throws GeneralSecurityException

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.decrypt.

Parameters
baseKey:byte[]

key from which keys are to be derived using usage

ciphertext:byte[]

E(Ke, conf | plaintext | padding, ivec) | H1[1..h]

decryptRawback to summary
public byte[] decryptRaw(byte[] baseKey, int usage, byte[] ivec, byte[] ciphertext, int start, int len, byte[] seqNum) throws GeneralSecurityException

Decrypts data using specified key and initial vector.

Parameters
baseKey:byte[]

encryption key to use

usage:int

ignored

ciphertext:byte[]

encrypted data to be decrypted

decryptSeqback to summary
public byte[] decryptSeq(byte[] baseKey, int usage, byte[] checksum, byte[] ciphertext, int start, int len) throws GeneralSecurityException, KrbCryptoException

Performs decryption of Sequence Number using derived key.

encryptback to summary
public byte[] encrypt(byte[] baseKey, int usage, byte[] ivec, byte[] new_ivec, byte[] plaintext, int start, int len) throws GeneralSecurityException, KrbCryptoException

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.encrypt.

Performs encryption using derived key; adds confounder.

encryptRawback to summary
public byte[] encryptRaw(byte[] baseKey, int usage, byte[] seqNum, byte[] plaintext, int start, int len) throws GeneralSecurityException, KrbCryptoException

Overrides sun.security.krb5.internal.crypto.dk.DkCrypto.encryptRaw.

Performs encryption using derived key; does not add confounder.

encryptSeqback to summary
public byte[] encryptSeq(byte[] baseKey, int usage, byte[] checksum, byte[] plaintext, int start, int len) throws GeneralSecurityException, KrbCryptoException

Performs encryption of Sequence Number using derived key.

getChecksumLengthback to summary
public int getChecksumLength()

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getChecksumLength.

getCipherback to summary
protected Cipher getCipher(byte[] key, byte[] ivec, int mode) throws GeneralSecurityException

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getCipher.

getHmacback to summary
protected byte[] getHmac(byte[] key, byte[] msg) throws GeneralSecurityException

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getHmac.

Get the HMAC-MD5

getKeySeedLengthback to summary
protected int getKeySeedLength()

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.getKeySeedLength.

getSaltback to summary
private byte[] getSalt(int usage)
randomToKeyback to summary
protected byte[] randomToKey(byte[] in)

Implements abstract sun.security.krb5.internal.crypto.dk.DkCrypto.randomToKey.

stringToKeyback to summary
public byte[] stringToKey(char[] passwd) throws GeneralSecurityException
stringToKeyback to summary
private byte[] stringToKey(char[] secret, byte[] opaque) throws GeneralSecurityException