ParseEd25519PrivateKey parses an ed25519 private key.
(data []byte)
| 26 | |
| 27 | // ParseEd25519PrivateKey parses an ed25519 private key. |
| 28 | func ParseEd25519PrivateKey(data []byte) (PrivateKey, error) { |
| 29 | privateKey, err := gossh.ParseRawPrivateKey(data) |
| 30 | if err != nil { |
| 31 | return nil, err |
| 32 | } |
| 33 | |
| 34 | // Try loading as an external key, fall back to internal key. This *should* |
| 35 | // fix issues with incompatible versions. |
| 36 | ed25519Key, ok := privateKey.(ed25519.PrivateKey) |
| 37 | if !ok { |
| 38 | return nil, errors.New("not an ed25519 key") |
| 39 | } |
| 40 | |
| 41 | return &ed25519PrivateKey{ed25519Key}, nil |
| 42 | } |
| 43 | |
| 44 | // GenerateEd25519PrivateKey generates a new ed25519 private key. |
| 45 | func GenerateEd25519PrivateKey() (PrivateKey, error) { |