Здравствуйте, luser, Вы писали:
L>Здравствуйте, mkopachev, Вы писали:
M>>Здравствуйте, luser, Вы писали:
L>>>Здравствуйте, mkopachev, Вы писали:
M>>>>Здравствуйте, luser, Вы писали:
L>>>>>Подскажите, пожалуйста лузеру.
L>>>>>Я не могу достать закрытый ключ RSA. Экспортировал я его так:
L>>>Спасибо что ответили, но я не могу импортировать закрытый ключ. Экспортирование проходит нормально.
L>>>С уважением Леонид.
M>> Извини не понял. Но все-таки какой код ошибки-то вылазит (если я понял он вылазит при импорте)?
L>Да правильно вылетает при импорте. GetLastError() возвращает 2148073475 ни с одним флагом ошибки CryptImportKey не совпадает (перебрал вроде все).
Ошибка называется NTE_BAD_KEY (80090003). Действительно удивительно ее появление в твоем случае. Расшифровывается она так, что ключ (очевидно в данном случае ключ на котором производится импорт) не верен.
Это то что я вычитал в документации к Крипто-Про (CPImportKey):
Один или оба из ключей, указанных hKey и hImpKey, не действительны. Байты в элементах заголовка ключевого блоба типа WORD, DWORD имеют обратный порядок по отношению к данной платформе.
Т.е. проверь, то ли ты пытаешься импортировать — возможно та информация, которая
импортируется не соответсвует той, которая была экспортирована?
И последнее, возможно криптопровайдер просто не допускает импорта не зашифрованного ключа? Попробуй сделать какой-нибудь потоковый ключик (тип RC4), а затем экспортнуть и импортнуть на нем (чтобы закрытый ключ оказался зашифрованным).
З.Ы. Вообще-то использование структур фиксированного размера для ключей не есть хорошо — оно у тебя так сделано с каким-то прицелом? Лекго может оказаться резаный алгоритм (экспортные ограничения США), с меньшей длинной ключа и структуры могут съехать. Ты длинну экспортируемого ключа проверил?
С уважением Михаил Копачев
... << RSDN@Home 1.1.4 @@subversion >>