Compare commits
	
		
			2 commits
		
	
	
		
			94105c2c49
			...
			03f5c95b33
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 03f5c95b33 | |||
| 7ab23985e1 | 
					 3 changed files with 11 additions and 14 deletions
				
			
		|  | @ -18,11 +18,10 @@ fi | |||
| # Display usage information if input is from a terminal | ||||
| if [ -t 0 ]; then | ||||
|     exec >&2 | ||||
|     echo "$summary" | ||||
|     echo | ||||
|     echo "Usage: \"zlevis-decrypt < file.jwe\"" | ||||
|     echo "Usage ZFS: \"zfs list -Ho tpm:jwe <pool> | zlevis-decrypt\"" | ||||
|     echo | ||||
|     echo "$summary" | ||||
|     exit 2 | ||||
| fi | ||||
| 
 | ||||
|  | @ -55,9 +54,10 @@ trap 'on_exit' EXIT | |||
| 
 | ||||
| # Read the JWE protected header | ||||
| read -r -d . hdr | ||||
| echo "$hdr" > "$tmp"/hdr | ||||
| 
 | ||||
| # Decode the JWE protected header | ||||
| if ! jhd="$(jose b64 dec -i- < <(echo "$hdr"))"; then | ||||
| if ! jhd="$(jose b64 dec -i- < "$tmp"/hdr)"; then | ||||
|     echo "Error decoding JWE protected header" >&2 | ||||
|     exit 1 | ||||
| fi | ||||
|  |  | |||
|  | @ -21,12 +21,6 @@ fi | |||
| # Display usage information if input is from a terminal | ||||
| if [ -t 0 ]; then | ||||
|     exec >&2 | ||||
|     echo | ||||
|     echo "Usage: \"zlevis-encrypt '{\"property\":\"value\"}' < file.key > file.jwe\"" | ||||
|     echo | ||||
|     echo "Usage ZFS: \"zfs set tpm:jwe=\$(zlevis-encrypt '{\"property\":\"value\"}' < tank.key) <pool>\"" | ||||
|     echo | ||||
|     echo | ||||
|     echo "$summary" | ||||
|     echo | ||||
|     echo "This command uses the following configuration properties:" | ||||
|  | @ -35,6 +29,9 @@ if [ -t 0 ]; then | |||
|     echo "  pcr_bank: <string> -> PCR algorithm bank to use for policy (default: first supported by TPM)." | ||||
|     echo "  pcr_ids: <string> -> PCR list used for policy. If not present, no policy is used." | ||||
|     echo "  pcr_digest: <string> -> Binary PCR hashes encoded in base64. If not present, the hash values are looked up." | ||||
|     echo | ||||
|     echo "Usage: \"zlevis-encrypt '{\"property\":\"value\"}' < file.key > file.jwe\"" | ||||
|     echo "Usage ZFS: \"zfs set tpm:jwe=\$(zlevis-encrypt '{\"property\":\"value\"}' < tank.key) <pool>\"" | ||||
|     exit 2 | ||||
| fi | ||||
| 
 | ||||
|  | @ -233,8 +230,8 @@ fi | |||
| jwe="$(jose fmt -j "$jwe" -g protected -g clevis -g tpm2 -q "$jwk_pub" -s jwk_pub -UUUUo-)" | ||||
| jwe="$(jose fmt -j "$jwe" -g protected -g clevis -g tpm2 -q "$jwk_priv" -s jwk_priv -UUUUo-)" | ||||
| 
 | ||||
| # Clean up the temporary directory at the end of the script | ||||
| [ -d "${tmp}" ] && rm -rf "${tmp}" | ||||
| 
 | ||||
| # Output the final JWE | ||||
| exec jose jwe enc -i- -k- -I- -c < <(echo -n "$jwe$jwk"; /bin/cat) | ||||
| (echo "$jwe$jwk"; /bin/cat) | jose jwe enc -i- -k- -I- -c | ||||
| 
 | ||||
| # Exit with the status of the last command | ||||
| exit $? | ||||
|  | @ -17,7 +17,7 @@ zfs list -Ho name,encryption,keystatus,encryptionroot,tpm:jwe | while IFS=$'\t' | |||
|             if echo -n "$jwe" | zlevis-decrypt | zfs load-key -L prompt "$ds"; then | ||||
|                 echo "Unlocked $ds" | ||||
|             else | ||||
|                 echo "FAILED TO UNLOCK $ds" >&2 | ||||
|                 echo "Failed to unlock $ds" >&2 | ||||
| 				exit 1 | ||||
|             fi | ||||
|         fi | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue