private static XadesInfo GetXadesInfo(string rawPk)
        {
            var xadesInfo = new XadesInfo
            {
                RawPk = rawPk,
                SigningDateTimeUtc = DateTime.UtcNow
            };
            var delta = TimeZoneInfo.Local.GetUtcOffset(DateTime.Now);

            xadesInfo.TimeZoneOffsetMinutes = Convert.ToInt32(delta.TotalMinutes);
            return(xadesInfo);
        }
        private static XadesObject GetXadesObject(XadesInfo xadesInfo, string signatureid)
        {
            var xadesObject = new XadesObject
            {
                QualifyingProperties =
                {
                    Target           = $"#{signatureid}",
                    SignedProperties = { Id = $"{signatureid}-signedprops" }
                }
            };

            var signedSignatureProperties = xadesObject.QualifyingProperties.SignedProperties.SignedSignatureProperties;


            var x509CertificateParser = new Org.BouncyCastle.X509.X509CertificateParser();
            var bouncyCert            = x509CertificateParser.ReadCertificate(Convert.FromBase64String(xadesInfo.RawPk));

            var x509IssuerDn = GetOidRepresentation(bouncyCert.IssuerDN.ToString());

            x509IssuerDn = IssuerNamePatcher(x509IssuerDn);

            var cert = new Cert
            {
                IssuerSerial =
                {
                    X509IssuerName   = x509IssuerDn,
                    X509SerialNumber = bouncyCert.SerialNumber.ToString()
                }
            };

#pragma warning disable 612
            cert.CertDigest.DigestMethod.Algorithm = CPSignedXml.XmlDsigGost3411UrlObsolete;
#pragma warning restore 612

            var rawCertData = Convert.FromBase64String(xadesInfo.RawPk);
            var pkHash      = HashAlgorithm.Create("GOST3411");

            if (pkHash != null)
            {
                var hashValue = pkHash.ComputeHash(rawCertData);
                cert.CertDigest.DigestValue = hashValue;
            }

            signedSignatureProperties.SigningCertificate.CertCollection.Add(cert);

            signedSignatureProperties.SigningTime = xadesInfo.SigningDateTimeUtc.AddMinutes(xadesInfo.TimeZoneOffsetMinutes);
            return(xadesObject);
        }