Просмотр исходного кода

Add CryptoSwift-TestHostApp target

Marcin Krzyżanowski 7 лет назад
Родитель
Сommit
221b1e854b

+ 52 - 0
CryptoSwift-TestHostApp/AppDelegate.swift

@@ -0,0 +1,52 @@
+////  CryptoSwift
+//
+//  Copyright (C) 2014-__YEAR__ Marcin Krzyżanowski <marcin@krzyzanowskim.com>
+//  This software is provided 'as-is', without any express or implied warranty.
+//
+//  In no event will the authors be held liable for any damages arising from the use of this software.
+//
+//  Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+//
+//  - The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.
+//  - Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+//  - This notice may not be removed or altered from any source or binary distribution.
+//
+
+import UIKit
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+
+    var window: UIWindow?
+
+
+    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
+        // Override point for customization after application launch.
+        return true
+    }
+
+    func applicationWillResignActive(_ application: UIApplication) {
+        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
+    }
+
+    func applicationDidEnterBackground(_ application: UIApplication) {
+        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+    }
+
+    func applicationWillEnterForeground(_ application: UIApplication) {
+        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
+    }
+
+    func applicationDidBecomeActive(_ application: UIApplication) {
+        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+    }
+
+    func applicationWillTerminate(_ application: UIApplication) {
+        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+    }
+
+
+}
+

+ 41 - 0
CryptoSwift-TestHostApp/Info.plist

@@ -0,0 +1,41 @@
+<?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>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

+ 31 - 0
CryptoSwift-TestHostApp/ViewController.swift

@@ -0,0 +1,31 @@
+////  CryptoSwift
+//
+//  Copyright (C) 2014-__YEAR__ Marcin Krzyżanowski <marcin@krzyzanowskim.com>
+//  This software is provided 'as-is', without any express or implied warranty.
+//
+//  In no event will the authors be held liable for any damages arising from the use of this software.
+//
+//  Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+//
+//  - The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required.
+//  - Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+//  - This notice may not be removed or altered from any source or binary distribution.
+//
+
+import UIKit
+
+class ViewController: UIViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do any additional setup after loading the view, typically from a nib.
+    }
+
+    override func didReceiveMemoryWarning() {
+        super.didReceiveMemoryWarning()
+        // Dispose of any resources that can be recreated.
+    }
+
+
+}
+

+ 177 - 59
CryptoSwift.xcodeproj/project.pbxproj

@@ -16,27 +16,34 @@
 		750CC3EB1DC0CACE0096BE6E /* BlowfishTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 750CC3EA1DC0CACE0096BE6E /* BlowfishTests.swift */; };
 		750CC3EB1DC0CACE0096BE6E /* BlowfishTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 750CC3EA1DC0CACE0096BE6E /* BlowfishTests.swift */; };
 		75100F8F19B0BC890005C5F5 /* Poly1305Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75100F8E19B0BC890005C5F5 /* Poly1305Tests.swift */; };
 		75100F8F19B0BC890005C5F5 /* Poly1305Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75100F8E19B0BC890005C5F5 /* Poly1305Tests.swift */; };
 		751EE9781F93996100161FFC /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 751EE9771F93996100161FFC /* AES.Cryptors.swift */; };
 		751EE9781F93996100161FFC /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 751EE9771F93996100161FFC /* AES.Cryptors.swift */; };
+		75211F95207249D8004E41F8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75211F94207249D8004E41F8 /* AppDelegate.swift */; };
+		75211F97207249D8004E41F8 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75211F96207249D8004E41F8 /* ViewController.swift */; };
+		75211FB520724A10004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FA520724A0F004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig */; };
+		75211FB620724A10004E41F8 /* Project-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FA620724A0F004E41F8 /* Project-Test.xcconfig */; };
+		75211FB720724A10004E41F8 /* Tests-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FA720724A0F004E41F8 /* Tests-Debug.xcconfig */; };
+		75211FB820724A10004E41F8 /* CryptoSwift-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FA820724A0F004E41F8 /* CryptoSwift-Shared.xcconfig */; };
+		75211FB920724A10004E41F8 /* CryptoSwift-TestHostApp-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FA920724A0F004E41F8 /* CryptoSwift-TestHostApp-Shared.xcconfig */; };
+		75211FBA20724A10004E41F8 /* Project-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAA20724A0F004E41F8 /* Project-Release.xcconfig */; };
+		75211FBB20724A10004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAB20724A0F004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig */; };
+		75211FBC20724A10004E41F8 /* CryptoSwift-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAC20724A0F004E41F8 /* CryptoSwift-Release.xcconfig */; };
+		75211FBD20724A10004E41F8 /* Tests-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAD20724A0F004E41F8 /* Tests-Release.xcconfig */; };
+		75211FBE20724A10004E41F8 /* Tests-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAE20724A10004E41F8 /* Tests-Shared.xcconfig */; };
+		75211FBF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FAF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig */; };
+		75211FC020724A10004E41F8 /* Project-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FB020724A10004E41F8 /* Project-Debug.xcconfig */; };
+		75211FC120724A10004E41F8 /* Tests-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FB120724A10004E41F8 /* Tests-Test.xcconfig */; };
+		75211FC220724A10004E41F8 /* Project-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FB220724A10004E41F8 /* Project-Shared.xcconfig */; };
+		75211FC320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FB320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig */; };
+		75211FC420724A10004E41F8 /* CryptoSwift-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75211FB420724A10004E41F8 /* CryptoSwift-Test.xcconfig */; };
 		7529366A20683DFC00195874 /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7529366920683DFC00195874 /* AEADChaCha20Poly1305.swift */; };
 		7529366A20683DFC00195874 /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7529366920683DFC00195874 /* AEADChaCha20Poly1305.swift */; };
 		753B33011DAB84D600D06422 /* RandomBytesSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753B33001DAB84D600D06422 /* RandomBytesSequenceTests.swift */; };
 		753B33011DAB84D600D06422 /* RandomBytesSequenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753B33001DAB84D600D06422 /* RandomBytesSequenceTests.swift */; };
 		754310442050111A003FB1DF /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754310432050111A003FB1DF /* CompactMap.swift */; };
 		754310442050111A003FB1DF /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754310432050111A003FB1DF /* CompactMap.swift */; };
 		75482EA41CB310B7001F66A5 /* PBKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75482EA31CB310B7001F66A5 /* PBKDF.swift */; };
 		75482EA41CB310B7001F66A5 /* PBKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75482EA31CB310B7001F66A5 /* PBKDF.swift */; };
 		754BE46819693E190098E6F3 /* DigestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754BE46719693E190098E6F3 /* DigestTests.swift */; };
 		754BE46819693E190098E6F3 /* DigestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754BE46719693E190098E6F3 /* DigestTests.swift */; };
 		755FB1DA199E347D00475437 /* ExtensionsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755FB1D9199E347D00475437 /* ExtensionsTest.swift */; };
 		755FB1DA199E347D00475437 /* ExtensionsTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755FB1D9199E347D00475437 /* ExtensionsTest.swift */; };
