创建BouncyCastle OCSP响应

时间:2012-05-28 14:08:43

标签: c# deserialization bouncycastle ocsp

我很难在BouncyCastle中找到有关OCSP的信息,我在网上找到的例子充其量是模糊的,所以我想我会试着在这里问。

这是我的问题:我正在尝试在BouncyCastle for .NET中执行OCSP但是我遇到了OCSP响应问题,特别是我不知道如何在序列化后恢复响应并将其发送给收件人。

问题很可能是我正在以错误的方式构建响应本身,因为我这样做是通过在线发现的点点滴滴和我自己纯粹的“直觉”拼凑而成的。以下是我创建响应的方式:

        X509CrlEntry crlentry = Repository.CRL.GetRevokedCertificate(certToCheck.SerialNumber);
        BasicOcspRespGenerator basicRespGen = new BasicOcspRespGenerator(Repository.Data.BouncyCastlePublicKey);
        if (crlentry == null) {
            //still valid
            basicRespGen.AddResponse(certToCheck, CertificateStatus.Good);
        } else {
            //revoked
            DerGeneralizedTime dt = new DerGeneralizedTime(crlentry.RevocationDate);
            RevokedInfo rinfo = new RevokedInfo(dt, new CrlReason(CrlReason.CessationOfOperation));
            RevokedStatus rstatus = new RevokedStatus(rinfo);
            basicRespGen.AddResponse(certToCheck, rstatus);
        }
        BasicOcspResp response = basicRespGen.Generate("SHA512withRSA", Repository.Data.BouncyCastlePrivateKey, new X509Certificate[] { Repository.Data.MyCertificate }, DateTime.Now);
        byte[] responseBytes = response.GetEncoded;
    //I then send the bytes back to the client who made the request

问题是现在我不知道如何从它的序列化byte []形式返回响应...似乎没有工厂/解析器或构造函数来取回它。有一个OcspResp构造函数接受byte []作为参数,但它抛出一个异常,我认为因为OcspResp和BasicOcspResp是不同的东西。

任何人都可以帮助我吗?我建立的响应本身是错误的,还是只是因为我没有看到如何反序列化它?任何提示?

提前致谢 Master_T

0 个答案:

没有答案