From c1e121b2713d7af908b556e4a86421eceb58d6f6 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Wed, 1 May 2019 15:04:46 +1000 Subject: [PATCH] Create LokiKit --- .../src/Util => LokiKit}/ECKeyPair.h | 0 .../src/Util => LokiKit}/ECKeyPair.m | 8 +-- .../src/Util => LokiKit}/ECKeyPair.swift | 0 .../util => LokiKit/Mnemonic}/Mnemonic.swift | 0 .../mnemonic => LokiKit/Mnemonic}/english.txt | 0 .../Mnemonic}/japanese.txt | 0 .../Mnemonic}/portuguese.txt | 0 .../mnemonic => LokiKit/Mnemonic}/spanish.txt | 0 .../Network/API => LokiKit}/ServiceNode.swift | 3 +- Signal.xcodeproj/project.pbxproj | 72 ++++++++++++------- Signal/src/Signal-Bridging-Header.h | 2 +- 11 files changed, 52 insertions(+), 33 deletions(-) rename {SignalServiceKit/src/Util => LokiKit}/ECKeyPair.h (100%) rename {SignalServiceKit/src/Util => LokiKit}/ECKeyPair.m (76%) rename {SignalServiceKit/src/Util => LokiKit}/ECKeyPair.swift (100%) rename {Signal/src/util => LokiKit/Mnemonic}/Mnemonic.swift (100%) rename {Signal/mnemonic => LokiKit/Mnemonic}/english.txt (100%) rename {Signal/mnemonic => LokiKit/Mnemonic}/japanese.txt (100%) rename {Signal/mnemonic => LokiKit/Mnemonic}/portuguese.txt (100%) rename {Signal/mnemonic => LokiKit/Mnemonic}/spanish.txt (100%) rename {SignalServiceKit/src/Network/API => LokiKit}/ServiceNode.swift (96%) diff --git a/SignalServiceKit/src/Util/ECKeyPair.h b/LokiKit/ECKeyPair.h similarity index 100% rename from SignalServiceKit/src/Util/ECKeyPair.h rename to LokiKit/ECKeyPair.h diff --git a/SignalServiceKit/src/Util/ECKeyPair.m b/LokiKit/ECKeyPair.m similarity index 76% rename from SignalServiceKit/src/Util/ECKeyPair.m rename to LokiKit/ECKeyPair.m index f894a5e60..9a385ff21 100644 --- a/SignalServiceKit/src/Util/ECKeyPair.m +++ b/LokiKit/ECKeyPair.m @@ -6,12 +6,12 @@ extern void curve25519_donna(unsigned char *output, const unsigned char *a, cons + (nonnull ECKeyPair *)generateKeyPairWithHexEncodedPrivateKey:(nonnull NSString *)hexEncodedPrivateKey { NSMutableData *privateKey = [NSMutableData new]; - for (int i = 0; i < hexEncodedPrivateKey.length; i += 2) { + for (NSUInteger i = 0; i < hexEncodedPrivateKey.length; i += 2) { char buffer[3]; - buffer[0] = [hexEncodedPrivateKey characterAtIndex:i]; - buffer[1] = [hexEncodedPrivateKey characterAtIndex:i + 1]; + buffer[0] = (char)[hexEncodedPrivateKey characterAtIndex:i]; + buffer[1] = (char)[hexEncodedPrivateKey characterAtIndex:i + 1]; buffer[2] = '\0'; - unsigned char byte = strtol(buffer, NULL, 16); + unsigned char byte = (unsigned char)strtol(buffer, NULL, 16); [privateKey appendBytes:&byte length:1]; } static const uint8_t basepoint[ECCKeyLength] = { 9 }; diff --git a/SignalServiceKit/src/Util/ECKeyPair.swift b/LokiKit/ECKeyPair.swift similarity index 100% rename from SignalServiceKit/src/Util/ECKeyPair.swift rename to LokiKit/ECKeyPair.swift diff --git a/Signal/src/util/Mnemonic.swift b/LokiKit/Mnemonic/Mnemonic.swift similarity index 100% rename from Signal/src/util/Mnemonic.swift rename to LokiKit/Mnemonic/Mnemonic.swift diff --git a/Signal/mnemonic/english.txt b/LokiKit/Mnemonic/english.txt similarity index 100% rename from Signal/mnemonic/english.txt rename to LokiKit/Mnemonic/english.txt diff --git a/Signal/mnemonic/japanese.txt b/LokiKit/Mnemonic/japanese.txt similarity index 100% rename from Signal/mnemonic/japanese.txt rename to LokiKit/Mnemonic/japanese.txt diff --git a/Signal/mnemonic/portuguese.txt b/LokiKit/Mnemonic/portuguese.txt similarity index 100% rename from Signal/mnemonic/portuguese.txt rename to LokiKit/Mnemonic/portuguese.txt diff --git a/Signal/mnemonic/spanish.txt b/LokiKit/Mnemonic/spanish.txt similarity index 100% rename from Signal/mnemonic/spanish.txt rename to LokiKit/Mnemonic/spanish.txt diff --git a/SignalServiceKit/src/Network/API/ServiceNode.swift b/LokiKit/ServiceNode.swift similarity index 96% rename from SignalServiceKit/src/Network/API/ServiceNode.swift rename to LokiKit/ServiceNode.swift index 58ed74259..302167228 100644 --- a/SignalServiceKit/src/Network/API/ServiceNode.swift +++ b/LokiKit/ServiceNode.swift @@ -25,7 +25,8 @@ public struct ServiceNode { } public static func sendTestMessage() -> Promise { - let ttl = String(4 * 24 * 60 * 60 * 1000) + let hour = 60 * 60 * 1000 + let ttl = String(4 * 24 * hour) let parameters = [ "pubKey" : "0371e72be8dd42ff77105e474a3ac26a503d017fb4562409c639eaf5965f5b31", // TODO: Receiver's public key "ttl" : ttl, diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 81307478b..c2495d6ab 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -555,14 +555,16 @@ B6B226971BE4B7D200860F4D /* ContactsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6B226961BE4B7D200860F4D /* ContactsUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; B6F509971AA53F760068F56A /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = B6F509951AA53F760068F56A /* Localizable.strings */; }; B6FE7EB71ADD62FA00A6D22F /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6FE7EB61ADD62FA00A6D22F /* PushKit.framework */; }; - B821F2ED2272CBC0002C88C0 /* Mnemonic.swift in Sources */ = {isa = PBXBuildFile; fileRef = B821F2EC2272CBC0002C88C0 /* Mnemonic.swift */; }; - B821F2F32272CCD9002C88C0 /* portuguese.txt in Resources */ = {isa = PBXBuildFile; fileRef = B821F2EF2272CCD9002C88C0 /* portuguese.txt */; }; - B821F2F42272CCD9002C88C0 /* japanese.txt in Resources */ = {isa = PBXBuildFile; fileRef = B821F2F02272CCD9002C88C0 /* japanese.txt */; }; - B821F2F52272CCD9002C88C0 /* spanish.txt in Resources */ = {isa = PBXBuildFile; fileRef = B821F2F12272CCD9002C88C0 /* spanish.txt */; }; - B821F2F62272CCD9002C88C0 /* english.txt in Resources */ = {isa = PBXBuildFile; fileRef = B821F2F22272CCD9002C88C0 /* english.txt */; }; B821F2F82272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B821F2F72272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift */; }; B821F2FA2272CEEE002C88C0 /* OnboardingKeyPairViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B821F2F92272CEEE002C88C0 /* OnboardingKeyPairViewController.swift */; }; - B8C915232277FDC30028E4A9 /* ECKeyPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C915222277FDC30028E4A9 /* ECKeyPair.swift */; }; + B8DC3D7722795E2400D909D6 /* ECKeyPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */; }; + B8DC3D7822795E2400D909D6 /* ECKeyPair.m in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7522795E2300D909D6 /* ECKeyPair.m */; }; + B8DC3D7922795E2400D909D6 /* ServiceNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7622795E2400D909D6 /* ServiceNode.swift */; }; + B8DC3D8022795E4000D909D6 /* portuguese.txt in Resources */ = {isa = PBXBuildFile; fileRef = B8DC3D7B22795E4000D909D6 /* portuguese.txt */; }; + B8DC3D8122795E4000D909D6 /* spanish.txt in Resources */ = {isa = PBXBuildFile; fileRef = B8DC3D7C22795E4000D909D6 /* spanish.txt */; }; + B8DC3D8222795E4000D909D6 /* Mnemonic.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7D22795E4000D909D6 /* Mnemonic.swift */; }; + B8DC3D8322795E4000D909D6 /* english.txt in Resources */ = {isa = PBXBuildFile; fileRef = B8DC3D7E22795E4000D909D6 /* english.txt */; }; + B8DC3D8422795E4000D909D6 /* japanese.txt in Resources */ = {isa = PBXBuildFile; fileRef = B8DC3D7F22795E4000D909D6 /* japanese.txt */; }; B90418E6183E9DD40038554A /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B90418E5183E9DD40038554A /* DateUtil.m */; }; B9EB5ABD1884C002007CBB57 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EB5ABC1884C002007CBB57 /* MessageUI.framework */; }; BFF3FB9730634F37D25903F4 /* Pods_Signal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D17BB5C25D615AB49813100C /* Pods_Signal.framework */; }; @@ -1345,14 +1347,17 @@ B6BC3D0C1AA544B100C2907F /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = translations/da.lproj/Localizable.strings; sourceTree = ""; }; B6F509961AA53F760068F56A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = translations/en.lproj/Localizable.strings; sourceTree = ""; }; B6FE7EB61ADD62FA00A6D22F /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; }; - B821F2EC2272CBC0002C88C0 /* Mnemonic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = ""; }; - B821F2EF2272CCD9002C88C0 /* portuguese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = portuguese.txt; path = mnemonic/portuguese.txt; sourceTree = ""; }; - B821F2F02272CCD9002C88C0 /* japanese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = japanese.txt; path = mnemonic/japanese.txt; sourceTree = ""; }; - B821F2F12272CCD9002C88C0 /* spanish.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = spanish.txt; path = mnemonic/spanish.txt; sourceTree = ""; }; - B821F2F22272CCD9002C88C0 /* english.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = english.txt; path = mnemonic/english.txt; sourceTree = ""; }; B821F2F72272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingAccountDetailsViewController.swift; sourceTree = ""; }; B821F2F92272CEEE002C88C0 /* OnboardingKeyPairViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingKeyPairViewController.swift; sourceTree = ""; }; - B8C915222277FDC30028E4A9 /* ECKeyPair.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ECKeyPair.swift; path = ../../../SignalServiceKit/src/Util/ECKeyPair.swift; sourceTree = ""; }; + B8DC3D7322795E2300D909D6 /* ECKeyPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ECKeyPair.h; sourceTree = ""; }; + B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ECKeyPair.swift; sourceTree = ""; }; + B8DC3D7522795E2300D909D6 /* ECKeyPair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ECKeyPair.m; sourceTree = ""; }; + B8DC3D7622795E2400D909D6 /* ServiceNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceNode.swift; sourceTree = ""; }; + B8DC3D7B22795E4000D909D6 /* portuguese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = portuguese.txt; sourceTree = ""; }; + B8DC3D7C22795E4000D909D6 /* spanish.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = spanish.txt; sourceTree = ""; }; + B8DC3D7D22795E4000D909D6 /* Mnemonic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = ""; }; + B8DC3D7E22795E4000D909D6 /* english.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = english.txt; sourceTree = ""; }; + B8DC3D7F22795E4000D909D6 /* japanese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = japanese.txt; sourceTree = ""; }; B90418E4183E9DD40038554A /* DateUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateUtil.h; sourceTree = ""; }; B90418E5183E9DD40038554A /* DateUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateUtil.m; sourceTree = ""; }; B97940251832BD2400BD66CB /* UIUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIUtil.h; sourceTree = ""; }; @@ -2431,10 +2436,8 @@ B90418E4183E9DD40038554A /* DateUtil.h */, 3496956121A301A100DCFE74 /* Backup */, B90418E5183E9DD40038554A /* DateUtil.m */, - B8C915222277FDC30028E4A9 /* ECKeyPair.swift */, 34B0796C1FCF46B000E248C2 /* MainAppContext.h */, 34B0796B1FCF46B000E248C2 /* MainAppContext.m */, - B821F2EC2272CBC0002C88C0 /* Mnemonic.swift */, 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */, 344825C4211390C700DB4BD8 /* OWSOrphanDataCleaner.h */, 344825C5211390C800DB4BD8 /* OWSOrphanDataCleaner.m */, @@ -2607,20 +2610,34 @@ name = Translations; sourceTree = ""; }; - B821F2EE2272CC39002C88C0 /* mnemonic */ = { + B8DC3D7222795D7000D909D6 /* LokiKit */ = { isa = PBXGroup; children = ( - B821F2F22272CCD9002C88C0 /* english.txt */, - B821F2F02272CCD9002C88C0 /* japanese.txt */, - B821F2EF2272CCD9002C88C0 /* portuguese.txt */, - B821F2F12272CCD9002C88C0 /* spanish.txt */, + B8DC3D7A22795E2C00D909D6 /* Mnemonic */, + B8DC3D7322795E2300D909D6 /* ECKeyPair.h */, + B8DC3D7522795E2300D909D6 /* ECKeyPair.m */, + B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */, + B8DC3D7622795E2400D909D6 /* ServiceNode.swift */, ); - name = mnemonic; + path = LokiKit; + sourceTree = ""; + }; + B8DC3D7A22795E2C00D909D6 /* Mnemonic */ = { + isa = PBXGroup; + children = ( + B8DC3D7E22795E4000D909D6 /* english.txt */, + B8DC3D7F22795E4000D909D6 /* japanese.txt */, + B8DC3D7B22795E4000D909D6 /* portuguese.txt */, + B8DC3D7C22795E4000D909D6 /* spanish.txt */, + B8DC3D7D22795E4000D909D6 /* Mnemonic.swift */, + ); + path = Mnemonic; sourceTree = ""; }; D221A07E169C9E5E00537ABF = { isa = PBXGroup; children = ( + B8DC3D7222795D7000D909D6 /* LokiKit */, D221A093169C9E5E00537ABF /* Signal */, 453518691FC635DD00210559 /* SignalShareExtension */, 453518931FC63DBF00210559 /* SignalMessaging */, @@ -2708,7 +2725,6 @@ 4C6F527B20FFE8400097DEEE /* SignalUBSan.supp */, B6B6C3C419193F5B00C0B76B /* Translations */, D221A099169C9E5E00537ABF /* main.m */, - B821F2EE2272CC39002C88C0 /* mnemonic */, D221A095169C9E5E00537ABF /* Signal-Info.plist */, D221A09B169C9E5E00537ABF /* Signal-Prefix.pch */, ); @@ -3107,7 +3123,6 @@ B10C9B601A7049EC00ECA2BF /* pause_icon@2x.png in Resources */, FC9120411A39EFB70074545C /* qr@2x.png in Resources */, 34CF0787203E6B78005C4D61 /* busy_tone_ansi.caf in Resources */, - B821F2F42272CCD9002C88C0 /* japanese.txt in Resources */, B10C9B5F1A7049EC00ECA2BF /* pause_icon.png in Resources */, AD83FF471A73428300B5C81A /* audio_play_button_blue.png in Resources */, 34330A5E1E787BD800DF2FB9 /* ElegantIcons.ttf in Resources */, @@ -3121,12 +3136,11 @@ 45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */, 45B74A832044AAB600CD42F8 /* circles.aifc in Resources */, 45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */, - B821F2F32272CCD9002C88C0 /* portuguese.txt in Resources */, - B821F2F52272CCD9002C88C0 /* spanish.txt in Resources */, + B8DC3D8022795E4000D909D6 /* portuguese.txt in Resources */, 4503F1BF20470A5B00CEE724 /* classic.aifc in Resources */, - B821F2F62272CCD9002C88C0 /* english.txt in Resources */, 4503F1BE20470A5B00CEE724 /* classic-quiet.aifc in Resources */, 45B74A7E2044AAB600CD42F8 /* complete.aifc in Resources */, + B8DC3D8322795E4000D909D6 /* english.txt in Resources */, 45B74A872044AAB600CD42F8 /* complete-quiet.aifc in Resources */, 45B74A772044AAB600CD42F8 /* hello.aifc in Resources */, 4C61819F219E1796009BD6B5 /* typing-animation-dark.gif in Resources */, @@ -3134,11 +3148,13 @@ 45B74A792044AAB600CD42F8 /* input.aifc in Resources */, 45B74A8C2044AAB600CD42F8 /* input-quiet.aifc in Resources */, 45B74A7A2044AAB600CD42F8 /* keys.aifc in Resources */, + B8DC3D8122795E4000D909D6 /* spanish.txt in Resources */, 45B74A762044AAB600CD42F8 /* keys-quiet.aifc in Resources */, 45B74A862044AAB600CD42F8 /* note.aifc in Resources */, 45B74A7F2044AAB600CD42F8 /* note-quiet.aifc in Resources */, 45B74A842044AAB600CD42F8 /* popcorn.aifc in Resources */, 45B74A7D2044AAB600CD42F8 /* popcorn-quiet.aifc in Resources */, + B8DC3D8422795E4000D909D6 /* japanese.txt in Resources */, 45B74A822044AAB600CD42F8 /* pulse.aifc in Resources */, 34B6A90B218BA1D1007C4606 /* typing-animation.gif in Resources */, 45B74A802044AAB600CD42F8 /* pulse-quiet.aifc in Resources */, @@ -3597,7 +3613,7 @@ 4C1885D2218F8E1C00B67051 /* PhotoGridViewCell.swift in Sources */, 45C9DEB81DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift in Sources */, 34D1F0501F7D45A60066283D /* GifPickerCell.swift in Sources */, - B821F2ED2272CBC0002C88C0 /* Mnemonic.swift in Sources */, + B8DC3D8222795E4000D909D6 /* Mnemonic.swift in Sources */, 3496957421A301A100DCFE74 /* OWSBackupAPI.swift in Sources */, 34D99C931F2937CC00D284D6 /* OWSAnalytics.swift in Sources */, 340FC8B8204DAC8D007AEB0F /* AddToGroupViewController.m in Sources */, @@ -3608,6 +3624,7 @@ 340FC8B4204DAC8D007AEB0F /* OWSBackupSettingsViewController.m in Sources */, 34D1F0871F8678AA0066283D /* ConversationViewItem.m in Sources */, 451A13B11E13DED2000A50FD /* AppNotifications.swift in Sources */, + B8DC3D7822795E2400D909D6 /* ECKeyPair.m in Sources */, 34D99CE4217509C2000AFB39 /* AppEnvironment.swift in Sources */, 348570A820F67575004FF32B /* OWSMessageHeaderView.m in Sources */, 450DF2091E0DD2C6003D14BE /* UserNotificationsAdaptee.swift in Sources */, @@ -3699,7 +3716,6 @@ 3448E16022134C89004B052E /* OnboardingSplashViewController.swift in Sources */, 34B6A903218B3F63007C4606 /* TypingIndicatorView.swift in Sources */, 458E38371D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m in Sources */, - B8C915232277FDC30028E4A9 /* ECKeyPair.swift in Sources */, 34B6A905218B4C91007C4606 /* TypingIndicatorInteraction.swift in Sources */, 4517642B1DE939FD00EDB8B9 /* ContactCell.swift in Sources */, 34EA69402194933900702471 /* MediaDownloadView.swift in Sources */, @@ -3761,6 +3777,7 @@ 340FC8B6204DAC8D007AEB0F /* OWSQRCodeScanningViewController.m in Sources */, 4CB5F26920F7D060004D1B42 /* MessageActions.swift in Sources */, 340FC8B5204DAC8D007AEB0F /* AboutTableViewController.m in Sources */, + B8DC3D7722795E2400D909D6 /* ECKeyPair.swift in Sources */, 34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */, 340FC8B9204DAC8D007AEB0F /* UpdateGroupViewController.m in Sources */, 3448E1662215B313004B052E /* OnboardingCaptchaViewController.swift in Sources */, @@ -3788,6 +3805,7 @@ 340FC8BD204DAC8D007AEB0F /* ShowGroupMembersViewController.m in Sources */, 3496956F21A301A100DCFE74 /* OWSBackupLazyRestore.swift in Sources */, 459311FC1D75C948008DD4F0 /* OWSDeviceTableViewCell.m in Sources */, + B8DC3D7922795E2400D909D6 /* ServiceNode.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h index 3f7d3287f..2f2edc86e 100644 --- a/Signal/src/Signal-Bridging-Header.h +++ b/Signal/src/Signal-Bridging-Header.h @@ -17,6 +17,7 @@ #import "DateUtil.h" #import "DebugUIPage.h" #import "DebugUITableViewController.h" +#import "ECKeyPair.h" #import "FingerprintViewController.h" #import "HomeViewCell.h" #import "HomeViewController.h" @@ -77,7 +78,6 @@ #import #import #import -#import #import #import #import