Browse Source

Added unsigned option, and password checking.

master
Gregory Rudolph 5 years ago
parent
commit
fee6893aa6
Signed by: rudi
GPG Key ID: EF64F3CBD1A1EBDD
  1. 9
      mailHelper.go
  2. 10
      main.go
  3. 3
      pgpHelper.go

9
mailHelper.go

@ -24,13 +24,20 @@ func send(e Email, api keybase.ChatAPI) {
log.LogDebug(message) log.LogDebug(message)
log.LogInfo("Sending message") log.LogInfo("Sending message")
chat.React(api.Msg.ID, ":mailbox_with_no_mail:") chat.React(api.Msg.ID, ":mailbox_with_no_mail:")
if conf.KeyPass == "" {
chat.React(api.Msg.ID, ":unlock:")
} else {
chat.React(api.Msg.ID, ":lock_with_ink_pen:")
}
err := smtp.SendMail(conf.SmtpServer, err := smtp.SendMail(conf.SmtpServer,
smtp.PlainAuth("", conf.MyEmail, conf.EmailPass, conf.AuthServer), smtp.PlainAuth("", conf.MyEmail, conf.EmailPass, conf.AuthServer),
conf.MyEmail, e.Recipients, []byte(message)) conf.MyEmail, e.Recipients, []byte(message))
chat.React(api.Msg.ID, ":mailbox_with_no_mail:")
if err != nil { if err != nil {
log.LogErrorType(err) log.LogErrorType(err)
chat.React(api.Msg.ID, ":warning:")
return
} }
chat.React(api.Msg.ID, ":mailbox_with_no_mail:")
chat.React(api.Msg.ID, ":mailbox_with_mail:") chat.React(api.Msg.ID, ":mailbox_with_mail:")
log.LogInfo("Email Sent") log.LogInfo("Email Sent")
} }

10
main.go

@ -131,16 +131,22 @@ func loadConfig() Config {
return c return c
} }
func setupCredentials() { func setupCredentials() {
log.LogCritical("Enter pgp key passphrase:") log.LogCritical("Enter optional pgp key passphrase:")
bytePass, err := terminal.ReadPassword(int(syscall.Stdin)) bytePass, err := terminal.ReadPassword(int(syscall.Stdin))
if err != nil { if err != nil {
log.LogCritical(fmt.Sprintf("Error reading pgp password:\n```%+v```", err)) log.LogCritical(fmt.Sprintf("Error reading pgp password:\n```%+v```", err))
} }
conf.KeyPass = strings.TrimSpace(string(bytePass)) conf.KeyPass = strings.TrimSpace(string(bytePass))
log.LogCritical("Enter email passphrase:") if conf.KeyPass == "" {
log.LogCritical("Starting without PGP signature capabilities.")
}
for i := len(conf.EmailPass); i < 1; i = len(conf.EmailPass) {
log.LogCritical("Enter required email passphrase:")
bytePass, err = terminal.ReadPassword(int(syscall.Stdin)) bytePass, err = terminal.ReadPassword(int(syscall.Stdin))
if err != nil { if err != nil {
log.LogCritical(fmt.Sprintf("Error reading email password:\n```%+v```", err)) log.LogCritical(fmt.Sprintf("Error reading email password:\n```%+v```", err))
} }
conf.EmailPass = strings.TrimSpace(string(bytePass)) conf.EmailPass = strings.TrimSpace(string(bytePass))
}
} }

3
pgpHelper.go

@ -39,6 +39,9 @@ func getPrivateKey() *openpgp.Entity {
} }
func signMessage(m string) string { func signMessage(m string) string {
if conf.KeyPass == "" {
return m
}
pk := getPrivateKey() pk := getPrivateKey()
out := new(bytes.Buffer) out := new(bytes.Buffer)
in, err := clearsign.Encode(out, pk.PrivateKey, nil) in, err := clearsign.Encode(out, pk.PrivateKey, nil)

Loading…
Cancel
Save