diff --git a/examples/cryptosha256.c b/examples/cryptosha256.c index be2767a..029659b 100644 --- a/examples/cryptosha256.c +++ b/examples/cryptosha256.c @@ -26,8 +26,12 @@ static int cryptosha256_init(void) struct shash_desc *shash; sha256 = crypto_alloc_shash("sha256", 0, 0); - if (IS_ERR(sha256)) + if (IS_ERR(sha256)) { + pr_err( + "%s(): Failed to allocate sha256 algorithm, enable CONFIG_CRYPTO_SHA256 and try again.\n", + __func__); return -1; + } shash = kmalloc(sizeof(struct shash_desc) + crypto_shash_descsize(sha256), GFP_KERNEL); diff --git a/lkmpg.tex b/lkmpg.tex index 238921b..07390f3 100644 --- a/lkmpg.tex +++ b/lkmpg.tex @@ -1891,6 +1891,7 @@ To handle crypto stuff, the kernel has its own API enabling common methods of en Calculating and checking the hashes of things is a common operation. Here is a demonstration of how to calculate a sha256 hash within a kernel module. +To provide the sha256 algorithm support, make sure \cpp|CONFIG_CRYPTO_SHA256| is enabled in kernel. \samplec{examples/cryptosha256.c}