Электронная подпись некорректна. ЧЯДНТ? хелп!
От: Философ Ад http://vk.com/id10256428
Дата: 28.06.13 06:14
Оценка: :)
Получаю электронную подпись вот так:

            byte[] planeBytes = null;
            using (FileStream file = new FileStream(xmlFileName, FileMode.Open, FileAccess.Read))
            {
                planeBytes = new byte[file.Length];
                file.Read(planeBytes, 0, (int)file.Length);
            }

            CAPICOM.SignedData signeddata = new CAPICOM.SignedData();
            signeddata.Content = Encoding.UTF8.GetString(planeBytes);


            CAPICOM.Settings settings = new Settings();
            settings.EnablePromptForCertificateUI = true;


            CAPICOM.Signer signer = new Signer();

            var resultSignature =  signeddata.Sign(signer, true, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);

            using (FileStream fileSig = new FileStream(signFileName, FileMode.Create, FileAccess.Write))
            {
                var resultBytes = Encoding.UTF8.GetBytes(resultSignature);
                fileSig.Write(resultBytes, 0, resultBytes.Length);
            }
        }


Проверяю Крипто-Армом. Он находит подпись, но говорит, что он некорректна.
Attached подпись он признаёт мат. корректной, но не заслуживающей доверия.
Мне нужна именно detached подпись.
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Электронная подпись некорректна. ЧЯДНТ? хелп!
От: baranovda Российская Империя  
Дата: 28.06.13 15:01
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Получаю электронную подпись вот так:


во-первых зачем capicom, когда в .нете есть RSAProvider
во-вторых переверни resultBytes задом наперёд и попробуй снова
Re[2]: Электронная подпись некорректна. ЧЯДНТ? хелп!
От: Sinix  
Дата: 29.06.13 05:31
Оценка:
Здравствуйте, baranovda, Вы писали:

B>во-вторых переверни resultBytes задом наперёд и попробуй снова

utf-8 задомнаперёд? Мсье знает толк...
Re: Электронная подпись некорректна. ЧЯДНТ? хелп!
От: arv  
Дата: 29.06.13 16:29
Оценка: 5 (1)
Здравствуйте, Философ, Вы писали:


Ф>Проверяю Крипто-Армом. Он находит подпись, но говорит, что он некорректна.

Ф>Attached подпись он признаёт мат. корректной, но не заслуживающей доверия.
Ф>Мне нужна именно detached подпись.

Насколько я помню, CAPICOM подписывает UTF-32-представление строки с base64 данных
Или что-то в этом духе. Поэкпериментируй с кодировками, проверь подпись руками. Давно этим занимался, но помню, что метод подбора помогает быстро
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.