Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > EnvelopedCms


Автор: nmn 22.12.2009, 00:54
Здравствуйте
есть сертифиткат, есть зашифрованная информация при помощи CAPICOM.EnvelopedData, хочу расшифровать ее используя EnvelopedCms

покажите пример как это можно сделать

Автор: nmn 22.12.2009, 01:26
немного поколдовал и вот что получилось
Код

byte[] data= Encoding.Default.GetBytes("1508 ansi characters in base64");//здесь была настоящая информация

            X509Store store = null;
            X509Certificate2 cert = null;
            try
            {
                store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                {
                    store.Open(OpenFlags.ReadOnly);

                    EnvelopedCms envelope = new EnvelopedCms(new ContentInfo(data), new AlgorithmIdentifier(new Oid("", "DES"), 3));
                    envelope.Decrypt(store.Certificates);
                    Console.Write(Encoding.ASCII.GetString(envelope.ContentInfo.Content));
                }
            }
            finally
            {
                store.Close();
            }

что то я делаю неправильно, он выбрасывает исключение System.InvalidOperationException при попытке расшифровки

есть код расшифровки на  JScript
Код

this.codec = new ActiveXObject("CAPICOM.EnvelopedData");
    this.codec.Algorithm.Name = 2;            // DES
    this.codec.Algorithm.KeyLength = 3;        // 128 bit
    this.decrypt = function(str) {
        this.codec.Decrypt(str);
        return this.codec.Content;

его я и пытаюсь реализовать на C#

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)