Thales · Futurex · SafeNet Luna · Utimaco · nCipher · Generic

HSM Command Console

Beta

A host-command client for hardware security modules. Connect to a real or simulated HSM, fire individual host commands, chain them into repeatable scenarios, and drive them under load — all over TCP/IP with optional TLS. Inside the app it is titled HSM Host Console.

On this page
hsm-command-console · HSM Host Console - local · Thales payShield

Overview

The HSM Command Console acts as a client that talks to an HSM’s host interface. It packs your command payload with the vendor’s framing (length header, STX/ETX, etc.), sends it over the socket, and shows the raw request/response exchange. Point it at ISO8583Studio’s own HSM Simulator or at a physical device on your bench.

hsm-command-console · Console — connected to Thales payShield at 127.0.0.1:9090 — the command list on the left and an NO / NP HSM Status exchange as formatted request and response

Multi-VendorThales payShield, Futurex, SafeNet Luna, Utimaco CryptoServer & Atalla, and nCipher nShield — each with the correct default port and framing.
Command ConsoleCompose host commands from the vendor’s command set, fill in fields, send, and read the decoded response.
Scenario BuilderChain commands into a named scenario (each step is a command code + field values) and replay it on demand.
Load TesterRun a scenario at a target rate with constant, ramp-up, spike, or burst patterns across concurrent connections.
TLS TransportOptional mutual TLS with configurable version, cipher suites, CA verification, and PKCS#12 client certificates.
Exchange LogEvery command and response is timestamped and captured in the Logs tab for review and export.

Runtime tabs

The console screen has four tabs. Each card links to the section that documents it.

01 · Configure

Quick Start

From a new configuration to the first decoded response:

  1. Create a console configuration — From the Home screen open HSM Host Console and add a new configuration.
  2. Pick your HSM vendor — In Connection Settings, choose the HSM Type. The port and framing default to that vendor (e.g. Thales payShield → port 1500, 2-byte binary length).
  3. Set the address — Enter the HSM’s IP Address and Port, and a connection Timeout.
  4. (Optional) Enable TLS — In SSL/TLS Configuration turn on TLS, choose the version and certificate-verification mode, and attach your CA / client certificate.
  5. Launch and connect — Open the console and click Connect. The header dot turns green when the socket is up.
  6. Send a command — In the Console tab select a command from the vendor set, fill its fields, and send. The response appears in the exchange log.
Tip
No physical HSM? Start the HSM Simulator as a server on the same machine and point the console at 127.0.0.1:1500 for a fully local key-management loop.
01 · Configure

Supported HSM Vendors

Selecting a vendor sets its default port and message framing automatically. All vendors are driven over the same socket client.

VendorModel familyDefault PortFraming
Thales payShieldpayShield 9000 / 10K15002-byte binary length
Futurex ExcryptKMES Series 320002-byte binary length
SafeNet LunaThales Luna Network HSM15002-byte binary length
Utimaco CryptoServerSe / CP530012-byte binary length
nCipher nShieldEntrust nShield Connect / Solo90044-byte ASCII length
Utimaco AtallaAtalla AT10007000STX / ETX framing
Generic HSMCustom / other1500Configurable
01 · Configure

Connection Settings

The Connection Settings configuration tab defines the transport to the HSM.

hsm-command-console · Connection Settings — the console named HSM Host Console - local, HSM type Thales payShield, 127.0.0.1:9090, a 30 second timeout and the TCP length header enabled

SettingDescription
IP AddressHSM host interface address. Default 127.0.0.1.
PortTCP port; auto-filled from the selected vendor (e.g. 1500 for Thales).
TimeoutConnection / response timeout in seconds. Default 30.
Name & DescriptionIdentifiers for the saved configuration.
01 · Configure

Message Framing

HSMs delimit messages differently. The console supports the common framing schemes; the correct one is selected when you pick a vendor, and can be overridden.

hsm-command-console · Message Framing — TCP length header enabled, header format 2-byte binary length, message header 0000, empty trailer and message header length 4 — with the framed NO command previewed byte by byte

Header FormatDescription
2-byte Binary LengthTwo-byte big-endian length prefix. Used by Thales, Futurex, Luna, Utimaco.
4-byte ASCII LengthFour ASCII digits of length. Used by nCipher nShield.
STX / ETX FramingStart/end control bytes bracket the message. Used by Utimaco Atalla.
No Header / FramingRaw payload with no length prefix.
Custom HeaderUser-defined header / trailer bytes.

