Я пытался использовать crypto api в ядре Linux, что мне нужно сделать, это Sha файл, который открывается. Я использую LSM, чтобы поймать эти открытия файлов.
То, что у меня есть, - это создание структуры crypto_shash с использованием
struct crypto_shash *tfm;
struct shash_desc desc;
tfm = crypto_alloc_shash("sha1", 0, CRYPTO_ALG_ASYNC);
и я предполагаю, что должен инициировать его после этого, используя
desc.tfm = tfm;
desc.flags = 0;
err = crypto_shash_init(&desc);
что все работает нормально, но тогда я хочу использовать
crypto_shash_digest(&desc, ??, ??, sha_hash);
и я понимаю, что он ожидает scatterlist в качестве второго аргумента и длину этого scatterlist в качестве третьего аргумента. Что я не могу понять, так это то, как я должен загрузить файл в список рассеяния, чтобы передать его в криптосистему.
Я довольно много читал, но до сих пор не смог найти каких-либо подробностей о загрузке содержимого файлов в список рассеяния. Так что любые указатели в правильном направлении будут оценены.
Спасибо