Траблы с криптоалгаритмами в ядре

Статус: Offline
Реєстрація: 04.03.2006
Повідом.: 164
Траблы с криптоалгаритмами в ядре

Мне нужно использовать криптоалгаритмы в своём модуле ядра для получения MD5 хеша и симметричного шифрования(AES или DES).
В своём коде я юзаю функции:
crypto_alloc_hash, crypto_free_hash.

При попытке загрузить модуль в ядро получаю ошибку. В /var/log/messages следующее:
Jan 3 09:54:28 alice kernel: [63631.348603] test_crypto: Unknown symbol crypto_alloc_base
Jan 3 09:54:28 alice kernel: [63631.348697] test_crypto: Unknown symbol crypto_destroy_tfm

Банальный поиск грепом по исходникам и модулям(*.ko) ядра говорит о том, что символы crypto_alloc_base crypto_destroy_tfm находятся в модуле tcrypt.ko .
При попытке загрузить это модуль получаю следующую ошибку:
FATAL: Error inserting tcrypt (/lib/modules/2.6.32-5-amd64/kernel/crypto/tcrypt.ko): Resource temporarily unavailable
В /var/log/messages не пишет ничго.

Пробывал пересобирать модуль в ручную - то же самое.
Версия ядра 2.6.32-5. Пробывал так же на 2.6.25-22.
 
Останнє редагування:
Спрашивай такое на проджектах, тот только убунтудрочеры ;)
 
С предыдущим вопросом мне помогли, поэтому решил попытать счастья ещё.. Вообще вопрос разместил на 4 форумах, включая
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
и
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


Я уже нашёл часть ответа...

Documentation/crypto/api-intro.txt гласит:
DEVELOPER NOTES

Transforms may only be allocated in user context, and cryptographic
methods may only be called from softirq and user contexts. For
transforms with a setkey method it too should only be called from
user context.

When using the API for ciphers, performance will be optimal if each
scatterlist contains data which is a multiple of the cipher's block
size (typically 8 bytes). This prevents having to do any copying
across non-aligned page fragment boundaries.

Но блин.. всё равно, как-то же их можно использовать..
 
Советую:
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
Nice:) Спасибо. Я кажется там даже зареган был.. давно уже не заходил, забыл про него..
 
Может тебе надо не с ядерных функций начать, а с прослоек, таких как openssl? например, посмотри на функции в libssl-dev
 
Я просто модуль для ядра пишу, поэтому всё что выполняется в user space просто не подходит.
DES-шифрование у меня заработало, а вот с хешами проблемы :/
 
Назад
Зверху Знизу