ed25519, rsa ref done

This commit is contained in:
2022-03-07 02:34:27 -05:00
parent adb807dcb8
commit 2b6be62d56
18 changed files with 3013 additions and 33 deletions

View File

@@ -13,6 +13,7 @@ Last updated {localdatetime}
:idprefix:
:toclevels: 7
:source-highlighter: rouge
:docinfo: shared
== Purpose
This document attempts to present a much more detailed, thorough, and easily-understood form of the key formats used by OpenSSH. The extent of those formats' canonical documentation is https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key[the OpenSSH source tree's `PROTOCOL.key`^], which is a little lacking.
@@ -35,14 +36,29 @@ A:: The key type (e.g. `ssh-rsa`, `ssh-ed25519`, etc.)
B:: The public key itself, Base64footnote:[https://datatracker.ietf.org/doc/html/rfc4648]-encoded
C:: The key's comment
The structures specified in the breakdowns later in this document describe the _decoded_ version of *B* *_only_*.
The structures specified in the breakdowns later in this document describe the _decoded_ version of *B* *_only_*. They are specific to each keytype and format version starting with item `2.0`.
=== New "v1" Format
==== Private Keys
Private key structures have been retooled in the "v1" format. In recent OpenSSH versions, all new keys use the v1 format. They no longer are in straight PEM-compatible format.
Refer to https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.key[`PROTOCOL.key`^] for a (very) general description, or each key's specific breakdown for more detailed information.
The v1 format offers several benefits over the legacy format, including:
* customizable key derivation and encryption ciphers for encrypted private keys
* embedded comments
* embedded public key (no need to derive from the private key)
* "checksumming" to confirm proper decryption for encrypted keys
==== Public Keys
All public keys in v1 continue to use the same packed binary format as <<public_keys, the legacy format>>.
== Keytype-Specific Breakdowns
include::rsa/main.adoc[]
=== ED25519
include::ed25519/main.adoc[]