performing-hardware-security-module-integration skill (Anthropic-Cybersecurity-Skills)
- Install
- SKILL.md (verbatim)
- Overview
- When to Use
- Prerequisites
- Steps
- Expected Output
- Other files in this skill
- references/api-reference.md (verbatim)
- Libraries Used
- CLI Interface
- Core Functions
- loadlibrary(libpath) — Load PKCS#11 shared library
- enumerateslots(lib) — List slots and token info
- listobjects(lib, tokenlabel, pin) — Inventory stored keys
- generatersakeypair(lib, tokenlabel, pin, keylabel, bits) — RSA key generation
- generateeckeypair(lib, tokenlabel, pin, keylabel) — EC P-256 key generation
- signandverify(lib, tokenlabel, pin, keylabel) — Signing test
- querymechanisms(lib, tokenlabel) — Algorithm support audit
- fullaudit(lib, tokenlabel, pin) — Comprehensive compliance report
- PKCS#11 Object Classes
- FIPS 140-2 Required Mechanisms
- Common PKCS#11 Libraries
- Dependencies
What it does. Integrates Hardware Security Modules (HSMs) via the PKCS#11 interface Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).
| Upstream | mukul975/Anthropic-Cybersecurity-Skills |
| Skill file | skills/performing-hardware-security-module-integration/SKILL.md |
| License | Apache-2.0 (skill folder LICENSE) |
| Author | mukul975 |
| Fetched | 2026-09-10 |
Install
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-hardware-security-module-integration, or copy the skill folder into~/.claude/skills/performing-hardware-security-module-integration/.- Raw file:
curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/performing-hardware-security-module-integration/SKILL.md
SKILL.md (verbatim)
name: performing-hardware-security-module-integration
description: Integrates Hardware Security Modules (HSMs) via the PKCS#11 interface
using python-pkcs11, performing key generation, signing, encryption, verification,
and token/slot queries against SoftHSM2, AWS CloudHSM, or YubiHSM2. Use when implementing
HSM-backed key management or validating HSM configuration for FIPS 140-2/3 compliance.
domain: cybersecurity
subdomain: cryptography
tags:
- HSM
- PKCS11
- CloudHSM
- YubiHSM2
- key-management
- cryptographic-operations
- hardware-security
version: '1.0'
author: mahipal
license: Apache-2.0
nist_ai_rmf:
- MEASURE-2.7
- MAP-5.1
- MANAGE-2.4
atlas_techniques:
- AML.T0070
- AML.T0066
- AML.T0082
nist_csf:
- PR.DS-01
- PR.DS-02
- PR.DS-10
mitre_attack:
- T1600
- T1573
- T1553
- T1078.004
- T1530
Performing Hardware Security Module Integration
Overview
Hardware Security Modules (HSMs) provide tamper-resistant cryptographic key storage and operations. This skill covers integrating with HSMs via the PKCS#11 standard interface using python-pkcs11, performing key generation, signing, encryption, and verification operations, querying token and slot information, and validating HSM configuration for compliance with FIPS 140-2/3 requirements.
When to Use
- When conducting security assessments that involve performing hardware security module integration
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing
Prerequisites
- HSM device or software HSM (SoftHSM2 for testing)
- PKCS#11 shared library (.so/.dll) for the HSM vendor
- Python 3.9+ with
python-pkcs11 - Token initialized with SO PIN and user PIN
- For AWS CloudHSM:
cloudhsm-pkcs11provider configured
Steps
- Load PKCS#11 library and enumerate available slots and tokens
- Open session and authenticate with user PIN
- Generate RSA 2048-bit or EC P-256 key pairs on the HSM
- Perform signing and verification using on-device keys
- List all objects (keys, certificates) stored on the token
- Query mechanism list to verify supported algorithms
- Generate compliance report with key inventory and algorithm audit
Expected Output
- JSON report listing HSM slots, tokens, stored keys, supported mechanisms, and compliance status
- Signing test results with key metadata and algorithm details
Other files in this skill
references/api-reference.md (verbatim)
API Reference — Performing Hardware Security Module Integration
Libraries Used
- python-pkcs11: Python PKCS#11 wrapper for HSM cryptographic operations
- json: JSON serialization for audit reports
CLI Interface
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 slots
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 objects
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 gen-rsa --label mykey --bits 2048
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 gen-ec --label myec
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 sign-verify --key-label mykey
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 mechanisms
python agent.py --lib /usr/lib/softhsm/libsofthsm2.so --token MyToken --pin 1234 full
Core Functions
load_library(lib_path) — Load PKCS#11 shared library
Calls pkcs11.lib(lib_path) to initialize the PKCS#11 provider.
enumerate_slots(lib) — List slots and token info
Iterates lib.get_slots(token_present=True). Returns token label, manufacturer,
model, serial, initialization status, and supported mechanism list.
list_objects(lib, token_label, pin) — Inventory stored keys
Opens authenticated session, calls session.get_objects(). Returns object class,
label, key type, key length, and object ID.
generate_rsa_keypair(lib, token_label, pin, key_label, bits) — RSA key generation
Calls session.generate_keypair(KeyType.RSA, bits, store=True, label=key_label).
generate_ec_keypair(lib, token_label, pin, key_label) — EC P-256 key generation
Creates domain parameters for secp256r1 via encode_named_curve_parameters,
then calls ecparams.generate_keypair().
sign_and_verify(lib, token_label, pin, key_label) — Signing test
Signs with priv.sign(data, mechanism=Mechanism.SHA256_RSA_PKCS).
Verifies with pub.verify(data, signature, mechanism=Mechanism.SHA256_RSA_PKCS).
query_mechanisms(lib, token_label) — Algorithm support audit
Enumerates all mechanisms with min/max key sizes from the slot.
full_audit(lib, token_label, pin) — Comprehensive compliance report
PKCS#11 Object Classes
| Class | Description |
|---|---|
| PUBLIC_KEY | RSA/EC public keys |
| PRIVATE_KEY | RSA/EC private keys (non-extractable) |
| SECRET_KEY | Symmetric keys (AES, DES3) |
| CERTIFICATE | X.509 certificates |
FIPS 140-2 Required Mechanisms
RSA_PKCS, SHA256_RSA_PKCS, SHA384_RSA_PKCS, SHA512_RSA_PKCS, ECDSA, ECDSA_SHA256, AES_CBC, AES_GCM, SHA256, SHA384, SHA512
Common PKCS#11 Libraries
| HSM | Library Path |
|---|---|
| SoftHSM2 | /usr/lib/softhsm/libsofthsm2.so |
| AWS CloudHSM | /opt/cloudhsm/lib/libcloudhsm_pkcs11.so |
| YubiHSM2 | /usr/lib/x86_64-linux-gnu/pkcs11/yubihsm_pkcs11.so |
| Thales Luna | /usr/safenet/lunaclient/lib/libCryptoki2_64.so |
Dependencies
python-pkcs11>= 0.7.0- PKCS#11 shared library for target HSM
- Initialized token with user PIN
Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.