|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.10.2014, 20:45 | #1 |
Пользователь
Регистрация: 24.02.2012
Сообщений: 88
|
wincrypt не экспортируется ключ
накопал в интернете пример и пытаюсь зашифровать файл. при этом мне нужно экспортировать ключ в заголовок файла. делаю это так:
Код:
|
27.10.2014, 17:41 | #3 |
Пользователь
Регистрация: 24.02.2012
Сообщений: 88
|
|
27.10.2014, 19:50 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ты используй GetLastError() для получения кода ошибки хотя бы.
I'm learning to live...
|
|
27.10.2014, 20:50 | #5 |
Пользователь
Регистрация: 24.02.2012
Сообщений: 88
|
|
27.10.2014, 20:53 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Как так? О_о
Не могло быть такого: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Цитата:
Цитата:
Лучше вызови Код:
Код:
I'm learning to live...
Последний раз редактировалось Stilet; 27.10.2014 в 20:58. |
||
27.10.2014, 21:47 | #7 |
Пользователь
Регистрация: 24.02.2012
Сообщений: 88
|
попробовал так:
Код:
вот такие танцы с бубном вверху не влияют никак на данную проблему ? : Код:
|
27.10.2014, 22:09 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ну да ладно, меня больше всего смущает, что GetLastError() везде возвращает 0 Значит ошибок нет. Тогда вопрос поставлю по другому: Отладку делал? Что попадает в hProv? Кстати уже на первом if() нужно делать return ибо без активации провайдера дальнейшие вызовы фунок приведут к крэшу.
I'm learning to live...
|
|
27.10.2014, 22:36 | #9 |
Пользователь
Регистрация: 24.02.2012
Сообщений: 88
|
это я из примера скопипастил.
доходит до строки HCRYPTPROV hProv; и там пишет значение 15777208552 но как только прохожу строку if (!CryptAcquireContext(&hProv, "{EB57ED8A-CCCC-4bf5-8659-9DF2F05F24AD}",NULL, PROV_RSA_FULL, 0)) в этой переменной оказывается 0 а вот уже из другого примера CryptAcquireContext(&hProv,"test",0 ,PROV_RSA_FULL,CRYPT_NEWKEYSET); if(CryptAcquireContext(&hProv,"test ",0,PROV_RSA_FULL,0)) { ... так срабатывает, но в нём тоже проблема с CryptGetUserKey. а вот так работает, и по прежнему проблемы с CryptGetUserKey. а GetLastError срабатывает нормально получается. мистика... Код:
Последний раз редактировалось sinestro; 27.10.2014 в 23:14. |
27.10.2014, 23:15 | #10 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Ну ты даешь - у чувака, автора примера такой контейнер (хранилище) уже было создано, это не значит что оно будет у тебя. ))) Потому и ошибка, потому и хендл прова нулевой. Цитата:
Цитата:
Ты текст ошибки или хотя бы код будешь приводить? Или в угадай мелодию поиграем? И вообще, что это за функа такая? Я лично ключ выдираю следующей цепочкой: 1) CryptAcquireContext(... CRYPT_NEWKEYSET) 2) CryptGenKey(hProv, AT_KEYEXCHANGE, CRYPT_EXPORTABLE, key) 3) CryptGetUserKey(hProv, AT_KEYEXCHANGE, key) 4) CryptExportKey(key, 0, bt, 0, nil, lBufLen) 5) CryptExportKey(key, 0, bt, 0, d, lBufLen) 6) CryptDestroyKey(key) Где: bt - PUBLICKEYBLOB lBufLen - сначала получаю размер для буфера, а потом и сам буфер в переменку "d" Потом "d" выцеживаю в файл.
I'm learning to live...
|
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WinCrypt и c++.net | sinestro | Общие вопросы C/C++ | 3 | 26.10.2014 02:01 |
Ключ реестра | KolaSh | Общие вопросы Delphi | 7 | 30.05.2013 08:37 |
Составить список стран, в которые экспортируется данный товар, и общий объем его экспорта - си - C++ | kaizer131 | Помощь студентам | 0 | 21.02.2010 16:16 |
Ключ на ДЕЛФИ 5! | sting | Помощь студентам | 1 | 28.03.2009 04:43 |