+		7576F64D20725BD6006688F8 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7576F64C20725BD5006688F8 /* Default-568h@2x.png */; };
 		757DA2531A4ED0A4002BA3EF /* PaddingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */; };
 		757DA2531A4ED0A4002BA3EF /* PaddingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */; };
 		757DA2551A4ED408002BA3EF /* AESTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2541A4ED408002BA3EF /* AESTests.swift */; };
 		757DA2551A4ED408002BA3EF /* AESTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2541A4ED408002BA3EF /* AESTests.swift */; };
 		757DA2591A4ED4D7002BA3EF /* ChaCha20Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */; };
 		757DA2591A4ED4D7002BA3EF /* ChaCha20Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */; };
-		75843EA72072457A0050583A /* Tests-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9B2072457A0050583A /* Tests-Release.xcconfig */; };
-		75843EA82072457A0050583A /* Tests-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9C2072457A0050583A /* Tests-Debug.xcconfig */; };
-		75843EA92072457A0050583A /* Project-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9D2072457A0050583A /* Project-Release.xcconfig */; };
-		75843EAA2072457A0050583A /* Project-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9E2072457A0050583A /* Project-Shared.xcconfig */; };
-		75843EAB2072457A0050583A /* CryptoSwift-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */; };
-		75843EAC2072457A0050583A /* CryptoSwift-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */; };
-		75843EAD2072457A0050583A /* Tests-Shared.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA12072457A0050583A /* Tests-Shared.xcconfig */; };
-		75843EAE2072457A0050583A /* Tests-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA22072457A0050583A /* Tests-Test.xcconfig */; };
-		75843EAF2072457A0050583A /* CryptoSwift-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */; };
-		75843EB02072457A0050583A /* Project-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA42072457A0050583A /* Project-Test.xcconfig */; };
-		75843EB12072457A0050583A /* Project-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA52072457A0050583A /* Project-Debug.xcconfig */; };
-		75843EB22072457A0050583A /* CryptoSwift-Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */; };
 		758A94281A65C59200E46135 /* HMACTests.swift in Resources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		758A94281A65C59200E46135 /* HMACTests.swift in Resources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		758A94291A65C67400E46135 /* HMACTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		758A94291A65C67400E46135 /* HMACTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 758A94271A65C59200E46135 /* HMACTests.swift */; };
 		75B601EB197D6A6C0009B53D /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754BE45519693E190098E6F3 /* CryptoSwift.framework */; };
 		75B601EB197D6A6C0009B53D /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 754BE45519693E190098E6F3 /* CryptoSwift.framework */; };
