mirror of
				https://github.com/vyos/vyos-build.git
				synced 2025-10-01 20:28:40 +02:00 
			
		
		
		
	Merge pull request #999 from sarthurdev/T7628
tpm: T7628: Extend test for non-TPM backed encryption
This commit is contained in:
		
						commit
						3e02e42e76
					
				| @ -754,6 +754,88 @@ try: | ||||
| 
 | ||||
|         verify_config() | ||||
| 
 | ||||
|         # Shutdown VM | ||||
|         shutdownVM(c, log, 'Shutdown VM for non-TPM backed test') | ||||
| 
 | ||||
|         # Clear swtpm | ||||
|         from glob import glob | ||||
|         for f in glob(f'{tpm_folder}/*'): | ||||
|             os.remove(f) | ||||
| 
 | ||||
|         # Shutdown kills swtpm | ||||
|         tpm_process.join() | ||||
|         tpm_process.close() | ||||
|         tpm_process = None | ||||
| 
 | ||||
|         # Booting back into VM | ||||
|         log.info('Booting system without TPM') | ||||
|         cmd = get_qemu_cmd(qemu_name, args.uefi, args.disk, raid=diskname_raid, tpm=False, vnc_enabled=args.vnc) | ||||
|         log.debug(f'Executing command: {cmd}') | ||||
|         c = pexpect.spawn(cmd, logfile=stl) | ||||
| 
 | ||||
|         try: | ||||
|             c.expect('The highlighted entry will be executed automatically in', timeout=10) | ||||
|             c.sendline('') | ||||
|         except pexpect.TIMEOUT: | ||||
|             log.warning('Did not find GRUB countdown window, ignoring') | ||||
| 
 | ||||
|         loginVM(c, log) | ||||
| 
 | ||||
|         # New recovery key | ||||
|         test_recovery_key = ''.join(choices(string.ascii_uppercase + string.digits, k=32)) | ||||
| 
 | ||||
|         log.info('Encrypting config') | ||||
|         c.sendline('encryption enable') | ||||
|         c.expect('Are you sure you want to proceed\?.*') | ||||
|         c.sendline('y') | ||||
|         c.expect('Enter key: ') | ||||
|         c.sendline(test_recovery_key) | ||||
|         c.expect('Enter size of encrypted config partition.*', timeout=30) | ||||
|         c.sendline('32') | ||||
|         c.expect('Encrypted config volume has been enabled', timeout=tpm_timeout) | ||||
|         c.expect('Backup the key in a safe place!') | ||||
|         c.expect(f'Key: {test_recovery_key}') | ||||
|         c.expect(op_mode_prompt) | ||||
| 
 | ||||
|         verify_mount() | ||||
| 
 | ||||
|         shutdownVM(c, log, 'Shutdown VM for non-TPM config load') | ||||
| 
 | ||||
|         # Booting back into VM | ||||
|         log.info('Booting system without TPM') | ||||
|         cmd = get_qemu_cmd(qemu_name, args.uefi, args.disk, raid=diskname_raid, tpm=False, vnc_enabled=args.vnc) | ||||
|         log.debug(f'Executing command: {cmd}') | ||||
|         c = pexpect.spawn(cmd, logfile=stl) | ||||
| 
 | ||||
|         try: | ||||
|             c.expect('The highlighted entry will be executed automatically in', timeout=10) | ||||
|             c.sendline('') | ||||
|         except pexpect.TIMEOUT: | ||||
|             log.warning('Did not find GRUB countdown window, ignoring') | ||||
| 
 | ||||
|         c.expect('.*Encrypted config volume has not been mounted', timeout=120) | ||||
| 
 | ||||
|         loginVM(c, log) | ||||
| 
 | ||||
|         # Test loading config with recovery key | ||||
|         c.sendline('encryption load') | ||||
|         c.expect('Enter key: ') | ||||
|         c.sendline(test_recovery_key) | ||||
|         c.expect('Encrypted config volume has been mounted', timeout=120) | ||||
|         c.expect(op_mode_prompt) | ||||
| 
 | ||||
|         verify_mount() | ||||
| 
 | ||||
|         log.info('Loading encrypted config.boot') | ||||
|         c.sendline('configure') | ||||
|         c.expect(cfg_mode_prompt) | ||||
|         c.sendline('load /config/config.boot') | ||||
|         c.expect(cfg_mode_prompt) | ||||
|         c.sendline('commit') | ||||
|         c.expect(cfg_mode_prompt) | ||||
|         c.sendline('exit') | ||||
|         c.expect(op_mode_prompt) | ||||
| 
 | ||||
|     elif args.raid: | ||||
|         # Verify RAID subsystem - by deleting a disk and re-create the array | ||||
|         # from scratch | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user