Exemplo n.º 1
0
        private async Task <OcspResponse> SendOcspRequests(Ocsp ocsp, IList <Uri> uris, OcspResponse response)
        {
            foreach (var uri in uris)
            {
                try
                {
                    HttpWebRequest request = CreateOcspRequest(ocsp, uri);
                    response = await SendOcspRequest(request);

                    if (response != null)
                    {
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex, $"Cannot connect to ocsp server for {uri}.");
                    if (response == null)
                    {
                        response = new OcspResponse();
                    }

                    response.Status = OcspRevocationStatus.Error;
                }
            }

            return(response);
        }
Exemplo n.º 2
0
        public virtual HttpWebRequest CreateOcspRequest(Ocsp ocsp, Uri uri)
        {
            var reqArray = ocsp.CreateOcspReq().GetEncoded();

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

            request.Method = "POST";
            var requestStream = request.GetRequestStream();

            request.ContentLength = reqArray.Length;
            request.ContentType   = "application/ocsp-request";
            request.Accept        = "application/ocsp-response";
            requestStream.Write(reqArray, 0, reqArray.Length);
            return(request);
        }