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); }
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); }