Я пытаюсь поставить цифровую подпись некоторого контента, включая всю цепочку сертификатов в подписи (чтобы получатель мог проверить подпись без проблем).Я получаю следующую ошибку: «Произошла внутренняя ошибка цепочки сертификатов» при вызове метода ComputeSignature () .
Установлены сертификаты как корневого, так и промежуточного ЦСв моей машине.Я пытаюсь подписать содержимое с помощью сертификата электронной почты Verisign.
Промежуточный сертификат CA Сертификат: VeriSign Class 1 Отдельный подписчик CA - G3
Root CA сертификат: VeriSign Class 1 Public Primary Certification Authority - G3
Вот код, который я использую:
public static byte[] GetSignature(
string message,
X509Certificate2 signingCertificate)
{
byte[] messageBytes = Encoding.ASCII.GetBytes(message);
SignedCms signedCms = new SignedCms(new ContentInfo(messageBytes), true);
CmsSigner cmsSigner = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, signingCertificate);
cmsSigner.IncludeOption = X509IncludeOption.WholeChain;
Pkcs9SigningTime signingTime = new Pkcs9SigningTime();
cmsSigner.SignedAttributes.Add(signingTime);
signedCms.ComputeSignature(cmsSigner, false);
return signedCms.Encode();
}