Added lokikit

This commit is contained in:
Mikunj 2019-05-03 11:21:47 +10:00
parent a57edaf66f
commit c02ae62a8d
26 changed files with 818 additions and 82 deletions

50
LokiKit/LokiKit.podspec Normal file
View File

@ -0,0 +1,50 @@
#
# Be sure to run `pod spec lint LokiKit.podspec' to ensure this is a
# valid spec and to remove all comments including this before submitting the spec.
#
# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#
Pod::Spec.new do |s|
s.name = "LokiKit"
s.version = "0.0.1"
s.summary = "A library used to add loki functionality to the messenger"
s.description = <<-DESC
A library used to add loki functionality to the messenger
DESC
s.homepage = "https://loki.network/"
s.license = "GPLv3"
s.source = { :path => '.' }
# s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.author = { "Loki Network" => "team@loki.network" }
s.platform = :ios, '9.0'
s.requires_arc = true
s.source_files = 'src/**/*.{h,m,mm,swift}'
# We want to use modules to avoid clobbering CocoaLumberjack macros defined
# by other OWS modules which *also* import CocoaLumberjack. But because we
# also use Objective-C++, modules are disabled unless we explicitly enable
# them
# s.compiler_flags = "-fcxx-modules"
# s.prefix_header_file = 'SignalServiceKit/src/TSPrefix.h'
# s.xcconfig = { 'OTHER_CFLAGS' => '$(inherited) -DSQLITE_HAS_CODEC' }
# s.resources = ["SignalServiceKit/Resources/Certificates/*"]
s.dependency 'Curve25519Kit'
s.dependency 'CryptoSwift'
s.dependency 'SignalCoreKit'
s.test_spec 'Tests' do |test_spec|
test_spec.source_files = 'LokiKitTests/**/*.{h,m,swift}'
end
end

View File

