-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ComputeSignature не формирует cades-bes подпись #41
Comments
Спасибо, за замечание. |
Создание аттрибутов нужно в сам Net Core добавлять. Т.к. из нативного кода там вызывается CryptSignHash и он не знает ни чего про CMS. |
Да, родной .NET меня ввёл в заблуждение. В .NET Core работа с CMS сделана не через CryptMsg, поэтому магия не срабатывает. В capilite она уже есть. |
спасибо. единственное рабочее решение которое нашел: делать cades-bes через p/invoke libcades.so |
Удобнее кодировать аттрибут через Bouncy Castle. static AsnEncodedData SigningCertV2(X509Certificate2 cert)
{
var bouncyCert = new Org.BouncyCastle.X509.X509CertificateParser().ReadCertificate(cert.GetRawCertData());
HashAlgorithm gost = new Gost3411_2012_256CryptoServiceProvider();
byte[] hashValue = gost.ComputeHash(cert.RawData);
EssCertIDv2 essCertIDv2 = new EssCertIDv2(
//P.S. using AlgorithmIdentifier = Org.BouncyCastle.Asn1.X509.AlgorithmIdentifier;
new AlgorithmIdentifier("1.2.643.7.1.1.2.2"), //szOID_CP_GOST_R3411_12_256
hashValue,
new IssuerSerial(
new GeneralNames(new GeneralName(bouncyCert.IssuerDN)),
new DerInteger(new BigInteger(bouncyCert.SerialNumber.ToString()))
)
);
SigningCertificateV2 signingCertificateV2 = new SigningCertificateV2(essCertIDv2);
return new AsnEncodedData(new Oid("1.2.840.113549.1.9.16.2.47"), signingCertificateV2.GetEncoded());
} будет ли в будущем использоваться BC как в JCP? |
debian 10, csp 5.0.11998
при использовании ComputeSignature в подписи отсутствуют необходимые обязательные подписанные аттрибуты cades-bes.
время подписания можно добавить указав
cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));
но для добавления подписанного аттрибута Signing certificate V2 (1.2.840.113549.1.9.16.2.47) нет удобных способов
The text was updated successfully, but these errors were encountered: