markkurossi/pkcs11-provider

GitHub: markkurossi/pkcs11-provider

基于Go语言实现的PKCS #11提供者库和软件HSM,通过RPC架构支持密码学令牌接口标准。

Stars: 10 | Forks: 1

# PKCS #11 Provider 本项目实现了 [PKCS #11 Cryptographic Token Interface Base Specification Version 3.0](https://docs.oasis-open.org/pkcs11/pkcs11-base/v3.0/pkcs11-base-v3.0.html) API,并通过 Unix domain sockets 提供 RPC 接口以与 token 实现进行通信。该实现包含以下组件: - [library](library/) 将 PKCS #11 接口实现为一个共享库。PKCS #11 函数定义在 `.rpc` 文件中,并通过 [RPC compiler](cmd/rpcc/) 转换为 `.c` 文件。 - [RPC Compiler](cmd/rpcc/) 用于根据 RPC 定义生成 PKCS #11 桩函数。RPC Compiler 使用 [Go](https://golang.org/) 编程语言实现。 - [PKCS #11](pkcs11/) token 库(Go 语言版)。 - [Software Token](cmd/token/) 实现了 PKCS #11 操作。该 token 使用 Go 实现,(将)支持所有现代 PKCS #11 密码学操作。 - [Java PKCS #11 Test](java/) 用于从 Java 测试 PKCS #11 接口。 # 示例用法 启动 token: ``` $ cd cmd/token $ ./token ``` 运行 [pkcs11-testing](https://github.com/markkurossi/pkcs11-testing) 测试程序: ``` $ cd ~/work/pkcs11-testing $ ./pkcs11-testing --module ~/go/src/github.com/markkurossi/pkcs11-provider/library/libvpkcs11.so --slot 0 --pin 1111 --test-all ``` Java 的 SunPKCS11 provider: ``` $ cd java $ javac PKCS11Test $ java PKCS11Test ``` AWS CloudHSM 示例: ``` $ cd aws-cloudhsm-pkcs11-examples $ make $ make test ``` # 待办事项 - [ ] Framework: - [ ] 从 `libvpkcs11.so` 启动 token - [ ] 非易失性 token 存储 - [ ] Token 配置文件 - [ ] 测试与 Firefox 的兼容性 - [ ] 测试与 [aws-cloudhsm-pkcs11-examples](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples) 的兼容性 - [ ] tools/import_pub_key.c - [ ] tools/wrap_with_imported_rsa_key.c - [ ] derivation/ecdh.c - [ ] derivation/hmac_kdf.c - [ ] wrapping/unwrap_with_template.c - [ ] wrapping/aes_wrapping.c - [ ] wrapping/rsa_wrapping.c - [ ] wrapping/aes_gcm_wrapping.c - [ ] wrapping/wrap_with_template.c - [ ] wrapping/aes_no_padding_wrapping.c - [ ] wrapping/aes_zero_padding_wrapping.c - [ ] encrypt/des_ecb.c - [ ] Crypto provider with Go: - [ ] Ed25519 公钥算法 - [ ] 消息签名与验证 - [ ] 双功能 - [X] RPC 编译器(虽然丑但能用): - [ ] 清理字段输入/输出处理及类型 - [ ] 移除旧的未使用的输入/输出代码 # 文档 - [PKCS #11 Cryptographic Token Interface Base Specification Version 3.0](https://docs.oasis-open.org/pkcs11/pkcs11-base/v3.0/pkcs11-base-v3.0.html) - [Cryptographic Token Interface Standard](https://www.cryptsoft.com/pkcs11doc/v230/)
标签:AWS, CloudHSM, CVE, C语言接口, DNS 反向解析, DPI, GHAS, Go语言, HSM, HTTP工具, Java安全, JS文件枚举, PKCS#11, Prisma Cloud, ProjectDiscovery, RPC, SamuraiWTF, Unix域套接字, 中间件, 令牌, 加密库, 安全组件, 客户端加密, 密码学, 手动系统调用, 数字签名, 数据保护, 日志审计, 程序破解, 网络安全, 软件HSM, 隐私保护