From: Phillip Hellewell <phillip@hellewell.homeip.net>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
viro@ftp.linux.org.uk, mike@halcrow.us, mhalcrow@us.ibm.com,
mcthomps@us.ibm.com, toml@us.ibm.com, yoder1@us.ibm.com,
James Morris <jmorris@namei.org>,
"Stephen C. Tweedie" <sct@redhat.com>,
Erez Zadok <ezk@cs.sunysb.edu>,
David Howells <dhowells@redhat.com>
Subject: [PATCH 13/13: eCryptfs] Debug functions
Date: Wed, 3 May 2006 21:43:34 -0600 [thread overview]
Message-ID: <20060504034334.GL28613@hellewell.homeip.net> (raw)
In-Reply-To: <20060504031755.GA28257@hellewell.homeip.net>
This is the 13th patch in a series of 13 constituting the kernel
components of the eCryptfs cryptographic filesystem.
Functions used only for debugging purposes; typically called when the
verbosity is turned higher than 0.
Signed-off-by: Phillip Hellewell <phillip@hellewell.homeip.net>
Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
---
debug.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 122 insertions(+)
Index: linux-2.6.17-rc3-mm1-ecryptfs/fs/ecryptfs/debug.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.17-rc3-mm1-ecryptfs/fs/ecryptfs/debug.c 2006-05-02 19:35:59.000000000 -0600
@@ -0,0 +1,122 @@
+/**
+ * eCryptfs: Linux filesystem encryption layer
+ * Functions only useful for debugging.
+ *
+ * Copyright (C) 2006 International Business Machines Corp.
+ * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+
+#include "ecryptfs_kernel.h"
+
+void ecryptfs_dump_auth_tok(struct ecryptfs_auth_tok *auth_tok)
+{
+ char salt[ECRYPTFS_SALT_SIZE * 2 + 1];
+ char sig[ECRYPTFS_SIG_SIZE_HEX + 1];
+
+ ecryptfs_printk(KERN_DEBUG, "Auth tok at mem loc [%p]:\n",
+ auth_tok);
+ if (ECRYPTFS_CHECK_FLAG(auth_tok->flags, ECRYPTFS_PRIVATE_KEY)) {
+ ecryptfs_printk(KERN_DEBUG, " * private key type\n");
+ ecryptfs_printk(KERN_DEBUG, " * (NO PRIVATE KEY SUPPORT "
+ "IN ECRYPTFS VERSION 0.1)\n");
+ } else {
+ ecryptfs_printk(KERN_DEBUG, " * passphrase type\n");
+ ecryptfs_to_hex(salt, auth_tok->token.password.salt,
+ ECRYPTFS_SALT_SIZE);
+ salt[ECRYPTFS_SALT_SIZE * 2] = '\0';
+ ecryptfs_printk(KERN_DEBUG, " * salt = [%s]\n", salt);
+ if (ECRYPTFS_CHECK_FLAG(auth_tok->token.password.flags,
+ ECRYPTFS_PERSISTENT_PASSWORD)) {
+ ecryptfs_printk(KERN_DEBUG, " * persistent\n");
+ }
+ memcpy(sig, auth_tok->token.password.signature,
+ ECRYPTFS_SIG_SIZE_HEX);
+ sig[ECRYPTFS_SIG_SIZE_HEX] = '\0';
+ ecryptfs_printk(KERN_DEBUG, " * signature = [%s]\n", sig);
+ }
+ if (ECRYPTFS_CHECK_FLAG(auth_tok->flags, ECRYPTFS_CONTAINS_SECRET)) {
+ ecryptfs_printk(KERN_DEBUG, " * contains secret value\n");
+ } else {
+ ecryptfs_printk(KERN_DEBUG, " * lacks secret value\n");
+ }
+ if (ECRYPTFS_CHECK_FLAG(auth_tok->flags, ECRYPTFS_EXPIRED))
+ ecryptfs_printk(KERN_DEBUG, " * expired\n");
+ ecryptfs_printk(KERN_DEBUG, " * session_key.flags = [0x%x]\n",
+ auth_tok->session_key.flags);
+ if (auth_tok->session_key.flags
+ & ECRYPTFS_USERSPACE_SHOULD_TRY_TO_DECRYPT)
+ ecryptfs_printk(KERN_DEBUG,
+ " * Userspace decrypt request set\n");
+ if (auth_tok->session_key.flags
+ & ECRYPTFS_USERSPACE_SHOULD_TRY_TO_ENCRYPT)
+ ecryptfs_printk(KERN_DEBUG,
+ " * Userspace encrypt request set\n");
+ if (auth_tok->session_key.flags & ECRYPTFS_CONTAINS_DECRYPTED_KEY) {
+ ecryptfs_printk(KERN_DEBUG, " * Contains decrypted key\n");
+ ecryptfs_printk(KERN_DEBUG,
+ " * session_key.decrypted_key_size = [0x%x]\n",
+ auth_tok->session_key.decrypted_key_size);
+ ecryptfs_printk(KERN_DEBUG, " * Decrypted session key "
+ "dump:\n");
+ if (ecryptfs_verbosity > 0)
+ ecryptfs_dump_hex(auth_tok->session_key.decrypted_key,
+ ECRYPTFS_DEFAULT_KEY_BYTES);
+ }
+ if (auth_tok->session_key.flags & ECRYPTFS_CONTAINS_ENCRYPTED_KEY) {
+ ecryptfs_printk(KERN_DEBUG, " * Contains encrypted key\n");
+ ecryptfs_printk(KERN_DEBUG,
+ " * session_key.encrypted_key_size = [0x%x]\n",
+ auth_tok->session_key.encrypted_key_size);
+ ecryptfs_printk(KERN_DEBUG, " * Encrypted session key "
+ "dump:\n");
+ if (ecryptfs_verbosity > 0)
+ ecryptfs_dump_hex(auth_tok->session_key.encrypted_key,
+ auth_tok->session_key.
+ encrypted_key_size);
+ }
+}
+
+/**
+ * Dump hexadecimal representation of char array
+ *
+ * @param data
+ * @param bytes
+ */
+void ecryptfs_dump_hex(char *data, int bytes)
+{
+ int i = 0;
+ int add_newline = 1;
+
+ if (ecryptfs_verbosity < 1)
+ return;
+ if (bytes != 0) {
+ printk(KERN_DEBUG "0x%.2x.", (unsigned char)data[i]);
+ i++;
+ }
+ while (i < bytes) {
+ printk("0x%.2x.", (unsigned char)data[i]);
+ i++;
+ if (i % 16 == 0) {
+ printk("\n");
+ add_newline = 0;
+ } else
+ add_newline = 1;
+ }
+ if (add_newline)
+ printk("\n");
+}
next prev parent reply other threads:[~2006-05-04 3:43 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-04 3:17 [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Phillip Hellewell
2006-05-04 3:27 ` [PATCH 1/13: eCryptfs] fs/Makefile and fs/Kconfig Phillip Hellewell
2006-05-04 3:35 ` [PATCH 2/13: eCryptfs] Documentation Phillip Hellewell
2006-05-04 7:32 ` Pavel Machek
2006-05-04 12:11 ` Michael Halcrow
2006-05-04 3:36 ` [PATCH 3/13: eCryptfs] Makefile Phillip Hellewell
2006-05-04 3:37 ` [PATCH 4/13: eCryptfs] Main module functions Phillip Hellewell
2006-05-04 3:37 ` [PATCH 5/13: eCryptfs] Header declarations Phillip Hellewell
2006-05-04 14:51 ` Pekka Enberg
2006-05-04 14:58 ` Artem B. Bityutskiy
2006-05-04 15:22 ` Pekka Enberg
2006-05-04 15:29 ` Artem B. Bityutskiy
2006-05-04 15:08 ` Michael Thompson
2006-05-04 3:38 ` [PATCH 6/13: eCryptfs] Superblock operations Phillip Hellewell
2006-05-04 9:55 ` Pavel Machek
2006-05-04 14:02 ` Michael Thompson
2006-05-04 14:26 ` Pekka Enberg
2006-05-04 14:37 ` Pekka Enberg
2006-05-04 15:00 ` Michael Thompson
2006-05-04 15:12 ` Pekka Enberg
2006-05-04 21:40 ` David Howells
2006-05-05 13:12 ` Dave Kleikamp
2006-05-05 14:03 ` David Howells
2006-05-05 14:34 ` Dave Kleikamp
2006-05-05 14:52 ` David Howells
2006-05-05 16:15 ` Timothy R. Chavez
2006-05-04 3:39 ` [PATCH 7/13: eCryptfs] Dentry operations Phillip Hellewell
2006-05-05 16:46 ` Timothy R. Chavez
2006-05-04 3:39 ` [PATCH 8/13: eCryptfs] File operations Phillip Hellewell
2006-05-04 4:06 ` Eric Dumazet
2006-05-05 18:55 ` Timothy R. Chavez
2006-05-04 3:40 ` [PATCH 9/13: eCryptfs] Inode operations Phillip Hellewell
2006-05-04 3:41 ` [PATCH 10/13: eCryptfs] Mmap operations Phillip Hellewell
2006-05-04 15:13 ` Pekka Enberg
2006-05-04 21:43 ` David Howells
2006-05-05 15:22 ` Dave Kleikamp
2006-05-05 15:38 ` Pekka Enberg
2006-05-06 2:21 ` Andrew Morton
2006-05-06 16:00 ` Michael Halcrow
2006-05-06 16:42 ` Andrew Morton
2006-05-06 16:57 ` Linus Torvalds
2006-05-04 3:42 ` [PATCH 11/13: eCryptfs] Keystore Phillip Hellewell
2006-05-04 3:42 ` [PATCH 12/13: eCryptfs] Crypto functions Phillip Hellewell
2006-05-04 3:43 ` Phillip Hellewell [this message]
2006-05-04 20:30 ` [PATCH 13/13: eCryptfs] Debug functions Randy.Dunlap
2006-05-04 7:28 ` [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Pavel Machek
2006-05-04 12:08 ` Michael Halcrow
2006-05-05 9:05 ` Alon Bar-Lev
2006-05-05 16:08 ` Michael Halcrow
-- strict thread matches above, loose matches on Subject: below --
2006-05-13 3:37 [PATCH 0/13: eCryptfs] eCryptfs Patch Set Phillip Hellewell
2006-05-13 3:49 ` [PATCH 13/13: eCryptfs] Debug functions Phillip Hellewell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060504034334.GL28613@hellewell.homeip.net \
--to=phillip@hellewell.homeip.net \
--cc=akpm@osdl.org \
--cc=dhowells@redhat.com \
--cc=ezk@cs.sunysb.edu \
--cc=jmorris@namei.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcthomps@us.ibm.com \
--cc=mhalcrow@us.ibm.com \
--cc=mike@halcrow.us \
--cc=sct@redhat.com \
--cc=toml@us.ibm.com \
--cc=viro@ftp.linux.org.uk \
--cc=yoder1@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).