com.ibm.security.krb5.internal.crypto

Class Rc4HMac

  1. java.lang.Object
  2. extended bycom.ibm.security.krb5.internal.crypto.EType
  3. extended bycom.ibm.security.krb5.internal.crypto.Rc4HMac
Direct known subclasses:
Rc4HMacExp

  1. public class Rc4HMac
  2. extends EType
Implements IETF informational draft The Windows 2000 RC4-HMAC Kerberos encryption type
Author:
Thomas Owusu

Field Summary

Modifier and Type Field and Description
  1. static
  2. byte[]
FORTY_BITS
Byte array representation of the ASCII string "fortybits", including the terminating null.
  1. static
  2. int
KD_AP_REP
Key derivation constant for the server-returned AP-REP
  1. static
  2. int
KD_AP_REQ
Key derivation constant for the service ticket in an AP-REQ
  1. static
  2. int
KD_AP_REQ_AUTHN
Key derivation constant for Authenticator in AP-REQ
  1. static
  2. int
KD_AS_REP
Key derivation constant for AS-REP
  1. static
  2. int
KD_AS_REP_SERV
Key derivation constant for AS-REP with session key
  1. static
  2. int
KD_AS_REQ_PA_ENC_TS
Key derivation constant for PA-ENC-TS in AS-REQ.
  1. static
  2. int
KD_TGS_REP
Key derivation constant for TGS-REP
  1. static
  2. int
KD_TGS_REP_SUB
  1. static
  2. int
KD_TGS_REQ_AUTHN
Key derivation constant for Authenticator in TGS-REQ
  1. static
  2. int
KD_TGS_REQ_CKSUM
Key derivation constant for the request checksum in TGS-REQ
  1. static
  2. byte[]
SIGNATURE_KEY
Byte array representation of the ASCII string "signaturekey", including the terminating null.

Constructor Summary

Constructor and Description
Rc4HMac()

Method Summary

Modifier and Type Method and Description
  1. int
blockSize()
DOCUMENT ME!
  1. byte[]
calculateChecksum(byte[] data,int size)
Unsupported.
  1. int
checksumSize()
DOCUMENT ME!
  1. int
checksumType()
DOCUMENT ME!
  1. int
confounderSize()
DOCUMENT ME!
  1. void
decrypt(byte[] cipher,byte[] key)
Unsupported.
  1. void
decrypt(byte[] cipher,byte[] key,byte[] ivec)
Unsupported.
  1. void
decrypt(byte[] cipher,byte[] key,int messageType)
DOCUMENT ME!
  1. byte[]
decryptedData(byte[] data)
  1. byte[]
encrypt(byte[] data,byte[] key)
Unsupported.
  1. byte[]
encrypt(byte[] data,byte[] key,byte[] ivec)
Unsupported.
  1. byte[]
encrypt(byte[] data,byte[] key,int messageType)
DOCUMENT ME!
  1. int
eType()
DOCUMENT ME!
  1. static
  2. byte[]
hmacMd5Digest(javax.crypto.Mac hmacMD5,byte[] key,byte[] data)
DOCUMENT ME!
  1. static
  2. byte[]
hmacMd5Digest(javax.crypto.Mac hmacMD5,byte[] key,byte[] data,int offset,int len)
DOCUMENT ME!
  1. static
  2. boolean
isValidMessageType(int messageType)
DOCUMENT ME!
  1. int
keySize()
DOCUMENT ME!
  1. int
keyType()
DOCUMENT ME!
  1. static
  2. byte[]
makeKey(byte[] key,int messageType)
DOCUMENT ME!
  1. static
  2. byte[]
makeKey(javax.crypto.Mac mac,byte[] key,int messageType)
DOCUMENT ME!
  1. static
  2. byte[]
messageTypeToBytes(int messageType)
Converts the input key derivation constant a four-byte array in little endian (that is, least-significant-bit-first) format.
  1. int
minimumPadSize()
DOCUMENT ME!
  1. static
  2. byte[]
rc4Encipher(byte[] key,byte[] data,boolean encrypt)
DOCUMENT ME!
  1. static
  2. byte[]
rc4Encipher(byte[] key,byte[] data,int offset,int len,boolean encrypt)
DOCUMENT ME!
  1. protected
  2. void
rc4HMacDecrypt(byte[] cipher,byte[] k1,byte[] k2)
DOCUMENT ME!
  1. protected
  2. byte[]
rc4HMacEncrypt(byte[] data,byte[] k1,byte[] k2)
DOCUMENT ME!
  1. static
  2. byte[]
stringToKey(java.lang.String password)
Converts the input (password) string to a key.
Methods inherited from class com.ibm.security.krb5.internal.crypto.EType
checksumField, copyChecksumField, dataSize, decrypt, encrypt, generateChecksum, getBuiltInDefaults, getDefaults, getDefaults, getInstance, getInstance, isChecksumEqual, isChecksumValid, isSupported, isSupported, padSize, resetChecksumField, setChecksum, startOfChecksum, startOfData, startOfPad, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

