{"id":29620539,"url":"https://github.com/gabrielcalegari/ocspresponder","last_synced_at":"2025-07-21T03:33:55.098Z","repository":{"id":33935105,"uuid":"137935185","full_name":"gabrielcalegari/OCSPResponder","owner":"gabrielcalegari","description":"A .NET facility to create an OCSP Responder. Written in C# under netstandard it has support for .NET Full and .NET Core","archived":false,"fork":false,"pushed_at":"2022-05-09T04:10:00.000Z","size":48,"stargazers_count":22,"open_issues_count":3,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-30T18:52:00.090Z","etag":null,"topics":["csharp","csharp-library","netstandard","ocsp","ocsp-request","ocsp-responder","ocsp-responses","ocsp-stapling","sharp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielcalegari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-19T19:18:48.000Z","updated_at":"2024-10-08T12:34:59.000Z","dependencies_parsed_at":"2022-09-10T19:51:17.019Z","dependency_job_id":null,"html_url":"https://github.com/gabrielcalegari/OCSPResponder","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielcalegari/OCSPResponder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcalegari%2FOCSPResponder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcalegari%2FOCSPResponder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcalegari%2FOCSPResponder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcalegari%2FOCSPResponder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielcalegari","download_url":"https://codeload.github.com/gabrielcalegari/OCSPResponder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielcalegari%2FOCSPResponder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266235510,"owners_count":23897181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","csharp-library","netstandard","ocsp","ocsp-request","ocsp-responder","ocsp-responses","ocsp-stapling","sharp"],"created_at":"2025-07-21T03:33:53.558Z","updated_at":"2025-07-21T03:33:55.072Z","avatar_url":"https://github.com/gabrielcalegari.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OCSPResponder\nA .NET facility to create an OCSP Responder\n\n[![Build status](https://ci.appveyor.com/api/projects/status/lhqukqop1eh385wt?svg=true)](https://ci.appveyor.com/project/gabrielcalegari/ocspresponder)\n[![NuGet Version](http://img.shields.io/nuget/vpre/OcspResponder.Core.svg)](https://www.nuget.org/packages/OcspResponder.Core)\n[![License](https://img.shields.io/badge/license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)\n\n## What is this?\n\nOCSPResponder is a library written in C# that enables you to easily create an OCSP Responder in .NET. All you need is to implement an interface for the CA/Authorized Responder. It follows the OCSP protocol defined in [RFC 6960](https://tools.ietf.org/html/rfc6960).\n\n## How do I use it?\n\n### .NET Core\n\n0. Install [OCSPResponder.AspNetCore](https://www.nuget.org/packages/OcspResponder.AspNetCore) via [NuGet](http://nuget.org). This package contains [OCSPResponder.Core](http://nuget.org/List/Packages/OSCPResponder.Core) as dependency.\n1. Implement the **IOcspResponderRepository** interface for your CA.\n2. Configure in your Dependency Injector to use the class **OcspResponder** for the interface **IOcspResponder**.\n3. Configure in your Dependency Injector to use the class that you implemented for the interface **IOcspResponderRepository**.\n4. Create a WebAPI Controller and call **OcspResponder.Respond()** passing the **HttpRequest.ToOcspRequest()**.\n5. Done! You've been configured your OCSP Responder.\n\n#### Example\n\n**/Controllers/OcspController.cs**\n\n```csharp\n[Route(\"api/ocsp\")]\npublic class OcspController : Controller\n{\n    [HttpGet]\n    public async Task\u003cIActionResult\u003e Get(string encoded)\n    {\n        var ocspHttpRequest = await Request.ToOcspHttpRequest();\n        var ocspHttpResponse =  await OcspResponder.Respond(ocspHttpRequest);\n        return new OcspActionResult(ocspHttpResponse);\n    }\n\n    [HttpPost]\n    public async Task\u003cIActionResult\u003e Post()\n    {\n        var ocspHttpRequest = await Request.ToOcspHttpRequest();\n        var ocspHttpResponse = await OcspResponder.Respond(ocspHttpRequest);\n        return new OcspActionResult(ocspHttpResponse);\n    }\n\n    private IOcspResponder OcspResponder { get; }\n\n    public OcspController(IOcspResponder ocspResponder)\n    {\n        OcspResponder = ocspResponder;\n    }\n}\n```\n\n### .NET Framework\n\n0. Install [OCSPResponder.Core](http://nuget.org/List/Packages/OSCPResponder.Core) via [NuGet](http://nuget.org).\n1. Implement the **IOcspResponderRepository** interface for your CA.\n2. Configure in your Dependency Injector to use the class **OcspResponder** for the interface **IOcspResponder**.\n3. Configure in your Dependency Injector to use the class that you implemented for the interface **IOcspResponderRepository**.\n4. Create a WebAPI Controller and call **OcspResponder.Respond()** passing the **HttpRequestMessage.ToOcspHttpRequest()**.\n5. Done! You've been configured your OCSP Responder.\n\n#### Example\n\n**/Controllers/OcspController.cs**\n\n```csharp\n[RoutePrefix(\"api/ocsp\")]\npublic class OcspController : Controller\n{\n    [Route(\"{encoded}\"]\n    public Task\u003cHttpResponseMessage\u003e Get(string encoded)\n    {\n        var ocspHttpResponse = await OcspResponder.Respond(Request.ToOcspHttpRequest());\n        return ocspHttpResponse.toHttpResponseMessage();\n    }\n    \n    [Route(\"\")]\n    public Task\u003cHttpResponseMessage\u003e Post()\n    {\n        var ocspHttpResponse = await OcspResponder.Respond(Request.ToOcspHttpRequest());\n        return ocspHttpResponse.toHttpResponseMessage();\n    }\n    \n    private IOcspResponder OcspResponder { get; }\n    \n    public OcspController(IOcspResponder ocspResponder)\n    {\n        OcspResponder = ocspResponder;\n    }\n}\n```\n\n## License\n\nCode by Gabriel Calegari. Copyright 2018 Gabriel Calegari.\n\nThis library is intended to be used in both open-source and commercial environments. It is under Apache 2.0 license.\n\nRefer to the [LICENSE](https://github.com/gabrielcalegari/OCSPResponder/blob/master/LICENSE) for detailed information. \n\n## Any questions, comments or additions?\nIf you have a feature request or bug report, leave an issue on the [issues page](https://github.com/gabrielcalegari/OCSPResponder/issues) or send a [pull request](https://github.com/gabrielcalegari/OCSPResponder/pulls). For general questions and comments, use the [StackOverflow](https://stackoverflow.com/) forum.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcalegari%2Focspresponder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielcalegari%2Focspresponder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielcalegari%2Focspresponder/lists"}