Skip to main content

CloudHSM Key List & EVM Address

List keys in AWS CloudHSM, inspect their attributes, and derive the EVM wallet address from an secp256k1 public key. 100% client-side.

Step 1 - How to list keys in CloudHSM

Option A: cloudhsm-cli (Client SDK 3)

cloudhsm-cli key list
cloudhsm-cli key list --attribute label,key-class,key-type,curve
cloudhsm-cli key describe --handle <handle>

key list outputs JSON - paste it in Step 2 below.

Option B: key_mgmt_tool (Client SDK command line)

./key_mgmt_tool listKeys
./key_mgmt_tool listAttributes -handle <handle>
./key_mgmt_tool exportPubKey -handle <handle> -f pem

Option C: PKCS#11 with opensc

pkcs11-tool --module /opt/cloudhsm/lib/libcloudhsm_pkcs11.so --list-objects
pkcs11-tool --module ... --read-object --type pubkey --id <id> -o pub.der
openssl ec -pubin -inform DER -in pub.der -out pub.pem

Generating an EVM-compatible key in the HSM

cloudhsm-cli key generate-pair key-type ecc curve secp256k1 label evm-custody-key \
  public-usage verify private-usage sign

EVM uses the secp256k1 curve - the same one as Ethereum. RSA or P-256 keys cannot produce EVM addresses.

Step 2 - Key attributes (paste key list JSON output)

Step 3 - Derive the EVM address from the public key

The private key never leaves the HSM - the address is computed from the public key only (keccak-256 of the uncompressed point, last 20 bytes). Signing must happen inside the HSM via PKCS#11 or JCE.

About

AWS CloudHSM holds keys in FIPS-validated hardware; private keys are non-extractable. For EVM custody you generate an secp256k1 pair in the HSM, list it to find the handle and attributes, export only the public key, and derive the on-chain address from it locally. This page does both inspection steps in your browser - no data leaves this tab.