Esempio n. 1
0
def inp_encrypt(file_name):
    global enable_encrypt
    if enable_encrypt == Ture:
        iv = "reallybadiv"
        ls = zip_lsdir(file_name)
        files_to_encrypt = []
        bs = 32

        password = inp_get_token_value("info.inp",
                                       "#info_password",
                                       archive=file_name)
        if password == "":
            return False

        for i in range(0, len(ls)):
            if ls[i].endswith(".inp") == True and ls[i] != "info.inp":
                lines = []
                lines = inp_load_file(ls[i], archive=file_name, mode="b")

                m = hashlib.md5()
                m.update(password.encode('utf-8'))
                key_hash = m.digest()

                m = hashlib.md5()
                m.update(iv.encode('utf-8'))
                iv_hash = m.digest()

                encryptor = AES.new(key_hash, AES.MODE_CBC, IV=iv_hash)
                start = "encrypt"
                start = start.encode('utf-8')
                s = (int((len(lines)) / 16.0) + 1) * 16
                data = bytearray(int(s))

                for ii in range(0, len(lines)):
                    data[ii] = lines[ii]

                ret = encryptor.encrypt(bytes(data))

                data = start + ret

                replace_file_in_zip_archive(file_name, ls[i], data, mode="b")

        inp_update_token_value("info.inp",
                               "#info_password",
                               "encrypted",
                               archive=file_name)
Esempio n. 2
0
def inp_update_token_value(file_path, token, replace,line_number):
	lines=[]
	if token=="#Tll":
		inp_update_token_value("thermal.inp", "#Tlr", replace,1)
		files=inp_lsdir(file_path)
		for i in range(0,len(files)):
			if files[i].startswith("dos") and files[i].endswith(".inp"):

				inp_update_token_value(files[i], "#Tstart", replace,1)
				try:
					upper_temp=str(float(replace)+5)
				except:
					upper_temp="300.0"
				inp_update_token_value(files[i], "#Tstop", upper_temp,1)

	path=os.path.dirname(file_path)

	zip_file_name=os.path.join(path,"sim.gpvdm")

	read_lines_from_archive(lines,zip_file_name,os.path.basename(file_path))


	new_lines=inp_replace_multi_line_token(lines,token,replace)


	if os.path.isfile(file_path):
		fh, abs_path = mkstemp()

		dump='\n'.join(new_lines)

		dump=dump.rstrip("\n")
		dump=dump.encode('ascii')
		f=open(abs_path, mode='wb')
		written = f.write(dump)
		f.close()

		os.close(fh)
		shutil.move(abs_path, file_path)
	else:
		replace_file_in_zip_archive(zip_file_name,os.path.basename(file_path),new_lines)
Esempio n. 3
0
def inp_update_token_value(file_path, token, replace,line_number):
	lines=[]
	if token=="#Tll":
		inp_update_token_value("thermal.inp", "#Tlr", replace,1)
		inp_update_token_value("dos0.inp", "#Tstart", replace,1)
		try:
			upper_temp=str(float(replace)+5)
		except:
			upper_temp="300.0"
		inp_update_token_value("dos0.inp", "#Tstop", upper_temp,1)

	path=os.path.dirname(file_path)

	zip_file_name=os.path.join(path,"sim.opvdm")

	read_lines_from_archive(lines,zip_file_name,os.path.basename(file_path))

	for i in range(0, len(lines)):
		if lines[i]==token:
			lines[i+line_number]=replace
			break


	if os.path.isfile(file_path):
		fh, abs_path = mkstemp()

		dump='\n'.join(lines)

		#for item in lines:
		#	dump=dump+item+"\n"

		dump=dump.rstrip("\n")
		f=open(abs_path, mode='wb')
		lines = f.write(dump)
		f.close()

		os.close(fh)
		shutil.move(abs_path, file_path)
	else:
		replace_file_in_zip_archive(zip_file_name,os.path.basename(file_path),lines)