package sshkeys // EncryptedSSHKeyV1 represents an encrypted private key. type EncryptedSSHKeyV1 struct { SSHKeyV1 CipherName string KDFName string KDFOpts SSHKDFOpts Passphrase string } // SSHKDFOpts contains a set of KDF options. type SSHKDFOpts struct { Salt []byte // Also referred to as IV (initialization vector). (https://en.wikipedia.org/wiki/Initialization_vector) Rounds uint32 // Also referred to as work factor. } // SSHKeyV1 represents an unencrypted private key. // We don't bother with the legacy (pre v1) keys. Sorry not sorry. // Patch your shit. type SSHKeyV1 struct { Magic string PublicKeys []SSHPubKey PrivateKeys []SSHPrivKey } // SSHPubKey contains the Public key of an SSH Keypair. type SSHPubKey struct { KeyType string PrivateKey *SSHPrivKey } // SSHPrivKey contains the Private key of an SSH Keypair. type SSHPrivKey struct { PublicKey *SSHPubKey Checksum uint32 Comment string }