Дополнительно
Как использовать libcrc32c ядра (или те же функции) в программах пользовательского пространства?
Я хочу выполнить некоторую проверку CRC в моей собственной программе пользовательского пространства. И я обнаружил, что ядро crypto lib уже находится в системе, и поставляется с поддержкой SSE4.2.
Я попытался напрямую #include <linux/crc32c.h>
и запустить gcc с -I/usr/src/linux/include/
. Однако это не работает.
Есть ли способ использовать какой-нибудь libcrc32c
?
8
1
Вы можете использовать криптографию ядра
CRC32c
(и другие функции хэша/шифра) из пользовательского пространства через семейство сокетов AF_ALG в Linux:Если вы хэшируете файлы или данные сокета, вы можете ускорить процесс, используя подход zero-copy, чтобы избежать копирования буфера ядра -> из пространства пользователя с помощью
sendfile
и/илиsplice
.Удачного кодирования.