Пример #1
0
        internal static OCSPStatus Test()
        {
            X509Certificate main   = Utility.GetCertificateFromString(File.ReadAllText(@"C:\Users\abrar\Desktop\BCC-CA-XMLSignVerifierService\Test\CertCode\c.pem"));
            X509Certificate issuer = Utility.GetCertificateFromString(File.ReadAllText(@"C:\Users\abrar\Desktop\BCC-CA-XMLSignVerifierService\Test\CertCode\issuer.pem"));
            OCSPStatus      status = OCSP.CheckOCSP(main, issuer);

            return(status);
        }
Пример #2
0
        private static OCSPStatus ProcessOcspResponse(X509Certificate eeCert, X509Certificate issuerCert, byte[] binaryResp)
        {
            OcspResp   r       = new OcspResp(binaryResp);
            OCSPStatus cStatus = OCSPStatus.Unknown;

            switch (r.Status)
            {
            case OcspRespStatus.Successful:
                BasicOcspResp or = (BasicOcspResp)r.GetResponseObject();

                //ValidateResponse(or, issuerCert);

                if (or.Responses.Length == 1)
                {
                    SingleResp resp = or.Responses[0];

                    ValidateCertificateId(issuerCert, eeCert, resp.GetCertID());
                    //ValidateThisUpdate(resp);
                    //ValidateNextUpdate(resp);

                    Object certificateStatus = resp.GetCertStatus();

                    if (certificateStatus == CertificateStatus.Good)
                    {
                        cStatus = OCSPStatus.Good;
                    }
                    else if (certificateStatus is RevokedStatus)
                    {
                        cStatus = OCSPStatus.Revoked;
                    }
                    else if (certificateStatus is UnknownStatus)
                    {
                        cStatus = OCSPStatus.Unknown;
                    }
                }
                break;

            default:
                throw new Exception("Unknow status '" + r.Status + "'.");
            }

            return(cStatus);
        }