Как я могу отладить то, что происходит внутри функции библиотеки NSS?

Я пытаюсь повторить поведение NSS lib PK11_PrivDecryptPKCS1 функция в моем коде, так что я могу точно определить, почему он не работает. Это всегда возвращает SECFailure,

я видел Вот что эта функция создает параметр и вызывает pk11_PrivDecryptRaw, Сейчас в pk11_PrivDecryptRaw (тот же файл, строка 833) Я видел, что если можно вернуть SECFailure в 3 кодовых блоках:

Сначала если key->keyType != rsaKey, Итак, я отлажен key->keyType и увидел, что это равно rsaKey,

Следующая часть такова:

session = pk11_GetNewSession(slot,&owner);
(...)
crv = PK11_GETTAB(slot)->C_DecryptInit(session, mech, key->pkcs11ID);
if (crv != CKR_OK) {
(...)
return SECFailure;
}

Поэтому я скопировал этот код в мой код, чтобы отладить то, что возвращается в crv. Когда я пытался сделать это, у меня были большие проблемы с поиском .h, где некоторые символы, где. Не смог найтиsecmodi.h«,»secmodti.h«включает. Я нашел их в исходном коде для libnss3-dev.

Теперь проблема со связью. Я получаю ошибку

неопределенная ссылка для pk11_GetNewSession, Я искал всю директорию / usr / lib для этой функции с помощью этой команды:

find . -name \*.so -type f -print -exec readelf -s {} \; 2> /dev/null | grep "\.so\|PK11"

но он не нашел его. Я думаю, что должна быть и внутренняя функция из библиотеки, которая не выставлена ​​на .so.

Если я попытаюсь заменить этот вызов кодом внутри этой функции, я имею в виду

PK11_GETTAB(slot)->C_OpenSession(slot->slotID,CKF_SERIAL_SESSION,slot,pk11_notify,&session)

Я получил неопределенную ссылку для pk11_notify этот раз.

Как я могу отладить это?

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]