コード例 #1
0
def import_folder(epath, mpoint, secret,  automount, autodelete):
	if _get_items(epath=epath):
		return True
	configuration = Configuration()
	configuration.create_folder(epath,mpoint,automount,autodelete)
	configuration.save()
	cfipm = CFIPasswordManager()
	ans = cfipm.createEncriptedFolder(epath,secret)
	return True
コード例 #2
0
def add_folder(epath, mpoint, secret, automount, autodelete):
	print(is_folder_encrypted(epath))
	if is_folder_encrypted(epath):
		raise AlreadyEncrypted()
		return False
	"""Add new EncFS item to keyring."""
	print(_get_items(epath=epath))
	if _get_items(epath=epath):
		return True
	configuration = Configuration()
	configuration.create_folder(epath,mpoint,automount,autodelete)
	configuration.save()
	cfipm = CFIPasswordManager()
	cfipm.createEncriptedFolder(epath,secret)
	#
	return create_crypted_folder(epath, mpoint, secret)
コード例 #3
0
def edit_folder(epath, new_mpoint = None, new_secret = None, new_automount = False, new_autodelete = False):	
	print('Edit folders')
	folder = _get_items(epath=epath)
	if folder != None:
		mpoint = folder["mount-point"]
		automount = (folder["auto-mount"] == 'yes')
		autodelete = (folder['auto-delete'] == 'yes')
		secret = get_secret(epath)	
		if new_mpoint == None and new_secret == None and new_automount == automount and new_autodelete == autodelete:
			return True
		if new_secret != None and secret != new_secret:
			p1 = subprocess.Popen([ECHO, "-e", secret + "\n" + new_secret + "\n"],\
				stdout=subprocess.PIPE)
			p2 = subprocess.Popen([ENCFSCTL, "autopasswd", epath],\
				stdin=p1.stdout, stdout=subprocess.PIPE)
			p2.communicate()[0]
			if p2.poll() is not 0:
				raise BadPassword()
			cfipm = CFIPasswordManager()
			ans = cfipm.createEncriptedFolder(epath,new_secret)
			
		if new_mpoint != None and new_mpoint != mpoint:
			if is_folder_mounted(epath) == True:
				if unmount_folder(epath) == False:
					raise NotUnmount()
			try:
				delete_it(mpoint)
			except:
				pass
			delete_it(new_mpoint)
			if not os.path.exists(new_mpoint):
				os.mkdir(new_mpoint)
			mpoint = new_mpoint
		# update item data
		configuration = Configuration()
		configuration.set_folder_mount_point(epath,mpoint)
		if new_automount == True:
			configuration.set_folder_auto_mount(epath,'yes')
		else:
			configuration.set_folder_auto_mount(epath,'no')
		if new_autodelete == True:
			configuration.set_folder_auto_delete(epath,'yes')
		else:
			configuration.set_folder_auto_delete(epath,'no')
		configuration.save()
	return True
コード例 #4
0
def remove_folder(epath):
	"""Remove EncFS item from keyring."""
	if is_folder_mounted(epath) == True:
		print('Is folder mounted')
		if unmount_folder(epath) == False:
			raise NotUnmount()
	'''
	if delete_it(epath) == False:
		raise NotUnmount()
	'''
	folder = _get_items(epath)
	if folder:
		mpoint = folder['mount-point']
		if delete_it(mpoint) == False:
			raise NotUnmount()
	configuration = Configuration()
	configuration.delete_folder(epath)
	configuration.save()
	cfipm = CFIPasswordManager()
	cfipm.removeEncriptedFolder(epath)
	return True
コード例 #5
0
def get_secret(epath):
	cfipm = CFIPasswordManager()
	ans = cfipm.find_folder(epath)
	if ans:
		return ans[1]
	return NoEncrypted()