Mono.Security.X509.Extensions.NetscapeCertTypeExtension.Support C# (CSharp) Method

Support() public method

public Support ( CertTypes usage ) : bool
usage CertTypes
return bool
		public bool Support (CertTypes usage) 
		{
			int x = Convert.ToInt32 (usage, CultureInfo.InvariantCulture);
			return ((x & ctbits) == x);
		}

Usage Example

Example #1
0
        private bool CheckClientCertificateExtensions(X509Certificate cert)
        {
            KeyUsages ku = KeyUsages.digitalSignature | KeyUsages.keyEncipherment | KeyUsages.keyAgreement;
            KeyUsageExtension kux = null;
            ExtendedKeyUsageExtension eku = null;

            X509Extension xtn = cert.Extensions["2.5.29.15"];
            if (xtn != null)
                kux = new KeyUsageExtension (xtn);

            xtn = cert.Extensions["2.5.29.37"];
            if (xtn != null)
                eku = new ExtendedKeyUsageExtension (xtn);

            if ((kux != null) && (eku != null)) {
                // RFC3280 states that when both KeyUsageExtension and
                // ExtendedKeyUsageExtension are present then BOTH should
                // be valid
                return (kux.Support (ku) &&
                    eku.KeyPurpose.Contains ("1.3.6.1.5.5.7.3.2"));
            } else if (kux != null) {
                return kux.Support (ku);
            } else if (eku != null) {
                // Client Authentication (1.3.6.1.5.5.7.3.2)
                return eku.KeyPurpose.Contains ("1.3.6.1.5.5.7.3.2");
            }

            // last chance - try with older (deprecated) Netscape extensions
            xtn = cert.Extensions["2.16.840.1.113730.1.1"];
            if (xtn != null) {
                NetscapeCertTypeExtension ct = new NetscapeCertTypeExtension (xtn);
                return ct.Support (NetscapeCertTypeExtension.CertTypes.SslClient);
            }

            // certificate isn't valid for SSL client usage
            return false;
        }
All Usage Examples Of Mono.Security.X509.Extensions.NetscapeCertTypeExtension::Support