1package config
2
3import (
4 "errors"
5
6 "github.com/charmbracelet/keygen"
7)
8
9var (
10 // ErrNilConfig is returned when a nil config is passed to a function.
11 ErrNilConfig = errors.New("nil config")
12
13 // ErrEmptySSHKeyPath is returned when the SSH key path is empty.
14 ErrEmptySSHKeyPath = errors.New("empty SSH key path")
15)
16
17// KeyPair returns the server's SSH key pair.
18func KeyPair(cfg *Config) (*keygen.SSHKeyPair, error) {
19 if cfg == nil {
20 return nil, ErrNilConfig
21 }
22
23 if cfg.SSH.KeyPath == "" {
24 return nil, ErrEmptySSHKeyPath
25 }
26
27 return keygen.New(cfg.SSH.KeyPath, keygen.WithKeyType(keygen.Ed25519)) //nolint:wrapcheck
28}