public static SignerInformation AddCounterSigners(SignerInformation signerInformation, SignerInformationStore counterSigners)
{
Org.BouncyCastle.Asn1.Cms.SignerInfo signerInfo = signerInformation.info;
Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttributes = signerInformation.UnsignedAttributes;
Asn1EncodableVector asn1EncodableVector;
if (unsignedAttributes != null)
{
asn1EncodableVector = unsignedAttributes.ToAsn1EncodableVector();
}
else
{
asn1EncodableVector = new Asn1EncodableVector(new Asn1Encodable[0]);
}
Asn1EncodableVector asn1EncodableVector2 = new Asn1EncodableVector(new Asn1Encodable[0]);
foreach (SignerInformation signerInformation2 in counterSigners.GetSigners())
{
asn1EncodableVector2.Add(new Asn1Encodable[]
{
signerInformation2.ToSignerInfo()
});
}
asn1EncodableVector.Add(new Asn1Encodable[]
{
new Org.BouncyCastle.Asn1.Cms.Attribute(CmsAttributes.CounterSignature, new DerSet(asn1EncodableVector2))
});
return(new SignerInformation(new Org.BouncyCastle.Asn1.Cms.SignerInfo(signerInfo.SignerID, signerInfo.DigestAlgorithm, signerInfo.AuthenticatedAttributes, signerInfo.DigestEncryptionAlgorithm, signerInfo.EncryptedDigest, new DerSet(asn1EncodableVector)), signerInformation.contentType, signerInformation.content, null));
}