Обратите внимание, что pubring.kbx
имеет размер 2,0 КБ на первой машине и только 32 байта на второй машине. Таким образом, либо файл имеет другое содержимое, либо передача была неполной.
Отметка времени на второй машине тоже старше,так что я предполагаю, что вторая машина по какой-то причине получила версию файла с датой выпуска -из -.
Документация, которую вы нашли, предназначена в основном для разработки ядра и библиотек. Криптографические примитивы используются в таких местах, как стек IPSec , которые должны работать в ядре. Как вы можете видеть в главе Интерфейс пользовательского пространства , криптография с открытым ключом недоступна в пользовательском пространстве. Даже если бы это было так, вас не должно волновать, где заканчиваются ключи (подсказка :видите эти приятные непрозрачные __ctx
элементы? ). Интересная часть - это функции, которые предоставляются.
Если вас интересуют криптографические библиотеки для Linux, OpenSSL , GnuTLS и Libgcrypt , вероятно, являются наиболее распространенным выбором. В Википедии также есть страница сравнения . Они работают в основном в пользовательском пространстве и используют Crypto API ядра для повышения производительности.
Отредактируйте :, если вы действительно хотите использовать Crypto API, вы можете посмотреть для каждого алгоритма, что содержат эти члены __ctx
. Например. если вы посмотрите на rsa.c , вы заметите, что элемент __ctx
в crypto_akcipher
указывает на struct rsa_mpi_key
и вы можете получить его с помощью rsa_get_key()
.
Другим возможным решением может быть отладка некоторого кода до уровня системных вызовов, чтобы найти, где он взаимодействует с ядром, поскольку создается впечатление, что ядро считывает данные из буфера для выполнения криптографических системных вызовов.