BuildChain() 공개 정적인 메소드

public static BuildChain ( bool useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, System.DateTime verificationTime, System.TimeSpan timeout ) : IChainPal
useMachineContext bool
cert ICertificatePal
extraStore System.Security.Cryptography.X509Certificates.X509Certificate2Collection
applicationPolicy System.Security.Cryptography.OidCollection
certificatePolicy System.Security.Cryptography.OidCollection
revocationMode X509RevocationMode
revocationFlag X509RevocationFlag
verificationTime System.DateTime
timeout System.TimeSpan
리턴 IChainPal
예제 #1
0
        private static bool VerifyCertificateIgnoringErrors(SafeCertContextHandle pCertContext)
        {
            ChainPal chainPal = ChainPal.BuildChain(
                true,
                CertificatePal.FromHandle(pCertContext.DangerousGetHandle()),
                null, //extraStore
                null, //applicationPolicy
                null, //certificatePolicy
                X509RevocationMode.NoCheck,
                X509RevocationFlag.ExcludeRoot,
                DateTime.Now,
                new TimeSpan(0, 0, 0));

            if (chainPal == null)
            {
                return(false);
            }

            using (chainPal)
            {
                Exception verificationException;
                bool?     verified = chainPal.Verify(X509VerificationFlags.NoFlag, out verificationException);
                if (!(verified.HasValue && verified.Value))
                {
                    return(false);
                }
            }

            return(true);
        }
예제 #2
0
        private static bool VerifyCertificateIgnoringErrors(SafeCertContextHandle pCertContext)
        {
            // This needs to be kept in sync with IsCertValid in the
            // Unix/OpenSSL PAL version (and potentially any other PALs that come about)
            ChainPal?chainPal = ChainPal.BuildChain(
                false,
                CertificatePal.FromHandle(pCertContext.DangerousGetHandle()),
                null, //extraStore
                null, //applicationPolicy
                null, //certificatePolicy
                X509RevocationMode.NoCheck,
                X509RevocationFlag.ExcludeRoot,
                null,
                X509ChainTrustMode.System,
                DateTime.Now,
                new TimeSpan(0, 0, 0));

            if (chainPal == null)
            {
                return(false);
            }

            using (chainPal)
            {
                Exception?verificationException;
                bool?     verified = chainPal.Verify(X509VerificationFlags.NoFlag, out verificationException);
                if (!verified.GetValueOrDefault())
                {
                    return(false);
                }
            }

            return(true);
        }