<PackageReference Include="BouncyCastle.Cryptography" Version="2.3.1" />

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 OcspResponse resp; public int Status => resp.ResponseStatus.IntValueExact; public OcspResp(OcspResponse resp) { this.resp = resp; } public OcspResp(byte[] resp) : this(new Asn1InputStream(resp)) { } public OcspResp(Stream inStr) : this(new Asn1InputStream(inStr)) { } private OcspResp(Asn1InputStream aIn) { try { resp = OcspResponse.GetInstance(aIn.ReadObject()); } catch (Exception ex) { throw new IOException("malformed response: " + ex.Message, ex); } } 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 (Exception ex) { throw new OcspException("problem decoding object: " + ex?.ToString(), ex); } return responseBytes.Response; } public byte[] GetEncoded() { return resp.GetEncoded(); } public override bool Equals(object obj) { if (obj == this) return true; OcspResp ocspResp = obj as OcspResp; if (ocspResp == null) return false; return resp.Equals(ocspResp.resp); } public override int GetHashCode() { return resp.GetHashCode(); } } }