@@ -181,7 +188,28 @@
 		750CC3EA1DC0CACE0096BE6E /* BlowfishTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlowfishTests.swift; sourceTree = "<group>"; };
 		750CC3EA1DC0CACE0096BE6E /* BlowfishTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlowfishTests.swift; sourceTree = "<group>"; };
 		75100F8E19B0BC890005C5F5 /* Poly1305Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Poly1305Tests.swift; sourceTree = "<group>"; };
 		75100F8E19B0BC890005C5F5 /* Poly1305Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Poly1305Tests.swift; sourceTree = "<group>"; };
 		751EE9771F93996100161FFC /* AES.Cryptors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AES.Cryptors.swift; sourceTree = "<group>"; };
 		751EE9771F93996100161FFC /* AES.Cryptors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AES.Cryptors.swift; sourceTree = "<group>"; };
+		75211F92207249D8004E41F8 /* CryptoSwift-TestHostApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "CryptoSwift-TestHostApp.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+		75211F94207249D8004E41F8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		75211F96207249D8004E41F8 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
+		75211FA0207249D8004E41F8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		75211FA520724A0F004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-TestHostApp-Test.xcconfig"; sourceTree = "<group>"; };
+		75211FA620724A0F004E41F8 /* Project-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Test.xcconfig"; sourceTree = "<group>"; };
+		75211FA720724A0F004E41F8 /* Tests-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Debug.xcconfig"; sourceTree = "<group>"; };
+		75211FA820724A0F004E41F8 /* CryptoSwift-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Shared.xcconfig"; sourceTree = "<group>"; };
+		75211FA920724A0F004E41F8 /* CryptoSwift-TestHostApp-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-TestHostApp-Shared.xcconfig"; sourceTree = "<group>"; };
+		75211FAA20724A0F004E41F8 /* Project-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = "<group>"; };
+		75211FAB20724A0F004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-TestHostApp-Debug.xcconfig"; sourceTree = "<group>"; };
+		75211FAC20724A0F004E41F8 /* CryptoSwift-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Release.xcconfig"; sourceTree = "<group>"; };
+		75211FAD20724A0F004E41F8 /* Tests-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Release.xcconfig"; sourceTree = "<group>"; };
+		75211FAE20724A10004E41F8 /* Tests-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Shared.xcconfig"; sourceTree = "<group>"; };
+		75211FAF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Debug.xcconfig"; sourceTree = "<group>"; };
+		75211FB020724A10004E41F8 /* Project-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = "<group>"; };
+		75211FB120724A10004E41F8 /* Tests-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Test.xcconfig"; sourceTree = "<group>"; };
+		75211FB220724A10004E41F8 /* Project-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Shared.xcconfig"; sourceTree = "<group>"; };
+		75211FB320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-TestHostApp-Release.xcconfig"; sourceTree = "<group>"; };
+		75211FB420724A10004E41F8 /* CryptoSwift-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Test.xcconfig"; sourceTree = "<group>"; };
 		7529366920683DFC00195874 /* AEADChaCha20Poly1305.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AEADChaCha20Poly1305.swift; sourceTree = "<group>"; };
 		7529366920683DFC00195874 /* AEADChaCha20Poly1305.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AEADChaCha20Poly1305.swift; sourceTree = "<group>"; };
+		7536A93E207254A000F39140 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
 		753B33001DAB84D600D06422 /* RandomBytesSequenceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomBytesSequenceTests.swift; sourceTree = "<group>"; };
 		753B33001DAB84D600D06422 /* RandomBytesSequenceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomBytesSequenceTests.swift; sourceTree = "<group>"; };
 		754310432050111A003FB1DF /* CompactMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactMap.swift; sourceTree = "<group>"; };
 		754310432050111A003FB1DF /* CompactMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactMap.swift; sourceTree = "<group>"; };
 		75482EA31CB310B7001F66A5 /* PBKDF.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBKDF.swift; sourceTree = "<group>"; };
 		75482EA31CB310B7001F66A5 /* PBKDF.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PBKDF.swift; sourceTree = "<group>"; };
@@ -192,21 +220,10 @@
 		755D27BC1D06DE6400C41692 /* CryptoSwift.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = CryptoSwift.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
 		755D27BC1D06DE6400C41692 /* CryptoSwift.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = CryptoSwift.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
 		755FB1D9199E347D00475437 /* ExtensionsTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionsTest.swift; sourceTree = "<group>"; };
 		755FB1D9199E347D00475437 /* ExtensionsTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionsTest.swift; sourceTree = "<group>"; };
 		756BFDCA1A82B87300B9D9A4 /* Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bridging.h; sourceTree = "<group>"; };
 		756BFDCA1A82B87300B9D9A4 /* Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Bridging.h; sourceTree = "<group>"; };
+		7576F64C20725BD5006688F8 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
 		757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PaddingTests.swift; sourceTree = "<group>"; };
 		757DA2521A4ED0A4002BA3EF /* PaddingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PaddingTests.swift; sourceTree = "<group>"; };
 		757DA2541A4ED408002BA3EF /* AESTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AESTests.swift; sourceTree = "<group>"; };
 		757DA2541A4ED408002BA3EF /* AESTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AESTests.swift; sourceTree = "<group>"; };
 		757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChaCha20Tests.swift; sourceTree = "<group>"; };
 		757DA2581A4ED4D7002BA3EF /* ChaCha20Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChaCha20Tests.swift; sourceTree = "<group>"; };
-		75843E9B2072457A0050583A /* Tests-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Release.xcconfig"; sourceTree = "<group>"; };
-		75843E9C2072457A0050583A /* Tests-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Debug.xcconfig"; sourceTree = "<group>"; };
-		75843E9D2072457A0050583A /* Project-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = "<group>"; };
-		75843E9E2072457A0050583A /* Project-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Shared.xcconfig"; sourceTree = "<group>"; };
-		75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Shared.xcconfig"; sourceTree = "<group>"; };
-		75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Release.xcconfig"; sourceTree = "<group>"; };
-		75843EA12072457A0050583A /* Tests-Shared.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Shared.xcconfig"; sourceTree = "<group>"; };
-		75843EA22072457A0050583A /* Tests-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tests-Test.xcconfig"; sourceTree = "<group>"; };
-		75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Debug.xcconfig"; sourceTree = "<group>"; };
-		75843EA42072457A0050583A /* Project-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Test.xcconfig"; sourceTree = "<group>"; };
-		75843EA52072457A0050583A /* Project-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = "<group>"; };
-		75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "CryptoSwift-Test.xcconfig"; sourceTree = "<group>"; };
 		758A94271A65C59200E46135 /* HMACTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMACTests.swift; sourceTree = "<group>"; };
 		758A94271A65C59200E46135 /* HMACTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HMACTests.swift; sourceTree = "<group>"; };
 		75C2E76C1D55F097003D2BCA /* Access.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Access.swift; sourceTree = "<group>"; };
 		75C2E76C1D55F097003D2BCA /* Access.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Access.swift; sourceTree = "<group>"; };
 		75EC52381EE8B6CA0048EB3B /* AES.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AES.swift; sourceTree = "<group>"; };
 		75EC52381EE8B6CA0048EB3B /* AES.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AES.swift; sourceTree = "<group>"; };
@@ -277,6 +294,13 @@
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
 /* Begin PBXFrameworksBuildPhase section */
 /* Begin PBXFrameworksBuildPhase section */
+		75211F8F207249D8004E41F8 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		754BE45119693E190098E6F3 /* Frameworks */ = {
 		754BE45119693E190098E6F3 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
@@ -298,10 +322,21 @@
 		24B0BBA29D734E62809E53BC /* Frameworks */ = {
 		24B0BBA29D734E62809E53BC /* Frameworks */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				7536A93E207254A000F39140 /* UIKit.framework */,
 			);
 			);
 			name = Frameworks;
 			name = Frameworks;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
 		};
 		};
+		75211F93207249D8004E41F8 /* CryptoSwift-TestHostApp */ = {
+			isa = PBXGroup;
+			children = (
+				75211F94207249D8004E41F8 /* AppDelegate.swift */,
+				75211F96207249D8004E41F8 /* ViewController.swift */,
+				75211FA0207249D8004E41F8 /* Info.plist */,
+			);
+			path = "CryptoSwift-TestHostApp";
+			sourceTree = "<group>";
+		};
 		7529366820683DFC00195874 /* AEAD */ = {
 		7529366820683DFC00195874 /* AEAD */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
@@ -314,10 +349,12 @@
 		754BE44B19693E190098E6F3 = {
 		754BE44B19693E190098E6F3 = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
+				7576F64C20725BD5006688F8 /* Default-568h@2x.png */,
 				75843E9A2072457A0050583A /* config */,
 				75843E9A2072457A0050583A /* config */,
 				755D27BC1D06DE6400C41692 /* CryptoSwift.playground */,
 				755D27BC1D06DE6400C41692 /* CryptoSwift.playground */,
 				75EC52361EE8B6CA0048EB3B /* Sources */,
 				75EC52361EE8B6CA0048EB3B /* Sources */,
 				754BE46419693E190098E6F3 /* Tests */,
 				754BE46419693E190098E6F3 /* Tests */,
+				75211F93207249D8004E41F8 /* CryptoSwift-TestHostApp */,
 				754BE45619693E190098E6F3 /* Products */,
 				754BE45619693E190098E6F3 /* Products */,
 				24B0BBA29D734E62809E53BC /* Frameworks */,
 				24B0BBA29D734E62809E53BC /* Frameworks */,
 			);
 			);