@ -0,0 +1,579 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
24B23964227BBA2D008EFC1C /* LokiKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24B2395A227BBA2D008EFC1C /* LokiKit.framework */; };
24B23969227BBA2D008EFC1C /* LokiKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B23968227BBA2D008EFC1C /* LokiKitTests.swift */; };
24B2396B227BBA2D008EFC1C /* LokiKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 24B2395D227BBA2D008EFC1C /* LokiKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
24B23981227BBA8C008EFC1C /* ECKeyPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 24B23976227BBA8C008EFC1C /* ECKeyPair.h */; settings = {ATTRIBUTES = (Public, ); }; };
24B23982227BBA8C008EFC1C /* ECKeyPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B23977227BBA8C008EFC1C /* ECKeyPair.swift */; };
24B23983227BBA8C008EFC1C /* japanese.txt in Resources */ = {isa = PBXBuildFile; fileRef = 24B23979227BBA8C008EFC1C /* japanese.txt */; };
24B23984227BBA8C008EFC1C /* Mnemonic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B2397A227BBA8C008EFC1C /* Mnemonic.swift */; };
24B23985227BBA8C008EFC1C /* english.txt in Resources */ = {isa = PBXBuildFile; fileRef = 24B2397B227BBA8C008EFC1C /* english.txt */; };
24B23986227BBA8C008EFC1C /* spanish.txt in Resources */ = {isa = PBXBuildFile; fileRef = 24B2397C227BBA8C008EFC1C /* spanish.txt */; };
24B23987227BBA8C008EFC1C /* portuguese.txt in Resources */ = {isa = PBXBuildFile; fileRef = 24B2397D227BBA8C008EFC1C /* portuguese.txt */; };
24B23988227BBA8C008EFC1C /* ProofOfWork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B2397E227BBA8C008EFC1C /* ProofOfWork.swift */; };
24B23989227BBA8C008EFC1C /* ECKeyPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 24B2397F227BBA8C008EFC1C /* ECKeyPair.m */; };
F61025585B2E8A504887E1F9 /* Pods_LokiKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 090A2756AF3B96A1A6F7208C /* Pods_LokiKit.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
24B23965227BBA2D008EFC1C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 24B23951227BBA2D008EFC1C /* Project object */;
proxyType = 1;
remoteGlobalIDString = 24B23959227BBA2D008EFC1C;
remoteInfo = LokiKit;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
090A2756AF3B96A1A6F7208C /* Pods_LokiKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LokiKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
24B2395A227BBA2D008EFC1C /* LokiKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LokiKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
24B2395D227BBA2D008EFC1C /* LokiKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LokiKit.h; sourceTree = "<group>"; };
24B2395E227BBA2D008EFC1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
24B23963227BBA2D008EFC1C /* LokiKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LokiKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
24B23968227BBA2D008EFC1C /* LokiKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LokiKitTests.swift; sourceTree = "<group>"; };
24B2396A227BBA2D008EFC1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
24B23976227BBA8C008EFC1C /* ECKeyPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ECKeyPair.h; sourceTree = "<group>"; };
24B23977227BBA8C008EFC1C /* ECKeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ECKeyPair.swift; sourceTree = "<group>"; };
24B23979227BBA8C008EFC1C /* japanese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = japanese.txt; sourceTree = "<group>"; };
24B2397A227BBA8C008EFC1C /* Mnemonic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = "<group>"; };
24B2397B227BBA8C008EFC1C /* english.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = english.txt; sourceTree = "<group>"; };
24B2397C227BBA8C008EFC1C /* spanish.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = spanish.txt; sourceTree = "<group>"; };
24B2397D227BBA8C008EFC1C /* portuguese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = portuguese.txt; sourceTree = "<group>"; };
24B2397E227BBA8C008EFC1C /* ProofOfWork.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProofOfWork.swift; sourceTree = "<group>"; };
24B2397F227BBA8C008EFC1C /* ECKeyPair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ECKeyPair.m; sourceTree = "<group>"; };
24B2398B227BBB21008EFC1C /* LokiKit.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; fileEncoding = 4; path = LokiKit.podspec; sourceTree = SOURCE_ROOT; };
24B2398E227BBEDA008EFC1C /* CryptoSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CryptoSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; };
24B23990227BBEDC008EFC1C /* Curve25519Kit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Curve25519Kit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
24B23992227BBEE2008EFC1C /* SignalServiceKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SignalServiceKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D5C29CCA1A7CDF6063649ED2 /* Pods-LokiKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LokiKit.release.xcconfig"; path = "../Pods/Target Support Files/Pods-LokiKit/Pods-LokiKit.release.xcconfig"; sourceTree = "<group>"; };
E08CB8D0C89F4717B2D51D41 /* Pods-LokiKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LokiKit.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-LokiKit/Pods-LokiKit.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
24B23957227BBA2D008EFC1C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
F61025585B2E8A504887E1F9 /* Pods_LokiKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
24B23960227BBA2D008EFC1C /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
24B23964227BBA2D008EFC1C /* LokiKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
24B23950227BBA2D008EFC1C = {
isa = PBXGroup;
children = (
24B2395C227BBA2D008EFC1C /* LokiKit */,
24B23967227BBA2D008EFC1C /* LokiKitTests */,
24B2395B227BBA2D008EFC1C /* Products */,
24B2398D227BBED9008EFC1C /* Frameworks */,
E103B305EE1E5ECDD2D72DDC /* Pods */,
);
sourceTree = "<group>";
};
24B2395B227BBA2D008EFC1C /* Products */ = {
isa = PBXGroup;
children = (
24B2395A227BBA2D008EFC1C /* LokiKit.framework */,
24B23963227BBA2D008EFC1C /* LokiKitTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
24B2395C227BBA2D008EFC1C /* LokiKit */ = {
isa = PBXGroup;
children = (
24B2398A227BBB14008EFC1C /* Pod */,
24B23974227BBA8C008EFC1C /* src */,
24B2395D227BBA2D008EFC1C /* LokiKit.h */,
24B2395E227BBA2D008EFC1C /* Info.plist */,
);
path = LokiKit;
sourceTree = "<group>";
};
24B23967227BBA2D008EFC1C /* LokiKitTests */ = {
isa = PBXGroup;
children = (
24B23968227BBA2D008EFC1C /* LokiKitTests.swift */,
24B2396A227BBA2D008EFC1C /* Info.plist */,
);
path = LokiKitTests;
sourceTree = "<group>";
};
24B23974227BBA8C008EFC1C /* src */ = {
isa = PBXGroup;
children = (
24B23976227BBA8C008EFC1C /* ECKeyPair.h */,
24B23977227BBA8C008EFC1C /* ECKeyPair.swift */,
24B23978227BBA8C008EFC1C /* Mnemonic */,
24B2397E227BBA8C008EFC1C /* ProofOfWork.swift */,
24B2397F227BBA8C008EFC1C /* ECKeyPair.m */,
);
path = src;
sourceTree = "<group>";
};
24B23978227BBA8C008EFC1C /* Mnemonic */ = {
isa = PBXGroup;
children = (
24B23979227BBA8C008EFC1C /* japanese.txt */,
24B2397A227BBA8C008EFC1C /* Mnemonic.swift */,
24B2397B227BBA8C008EFC1C /* english.txt */,
24B2397C227BBA8C008EFC1C /* spanish.txt */,
24B2397D227BBA8C008EFC1C /* portuguese.txt */,
);
path = Mnemonic;
sourceTree = "<group>";
};
24B2398A227BBB14008EFC1C /* Pod */ = {
isa = PBXGroup;
children = (
24B2398B227BBB21008EFC1C /* LokiKit.podspec */,
);
name = Pod;
sourceTree = "<group>";
};
24B2398D227BBED9008EFC1C /* Frameworks */ = {
isa = PBXGroup;
children = (
24B23992227BBEE2008EFC1C /* SignalServiceKit.framework */,
24B23990227BBEDC008EFC1C /* Curve25519Kit.framework */,
24B2398E227BBEDA008EFC1C /* CryptoSwift.framework */,
090A2756AF3B96A1A6F7208C /* Pods_LokiKit.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
E103B305EE1E5ECDD2D72DDC /* Pods */ = {
isa = PBXGroup;
children = (
E08CB8D0C89F4717B2D51D41 /* Pods-LokiKit.debug.xcconfig */,
D5C29CCA1A7CDF6063649ED2 /* Pods-LokiKit.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
24B23955227BBA2D008EFC1C /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
24B23981227BBA8C008EFC1C /* ECKeyPair.h in Headers */,
24B2396B227BBA2D008EFC1C /* LokiKit.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
24B23959227BBA2D008EFC1C /* LokiKit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24B2396E227BBA2D008EFC1C /* Build configuration list for PBXNativeTarget "LokiKit" */;
buildPhases = (
3BE8E7BCCD2DD9377DDC1A50 /* [CP] Check Pods Manifest.lock */,
24B23955227BBA2D008EFC1C /* Headers */,
24B23956227BBA2D008EFC1C /* Sources */,
24B23957227BBA2D008EFC1C /* Frameworks */,
24B23958227BBA2D008EFC1C /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = LokiKit;
productName = LokiKit;
productReference = 24B2395A227BBA2D008EFC1C /* LokiKit.framework */;
productType = "com.apple.product-type.framework";
};
24B23962227BBA2D008EFC1C /* LokiKitTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24B23971227BBA2D008EFC1C /* Build configuration list for PBXNativeTarget "LokiKitTests" */;
buildPhases = (
24B2395F227BBA2D008EFC1C /* Sources */,
24B23960227BBA2D008EFC1C /* Frameworks */,
24B23961227BBA2D008EFC1C /* Resources */,
);
buildRules = (
);
dependencies = (
24B23966227BBA2D008EFC1C /* PBXTargetDependency */,
);
name = LokiKitTests;
productName = LokiKitTests;
productReference = 24B23963227BBA2D008EFC1C /* LokiKitTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
24B23951227BBA2D008EFC1C /* Project object */ = {
isa = PBXProject;
attributes = {
DefaultBuildSystemTypeForWorkspace = Original;
LastSwiftUpdateCheck = 1020;
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "loki network";
TargetAttributes = {
24B23959227BBA2D008EFC1C = {
CreatedOnToolsVersion = 10.2.1;
};
24B23962227BBA2D008EFC1C = {
CreatedOnToolsVersion = 10.2.1;
};
};
};
buildConfigurationList = 24B23954227BBA2D008EFC1C /* Build configuration list for PBXProject "LokiKit" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 24B23950227BBA2D008EFC1C;
productRefGroup = 24B2395B227BBA2D008EFC1C /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
24B23959227BBA2D008EFC1C /* LokiKit */,
24B23962227BBA2D008EFC1C /* LokiKitTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
24B23958227BBA2D008EFC1C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24B23983227BBA8C008EFC1C /* japanese.txt in Resources */,
24B23986227BBA8C008EFC1C /* spanish.txt in Resources */,
24B23985227BBA8C008EFC1C /* english.txt in Resources */,
24B23987227BBA8C008EFC1C /* portuguese.txt in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
24B23961227BBA2D008EFC1C /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
3BE8E7BCCD2DD9377DDC1A50 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-LokiKit-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
24B23956227BBA2D008EFC1C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24B23984227BBA8C008EFC1C /* Mnemonic.swift in Sources */,
24B23988227BBA8C008EFC1C /* ProofOfWork.swift in Sources */,
24B23982227BBA8C008EFC1C /* ECKeyPair.swift in Sources */,
24B23989227BBA8C008EFC1C /* ECKeyPair.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
24B2395F227BBA2D008EFC1C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24B23969227BBA2D008EFC1C /* LokiKitTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
24B23966227BBA2D008EFC1C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 24B23959227BBA2D008EFC1C /* LokiKit */;
targetProxy = 24B23965227BBA2D008EFC1C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
24B2396C227BBA2D008EFC1C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
24B2396D227BBA2D008EFC1C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
24B2396F227BBA2D008EFC1C /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E08CB8D0C89F4717B2D51D41 /* Pods-LokiKit.debug.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = LokiKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-network.Loki-Messenger.LokiKit";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
24B23970227BBA2D008EFC1C /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D5C29CCA1A7CDF6063649ED2 /* Pods-LokiKit.release.xcconfig */;
buildSettings = {
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = LokiKit/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-network.Loki-Messenger.LokiKit";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
24B23972227BBA2D008EFC1C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = LokiKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-network.Loki-Messenger.LokiKitTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
24B23973227BBA2D008EFC1C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = LokiKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-network.Loki-Messenger.LokiKitTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
24B23954227BBA2D008EFC1C /* Build configuration list for PBXProject "LokiKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24B2396C227BBA2D008EFC1C /* Debug */,
24B2396D227BBA2D008EFC1C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
24B2396E227BBA2D008EFC1C /* Build configuration list for PBXNativeTarget "LokiKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24B2396F227BBA2D008EFC1C /* Debug */,
24B23970227BBA2D008EFC1C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
24B23971227BBA2D008EFC1C /* Build configuration list for PBXNativeTarget "LokiKitTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24B23972227BBA2D008EFC1C /* Debug */,
24B23973227BBA2D008EFC1C /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 24B23951227BBA2D008EFC1C /* Project object */;
}

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
</dict>
</plist>

16
LokiKit/LokiKit/LokiKit.h Normal file
View File

@ -0,0 +1,16 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for LokiKit.
FOUNDATION_EXPORT double LokiKitVersionNumber;
//! Project version string for LokiKit.
FOUNDATION_EXPORT const unsigned char LokiKitVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <LokiKit/PublicHeader.h>
#import "ECKeyPair.h"

View File

@ -1,4 +1,5 @@
#import "ECKeyPair.h"
#import <SignalCoreKit/OWSAsserts.h>
extern void curve25519_donna(unsigned char *output, const unsigned char *a, const unsigned char *b);

View File

@ -1,5 +1,5 @@
extension ECKeyPair {
public extension ECKeyPair {
var hexEncodedPrivateKey: String {
return privateKey.map { String(format: "%02hhx", $0) }.joined()

View File

@ -1,16 +1,16 @@
import CryptoSwift
/// Based on [mnemonic.js](https://github.com/loki-project/loki-messenger/blob/development/libloki/modules/mnemonic.js) .
enum Mnemonic {
public enum Mnemonic {
struct Language : Hashable {
public struct Language : Hashable {
let filename: String
let prefixLength: Int
static let english = Language(filename: "english", prefixLength: 3)
static let japanese = Language(filename: "japanese", prefixLength: 3)
static let portuguese = Language(filename: "portuguese", prefixLength: 4)
static let spanish = Language(filename: "spanish", prefixLength: 4)
public static let english = Language(filename: "english", prefixLength: 3)
public static let japanese = Language(filename: "japanese", prefixLength: 3)
public static let portuguese = Language(filename: "portuguese", prefixLength: 4)
public static let spanish = Language(filename: "spanish", prefixLength: 4)
private static var wordSetCache: [Language:[String]] = [:]
private static var truncatedWordSetCache: [Language:[String]] = [:]
@ -43,10 +43,10 @@ enum Mnemonic {
}
}
enum DecodingError : Error {
public enum DecodingError : Error {
case generic, inputTooShort, missingLastWord, invalidWord, verificationFailed
var description: String {
public var description: String {
switch self {
case .generic: return NSLocalizedString("Something went wrong. Please check your mnemonic and try again.", comment: "")
case .inputTooShort: return NSLocalizedString("Looks like you didn't enter enough words. Please check your mnemonic and try again.", comment: "")
@ -57,7 +57,7 @@ enum Mnemonic {
}
}
static func encode(hexEncodedString string: String, language: Language = .english) -> String {
public static func encode(hexEncodedString string: String, language: Language = .english) -> String {
var string = string
let wordSet = language.loadWordSet()
let prefixLength = language.prefixLength
@ -87,7 +87,7 @@ enum Mnemonic {
return result.joined(separator: " ")
}
static func decode(mnemonic: String, language: Language = .english) throws -> String {
public static func decode(mnemonic: String, language: Language = .english) throws -> String {
var words = mnemonic.split(separator: " ").map { String($0) }
let truncatedWordSet = language.loadTruncatedWordSet()
let prefixLength = language.prefixLength

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -0,0 +1,30 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
import XCTest
@testable import LokiKit
class LokiKitTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}

19
Podfile
View File

@ -5,6 +5,12 @@ use_frameworks!
def shared_pods
###
# Loki Kit
###
pod 'LokiKit', path: './LokiKit', testspecs: ["Tests"]
###
# OWS Pods
###
@ -64,7 +70,12 @@ def shared_pods
pod 'CryptoSwift', :inhibit_warnings => true
end
workspace 'Signal'
project 'Signal'
project 'LokiKit/LokiKit'
target 'Signal' do
project 'Signal'
shared_pods
pod 'SSZipArchive', :inhibit_warnings => true
@ -74,13 +85,21 @@ target 'Signal' do
end
target 'SignalShareExtension' do
project 'Signal'
shared_pods
end
target 'SignalMessaging' do
project 'Signal'
shared_pods
end
target 'LokiKit' do
project 'LokiKit/LokiKit'
pod 'Curve25519Kit', git: 'https://github.com/signalapp/Curve25519Kit', testspecs: ["Tests"]
pod 'CryptoSwift', :inhibit_warnings => true
end
post_install do |installer|
enable_extension_support_for_purelayout(installer)
end

View File

@ -44,6 +44,14 @@ PODS:
- CocoaLumberjack
- SignalCoreKit
- libPhoneNumber-iOS (0.9.13)
- LokiKit (0.0.1):
- CryptoSwift
- Curve25519Kit
- SignalCoreKit
- LokiKit/Tests (0.0.1):
- CryptoSwift
- Curve25519Kit
- SignalCoreKit
- Mantle (2.1.0):
- Mantle/extobjc (= 2.1.0)
- Mantle/extobjc (2.1.0)
@ -86,6 +94,7 @@ PODS:
- Curve25519Kit
- GRKOpenSSLFramework
- libPhoneNumber-iOS
- LokiKit
- Mantle
- PromiseKit (~> 6.0)
- Reachability
@ -102,6 +111,7 @@ PODS:
- Curve25519Kit
- GRKOpenSSLFramework
- libPhoneNumber-iOS
- LokiKit
- Mantle
- PromiseKit (~> 6.0)
- Reachability
@ -195,6 +205,8 @@ DEPENDENCIES:
- GRKOpenSSLFramework (from `https://github.com/signalapp/GRKOpenSSLFramework`)
- HKDFKit (from `https://github.com/signalapp/HKDFKit.git`)
- HKDFKit/Tests (from `https://github.com/signalapp/HKDFKit.git`)
- LokiKit (from `./LokiKit`)
- LokiKit/Tests (from `./LokiKit`)
- Mantle (from `https://github.com/signalapp/Mantle`, branch `signal-master`)
- PromiseKit (= 6.5.3)
- PureLayout
@ -236,6 +248,8 @@ EXTERNAL SOURCES:
:git: https://github.com/signalapp/GRKOpenSSLFramework
HKDFKit:
:git: https://github.com/signalapp/HKDFKit.git
LokiKit:
:path: "./LokiKit"
Mantle:
:branch: signal-master
:git: https://github.com/signalapp/Mantle
@ -290,6 +304,7 @@ SPEC CHECKSUMS:
GRKOpenSSLFramework: 8a3735ad41e7dc1daff460467bccd32ca5d6ae3e
HKDFKit: 3b6dbbb9d59c221cc6c52c3aa915700cbf24e376
libPhoneNumber-iOS: e444379ac18bbfbdefad571da735b2cd7e096caa
LokiKit: e18a5ac18b9f2b788b0fa7d0619d9a2a0511dd54
Mantle: 2fa750afa478cd625a94230fbf1c13462f29395b
PromiseKit: c609029bdd801f792551a504c695c7d3098b42cd
PureLayout: f08c01b8dec00bb14a1fefa3de4c7d9c265df85e
@ -297,7 +312,7 @@ SPEC CHECKSUMS:
SAMKeychain: 483e1c9f32984d50ca961e26818a534283b4cd5c
SignalCoreKit: c2d8132cdedb95d35eb2f8ae7eac0957695d0a8b
SignalMetadataKit: 6fa5e9a53c7f104568662521a2f3874672ff7a02
SignalServiceKit: c637b66e485538dda76836a1ec560dc556035430
SignalServiceKit: 81b569196f3da6c3964f33b688f7b9ea2bc9a271
SQLCipher: efbdb52cdbe340bcd892b1b14297df4e07241b7f
SSZipArchive: cefe1364104a0231268a5deb8495bdf2861f52f0
Starscream: ef3ece99d765eeccb67de105bfa143f929026cf5
@ -305,6 +320,6 @@ SPEC CHECKSUMS:
YapDatabase: b418a4baa6906e8028748938f9159807fd039af4
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
PODFILE CHECKSUM: 71de0ab6116c92a1a144e5889d07cc57a0d61f77
PODFILE CHECKSUM: f115e396f48fe7258fe9ef23b31730a26cf2c17d
COCOAPODS: 1.5.3

View File

@ -7,7 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
242D3F4B227966A30035F945 /* ProofOfWork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 242D3F4A227966A20035F945 /* ProofOfWork.swift */; };
247A8440227BC43F0057C088 /* LokiMessagingAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 247A843F227BC43F0057C088 /* LokiMessagingAPI.swift */; };
2AE2882E4C2B96BFFF9EE27C /* Pods_SignalShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F94C85CB0B235DA37F68ED0 /* Pods_SignalShareExtension.framework */; };
3403B95D20EA9527001A1F44 /* OWSContactShareButtonsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3403B95B20EA9526001A1F44 /* OWSContactShareButtonsView.m */; };
34074F61203D0CBE004596AE /* OWSSounds.m in Sources */ = {isa = PBXBuildFile; fileRef = 34074F5F203D0CBD004596AE /* OWSSounds.m */; };
@ -558,14 +558,6 @@
B6FE7EB71ADD62FA00A6D22F /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6FE7EB61ADD62FA00A6D22F /* PushKit.framework */; };
B821F2F82272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B821F2F72272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift */; };
B821F2FA2272CEEE002C88C0 /* OnboardingKeyPairViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B821F2F92272CEEE002C88C0 /* OnboardingKeyPairViewController.swift */; };
B8DC3D7722795E2400D909D6 /* ECKeyPair.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */; };
B8DC3D7822795E2400D909D6 /* ECKeyPair.m in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7522795E2300D909D6 /* ECKeyPair.m */; };
B8DC3D7922795E2400D909D6 /* LokiMessagingAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DC3D7622795E2400D909D6 /* LokiMessagingAPI.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 */; };
@ -660,7 +652,7 @@
0F94C85CB0B235DA37F68ED0 /* Pods_SignalShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SignalShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; };
1C93CF3971B64E8B6C1F9AC1 /* Pods-SignalShareExtension.test.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalShareExtension.test.xcconfig"; path = "Pods/Target Support Files/Pods-SignalShareExtension/Pods-SignalShareExtension.test.xcconfig"; sourceTree = "<group>"; };
1CE3CD5C23334683BDD3D78C /* Pods-Signal.test.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Signal.test.xcconfig"; path = "Pods/Target Support Files/Pods-Signal/Pods-Signal.test.xcconfig"; sourceTree = "<group>"; };
242D3F4A227966A20035F945 /* ProofOfWork.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProofOfWork.swift; sourceTree = "<group>"; };
247A843F227BC43F0057C088 /* LokiMessagingAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LokiMessagingAPI.swift; sourceTree = "<group>"; };
264242150E87D10A357DB07B /* Pods_SignalMessaging.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SignalMessaging.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3403B95B20EA9526001A1F44 /* OWSContactShareButtonsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSContactShareButtonsView.m; sourceTree = "<group>"; };
3403B95C20EA9527001A1F44 /* OWSContactShareButtonsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSContactShareButtonsView.h; sourceTree = "<group>"; };
@ -1351,15 +1343,6 @@
B6FE7EB61ADD62FA00A6D22F /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; };
B821F2F72272CED3002C88C0 /* OnboardingAccountDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingAccountDetailsViewController.swift; sourceTree = "<group>"; };
B821F2F92272CEEE002C88C0 /* OnboardingKeyPairViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingKeyPairViewController.swift; sourceTree = "<group>"; };
B8DC3D7322795E2300D909D6 /* ECKeyPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ECKeyPair.h; sourceTree = "<group>"; };
B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ECKeyPair.swift; sourceTree = "<group>"; };
B8DC3D7522795E2300D909D6 /* ECKeyPair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ECKeyPair.m; sourceTree = "<group>"; };
B8DC3D7622795E2400D909D6 /* LokiMessagingAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LokiMessagingAPI.swift; sourceTree = "<group>"; };
B8DC3D7B22795E4000D909D6 /* portuguese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = portuguese.txt; sourceTree = "<group>"; };
B8DC3D7C22795E4000D909D6 /* spanish.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = spanish.txt; sourceTree = "<group>"; };
B8DC3D7D22795E4000D909D6 /* Mnemonic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = "<group>"; };
B8DC3D7E22795E4000D909D6 /* english.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = english.txt; sourceTree = "<group>"; };
B8DC3D7F22795E4000D909D6 /* japanese.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = japanese.txt; sourceTree = "<group>"; };
B90418E4183E9DD40038554A /* DateUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateUtil.h; sourceTree = "<group>"; };
B90418E5183E9DD40038554A /* DateUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateUtil.m; sourceTree = "<group>"; };
B97940251832BD2400BD66CB /* UIUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIUtil.h; sourceTree = "<group>"; };
@ -1473,6 +1456,14 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
247A843E227BC4260057C088 /* LokiUtil */ = {
isa = PBXGroup;
children = (
247A843F227BC43F0057C088 /* LokiMessagingAPI.swift */,
);
path = LokiUtil;
sourceTree = "<group>";
};
34074F54203D0722004596AE /* Sounds */ = {
isa = PBXGroup;
children = (
@ -2435,9 +2426,10 @@
isa = PBXGroup;
children = (
4CC1ECFA211A553000CC13BE /* AppUpdateNag.swift */,
B90418E4183E9DD40038554A /* DateUtil.h */,
3496956121A301A100DCFE74 /* Backup */,
B90418E4183E9DD40038554A /* DateUtil.h */,
B90418E5183E9DD40038554A /* DateUtil.m */,
247A843E227BC4260057C088 /* LokiUtil */,
34B0796C1FCF46B000E248C2 /* MainAppContext.h */,
34B0796B1FCF46B000E248C2 /* MainAppContext.m */,
34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */,
@ -2612,35 +2604,9 @@
name = Translations;
sourceTree = "<group>";
};
B8DC3D7222795D7000D909D6 /* LokiKit */ = {
isa = PBXGroup;
children = (
B8DC3D7A22795E2C00D909D6 /* Mnemonic */,
B8DC3D7322795E2300D909D6 /* ECKeyPair.h */,
B8DC3D7522795E2300D909D6 /* ECKeyPair.m */,
B8DC3D7422795E2300D909D6 /* ECKeyPair.swift */,
B8DC3D7622795E2400D909D6 /* LokiMessagingAPI.swift */,
242D3F4A227966A20035F945 /* ProofOfWork.swift */,
);
path = LokiKit;
sourceTree = "<group>";
};
B8DC3D7A22795E2C00D909D6 /* Mnemonic */ = {
isa = PBXGroup;
children = (
B8DC3D7E22795E4000D909D6 /* english.txt */,
B8DC3D7F22795E4000D909D6 /* japanese.txt */,
B8DC3D7B22795E4000D909D6 /* portuguese.txt */,
B8DC3D7C22795E4000D909D6 /* spanish.txt */,
B8DC3D7D22795E4000D909D6 /* Mnemonic.swift */,
);
path = Mnemonic;
sourceTree = "<group>";
};
D221A07E169C9E5E00537ABF = {
isa = PBXGroup;
children = (
B8DC3D7222795D7000D909D6 /* LokiKit */,
D221A093169C9E5E00537ABF /* Signal */,
453518691FC635DD00210559 /* SignalShareExtension */,
453518931FC63DBF00210559 /* SignalMessaging */,
@ -3139,11 +3105,9 @@
45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */,
45B74A832044AAB600CD42F8 /* circles.aifc in Resources */,
45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */,
B8DC3D8022795E4000D909D6 /* portuguese.txt in Resources */,
4503F1BF20470A5B00CEE724 /* classic.aifc 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 */,
@ -3151,13 +3115,11 @@
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 */,
@ -3291,6 +3253,7 @@
"${BUILT_PRODUCTS_DIR}/Curve25519Kit/Curve25519Kit.framework",
"${PODS_ROOT}/GRKOpenSSLFramework/OpenSSL-iOS/bin/openssl.framework",
"${BUILT_PRODUCTS_DIR}/HKDFKit/HKDFKit.framework",
"${BUILT_PRODUCTS_DIR}/LokiKit/LokiKit.framework",
"${BUILT_PRODUCTS_DIR}/Mantle/Mantle.framework",
"${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework",
"${BUILT_PRODUCTS_DIR}/PureLayout/PureLayout.framework",
@ -3316,6 +3279,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Curve25519Kit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HKDFKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LokiKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mantle.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PromiseKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PureLayout.framework",
@ -3369,6 +3333,7 @@
"${BUILT_PRODUCTS_DIR}/Curve25519Kit/Curve25519Kit.framework",
"${PODS_ROOT}/GRKOpenSSLFramework/OpenSSL-iOS/bin/openssl.framework",
"${BUILT_PRODUCTS_DIR}/HKDFKit/HKDFKit.framework",
"${BUILT_PRODUCTS_DIR}/LokiKit/LokiKit.framework",
"${BUILT_PRODUCTS_DIR}/Mantle/Mantle.framework",
"${BUILT_PRODUCTS_DIR}/PromiseKit/PromiseKit.framework",
"${BUILT_PRODUCTS_DIR}/PureLayout/PureLayout.framework",
@ -3393,6 +3358,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Curve25519Kit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HKDFKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LokiKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mantle.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PromiseKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PureLayout.framework",
@ -3616,7 +3582,6 @@
4C1885D2218F8E1C00B67051 /* PhotoGridViewCell.swift in Sources */,
45C9DEB81DF4E35A0065CA84 /* WebRTCCallMessageHandler.swift in Sources */,
34D1F0501F7D45A60066283D /* GifPickerCell.swift in Sources */,
B8DC3D8222795E4000D909D6 /* Mnemonic.swift in Sources */,
3496957421A301A100DCFE74 /* OWSBackupAPI.swift in Sources */,
34D99C931F2937CC00D284D6 /* OWSAnalytics.swift in Sources */,
340FC8B8204DAC8D007AEB0F /* AddToGroupViewController.m in Sources */,
@ -3627,7 +3592,6 @@
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 */,
@ -3644,7 +3608,6 @@
34D2CCE0206939B400CB1A14 /* DebugUIMessagesAssetLoader.m in Sources */,
4CEB78C92178EBAB00F315D2 /* OWSSessionResetJobRecord.m in Sources */,
45794E861E00620000066731 /* CallUIAdapter.swift in Sources */,
242D3F4B227966A30035F945 /* ProofOfWork.swift in Sources */,
340FC8BA204DAC8D007AEB0F /* FingerprintViewScanController.m in Sources */,
4585C4681ED8F8D200896AEA /* SafetyNumberConfirmationAlert.swift in Sources */,
4C20B2B920CA10DE001BAC90 /* ConversationSearchViewController.swift in Sources */,
@ -3781,7 +3744,6 @@
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 */,
@ -3803,13 +3765,13 @@
45A663C51F92EC760027B59E /* GroupTableViewCell.swift in Sources */,
34CA631B2097806F00E526A0 /* OWSContactShareView.m in Sources */,
34D1F0861F8678AA0066283D /* ConversationViewController.m in Sources */,
247A8440227BC43F0057C088 /* LokiMessagingAPI.swift in Sources */,
3427C64320F500E000EEC730 /* OWSMessageTimerView.m in Sources */,
B90418E6183E9DD40038554A /* DateUtil.m in Sources */,
3448E15E221333F5004B052E /* OnboardingController.swift in Sources */,
340FC8BD204DAC8D007AEB0F /* ShowGroupMembersViewController.m in Sources */,
3496956F21A301A100DCFE74 /* OWSBackupLazyRestore.swift in Sources */,
459311FC1D75C948008DD4F0 /* OWSDeviceTableViewCell.m in Sources */,
B8DC3D7922795E2400D909D6 /* LokiMessagingAPI.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -33,7 +33,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -56,7 +56,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -87,7 +87,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>

View File

@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -28,12 +28,26 @@
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "EF7BE58B1F949AF31E4AF4FD37150A86"
BlueprintIdentifier = "8024A845D71A933F07AA4079CF96AE25"
BuildableName = "SignalServiceKit.framework"
BlueprintName = "SignalServiceKit"
ReferencedContainer = "container:Pods/Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "24B23959227BBA2D008EFC1C"
BuildableName = "LokiKit.framework"
BlueprintName = "LokiKit"
ReferencedContainer = "container:LokiKit/LokiKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
@ -56,7 +70,7 @@
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "2349E04BB99C0118E8F578CCBEAAC665"
BlueprintIdentifier = "26B0AF7907EE4C623117FF4DF3F64EF6"
BuildableName = "SignalServiceKit-Unit-Tests.xctest"
BlueprintName = "SignalServiceKit-Unit-Tests"
ReferencedContainer = "container:Pods/Pods.xcodeproj">
@ -117,7 +131,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -152,7 +166,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -193,7 +207,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>

View File

@ -30,7 +30,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -72,7 +72,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>
@ -92,7 +92,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "D221A088169C9E5E00537ABF"
BuildableName = "Signal.app"
BuildableName = "Session.app"
BlueprintName = "Signal"
ReferencedContainer = "container:Signal.xcodeproj">
</BuildableReference>

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:LokiKit/LokiKit.xcodeproj">
</FileRef>
<FileRef
location = "group:Signal.xcodeproj">
</FileRef>

View File

@ -17,7 +17,6 @@
#import "DateUtil.h"
#import "DebugUIPage.h"
#import "DebugUITableViewController.h"
#import "ECKeyPair.h"
#import "FingerprintViewController.h"
#import "HomeViewCell.h"
#import "HomeViewController.h"
@ -126,3 +125,4 @@
#import <WebRTC/RTCAudioSession.h>
#import <WebRTC/RTCCameraPreviewView.h>
#import <YYImage/YYImage.h>
#import <LokiKit/LokiKit.h>

View File

@ -1,3 +1,4 @@
import LokiKit
final class OnboardingKeyPairViewController : OnboardingBaseViewController {
private var mode: Mode = .register { didSet { if mode != oldValue { handleModeChanged() } } }

View File

@ -1,4 +1,5 @@
import PromiseKit
import LokiKit
public struct LokiMessagingAPI {

View File

@ -52,6 +52,7 @@ An Objective-C library for communicating with the Signal messaging service.
s.dependency 'SwiftProtobuf'
s.dependency 'SignalCoreKit'
s.dependency 'SignalMetadataKit'
s.dependency 'LokiKit'
s.dependency 'PromiseKit', "~> 6.0"