diff --git a/pkgs/ssh-to-pgp/main.go b/pkgs/ssh-to-pgp/main.go index f046c8f..f8f926b 100644 --- a/pkgs/ssh-to-pgp/main.go +++ b/pkgs/ssh-to-pgp/main.go @@ -85,7 +85,6 @@ func convertKeys(args []string) error { if err != nil { return fmt.Errorf("failed to encode armor writer") } - defer writer.Close() } if opts.publicKey != "" { @@ -93,13 +92,16 @@ func convertKeys(args []string) error { if err != nil { return err } - gpgKey.Serialize(writer) + err = gpgKey.Serialize(writer) } else { gpgKey, err := sshkeys.SSHPrivateKeyToPGP(sshKey) if err != nil { return err } - gpgKey.SerializePrivate(writer, nil) + err = gpgKey.SerializePrivate(writer, nil) + } + if err == nil && opts.format == "armor" { + writer.Close() } return err }