@@ -328,6 +365,7 @@
 			children = (
 			children = (
 				754BE45519693E190098E6F3 /* CryptoSwift.framework */,
 				754BE45519693E190098E6F3 /* CryptoSwift.framework */,
 				754BE46019693E190098E6F3 /* Tests.xctest */,
 				754BE46019693E190098E6F3 /* Tests.xctest */,
+				75211F92207249D8004E41F8 /* CryptoSwift-TestHostApp.app */,
 			);
 			);
 			name = Products;
 			name = Products;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -370,18 +408,22 @@
 		75843E9A2072457A0050583A /* config */ = {
 		75843E9A2072457A0050583A /* config */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				75843E9B2072457A0050583A /* Tests-Release.xcconfig */,
-				75843E9C2072457A0050583A /* Tests-Debug.xcconfig */,
-				75843E9D2072457A0050583A /* Project-Release.xcconfig */,
-				75843E9E2072457A0050583A /* Project-Shared.xcconfig */,
-				75843E9F2072457A0050583A /* CryptoSwift-Shared.xcconfig */,
-				75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */,
-				75843EA12072457A0050583A /* Tests-Shared.xcconfig */,
-				75843EA22072457A0050583A /* Tests-Test.xcconfig */,
-				75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */,
-				75843EA42072457A0050583A /* Project-Test.xcconfig */,
-				75843EA52072457A0050583A /* Project-Debug.xcconfig */,
-				75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */,
+				75211FAF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig */,
+				75211FAC20724A0F004E41F8 /* CryptoSwift-Release.xcconfig */,
+				75211FA820724A0F004E41F8 /* CryptoSwift-Shared.xcconfig */,
+				75211FB420724A10004E41F8 /* CryptoSwift-Test.xcconfig */,
+				75211FAB20724A0F004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig */,
+				75211FB320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig */,
+				75211FA920724A0F004E41F8 /* CryptoSwift-TestHostApp-Shared.xcconfig */,
+				75211FA520724A0F004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig */,
+				75211FB020724A10004E41F8 /* Project-Debug.xcconfig */,
+				75211FAA20724A0F004E41F8 /* Project-Release.xcconfig */,
+				75211FB220724A10004E41F8 /* Project-Shared.xcconfig */,
+				75211FA620724A0F004E41F8 /* Project-Test.xcconfig */,
+				75211FA720724A0F004E41F8 /* Tests-Debug.xcconfig */,
+				75211FAD20724A0F004E41F8 /* Tests-Release.xcconfig */,
+				75211FAE20724A10004E41F8 /* Tests-Shared.xcconfig */,
+				75211FB120724A10004E41F8 /* Tests-Test.xcconfig */,
 			);
 			);
 			path = config;
 			path = config;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -506,6 +548,23 @@
 /* End PBXHeadersBuildPhase section */
 /* End PBXHeadersBuildPhase section */
 
 
 /* Begin PBXNativeTarget section */
 /* Begin PBXNativeTarget section */
+		75211F91207249D8004E41F8 /* CryptoSwift-TestHostApp */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 75211FA4207249D8004E41F8 /* Build configuration list for PBXNativeTarget "CryptoSwift-TestHostApp" */;
+			buildPhases = (
+				75211F8E207249D8004E41F8 /* Sources */,
+				75211F8F207249D8004E41F8 /* Frameworks */,
+				75211F90207249D8004E41F8 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "CryptoSwift-TestHostApp";
+			productName = "CryptoSwift-TestHostApp";
+			productReference = 75211F92207249D8004E41F8 /* CryptoSwift-TestHostApp.app */;
+			productType = "com.apple.product-type.application";
+		};
 		754BE45419693E190098E6F3 /* CryptoSwift */ = {
 		754BE45419693E190098E6F3 /* CryptoSwift */ = {
 			isa = PBXNativeTarget;
 			isa = PBXNativeTarget;
 			buildConfigurationList = 754BE46B19693E190098E6F3 /* Build configuration list for PBXNativeTarget "CryptoSwift" */;
 			buildConfigurationList = 754BE46B19693E190098E6F3 /* Build configuration list for PBXNativeTarget "CryptoSwift" */;
@@ -555,18 +614,23 @@
 		754BE44C19693E190098E6F3 /* Project object */ = {
 		754BE44C19693E190098E6F3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastSwiftUpdateCheck = 0700;
+				LastSwiftUpdateCheck = 0930;
 				LastUpgradeCheck = 0930;
 				LastUpgradeCheck = 0930;
 				ORGANIZATIONNAME = "Marcin Krzyzanowski";
 				ORGANIZATIONNAME = "Marcin Krzyzanowski";
 				TargetAttributes = {
 				TargetAttributes = {
+					75211F91207249D8004E41F8 = {
+						CreatedOnToolsVersion = 9.3;
+						ProvisioningStyle = Manual;
+					};
 					754BE45419693E190098E6F3 = {
 					754BE45419693E190098E6F3 = {
 						CreatedOnToolsVersion = 6.0;
 						CreatedOnToolsVersion = 6.0;
 						LastSwiftMigration = 0900;
 						LastSwiftMigration = 0900;
+						ProvisioningStyle = Manual;
 					};
 					};
 					754BE45F19693E190098E6F3 = {
 					754BE45F19693E190098E6F3 = {
 						CreatedOnToolsVersion = 6.0;
 						CreatedOnToolsVersion = 6.0;
 						LastSwiftMigration = 0900;
 						LastSwiftMigration = 0900;
-						TestTargetID = 754BE45419693E190098E6F3;
+						ProvisioningStyle = Manual;
 					};
 					};
 				};
 				};
 			};
 			};
@@ -576,6 +640,7 @@
 			hasScannedForEncodings = 0;
 			hasScannedForEncodings = 0;
 			knownRegions = (
 			knownRegions = (
 				en,
 				en,
+				Base,
 			);
 			);
 			mainGroup = 754BE44B19693E190098E6F3;
 			mainGroup = 754BE44B19693E190098E6F3;
 			productRefGroup = 754BE45619693E190098E6F3 /* Products */;
 			productRefGroup = 754BE45619693E190098E6F3 /* Products */;
@@ -583,28 +648,41 @@
 			projectRoot = "";
 			projectRoot = "";
 			targets = (
 			targets = (
 				754BE45419693E190098E6F3 /* CryptoSwift */,
 				754BE45419693E190098E6F3 /* CryptoSwift */,
+				75211F91207249D8004E41F8 /* CryptoSwift-TestHostApp */,
 				754BE45F19693E190098E6F3 /* Tests */,
 				754BE45F19693E190098E6F3 /* Tests */,
 			);
 			);
 		};
 		};
 /* End PBXProject section */
 /* End PBXProject section */
 
 
 /* Begin PBXResourcesBuildPhase section */
 /* Begin PBXResourcesBuildPhase section */
