From 45e44ca085f1e322796f099a31eef48aaec41e8e Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 22 Jan 2018 10:26:25 -0500 Subject: [PATCH] Modify YapDatabase to read converted database, part 3. --- Signal/test/util/OWSDatabaseConverterTest.m | 2 ++ SignalMessaging/utils/OWSDatabaseConverter.m | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Signal/test/util/OWSDatabaseConverterTest.m b/Signal/test/util/OWSDatabaseConverterTest.m index cb9ceb18a..8173ffe10 100644 --- a/Signal/test/util/OWSDatabaseConverterTest.m +++ b/Signal/test/util/OWSDatabaseConverterTest.m @@ -49,6 +49,7 @@ NS_ASSUME_NONNULL_BEGIN OWSAssert(databaseBlock); DDLogVerbose(@"openYapDatabase: %@", databaseFilePath); + [DDLog flushLog]; __weak YapDatabase *_Nullable weakDatabase = nil; dispatch_queue_t snapshotQueue; @@ -121,6 +122,7 @@ NS_ASSUME_NONNULL_BEGIN }]; } + // Verify that the database is indeed closed. YapDatabase *_Nullable strongDatabase = weakDatabase; OWSAssert(!strongDatabase); } diff --git a/SignalMessaging/utils/OWSDatabaseConverter.m b/SignalMessaging/utils/OWSDatabaseConverter.m index 1d039c3ce..4ee6a7174 100644 --- a/SignalMessaging/utils/OWSDatabaseConverter.m +++ b/SignalMessaging/utils/OWSDatabaseConverter.m @@ -68,7 +68,7 @@ const NSUInteger kSqliteHeaderLength = 32; BOOL isUnencrypted = [unencryptedHeaderData isEqualToData:[headerData subdataWithRange:NSMakeRange(0, unencryptedHeaderData.length)]]; if (isUnencrypted) { - DDLogVerbose(@"%@ Skipping database conversion; legacy database header already decrypted.", self.logTag); + DDLogVerbose(@"%@ doesDatabaseNeedToBeConverted; legacy database header already decrypted.", self.logTag); return NO; } @@ -115,6 +115,8 @@ const NSUInteger kSqliteHeaderLength = 32; OWSAssert(databasePassword.length > 0); OWSAssert(saltBlock); + DDLogVerbose(@"%@ databasePassword: %@", self.logTag, databasePassword.hexadecimalString); + NSData *sqlCipherSaltData; { NSData *headerData = [self readFirstNBytesOfDatabaseFile:databaseFilePath byteCount:kSqliteHeaderLength]; @@ -307,7 +309,8 @@ const NSUInteger kSqliteHeaderLength = 32; const unsigned char *valueBytes = sqlite3_column_text(statement, 0); int valueLength = sqlite3_column_bytes(statement, 0); - DDLogVerbose(@"%@ value: %d %d", self.logTag, valueLength, valueBytes != NULL); + OWSAssert(valueLength == kSqliteHeaderLength); + OWSAssert(valueBytes != NULL); NSString *saltString = [[NSString alloc] initWithBytes:valueBytes length:valueLength encoding:NSUTF8StringEncoding];