Merge pull request #477 from SimplyDanny/use-protonmail-gopenpgp
Use ProtonMail's GopenPGP library
This commit is contained in:
commit
75332270d6
6 changed files with 158 additions and 49 deletions
|
|
@ -46,9 +46,9 @@ For more, please read the [wiki page](https://github.com/mssun/passforios/wiki).
|
||||||
|
|
||||||
## Building Pass for iOS
|
## Building Pass for iOS
|
||||||
|
|
||||||
1. Install libtool, automake, cmake, carthage, cocoapods, and go: `brew install libtool automake cmake carthage cocoapods go@1.14 swiftlint swiftformat`. At the moment, the project does not build with current version of go (1.15). Use 1.14
|
1. Install Libtool, Automake, CMake, Carthage, CocoaPods, Go, SwiftLint, and SwiftFormat: `brew install libtool automake cmake carthage cocoapods go swiftlint swiftformat`.
|
||||||
2. Install dependencies via Carthage in the project root directory: `./scripts/wcarthage update` then `./scripts/wcarthage bootstrap --platform iOS`. This may take some time.
|
2. Install dependencies via Carthage. Therefore, execute `./scripts/wcarthage update` and `./scripts/wcarthage bootstrap --platform iOS` in the root directory of the project. This may take some time.
|
||||||
3. Run `./scripts/gopenpgp_build.sh` to build go dependencies.
|
3. Run `./scripts/gopenpgp_build.sh` to build GopenPGP.
|
||||||
4. Install dependencies via CocoaPods in the project root directory: `pod install`.
|
4. Install dependencies via CocoaPods in the project root directory: `pod install`.
|
||||||
5. Open the `pass.xcworkspace` file in Xcode.
|
5. Open the `pass.xcworkspace` file in Xcode.
|
||||||
6. Build & Run.
|
6. Build & Run.
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@
|
||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 46;
|
objectVersion = 52;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
116F7CC922E134FA003B3BAC /* Crypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 116F7CC822E134FA003B3BAC /* Crypto.framework */; };
|
30052851267E9138003E2003 /* Gopenpgp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30052850267E9138003E2003 /* Gopenpgp.xcframework */; };
|
||||||
116F7CCA22E134FA003B3BAC /* Crypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 116F7CC822E134FA003B3BAC /* Crypto.framework */; };
|
30052853267E914C003E2003 /* Gopenpgp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30052850267E9138003E2003 /* Gopenpgp.xcframework */; };
|
||||||
300713C52219D54100F553AC /* AutoCellHeightUITableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300713C42219D54100F553AC /* AutoCellHeightUITableViewController.swift */; };
|
300713C52219D54100F553AC /* AutoCellHeightUITableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300713C42219D54100F553AC /* AutoCellHeightUITableViewController.swift */; };
|
||||||
301F6463216162550071A4CE /* AdditionField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 301F6462216162550071A4CE /* AdditionField.swift */; };
|
301F6463216162550071A4CE /* AdditionField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 301F6462216162550071A4CE /* AdditionField.swift */; };
|
||||||
301F6468216165290071A4CE /* ConstantsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 301F6467216165290071A4CE /* ConstantsTest.swift */; };
|
301F6468216165290071A4CE /* ConstantsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 301F6467216165290071A4CE /* ConstantsTest.swift */; };
|
||||||
|
|
@ -286,6 +286,8 @@
|
||||||
116F7CC822E134FA003B3BAC /* Crypto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Crypto.framework; path = go/dist/Crypto.framework; sourceTree = "<group>"; };
|
116F7CC822E134FA003B3BAC /* Crypto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Crypto.framework; path = go/dist/Crypto.framework; sourceTree = "<group>"; };
|
||||||
134DA5B66070BA56678688CF /* Pods_passKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_passKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
134DA5B66070BA56678688CF /* Pods_passKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_passKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
14E955B67C88672AA3A40BA0 /* Pods_passExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_passExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
14E955B67C88672AA3A40BA0 /* Pods_passExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_passExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
3005284A267E5FCF003E2003 /* Gopenpgp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Gopenpgp.xcframework; path = go/gopenpgp/dist/Gopenpgp.xcframework; sourceTree = "<group>"; };
|
||||||
|
30052850267E9138003E2003 /* Gopenpgp.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Gopenpgp.xcframework; path = go/dist/Gopenpgp.xcframework; sourceTree = "<group>"; };
|
||||||
300713C42219D54100F553AC /* AutoCellHeightUITableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoCellHeightUITableViewController.swift; sourceTree = "<group>"; };
|
300713C42219D54100F553AC /* AutoCellHeightUITableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoCellHeightUITableViewController.swift; sourceTree = "<group>"; };
|
||||||
301F6462216162550071A4CE /* AdditionField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionField.swift; sourceTree = "<group>"; };
|
301F6462216162550071A4CE /* AdditionField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionField.swift; sourceTree = "<group>"; };
|
||||||
301F6467216165290071A4CE /* ConstantsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConstantsTest.swift; sourceTree = "<group>"; };
|
301F6467216165290071A4CE /* ConstantsTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConstantsTest.swift; sourceTree = "<group>"; };
|
||||||
|
|
@ -506,7 +508,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
E813E400BBF3E7E8975EBAEF /* Pods_passKit.framework in Frameworks */,
|
E813E400BBF3E7E8975EBAEF /* Pods_passKit.framework in Frameworks */,
|
||||||
116F7CCA22E134FA003B3BAC /* Crypto.framework in Frameworks */,
|
30052853267E914C003E2003 /* Gopenpgp.xcframework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|
@ -545,10 +547,10 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
A239F5902158C07D00576CBF /* AuthenticationServices.framework in Frameworks */,
|
A239F5902158C07D00576CBF /* AuthenticationServices.framework in Frameworks */,
|
||||||
116F7CC922E134FA003B3BAC /* Crypto.framework in Frameworks */,
|
|
||||||
A260758D1EEC6F34005DB03E /* passKit.framework in Frameworks */,
|
A260758D1EEC6F34005DB03E /* passKit.framework in Frameworks */,
|
||||||
DCC408C71E307DBB00F29B0E /* SVProgressHUD.framework in Frameworks */,
|
DCC408C71E307DBB00F29B0E /* SVProgressHUD.framework in Frameworks */,
|
||||||
3EA2386CD0E9CE2A702A0B3E /* Pods_pass.framework in Frameworks */,
|
3EA2386CD0E9CE2A702A0B3E /* Pods_pass.framework in Frameworks */,
|
||||||
|
30052851267E9138003E2003 /* Gopenpgp.xcframework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|
@ -1023,6 +1025,8 @@
|
||||||
DC917BED1E2F38C4000FDF54 /* Frameworks */ = {
|
DC917BED1E2F38C4000FDF54 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
3005284A267E5FCF003E2003 /* Gopenpgp.xcframework */,
|
||||||
|
30052850267E9138003E2003 /* Gopenpgp.xcframework */,
|
||||||
A239F58F2158C07D00576CBF /* AuthenticationServices.framework */,
|
A239F58F2158C07D00576CBF /* AuthenticationServices.framework */,
|
||||||
DCA671DE1E7A73B100D3ABE1 /* OneTimePassword.framework */,
|
DCA671DE1E7A73B100D3ABE1 /* OneTimePassword.framework */,
|
||||||
A262A58C1E68749C006B0890 /* Base32.framework */,
|
A262A58C1E68749C006B0890 /* Base32.framework */,
|
||||||
|
|
@ -1883,7 +1887,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
|
|
@ -1912,7 +1920,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforios.shortcuts;
|
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforios.shortcuts;
|
||||||
|
|
@ -1983,7 +1995,8 @@
|
||||||
PRODUCT_NAME = "Pass Beta";
|
PRODUCT_NAME = "Pass Beta";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
||||||
|
|
@ -2011,7 +2024,10 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = pass/Info.plist;
|
INFOPLIST_FILE = pass/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
@ -2037,7 +2053,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passTests/Info.plist;
|
INFOPLIST_FILE = passTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2063,7 +2083,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passExtension/Info.plist;
|
INFOPLIST_FILE = passExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
@ -2135,7 +2159,11 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2160,7 +2188,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforiosbeta.auto-fill-credential-extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforiosbeta.auto-fill-credential-extension";
|
||||||
|
|
@ -2189,7 +2221,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforiosbeta.shortcuts;
|
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforiosbeta.shortcuts;
|
||||||
|
|
@ -2217,7 +2253,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
|
|
@ -2247,7 +2287,11 @@
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforios.auto-fill-credential-extension";
|
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforios.auto-fill-credential-extension";
|
||||||
|
|
@ -2362,7 +2406,11 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2384,7 +2432,11 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passKitTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2410,7 +2462,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passExtension/Info.plist;
|
INFOPLIST_FILE = passExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
@ -2442,7 +2498,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passExtension/Info.plist;
|
INFOPLIST_FILE = passExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@executable_path/../../Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
@ -2467,7 +2527,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passTests/Info.plist;
|
INFOPLIST_FILE = passTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2486,7 +2550,11 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = passTests/Info.plist;
|
INFOPLIST_FILE = passTests/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
"@loader_path/Frameworks",
|
||||||
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER).passTests";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
|
|
@ -2625,7 +2693,8 @@
|
||||||
PRODUCT_NAME = Pass;
|
PRODUCT_NAME = Pass;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
STRIP_INSTALLED_PRODUCT = NO;
|
STRIP_INSTALLED_PRODUCT = NO;
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
||||||
|
|
@ -2653,7 +2722,10 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = pass/Info.plist;
|
INFOPLIST_FILE = pass/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
@ -2690,7 +2762,10 @@
|
||||||
HEADER_SEARCH_PATHS = "$(inherited)";
|
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||||
INFOPLIST_FILE = pass/Info.plist;
|
INFOPLIST_FILE = pass/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
||||||
MARKETING_VERSION = 0.12.0;
|
MARKETING_VERSION = 0.12.0;
|
||||||
OTHER_CFLAGS = "$(inherited)";
|
OTHER_CFLAGS = "$(inherited)";
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@
|
||||||
// Copyright © 2019 Bob Sun. All rights reserved.
|
// Copyright © 2019 Bob Sun. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Crypto
|
import Gopenpgp
|
||||||
|
|
||||||
struct GopenPGPInterface: PGPInterface {
|
struct GopenPGPInterface: PGPInterface {
|
||||||
private static let errorMapping: [String: Error] = [
|
private static let errorMapping: [String: Error] = [
|
||||||
"gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure": AppError.wrongPassphrase,
|
"gopenpgp: error in unlocking key: openpgp: invalid data: private key checksum failure": AppError.wrongPassphrase,
|
||||||
"openpgp: incorrect key": AppError.keyExpiredOrIncompatible,
|
"gopenpgp: error in reading message: openpgp: incorrect key": AppError.keyExpiredOrIncompatible,
|
||||||
]
|
]
|
||||||
|
|
||||||
private var publicKeys: [String: CryptoKey] = [:]
|
private var publicKeys: [String: CryptoKey] = [:]
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import XCTest
|
||||||
|
|
||||||
// swiftformat:disable:next sortedImports
|
// swiftformat:disable:next sortedImports
|
||||||
@testable import passKit
|
@testable import passKit
|
||||||
@testable import Crypto
|
@testable import Gopenpgp
|
||||||
|
|
||||||
class CryptoFrameworkTest: XCTestCase {
|
class CryptoFrameworkTest: XCTestCase {
|
||||||
private typealias MessageConverter = (CryptoPGPMessage, NSErrorPointer) -> CryptoPGPMessage?
|
private typealias MessageConverter = (CryptoPGPMessage, NSErrorPointer) -> CryptoPGPMessage?
|
||||||
|
|
|
||||||
32
patch/gnu-dummy.patch
Normal file
32
patch/gnu-dummy.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
diff --git a/crypto/key.go b/crypto/key.go
|
||||||
|
index 49af11e..fd59ec4 100644
|
||||||
|
--- a/crypto/key.go
|
||||||
|
+++ b/crypto/key.go
|
||||||
|
@@ -150,10 +150,12 @@ func (key *Key) Unlock(passphrase []byte) (*Key, error) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
- err = unlockedKey.entity.PrivateKey.Decrypt(passphrase)
|
||||||
|
- if err != nil {
|
||||||
|
- return nil, errors.Wrap(err, "gopenpgp: error in unlocking key")
|
||||||
|
- }
|
||||||
|
+ if !unlockedKey.entity.PrivateKey.Dummy() {
|
||||||
|
+ err = unlockedKey.entity.PrivateKey.Decrypt(passphrase)
|
||||||
|
+ if err != nil {
|
||||||
|
+ return nil, errors.Wrap(err, "gopenpgp: error in unlocking key")
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
for _, sub := range unlockedKey.entity.Subkeys {
|
||||||
|
if sub.PrivateKey != nil {
|
||||||
|
@@ -286,6 +288,10 @@ func (key *Key) IsLocked() (bool, error) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if key.entity.PrivateKey.Dummy() {
|
||||||
|
+ return true, nil
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return key.entity.PrivateKey.Encrypted, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -2,27 +2,29 @@
|
||||||
|
|
||||||
set -euox pipefail
|
set -euox pipefail
|
||||||
|
|
||||||
|
GOPENPGP_VERSION="v2.1.10"
|
||||||
|
|
||||||
export GOPATH="$(pwd)/go"
|
export GOPATH="$(pwd)/go"
|
||||||
export PATH="$PATH:$GOPATH/bin"
|
export PATH="$PATH:$GOPATH/bin"
|
||||||
|
|
||||||
PACKAGE_PATH="github.com/mssun/gopenpgp"
|
OUTPUT_PATH="go/dist"
|
||||||
GOPENPGP_REVISION="gnu-dummy"
|
CHECKOUT_PATH="go/checkout"
|
||||||
OUTPUT_PATH="$GOPATH/dist"
|
GOPENPGP_PATH="$CHECKOUT_PATH/gopenpgp"
|
||||||
|
|
||||||
mkdir -p "$GOPATH"
|
|
||||||
|
|
||||||
go get golang.org/x/mobile/cmd/gomobile || true
|
|
||||||
( cd "$GOPATH/src/golang.org/x/mobile/cmd/gomobile" && git checkout 0df4eb2385467a487d418c6358313e9e838256ae )
|
|
||||||
GO111MODULE=on go get golang.org/x/mobile/cmd/gomobile@0df4eb2385467a487d418c6358313e9e838256ae || true
|
|
||||||
GO111MODULE=on go get golang.org/x/mobile/cmd/gobind@0df4eb2385467a487d418c6358313e9e838256ae || true
|
|
||||||
go get -u "$PACKAGE_PATH" || true
|
|
||||||
|
|
||||||
mkdir -p "$GOPATH/src/github.com/ProtonMail"
|
|
||||||
ln -f -s "$GOPATH/src/$PACKAGE_PATH" "$GOPATH/src/github.com/ProtonMail/gopenpgp"
|
|
||||||
|
|
||||||
( cd "$GOPATH/src/$PACKAGE_PATH" && git checkout "$GOPENPGP_REVISION" && GO111MODULE=on go mod vendor )
|
|
||||||
|
|
||||||
mkdir -p "$OUTPUT_PATH"
|
mkdir -p "$OUTPUT_PATH"
|
||||||
|
mkdir -p "$CHECKOUT_PATH"
|
||||||
|
|
||||||
|
go env -w GO111MODULE=auto
|
||||||
|
go get golang.org/x/mobile/cmd/gomobile
|
||||||
|
gomobile init
|
||||||
|
|
||||||
|
git clone --depth 1 --branch "$GOPENPGP_VERSION" git@github.com:ProtonMail/gopenpgp.git "$GOPENPGP_PATH"
|
||||||
|
|
||||||
|
git apply patch/gnu-dummy.patch --directory "$GOPENPGP_PATH"
|
||||||
|
|
||||||
|
sed -i '' 's/build android/echo "Skipping Android build."/g' "$GOPENPGP_PATH/build.sh"
|
||||||
|
|
||||||
|
(cd "$GOPENPGP_PATH" && ./build.sh)
|
||||||
|
|
||||||
|
cp -R "$GOPENPGP_PATH/dist/Gopenpgp.xcframework" "$OUTPUT_PATH"
|
||||||
|
|
||||||
"$GOPATH/bin/gomobile" bind -v -ldflags="-s -w" -target ios -o "${OUTPUT_PATH}/Crypto.framework" \
|
|
||||||
"$PACKAGE_PATH"/{crypto,armor,constants,models,subtle}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue