Skip to content
Development
Skill

/doca-sha-offload-engine

Use this skill when wiring the DOCA SHA Offload Engine (an OpenSSL ENGINE) into an existing OpenSSL pipeline to offload one-shot SHA-1, SHA-256, or SHA-512 (EVP_Digest) onto DOCA SHA hardware without rewriting against doca-sha. Covers engine load mechanics (`openssl engine

From plugin
skills
3.8k200 skills

Claude Code

$ npx -y skills add NVIDIA/skills --skill doca-sha-offload-engine --agent claude-code

SKILL.md

doca-sha-offload-engine.SKILL.md
license: Apache-2.0
name: doca-sha-offload-engine
description: >
  Use this skill when wiring the DOCA SHA Offload Engine (an OpenSSL
  ENGINE) into an existing OpenSSL pipeline to offload one-shot SHA-1,
  SHA-256, or SHA-512 (EVP_Digest) onto DOCA SHA hardware without
  rewriting against doca-sha. Covers engine load mechanics (`openssl
  engine dynamic`, `set_pci_addr` ctrl, `-engine_impl`), the SHA-224
  negative test that proves offload engaged, the message-size window
  where offload beats CPU SHA, and engine-vs-library selection. Trigger
  even when the user does not say "DOCA SHA Offload Engine" or "OpenSSL
  ENGINE" — typical implicit phrasings: "speed up openssl SHA on
  BlueField", "offload SHA without code changes", "is openssl using the
  accelerator or falling back to software", "prove DOCA SHA actually
  ran", "openssl dgst hashed but I'm not sure it was offloaded". Refuse
  and route elsewhere for new SHA pipelines (use doca-sha), MD5 / SHA-3
  / SHA-224 / HMAC-SHA offload, incremental hashing via chained
  `EVP_DigestUpdate`, or OpenSSL PROVIDER authoring.
metadata:
  author: NVIDIA <doca-feedback@nvidia.com>
  kind: tool
  doca_version: "3.5"
  tags:
    - doca
    - sha
    - openssl
compatibility: >
  Requires DOCA SDK installed at /opt/mellanox/doca on Linux (Ubuntu
  22.04/24.04 or RHEL/SLES) with a BlueField-2 DPU (not BF-3)
  attached, plus OpenSSL ≥ 1.1.1 (libssl-dev for ENGINE API callers)
  on the build host. The engine ships under
  /opt/mellanox/doca/tools/doca_sha_offload_engine/ as
  libdoca_sha_offload_engine.so; reads the user's local install via
  `pkg-config doca-sha` and inspects
  /opt/mellanox/doca/{lib,include,samples,applications}. The validation
  steps require a live DOCA install.

DOCA SHA Offload Engine

Examples

  • **“Can I offload SHA in an existing OpenSSL pipeline without

rewriting?”** — this is in scope. Load the engine; do not start a new `doca-sha` pipeline here.

  • **“How do I prove OpenSSL used DOCA SHA, not CPU SHA?”** —

use the SHA-224 negative test; do not treat a successful digest as proof of offload.

Quick answer (answer from this file)

1. **Device gate first.** The DOCA SHA engine exists only on BlueField-2; BlueField-3 has no SHA acceleration engine (public DOCA SHA guide), so there is nothing to offload there: say so and stop. 2. **Load probe:** `openssl engine dynamic -pre NO_VCHECK:1 -pre SO_PATH:<engine .so> -pre LOAD -vvv -t -c`. 3. **Positive test:** `openssl dgst -sha256 -engine <engine .so> -engine_impl <file>` reports the engine was set. 4. **Negative test:** an unsupported digest (`-sha224`) must fail with the engine selected; it must not silently fall back. 5. **Performance:** compare `openssl speed -evp sha256` with and without the engine (add `-async_jobs` for parallelism). Report measured numbers only; never quote numbers from memory.

Instructions

Follow Loading order below. Open the tasks companion for configure / run. Open the capabilities companion for when offload wins and how to verify it. Do not open every companion file.

**Where to start:** This is a tool skill for the OpenSSL ENGINE installed by the `doca-sha-offload-engine` package under `${DOCA_DIR}/tools/doca_sha_offload_engine/` as `libdoca_sha_offload_engine.so`, next to its `engine_readme.md`. It is **not a CLI** — it is a shared object loaded by an OpenSSL-based application or by `openssl` itself, that re-routes SHA-1 / SHA-256 / SHA-512 (one-shot only, via the `EVP_Digest` interface) onto the DOCA SHA hardware path. Open the tasks companion and start at `## configure` for the PCIe-address configuration and the OpenSSL prerequisites; jump to `## run` for the *“load the engine and prove it actually runs”* flow. Open the capabilities companion when the question is *what the engine actually offloads vs falls back to*, *when the engine is a perf win vs not*, or *how to verify offload actually engaged*. If DOCA is not installed yet, route to `doca-setup/SKILL.md` first. If the user is building a new SHA pipeline from scratch (not wrapping an existing OpenSSL-based one), this skill is the wrong surface — route to `../../libs/doca-sha/SKILL.md` (`doca-sha/SKILL.md`) instead.

Example questions this skill answers well

The CLASSES of `doca-sha-offload-engine` questions this skill is built to answer, each with one worked example. The class is the load-bearing piece; the worked example is one instance.

  • **“I have an existing OpenSSL-based pipeline doing SHA;

can I offload the SHA to DOCA without rewriting the app?”** — worked example: *“the app uses `EVP_DigestInit_ex` / `EVP_DigestUpdate` / `EVP_DigestFinal_ex` against `EVP_sha256()`; can I drop in DOCA-SHA offload via an engine load?”*. Answered by the *“when this engine is the right surface”* rule in the capabilities companion

  • the engine-load mechanics in

the tasks companion.

  • **“Did the engine actually load? Or did OpenSSL just

fall back to software SHA?”** — worked example: *“my `openssl dgst` invocation completed; how do I know DOCA SHA actually did the work and OpenSSL did not silently use the software path?”*. Answered by the *“prove the engine actually ran”* pattern in the capabilities companion (the SHA-224 negative test and the `-engine_impl` flag) + the verification flow in the tasks companion.

  • **“For what message-size range is the engine offload a

win vs CPU SHA?”** — worked example: *“my pipeline hashes 4 KB blocks at a time; is the engine a win there, or does the round-trip to DOCA SHA cost more than the CPU hash itself?”*. Answered by the message-size-window rule in the capabilities companion

  • the `openssl speed` perf-comparison pattern in

the tasks companion.

  • **“What SHA algorithms does the engine actually

support — and what happens for the ones it does not?”** — worked example: *“my pipeline mixes SHA-1, SHA-256, SHA-512, and SHA-224 — what does the engine do for each?”*.

Read more
@nvidia
Ships withskills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

3.8k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of NVIDIA/skills on GitHub, a chart by star-history.com

Other skills on skills.

nvidia-skill-finder

nvidia-skill-finder

Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA…

@nvidia@nvidiaInstall Skill
accelerated-computing-cudf

accelerated-computing-…

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby,…

@nvidia@nvidiaInstall Skill
amc-run-rtsp-calibration

amc-run-rtsp-calibrati…

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or…

@nvidia@nvidiaInstall Skill
amc-run-sample-calibration

amc-run-sample-calibra…

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice.…

@nvidia@nvidiaInstall Skill
amc-run-video-calibration

amc-run-video-calibrat…

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live…

@nvidia@nvidiaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about doca-sha-offload-engine.

Which coding agents can use doca-sha-offload-engine?
doca-sha-offload-engine installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.