import os
import sys

deltext=""
slashtext=""
copytext=""
if sys.platform.startswith("darwin")  :
	copytext="cp "
	deltext="rm "
	slashtext="/"
if sys.platform.startswith("linux")  :
	copytext="cp "
	deltext="rm "
	slashtext="/"
if sys.platform.startswith("win") :
	copytext="copy "
	deltext="del "
	slashtext="\\"

chosen=[]
cptr=0

def replace(namefile,oldtext,newtext):
	f = open(namefile,'r')
	filedata = f.read()
	f.close()

	newdata = filedata.replace(oldtext,newtext)

	f = open(namefile,'w')
	f.write(newdata)
	f.close()


def rsaset(tb,nb,base,ml) :
	global deltext,slashtext,copytext
	global cptr,chosen

	chosen.append(tb)
	cptr=cptr+1

	fpath="amcl"+slashtext+tb+slashtext
	os.system("mkdir amcl"+slashtext+tb)

	os.system(copytext+"ARCH64.go "+fpath+"ARCH.go")
	os.system(copytext+"BIG64.go "+fpath+"BIG.go")
	os.system(copytext+"DBIG.go "+fpath+"DBIG.go")
	os.system(copytext+"FF64.go "+fpath+"FF.go")
	os.system(copytext+"RSA.go "+fpath+"RSA.go")
	os.system(copytext+"CONFIG_BIG.go "+fpath+"CONFIG_BIG.go")
	os.system(copytext+"CONFIG_FF.go "+fpath+"CONFIG_FF.go")

	replace(fpath+"ARCH.go","XXX",tb)
	replace(fpath+"CONFIG_BIG.go","XXX",tb)
	replace(fpath+"CONFIG_FF.go","XXX",tb)
	replace(fpath+"BIG.go","XXX",tb)
	replace(fpath+"DBIG.go","XXX",tb)
	replace(fpath+"FF.go","XXX",tb)
	replace(fpath+"RSA.go","XXX",tb)

	replace(fpath+"CONFIG_BIG.go","@NB@",nb)
	replace(fpath+"CONFIG_BIG.go","@BASE@",base)

	replace(fpath+"CONFIG_FF.go","@ML@",ml);

