public SignerInfoGeneratorBuilder NewBuilder() { SignerInfoGeneratorBuilder builder = new SignerInfoGeneratorBuilder(); builder.WithSignedAttributeGenerator(signedGen); builder.WithUnsignedAttributeGenerator(unsignedGen); builder.SetDirectSignature(isDirectSignature); return(builder); }
public static string SignCmsGost2012(string data, string tlsNumber, int pin, byte[] rawCertificate, byte[] key) { var requestBytes = Encoding.UTF8.GetBytes(data); var typedData = new CmsProcessableByteArray(requestBytes); var gen = new CmsSignedDataGenerator(); var signerInfoGeneratorBuilder = new SignerInfoGeneratorBuilder(); var attrs = GetSigningParameters(tlsNumber, pin); var parameters = new DefaultSignedAttributeTableGenerator(attrs); signerInfoGeneratorBuilder.WithSignedAttributeGenerator(parameters); var factory = new Asn1SignatureFactory(SingingAlgorithm, GetKey(key)); var bcCertificate = GetBankCertificate(rawCertificate); gen.AddSignerInfoGenerator(signerInfoGeneratorBuilder.Build(factory, bcCertificate)); gen.AddCertificates(MakeCertStore(bcCertificate)); var signed = gen.Generate(typedData, false); var signedBytes = signed.GetEncoded(); return(Convert.ToBase64String(signedBytes)); }