04.05.2006 17:09:19Как создать контейнер, импортом открытого ключа Ответов: 6
Халтобин Евгений
Создаю контейнер:
CryptAcquireContext(&hProv, "ContFromClient", NULL, 75, CRYPT_NEWKEYSET)
Импортирую открытый ключ:
CryptImportKey(hProv, pbPubKey, pcbBinary, 0, CRYPT_EXPORTABLE, &hKey). И что делать дальше? Нужно создать контейнер с ключом из файла.
 
Ответы:
05.05.2006 9:27:52Халтобин Евгений
Дополнение. На стороне клиента создали контейнер с ключевой парой. Экспортировали ключи в файл. На стороне сервера необходимо создать аналогичный контейнер. Подскажите как это сделать на примере контейнера с ключом AT_SIGNATURE.
06.05.2006 10:38:51Василий
Можно глупый вопрос - а зачем?
06.05.2006 11:13:19Халтобин Евгений
На основе ключевой пары клиента, на сервере необходимо создать PKCS#10 запрос.
06.05.2006 12:32:40Василий
Прикольно.
Обычно запрос делает сам клиент, используя свой личный существующий или вновь созданный ключевой контейнер для подписи запроса, после чего уже готовый запрос клиент передаёт на обработку на центр сертификации.
Если клиент передаёт кому-то свой секретный ключ - это называется компрометация ключа (с юридической точки зрения).
06.05.2006 14:19:21Халтобин Евгений
И все-таки как создать контейнер из blob ключей?
09.05.2006 22:29:59Василий
Если в двух словах - надо сначала экспортировать закрытый ключ в блоб типа PRIVTEKEYBLOB, а потом его импортировать в новый контейнер. Сложность в том, что экспорт и импорт закрытого ключа возможен только с шифрованием на ключе обмена (Диффи-Хеллмана).
В Вашем случае, если уж клиент передоверяет свой секретный ключ для подписи запроса кому-то, проще передать весь контейнер ключа (в виде файлов *.key).