Я пытаюсь повторить поведение 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
этот раз.
Как я могу отладить это?
Задача ещё не решена.