SIGNATURE_KEY

  1. public static final byte[] SIGNATURE_KEY
Byte array representation of the ASCII string "signaturekey", including the terminating null.

FORTY_BITS

  1. public static final byte[] FORTY_BITS
Byte array representation of the ASCII string "fortybits", including the terminating null.

KD_AS_REQ_PA_ENC_TS

  1. public static final int KD_AS_REQ_PA_ENC_TS
Key derivation constant for PA-ENC-TS in AS-REQ.
See Also:

KD_AP_REQ

  1. public static final int KD_AP_REQ
Key derivation constant for the service ticket in an AP-REQ
See Also:

KD_TGS_REQ_CKSUM

  1. public static final int KD_TGS_REQ_CKSUM
Key derivation constant for the request checksum in TGS-REQ
See Also:

KD_TGS_REQ_AUTHN

  1. public static final int KD_TGS_REQ_AUTHN
Key derivation constant for Authenticator in TGS-REQ
See Also:

KD_AS_REP

  1. public static final int KD_AS_REP
Key derivation constant for AS-REP
See Also:

KD_AS_REP_SERV

  1. public static final int KD_AS_REP_SERV
Key derivation constant for AS-REP with session key
See Also:

KD_TGS_REP

  1. public static final int KD_TGS_REP
Key derivation constant for TGS-REP
See Also:

KD_TGS_REP_SUB

  1. public static final int KD_TGS_REP_SUB
See Also:

KD_AP_REQ_AUTHN

  1. public static final int KD_AP_REQ_AUTHN
Key derivation constant for Authenticator in AP-REQ
See Also:

KD_AP_REP

  1. public static final int KD_AP_REP
Key derivation constant for the server-returned AP-REP
See Also:

Constructor Detail

Rc4HMac

  1. public Rc4HMac()

Method Detail

messageTypeToBytes

  1. public static byte[] messageTypeToBytes( int messageType)
Converts the input key derivation constant a four-byte array in little endian (that is, least-significant-bit-first) format.
Parameters:
messageType - DOCUMENT ME!
Returns:
DOCUMENT ME!

isValidMessageType

  1. public static boolean isValidMessageType( int messageType)
DOCUMENT ME!
Parameters:
messageType - DOCUMENT ME!
Returns:
DOCUMENT ME!

stringToKey

  1. public static byte[] stringToKey( java.lang.String password)
  2. throws KrbCryptoException
Converts the input (password) string to a key.
Parameters:
password - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:

encrypt

  1. public byte[] encrypt(byte[] data,
  2. byte[] key,
  3. int messageType)
  4. throws KrbCryptoException
DOCUMENT ME!
Overrides:
encrypt in class EType
Parameters:
data - DOCUMENT ME!
key - DOCUMENT ME!
messageType - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

rc4HMacEncrypt

  1. protected byte[] rc4HMacEncrypt( byte[] data,
  2. byte[] k1,
  3. byte[] k2)
  4. throws KrbCryptoException
DOCUMENT ME!
Parameters:
data - DOCUMENT ME!
k1 - DOCUMENT ME!
k2 - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

decrypt

  1. public void decrypt(byte[] cipher,
  2. byte[] key,
  3. int messageType)
  4. throws KrbApErrException
  5. KrbCryptoException
DOCUMENT ME!
Overrides:
decrypt in class EType
Parameters:
cipher - DOCUMENT ME!
key - DOCUMENT ME!
messageType - DOCUMENT ME!
Throws:
KrbApErrException - DOCUMENT ME!
KrbCryptoException - DOCUMENT ME!

rc4HMacDecrypt

  1. protected void rc4HMacDecrypt(byte[] cipher,
  2. byte[] k1,
  3. byte[] k2)
  4. throws KrbApErrException
  5. KrbCryptoException
DOCUMENT ME!
Parameters:
cipher - DOCUMENT ME!
k1 - DOCUMENT ME!
k2 - DOCUMENT ME!
Throws:
KrbApErrException - DOCUMENT ME!
KrbCryptoException - DOCUMENT ME!

makeKey

  1. public static byte[] makeKey(byte[] key,
  2. int messageType)
  3. throws KrbCryptoException
DOCUMENT ME!
Parameters:
key - DOCUMENT ME!
messageType - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

makeKey

  1. public static byte[] makeKey(javax.crypto.Mac mac,
  2. byte[] key,
  3. int messageType)
  4. throws KrbCryptoException
DOCUMENT ME!
Parameters:
mac - DOCUMENT ME!
key - DOCUMENT ME!
messageType - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

