From f83058b34b89d01f9e75ff75d726c4e2817ef619 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 14 Aug 2020 14:33:07 +1000 Subject: [PATCH] Implement workaround for Android group ID compatibility bug --- .../src/Loki/Protocol/Utilities/LKGroupUtilities.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Loki/Protocol/Utilities/LKGroupUtilities.m b/SignalServiceKit/src/Loki/Protocol/Utilities/LKGroupUtilities.m index 38cdca4c6..2cc376243 100644 --- a/SignalServiceKit/src/Loki/Protocol/Utilities/LKGroupUtilities.m +++ b/SignalServiceKit/src/Loki/Protocol/Utilities/LKGroupUtilities.m @@ -1,4 +1,6 @@ #import "LKGroupUtilities.h" +#import "NSData+OWS.h" +#import @implementation LKGroupUtilities @@ -64,8 +66,12 @@ +(NSData *)getDecodedGroupIDAsData:(NSData *)groupID { + // FIXME: This needs to be cleaned up. A lot. OWSAssertDebug(groupID.length > 0); - NSString *encodedGroupID = [[NSString alloc]initWithData:groupID encoding:NSUTF8StringEncoding]; + NSString *encodedGroupID = [[NSString alloc] initWithData:groupID encoding:NSUTF8StringEncoding]; + if (encodedGroupID == nil && [ECKeyPair isValidHexEncodedPublicKeyWithCandidate:[groupID hexadecimalString]]) { + return groupID; // Workaround to make things compatible with Android + } NSString *decodedGroupID = [encodedGroupID componentsSeparatedByString:@"!"][0]; if ([encodedGroupID componentsSeparatedByString:@"!"].count > 1) { decodedGroupID = [encodedGroupID componentsSeparatedByString:@"!"][1];