VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
1a59d1b8e05ea (Thomas Gleixner 2019-05-27 08:55:05 +0200  1) // SPDX-License-Identifier: GPL-2.0-or-later
b0cfbeff12dab (Lee Jones       2021-03-30 17:44:47 +0100  2) /*
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  3)  * eCryptfs: Linux filesystem encryption layer
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  4)  * Functions only useful for debugging.
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  5)  *
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  6)  * Copyright (C) 2006 International Business Machines Corp.
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  7)  *   Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  8)  */
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700  9) 
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 10) #include "ecryptfs_kernel.h"
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 11) 
b0cfbeff12dab (Lee Jones       2021-03-30 17:44:47 +0100 12) /*
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 13)  * ecryptfs_dump_auth_tok - debug function to print auth toks
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 14)  *
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 15)  * This function will print the contents of an ecryptfs authentication
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 16)  * token.
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 17)  */
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 18) void ecryptfs_dump_auth_tok(struct ecryptfs_auth_tok *auth_tok)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 19) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 20) 	char salt[ECRYPTFS_SALT_SIZE * 2 + 1];
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 21) 	char sig[ECRYPTFS_SIG_SIZE_HEX + 1];
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 22) 
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 23) 	ecryptfs_printk(KERN_DEBUG, "Auth tok at mem loc [%p]:\n",
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 24) 			auth_tok);
e2bd99ec5c0e2 (Michael Halcrow 2007-02-12 00:53:49 -0800 25) 	if (auth_tok->flags & ECRYPTFS_PRIVATE_KEY) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 26) 		ecryptfs_printk(KERN_DEBUG, " * private key type\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 27) 	} else {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 28) 		ecryptfs_printk(KERN_DEBUG, " * passphrase type\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 29) 		ecryptfs_to_hex(salt, auth_tok->token.password.salt,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 30) 				ECRYPTFS_SALT_SIZE);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 31) 		salt[ECRYPTFS_SALT_SIZE * 2] = '\0';
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 32) 		ecryptfs_printk(KERN_DEBUG, " * salt = [%s]\n", salt);
e2bd99ec5c0e2 (Michael Halcrow 2007-02-12 00:53:49 -0800 33) 		if (auth_tok->token.password.flags &
e2bd99ec5c0e2 (Michael Halcrow 2007-02-12 00:53:49 -0800 34) 		    ECRYPTFS_PERSISTENT_PASSWORD) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 35) 			ecryptfs_printk(KERN_DEBUG, " * persistent\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 36) 		}
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 37) 		memcpy(sig, auth_tok->token.password.signature,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 38) 		       ECRYPTFS_SIG_SIZE_HEX);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 39) 		sig[ECRYPTFS_SIG_SIZE_HEX] = '\0';
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 40) 		ecryptfs_printk(KERN_DEBUG, " * signature = [%s]\n", sig);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 41) 	}
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 42) 	ecryptfs_printk(KERN_DEBUG, " * session_key.flags = [0x%x]\n",
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 43) 			auth_tok->session_key.flags);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 44) 	if (auth_tok->session_key.flags
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 45) 	    & ECRYPTFS_USERSPACE_SHOULD_TRY_TO_DECRYPT)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 46) 		ecryptfs_printk(KERN_DEBUG,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 47) 				" * Userspace decrypt request set\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 48) 	if (auth_tok->session_key.flags
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 49) 	    & ECRYPTFS_USERSPACE_SHOULD_TRY_TO_ENCRYPT)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 50) 		ecryptfs_printk(KERN_DEBUG,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 51) 				" * Userspace encrypt request set\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 52) 	if (auth_tok->session_key.flags & ECRYPTFS_CONTAINS_DECRYPTED_KEY) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 53) 		ecryptfs_printk(KERN_DEBUG, " * Contains decrypted key\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 54) 		ecryptfs_printk(KERN_DEBUG,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 55) 				" * session_key.decrypted_key_size = [0x%x]\n",
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 56) 				auth_tok->session_key.decrypted_key_size);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 57) 		ecryptfs_printk(KERN_DEBUG, " * Decrypted session key "
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 58) 				"dump:\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 59) 		if (ecryptfs_verbosity > 0)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 60) 			ecryptfs_dump_hex(auth_tok->session_key.decrypted_key,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 61) 					  ECRYPTFS_DEFAULT_KEY_BYTES);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 62) 	}
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 63) 	if (auth_tok->session_key.flags & ECRYPTFS_CONTAINS_ENCRYPTED_KEY) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 64) 		ecryptfs_printk(KERN_DEBUG, " * Contains encrypted key\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 65) 		ecryptfs_printk(KERN_DEBUG,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 66) 				" * session_key.encrypted_key_size = [0x%x]\n",
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 67) 				auth_tok->session_key.encrypted_key_size);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 68) 		ecryptfs_printk(KERN_DEBUG, " * Encrypted session key "
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 69) 				"dump:\n");
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 70) 		if (ecryptfs_verbosity > 0)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 71) 			ecryptfs_dump_hex(auth_tok->session_key.encrypted_key,
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 72) 					  auth_tok->session_key.
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 73) 					  encrypted_key_size);
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 74) 	}
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 75) }
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 76) 
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 77) /**
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 78)  * ecryptfs_dump_hex - debug hex printer
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 79)  * @data: string of bytes to be printed
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 80)  * @bytes: number of bytes to print
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 81)  *
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 82)  * Dump hexadecimal representation of char array
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 83)  */
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 84) void ecryptfs_dump_hex(char *data, int bytes)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 85) {
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 86) 	if (ecryptfs_verbosity < 1)
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 87) 		return;
237fead619984 (Michael Halcrow 2006-10-04 02:16:22 -0700 88) 
96827c3044cf2 (Sascha Hauer    2019-05-17 12:45:15 +0200 89) 	print_hex_dump(KERN_DEBUG, "ecryptfs: ", DUMP_PREFIX_OFFSET, 16, 1,
96827c3044cf2 (Sascha Hauer    2019-05-17 12:45:15 +0200 90) 		       data, bytes, false);
96827c3044cf2 (Sascha Hauer    2019-05-17 12:45:15 +0200 91) }