Canonicalize line endings for text messages (#86)

* Canonicalize line endings for text messages

* Improve cleartext messages
This commit is contained in:
wussler 2020-10-12 21:24:33 +02:00 committed by GitHub
parent a4d89bce32
commit ce607e0fa8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 25 additions and 25 deletions

View file

@ -1,8 +1,6 @@
package helper
import (
"strings"
"github.com/ProtonMail/gopenpgp/v2/crypto"
"github.com/ProtonMail/gopenpgp/v2/internal"
)
@ -50,7 +48,7 @@ func VerifyCleartextMessageArmored(publicKey, armored string, verifyTime int64)
// SignCleartextMessage signs text given a private keyring, canonicalizes and
// trims the newlines, and returns the PGP-compliant special armoring.
func SignCleartextMessage(keyRing *crypto.KeyRing, text string) (string, error) {
text = canonicalizeAndTrim(text)
text = internal.TrimWhitespace(text)
message := crypto.NewPlainMessageFromString(text)
signature, err := keyRing.SignDetached(message)
@ -79,12 +77,3 @@ func VerifyCleartextMessage(keyRing *crypto.KeyRing, armored string, verifyTime
return message.GetString(), nil
}
// ----- INTERNAL FUNCTIONS -----
// canonicalizeAndTrim alters a string canonicalizing and trimming the newlines.
func canonicalizeAndTrim(text string) string {
text = internal.TrimNewlines(text)
text = strings.ReplaceAll(strings.ReplaceAll(text, "\r\n", "\n"), "\n", "\r\n")
return text
}