Make derive_milenage_opc and calculate_luhn publicly available through utils.py

Change-Id: I2effc85fd55da0981de0ada74dcb28b7e8e56a01
diff --git a/pySim-prog.py b/pySim-prog.py
index 44ca1fd..c08f43b 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -39,7 +39,7 @@
 
 from pySim.commands import SimCardCommands
 from pySim.cards import _cards_classes
-from pySim.utils import h2b, swap_nibbles, rpad
+from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn
 
 
 def parse_options():
@@ -234,24 +234,6 @@
 
 	return ''.join(out)
 
-def calculate_luhn(cc):
-	num = map(int, str(cc))
-	check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10
-	return 0 if check_digit == 10 else check_digit
-
-def derive_milenage_opc(ki_hex, op_hex):
-	"""
-	Run the milenage algorithm.
-	"""
-	from Crypto.Cipher import AES
-	from Crypto.Util.strxor import strxor
-	from pySim.utils import b2h
-
-	# We pass in hex string and now need to work on bytes
-	aes = AES.new(h2b(ki_hex))
-	opc_bytes = aes.encrypt(h2b(op_hex))
-	return b2h(strxor(opc_bytes, h2b(op_hex)))
-
 def gen_parameters(opts):
 	"""Generates Name, ICCID, MCC, MNC, IMSI, SMSP, Ki, PIN-ADM from the
 	options given by the user"""