NCryptSetProperty возвращает ошибку 0x80090026 при получении ключей сеанса с помощью NCryptDeriveKeyC++

Программы на C++. Форум разработчиков
Anonymous
NCryptSetProperty возвращает ошибку 0x80090026 при получении ключей сеанса с помощью NCryptDeriveKey

Сообщение Anonymous »

Я пытаюсь использовать NCryptDerviceKey для получения ключей шифрования сеанса и аутентификации с помощью HKDF. Я могу сгенерировать эфемерную пару ключей NCryptCreatePersistedKey и вернуть дескриптор ключа и открытый ключ.
В другой функции для получения сеансовых ключей я сначала импортирую ключи с помощью NCryptImportKey и создаю секретное соглашение NCryptSecretAgreement. Далее я использую NCryptSetProperty для установки значений хеш-функции и соли, а затем использую NCryptDeriveKey для получения ключей сеанса. Но NCryptSetProperty возвращает ошибку. Ошибка NCryptSetProperty: 0x80090026
Вот блок кода, который я использую:

Код: Выделить всё

int deriveTpmBioSessionKeys(uint64_t pub_key_handle, const uint8_t *peer_pub_key,
SessionKeys *keys_out) {

NCryptProvider provider;
NCRYPT_SECRET_HANDLE hSharedSecret = NULL;
NCRYPT_KEY_HANDLE hPubKeyHandle = NULL;
SECURITY_STATUS status;

try {
// Step 1: Import public key
hPubKeyHandle = importEphemeralPublicKey(provider.handle, peer_pub_key);

// Step 2: Create secret agreement
status = NCryptSecretAgreement((NCRYPT_KEY_HANDLE)pub_key_handle, hPubKeyHandle,
&hSharedSecret, 0);

if (status != ERROR_SUCCESS) {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/79886589/ncryptsetproperty-returns-error-0x80090026-while-deriving-session-keys-using-ncr[/url]

Вернуться в «C++»