If all ciphers are built as kernel modules, crypto_algapi will
also be built as a module.  /proc/crypto is only created when
crypto_algapi is loaded.

This patch allows an eCryptfs mount to continue if /proc/crypto
is not present, but cipher modules are found.

Signed-off-by: Tyler Hicks <[EMAIL PROTECTED]>
---
 src/libecryptfs/cipher_list.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/libecryptfs/cipher_list.c b/src/libecryptfs/cipher_list.c
index 4573ac3..467fb4c 100644
--- a/src/libecryptfs/cipher_list.c
+++ b/src/libecryptfs/cipher_list.c
@@ -177,7 +177,13 @@ int ecryptfs_get_loaded_ciphers(struct 
ecryptfs_cipher_elem *cipher_list_head)
                        goto out;
        }
        if (!(crypto_file = fopen(crypto_full_path, "r"))) {
-               rc = -EIO;
+               syslog(LOG_WARNING, "%s: Failed to open [%s] for reading; This "
+                      "is not a problem if the Kernel Crypto API is built as "
+                      "a kernel module (called crypto_algapi) and is not "
+                      "loaded. If this is not the case, eCryptfs will not be "
+                      "able to use ciphers that are directly built into the "
+                      "kernel.\n", __FUNCTION__, crypto_full_path);
+               rc = 0;
                goto out;
        }
        while (fgets(buf, MAX_BUF_LEN, crypto_file)) {
@@ -368,12 +374,13 @@ int ecryptfs_get_kernel_ciphers(struct cipher_descriptor 
*cd_head)
                        goto out;
        }
        if (!(crypto_file = fopen(crypto_full_path, "r"))) {
-               syslog(LOG_INFO, "%s: Error attempting to open [%s] for "
-                      "reading; cannot detect loaded ciphers in your kernel. "
-                      "Bailing out. Make sure you have crypto support in your "
-                      "kernel and that /etc/mtab has your /proc mount point."
-                      "\n", __FUNCTION__, crypto_full_path);
-               rc = -EIO;
+               syslog(LOG_WARNING, "%s: Failed to open [%s] for reading; This "
+                      "is not a problem if the Kernel Crypto API is built as "
+                      "a kernel module (called crypto_algapi) and is not "
+                      "loaded. If this is not the case, eCryptfs will not be "
+                      "able to use ciphers that are directly built into the "
+                      "kernel.\n", __FUNCTION__, crypto_full_path);
+               rc = 0;
                goto out;
        }
        while (fgets(buf, MAX_BUF_LEN, crypto_file)) {
-- 
1.5.3.7


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
eCryptfs-devel mailing list
eCryptfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecryptfs-devel

Reply via email to