{"id":32958255,"url":"https://github.com/harrison314/BouncyHsm","last_synced_at":"2025-11-16T17:02:03.751Z","repository":{"id":115371712,"uuid":"606319187","full_name":"harrison314/BouncyHsm","owner":"harrison314","description":"Bouncy Hsm is a software simulator of HSM and smartcard simulator with HTML UI, REST API and PKCS#11 interface.","archived":false,"fork":false,"pushed_at":"2025-11-15T08:45:51.000Z","size":3760,"stargazers_count":133,"open_issues_count":10,"forks_count":19,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-11-15T10:09:35.097Z","etag":null,"topics":["blazor","blazor-webassembly","bouncycastle","cryptography","csharp","dotnet","hsm","pkcs11"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harrison314.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-25T05:55:40.000Z","updated_at":"2025-11-14T01:44:13.000Z","dependencies_parsed_at":"2023-10-11T20:47:41.043Z","dependency_job_id":"a36528f2-d770-4d8a-8f57-f5a2083b799c","html_url":"https://github.com/harrison314/BouncyHsm","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/harrison314/BouncyHsm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrison314%2FBouncyHsm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrison314%2FBouncyHsm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrison314%2FBouncyHsm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrison314%2FBouncyHsm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harrison314","download_url":"https://codeload.github.com/harrison314/BouncyHsm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrison314%2FBouncyHsm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284742551,"owners_count":27056072,"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","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["blazor","blazor-webassembly","bouncycastle","cryptography","csharp","dotnet","hsm","pkcs11"],"created_at":"2025-11-12T23:00:34.017Z","updated_at":"2025-11-16T17:02:03.738Z","avatar_url":"https://github.com/harrison314.png","language":"C#","funding_links":[],"categories":["Tools","Identifiers"],"sub_categories":["GUI - other"],"readme":"# Bouncy Hsm\r\n![GitHub release (with filter)](https://img.shields.io/github/v/release/harrison314/BouncyHsm)\r\n[![NuGet Status](http://img.shields.io/nuget/v/BouncyHsm.Client.svg?style=flat)](https://www.nuget.org/packages/BouncyHsm.Client/)\r\n![GitHub License](https://img.shields.io/github/license/harrison314/BouncyHsm)\r\n\r\n_Bouncy Hsm_ is an developer friendly implementation of a cryptographic store accessible through a PKCS#11 interface.\r\nIt can simulate HSM (hardware security module) and smart cards (also with a qualified area), \r\nit also includes a web administration interface and a REST interface.\r\n\r\n_Bouncy Hsm_ was created to facilitate the development and testing of applications using PKCS#11 devices.\r\nIt is not intended for production data, as it does not implement any data and key protection in storage\r\nor during network calls.\r\n\r\nThe _BouncyHsm_ project was created as an alternative to SoftHSMv2, due to ongoing problems I had using it.\r\n\r\n![Screenshots - BouncyHsm web UI](Doc/Screenshots.gif)\r\n\r\n(Screenshots from version 1.1.0)\r\n\r\n## Features\r\n_Bouncy Hsm_ implementig PKCS#11 interface from standard version 2.40 with some mechanism from version 3.0.\r\n\r\n* Multiple application and users access using PKCS#11 interface.\r\n* Slot and crypto object management using web interface and REST API.\r\n  * Create/remove slots.\r\n  * Plug and unplug devices (tokens).\r\n  * Edit object attributes.\r\n  * Import P12/PFX files.\r\n  * Import crypto objects in PEM format.\r\n  * Generate CSR, generate self-signed certificate, import certificate from file.\r\n  * Generate keys.\r\n  * ...\r\n* Possibility to simulate cards with a qualified area and a signature PIN.\r\n* Possibility to simulate _protected authentication path_ using web interface.\r\n* Possibility to simulate removable devices (tokens).\r\n* Supports RSA keys (with size 2-6K).\r\n* Supports [80 named elliptic curves](/Doc/SuportedAlgorithms.md#elliptic-curves) and user-defined elliptic curves.\r\n* Edwards curves (Ed25519, Ed448).\r\n* Mongomery curves (X25519, X448).\r\n* Supports secrets (HMAC, derive,...)\r\n* Supports AES keys.\r\n* Supports Salsa20 keys.\r\n* Supports ChaCha20 keys (also ChaCha20Poly1305 algorithm).\r\n* [Supports mechanisms](/Doc/SuportedAlgorithms.md)\r\n* Supports [custom profiles for mechanisms](/Doc/Profiles.md) (To limit mechanisms to simulate a specific type of HSM or card).\r\n* Same behavior and algorithm support across platforms and versions of Linux operating systems.\r\n* Native PKCS#11 library without dependencies (no dependency hell, no permission configuration).\r\n* _BouncyHsm_ runs on all platform supported [.Net 8.0](https://github.com/dotnet/core/blob/main/release-notes/8.0/supported-os.md). Moreover, it can be run as a _Windows service_ and also works on  _Raspberry Pi Zero 2 W_. Native lib _BouncyHsm.Pkcs11Lib_ is awaitable for Windows x86 and x64, Linux x64, RHEL like x64 ([it can also be compiled for other platforms](/Doc/BuildPkcs11Lib.md)).\r\n* CLI tool for management.\r\n* Nuget ([BouncyHsm.Client](https://www.nuget.org/packages/BouncyHsm.Client)) with REST API client and native PKCS#11 libraries for unit testing. (See [example project](/Examples/BouncyHsmTestExample).)\r\n\r\n## Quick start and deployment  guide\r\n* [Quick start guide](/Doc/QuickstartGuide.md)\r\n* [Deployment guide](/Doc/Deployment.md)\r\n* [Docker support](/Doc/DockerSupport.md)\r\n\r\n## Contributing and issues\r\nPull requests are welcome. If you are not sure about the change, open an issue first.\r\n\r\nIf the found error or changes refer to the PKCS#11 standard, please complete the link section of the standard.\r\n\r\nSee more rules in [CONTRIBUTING](/.github/CONTRIBUTING.md).\r\n\r\n## Links\r\n\r\n### Technology\r\n* [Dotnet 8.0](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8)\r\n* [BouncyCastle](https://github.com/bcgit/bc-csharp)\r\n* [Pkcs11Interop](https://github.com/Pkcs11Interop)\r\n* [LiteDb](https://www.litedb.org/)\r\n* [Blazor WebAssembly](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor)\r\n* [cmp](https://github.com/camgunz/cmp)\r\n* [MessagePack-CSharp](https://github.com/neuecc/MessagePack-CSharp)\r\n\r\n### Other links\r\n* [PKCS #11 Cryptographic Token Interface Base Specification Version 2.40](https://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/os/pkcs11-curr-v2.40-os.pdf)\r\n* [PKCS #11 Cryptographic Token Interface Base Specification Version 3.0](https://docs.oasis-open.org/pkcs11/pkcs11-curr/v3.0/pkcs11-curr-v3.0.pdf)\r\n* [Software Ideas Modeler](https://www.softwareideas.net/) - tool in which the diagrams in the documentation were drawn\r\n* [NSwag studio](https://github.com/RicoSuter/NSwag/wiki/NSwagStudio) - tool for generate OpenApi client\r\n* [Ako som robil BouncyHsm](https://harrison314.github.io/BouncyHsm.html) - My blog post about BouncyHsm development, technological decisions and reasons for development - in Slovak language\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrison314%2FBouncyHsm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharrison314%2FBouncyHsm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrison314%2FBouncyHsm/lists"}