<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

OcspResp

public class OcspResp
using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.Ocsp; using System; using System.IO; namespace Org.BouncyCastle.Ocsp { public class OcspResp { private readonly OcspResponse m_ocspResponse; public int Status => m_ocspResponse.ResponseStatus.IntValueExact; private static OcspResponse ParseOcspResponse(byte[] encoding) { try { return OcspResponse.GetInstance(encoding); } catch (Exception ex) { throw new IOException("malformed response: " + ex.Message, ex); } } private static OcspResponse ParseOcspResponse(Stream input) { try { return OcspResponse.GetInstance(Asn1Object.FromStream(input)); } catch (Exception ex) { throw new IOException("malformed response: " + ex.Message, ex); } } public OcspResp(OcspResponse resp) { m_ocspResponse = resp; } public OcspResp(byte[] resp) : this(ParseOcspResponse(resp)) { } public OcspResp(Stream inStr) : this(ParseOcspResponse(inStr)) { } public object GetResponseObject() { ResponseBytes responseBytes = m_ocspResponse.ResponseBytes; if (responseBytes == null) return null; if (OcspObjectIdentifiers.PkixOcspBasic.Equals(responseBytes.ResponseType)) try { return new BasicOcspResp(BasicOcspResponse.GetInstance(responseBytes.Response.GetOctets())); } catch (Exception ex) { throw new OcspException("problem decoding object: " + ex?.ToString(), ex); } return responseBytes.Response; } public byte[] GetEncoded() { return m_ocspResponse.GetEncoded(); } public override bool Equals(object obj) { if (obj == this) return true; OcspResp ocspResp = obj as OcspResp; if (ocspResp != null) return m_ocspResponse.Equals(ocspResp.m_ocspResponse); return false; } public override int GetHashCode() { return m_ocspResponse.GetHashCode(); } public OcspResponse ToAsn1Structure() { return m_ocspResponse; } } }