Use ProtonMail's GopenPGP library
This allows for a simpler setup and the usage of a recent version of Go. The library provides a build script which creates an XCFramework containing binaries for multiple target architectures. The gnu-dummy.patch is taken from mssun/gopenpgp. The forks are not needed anymore.
This commit is contained in:
parent
867931ab89
commit
93954f3bec
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
|
||||
|
||||
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
|
||||
2. Install dependencies via Carthage in the project root directory: `./scripts/wcarthage update` then `./scripts/wcarthage bootstrap --platform iOS`. This may take some time.
|
||||
3. Run `./scripts/gopenpgp_build.sh` to build go dependencies.
|
||||
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. 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 GopenPGP.
|
||||
4. Install dependencies via CocoaPods in the project root directory: `pod install`.
|
||||
5. Open the `pass.xcworkspace` file in Xcode.
|
||||
6. Build & Run.
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objectVersion = 52;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
116F7CC922E134FA003B3BAC /* Crypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 116F7CC822E134FA003B3BAC /* Crypto.framework */; };
|
||||
116F7CCA22E134FA003B3BAC /* Crypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 116F7CC822E134FA003B3BAC /* Crypto.framework */; };
|
||||
30052851267E9138003E2003 /* Gopenpgp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30052850267E9138003E2003 /* Gopenpgp.xcframework */; };
|
||||
30052853267E914C003E2003 /* Gopenpgp.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30052850267E9138003E2003 /* Gopenpgp.xcframework */; };
|
||||
300713C52219D54100F553AC /* AutoCellHeightUITableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 300713C42219D54100F553AC /* AutoCellHeightUITableViewController.swift */; };
|
||||
301F6463216162550071A4CE /* AdditionField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 301F6462216162550071A4CE /* AdditionField.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>"; };
|
||||
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; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
|
@ -506,7 +508,7 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E813E400BBF3E7E8975EBAEF /* Pods_passKit.framework in Frameworks */,
|
||||
116F7CCA22E134FA003B3BAC /* Crypto.framework in Frameworks */,
|
||||
30052853267E914C003E2003 /* Gopenpgp.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -545,10 +547,10 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A239F5902158C07D00576CBF /* AuthenticationServices.framework in Frameworks */,
|
||||
116F7CC922E134FA003B3BAC /* Crypto.framework in Frameworks */,
|
||||
A260758D1EEC6F34005DB03E /* passKit.framework in Frameworks */,
|
||||
DCC408C71E307DBB00F29B0E /* SVProgressHUD.framework in Frameworks */,
|
||||
3EA2386CD0E9CE2A702A0B3E /* Pods_pass.framework in Frameworks */,
|
||||
30052851267E9138003E2003 /* Gopenpgp.xcframework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -1023,6 +1025,8 @@
|
|||
DC917BED1E2F38C4000FDF54 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3005284A267E5FCF003E2003 /* Gopenpgp.xcframework */,
|
||||
30052850267E9138003E2003 /* Gopenpgp.xcframework */,
|
||||
A239F58F2158C07D00576CBF /* AuthenticationServices.framework */,
|
||||
DCA671DE1E7A73B100D3ABE1 /* OneTimePassword.framework */,
|
||||
A262A58C1E68749C006B0890 /* Base32.framework */,
|
||||
|
|
@ -1883,7 +1887,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||
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;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
|
|
@ -1912,7 +1920,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||
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;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforios.shortcuts;
|
||||
|
|
@ -1983,7 +1995,8 @@
|
|||
PRODUCT_NAME = "Pass Beta";
|
||||
SDKROOT = iphoneos;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
||||
|
|
@ -2011,7 +2024,10 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = pass/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
@ -2037,7 +2053,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2063,7 +2083,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passExtension/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
@ -2135,7 +2159,11 @@
|
|||
);
|
||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2160,7 +2188,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||
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;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforiosbeta.auto-fill-credential-extension";
|
||||
|
|
@ -2189,7 +2221,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passShortcuts/Info.plist;
|
||||
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;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = me.mssun.passforiosbeta.shortcuts;
|
||||
|
|
@ -2217,7 +2253,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||
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;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
|
|
@ -2247,7 +2287,11 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = passAutoFillExtension/Info.plist;
|
||||
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;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "me.mssun.passforios.auto-fill-credential-extension";
|
||||
|
|
@ -2362,7 +2406,11 @@
|
|||
);
|
||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2384,7 +2432,11 @@
|
|||
);
|
||||
INFOPLIST_FILE = passKitTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2410,7 +2462,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passExtension/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
@ -2442,7 +2498,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passExtension/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
@ -2467,7 +2527,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2486,7 +2550,11 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = passTests/Info.plist;
|
||||
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_NAME = "$(TARGET_NAME)";
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
|
|
@ -2625,7 +2693,8 @@
|
|||
PRODUCT_NAME = Pass;
|
||||
SDKROOT = iphoneos;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
WARNING_CFLAGS = "-Wno-incomplete-umbrella";
|
||||
|
|
@ -2653,7 +2722,10 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = pass/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
@ -2690,7 +2762,10 @@
|
|||
HEADER_SEARCH_PATHS = "$(inherited)";
|
||||
INFOPLIST_FILE = pass/Info.plist;
|
||||
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)";
|
||||
MARKETING_VERSION = 0.12.0;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
// Copyright © 2019 Bob Sun. All rights reserved.
|
||||
//
|
||||
|
||||
import Crypto
|
||||
import Gopenpgp
|
||||
|
||||
struct GopenPGPInterface: PGPInterface {
|
||||
private static let errorMapping: [String: Error] = [
|
||||
"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] = [:]
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import XCTest
|
|||
|
||||
// swiftformat:disable:next sortedImports
|
||||
@testable import passKit
|
||||
@testable import Crypto
|
||||
@testable import Gopenpgp
|
||||
|
||||
class CryptoFrameworkTest: XCTestCase {
|
||||
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
|
||||
|
||||
GOPENPGP_VERSION="v2.1.10"
|
||||
|
||||
export GOPATH="$(pwd)/go"
|
||||
export PATH="$PATH:$GOPATH/bin"
|
||||
|
||||
PACKAGE_PATH="github.com/mssun/gopenpgp"
|
||||
GOPENPGP_REVISION="gnu-dummy"
|
||||
OUTPUT_PATH="$GOPATH/dist"
|
||||
|
||||
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 )
|
||||
OUTPUT_PATH="go/dist"
|
||||
CHECKOUT_PATH="go/checkout"
|
||||
GOPENPGP_PATH="$CHECKOUT_PATH/gopenpgp"
|
||||
|
||||
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