Skip to content

Commit

Permalink
fix(mail): check if smime certificate matches sender address
Browse files Browse the repository at this point in the history
Fixes #5407
  • Loading branch information
cgx committed Nov 2, 2021
1 parent 9622a1e commit ab67e7d
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions UI/MailPartViewers/UIxMailPartSignedViewer.m
Original file line number Diff line number Diff line change
Expand Up @@ -202,11 +202,15 @@ - (void) _processMessage
if (validSignature)
{
BOOL hasMatchingAddress;
NSArray *pair;
NSArray *pair, *attributes;
NSDictionary *certificate, *values;
NSEnumerator *certificatesList, *subjectList;
NSString *senderAddress, *label, *value;

// See https://datatracker.ietf.org/doc/html/rfc8550#section-3
// See https://datatracker.ietf.org/doc/html/rfc8550#section-4.4.3
// TODO: handle multiple email addresses in SubjectAltName
attributes = [NSArray arrayWithObjects: @"commonname", @"subjectaltname", @"emailaddress", nil];
validationMessage = [self labelForKey: @"Message is signed"];
hasMatchingAddress = NO;
value = nil;
Expand All @@ -219,7 +223,7 @@ - (void) _processMessage
{
label = [[pair objectAtIndex: 0] lowercaseString];
value = [[pair objectAtIndex: 1] lowercaseString];
if ([label isEqualToString: @"commonname"] && [value isEqualToString: senderAddress])
if ([attributes containsObject: label] && [value isEqualToString: senderAddress])
{
hasMatchingAddress = 1;
}
Expand Down

0 comments on commit ab67e7d

Please sign in to comment.