def curveset(tc,nb,base,nbt,m8,mt,ct,pf,stw,sx,ab,cs) :
	global deltext,slashtext,copytext
	global cptr,chosen

	chosen.append(tc)
	cptr=cptr+1

	fpath="amcl"+slashtext+tc+slashtext
	os.system("mkdir amcl"+slashtext+tc)

	os.system(copytext+"ARCH64.go "+fpath+"ARCH.go")
	os.system(copytext+"BIG64.go "+fpath+"BIG.go")
	os.system(copytext+"DBIG.go "+fpath+"DBIG.go")
	os.system(copytext+"FP.go "+fpath+"FP.go")
	os.system(copytext+"ECP.go "+fpath+"ECP.go")
	os.system(copytext+"ECDH.go "+fpath+"ECDH.go")
	os.system(copytext+"CONFIG_BIG.go "+fpath+"CONFIG_BIG.go")
	os.system(copytext+"CONFIG_FIELD.go "+fpath+"CONFIG_FIELD.go")
	os.system(copytext+"CONFIG_CURVE.go "+fpath+"CONFIG_CURVE.go")
	os.system(copytext+"ROM_"+tc+"_64.go "+fpath+"ROM.go")

	replace(fpath+"ARCH.go","XXX",tc)
	replace(fpath+"BIG.go","XXX",tc)
	replace(fpath+"DBIG.go","XXX",tc)
	replace(fpath+"FP.go","XXX",tc)
	replace(fpath+"ECP.go","XXX",tc)
	replace(fpath+"ECDH.go","XXX",tc)
	replace(fpath+"CONFIG_BIG.go","XXX",tc)
	replace(fpath+"CONFIG_FIELD.go","XXX",tc)
	replace(fpath+"CONFIG_CURVE.go","XXX",tc)


	replace(fpath+"CONFIG_BIG.go","@NB@",nb)
	replace(fpath+"CONFIG_BIG.go","@BASE@",base)

	replace(fpath+"CONFIG_FIELD.go","@NBT@",nbt)
	replace(fpath+"CONFIG_FIELD.go","@M8@",m8)
	replace(fpath+"CONFIG_FIELD.go","@MT@",mt)

	ib=int(base)
	inb=int(nb)
	inbt=int(nbt)
	sh=ib*(1+((8*inb-1)//ib))-inbt
	if sh > 30 :
		sh=30
	replace(fpath+"CONFIG_FIELD.go","@SH@",str(sh))


	replace(fpath+"CONFIG_CURVE.go","@CT@",ct)
	replace(fpath+"CONFIG_CURVE.go","@PF@",pf)

	replace(fpath+"CONFIG_CURVE.go","@ST@",stw)
	replace(fpath+"CONFIG_CURVE.go","@SX@",sx)
	replace(fpath+"CONFIG_CURVE.go","@AB@",ab)

	if cs == "128" :
		replace(fpath+"CONFIG_CURVE.go","@HT@","32")
		replace(fpath+"CONFIG_CURVE.go","@AK@","16")
	if cs == "192" :
		replace(fpath+"CONFIG_CURVE.go","@HT@","48")
		replace(fpath+"CONFIG_CURVE.go","@AK@","24")
	if cs == "256" :
		replace(fpath+"CONFIG_CURVE.go","@HT@","64")
		replace(fpath+"CONFIG_CURVE.go","@AK@","32")

	if pf != "NOT" :

		os.system(copytext+"FP2.go "+fpath+"FP2.go")
		os.system(copytext+"FP4.go "+fpath+"FP4.go")

		replace(fpath+"FP2.go","XXX",tc)
		replace(fpath+"FP4.go","XXX",tc)
		
		if cs == "128" :

			os.system(copytext+"ECP2.go "+fpath+"ECP2.go")
			os.system(copytext+"FP12.go "+fpath+"FP12.go")
			os.system(copytext+"PAIR.go "+fpath+"PAIR.go")
			os.system(copytext+"MPIN.go "+fpath+"MPIN.go")
			os.system(copytext+"BLS.go "+fpath+"BLS.go")

			replace(fpath+"FP12.go","XXX",tc)
			replace(fpath+"ECP2.go","XXX",tc)
			replace(fpath+"PAIR.go","XXX",tc)
			replace(fpath+"MPIN.go","XXX",tc)
			replace(fpath+"BLS.go","XXX",tc)

		if cs == "192" :
			os.system(copytext+"FP24.go "+fpath+"FP24.go")
			os.system(copytext+"FP8.go "+fpath+"FP8.go")
			os.system(copytext+"ECP4.go "+fpath+"ECP4.go")
			os.system(copytext+"PAIR192.go "+fpath+"PAIR192.go")
			os.system(copytext+"MPIN192.go "+fpath+"MPIN192.go")
			os.system(copytext+"BLS192.go "+fpath+"BLS192.go")

			replace(fpath+"FP24.go","XXX",tc)
			replace(fpath+"FP8.go","XXX",tc)
			replace(fpath+"ECP4.go","XXX",tc)
			replace(fpath+"PAIR192.go","XXX",tc)
			replace(fpath+"MPIN192.go","XXX",tc)
			replace(fpath+"BLS192.go","XXX",tc)

		if cs == "256" :
			os.system(copytext+"FP48.go "+fpath+"FP48.go")
			os.system(copytext+"FP16.go "+fpath+"FP16.go")
			os.system(copytext+"FP8.go "+fpath+"FP8.go")
			os.system(copytext+"ECP8.go "+fpath+"ECP8.go")
			os.system(copytext+"PAIR256.go "+fpath+"PAIR256.go")
			os.system(copytext+"MPIN256.go "+fpath+"MPIN256.go")
			os.system(copytext+"BLS256.go "+fpath+"BLS256.go")

			replace(fpath+"FP48.go","XXX",tc)
			replace(fpath+"FP16.go","XXX",tc)
			replace(fpath+"FP8.go","XXX",tc)
			replace(fpath+"ECP8.go","XXX",tc)
			replace(fpath+"PAIR256.go","XXX",tc)
			replace(fpath+"MPIN256.go","XXX",tc)
			replace(fpath+"BLS256.go","XXX",tc)


os.system("mkdir amcl")
os.system(copytext+ "HASH*.go amcl"+slashtext+".")
os.system(copytext+ "SHA3.go amcl"+slashtext+".")
os.system(copytext+ "RAND.go amcl"+slashtext+".")
os.system(copytext+ "AES.go amcl"+slashtext+".")
os.system(copytext+ "GCM.go amcl"+slashtext+".")
os.system(copytext+ "NHS.go amcl"+slashtext+".")

print("Elliptic Curves")
print("1. ED25519")
print("2. C25519")
print("3. NIST256")
print("4. BRAINPOOL")
print("5. ANSSI")
print("6. HIFIVE")
print("7. GOLDILOCKS")
print("8. NIST384")
print("9. C41417")
print("10. NIST521\n")
print("11. NUMS256W")
print("12. NUMS256E")
print("13. NUMS384W")
print("14. NUMS384E")
print("15. NUMS512W")
print("16. NUMS512E")
print("17. SECP256K1\n")


print("Pairing-Friendly Elliptic Curves")
print("18. BN254")
print("19. BN254CX")
print("20. BLS383")
print("21. BLS381")
print("22. FP256BN")
print("23. FP512BN")
print("24. BLS461\n")
print("25. BLS24")
print("26. BLS48\n")


print("RSA")
print("27. RSA2048")
print("28. RSA3072")
print("29. RSA4096")

selection=[]
ptr=0
max=30

curve_selected=False
pfcurve_selected=False
rsa_selected=False

while ptr<max:
	x=int(input("Choose a Scheme to support - 0 to finish: "))
	if x == 0:
		break
#	print("Choice= ",x)
	already=False
	for i in range(0,ptr):
		if x==selection[i]:
			already=True
			break
	if already:
		continue

	selection.append(x)
	ptr=ptr+1

# curveset(big,field,curve,big_length_bytes,bits_in_base,modulus_bits,modulus_mod_8,modulus_type,curve_type,pairing_friendly,sextic twist,sign of x,ate bits,curve security)
# where "curve" is the common name for the elliptic curve
# big_length_bytes is the modulus size rounded up to a number of bytes
# bits_in_base gives the number base used for 64 bit architectures, as n where the base is 2^n
# modulus_bits is the actual bit length of the modulus.
# modulus_mod_8 is the remainder when the modulus is divided by 8
# modulus_type is NOT_SPECIAL, or PSEUDO_MERSENNE, or MONTGOMERY_Friendly, or GENERALISED_MERSENNE (supported for GOLDILOCKS only)
# curve_type is WEIERSTRASS, EDWARDS or MONTGOMERY
# pairing_friendly is BN, BLS or NOT (if not pairing friendly
# ate bits is number of bits in Ate parameter (from romgen program)
# curve security is AES equiavlent, rounded up.


	if x==1:
		curveset("ED25519","32","56","255","5","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==2:
		curveset("C25519","32","56","255","5","PSEUDO_MERSENNE","MONTGOMERY","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==3:
		curveset("NIST256","32","56","256","7","NOT_SPECIAL","WEIERSTRASS","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==4:
		curveset("BRAINPOOL","32","56","256","7","NOT_SPECIAL","WEIERSTRASS","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==5:
		curveset("ANSSI","32","56","256","7","NOT_SPECIAL","WEIERSTRASS","NOT","NOT","NOT","NOT","128")
		curve_selected=True

	if x==6:
		curveset("HIFIVE","42","60","336","5","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","192")
		curve_selected=True
	if x==7:
		curveset("GOLDILOCKS","56","58","448","7","GENERALISED_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","256")
		curve_selected=True
	if x==8:
		curveset("NIST384","48","56","384","7","NOT_SPECIAL","WEIERSTRASS","NOT","NOT","NOT","NOT","192")
		curve_selected=True
	if x==9:
		curveset("C41417","52","60","414","7","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","256")
		curve_selected=True
	if x==10:
		curveset("NIST521","66","60","521","7","PSEUDO_MERSENNE","WEIERSTRASS","NOT","NOT","NOT","NOT","256")
		curve_selected=True

	if x==11:
		curveset("NUMS256W","32","56","256","3","PSEUDO_MERSENNE","WEIERSTRASS","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==12:
		curveset("NUMS256E","32","56","256","3","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","128")
		curve_selected=True
	if x==13:
		curveset("NUMS384W","48","58","384","3","PSEUDO_MERSENNE","WEIERSTRASS","NOT","NOT","NOT","NOT","192")
		curve_selected=True
	if x==14:
		curveset("NUMS384E","48","56","384","3","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","192")
		curve_selected=True
	if x==15:
		curveset("NUMS512W","64","60","512","7","PSEUDO_MERSENNE","WEIERSTRASS","NOT","NOT","NOT","NOT","256")
		curve_selected=True
	if x==16:
		curveset("NUMS512E","64","60","512","7","PSEUDO_MERSENNE","EDWARDS","NOT","NOT","NOT","NOT","256")
		curve_selected=True

	if x==17:
		curveset("SECP256K1","32","56","256","7","NOT_SPECIAL","WEIERSTRASS","NOT","NOT","NOT","NOT","128")
		curve_selected=True

	if x==18:
		curveset("BN254","32","56","254","3","NOT_SPECIAL","WEIERSTRASS","BN","D_TYPE","NEGATIVEX","66","128")
		pfcurve_selected=True
	if x==19:
		curveset("BN254CX","32","56","254","3","NOT_SPECIAL","WEIERSTRASS","BN","D_TYPE","NEGATIVEX","66","128")
		pfcurve_selected=True
	if x==20:
		curveset("BLS383","48","58","383","3","NOT_SPECIAL","WEIERSTRASS","BLS","M_TYPE","POSITIVEX","65","128")
		pfcurve_selected=True

	if x==21:
		curveset("BLS381","48","58","381","3","NOT_SPECIAL","WEIERSTRASS","BLS","M_TYPE","NEGATIVEX","65","128")
		pfcurve_selected=True


	if x==22:
		curveset("FP256BN","32","56","256","3","NOT_SPECIAL","WEIERSTRASS","BN","M_TYPE","NEGATIVEX","66","128")
		pfcurve_selected=True
	if x==23:
		curveset("FP512BN","64","60","512","3","NOT_SPECIAL","WEIERSTRASS","BN","M_TYPE","POSITIVEX","130","128")
		pfcurve_selected=True
# https://eprint.iacr.org/2017/334.pdf
	if x==24:
		curveset("BLS461","58","60","461","3","NOT_SPECIAL","WEIERSTRASS","BLS","M_TYPE","NEGATIVEX","78","128")
		pfcurve_selected=True

	if x==25:
		curveset("BLS24","60","56","479","3","NOT_SPECIAL","WEIERSTRASS","BLS","M_TYPE","POSITIVEX","49","192")
		pfcurve_selected=True

	if x==26:
		curveset("BLS48","70","58","556","3","NOT_SPECIAL","WEIERSTRASS","BLS","M_TYPE","POSITIVEX","42","256")
		pfcurve_selected=True


# rsaset(rsaname,big_length_bytes,bits_in_base,multiplier)
# The RSA name reflects the modulus size, which is a 2^m multiplier
# of the underlying big length

# There are choices here, different ways of getting the same result, but some faster than others
	if x==27:
		#256 is slower but may allow reuse of 256-bit BIGs used for elliptic curve
		#512 is faster.. but best is 1024
		rsaset("RSA2048","128","58","2")
		#rsaset("RSA2048","64","60","4")
		#rsaset("RSA2048","32","56","8")
		rsa_selected=True
	if x==28:
		rsaset("RSA3072","48","56","8")
		rsa_selected=True
	if x==29:
		#rsaset("RSA4096","32","56","16")
		rsaset("RSA4096","64","60","8")
		rsa_selected=True
