diff --git a/Podfile b/Podfile index c70239713..e1d12320d 100644 --- a/Podfile +++ b/Podfile @@ -12,7 +12,8 @@ def shared_pods # pod 'YapDatabase/SQLCipher', path: '../YapDatabase' pod 'YapDatabase/SQLCipher', :git => 'https://github.com/signalapp/YapDatabase.git', branch: 'signal-release' # pod 'AxolotlKit', git: 'https://github.com/signalapp/SignalProtocolKit.git', testspecs: ["Tests"] - pod 'AxolotlKit', path: '../SignalProtocolKit', testspecs: ["Tests"] + # pod 'AxolotlKit', path: '../SignalProtocolKit', testspecs: ["Tests"] + pod 'AxolotlKit', path: '../SignalProtocolKit' # pod 'HKDFKit', git: 'https://github.com/signalapp/HKDFKit.git', testspecs: ["Tests"] pod 'HKDFKit', path: '../HKDFKit', testspecs: ["Tests"] # pod 'Curve25519Kit', git: 'https://github.com/signalapp/Curve25519Kit', testspecs: ["Tests"] diff --git a/SignalServiceKit/src/Util/NSData+messagePadding.h b/SignalServiceKit/src/Util/NSData+messagePadding.h deleted file mode 100644 index 46dfa2426..000000000 --- a/SignalServiceKit/src/Util/NSData+messagePadding.h +++ /dev/null @@ -1,11 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -@interface NSData (messagePadding) - -- (NSData *)removePadding; - -- (NSData *)paddedMessageBody; - -@end diff --git a/SignalServiceKit/src/Util/NSData+messagePadding.m b/SignalServiceKit/src/Util/NSData+messagePadding.m deleted file mode 100644 index e67a21f91..000000000 --- a/SignalServiceKit/src/Util/NSData+messagePadding.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "NSData+messagePadding.h" - -@implementation NSData (messagePadding) - -- (NSData *)removePadding { - unsigned long paddingStart = self.length; - - Byte data[self.length]; - [self getBytes:data length:self.length]; - - for (long i = (long)self.length - 1; i >= 0; i--) { - if (data[i] == (Byte)0x80) { - paddingStart = (unsigned long)i; - break; - } else if (data[i] != (Byte)0x00) { - OWSLogWarn(@"Failed to remove padding, returning unstripped padding"); - return self; - } - } - - return [self subdataWithRange:NSMakeRange(0, paddingStart)]; -} - - -- (NSData *)paddedMessageBody { - // From - // https://github.com/signalapp/TextSecure/blob/master/libtextsecure/src/main/java/org/whispersystems/textsecure/internal/push/PushTransportDetails.java#L55 - // NOTE: This is dumb. We have our own padding scheme, but so does the cipher. - // The +1 -1 here is to make sure the Cipher has room to add one padding byte, - // otherwise it'll add a full 16 extra bytes. - - NSUInteger paddedMessageLength = [self paddedMessageLength:(self.length + 1)] - 1; - NSMutableData *paddedMessage = [NSMutableData dataWithLength:paddedMessageLength]; - - Byte paddingByte = 0x80; - - [paddedMessage replaceBytesInRange:NSMakeRange(0, self.length) withBytes:[self bytes]]; - [paddedMessage replaceBytesInRange:NSMakeRange(self.length, 1) withBytes:&paddingByte]; - - return paddedMessage; -} - -- (NSUInteger)paddedMessageLength:(NSUInteger)messageLength { - NSUInteger messageLengthWithTerminator = messageLength + 1; - NSUInteger messagePartCount = messageLengthWithTerminator / 160; - - if (messageLengthWithTerminator % 160 != 0) { - messagePartCount++; - } - - return messagePartCount * 160; -} - -@end diff --git a/SignalServiceKit/tests/Util/MessagePaddingTests.m b/SignalServiceKit/tests/Util/MessagePaddingTests.m deleted file mode 100644 index d96bcf907..000000000 --- a/SignalServiceKit/tests/Util/MessagePaddingTests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "NSData+messagePadding.h" -#import "SSKBaseTest.h" -#import - -@interface MessagePaddingTests : SSKBaseTest - -@end - -@implementation MessagePaddingTests - -- (void)testV3Padding { - for (NSUInteger i=0;i<159;i++) { - NSData *data = [NSMutableData dataWithLength:i]; - XCTAssert([data paddedMessageBody].length == 159); - } - - for (NSUInteger i=159;i<319;i++) { - NSData *data = [NSMutableData dataWithLength:i]; - XCTAssert([data paddedMessageBody].length == 319); - } - - for (NSUInteger i=319;i<479;i++) { - NSData *data = [NSMutableData dataWithLength:i]; - XCTAssert([data paddedMessageBody].length == 479); - } -} - -- (void)testV3RandomPadding{ - for (int i = 0; i < 1000; i++) { - NSData *randomMessage = [Cryptography generateRandomBytes:501]; - NSData *paddedMessage = [randomMessage paddedMessageBody]; - XCTAssert([[paddedMessage removePadding] isEqualToData:randomMessage]); - } -} - -@end