Skip to content
Back to skills

S32sdaf Register Key

ASecurity

Register a device UID and associated smart-card key for S32SDAF / Volkano workflows using the current MCP tool surface. Covers plain ADKP plus wrapped and OID-sensitive families such as ODAK, ADK1, ADK2, KUID, KUID_RF, and KUID_PRE_FA, including applet-version requirements and per-family parameter validation.

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 15, 2026
securityrailssecurity

Works with

  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 15, 2026

npx -y skills add nxp-agentic-ai/s32-ds-ai-support --skill s32sdaf-register-key --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of S32sdaf Register Key?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for S32sdaf Register Key
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nxp-agentic-ai-s32sdaf-register-key/badge)](https://www.skillsdirectory.com/skills/nxp-agentic-ai-s32sdaf-register-key)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: s32sdaf-register-key
description: Register a device UID and associated smart-card key for S32SDAF / Volkano workflows using the current MCP tool surface. Covers plain ADKP plus wrapped and OID-sensitive families such as ODAK, ADK1, ADK2, KUID, KUID_RF, and KUID_PRE_FA, including applet-version requirements and per-family parameter validation.
license: LA_OPT_Online Code Hosting NXP_Software_License
metadata:
  author: NXP
  version: "1.0.0"
  product: s32sdaf
  see_also: '[s32sdaf-wrap-and-register, s32sdaf-auth-device, s32sdaf-hse2-authentication, s32sdaf-generate-debug-card, s32sdaf-discovery-and-status]'
  tags: '[s32sdaf, volkano, smartcard, key-management, security, registration, adkp, odak, adk1, adk2, kuid, kuid_rf, kuid_pre_fa]'
---

# Register a Key on the Smart Card

Register a device UID and its associated key on a Volkano smart card. Covers
plain **ADKP** registration, wrapped families (`KUID`, `KUID_RF`,
`KUID_PRE_FA`, `ODAK`), and OID-sensitive families (`ADK1`, `ADK2`). The
preferred write tool is the generic `execute_action(action="register_key", params={...})`, which
covers all currently confirmed register commands.

**ADKP is the only key type that may be registered in plain form. All other
families use wrapped key material.**

## When to use

Use this skill to register a new UID + key, add/replace a key for an existing
UID, choose the correct registration path per family, validate UID/OID/key/
selector inputs, and surface applet-version requirements. Also use it to decide
whether the user already has final registration-ready material or must first
wrap a plain key.

Do not use it to wrap a plain non-ADKP key (use `s32sdaf-wrap-and-register`),
delete records, perform challenge-response by itself, generate a debug card by
itself, or guess passwords/UIDs/OIDs/keys/indexes.

## Available Capabilities

| Type | Name | Invocation |
|------|------|------------|
| Tool | `status` | verify MCP server reachability/config |
| Tool | `execute_action(action="discover", params={...})` | inspect registered UIDs before/after |
| Tool | `execute_action(action="register_key", params={...})` | primary generic register (all families) |
| Tool | `execute_action(action="register_key", params={"key_type":"ADKP", ...})` | compatibility wrapper for ADKP |
| Tool | `execute_action(action="register_key", params={"key_type":"kUID", ...})` | compatibility wrapper for plain KUID |
| Tool | `execute_action(action="find_installation")` | locate Volkano install |
| Reference | Per-family rules, decision logic, errors | `references/key-families.md` |

Prefer the generic register tool for new automation. For applet-gated commands
it returns a warning field. Family-specific rules (formats, OID, key_index,
adk2_key_type, applet 1.4+/1.5+) live in `references/key-families.md`.

## Quickstart

1. If readiness is unknown, run `status`; inspect with
   `execute_action(action="discover", params={...})` if needed.
2. Determine the family; validate inputs per `references/key-families.md`.
3. Plain ADKP -> `register_key(key_type="ADKP", ...)`.
4. Already-wrapped KUID/KUID_RF/KUID_PRE_FA/ODAK/ADK1/ADK2 (512 hex, with
   required selectors) -> `register_key(...)`.
5. Plain non-ADKP -> switch to `s32sdaf-wrap-and-register`.
6. Optionally verify with `execute_action(action="discover", params={...})`.

## Workflow

1. **Confirm readiness.** Use `status`; confirm what is registered
   with `execute_action(action="discover", params={...})`. For explicit applet-version proof
   (1.4+/1.5+), route through `s32sdaf-discovery-and-status` and use
   `volkano.exe --version` rather than inferring from command success.
2. **Validate inputs locally.** UID hex (16/32); wrapped keys 512 hex; OID valid
   hex/32 chars when required; ODAK/ADK1/ADK2 need a 32-hex UID; ADK1/ADK2
   key_index 0..15; ADK2 key type AES/ECC. Reject invalid formatting before any
   tool call. See `references/key-families.md`.
3. **Choose the path.**
   - Plain ADKP -> `register_key(key_type="ADKP")`.
   - Already-wrapped KUID/KUID_RF/KUID_PRE_FA/ODAK -> `register_key`.
   - Already-wrapped ADK1/ADK2 with all selectors -> `register_key`.
   - Plain non-ADKP -> switch to `s32sdaf-wrap-and-register`.
4. **Execute registration** with `uid`, `key_type`, `key` or `keybin`, and
   optional `oid`, `key_index`, `adk2_key_type`, `password`, `volkano_folder`.
5. **Verify result.** Optionally confirm the UID is present via
   `execute_action(action="discover", params={...})`; provide next-step guidance (authentication or
   debug-card generation).

Do not collapse ADK1/ADK2 semantics into generic KUID registration. Prefer
rejecting ambiguous input over guessing a key type.

## Guardrails

**Scope** - Persistent smart-card write: creates a UID record, adds/replaces
key material, and consumes limited storage. Not a read-only workflow.

**Destructive actions** - Registration mutates the card and can replace
existing key material for a UID. Confirm intent before writing. Never invent
UIDs, OIDs, keys, indexes, or passwords.

**Secrets** - Do not echo the smart-card password unnecessarily.

**Refuse-and-escalate** -
- Plain non-ADKP key: stop; switch to `s32sdaf-wrap-and-register`.
- Wrapped key not 512 hex chars, or missing family selector: stop and request
  correct input.
- ODAK with 8-byte UID: reject; requires a 16-byte UID.
- Card full: recommend discovery + deleting unused records before retry.
- Auth/password failure: report; do not retry with invented credentials.
- Full failure catalog: `references/key-families.md`.

## Validation loop

1. Confirm the correct registration path was selected for the family.
2. Confirm UID/OID/key/selector values validated before execution.
3. Confirm applet-version sensitivity was reported where relevant.
4. Execute via the generic register tool (or compat wrapper).
5. Pass criterion: registration succeeds (persistent state confirmed when
   executed) and next-step guidance is provided.

## Out of scope

- Wrapping a plain non-ADKP key (use `s32sdaf-wrap-and-register`).
- Deleting UID records; challenge-response authentication by itself.
- Generating a debug card / DCAT by itself.

## See Also

- `references/key-families.md` - per-family requirements, decision logic, and
  the full error-handling catalog.
- Related skills: `s32sdaf-wrap-and-register` (wrap plain non-ADKP first),
  `s32sdaf-auth-device` / `s32sdaf-hse2-authentication` (next-step auth),
  `s32sdaf-generate-debug-card` (ADK2 debug-card target),
  `s32sdaf-discovery-and-status` (readiness / applet-version proof).

Files in this skill

  • SKILL.md6.4 KB
  • references/key-families.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.