You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SignalServiceKit/tests/Security/OWSFingerprintTest.m

81 lines
4.4 KiB
Objective-C

//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "OWSFingerprint.h"
#import "SSKBaseTestObjC.h"
#import <SessionCurve25519Kit/Curve25519.h>
@interface OWSFingerprintTest : SSKBaseTestObjC
@end
#pragma mark -
@implementation OWSFingerprintTest
- (void)testDisplayableTextInsertsSpaces
{
NSString *aliceStableId = @"+13231111111";
NSData *aliceIdentityKey = [Curve25519 generateKeyPair].publicKey;
NSString *bobStableId = @"+14152222222";
NSData *bobIdentityKey = [Curve25519 generateKeyPair].publicKey;
OWSFingerprint *aliceFingerprint = [OWSFingerprint fingerprintWithMyStableId:aliceStableId
myIdentityKey:aliceIdentityKey
theirStableId:bobStableId
theirIdentityKey:bobIdentityKey
theirName:@"Bob"
hashIterations:2];
NSString *displayableText = aliceFingerprint.displayableText;
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(0, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(1, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(2, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(3, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(4, 1)]);
XCTAssertEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(5, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(6, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(7, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(8, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(9, 1)]);
XCTAssertNotEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(10, 1)]);
XCTAssertEqualObjects(@" ", [displayableText substringWithRange:NSMakeRange(11, 1)]);
}
- (void)testTextMatchesReciprocally
{
NSString *aliceStableId = @"+13231111111";
NSData *aliceIdentityKey = [Curve25519 generateKeyPair].publicKey;
NSString *bobStableId = @"+14152222222";
NSData *bobIdentityKey = [Curve25519 generateKeyPair].publicKey;
NSString *charlieStableId = @"+14153333333";
NSData *charlieIdentityKey = [Curve25519 generateKeyPair].publicKey;
OWSFingerprint *aliceFingerprint = [OWSFingerprint fingerprintWithMyStableId:aliceStableId
myIdentityKey:aliceIdentityKey
theirStableId:bobStableId
theirIdentityKey:bobIdentityKey
theirName:@"Bob"
hashIterations:2];
OWSFingerprint *bobFingerprint = [OWSFingerprint fingerprintWithMyStableId:bobStableId
myIdentityKey:bobIdentityKey
theirStableId:aliceStableId
theirIdentityKey:aliceIdentityKey
theirName:@"Alice"
hashIterations:2];
OWSFingerprint *charlieFingerprint = [OWSFingerprint fingerprintWithMyStableId:charlieStableId
myIdentityKey:charlieIdentityKey
theirStableId:aliceStableId
theirIdentityKey:aliceIdentityKey
theirName:@"Alice"
hashIterations:2];
XCTAssertEqualObjects(aliceFingerprint.displayableText, bobFingerprint.displayableText);
XCTAssertNotEqualObjects(aliceFingerprint.displayableText, charlieFingerprint.displayableText);
}
@end