Пытаюсь разобраться в механизме работы CryptoAPI. В частности, интересует создание цифровой подписи. Вопрос по поводу исходников, распространяемых в качестве примера. В проекте Encfile программе в качестве входных данных при шифровании необходимо передать имя файла с каким-то ключом для чтения. Непонятно, зачем нужен этот ключ и откуда получить файл.
Заранее благодарен.
Здравствуйте, Budet, Вы писали:
B>Пытаюсь разобраться в механизме работы CryptoAPI. В частности, интересует создание цифровой подписи. Вопрос по поводу исходников, распространяемых в качестве примера. В проекте Encfile программе в качестве входных данных при шифровании необходимо передать имя файла с каким-то ключом для чтения. Непонятно, зачем нужен этот ключ и откуда получить файл.
На вход подается открытый ключ RSA1024. Он используется при экспорте симметричного ключа 3DES.
Сгенерировать его можно с помощью примера rsakg.
Здравствуйте, Lexey, Вы писали:
B>>Пытаюсь разобраться в механизме работы CryptoAPI. В частности, интересует создание цифровой подписи. Вопрос по поводу исходников, распространяемых в качестве примера. В проекте Encfile программе в качестве входных данных при шифровании необходимо передать имя файла с каким-то ключом для чтения. Непонятно, зачем нужен этот ключ и откуда получить файл.
L>На вход подается открытый ключ RSA1024. Он используется при экспорте симметричного ключа 3DES. L>Сгенерировать его можно с помощью примера rsakg.
Спасибо! На соседнем компьютере всё работает.
Однако пример rsakg у меня выдает, что не может создать контекст. Я так понимаю, что это связано с типом используемого криптопровайдера, который на моей машине не поддерживается. Как это можно исправить?
Здравствуйте, Budet, Вы писали:
B>Спасибо! На соседнем компьютере всё работает. B>Однако пример rsakg у меня выдает, что не может создать контекст. Я так понимаю, что это связано с типом используемого криптопровайдера, который на моей машине не поддерживается. Как это можно исправить?
Поставить high encryption pack (если это Win2k) или IE6.
Все работает, но никак не могу разобраться.
У меня задача такая: зашифровать файл закрытым ключом, а расшифровать открытым на другом компьютере. Ну то есть создать ЭЦП. Я так понимаю проект Encfile это не совсем то, что нужно, т.к. он при дешифрации пытается получить закрытый ключ. Как мне быть?
Здравствуйте, Budet, Вы писали:
B>У меня задача такая: зашифровать файл закрытым ключом, а расшифровать открытым на другом компьютере. Ну то есть создать ЭЦП. Я так понимаю проект Encfile это не совсем то, что нужно, т.к.
ЭЦП, как правило, не шифрует файл. Шифруется только хэш.
>он при дешифрации пытается получить закрытый ключ. Как мне быть?
Там ключ нужен для расшифровки ключа шифрования. ЭЦП в encfile есть, но она использует те ключи, что хранятся в контейнере криптопровайдера. Соответсвенно, чтобы сделать то, что тебе хочется, нужно просто добавить экспорт/импорт открытого ключа ЭЦП.
У меня функция CryptSignHash выдает ошибку NTE_BAD_KEYSET. В MSDN среди возвращаемых значений ничего не написано про этот код ошибки. Функция CryptAcquireContext проходит нормально:
Здравствуйте, Budet, Вы писали:
B>У меня функция CryptSignHash выдает ошибку NTE_BAD_KEYSET. В MSDN среди возвращаемых значений ничего не написано про этот код ошибки. Функция CryptAcquireContext проходит нормально:
Здравствуйте, Lexey, Вы писали:
L>Здравствуйте, Budet, Вы писали:
B>>У меня функция CryptSignHash выдает ошибку NTE_BAD_KEYSET. В MSDN среди возвращаемых значений ничего не написано про этот код ошибки. Функция CryptAcquireContext проходит нормально:
L>А ключи ты сгенерировать не забываешь?
Я генерирую симметричный ключ на основе пароля и случайный ассиметричный. Или их еще кроме создания надо импортить?