Как использовать криптопровайдер VipNet CSP

У меня есть некоторый функционал который реализует функции шифрования \ расшифрования и хэширования . Все это я сделал через встроенный криптопровайдер и вот моя функция для инициализации контекста.

void GetContextCryptoProvider(HCRYPTPROV &hProv){
    if (!CryptAcquireContext(&hProv, NULL, NULL, 
PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
    {
        perror("CryptAcquireContext");
        return;
    }

    std::cout << "Cryptographic provider initialized" << std::endl;
}

Далее я установил VipNet CSP. В именах криптопровайдеров у меня появились такие значения

Provider name: Infotecs Cryptographic Service Provider
Provider type: 2
--------------------------------
Provider name: Infotecs GOST 2012/1024 Cryptographic Service Provider
Provider type: 78
--------------------------------
Provider name: Infotecs GOST 2012/512 Cryptographic Service Provider
Provider type: 77

По документации теперь нужно изменить 3-ий параметр функцию для получения контекста на имя криптопровайдера что я и сделал поставив в 3 параметр строку

'Infotecs Cryptographic Service Provider'

Но дальше ни получение сессионного ключа ни все остальные функции не работают.

Документация разработчика показывает такой пример

CK_MECHANISM mechanism = {
   CKM_GOST28147_KEY_GEN, NULL_PTR, 0
};

CK_RV rv;
rv = C_GenerateKey(hSessionKey, &mechanism, NULL_PTR, 0, &hKey);

if (rv != CKR_OK)
{ 
    printf("Error during CryptGenKey.\n"); 
    exit(1);
}

Но откуда взялись все эти типы не ясно, нужна ли какая то библиотека дополнительная ?


Ответы (0 шт):