rc4Encipher

  1. public static byte[] rc4Encipher( byte[] key,
  2. byte[] data,
  3. boolean encrypt)
  4. throws java.lang.Exception
DOCUMENT ME!
Parameters:
key - DOCUMENT ME!
data - DOCUMENT ME!
encrypt - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.lang.Exception - DOCUMENT ME!

rc4Encipher

  1. public static byte[] rc4Encipher( byte[] key,
  2. byte[] data,
  3. int offset,
  4. int len,
  5. boolean encrypt)
  6. throws java.lang.Exception
DOCUMENT ME!
Parameters:
key - DOCUMENT ME!
data - DOCUMENT ME!
offset - DOCUMENT ME!
len - DOCUMENT ME!
encrypt - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.lang.Exception - DOCUMENT ME!

hmacMd5Digest

  1. public static byte[] hmacMd5Digest( javax.crypto.Mac hmacMD5,
  2. byte[] key,
  3. byte[] data)
  4. throws java.lang.Exception
DOCUMENT ME!
Parameters:
hmacMD5 - DOCUMENT ME!
key - DOCUMENT ME!
data - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.lang.Exception - DOCUMENT ME!

hmacMd5Digest

  1. public static byte[] hmacMd5Digest( javax.crypto.Mac hmacMD5,
  2. byte[] key,
  3. byte[] data,
  4. int offset,
  5. int len)
  6. throws java.lang.Exception
DOCUMENT ME!
Parameters:
hmacMD5 - DOCUMENT ME!
key - DOCUMENT ME!
data - DOCUMENT ME!
offset - DOCUMENT ME!
len - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
java.lang.Exception - DOCUMENT ME!
KrbCryptoException - DOCUMENT ME!

decryptedData

  1. public byte[] decryptedData(byte[] data)
Description copied from class: EType
DOCUMENT ME!
Overrides:
decryptedData in class EType
Parameters:
data - DOCUMENT ME!
Returns:
DOCUMENT ME!

eType

  1. public int eType()
DOCUMENT ME!
Specified by:
eType in class EType
Returns:
DOCUMENT ME!

confounderSize

  1. public int confounderSize()
DOCUMENT ME!
Specified by:
Returns:
DOCUMENT ME!

minimumPadSize

  1. public int minimumPadSize()
DOCUMENT ME!
Specified by:
Returns:
DOCUMENT ME!

blockSize

  1. public int blockSize()
DOCUMENT ME!
Specified by:
blockSize in class EType
Returns:
DOCUMENT ME!

checksumSize

  1. public int checksumSize()
DOCUMENT ME!
Specified by:
checksumSize in class EType
Returns:
DOCUMENT ME!

checksumType

  1. public int checksumType()
DOCUMENT ME!
Specified by:
checksumType in class EType
Returns:
DOCUMENT ME!

keyType

  1. public int keyType()
DOCUMENT ME!
Specified by:
keyType in class EType
Returns:
DOCUMENT ME!

keySize

  1. public int keySize()
DOCUMENT ME!
Specified by:
keySize in class EType
Returns:
DOCUMENT ME!

calculateChecksum

  1. public byte[] calculateChecksum( byte[] data,
  2. int size)
  3. throws KrbCryptoException
Unsupported.
Specified by:
Parameters:
data - DOCUMENT ME!
size - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

encrypt

  1. public byte[] encrypt(byte[] data,
  2. byte[] key)
  3. throws KrbCryptoException
Unsupported.
Specified by:
encrypt in class EType
Parameters:
data - DOCUMENT ME!
key - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

encrypt

  1. public byte[] encrypt(byte[] data,
  2. byte[] key,
  3. byte[] ivec)
  4. throws KrbCryptoException
Unsupported.
Specified by:
encrypt in class EType
Parameters:
data - DOCUMENT ME!
key - DOCUMENT ME!
ivec - DOCUMENT ME!
Returns:
DOCUMENT ME!
Throws:
KrbCryptoException - DOCUMENT ME!

decrypt

  1. public void decrypt(byte[] cipher,
  2. byte[] key)
  3. throws KrbApErrException
  4. KrbCryptoException
Unsupported.
Specified by:
decrypt in class EType
Parameters:
cipher - DOCUMENT ME!
key - DOCUMENT ME!
Throws:
KrbApErrException - DOCUMENT ME!
KrbCryptoException - DOCUMENT ME!

decrypt

  1. public void decrypt(byte[] cipher,
  2. byte[] key,
  3. byte[] ivec)
  4. throws KrbApErrException
  5. KrbCryptoException
Unsupported.
Specified by:
decrypt in class EType
Parameters:
cipher - DOCUMENT ME!
key - DOCUMENT ME!
ivec - DOCUMENT ME!
Throws:
KrbApErrException - DOCUMENT ME!
KrbCryptoException - DOCUMENT ME!