Академический Документы
Профессиональный Документы
Культура Документы
PREV CLASS NEXT CLASS SUMMARY: NESTED | FIELD | CONSTR | METHOD FRAMES NO FRAMES All Classes DETAIL: FIELD | CONSTR | METHOD
net.java.sip.communicator.sip.security
Class Milenage
A sample implementation of the f1, f1*, f2, f3, f4, f5, f5* algorithms, as defined by 3GPP TS 35.206 (MILENAGE Algorithm Set)
Field Summary
private console static Console private rijndael static Rijndael32Bit
Constructor Summary
Milenage()
Method Summary
static byte[] computeOpC(byte[] secretKey, byte[] op)
Algorithm f1.
static byte[] f1star(byte[] secretKey, byte[] rand, byte[] op_c, byte[] sqn, byte[] amf)
Algorithm f1*.
static byte[] f2(byte[] secretKey, byte[] rand, byte[] op_c)
Algorithm f2.
static byte[] f3(byte[] secretKey, byte[] rand, byte[] op_c)
Algorithm f3.
static byte[] f4(byte[] secretKey, byte[] rand, byte[] op_c)
Algorithm f4.
static byte[] f5(byte[] secretKey, byte[] rand, byte[] op_c)
Algorithm f5.
static byte[] f5star(byte[] secretKey, byte[] rand, byte[] op_c)
Field Detail
console
private static Console console
rijndael
private static Rijndael32Bit rijndael
Constructor Detail
Milenage
public Milenage()
Method Detail
f1
public static byte[] f1(byte[] secretKey, byte[] rand, byte[] op_c, byte[] sqn, byte[] amf) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f1. Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF. Parameters: secretKey rand op_c sqn amf Returns: MAC-A Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException
f2
public static byte[] f2(byte[] secretKey, byte[] rand, byte[] op_c) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f2. Takes key K and random challenge RAND, and returns response RES. Parameters: secretKey rand op_c Returns: RES (or XRES) Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException
f3
public static byte[] f3(byte[] secretKey,
Algorithm f3. Takes key K and random challenge RAND, and returns confidentiality key CK. Parameters: secretKey rand op_c Returns: CK confidentiality key Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException
f4
public static byte[] f4(byte[] secretKey, byte[] rand, byte[] op_c) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f4. Takes key K and random challenge RAND, and returns integrity key IK and anonymity key AK. Parameters: secretKey rand op_c Returns: IK integrity key Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException
f5
public static byte[] f5(byte[] secretKey, byte[] rand, byte[] op_c) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f5. Takes key K and random challenge RAND, and returns anonymity key AK. Parameters: secretKey rand -
op_c
f1star
public static byte[] f1star(byte[] secretKey, byte[] rand, byte[] op_c, byte[] sqn, byte[] amf) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f1*. Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF. Parameters: secretKey rand op_c sqn amf Returns: MAC-S resynch authentication code Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException
f5star
public static byte[] f5star(byte[] secretKey, byte[] rand, byte[] op_c) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Algorithm f5*. Takes key K and random challenge RAND, and return resynch anonymity key AK Parameters: secretKey rand op_c Returns: AK Throws:
java.security.InvalidKeyException
java.lang.ArrayIndexOutOfBoundsException
computeOpC
public static byte[] computeOpC(byte[] secretKey, byte[] op) throws java.security.InvalidKeyException, java.lang.ArrayIndexOutOfBoundsException
Function to compute OPc from OP and K. Assumes key schedule has already been performed Parameters: secretKey op Returns: OPc Throws:
java.security.InvalidKeyException java.lang.ArrayIndexOutOfBoundsException