DOCA SHA OpenSSL 卸载引擎
让现有 OpenSSL SHA 流程在无需重写应用的情况下使用 DOCA SHA 硬件加速。
材料明确限定为文档型技能,未发现恶意行为、凭据窃取或隐蔽外传;也提出 PCIe 地址确认、软件回退和硬件安全路由。但安装命令可能使用 sudo,加载共享对象会产生外部系统影响,缺少明确的逐步确认、权限最小化和可回滚方案;许可证与来源元数据也存在不一致,因此扣分。
SKILL.md、CAPABILITIES.md 和 TASKS.md 结构完整,覆盖前置条件、加载、验证、性能和分层调试;但文件间对 one-shot 与 chained EVP_DigestUpdate 行为的表述不完全一致,部分关键命令依赖未提供文件或用户环境。静态审查且无可独立复现的测试套件,按校准不超过10分。
目标用户、适用场景、算法边界、隐式触发词和转道路由均较清楚;但仅适用于已安装 DOCA、Linux、特定硬件和 OpenSSL ENGINE 场景,未提供中文交互支持或大陆网络可达性说明。核心功能不完全依赖海外服务,因此未作网络不可达的重大扣分。
文档分层、导航、任务动词、限制和关联技能较充分,且声明维护路由和安全入口;但缺少稳定的正式版本、变更记录和明确作者,SKILLCARD 中签名与时间仍为 TBD,评估报告还指出结构和推荐章节问题。许可证信息在提示、SKILL.md、SKILLCARD.yaml 与 skill-card.md 之间不一致,因此扣分。
对于既有 OpenSSL 流程,技能提供可直接采用的加载、SHA-224 负测试、正测试和性能测量流程,核心指导价值明确;但不含可执行脚本或样例工程,必须依赖真实 DOCA 硬件、安装布局和用户自行执行,输出仍需环境适配和人工复核。静态校准限制最高为7分。
文件包含源代码、readme、CI/评估和命令模式等声称的证据链,但本次仅能读取材料,BENCHMARK.md 明确称评估数据集不可用,无法独立复现或交叉验证关键硬件与性能结论。存在有限可审计材料,但覆盖薄弱,静态校准限制最高为5分。
- 不要把成功的 openssl dgst 输出视为硬件卸载证明;必须在目标主机执行 SHA-224 负测试和带 -engine_impl 的正测试。
- 执行 sudo、共享对象加载或 PCIe 设备绑定前,应由用户确认权限、目标设备和变更影响;材料没有完整回滚流程。
- one-shot 与 chained EVP_DigestUpdate 的能力边界表述存在歧义,升级 DOCA 或 OpenSSL 后必须重新核对实际行为。
- 许可证和版本/签名信息在多个文件中不一致或为 TBD,应在发布前统一。
这个 Skill 能做什么,适合哪些场景?
该技能指导开发者和运维人员将 NVIDIA DOCA SHA Offload Engine 接入已有的 OpenSSL 流程。它通过 OpenSSL ENGINE 加载共享对象,将一次性 SHA-1、SHA-256 和 SHA-512 摘要请求转发到 DOCA SHA 硬件。技能涵盖动态引擎加载、PCIe 地址配置、卸载验证、性能测试以及引擎与 doca-sha 库之间的选型。它不适合从零构建新的 SHA 管线,也不覆盖 MD5、SHA-224、SHA-3、HMAC-SHA 或所述增量哈希场景。
指导用户确认 DOCA 和 OpenSSL 依赖,定位已安装的 libdoca_sha_offload_engine.so,使用 openssl engine dynamic 加载引擎,通过 set_pci_addr 配置 PCIe 设备,并使用 -engine_impl 与 SHA-224 负向测试确认卸载是否真正生效。它还指导用户使用 openssl speed 对比 CPU SHA 与硬件卸载在实际消息大小下的性能,并根据现有 OpenSSL 管线或新项目需求选择引擎或 doca-sha 库。
- 已有使用 EVP_Digest 的服务希望在不重写为 doca-sha C API 的情况下卸载 SHA-1、SHA-256 或 SHA-512。
- 运维人员运行 openssl dgst,并需要确认结果不是由软件 SHA 静默完成。
- 性能工程师需要在 BlueField 或 ConnectX 硬件上测量不同消息大小的卸载收益。
- 开发者需要判断现有 OpenSSL ENGINE 接入方式是否比重写到 doca-sha 更合适。
这个 Skill 有哪些优点和局限?
- 面向已有 OpenSSL 管线,通常无需改写为 doca-sha C API。
- 覆盖引擎加载、PCIe 设备选择、卸载验证和性能对比。
- 明确区分支持的 SHA 算法、软件回退以及引擎与库的适用边界。
- 支持通过实际硬件测试确定消息大小性能窗口,避免引用未经验证的固定数字。
- 只验证一次性 SHA-1、SHA-256 和 SHA-512 卸载;不实现 MD5、SHA-224、SHA-3 或 HMAC-SHA。
- 不适合需要 doca-sha 细粒度控制或部分哈希能力的新管线。
- 技能不提供 samples、bindings、reference 子树、包装脚本或固定性能数据。
- OpenSSL 3.x 已弃用 ENGINE API,材料仅明确记载 OpenSSL 1.1.1f 和 3.0.2 的验证表面。
如何安装这个 Skill?
使用仓库 README 中的 CLI 安装方式:npx skills add nvidia/skills --skill doca-sha-offload-engine --yes。安装后,让兼容的 Agent 加载该技能。运行技能所指导的引擎还需要已安装 DOCA SDK、OpenSSL >= 1.1.1、libssl-dev 或等效软件包,以及可访问的 BlueField DPU 或 ConnectX NIC;源码构建流程使用 Meson,但具体构建命令未在给定材料中展开。
如何使用这个 Skill?
向 Agent 提出具体任务,例如“让现有 OpenSSL SHA 管线在 BlueField 上使用硬件卸载,并证明卸载确实生效”。对于已有 OpenSSL 应用,按技能指导加载 dynamic ENGINE,设置 set_pci_addr,必要时使用 -engine_impl,然后运行 SHA-224 负向测试和 openssl speed。若要从零开发新 SHA 管线,改用 doca-sha 技能;若 DOCA 尚未安装或设备权限检查失败,转到 doca-setup。
这个 Skill 与同类方案有什么区别?
对于已有 OpenSSL 管线且希望最少改动,应优先考虑该 ENGINE;对于从零开发或需要部分哈希、定制缓冲区权限和能力查询,应选择底层 doca-sha 库。