| ||||
| ||||
Привет Всем! Хочу уточнить одну деталь, я шифрую текст ф-ей EnvelopedData.Encrypt загружая предварительно pfx. Потом я хочу расшифровать зашифрованное загрузив *.CER - т.е. публичный ключ. Однако я получаю исключение что сертификат не найден, пошарил по форумам и нашёл что сертификат толжен быть импортирован в хранилище системы, иначе никак. Вопрос. Это верное утверждение, мне что то не верится... С Уважением, VVA | ||||
Ответы: | ||||
| ||||
Вкратце : для шифрования нужен открытый ключ получателя. Для расшифровки - его секретный. Т.е. в его адрес зашифровать может кто угодно, а расшифровать может только он сам. | ||||
| ||||
Я счтал что наоборот, шифрование происходит по секретному ключу а расшифровка по публичному, что собственно и подтверждают эксперименты. На при шифровании я указал контейнер pfx (там всё), при расшифровывании я импортировал *.cer т.е. сертификат с открытым ключом. Расшиврование при этом состоялось успешно. Затем я удалил этот сертификат из системы и как положено получил ошибку. Как тогда обьяснить это? C Уважением, VVA | ||||
| ||||
Из MSDN EnvelopedData.Encrypt : The Encrypt method generates a session key, uses that key to encrypt the contents, envelops the encrypted content for each recipient by encrypting the session key with each recipient’s public key, and then returns the BLOB that contains the encrypted contents and the encrypted session keys as an encoded string. EnvelopedData.Decrypt : The Decrypt method decrypts enveloped content. Decryption is done if the recipient of the message has access to the private key paired with one of the public keys used to envelop the message. Как видите, требования совершенно однозначные. А как Вы импортировали этот сертификат, чтобы расшифровывать? Просто каким-то образом у Вас был доступ к секретному ключу, чудес не бывает :) | ||||
| ||||
>Как видите, требования совершенно однозначные. RTFM типа... :-) >А как Вы импортировали этот сертификат, чтобы расшифровывать? обыкновенным образом: rundll32.exe cryptext.dll,CryptExtAddCER my.cer >Просто каким-то образом у Вас был доступ к секретному ключу, чудес не бывает :) Вот и мне любопытно что приисходит? PS Сертификат создавал скриптом по xEnroll, после подписания его в СА импортировал а хранилище My. Затем, уже экспортировал всё (галочка на удаление приватного ключа) в pfx. Вот и вся кухня. PSS У вас есть ICQ? ...а то уж больно долго решать такие вопросы. Мой #58081880 С Уважением, VVA | ||||