Ejemplo n.º 1
0
        private static bool IssuerAndSerialMatch(
            CadesIssuerSerial issuerSerial,
            ReadOnlySpan <byte> issuerDirectoryName,
            ReadOnlySpan <byte> serialNumber)
        {
            GeneralName[] issuerNames = issuerSerial.Issuer;

            if (issuerNames == null || issuerNames.Length != 1)
            {
                return(false);
            }

            GeneralName requiredName = issuerNames[0];

            if (requiredName.DirectoryName == null)
            {
                return(false);
            }

            if (!requiredName.DirectoryName.Value.Span.SequenceEqual(issuerDirectoryName))
            {
                return(false);
            }

            return(serialNumber.SequenceEqual(issuerSerial.SerialNumber.Span));
        }
Ejemplo n.º 2
0
        private static bool IssuerAndSerialMatch(
            CadesIssuerSerial issuerSerial,
            string issuerDirectoryName,
            string serialNumber)
        {
            GeneralName[] issuerNames = issuerSerial.Issuer;

            if (issuerNames == null || issuerNames.Length != 1)
            {
                return(false);
            }

            GeneralName requiredName = issuerNames[0];

            if (requiredName.DirectoryName == null)
            {
                return(false);
            }

            if (issuerDirectoryName != new X500DistinguishedName(requiredName.DirectoryName.Value.ToArray()).Name)
            {
                return(false);
            }

            return(serialNumber == issuerSerial.SerialNumber.Span.ToSkiString());
        }