Реестр встроенных криптографических алгоритмов¶
/proc/crypto отражает реализацию алгоритмов ядром: названия, драйверы, приоритеты, типы операций и сведения о том, является ли реализация встроенной.
cat /proc/crypto | less
grep -E '^name[[:space:]]*:' /proc/crypto | grep -Ei 'gost|magma|kuznyechik|streebog|ecrdsa'
Показываем module : kernel для каждого алгоритма¶
python3 - <<'PY'
from pathlib import Path
for block in Path('/proc/crypto').read_text().split('\n\n'):
info={}
for line in block.splitlines():
if ':' in line:
key,value=line.split(':',1)
info[key.strip()]=value.strip()
name=info.get('name','')
if any(word in name.lower() for word in ('gost','kuznyechik','magma','streebog','ecrdsa')):
print(f"{name:36} {info.get('type',''):12} module={info.get('module','-')}")
PY
Для встроенного алгоритма ожидается module=kernel. Если алгоритм не найден, сначала проверьте, какое ядро запущено, затем соответствующий /boot/config-... и журнал ядра.
Составные режимы¶
Шаблоны Crypto API могут появляться по требованию. Чтобы отличить отсутствие регистрации от отсутствия поддержки XTS, проверяйте режим через AF_ALG. Это полезнее, чем искать только xts(kuznyechik) в реестре до первого обращения.
Почему lsmod пуст¶
lsmod показывает внешние загруженные .ko. Алгоритмы, скомпонованные в vmlinux, там не отображаются. Встроенная поддержка не зависит от дополнительных бинарных файлов криптомодулей на диске.