Skip to content

Commit 12f5613

Browse files
committed
Extended test to use padding on keys
1 parent 61bcb57 commit 12f5613

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

KeePassKitTests/KPKTestNSURL+KPKAddtions.m

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,25 @@ - (void)testTimeOTPURLProperties {
7777
XCTAssertEqualObjects(timeURL.key, keyData);
7878
}
7979

80+
- (void)testTimeOTPURLWithPaddingProperties {
81+
NSData *keyData = [NSData kpk_dataWithRandomBytes:11];
82+
NSUInteger period = 30;
83+
NSUInteger digits = 8;
84+
KPKOTPHashAlgorithm algoritm = KPKOTPHashAlgorithmSha256;
85+
86+
NSString *secretString = [[keyData base32EncodedStringWithOptions:0] stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet];
87+
88+
NSString *urlString = [NSString stringWithFormat:@"otpauth://totp/title:user@domain.com?secret=%@&issuer=titleuserdomaincom&period=%ld&algorithm=sha256&digits=%ld", secretString, period, digits];
89+
NSURL *timeURL = [NSURL URLWithString:urlString];
90+
XCTAssertNotNil(timeURL);
91+
XCTAssertTrue(timeURL.isTimeOTPURL);
92+
XCTAssertFalse(timeURL.isHmacOTPURL);
93+
XCTAssertEqual(timeURL.digits, digits);
94+
XCTAssertEqual(timeURL.hashAlgorithm, algoritm);
95+
XCTAssertEqual(timeURL.period, period);
96+
XCTAssertEqualObjects(timeURL.key, keyData);
97+
}
98+
8099
- (void)testHmacOTPURLProperties {
81100
NSData *keyData = [NSData kpk_dataWithRandomBytes:10];
82101
NSUInteger counter = 999;

0 commit comments

Comments
 (0)