From e186f9df5d4650aad3540bf12469c7115daf9b44 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 24 Apr 2020 09:16:06 +1000 Subject: [PATCH] Re-order files --- Signal/test/Models/AccountManagerTest.swift | 4 +- .../Loki/{ => API}/Crypto/ProofOfWork.swift | 0 SignalServiceKit/src/Loki/API/LokiAPI.swift | 3 +- .../Onion Requests/OnionRequestAPITests.swift | 51 ++++--------------- .../LokiPublicChat.swift | 0 .../LokiPublicChatAPI.swift | 0 .../LokiPublicChatInfo.swift | 0 .../LokiPublicChatManager.swift | 0 .../LokiPublicChatMessage.swift | 0 .../LokiPublicChatPoller.swift | 0 .../Loki/API/{HTTP => Utilities}/HTTP.swift | 0 .../ContactParser.swift | 0 .../ExpiringFriendRequestFinder.swift | 0 .../FriendRequestExpirationJob.swift | 0 .../{Messaging => Protocol}/GroupParser.swift | 0 .../LokiMessageWrapper.swift | 0 .../LokiSessionResetImplementation.swift | 0 .../{Messaging => Protocol}/Mention.swift | 0 .../Message Types/LKAddressMessage.h | 0 .../Message Types/LKAddressMessage.m | 0 .../Message Types/LKDeviceLinkMessage.h | 0 .../Message Types/LKDeviceLinkMessage.m | 0 .../Message Types/LKEphemeralMessage.h | 0 .../Message Types/LKEphemeralMessage.m | 0 .../Message Types/LKFriendRequestMessage.h | 0 .../Message Types/LKFriendRequestMessage.m | 0 .../Message Types/LKSessionRequestMessage.h | 0 .../Message Types/LKSessionRequestMessage.m | 0 .../Message Types/LKSessionRestoreMessage.h | 0 .../Message Types/LKSessionRestoreMessage.m | 0 .../Message Types/LKSyncOpenGroupsMessage.h | 0 .../Message Types/LKSyncOpenGroupsMessage.m | 0 .../Message Types/LKUnlinkDeviceMessage.h | 0 .../Message Types/LKUnlinkDeviceMessage.m | 0 .../Multi Device/DeviceLink.swift | 0 .../Multi Device/DeviceLinkingSession.swift | 0 .../DeviceLinkingSessionDelegate.swift | 0 .../Multi Device/DeviceLinkingUtilities.swift | 0 .../SSKProtoEnvelope+Loki.swift | 0 .../SSKProtoPrekeyBundleMessage+Loki.swift | 0 .../SessionProtocol+Receiving.swift | 0 .../SessionProtocol+Sending.swift | 0 .../SessionProtocol.swift | 0 .../Loki/{Messaging => Protocol}/TTL.swift | 0 .../ECKeyPair+Hexadecimal.swift} | 0 45 files changed, 15 insertions(+), 43 deletions(-) rename SignalServiceKit/src/Loki/{ => API}/Crypto/ProofOfWork.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChat.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChatAPI.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChatInfo.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChatManager.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChatMessage.swift (100%) rename SignalServiceKit/src/Loki/API/{Public Chats => Open Groups}/LokiPublicChatPoller.swift (100%) rename SignalServiceKit/src/Loki/API/{HTTP => Utilities}/HTTP.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/ContactParser.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/ExpiringFriendRequestFinder.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/FriendRequestExpirationJob.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/GroupParser.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/LokiMessageWrapper.swift (100%) rename SignalServiceKit/src/Loki/{Database => Protocol}/LokiSessionResetImplementation.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Mention.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKAddressMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKAddressMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKDeviceLinkMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKDeviceLinkMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKEphemeralMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKEphemeralMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKFriendRequestMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKFriendRequestMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSessionRequestMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSessionRequestMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSessionRestoreMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSessionRestoreMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSyncOpenGroupsMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKSyncOpenGroupsMessage.m (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKUnlinkDeviceMessage.h (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/Message Types/LKUnlinkDeviceMessage.m (100%) rename SignalServiceKit/src/Loki/{ => Protocol}/Multi Device/DeviceLink.swift (100%) rename SignalServiceKit/src/Loki/{ => Protocol}/Multi Device/DeviceLinkingSession.swift (100%) rename SignalServiceKit/src/Loki/{ => Protocol}/Multi Device/DeviceLinkingSessionDelegate.swift (100%) rename SignalServiceKit/src/Loki/{ => Protocol}/Multi Device/DeviceLinkingUtilities.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/SSKProtoEnvelope+Loki.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/SSKProtoPrekeyBundleMessage+Loki.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/SessionProtocol+Receiving.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/SessionProtocol+Sending.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/SessionProtocol.swift (100%) rename SignalServiceKit/src/Loki/{Messaging => Protocol}/TTL.swift (100%) rename SignalServiceKit/src/Loki/{Crypto/ECKeyPair+Loki.swift => Utilities/ECKeyPair+Hexadecimal.swift} (100%) diff --git a/Signal/test/Models/AccountManagerTest.swift b/Signal/test/Models/AccountManagerTest.swift index 8a77775e3..7dc1e731c 100644 --- a/Signal/test/Models/AccountManagerTest.swift +++ b/Signal/test/Models/AccountManagerTest.swift @@ -32,7 +32,7 @@ class FailingTSAccountManager: TSAccountManager { failure(VerificationFailedError()) } - override func registerForPushNotifications(pushToken: String, voipToken: String, success successHandler: @escaping () -> Void, failure failureHandler: @escaping (Error) -> Void) { + override func registerForPushNotifications(pushToken: String, voipToken: String, isForcedUpdate: Bool, success successHandler: @escaping () -> Void, failure failureHandler: @escaping (Error) -> Void) { if pushToken == PushNotificationRequestResult.FailTSOnly.rawValue || pushToken == PushNotificationRequestResult.FailBoth.rawValue { failureHandler(OWSErrorMakeUnableToProcessServerResponseError()) } else { @@ -145,7 +145,7 @@ class AccountManagerTest: SignalBaseTest { let expectation = self.expectation(description: "should fail") firstly { - accountManager.updatePushTokens(pushToken: PushNotificationRequestResult.FailTSOnly.rawValue, voipToken: "whatever") + accountManager.updatePushTokens(pushToken: PushNotificationRequestResult.FailTSOnly.rawValue, voipToken: "whatever", isForcedUpdate: false) }.done { XCTFail("Expected to fail.") }.catch { _ in diff --git a/SignalServiceKit/src/Loki/Crypto/ProofOfWork.swift b/SignalServiceKit/src/Loki/API/Crypto/ProofOfWork.swift similarity index 100% rename from SignalServiceKit/src/Loki/Crypto/ProofOfWork.swift rename to SignalServiceKit/src/Loki/API/Crypto/ProofOfWork.swift diff --git a/SignalServiceKit/src/Loki/API/LokiAPI.swift b/SignalServiceKit/src/Loki/API/LokiAPI.swift index 53c313b90..d428ed3bf 100644 --- a/SignalServiceKit/src/Loki/API/LokiAPI.swift +++ b/SignalServiceKit/src/Loki/API/LokiAPI.swift @@ -27,13 +27,14 @@ public final class LokiAPI : NSObject { public static let errorHandlingQueue = DispatchQueue(label: "LokiAPI.errorHandlingQueue") // MARK: Settings - private static let useOnionRequests = true private static let maxRetryCount: UInt = 4 private static let defaultTimeout: TimeInterval = 20 private static let longPollingTimeout: TimeInterval = 40 private static var userIDScanLimit: UInt = 4096 internal static var powDifficulty: UInt = 1 + /// - Note: Changing this on the fly is not recommended. + internal static var useOnionRequests = true // MARK: Nested Types public typealias RawResponse = Any diff --git a/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPITests.swift b/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPITests.swift index a89955bb3..164bcc9b8 100644 --- a/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPITests.swift +++ b/SignalServiceKit/src/Loki/API/Onion Requests/OnionRequestAPITests.swift @@ -4,50 +4,21 @@ import PromiseKit import XCTest class OnionRequestAPITests : XCTestCase { - + private let maxRetryCount: UInt = 2 // Be a bit more stringent when testing + private let testPublicKey = "0501da4723331eb54aaa9a6753a0a59f762103de63f1dc40879cb65a5b5f508814" + func testOnionRequestSending() { let semaphore = DispatchSemaphore(value: 0) - var totalSuccessRate: Double = 0 - let testCount = 10 - LokiAPI.getRandomSnode().then(on: OnionRequestAPI.workQueue) { snode -> Promise in - print("[Loki] [Onion Request API] Target snode: \(snode).") - return OnionRequestAPI.getPath(excluding: snode).map(on: OnionRequestAPI.workQueue) { _ in snode } // Ensure we only build a path once - }.done(on: OnionRequestAPI.workQueue) { snode in - var successCount = 0 - let promises: [Promise] = (0...pending() - OnionRequestAPI.sendOnionRequest(invoking: .getSwarm, on: snode, with: parameters, associatedWith: mockSessionID).done(on: OnionRequestAPI.workQueue) { json in - successCount += 1 - print("[Loki] [Onion Request API] Onion request succeeded with result: \(json.prettifiedDescription).") - seal.fulfill(()) - }.catch(on: OnionRequestAPI.workQueue) { error in - if case GCM.Error.fail = error { - print("[Loki] [Onion Request API] Onion request failed due to a decryption error.") - } else { - print("[Loki] [Onion Request API] Onion request failed due to error: \(error).") - } - seal.reject(error) - }.finally(on: OnionRequestAPI.workQueue) { - let currentSuccessRate = min((100 * Double(successCount)) / Double(testCount), 100) - print("[Loki] [Onion Request API] Current onion request success rate: \(String(format: "%.1f", currentSuccessRate))%.") - } - return promise - } - when(resolved: promises).done(on: OnionRequestAPI.workQueue) { _ in - totalSuccessRate = min((100 * Double(successCount)) / Double(testCount), 100) - semaphore.signal() - } - }.catch(on: OnionRequestAPI.workQueue) { error in - print("[Loki] [Onion Request API] Path building failed due to error: \(error).") + var error: Error? = nil + LokiAPI.useOnionRequests = true + let _ = attempt(maxRetryCount: maxRetryCount, recoveringOn: LokiAPI.workQueue) { [testPublicKey = self.testPublicKey] in + LokiAPI.getSwarm(for: testPublicKey) + }.done(on: LokiAPI.workQueue) { _ in semaphore.signal() + }.catch(on: LokiAPI.workQueue) { + error = $0; semaphore.signal() } semaphore.wait() - print("[Loki] [Onion Request API] Total onion request success rate: \(String(format: "%.1f", totalSuccessRate))%.") - XCTAssert(totalSuccessRate >= 90) + XCTAssert(error == nil) } - - // TODO: Test error handling - // TODO: Test race condition handling } diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChat.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChat.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChat.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChat.swift diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatAPI.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatAPI.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatAPI.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatAPI.swift diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatInfo.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatInfo.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatInfo.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatInfo.swift diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatManager.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatManager.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatManager.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatManager.swift diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatMessage.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatMessage.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatMessage.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatMessage.swift diff --git a/SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatPoller.swift b/SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatPoller.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/Public Chats/LokiPublicChatPoller.swift rename to SignalServiceKit/src/Loki/API/Open Groups/LokiPublicChatPoller.swift diff --git a/SignalServiceKit/src/Loki/API/HTTP/HTTP.swift b/SignalServiceKit/src/Loki/API/Utilities/HTTP.swift similarity index 100% rename from SignalServiceKit/src/Loki/API/HTTP/HTTP.swift rename to SignalServiceKit/src/Loki/API/Utilities/HTTP.swift diff --git a/SignalServiceKit/src/Loki/Messaging/ContactParser.swift b/SignalServiceKit/src/Loki/Protocol/ContactParser.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/ContactParser.swift rename to SignalServiceKit/src/Loki/Protocol/ContactParser.swift diff --git a/SignalServiceKit/src/Loki/Messaging/ExpiringFriendRequestFinder.swift b/SignalServiceKit/src/Loki/Protocol/ExpiringFriendRequestFinder.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/ExpiringFriendRequestFinder.swift rename to SignalServiceKit/src/Loki/Protocol/ExpiringFriendRequestFinder.swift diff --git a/SignalServiceKit/src/Loki/Messaging/FriendRequestExpirationJob.swift b/SignalServiceKit/src/Loki/Protocol/FriendRequestExpirationJob.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/FriendRequestExpirationJob.swift rename to SignalServiceKit/src/Loki/Protocol/FriendRequestExpirationJob.swift diff --git a/SignalServiceKit/src/Loki/Messaging/GroupParser.swift b/SignalServiceKit/src/Loki/Protocol/GroupParser.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/GroupParser.swift rename to SignalServiceKit/src/Loki/Protocol/GroupParser.swift diff --git a/SignalServiceKit/src/Loki/Messaging/LokiMessageWrapper.swift b/SignalServiceKit/src/Loki/Protocol/LokiMessageWrapper.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/LokiMessageWrapper.swift rename to SignalServiceKit/src/Loki/Protocol/LokiMessageWrapper.swift diff --git a/SignalServiceKit/src/Loki/Database/LokiSessionResetImplementation.swift b/SignalServiceKit/src/Loki/Protocol/LokiSessionResetImplementation.swift similarity index 100% rename from SignalServiceKit/src/Loki/Database/LokiSessionResetImplementation.swift rename to SignalServiceKit/src/Loki/Protocol/LokiSessionResetImplementation.swift diff --git a/SignalServiceKit/src/Loki/Messaging/Mention.swift b/SignalServiceKit/src/Loki/Protocol/Mention.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Mention.swift rename to SignalServiceKit/src/Loki/Protocol/Mention.swift diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKAddressMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKAddressMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKAddressMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKAddressMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKAddressMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKAddressMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKAddressMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKAddressMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKDeviceLinkMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKDeviceLinkMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKDeviceLinkMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKDeviceLinkMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKDeviceLinkMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKDeviceLinkMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKDeviceLinkMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKDeviceLinkMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKEphemeralMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKEphemeralMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKEphemeralMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKEphemeralMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKEphemeralMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKEphemeralMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKEphemeralMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKEphemeralMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKFriendRequestMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKFriendRequestMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKFriendRequestMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKFriendRequestMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKFriendRequestMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKFriendRequestMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKFriendRequestMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKFriendRequestMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRequestMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRequestMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRequestMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRequestMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRequestMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRequestMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRequestMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRequestMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRestoreMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRestoreMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRestoreMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRestoreMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRestoreMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRestoreMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSessionRestoreMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSessionRestoreMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSyncOpenGroupsMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSyncOpenGroupsMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSyncOpenGroupsMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSyncOpenGroupsMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKSyncOpenGroupsMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKSyncOpenGroupsMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKSyncOpenGroupsMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKSyncOpenGroupsMessage.m diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKUnlinkDeviceMessage.h b/SignalServiceKit/src/Loki/Protocol/Message Types/LKUnlinkDeviceMessage.h similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKUnlinkDeviceMessage.h rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKUnlinkDeviceMessage.h diff --git a/SignalServiceKit/src/Loki/Messaging/Message Types/LKUnlinkDeviceMessage.m b/SignalServiceKit/src/Loki/Protocol/Message Types/LKUnlinkDeviceMessage.m similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/Message Types/LKUnlinkDeviceMessage.m rename to SignalServiceKit/src/Loki/Protocol/Message Types/LKUnlinkDeviceMessage.m diff --git a/SignalServiceKit/src/Loki/Multi Device/DeviceLink.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLink.swift similarity index 100% rename from SignalServiceKit/src/Loki/Multi Device/DeviceLink.swift rename to SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLink.swift diff --git a/SignalServiceKit/src/Loki/Multi Device/DeviceLinkingSession.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingSession.swift similarity index 100% rename from SignalServiceKit/src/Loki/Multi Device/DeviceLinkingSession.swift rename to SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingSession.swift diff --git a/SignalServiceKit/src/Loki/Multi Device/DeviceLinkingSessionDelegate.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingSessionDelegate.swift similarity index 100% rename from SignalServiceKit/src/Loki/Multi Device/DeviceLinkingSessionDelegate.swift rename to SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingSessionDelegate.swift diff --git a/SignalServiceKit/src/Loki/Multi Device/DeviceLinkingUtilities.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingUtilities.swift similarity index 100% rename from SignalServiceKit/src/Loki/Multi Device/DeviceLinkingUtilities.swift rename to SignalServiceKit/src/Loki/Protocol/Multi Device/DeviceLinkingUtilities.swift diff --git a/SignalServiceKit/src/Loki/Messaging/SSKProtoEnvelope+Loki.swift b/SignalServiceKit/src/Loki/Protocol/SSKProtoEnvelope+Loki.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/SSKProtoEnvelope+Loki.swift rename to SignalServiceKit/src/Loki/Protocol/SSKProtoEnvelope+Loki.swift diff --git a/SignalServiceKit/src/Loki/Messaging/SSKProtoPrekeyBundleMessage+Loki.swift b/SignalServiceKit/src/Loki/Protocol/SSKProtoPrekeyBundleMessage+Loki.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/SSKProtoPrekeyBundleMessage+Loki.swift rename to SignalServiceKit/src/Loki/Protocol/SSKProtoPrekeyBundleMessage+Loki.swift diff --git a/SignalServiceKit/src/Loki/Messaging/SessionProtocol+Receiving.swift b/SignalServiceKit/src/Loki/Protocol/SessionProtocol+Receiving.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/SessionProtocol+Receiving.swift rename to SignalServiceKit/src/Loki/Protocol/SessionProtocol+Receiving.swift diff --git a/SignalServiceKit/src/Loki/Messaging/SessionProtocol+Sending.swift b/SignalServiceKit/src/Loki/Protocol/SessionProtocol+Sending.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/SessionProtocol+Sending.swift rename to SignalServiceKit/src/Loki/Protocol/SessionProtocol+Sending.swift diff --git a/SignalServiceKit/src/Loki/Messaging/SessionProtocol.swift b/SignalServiceKit/src/Loki/Protocol/SessionProtocol.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/SessionProtocol.swift rename to SignalServiceKit/src/Loki/Protocol/SessionProtocol.swift diff --git a/SignalServiceKit/src/Loki/Messaging/TTL.swift b/SignalServiceKit/src/Loki/Protocol/TTL.swift similarity index 100% rename from SignalServiceKit/src/Loki/Messaging/TTL.swift rename to SignalServiceKit/src/Loki/Protocol/TTL.swift diff --git a/SignalServiceKit/src/Loki/Crypto/ECKeyPair+Loki.swift b/SignalServiceKit/src/Loki/Utilities/ECKeyPair+Hexadecimal.swift similarity index 100% rename from SignalServiceKit/src/Loki/Crypto/ECKeyPair+Loki.swift rename to SignalServiceKit/src/Loki/Utilities/ECKeyPair+Hexadecimal.swift