Ejemplo n.º 1
0
        public object GetResponseObject()
        {
            ResponseBytes rb = this.resp.ResponseBytes;

            if (rb == null)
            {
                return(null);
            }

            if (rb.ResponseType.Equals(OcspObjectIdentifiers.PkixOcspBasic))
            {
                try
                {
                    return(new BasicOcspResp(
                               BasicOcspResponse.GetInstance(
                                   Asn1Object.FromByteArray(rb.Response.GetOctets()))));
                }
                catch (Exception e)
                {
                    throw new OcspException("problem decoding object: " + e, e);
                }
            }

            return(rb.Response);
        }
Ejemplo n.º 2
0
        private ITestResult Response()
        {
            try
            {
                OcspResponse resp = OcspResponse.GetInstance(
                    Asn1Object.FromByteArray(_response));
                ResponseBytes rBytes = ResponseBytes.GetInstance(resp.ResponseBytes);

                BasicOcspResponse bResp = BasicOcspResponse.GetInstance(
                    Asn1Object.FromByteArray(rBytes.Response.GetOctets()));

                resp = new OcspResponse(
                    resp.ResponseStatus,
                    new ResponseBytes(
                        rBytes.ResponseType,
                        new DerOctetString(bResp.GetEncoded())));

                if (!Arrays.AreEqual(resp.GetEncoded(), _response))
                {
                    return(new SimpleTestResult(false, Name + ": Ocsp response failed to re-encode"));
                }

                return(new SimpleTestResult(true, Name + ": Okay"));
            }
            catch (Exception e)
            {
                return(new SimpleTestResult(false, Name + ": failed response exception - " + e.ToString(), e));
            }
        }
Ejemplo n.º 3
0
        public const int Unauthorized = 6;                      // Request unauthorized

        public OcspResp Generate(
            int status,
            object response)
        {
            if (response == null)
            {
                return(new OcspResp(new OcspResponse(new OcspResponseStatus(status), null)));
            }
            if (response is BasicOcspResp)
            {
                BasicOcspResp   r = (BasicOcspResp)response;
                Asn1OctetString octs;

                try
                {
                    octs = new DerOctetString(r.GetEncoded());
                }
                catch (Exception e)
                {
                    throw new OcspException("can't encode object.", e);
                }

                ResponseBytes rb = new ResponseBytes(
                    OcspObjectIdentifiers.PkixOcspBasic, octs);

                return(new OcspResp(new OcspResponse(
                                        new OcspResponseStatus(status), rb)));
            }

            throw new OcspException("unknown response object");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 发送消息并清空缓冲区。
        /// </summary>
        /// <param name="message">消息内容。</param>
        /// <returns>一个任务。</returns>
        public Task SendAndFlushAsync(TransportMessage message)
        {
            var           buffer = GetByteBuffer(message);
            ResponseBytes resp   = new ResponseBytes(message.Id);

            resp.SetBytes(1, buffer);
            return(_context.WriteAndFlushAsync(resp));
        }
Ejemplo n.º 5
0
 private OcspResponse(Asn1Sequence seq)
 {
     responseStatus = new OcspResponseStatus(DerEnumerated.GetInstance(seq[0]));
     if (seq.Count == 2)
     {
         responseBytes = ResponseBytes.GetInstance((Asn1TaggedObject)seq[1], explicitly: true);
     }
 }
Ejemplo n.º 6
0
 public OcspResponse(OcspResponseStatus responseStatus, ResponseBytes responseBytes)
 {
     if (responseStatus == null)
     {
         throw new ArgumentNullException("responseStatus");
     }
     this.responseStatus = responseStatus;
     this.responseBytes  = responseBytes;
 }
Ejemplo n.º 7
0
        /// <exception cref="System.IO.IOException"/>
        private static byte[] BuildOCSPResponse(byte[] basicOcspResponse)
        {
            DerOctetString     doctet     = new DerOctetString(basicOcspResponse);
            OcspResponseStatus respStatus = new OcspResponseStatus(Org.BouncyCastle.Asn1.Ocsp.OcspResponseStatus.Successful
                                                                   );
            ResponseBytes responseBytes = new ResponseBytes(OcspObjectIdentifiers.PkixOcspBasic, doctet);
            OcspResponse  ocspResponse  = new OcspResponse(respStatus, responseBytes);

            return(new OcspResp(ocspResponse).GetEncoded());
        }
Ejemplo n.º 8
0
        public object GetResponseObject()
        {
            ResponseBytes responseBytes = resp.ResponseBytes;

            if (responseBytes == null)
            {
                return(null);
            }
            if (responseBytes.ResponseType.Equals(OcspObjectIdentifiers.PkixOcspBasic))
            {
                try
                {
                    return(new BasicOcspResp(BasicOcspResponse.GetInstance(Asn1Object.FromByteArray(responseBytes.Response.GetOctets()))));
                }
                catch (global::System.Exception ex)
                {
                    throw new OcspException(string.Concat((object)"problem decoding object: ", (object)ex), ex);
                }
            }
            return(responseBytes.Response);
        }
Ejemplo n.º 9
0
 public OcspResp Generate(int status, object response)
 {
     if (response == null)
     {
         return(new OcspResp(new OcspResponse(new OcspResponseStatus(status), null)));
     }
     if (response is BasicOcspResp)
     {
         BasicOcspResp   basicOcspResp = (BasicOcspResp)response;
         Asn1OctetString response2;
         try
         {
             response2 = new DerOctetString(basicOcspResp.GetEncoded());
         }
         catch (global::System.Exception e)
         {
             throw new OcspException("can't encode object.", e);
         }
         ResponseBytes responseBytes = new ResponseBytes(OcspObjectIdentifiers.PkixOcspBasic, response2);
         return(new OcspResp(new OcspResponse(new OcspResponseStatus(status), responseBytes)));
     }
     throw new OcspException("unknown response object");
 }
Ejemplo n.º 10
0
        public Object getResponseObject()
        {
            ResponseBytes rb = this.resp.getResponseBytes();

            if (rb == null)
            {
                return(null);
            }

            if (rb.getResponseType().Equals(OCSPObjectIdentifiers.id_pkix_ocsp_basic))
            {
                try
                {
                    ASN1InputStream aIn = new ASN1InputStream(new MemoryStream(rb.getResponse().getOctets()));
                    return(new BasicOCSPResp(BasicOCSPResponse.getInstance(aIn.readObject())));
                }
                catch (Exception e)
                {
                    throw new OCSPException("problem decoding object: " + e, e);
                }
            }

            return(rb.getResponse());
        }