+		75211F90207249D8004E41F8 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				7576F64D20725BD6006688F8 /* Default-568h@2x.png in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		754BE45319693E190098E6F3 /* Resources */ = {
 		754BE45319693E190098E6F3 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
-				75843EB02072457A0050583A /* Project-Test.xcconfig in Resources */,
-				75843EA82072457A0050583A /* Tests-Debug.xcconfig in Resources */,
-				75843EAA2072457A0050583A /* Project-Shared.xcconfig in Resources */,
-				75843EB12072457A0050583A /* Project-Debug.xcconfig in Resources */,
-				75843EAE2072457A0050583A /* Tests-Test.xcconfig in Resources */,
-				75843EAF2072457A0050583A /* CryptoSwift-Debug.xcconfig in Resources */,
-				75843EA72072457A0050583A /* Tests-Release.xcconfig in Resources */,
-				75843EAD2072457A0050583A /* Tests-Shared.xcconfig in Resources */,
-				75843EAB2072457A0050583A /* CryptoSwift-Shared.xcconfig in Resources */,
-				75843EA92072457A0050583A /* Project-Release.xcconfig in Resources */,
-				75843EAC2072457A0050583A /* CryptoSwift-Release.xcconfig in Resources */,
-				75843EB22072457A0050583A /* CryptoSwift-Test.xcconfig in Resources */,
+				75211FC020724A10004E41F8 /* Project-Debug.xcconfig in Resources */,
+				75211FB920724A10004E41F8 /* CryptoSwift-TestHostApp-Shared.xcconfig in Resources */,
+				75211FB820724A10004E41F8 /* CryptoSwift-Shared.xcconfig in Resources */,
+				75211FC420724A10004E41F8 /* CryptoSwift-Test.xcconfig in Resources */,
+				75211FBA20724A10004E41F8 /* Project-Release.xcconfig in Resources */,
+				75211FB620724A10004E41F8 /* Project-Test.xcconfig in Resources */,
+				75211FBF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig in Resources */,
+				75211FBD20724A10004E41F8 /* Tests-Release.xcconfig in Resources */,
+				75211FC220724A10004E41F8 /* Project-Shared.xcconfig in Resources */,
+				75211FC120724A10004E41F8 /* Tests-Test.xcconfig in Resources */,
+				75211FC320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig in Resources */,
+				75211FB520724A10004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig in Resources */,
+				75211FB720724A10004E41F8 /* Tests-Debug.xcconfig in Resources */,
+				75211FBE20724A10004E41F8 /* Tests-Shared.xcconfig in Resources */,
+				75211FBB20724A10004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig in Resources */,
+				75211FBC20724A10004E41F8 /* CryptoSwift-Release.xcconfig in Resources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
 		};
 		};
@@ -619,6 +697,15 @@
 /* End PBXResourcesBuildPhase section */
 /* End PBXResourcesBuildPhase section */
 
 
 /* Begin PBXSourcesBuildPhase section */
 /* Begin PBXSourcesBuildPhase section */
+		75211F8E207249D8004E41F8 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				75211F97207249D8004E41F8 /* ViewController.swift in Sources */,
+				75211F95207249D8004E41F8 /* AppDelegate.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		754BE45019693E190098E6F3 /* Sources */ = {
 		754BE45019693E190098E6F3 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
@@ -757,65 +844,86 @@
 /* End PBXTargetDependency section */
 /* End PBXTargetDependency section */
 
 
 /* Begin XCBuildConfiguration section */
 /* Begin XCBuildConfiguration section */
+		75211FA1207249D8004E41F8 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75211FAB20724A0F004E41F8 /* CryptoSwift-TestHostApp-Debug.xcconfig */;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		75211FA2207249D8004E41F8 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75211FB320724A10004E41F8 /* CryptoSwift-TestHostApp-Release.xcconfig */;
+			buildSettings = {
+			};
+			name = Release;
+		};
+		75211FA3207249D8004E41F8 /* Test */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 75211FA520724A0F004E41F8 /* CryptoSwift-TestHostApp-Test.xcconfig */;
+			buildSettings = {
+			};
+			name = Test;
+		};
 		754BE46919693E190098E6F3 /* Debug */ = {
 		754BE46919693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA52072457A0050583A /* Project-Debug.xcconfig */;
+			baseConfigurationReference = 75211FB020724A10004E41F8 /* Project-Debug.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		754BE46A19693E190098E6F3 /* Release */ = {
 		754BE46A19693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843E9D2072457A0050583A /* Project-Release.xcconfig */;
+			baseConfigurationReference = 75211FAA20724A0F004E41F8 /* Project-Release.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		754BE46C19693E190098E6F3 /* Debug */ = {
 		754BE46C19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA32072457A0050583A /* CryptoSwift-Debug.xcconfig */;
+			baseConfigurationReference = 75211FAF20724A10004E41F8 /* CryptoSwift-Debug.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		754BE46D19693E190098E6F3 /* Release */ = {
 		754BE46D19693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA02072457A0050583A /* CryptoSwift-Release.xcconfig */;
+			baseConfigurationReference = 75211FAC20724A0F004E41F8 /* CryptoSwift-Release.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		754BE46F19693E190098E6F3 /* Debug */ = {
 		754BE46F19693E190098E6F3 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843E9C2072457A0050583A /* Tests-Debug.xcconfig */;
+			baseConfigurationReference = 75211FA720724A0F004E41F8 /* Tests-Debug.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Debug;
 			name = Debug;
 		};
 		};
 		754BE47019693E190098E6F3 /* Release */ = {
 		754BE47019693E190098E6F3 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843E9B2072457A0050583A /* Tests-Release.xcconfig */;
+			baseConfigurationReference = 75211FAD20724A0F004E41F8 /* Tests-Release.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
 		756B66AA1F6AAFDB00DEC41C /* Test */ = {
 		756B66AA1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA42072457A0050583A /* Project-Test.xcconfig */;
+			baseConfigurationReference = 75211FA620724A0F004E41F8 /* Project-Test.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Test;
 			name = Test;
 		};
 		};
 		756B66AB1F6AAFDB00DEC41C /* Test */ = {
 		756B66AB1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA62072457A0050583A /* CryptoSwift-Test.xcconfig */;
+			baseConfigurationReference = 75211FB420724A10004E41F8 /* CryptoSwift-Test.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Test;
 			name = Test;
 		};
 		};
 		756B66AC1F6AAFDB00DEC41C /* Test */ = {
 		756B66AC1F6AAFDB00DEC41C /* Test */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 75843EA22072457A0050583A /* Tests-Test.xcconfig */;
+			baseConfigurationReference = 75211FB120724A10004E41F8 /* Tests-Test.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 			};
 			};
 			name = Test;
 			name = Test;
@@ -823,6 +931,16 @@
 /* End XCBuildConfiguration section */
 /* End XCBuildConfiguration section */
 
 
 /* Begin XCConfigurationList section */
 /* Begin XCConfigurationList section */
+		75211FA4207249D8004E41F8 /* Build configuration list for PBXNativeTarget "CryptoSwift-TestHostApp" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				75211FA1207249D8004E41F8 /* Debug */,
+				75211FA2207249D8004E41F8 /* Release */,
+				75211FA3207249D8004E41F8 /* Test */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		754BE44F19693E190098E6F3 /* Build configuration list for PBXProject "CryptoSwift" */ = {
 		754BE44F19693E190098E6F3 /* Build configuration list for PBXProject "CryptoSwift" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (

+ 8 - 0
CryptoSwift.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist

@@ -0,0 +1,8 @@
+<?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>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>

+ 4 - 1
CryptoSwift.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?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">
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <plist version="1.0">
-<dict/>
+<dict>
+	<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
+	<false/>
+</dict>
 </plist>
 </plist>

+ 91 - 0
CryptoSwift.xcodeproj/xcshareddata/xcschemes/CryptoSwift-TestHostApp.xcscheme

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0930"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "75211F91207249D8004E41F8"
+               BuildableName = "CryptoSwift-TestHostApp.app"
+               BlueprintName = "CryptoSwift-TestHostApp"
+               ReferencedContainer = "container:CryptoSwift.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "75211F91207249D8004E41F8"
+            BuildableName = "CryptoSwift-TestHostApp.app"
+            BlueprintName = "CryptoSwift-TestHostApp"
+            ReferencedContainer = "container:CryptoSwift.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "75211F91207249D8004E41F8"
+            BuildableName = "CryptoSwift-TestHostApp.app"
+            BlueprintName = "CryptoSwift-TestHostApp"
+            ReferencedContainer = "container:CryptoSwift.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "75211F91207249D8004E41F8"
+            BuildableName = "CryptoSwift-TestHostApp.app"
+            BlueprintName = "CryptoSwift-TestHostApp"
+            ReferencedContainer = "container:CryptoSwift.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 56 - 0
CryptoSwift.xcodeproj/xcshareddata/xcschemes/Tests.xcscheme

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0930"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "754BE45F19693E190098E6F3"
+               BuildableName = "Tests.xctest"
+               BlueprintName = "Tests"
+               ReferencedContainer = "container:CryptoSwift.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

BIN
Default-568h@2x.png


+ 12 - 17
config/CryptoSwift-Shared.xcconfig

@@ -16,15 +16,6 @@ APPLICATION_EXTENSION_API_ONLY = YES
 
 
 
 
 
 
-// Enable Modules (C and Objective-C)
-// 
-// Enables the use of modules for system APIs. System headers are imported as semantic
-// modules instead of raw headers. This can result in faster builds and project indexing.
-
-CLANG_ENABLE_MODULES = YES
-
-
-
 // Compatibility Version
 // Compatibility Version
 // 
 // 
 // Determines the compatibility version of the resulting library, bundle, or framework
 // Determines the compatibility version of the resulting library, bundle, or framework
@@ -97,11 +88,6 @@ ENABLE_BITCODE[sdk=macosx*] = NO
 INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
 INSTALL_PATH = $(LOCAL_LIBRARY_DIR)/Frameworks
 
 
 
 
-
-IPHONEOS_DEPLOYMENT_TARGET = 8.0
-
-
-
 // Runpath Search Paths
 // Runpath Search Paths
 // 
 // 
 // This is a list of paths to be added to the `runpath` search path list for the image
 // This is a list of paths to be added to the `runpath` search path list for the image
@@ -111,7 +97,16 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0
 
 
 LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
 LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/Frameworks
 
 
+// Info.plist File
+//
+// The project-relative path to the property list file that contains the `Info.plist`
+// information used by bundles. For details on information property list files, see
+// [Information Property List
+// Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH)
+// in [Runtime Configuration
+// Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).
 
 
+INFOPLIST_FILE = Sources/CryptoSwift/Info.plist
 
 
 // Product Bundle Identifier
 // Product Bundle Identifier
 // 
 // 
@@ -120,7 +115,7 @@ LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/
 // the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
 // the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
 // of the built bundle.
 // of the built bundle.
 
 
-PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift
+PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.${PRODUCT_NAME:rfc1034identifier}
 
 
 
 
 
 
@@ -128,7 +123,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.CryptoSwift
 // 
 // 
 // This is the basename of the product generated by the target.
 // This is the basename of the product generated by the target.
 
 
-PRODUCT_NAME = CryptoSwift
+PRODUCT_NAME = $(TARGET_NAME)
 
 
 
 
 
 
@@ -152,4 +147,4 @@ TVOS_DEPLOYMENT_TARGET = 9.0
 
 
 
 
 
 
-WATCHOS_DEPLOYMENT_TARGET = 2.0
+WATCHOS_DEPLOYMENT_TARGET = 2.0

+ 120 - 0
config/CryptoSwift-TestHostApp-Debug.xcconfig

@@ -0,0 +1,120 @@
+//
+// CryptoSwift-TestHostApp-Debug.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-TestHostApp-Shared.xcconfig"
+
+
+// Debug Information Format
+// 
+// The type of debug information to produce.
+// 
+// * *DWARF:* Object files and linked products will use DWARF as the debug information
+// format. [dwarf]
+// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
+// information format, and Xcode will also produce a dSYM file containing the debug
+// information from the individual object files (except that a dSYM file is not needed
+// and will not be created for static library or object file products). [dwarf-with-dsym]
+
+DEBUG_INFORMATION_FORMAT = dwarf
+
+
+
+// Enable Testability
+// 
+// When this setting is activated, the product will be built with options appropriate for
+// running automated tests, such as making private interfaces accessible to the tests.
+// This may result in tests running slower than they would without testability enabled.
+
+ENABLE_TESTABILITY = YES
+
+
+
+// Generate Position-Dependent Code
+// 
+// Faster function calls for applications. Not appropriate for shared libraries, which
+// need to be position-independent.
+
+GCC_DYNAMIC_NO_PIC = NO
+
+
+
+// Optimization Level
+// 
+// Specifies the degree to which the generated code is optimized for speed and binary
+// size.
+// 
+// * *None:* Do not optimize. [-O0]
+// With this setting, the compiler's goal is to reduce the cost of compilation and to
+// make debugging produce the expected results. Statements are independent—if you stop
+// the program with a breakpoint between statements, you can then assign a new value to
+// any variable or change the program counter to any other statement in the function and
+// get exactly the results you would expect from the source code.
+// * *Fast:* Optimizing compilation takes somewhat more time, and a lot more memory for a
+// large function. [-O1]
+// With this setting, the compiler tries to reduce code size and execution time,
+// without performing any optimizations that take a great deal of compilation time. In
+// Apple's compiler, strict aliasing, block reordering, and inter-block scheduling are
+// disabled by default when optimizing.
+// * *Faster:* The compiler performs nearly all supported optimizations that do not
+// involve a space-speed tradeoff. [-O2]
+// With this setting, the compiler does not perform loop unrolling or function
+// inlining, or register renaming. As compared to the `Fast` setting, this setting
+// increases both compilation time and the performance of the generated code.
+// * *Fastest:* Turns on all optimizations specified by the `Faster` setting and also
+// turns on function inlining and register renaming options. This setting may result in a
+// larger binary. [-O3]
+// * *Fastest, Smallest:* Optimize for size. This setting enables all `Faster`
+// optimizations that do not typically increase code size. It also performs further
+// optimizations designed to reduce code size. [-Os]
+// * *Fastest, Aggressive Optimizations:* This setting enables `Fastest` but also enables
+// aggressive optimizations that may break strict standards compliance but should work
+// well on well-behaved code. [-Ofast]
+
+GCC_OPTIMIZATION_LEVEL = 0
+
+
+
+// Preprocessor Macros
+// 
+// Space-separated list of preprocessor macros of the form `foo` or `foo=bar`.
+
+GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 $(inherited)
+
+
+
+// Produce debugging information
+// 
+// Produce debugging information. This information is required for shader profiling.
+
+MTL_ENABLE_DEBUG_INFO = YES
+
+
+
+// Build Active Architecture Only
+// 
+// If enabled, only the active architecture is built.
+
+ONLY_ACTIVE_ARCH = YES
+
+
+
+// Active Compilation Conditions
+// 
+// A list of compilation conditions to enable for conditional compilation expressions.
+
+SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Onone

+ 59 - 0
config/CryptoSwift-TestHostApp-Release.xcconfig

@@ -0,0 +1,59 @@
+//
+// CryptoSwift-TestHostApp-Release.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-TestHostApp-Shared.xcconfig"
+
+
+// Debug Information Format
+// 
+// The type of debug information to produce.
+// 
+// * *DWARF:* Object files and linked products will use DWARF as the debug information
+// format. [dwarf]
+// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
+// information format, and Xcode will also produce a dSYM file containing the debug
+// information from the individual object files (except that a dSYM file is not needed
+// and will not be created for static library or object file products). [dwarf-with-dsym]
+
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
+
+
+
+// Enable Foundation Assertions
+// 
+// Controls whether assertion logic provided by `NSAssert` is included in the
+// preprocessed source code or is elided during preprocessing. Disabling assertions can
+// improve code performance.
+
+ENABLE_NS_ASSERTIONS = NO
+
+
+
+// Produce debugging information
+// 
+// Produce debugging information. This information is required for shader profiling.
+
+MTL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
+
+
+
+// Validate Built Product
+// 
+// If enabled, perform validation checks on the product as part of the build process.
+
+VALIDATE_PRODUCT = YES

+ 59 - 0
config/CryptoSwift-TestHostApp-Shared.xcconfig

@@ -0,0 +1,59 @@
+//
+// CryptoSwift-TestHostApp-Shared.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+
+// Asset Catalog App Icon Set Name
+// 
+// Name of an asset catalog app icon set whose contents will be merged into the
+// `Info.plist`.
+
+ASSETCATALOG_COMPILER_APPICON_NAME =
+
+
+// Info.plist File
+// 
+// The project-relative path to the property list file that contains the `Info.plist`
+// information used by bundles. For details on information property list files, see
+// [Information Property List
+// Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH)
+// in [Runtime Configuration
+// Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).
+
+INFOPLIST_FILE = CryptoSwift-TestHostApp/Info.plist
+
+
+
+// Runpath Search Paths
+// 
+// This is a list of paths to be added to the `runpath` search path list for the image
+// being created. At runtime, `dyld` uses the `runpath` when searching for dylibs whose
+// load path begins with `@rpath/`. See [Dynamic Library Programming
+// Topics](https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/DynamicLibraries/000-Introduction/Introduction.html).
+
+LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
+
+
+
+// Product Bundle Identifier
+// 
+// A string that uniquely identifies the bundle. The string should be in reverse DNS
+// format using only alphanumeric characters (`A-Z`, `a-z`, `0-9`), the dot (`.`), and
+// the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
+// of the built bundle.
+
+PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.${PRODUCT_NAME:rfc1034identifier}
+
+
+// Base SDK
+// 
+// The name or path of the base SDK being used during the build. The product will be
+// built against the headers and libraries located inside the indicated SDK. This path
+// will be prepended to all search paths, and will be passed through the environment to
+// the compiler and linker. Additional SDKs can be specified in the `ADDITIONAL_SDKS`
+// setting.
+
+SDKROOT = iphoneos

+ 59 - 0
config/CryptoSwift-TestHostApp-Test.xcconfig

@@ -0,0 +1,59 @@
+//
+// CryptoSwift-TestHostApp-Test.xcconfig
+//
+// Generated by BuildSettingExtractor on 02/04/2018
+// https://github.com/dempseyatgithub/BuildSettingExtractor
+//
+
+#include "CryptoSwift-TestHostApp-Shared.xcconfig"
+
+
+// Debug Information Format
+// 
+// The type of debug information to produce.
+// 
+// * *DWARF:* Object files and linked products will use DWARF as the debug information
+// format. [dwarf]
+// * *DWARF with dSYM File:* Object files and linked products will use DWARF as the debug
+// information format, and Xcode will also produce a dSYM file containing the debug
+// information from the individual object files (except that a dSYM file is not needed
+// and will not be created for static library or object file products). [dwarf-with-dsym]
+
+DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
+
+
+
+// Enable Foundation Assertions
+// 
+// Controls whether assertion logic provided by `NSAssert` is included in the
+// preprocessed source code or is elided during preprocessing. Disabling assertions can
+// improve code performance.
+
+ENABLE_NS_ASSERTIONS = NO
+
+
+
+// Produce debugging information
+// 
+// Produce debugging information. This information is required for shader profiling.
+
+MTL_ENABLE_DEBUG_INFO = NO
+
+
+
+// Swift Optimization Level
+// 
+// * *None:* Compile without any optimization. [-Onone]
+// * *Optimize for Speed:* [-O]
+// * *Optimize for Size:* [-Osize]
+// * *Whole Module Optimization:* [-O -whole-module-optimization]
+
+SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
+
+
+
+// Validate Built Product
+// 
+// If enabled, perform validation checks on the product as part of the build process.
+
+VALIDATE_PRODUCT = YES

+ 45 - 25
config/Project-Shared.xcconfig

@@ -5,6 +5,25 @@
 // https://github.com/dempseyatgithub/BuildSettingExtractor
 // https://github.com/dempseyatgithub/BuildSettingExtractor
 //
 //
 
 
+PRODUCT_NAME = ${TARGET_NAME}
+
+DEVELOPMENT_TEAM =
+PROVISIONING_PROFILE_SPECIFIER =
+CODE_SIGN_STYLE = Manual
+
+// Misuse of 'nonnull'
+//
+// Check for misuses of `nonnull` parameter and return types.
+
+CLANG_ANALYZER_NONNULL = YES
+
+// Suspicious Conversions of NSNumber and CFNumberRef
+//
+// Warn when a number object, such as an instance of `NSNumber`, `CFNumberRef`,
+// `OSNumber`, or `OSBoolean` is compared or converted to a primitive value instead of
+// another object.
+
+CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE
 
 
 // Always Search User Paths (Deprecated)
 // Always Search User Paths (Deprecated)
 // 
 // 
@@ -86,6 +105,13 @@ CLANG_ENABLE_MODULES = YES
 CLANG_ENABLE_OBJC_ARC = YES
 CLANG_ENABLE_OBJC_ARC = YES
 
 
 
 
+// Weak References in Manual Retain Release
+//
+// Compiles Objective-C code to enable weak references for code compiled with manual
+// retain release (MRR) semantics.
+
+CLANG_ENABLE_OBJC_WEAK = YES
+
 
 
 // Duplicate Method Definitions
 // Duplicate Method Definitions
 // 
 // 
@@ -248,6 +274,22 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES
 CLANG_WARN_UNREACHABLE_CODE = YES
 CLANG_WARN_UNREACHABLE_CODE = YES
 
 
 
 
+// Documentation Comments
+//
+// Warns about issues in documentation comments (`doxygen`-style) such as missing or
+// incorrect documentation tags.
+
+CLANG_WARN_DOCUMENTATION_COMMENTS = YES
+
+
+// Unguarded availability
+//
+// Warn if an API that is newer than the deployment target is used without "if
+// (@available(...))" guards.
+
+CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
+
+
 
 
 CODE_SIGNING_REQUIRED = NO
 CODE_SIGNING_REQUIRED = NO
 
 
@@ -404,21 +446,7 @@ GCC_WARN_UNUSED_LABEL = YES
 GCC_WARN_UNUSED_VARIABLE = YES
 GCC_WARN_UNUSED_VARIABLE = YES
 
 
 
 
-
-// Info.plist File
-// 
-// The project-relative path to the property list file that contains the `Info.plist`
-// information used by bundles. For details on information property list files, see
-// [Information Property List
-// Files](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091-CJBJIEDH)
-// in [Runtime Configuration
-// Guidelines](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html).
-
-INFOPLIST_FILE = Sources/CryptoSwift/Info.plist
-
-
-
-IPHONEOS_DEPLOYMENT_TARGET = 8.0
+IPHONEOS_DEPLOYMENT_TARGET = 9.0
 
 
 
 
 
 
@@ -428,15 +456,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0
 // unavailable in earlier versions will be weak-linked; your code should check for `null`
 // unavailable in earlier versions will be weak-linked; your code should check for `null`
 // function pointers or specific system versions before calling newer APIs.
 // function pointers or specific system versions before calling newer APIs.
 
 
-MACOSX_DEPLOYMENT_TARGET = 10.9
-
-
-
-// Product Name
-// 
-// This is the basename of the product generated by the target.
-
-PRODUCT_NAME = CryptoSwift
+MACOSX_DEPLOYMENT_TARGET = 10.10
 
 
 
 
 
 
@@ -497,4 +517,4 @@ VERSIONING_SYSTEM = apple-generic
 
 
 
 
 
 
-WATCHOS_DEPLOYMENT_TARGET = 2.0
+WATCHOS_DEPLOYMENT_TARGET = 2.0

+ 3 - 10
config/Tests-Shared.xcconfig

@@ -59,15 +59,7 @@ LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks @loader_path/
 // the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
 // the hyphen (`-`). This value is used as the `CFBundleIdentifier` in the `Info.plist`
 // of the built bundle.
 // of the built bundle.
 
 
-PRODUCT_BUNDLE_IDENTIFIER = com.hakore.${PRODUCT_NAME:rfc1034identifier}
-
-
-
-// Product Name
-// 
-// This is the basename of the product generated by the target.
-
-PRODUCT_NAME = $(TARGET_NAME)
+PRODUCT_BUNDLE_IDENTIFIER = com.krzyzanowskim.${PRODUCT_NAME:rfc1034identifier}
 
 
 
 
 
 
@@ -75,4 +67,5 @@ PRODUCT_NAME = $(TARGET_NAME)
 // 
 // 
 // Path to the header defining the Objective-C interfaces to be exposed in Swift.
 // Path to the header defining the Objective-C interfaces to be exposed in Swift.
 
 
-SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h
+SWIFT_OBJC_BRIDGING_HEADER = Tests/CryptoSwiftTests/Bridging.h
+