Статус: Новичок
Группы: Участники
Зарегистрирован: 14.01.2015(UTC) Сообщений: 5 Откуда: Ярославль Сказал(а) «Спасибо»: 1 раз
|
Подпись, полученная через cryptcp, не проходит проверку через Gost3410_2012_256CryptoServiceProvider.VerifySignature С чем это может быть связано, нужно сделать еще какие-то манипуляции с байтами signature? Пробовал Reverse(). Код:
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, serialNumber, false);
X509Certificate2 certificate = certificates[0];
var gostPrivateKey = (Gost3410_2012_256CryptoServiceProvider)certificate.PrivateKey;
var gostHash = new Gost3411_2012_256CryptoServiceProvider();
Process compiler = new Process();
compiler.StartInfo.FileName = helperPath;
compiler.StartInfo.Arguments = string.Format("-sign -nocert -nostampcert -hashAlg 1.2.643.7.1.1.2.2 -thumberprint \"{0}\" \"{1}\" \"{2}\"",
certificate.Thumbprint, file, resultFile);
compiler.StartInfo.UseShellExecute = false;
compiler.Start();
compiler.WaitForExit();
var signedCms = new SignedCms();
string detachedSignBase64 = File.ReadAllText(resultFile);
var detachedSign = Convert.FromBase64String(detachedSignBase64);
signedCms.Decode(detachedSign);
X509Certificate2Collection certCollection = new X509Certificate2Collection { certificate };
signedCms.CheckSignature(certCollection, true);
// выполняется
signedCms.CheckSignature(new X509Certificate2Collection { certificate }, true);
var data = File.ReadAllBytes(file);
foreach (var si in signedCms.SignerInfos)
{
var signature = si.GetSignature();
// verify = false ?
var verify = gostPrivateKey.VerifyData(data, gostHash, signature);
if (!verify)
throw new Exception("Неверная подпись");
}
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close