Как импортировать открытый ключ для шифрования в C на Windows - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть открытый ключ, и я хочу использовать его для шифрования фрагмента данных.Я пытаюсь импортировать открытый ключ, чтобы использовать его, но CryptImportKey выдает мне ошибку «неверный параметр».

В чем проблема?

Вот мой код:

if( !CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT) )
{
    /*
     * Print error and return
     */
}
pblob->header->bType = PUBLICKEYBLOB;
pblob->header->aiKeyAlg = CALG_AES_128;
pblob->header->bVersion = CUR_BLOB_VERSION;
pblob->header->reserved = 0;
pblob->key_len = key_len;

memcpy(pblob->key, key , key_len);

if( !CryptImportKey( &hProv,
    (LPCBYTE)pblob,
    sizeof(*pblob),
    0,
    CRYPT_EXPORTABLE,
    &hKey ) )
{
    // Print error and return
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2010

Благодаря всему сказанному здесь и большому количеству поиска я нашел ответ в: http://www.ms -news.net / f2748 / problem-importing-public-key-4052577.html

И использовал его для создания своей собственной программы, которую я разместил в другой теме по адресу: Загрузка файла PEM X509 в Windows CryptoApi

0 голосов
/ 24 сентября 2010

Windows CryptoAPI не работает напрямую с текстовыми ключами; Вы должны перепрыгнуть через обруч, чтобы сделать это. Вот статья базы знаний, описывающая, как это сделать .

...