Ejemplo n.º 1
0
        public static void displayChain(uint pChainContext)
        {
            Certificate   cert;
            IChainContext iChain;

            CAPICOM.Chain oChain;

            IEnumerator eEnum;
            int         i = 0;

            //API bridging
            oChain = new ChainClass();
            iChain = (IChainContext)oChain;
            iChain.ChainContext = (int)pChainContext;

            //get the number of certificates in chain
            eEnum = oChain.Certificates.GetEnumerator();

            Console.WriteLine();
            Console.WriteLine("Chain: ");

            //display properties of each certificate in the chain
            while (eEnum.MoveNext() == true)
            {
                i++;
                cert = (Certificate)eEnum.Current;
                Console.WriteLine("Certificate: " + i);
                Console.WriteLine("Subject: " + cert.SubjectName);
                Console.WriteLine("Issuer: " + cert.IssuerName);
                Console.WriteLine("Hash: " + cert.Thumbprint);
                Console.WriteLine("Valid From: " + cert.ValidFromDate);
                Console.WriteLine("Valid To: " + cert.ValidToDate);
                Console.WriteLine();
            }
        }
Ejemplo n.º 2
0
        public static void checkValidity(uint pChainContext)
        {
            IChainContext iChain;
            CAPICOM.Chain oChain;
            int status;

            //API bridging
            oChain = new ChainClass();
            iChain = (IChainContext)oChain;
            iChain.ChainContext = (int)pChainContext;

            //get status of the entire chain
            status = oChain.get_Status(0);

            if (status == 0)
            {
                Console.Write("The chain appears trustworthy.");
                Console.WriteLine();
                return;
            }

            Console.WriteLine("The chain is invalid.");

            // display specific chain status
            // note: for simplicity, only SOME possible status
            // values are presented below
            if ((status & Constants.CAPICOM_TRUST_IS_NOT_TIME_VALID) == Constants.CAPICOM_TRUST_IS_NOT_TIME_VALID)
                Console.WriteLine("Chain status: not time valid");

            if ((status & Constants.CAPICOM_TRUST_IS_NOT_TIME_NESTED) == Constants.CAPICOM_TRUST_IS_NOT_TIME_NESTED)
                Console.WriteLine("Chain status: time nested.");

            if ((status & Constants.CAPICOM_TRUST_IS_REVOKED) == Constants.CAPICOM_TRUST_IS_REVOKED)
                Console.WriteLine("Chain status: is revoked");

            if ((status & Constants.CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID) == Constants.CAPICOM_TRUST_IS_REVOKED)
                Console.WriteLine("Chain status:  invalid signature");

            if ((status & Constants.CAPICOM_TRUST_IS_UNTRUSTED_ROOT) == Constants.CAPICOM_TRUST_IS_UNTRUSTED_ROOT)
                    Console.WriteLine("Chain status: untrusted root");

            if ((status & Constants.CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN) == Constants.CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN)
                    Console.WriteLine("Chain status: revocation status unknown");

            if ((status & Constants.CAPICOM_TRUST_INVALID_EXTENSION) == Constants.CAPICOM_TRUST_INVALID_EXTENSION)
                    Console.WriteLine("Chain status: invalid extension");

            if ((status & Constants.CAPICOM_TRUST_INVALID_POLICY_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_POLICY_CONSTRAINTS)
                    Console.WriteLine("Chain status: invalid policy constraints");

            if ((status & Constants.CAPICOM_TRUST_INVALID_BASIC_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_BASIC_CONSTRAINTS)
                    Console.WriteLine("Chain status: invalid basic constraints");

            if ((status & Constants.CAPICOM_TRUST_INVALID_NAME_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_NAME_CONSTRAINTS)
                    Console.WriteLine("Chain status:  invalid name constraints");

            if ((status & Constants.CAPICOM_TRUST_IS_OFFLINE_REVOCATION) == Constants.CAPICOM_TRUST_IS_OFFLINE_REVOCATION)
                    Console.WriteLine("Chain status: offline revocation");

            if ((status & Constants.CAPICOM_TRUST_IS_PARTIAL_CHAIN) == Constants.CAPICOM_TRUST_IS_PARTIAL_CHAIN)
                    Console.WriteLine("Chain status: partial chain");

            Console.WriteLine();
        }
Ejemplo n.º 3
0
        public static void checkValidity(uint pChainContext)
        {
            IChainContext iChain;

            CAPICOM.Chain oChain;
            int           status;

            //API bridging
            oChain = new ChainClass();
            iChain = (IChainContext)oChain;
            iChain.ChainContext = (int)pChainContext;

            //get status of the entire chain
            status = oChain.get_Status(0);

            if (status == 0)
            {
                Console.Write("The chain appears trustworthy.");
                Console.WriteLine();
                return;
            }

            Console.WriteLine("The chain is invalid.");

            // display specific chain status
            // note: for simplicity, only SOME possible status
            // values are presented below
            if ((status & Constants.CAPICOM_TRUST_IS_NOT_TIME_VALID) == Constants.CAPICOM_TRUST_IS_NOT_TIME_VALID)
            {
                Console.WriteLine("Chain status: not time valid");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_NOT_TIME_NESTED) == Constants.CAPICOM_TRUST_IS_NOT_TIME_NESTED)
            {
                Console.WriteLine("Chain status: time nested.");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_REVOKED) == Constants.CAPICOM_TRUST_IS_REVOKED)
            {
                Console.WriteLine("Chain status: is revoked");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID) == Constants.CAPICOM_TRUST_IS_REVOKED)
            {
                Console.WriteLine("Chain status:  invalid signature");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_UNTRUSTED_ROOT) == Constants.CAPICOM_TRUST_IS_UNTRUSTED_ROOT)
            {
                Console.WriteLine("Chain status: untrusted root");
            }

            if ((status & Constants.CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN) == Constants.CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN)
            {
                Console.WriteLine("Chain status: revocation status unknown");
            }

            if ((status & Constants.CAPICOM_TRUST_INVALID_EXTENSION) == Constants.CAPICOM_TRUST_INVALID_EXTENSION)
            {
                Console.WriteLine("Chain status: invalid extension");
            }

            if ((status & Constants.CAPICOM_TRUST_INVALID_POLICY_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_POLICY_CONSTRAINTS)
            {
                Console.WriteLine("Chain status: invalid policy constraints");
            }

            if ((status & Constants.CAPICOM_TRUST_INVALID_BASIC_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_BASIC_CONSTRAINTS)
            {
                Console.WriteLine("Chain status: invalid basic constraints");
            }

            if ((status & Constants.CAPICOM_TRUST_INVALID_NAME_CONSTRAINTS) == Constants.CAPICOM_TRUST_INVALID_NAME_CONSTRAINTS)
            {
                Console.WriteLine("Chain status:  invalid name constraints");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_OFFLINE_REVOCATION) == Constants.CAPICOM_TRUST_IS_OFFLINE_REVOCATION)
            {
                Console.WriteLine("Chain status: offline revocation");
            }

            if ((status & Constants.CAPICOM_TRUST_IS_PARTIAL_CHAIN) == Constants.CAPICOM_TRUST_IS_PARTIAL_CHAIN)
            {
                Console.WriteLine("Chain status: partial chain");
            }

            Console.WriteLine();
        }
Ejemplo n.º 4
0
        public static void displayChain(uint pChainContext)
        {
            Certificate cert;
            IChainContext iChain;
            CAPICOM.Chain oChain;

            IEnumerator eEnum;
            int i = 0;

            //API bridging
            oChain = new ChainClass();
            iChain = (IChainContext)oChain;
            iChain.ChainContext = (int)pChainContext;

            //get the number of certificates in chain
            eEnum = oChain.Certificates.GetEnumerator();

            Console.WriteLine();
            Console.WriteLine("Chain: ");

            //display properties of each certificate in the chain
            while (eEnum.MoveNext() == true)
            {
                i++;
                cert = (Certificate) eEnum.Current;
                Console.WriteLine("Certificate: " + i);
                Console.WriteLine("Subject: " + cert.SubjectName);
                Console.WriteLine("Issuer: " + cert.IssuerName);
                Console.WriteLine("Hash: " + cert.Thumbprint);
                Console.WriteLine("Valid From: " + cert.ValidFromDate);
                Console.WriteLine("Valid To: " + cert.ValidToDate);
                Console.WriteLine();
            }
        }