45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using System;
|
|
using Org.BouncyCastle.Asn1;
|
|
using Org.BouncyCastle.Asn1.Ocsp;
|
|
|
|
namespace Org.BouncyCastle.Ocsp;
|
|
|
|
public class OCSPRespGenerator
|
|
{
|
|
public const int Successful = 0;
|
|
|
|
public const int MalformedRequest = 1;
|
|
|
|
public const int InternalError = 2;
|
|
|
|
public const int TryLater = 3;
|
|
|
|
public const int SigRequired = 5;
|
|
|
|
public const int Unauthorized = 6;
|
|
|
|
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 (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");
|
|
}
|
|
}
|