Additional framing fields: TCP Length Header Enabled toggle, Message Header (hex, e.g. 0000), Message Trailer (hex, optional), and Message Header Length.

01 · Configure

SSL / TLS Configuration

Enable encrypted transport to the HSM in the SSL/TLS Configuration tab.

hsm-command-console · SSL/TLS Configuration — encryption enabled, TLS 1.2, a PKCS#12 bundle, CA-signed-only verification, and empty client certificate, private key and keystore password fields

hsm-command-console · Cipher Suites — cipher suites — TLS_AES_256_GCM_SHA384 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 selected, each entry labelled with its strength

SettingOptions
TLS VersionTLS 1.2 (default), TLS 1.3, and earlier where required.
Certificate VerificationNo Verification, Trust All Certificates, CA-Signed Only, Custom CA Authority.
Certificate TypePKCS#12 client certificate with key-store password.
Cipher SuitesSelectable set, defaulting to TLS_AES_256_GCM_SHA384 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.
Key materialCA authority path, client public certificate, client private key.
02 · Run

Command Console Tab

The Console tab is the interactive workspace. Pick a host command from the active vendor’s command set, populate its parameter fields, and send it. The request and the decoded response are appended to the exchange log with response codes and timing.

hsm-command-console · Console — A0 Generate a Key selected, its parameter fields filled in for a TDES key block, and the response panel showing the decoded key block and its check value

  • Vendor command set — the available commands follow the selected HSM vendor (for Thales, the full payShield host-command set).
  • Field editor — each command exposes its parameters as labelled inputs so you don’t hand-assemble the payload.
  • Send & inspect — responses are shown raw and parsed; errors surface the HSM’s response/error code.
02 · Run

Scenario Builder Tab

A scenario is an ordered list of command steps — each step captures a commandCode and its field values. Build a sequence (for example: generate a key, export it under a ZMK, then translate a PIN block), name it, and save it into the configuration for reuse.

hsm-command-console · Scenario — a two-step flow — A0 Generate a Key then A6 Import a Key — where the import step references the generated key as [1][A0][KEY]

  • Steps — add, reorder, and edit command steps; values from earlier steps can feed later ones.
  • Saved scenarios — persisted with the configuration and available to both the console and the load tester.
  • Playlists — group custom text, single commands, and whole scenarios into a runnable playlist with optional auto-advance.
02 · Run

Load Testing Tab

Drive a saved scenario against the HSM to measure throughput and stability. Configure it in the Load Test Settings tab and run it from the Load Test tab.

hsm-command-console · Load Test — results for an NO HSM Status playlist — 96 sent, 96 received, 96 successes, 0 failures, 0.9 ms average latency and 9.6 tps at a 100% success rate

ParameterDescriptionDefault
Concurrent ConnectionsParallel sockets driving the load.1
Commands / secondTarget command rate.10
DurationTest length in seconds.60
PatternConstant Rate, Ramp Up, Spike Test, or Burst Pattern.Constant
02 · Run

Logs Tab

The Logs tab streams every exchange — request, response, connection events — with timestamps. Clear the buffer, and see live connection count and byte counters. Global logging can be toggled in app settings.

hsm-command-console · Logs — connection events and a Thales exchange expanded into its formatted request, formatted response, raw hex and parsed views

03 · Reference

Tabs Reference

Inside the app the console is titled HSM Host Console and exposes four runtime tabs.

TabPurpose
ConsoleCompose and send individual host commands; read decoded responses.
ScenarioBuild, save, and replay ordered command sequences.
Load TestRun a scenario at a target rate and pattern across connections.
LogsTimestamped exchange log with connection and byte counters.
Related
Pair this with the HSM Simulator (the server side) for a complete, self-contained key-management test rig.

Run it against your own HSM

Free and open source. Download the studio, start the HSM Simulator as a server and point the console at 127.0.0.1:1500 in minutes.

✦ Pro

Testing with a team, or certifying with a scheme? Pro raises the CPS ceiling, unlocks the full algorithm set and deep simulator tweaks, plus hosted endpoints and priority support.

Register for Pro