CH-J Toolsserver management over SSH
Menu
All SSH key examples →

Example 08 · ECDSA NIST P-521

ECDSA key on a NIST curve: short keys and fast signatures, common where NIST curves are required, for example with hardware tokens and FIPS policies.

Key overview

Key typeECDSA NIST P-521
SSH algorithm nameecdsa-sha2-nistp521
SupportOpenSSH 5.7 and newer, PuTTY 0.68 and newer
Private key formatOpenSSH (openssh-key-v1), unencrypted
FingerprintSHA256:gOAde61s56TDk0j8joq3B2AjzsQ+qcAZIuDJ49BMBMk

Public key

The public key in authorized_keys format. Add it to an allowed_signers file to verify the signature below.

Download → 272 bytes

ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAEEGAxNOWDE27M7UOCDE7fkUgKhQ+6FEe9NfvOOI22jgHyHf0rOmTZIZCrltkwa/YoIgPDiTSgbXhBorvf+tMjvUAF6HxIHZ0gmRoTy8OeeyAGqfm0RL1CSoY0mk8vQlP4YeowgqRmIokJn5hVtVj3zRXgSinXyD3J34ojx6fKk8fDPWA== ch-j-ssh-example-08

Private key

The unencrypted private key. Published for testing only: anyone can use it.

Download → 736 bytes

Show
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAArAAAABNlY2RzYS
1zaGEyLW5pc3RwNTIxAAAACG5pc3RwNTIxAAAAhQQBBBgMTTlgxNuzO1DggxO35FICoUPu
hRHvTX7zjiNto4B8h39Kzpk2SGQq5bZMGv2KCIDw4k0oG14QaK73/rTI71ABeh8SB2dIJk
aE8vDnnsgBqn5tES9QkqGNJpPL0JT+GHqMIKkZiKJCZ+YVbVY980V4Eop18g9yd+KI8eny
pPHwz1gAAAEQ/UbpEP1G6RAAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQ
AAAIUEAQQYDE05YMTbsztQ4IMTt+RSAqFD7oUR701+844jbaOAfId/Ss6ZNkhkKuW2TBr9
igiA8OJNKBteEGiu9/60yO9QAXofEgdnSCZGhPLw557IAap+bREvUJKhjSaTy9CU/hh6jC
CpGYiiQmfmFW1WPfNFeBKKdfIPcnfiiPHp8qTx8M9YAAAAQUneKboiTSZYDY0YKUu7+UtE
keaMIu5H7QEOXoxoOlydyFWS/n60rZKBmSbrTLu3p5p/pxFI5rmErZNiJ8u3TKt0AAAAE2
NoLWotc3NoLWV4YW1wbGUtMDg=
-----END OPENSSH PRIVATE KEY-----

Signature of test_1MB.bin

Detached SSH signature (SSHSIG, namespace "file") of test_1MB.bin made with this key in CH-J Tools. Save it as test_1MB.bin.sig next to the test file.

Download → 570 bytes

-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAKwAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAAhuaXN0cDUyMQAAAI
UEAQQYDE05YMTbsztQ4IMTt+RSAqFD7oUR701+844jbaOAfId/Ss6ZNkhkKuW2TBr9igiA
8OJNKBteEGiu9/60yO9QAXofEgdnSCZGhPLw557IAap+bREvUJKhjSaTy9CU/hh6jCCpGY
iiQmfmFW1WPfNFeBKKdfIPcnfiiPHp8qTx8M9YAAAABGZpbGUAAAAAAAAABnNoYTUxMgAA
AKYAAAATZWNkc2Etc2hhMi1uaXN0cDUyMQAAAIsAAABBUFqmlnKPtwKY3p6dj5VIHHKxuy
kVqDSL9kN2wkqd6jXQALpfvNliCQTp+humqMJNMuzuU+HriooF6PWCAy5OWzkAAABCAYhQ
k82o2WRtkFXtLKzHCBRuPschs5AQKm7ddWpQr+FZP/xCYeXACLiYU1O9QHIsZN+rQ5eV9f
KJOduGtqjTkVQG
-----END SSH SIGNATURE-----

Revocation

SSH keys have no revocation certificate. To withdraw a key, remove it from authorized_keys, or list it in an OpenSSH key revocation list (KRL, created with ssh-keygen -k) that the server reads through RevokedKeys.

Verify the signature

Save the public key and the signature next to test_1MB.bin, create an allowed_signers file and run ssh-keygen:

echo "example@ch-j $(cat id_ecdsa.pub)" > allowed_signers
ssh-keygen -Y verify -f allowed_signers -I example@ch-j -n file -s test_1MB.bin.sig < test_1MB.bin