From 4971d78a532f270f173568a46919fdce822ea9fc Mon Sep 17 00:00:00 2001 From: "M. Thiercelin" Date: Thu, 3 Nov 2022 12:26:48 +0100 Subject: [PATCH] Sanitize strings by default on all platforms. Instead of sanitizing strings only on iOS, we do it on all platforms. --- CHANGELOG.md | 2 +- crypto/message_test.go | 8 +++++++- crypto/sanitize_string.go | 7 +++---- crypto/sanitize_string_ios.go | 10 ---------- 4 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 crypto/sanitize_string_ios.go diff --git a/CHANGELOG.md b/CHANGELOG.md index a7c02c2..2b20845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Changed - Updated `github.com/ProtonMail/go-mime` to latest versions, which cleans up uneeded dependencies. And fix an issue with PGP/MIME messages with non standard encodings. -- iOS only: sanitize strings returned in `MIMECallbacks.OnBody()` and `PlainMessage.GetString()`. Strings that have non utf8 characters will be sanitized to have the "character unknown" character : � instead. +- Sanitize strings returned in `MIMECallbacks.OnBody()` and `PlainMessage.GetString()`. Strings that have non utf8 characters will be sanitized to have the "character unknown" character : � instead. ## [2.4.10] 2022-08-22 ### Changed diff --git a/crypto/message_test.go b/crypto/message_test.go index 0f93b82..17be0d6 100644 --- a/crypto/message_test.go +++ b/crypto/message_test.go @@ -5,6 +5,7 @@ import ( "encoding/base64" "errors" "io" + "io/ioutil" "testing" "time" @@ -83,7 +84,12 @@ func TestTextMixedMessageDecryptionWithPassword(t *testing.T) { t.Fatal("Expected no error when decrypting, got:", err) } - assert.Exactly(t, readTestFile("message_mixedPasswordPublicExpected", true), decrypted.GetString()) + expected, err := ioutil.ReadFile("testdata/message_mixedPasswordPublicExpected") + if err != nil { + panic(err) + } + + assert.Exactly(t, expected, decrypted.GetBinary()) } func TestTextMessageEncryption(t *testing.T) { diff --git a/crypto/sanitize_string.go b/crypto/sanitize_string.go index 94aa81c..854e11f 100644 --- a/crypto/sanitize_string.go +++ b/crypto/sanitize_string.go @@ -1,8 +1,7 @@ -//go:build !ios -// +build !ios - package crypto +import "strings" + func sanitizeString(input string) string { - return input + return strings.ToValidUTF8(input, "\ufffd") } diff --git a/crypto/sanitize_string_ios.go b/crypto/sanitize_string_ios.go deleted file mode 100644 index 561414b..0000000 --- a/crypto/sanitize_string_ios.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build ios -// +build ios - -package crypto - -import "strings" - -func sanitizeString(input string) string { - return strings.ToValidUTF8(input, "\ufffd") -}