Skip to content

Commit 77833c9

Browse files
rlejeune74LBeernaertProton
authored andcommitted
Revert "feat(GODT-1224): Add more test case."
This reverts commit 84d8336. This reverts commit 8983745. This reverts commit d4a5c59. Which are no more needed since handled directly on gopenpgp level by this commit ProtonMail/gopenpgp@b189309
1 parent 933cd67 commit 77833c9

File tree

2 files changed

+10
-146
lines changed

2 files changed

+10
-146
lines changed

message_send_types.go

Lines changed: 9 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,6 @@ func (req *SendDraftReq) AddTextPackage(
137137
return nil
138138
}
139139

140-
func (req *SendDraftReq) AddClearSignedPackage(
141-
kr *crypto.KeyRing,
142-
body string,
143-
prefs map[string]SendPreferences,
144-
attKeys map[string]*crypto.SessionKey,
145-
) error {
146-
pkg, err := newClearSignedPackage(kr, body, prefs, attKeys)
147-
if err != nil {
148-
return err
149-
}
150-
151-
req.Packages = append(req.Packages, pkg)
152-
153-
return nil
154-
}
155-
156140
func newMIMEPackage(
157141
kr *crypto.KeyRing,
158142
mimeBody string,
@@ -216,7 +200,7 @@ func newTextPackage(
216200
prefs map[string]SendPreferences,
217201
attKeys map[string]*crypto.SessionKey,
218202
) (*MessagePackage, error) {
219-
if !(mimeType == rfc822.TextPlain || mimeType == rfc822.TextHTML) {
203+
if mimeType != rfc822.TextPlain && mimeType != rfc822.TextHTML {
220204
return nil, fmt.Errorf("invalid MIME type for package: %s", mimeType)
221205
}
222206

@@ -233,7 +217,13 @@ func newTextPackage(
233217
}
234218

235219
if prefs.SignatureType == DetachedSignature && !prefs.Encrypt {
236-
return nil, fmt.Errorf("text package cannot contain clear-signed body")
220+
if prefs.EncryptionScheme == PGPInlineScheme {
221+
return nil, fmt.Errorf("invalid encryption scheme for %s: %d", addr, prefs.EncryptionScheme)
222+
}
223+
224+
if prefs.EncryptionScheme == ClearScheme && mimeType != rfc822.TextPlain {
225+
return nil, fmt.Errorf("invalid MIME type for clear package: %s", mimeType)
226+
}
237227
}
238228

239229
if prefs.EncryptionScheme == InternalScheme && !prefs.Encrypt {
@@ -298,63 +288,8 @@ func newTextPackage(
298288
return pkg, nil
299289
}
300290

301-
func newClearSignedPackage(
302-
kr *crypto.KeyRing,
303-
body string,
304-
prefs map[string]SendPreferences,
305-
attKeys map[string]*crypto.SessionKey,
306-
) (*MessagePackage, error) {
307-
encBody, err := kr.Encrypt(crypto.NewPlainMessage([]byte(body)), kr)
308-
if err != nil {
309-
return nil, fmt.Errorf("failed to encrypt MIME body: %w", err)
310-
}
311-
312-
splitEncBody, err := encBody.SplitMessage()
313-
if err != nil {
314-
return nil, fmt.Errorf("failed to split message: %w", err)
315-
}
316-
317-
decBodyKey, err := kr.DecryptSessionKey(splitEncBody.GetBinaryKeyPacket())
318-
if err != nil {
319-
return nil, fmt.Errorf("failed to decrypt session key: %w", err)
320-
}
321-
322-
pkg := newMessagePackage(rfc822.TextPlain, splitEncBody.GetBinaryDataPacket())
323-
324-
for addr, prefs := range prefs {
325-
if prefs.MIMEType != rfc822.TextPlain {
326-
return nil, fmt.Errorf("invalid MIME type for clear signed package: %s", prefs.MIMEType)
327-
}
328-
329-
if prefs.SignatureType != DetachedSignature {
330-
return nil, fmt.Errorf("clear signed package must contain detached signature")
331-
}
332-
333-
if prefs.Encrypt || prefs.EncryptionScheme != ClearScheme {
334-
return nil, fmt.Errorf("clear signed package cannot be encrypted")
335-
}
336-
337-
pkg.BodyKey = newSessionKey(decBodyKey)
338-
339-
for attID, attKey := range attKeys {
340-
pkg.AttachmentKeys[attID] = newSessionKey(attKey)
341-
}
342-
343-
recipient := &MessageRecipient{
344-
Type: prefs.EncryptionScheme,
345-
Signature: prefs.SignatureType,
346-
AttachmentKeyPackets: make(map[string]string),
347-
}
348-
349-
pkg.Addresses[addr] = recipient
350-
pkg.Type |= prefs.EncryptionScheme
351-
}
352-
353-
return pkg, nil
354-
}
355-
356291
func encSplit(kr *crypto.KeyRing, body string) (*crypto.SessionKey, []byte, error) {
357-
encBody, err := kr.Encrypt(crypto.NewPlainMessage([]byte(body)), kr)
292+
encBody, err := kr.Encrypt(crypto.NewPlainMessageFromString(body), kr)
358293
if err != nil {
359294
return nil, nil, fmt.Errorf("failed to encrypt MIME body: %w", err)
360295
}

message_send_types_test.go

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ func TestSendDraftReq_AddPackage(t *testing.T) {
290290
EncryptionScheme: proton.ClearScheme,
291291
MIMEType: rfc822.TextPlain,
292292
}},
293-
wantErr: true,
293+
wantErr: false,
294294
},
295295
{
296296
name: "clear plain text with bad scheme (error)",
@@ -380,74 +380,3 @@ func TestSendDraftReq_AddPackage(t *testing.T) {
380380
})
381381
}
382382
}
383-
384-
func TestSendDraftReq_AddClearPackage(t *testing.T) {
385-
key, err := crypto.GenerateKey("name", "email", "rsa", 2048)
386-
require.NoError(t, err)
387-
388-
kr, err := crypto.NewKeyRing(key)
389-
require.NoError(t, err)
390-
391-
tests := []struct {
392-
name string
393-
body string
394-
prefs map[string]proton.SendPreferences
395-
attKeys map[string]*crypto.SessionKey
396-
wantErr bool
397-
}{
398-
{
399-
name: "clear plain text with signature",
400-
body: "this is a text/plain body",
401-
prefs: map[string]proton.SendPreferences{"[email protected]": {
402-
Encrypt: false,
403-
SignatureType: proton.DetachedSignature,
404-
EncryptionScheme: proton.ClearScheme,
405-
MIMEType: rfc822.TextPlain,
406-
}},
407-
wantErr: false,
408-
},
409-
{
410-
name: "clear plain text with bad scheme (error)",
411-
body: "this is a text/plain body",
412-
prefs: map[string]proton.SendPreferences{"[email protected]": {
413-
Encrypt: false,
414-
SignatureType: proton.DetachedSignature,
415-
EncryptionScheme: proton.PGPInlineScheme,
416-
MIMEType: rfc822.TextPlain,
417-
}},
418-
wantErr: true,
419-
},
420-
{
421-
name: "clear rich text with signature (error)",
422-
body: "this is a text/html body",
423-
prefs: map[string]proton.SendPreferences{"[email protected]": {
424-
Encrypt: false,
425-
SignatureType: proton.DetachedSignature,
426-
EncryptionScheme: proton.ClearScheme,
427-
MIMEType: rfc822.TextHTML,
428-
}},
429-
wantErr: true,
430-
},
431-
{
432-
name: "clear plain text with signature",
433-
body: "this is a text/plain body",
434-
prefs: map[string]proton.SendPreferences{"[email protected]": {
435-
Encrypt: true,
436-
SignatureType: proton.DetachedSignature,
437-
EncryptionScheme: proton.ClearScheme,
438-
MIMEType: rfc822.TextPlain,
439-
}},
440-
wantErr: true,
441-
},
442-
}
443-
444-
for _, tt := range tests {
445-
t.Run(tt.name, func(t *testing.T) {
446-
var req proton.SendDraftReq
447-
448-
if err := req.AddClearSignedPackage(kr, tt.body, tt.prefs, tt.attKeys); (err != nil) != tt.wantErr {
449-
t.Errorf("SendDraftReq.AddPackage() error = %v, wantErr %v", err, tt.wantErr)
450-
}
451-
})
452-
}
453-
}

0 commit comments

Comments
 (0)