├── .gitignore ├── .swift-version ├── .travis.yml ├── BCryptSwift.podspec ├── BCryptSwift ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ ├── BCryptSwift.swift │ └── BCryptSwiftRandom.swift ├── Example ├── BCryptSwift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── BCryptSwift-Example.xcscheme ├── BCryptSwift.xcworkspace │ └── contents.xcworkspacedata ├── BCryptSwift │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ └── ViewController.swift ├── Podfile ├── Podfile.lock ├── Pods │ ├── Local Podspecs │ │ └── BCryptSwift.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── Target Support Files │ │ ├── BCryptSwift │ │ ├── BCryptSwift-dummy.m │ │ ├── BCryptSwift-prefix.pch │ │ ├── BCryptSwift-umbrella.h │ │ ├── BCryptSwift.modulemap │ │ ├── BCryptSwift.xcconfig │ │ └── Info.plist │ │ ├── Pods-BCryptSwift_Example │ │ ├── Info.plist │ │ ├── Pods-BCryptSwift_Example-acknowledgements.markdown │ │ ├── Pods-BCryptSwift_Example-acknowledgements.plist │ │ ├── Pods-BCryptSwift_Example-dummy.m │ │ ├── Pods-BCryptSwift_Example-frameworks.sh │ │ ├── Pods-BCryptSwift_Example-resources.sh │ │ ├── Pods-BCryptSwift_Example-umbrella.h │ │ ├── Pods-BCryptSwift_Example.debug.xcconfig │ │ ├── Pods-BCryptSwift_Example.modulemap │ │ └── Pods-BCryptSwift_Example.release.xcconfig │ │ └── Pods-BCryptSwift_Tests │ │ ├── Info.plist │ │ ├── Pods-BCryptSwift_Tests-acknowledgements.markdown │ │ ├── Pods-BCryptSwift_Tests-acknowledgements.plist │ │ ├── Pods-BCryptSwift_Tests-dummy.m │ │ ├── Pods-BCryptSwift_Tests-frameworks.sh │ │ ├── Pods-BCryptSwift_Tests-resources.sh │ │ ├── Pods-BCryptSwift_Tests-umbrella.h │ │ ├── Pods-BCryptSwift_Tests.debug.xcconfig │ │ ├── Pods-BCryptSwift_Tests.modulemap │ │ └── Pods-BCryptSwift_Tests.release.xcconfig └── Tests │ ├── Info.plist │ └── Tests.swift ├── LICENSE ├── README.md └── _Pods.xcodeproj /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | .DS_Store 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | *.xccheckout 20 | profile 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | DerivedData 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | ## Playgrounds 31 | timeline.xctimeline 32 | playground.xcworkspace 33 | 34 | # Bundler 35 | # 36 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 37 | # Packages/ 38 | .bundle 39 | .build/ 40 | 41 | # CocoaPods 42 | Carthage 43 | # We recommend against adding the Pods directory to your .gitignore. However 44 | # you should judge for yourself, the pros and cons are mentioned at: 45 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 46 | # 47 | # Note: if you ignore the Pods directory, make sure to uncomment 48 | # `pod install` in .travis.yml 49 | # 50 | # Pods/ 51 | 52 | # Carthage 53 | # 54 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 55 | # Carthage/Checkouts 56 | 57 | Carthage/Build 58 | 59 | # fastlane 60 | # 61 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 62 | # screenshots whenever they are needed. 63 | # For more information about the recommended setup visit: 64 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 65 | 66 | fastlane/report.xml 67 | fastlane/Preview.html 68 | fastlane/screenshots 69 | fastlane/test_output 70 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * http://www.objc.io/issue-6/travis-ci.html 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | osx_image: xcode7.3 6 | language: objective-c 7 | # cache: cocoapods 8 | # podfile: Example/Podfile 9 | # before_install: 10 | # - gem install cocoapods # Since Travis is not always on latest version 11 | # - pod install --project-directory=Example 12 | script: 13 | - set -o pipefail && xcodebuild test -workspace Example/BCryptSwift.xcworkspace -scheme BCryptSwift-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty 14 | - pod lib lint 15 | -------------------------------------------------------------------------------- /BCryptSwift.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint BCryptSwift.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = 'BCryptSwift' 11 | s.version = '1.1' 12 | s.summary = 'BCryptSwift is an implementation of bcrypt written in Swift.' 13 | 14 | # This description is used to generate tags and improve search results. 15 | # * Think: What does it do? Why did you write it? What is the focus? 16 | # * Try to keep it short, snappy and to the point. 17 | # * Write the description between the DESC delimiters below. 18 | # * Finally, don't worry about the indent, CocoaPods strips it! 19 | 20 | s.description = <<-DESC 21 | It currently is able to generate the salt and hash a phrase using a generated salt. 22 | ``` 23 | BCryptSwift.generateSaltWithNumberOfRounds(rounds: UInt) -> String 24 | BCryptSwift.generateSalt() -> String 25 | BCryptSwift.hashPassword(password: String, withSalt salt: String) -> String? 26 | BCryptSwift.verifyPassword(password: String, matchesHash hash: String) -> Bool? 27 | ``` 28 | 29 | The `generateSaltWithNumberOfRounds()` class function will generate a random salt using the number of rounds provided. The number of rounds must be between 4 and 31 inclusively. 30 | 31 | The `generateSalt()` class convenience function will generate a random salt using a default 10 rounds. This number can be adjusted based on your specific needs. 32 | 33 | The `hashPassword(withSalt:)` class function will hash the password phrase using the salt. If there is an issue during processing, nil will be returned. Check the function documentation for details. 34 | 35 | The `verifyPassword(matchesHash:)` class convenience function will hash the password phrase using the hash, then return the comparison between the new hash and the given hash. If there is an issue during processing, nil will be returned. Check the function documentation for details. 36 | DESC 37 | 38 | s.homepage = 'https://github.com/felipeflorencio/BCryptSwift' 39 | s.license = { :type => 'Apache 2.0 License', :file => 'LICENSE' } 40 | s.author = { 'felipeflorencio' => 'felipeflorencio@me.com' } 41 | s.source = { :git => 'https://github.com/felipeflorencio/BCryptSwift.git', :tag => s.version.to_s } 42 | s.social_media_url = 'https://twitter.com/dr_nerd' 43 | 44 | s.ios.deployment_target = '9.0' 45 | s.tvos.deployment_target = '9.0' 46 | s.osx.deployment_target = '10.9' 47 | 48 | s.source_files = 'BCryptSwift/Classes/**/*' 49 | 50 | # s.resource_bundles = { 51 | # 'BCryptSwift' => ['BCryptSwift/Assets/*.png'] 52 | # } 53 | 54 | # s.public_header_files = 'Pod/Classes/**/*.h' 55 | # s.frameworks = 'UIKit', 'MapKit' 56 | # s.dependency 'AFNetworking', '~> 2.3' 57 | end 58 | -------------------------------------------------------------------------------- /BCryptSwift/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipeflorencio/BCryptSwift/a826d8e9fc1c3d00ea28ef60bbf2067071256235/BCryptSwift/Assets/.gitkeep -------------------------------------------------------------------------------- /BCryptSwift/Classes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipeflorencio/BCryptSwift/a826d8e9fc1c3d00ea28ef60bbf2067071256235/BCryptSwift/Classes/.gitkeep -------------------------------------------------------------------------------- /BCryptSwift/Classes/BCryptSwiftRandom.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BCryptSwiftRandom.swift 3 | // BCryptSwift 4 | // 5 | // Created by Felipe Florencio Garcia on 3/14/17. 6 | // Copyright © 2017 Felipe Florencio Garcia. All rights reserved. 7 | // 8 | // Originally created by Joe Kramer https://github.com/meanjoe45/JKBCrypt 9 | // 10 | // Licensed under the Apache License, Version 2.0 (the "License"); 11 | // you may not use this file except in compliance with the License. 12 | // You may obtain a copy of the License at 13 | // 14 | // http://www.apache.org/licenses/LICENSE-2.0 15 | // 16 | // Unless required by applicable law or agreed to in writing, software 17 | // distributed under the License is distributed on an "AS IS" BASIS, 18 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | // See the License for the specific language governing permissions and 20 | // limitations under the License. 21 | // 22 | 23 | import Foundation 24 | 25 | public class BCryptSwiftRandom : NSObject { 26 | 27 | /** 28 | Generates a random number between low and high and places it into the receiver. 29 | 30 | :param: first The first 31 | :param: second The second 32 | 33 | :returns: Int32 Random 32-bit number 34 | */ 35 | public class func generateNumberBetween(_ first: Int32, _ second: Int32) -> Int32 { 36 | var low : Int32 37 | var high : Int32 38 | 39 | if first <= second { 40 | low = first 41 | high = second 42 | } 43 | else { 44 | low = second 45 | high = first 46 | } 47 | 48 | let modular = UInt32((high - low) + 1) 49 | let random = arc4random() 50 | 51 | return Int32(random % modular) + low 52 | } 53 | 54 | /** 55 | Generates an optionally unique sequence of random numbers between low and high and places them into the sequence. 56 | 57 | :param: length The length of the sequence (must be at least 1) 58 | :param: low The low number (must be lower or equal to high). 59 | :param: high The high number (must be equal or higher than low). 60 | :param: onlyUnique TRUE if only unique values are to be generated, FALSE otherwise. 61 | 62 | The condition is checked that if `onlyUnique` is TRUE the `length` cannot exceed the range of `low` to `high`. 63 | 64 | :returns: [Int32] 65 | */ 66 | public class func generateNumberSequenceBetween(_ first: Int32, _ second: Int32, ofLength length: Int, withUniqueValues unique: Bool) -> [Int32] { 67 | if length < 1 { 68 | return [Int32]() 69 | } 70 | 71 | var sequence : [Int32] = [Int32](repeating: 0, count: length) 72 | if unique { 73 | if (first <= second && (length > (second - first) + 1)) || 74 | (first > second && (length > (first - second) + 1)) { 75 | return [Int32]() 76 | } 77 | 78 | var loop : Int = 0 79 | while loop < length { 80 | let number = BCryptSwiftRandom.generateNumberBetween(first, second) 81 | 82 | // If the number is unique, add it to the sequence 83 | if !BCryptSwiftRandom.isNumber(number, inSequence: sequence, ofLength: loop) { 84 | sequence[loop] = number 85 | loop += 1 86 | } 87 | } 88 | } 89 | else { 90 | // Repetitive values are allowed 91 | for i in 0 ..< length { 92 | sequence[i] = BCryptSwiftRandom.generateNumberBetween(first, second) 93 | } 94 | } 95 | 96 | return sequence 97 | } 98 | 99 | /** 100 | Returns true if the provided number appears within the sequence. 101 | 102 | :param: number The number to search for in the sequence. 103 | :param: sequence The sequence to search in (must not be nil and must be of at least `length` elements) 104 | :param: length The length of the sequence to test (must be at least 1) 105 | 106 | :returns: Bool TRUE if `number` is found in sequence, FALSE if not found. 107 | */ 108 | public class func isNumber(_ number: Int32, inSequence sequence: [Int32], ofLength length: Int) -> Bool { 109 | if length < 1 || length > sequence.count { 110 | return false 111 | } 112 | 113 | for i in 0 ..< length where sequence[i] == number { 114 | return true 115 | } 116 | 117 | // The number was not found, return false 118 | return false 119 | } 120 | 121 | 122 | /** 123 | Returns an [Int8] populated with bytes whose values range from -128 to 127. 124 | 125 | :param: length The length of the resulting NSData (must be at least 1) 126 | 127 | :returns: [Int8] [Int8] containing random signed bytes. 128 | */ 129 | public class func generateRandomSignedDataOfLength(_ length: Int) -> [Int8] { 130 | guard length >= 1 else { 131 | return [] 132 | } 133 | 134 | var sequence = BCryptSwiftRandom.generateNumberSequenceBetween(-128, 127, ofLength: length, withUniqueValues: false) 135 | var randomData : [Int8] = [Int8](repeating: 0, count: length) 136 | 137 | for i in 0 ..< length { 138 | randomData[i] = Int8(sequence[i]) 139 | } 140 | 141 | return randomData 142 | } 143 | 144 | } 145 | -------------------------------------------------------------------------------- /Example/BCryptSwift.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 43ED5757EC2A4F84D25BDE0C /* Pods_BCryptSwift_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87FEDDEC819DB555ADD30577 /* Pods_BCryptSwift_Tests.framework */; }; 11 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 12 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 13 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 14 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 15 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 16 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 17 | DB14ACED78084A6EB585A2B4 /* Pods_BCryptSwift_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05DCD2E3C899D558D1C188DF /* Pods_BCryptSwift_Example.framework */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 26 | remoteInfo = BCryptSwift; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 05DCD2E3C899D558D1C188DF /* Pods_BCryptSwift_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BCryptSwift_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 32 | 18204FCDFCE99CDB96A7E396 /* Pods-BCryptSwift_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BCryptSwift_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.release.xcconfig"; sourceTree = ""; }; 33 | 3C69EAFCA216335FC9D06B25 /* Pods-BCryptSwift_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BCryptSwift_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.debug.xcconfig"; sourceTree = ""; }; 34 | 44668B4C0ECB6047CAB9B971 /* BCryptSwift.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = BCryptSwift.podspec; path = ../BCryptSwift.podspec; sourceTree = ""; }; 35 | 515FA9684D460AB4781A2F34 /* Pods-BCryptSwift_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BCryptSwift_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.release.xcconfig"; sourceTree = ""; }; 36 | 5442129BD6A5E2B70305AACD /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 37 | 607FACD01AFB9204008FA782 /* BCryptSwift_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BCryptSwift_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 39 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 40 | 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 41 | 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 42 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 43 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 44 | 607FACE51AFB9204008FA782 /* BCryptSwift_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BCryptSwift_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 46 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 47 | 87FEDDEC819DB555ADD30577 /* Pods_BCryptSwift_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BCryptSwift_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | 92AE72B94EC583E8E3CAE003 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 49 | DCD5A24740672DDE3981650D /* Pods-BCryptSwift_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BCryptSwift_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.debug.xcconfig"; sourceTree = ""; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | DB14ACED78084A6EB585A2B4 /* Pods_BCryptSwift_Example.framework in Frameworks */, 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | 43ED5757EC2A4F84D25BDE0C /* Pods_BCryptSwift_Tests.framework in Frameworks */, 66 | ); 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | /* End PBXFrameworksBuildPhase section */ 70 | 71 | /* Begin PBXGroup section */ 72 | 607FACC71AFB9204008FA782 = { 73 | isa = PBXGroup; 74 | children = ( 75 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 76 | 607FACD21AFB9204008FA782 /* Example for BCryptSwift */, 77 | 607FACE81AFB9204008FA782 /* Tests */, 78 | 607FACD11AFB9204008FA782 /* Products */, 79 | 86789D58CAAC2E163C4F8FF0 /* Pods */, 80 | F82C435F28CBC9D51F1BA66A /* Frameworks */, 81 | ); 82 | sourceTree = ""; 83 | }; 84 | 607FACD11AFB9204008FA782 /* Products */ = { 85 | isa = PBXGroup; 86 | children = ( 87 | 607FACD01AFB9204008FA782 /* BCryptSwift_Example.app */, 88 | 607FACE51AFB9204008FA782 /* BCryptSwift_Tests.xctest */, 89 | ); 90 | name = Products; 91 | sourceTree = ""; 92 | }; 93 | 607FACD21AFB9204008FA782 /* Example for BCryptSwift */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 97 | 607FACD71AFB9204008FA782 /* ViewController.swift */, 98 | 607FACD91AFB9204008FA782 /* Main.storyboard */, 99 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 100 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 101 | 607FACD31AFB9204008FA782 /* Supporting Files */, 102 | ); 103 | name = "Example for BCryptSwift"; 104 | path = BCryptSwift; 105 | sourceTree = ""; 106 | }; 107 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 607FACD41AFB9204008FA782 /* Info.plist */, 111 | ); 112 | name = "Supporting Files"; 113 | sourceTree = ""; 114 | }; 115 | 607FACE81AFB9204008FA782 /* Tests */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 119 | 607FACE91AFB9204008FA782 /* Supporting Files */, 120 | ); 121 | path = Tests; 122 | sourceTree = ""; 123 | }; 124 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 125 | isa = PBXGroup; 126 | children = ( 127 | 607FACEA1AFB9204008FA782 /* Info.plist */, 128 | ); 129 | name = "Supporting Files"; 130 | sourceTree = ""; 131 | }; 132 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | 44668B4C0ECB6047CAB9B971 /* BCryptSwift.podspec */, 136 | 92AE72B94EC583E8E3CAE003 /* README.md */, 137 | 5442129BD6A5E2B70305AACD /* LICENSE */, 138 | ); 139 | name = "Podspec Metadata"; 140 | sourceTree = ""; 141 | }; 142 | 86789D58CAAC2E163C4F8FF0 /* Pods */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | DCD5A24740672DDE3981650D /* Pods-BCryptSwift_Example.debug.xcconfig */, 146 | 515FA9684D460AB4781A2F34 /* Pods-BCryptSwift_Example.release.xcconfig */, 147 | 3C69EAFCA216335FC9D06B25 /* Pods-BCryptSwift_Tests.debug.xcconfig */, 148 | 18204FCDFCE99CDB96A7E396 /* Pods-BCryptSwift_Tests.release.xcconfig */, 149 | ); 150 | name = Pods; 151 | sourceTree = ""; 152 | }; 153 | F82C435F28CBC9D51F1BA66A /* Frameworks */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 05DCD2E3C899D558D1C188DF /* Pods_BCryptSwift_Example.framework */, 157 | 87FEDDEC819DB555ADD30577 /* Pods_BCryptSwift_Tests.framework */, 158 | ); 159 | name = Frameworks; 160 | sourceTree = ""; 161 | }; 162 | /* End PBXGroup section */ 163 | 164 | /* Begin PBXNativeTarget section */ 165 | 607FACCF1AFB9204008FA782 /* BCryptSwift_Example */ = { 166 | isa = PBXNativeTarget; 167 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "BCryptSwift_Example" */; 168 | buildPhases = ( 169 | 17B7A961912DC3E03B2A97F9 /* [CP] Check Pods Manifest.lock */, 170 | 607FACCC1AFB9204008FA782 /* Sources */, 171 | 607FACCD1AFB9204008FA782 /* Frameworks */, 172 | 607FACCE1AFB9204008FA782 /* Resources */, 173 | B9C73C1B51BA92CAA185B07C /* [CP] Embed Pods Frameworks */, 174 | 0E1176003077163FB41210D6 /* [CP] Copy Pods Resources */, 175 | ); 176 | buildRules = ( 177 | ); 178 | dependencies = ( 179 | ); 180 | name = BCryptSwift_Example; 181 | productName = BCryptSwift; 182 | productReference = 607FACD01AFB9204008FA782 /* BCryptSwift_Example.app */; 183 | productType = "com.apple.product-type.application"; 184 | }; 185 | 607FACE41AFB9204008FA782 /* BCryptSwift_Tests */ = { 186 | isa = PBXNativeTarget; 187 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "BCryptSwift_Tests" */; 188 | buildPhases = ( 189 | 53C87D6190E2E6B90DC4CAAC /* [CP] Check Pods Manifest.lock */, 190 | 607FACE11AFB9204008FA782 /* Sources */, 191 | 607FACE21AFB9204008FA782 /* Frameworks */, 192 | 607FACE31AFB9204008FA782 /* Resources */, 193 | 2333FB5C3118EB647F53C7D6 /* [CP] Embed Pods Frameworks */, 194 | 3C440B505D4B0CBC5EDC26E2 /* [CP] Copy Pods Resources */, 195 | ); 196 | buildRules = ( 197 | ); 198 | dependencies = ( 199 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 200 | ); 201 | name = BCryptSwift_Tests; 202 | productName = Tests; 203 | productReference = 607FACE51AFB9204008FA782 /* BCryptSwift_Tests.xctest */; 204 | productType = "com.apple.product-type.bundle.unit-test"; 205 | }; 206 | /* End PBXNativeTarget section */ 207 | 208 | /* Begin PBXProject section */ 209 | 607FACC81AFB9204008FA782 /* Project object */ = { 210 | isa = PBXProject; 211 | attributes = { 212 | LastSwiftUpdateCheck = 0720; 213 | LastUpgradeCheck = 0900; 214 | ORGANIZATIONNAME = CocoaPods; 215 | TargetAttributes = { 216 | 607FACCF1AFB9204008FA782 = { 217 | CreatedOnToolsVersion = 6.3.1; 218 | DevelopmentTeam = 9RVZM5B68T; 219 | LastSwiftMigration = 0900; 220 | }; 221 | 607FACE41AFB9204008FA782 = { 222 | CreatedOnToolsVersion = 6.3.1; 223 | DevelopmentTeam = 9RVZM5B68T; 224 | LastSwiftMigration = 0900; 225 | TestTargetID = 607FACCF1AFB9204008FA782; 226 | }; 227 | }; 228 | }; 229 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "BCryptSwift" */; 230 | compatibilityVersion = "Xcode 3.2"; 231 | developmentRegion = English; 232 | hasScannedForEncodings = 0; 233 | knownRegions = ( 234 | en, 235 | Base, 236 | ); 237 | mainGroup = 607FACC71AFB9204008FA782; 238 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 239 | projectDirPath = ""; 240 | projectRoot = ""; 241 | targets = ( 242 | 607FACCF1AFB9204008FA782 /* BCryptSwift_Example */, 243 | 607FACE41AFB9204008FA782 /* BCryptSwift_Tests */, 244 | ); 245 | }; 246 | /* End PBXProject section */ 247 | 248 | /* Begin PBXResourcesBuildPhase section */ 249 | 607FACCE1AFB9204008FA782 /* Resources */ = { 250 | isa = PBXResourcesBuildPhase; 251 | buildActionMask = 2147483647; 252 | files = ( 253 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 254 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 255 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 256 | ); 257 | runOnlyForDeploymentPostprocessing = 0; 258 | }; 259 | 607FACE31AFB9204008FA782 /* Resources */ = { 260 | isa = PBXResourcesBuildPhase; 261 | buildActionMask = 2147483647; 262 | files = ( 263 | ); 264 | runOnlyForDeploymentPostprocessing = 0; 265 | }; 266 | /* End PBXResourcesBuildPhase section */ 267 | 268 | /* Begin PBXShellScriptBuildPhase section */ 269 | 0E1176003077163FB41210D6 /* [CP] Copy Pods Resources */ = { 270 | isa = PBXShellScriptBuildPhase; 271 | buildActionMask = 2147483647; 272 | files = ( 273 | ); 274 | inputPaths = ( 275 | ); 276 | name = "[CP] Copy Pods Resources"; 277 | outputPaths = ( 278 | ); 279 | runOnlyForDeploymentPostprocessing = 0; 280 | shellPath = /bin/sh; 281 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-resources.sh\"\n"; 282 | showEnvVarsInLog = 0; 283 | }; 284 | 17B7A961912DC3E03B2A97F9 /* [CP] Check Pods Manifest.lock */ = { 285 | isa = PBXShellScriptBuildPhase; 286 | buildActionMask = 2147483647; 287 | files = ( 288 | ); 289 | inputPaths = ( 290 | ); 291 | name = "[CP] Check Pods Manifest.lock"; 292 | outputPaths = ( 293 | ); 294 | runOnlyForDeploymentPostprocessing = 0; 295 | shellPath = /bin/sh; 296 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 297 | showEnvVarsInLog = 0; 298 | }; 299 | 2333FB5C3118EB647F53C7D6 /* [CP] Embed Pods Frameworks */ = { 300 | isa = PBXShellScriptBuildPhase; 301 | buildActionMask = 2147483647; 302 | files = ( 303 | ); 304 | inputPaths = ( 305 | ); 306 | name = "[CP] Embed Pods Frameworks"; 307 | outputPaths = ( 308 | ); 309 | runOnlyForDeploymentPostprocessing = 0; 310 | shellPath = /bin/sh; 311 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-frameworks.sh\"\n"; 312 | showEnvVarsInLog = 0; 313 | }; 314 | 3C440B505D4B0CBC5EDC26E2 /* [CP] Copy Pods Resources */ = { 315 | isa = PBXShellScriptBuildPhase; 316 | buildActionMask = 2147483647; 317 | files = ( 318 | ); 319 | inputPaths = ( 320 | ); 321 | name = "[CP] Copy Pods Resources"; 322 | outputPaths = ( 323 | ); 324 | runOnlyForDeploymentPostprocessing = 0; 325 | shellPath = /bin/sh; 326 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-resources.sh\"\n"; 327 | showEnvVarsInLog = 0; 328 | }; 329 | 53C87D6190E2E6B90DC4CAAC /* [CP] Check Pods Manifest.lock */ = { 330 | isa = PBXShellScriptBuildPhase; 331 | buildActionMask = 2147483647; 332 | files = ( 333 | ); 334 | inputPaths = ( 335 | ); 336 | name = "[CP] Check Pods Manifest.lock"; 337 | outputPaths = ( 338 | ); 339 | runOnlyForDeploymentPostprocessing = 0; 340 | shellPath = /bin/sh; 341 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 342 | showEnvVarsInLog = 0; 343 | }; 344 | B9C73C1B51BA92CAA185B07C /* [CP] Embed Pods Frameworks */ = { 345 | isa = PBXShellScriptBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | ); 349 | inputPaths = ( 350 | ); 351 | name = "[CP] Embed Pods Frameworks"; 352 | outputPaths = ( 353 | ); 354 | runOnlyForDeploymentPostprocessing = 0; 355 | shellPath = /bin/sh; 356 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-frameworks.sh\"\n"; 357 | showEnvVarsInLog = 0; 358 | }; 359 | /* End PBXShellScriptBuildPhase section */ 360 | 361 | /* Begin PBXSourcesBuildPhase section */ 362 | 607FACCC1AFB9204008FA782 /* Sources */ = { 363 | isa = PBXSourcesBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 367 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 368 | ); 369 | runOnlyForDeploymentPostprocessing = 0; 370 | }; 371 | 607FACE11AFB9204008FA782 /* Sources */ = { 372 | isa = PBXSourcesBuildPhase; 373 | buildActionMask = 2147483647; 374 | files = ( 375 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 376 | ); 377 | runOnlyForDeploymentPostprocessing = 0; 378 | }; 379 | /* End PBXSourcesBuildPhase section */ 380 | 381 | /* Begin PBXTargetDependency section */ 382 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 383 | isa = PBXTargetDependency; 384 | target = 607FACCF1AFB9204008FA782 /* BCryptSwift_Example */; 385 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 386 | }; 387 | /* End PBXTargetDependency section */ 388 | 389 | /* Begin PBXVariantGroup section */ 390 | 607FACD91AFB9204008FA782 /* Main.storyboard */ = { 391 | isa = PBXVariantGroup; 392 | children = ( 393 | 607FACDA1AFB9204008FA782 /* Base */, 394 | ); 395 | name = Main.storyboard; 396 | sourceTree = ""; 397 | }; 398 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 399 | isa = PBXVariantGroup; 400 | children = ( 401 | 607FACDF1AFB9204008FA782 /* Base */, 402 | ); 403 | name = LaunchScreen.xib; 404 | sourceTree = ""; 405 | }; 406 | /* End PBXVariantGroup section */ 407 | 408 | /* Begin XCBuildConfiguration section */ 409 | 607FACED1AFB9204008FA782 /* Debug */ = { 410 | isa = XCBuildConfiguration; 411 | buildSettings = { 412 | ALWAYS_SEARCH_USER_PATHS = NO; 413 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 414 | CLANG_CXX_LIBRARY = "libc++"; 415 | CLANG_ENABLE_MODULES = YES; 416 | CLANG_ENABLE_OBJC_ARC = YES; 417 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 418 | CLANG_WARN_BOOL_CONVERSION = YES; 419 | CLANG_WARN_COMMA = YES; 420 | CLANG_WARN_CONSTANT_CONVERSION = YES; 421 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 422 | CLANG_WARN_EMPTY_BODY = YES; 423 | CLANG_WARN_ENUM_CONVERSION = YES; 424 | CLANG_WARN_INFINITE_RECURSION = YES; 425 | CLANG_WARN_INT_CONVERSION = YES; 426 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 427 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 428 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 429 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 430 | CLANG_WARN_STRICT_PROTOTYPES = YES; 431 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 432 | CLANG_WARN_UNREACHABLE_CODE = YES; 433 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 434 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 435 | COPY_PHASE_STRIP = NO; 436 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 437 | ENABLE_STRICT_OBJC_MSGSEND = YES; 438 | ENABLE_TESTABILITY = YES; 439 | GCC_C_LANGUAGE_STANDARD = gnu99; 440 | GCC_DYNAMIC_NO_PIC = NO; 441 | GCC_NO_COMMON_BLOCKS = YES; 442 | GCC_OPTIMIZATION_LEVEL = 0; 443 | GCC_PREPROCESSOR_DEFINITIONS = ( 444 | "DEBUG=1", 445 | "$(inherited)", 446 | ); 447 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 448 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 449 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 450 | GCC_WARN_UNDECLARED_SELECTOR = YES; 451 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 452 | GCC_WARN_UNUSED_FUNCTION = YES; 453 | GCC_WARN_UNUSED_VARIABLE = YES; 454 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 455 | MTL_ENABLE_DEBUG_INFO = YES; 456 | ONLY_ACTIVE_ARCH = YES; 457 | SDKROOT = iphoneos; 458 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 459 | }; 460 | name = Debug; 461 | }; 462 | 607FACEE1AFB9204008FA782 /* Release */ = { 463 | isa = XCBuildConfiguration; 464 | buildSettings = { 465 | ALWAYS_SEARCH_USER_PATHS = NO; 466 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 467 | CLANG_CXX_LIBRARY = "libc++"; 468 | CLANG_ENABLE_MODULES = YES; 469 | CLANG_ENABLE_OBJC_ARC = YES; 470 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 471 | CLANG_WARN_BOOL_CONVERSION = YES; 472 | CLANG_WARN_COMMA = YES; 473 | CLANG_WARN_CONSTANT_CONVERSION = YES; 474 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 475 | CLANG_WARN_EMPTY_BODY = YES; 476 | CLANG_WARN_ENUM_CONVERSION = YES; 477 | CLANG_WARN_INFINITE_RECURSION = YES; 478 | CLANG_WARN_INT_CONVERSION = YES; 479 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 480 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 481 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 482 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 483 | CLANG_WARN_STRICT_PROTOTYPES = YES; 484 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 485 | CLANG_WARN_UNREACHABLE_CODE = YES; 486 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 487 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 488 | COPY_PHASE_STRIP = NO; 489 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 490 | ENABLE_NS_ASSERTIONS = NO; 491 | ENABLE_STRICT_OBJC_MSGSEND = YES; 492 | GCC_C_LANGUAGE_STANDARD = gnu99; 493 | GCC_NO_COMMON_BLOCKS = YES; 494 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 495 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 496 | GCC_WARN_UNDECLARED_SELECTOR = YES; 497 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 498 | GCC_WARN_UNUSED_FUNCTION = YES; 499 | GCC_WARN_UNUSED_VARIABLE = YES; 500 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 501 | MTL_ENABLE_DEBUG_INFO = NO; 502 | SDKROOT = iphoneos; 503 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 504 | VALIDATE_PRODUCT = YES; 505 | }; 506 | name = Release; 507 | }; 508 | 607FACF01AFB9204008FA782 /* Debug */ = { 509 | isa = XCBuildConfiguration; 510 | baseConfigurationReference = DCD5A24740672DDE3981650D /* Pods-BCryptSwift_Example.debug.xcconfig */; 511 | buildSettings = { 512 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 513 | DEVELOPMENT_TEAM = 9RVZM5B68T; 514 | INFOPLIST_FILE = BCryptSwift/Info.plist; 515 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 516 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 517 | MODULE_NAME = ExampleApp; 518 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 519 | PRODUCT_NAME = "$(TARGET_NAME)"; 520 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 521 | SWIFT_VERSION = 4.0; 522 | }; 523 | name = Debug; 524 | }; 525 | 607FACF11AFB9204008FA782 /* Release */ = { 526 | isa = XCBuildConfiguration; 527 | baseConfigurationReference = 515FA9684D460AB4781A2F34 /* Pods-BCryptSwift_Example.release.xcconfig */; 528 | buildSettings = { 529 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 530 | DEVELOPMENT_TEAM = 9RVZM5B68T; 531 | INFOPLIST_FILE = BCryptSwift/Info.plist; 532 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 533 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 534 | MODULE_NAME = ExampleApp; 535 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 536 | PRODUCT_NAME = "$(TARGET_NAME)"; 537 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 538 | SWIFT_VERSION = 4.0; 539 | }; 540 | name = Release; 541 | }; 542 | 607FACF31AFB9204008FA782 /* Debug */ = { 543 | isa = XCBuildConfiguration; 544 | baseConfigurationReference = 3C69EAFCA216335FC9D06B25 /* Pods-BCryptSwift_Tests.debug.xcconfig */; 545 | buildSettings = { 546 | DEVELOPMENT_TEAM = 9RVZM5B68T; 547 | FRAMEWORK_SEARCH_PATHS = ( 548 | "$(SDKROOT)/Developer/Library/Frameworks", 549 | "$(inherited)", 550 | ); 551 | GCC_PREPROCESSOR_DEFINITIONS = ( 552 | "DEBUG=1", 553 | "$(inherited)", 554 | ); 555 | INFOPLIST_FILE = Tests/Info.plist; 556 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 557 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 558 | PRODUCT_NAME = "$(TARGET_NAME)"; 559 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 560 | SWIFT_VERSION = 4.0; 561 | }; 562 | name = Debug; 563 | }; 564 | 607FACF41AFB9204008FA782 /* Release */ = { 565 | isa = XCBuildConfiguration; 566 | baseConfigurationReference = 18204FCDFCE99CDB96A7E396 /* Pods-BCryptSwift_Tests.release.xcconfig */; 567 | buildSettings = { 568 | DEVELOPMENT_TEAM = 9RVZM5B68T; 569 | FRAMEWORK_SEARCH_PATHS = ( 570 | "$(SDKROOT)/Developer/Library/Frameworks", 571 | "$(inherited)", 572 | ); 573 | INFOPLIST_FILE = Tests/Info.plist; 574 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 575 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 576 | PRODUCT_NAME = "$(TARGET_NAME)"; 577 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 578 | SWIFT_VERSION = 4.0; 579 | }; 580 | name = Release; 581 | }; 582 | /* End XCBuildConfiguration section */ 583 | 584 | /* Begin XCConfigurationList section */ 585 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "BCryptSwift" */ = { 586 | isa = XCConfigurationList; 587 | buildConfigurations = ( 588 | 607FACED1AFB9204008FA782 /* Debug */, 589 | 607FACEE1AFB9204008FA782 /* Release */, 590 | ); 591 | defaultConfigurationIsVisible = 0; 592 | defaultConfigurationName = Release; 593 | }; 594 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "BCryptSwift_Example" */ = { 595 | isa = XCConfigurationList; 596 | buildConfigurations = ( 597 | 607FACF01AFB9204008FA782 /* Debug */, 598 | 607FACF11AFB9204008FA782 /* Release */, 599 | ); 600 | defaultConfigurationIsVisible = 0; 601 | defaultConfigurationName = Release; 602 | }; 603 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "BCryptSwift_Tests" */ = { 604 | isa = XCConfigurationList; 605 | buildConfigurations = ( 606 | 607FACF31AFB9204008FA782 /* Debug */, 607 | 607FACF41AFB9204008FA782 /* Release */, 608 | ); 609 | defaultConfigurationIsVisible = 0; 610 | defaultConfigurationName = Release; 611 | }; 612 | /* End XCConfigurationList section */ 613 | }; 614 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 615 | } 616 | -------------------------------------------------------------------------------- /Example/BCryptSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/BCryptSwift.xcodeproj/xcshareddata/xcschemes/BCryptSwift-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 48 | 54 | 55 | 56 | 57 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 80 | 82 | 88 | 89 | 90 | 91 | 92 | 93 | 99 | 101 | 107 | 108 | 109 | 110 | 112 | 113 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /Example/BCryptSwift.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/BCryptSwift/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // BCryptSwift 4 | // 5 | // Created by fatface on 03/15/2017. 6 | // Copyright (c) 2017 fatface. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // 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. 24 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // 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. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // 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. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Example/BCryptSwift/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Example/BCryptSwift/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 43 | 44 | 45 | 46 | 47 | 48 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /Example/BCryptSwift/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Example/BCryptSwift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Example/BCryptSwift/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // BCryptSwift 4 | // 5 | // Created by Felipe Florencio Garcia on 3/14/17. 6 | // Copyright © 2017 Felipe Florencio Garcia. All rights reserved. 7 | // 8 | // Originally created by Joe Kramer https://github.com/meanjoe45/JKBCrypt 9 | // 10 | // Licensed under the Apache License, Version 2.0 (the "License"); 11 | // you may not use this file except in compliance with the License. 12 | // You may obtain a copy of the License at 13 | // 14 | // http://www.apache.org/licenses/LICENSE-2.0 15 | // 16 | // Unless required by applicable law or agreed to in writing, software 17 | // distributed under the License is distributed on an "AS IS" BASIS, 18 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19 | // See the License for the specific language governing permissions and 20 | // limitations under the License. 21 | // 22 | 23 | import UIKit 24 | import BCryptSwift 25 | 26 | fileprivate func < (lhs: T?, rhs: T?) -> Bool { 27 | switch (lhs, rhs) { 28 | case let (l?, r?): 29 | return l < r 30 | case (nil, _?): 31 | return true 32 | default: 33 | return false 34 | } 35 | } 36 | 37 | fileprivate func >= (lhs: T?, rhs: T?) -> Bool { 38 | switch (lhs, rhs) { 39 | case let (l?, r?): 40 | return l >= r 41 | default: 42 | return !(lhs < rhs) 43 | } 44 | } 45 | 46 | fileprivate func <= (lhs: T?, rhs: T?) -> Bool { 47 | switch (lhs, rhs) { 48 | case let (l?, r?): 49 | return l <= r 50 | default: 51 | return !(rhs < lhs) 52 | } 53 | } 54 | 55 | 56 | class ViewController: UIViewController { 57 | 58 | // MARK: - Property List 59 | 60 | @IBOutlet weak var hashLabelField: UITextField! 61 | @IBOutlet weak var hashInputTextField: UITextField! 62 | @IBOutlet weak var saltInputTextField: UITextField! 63 | @IBOutlet weak var compareLabelField: UITextField! 64 | @IBOutlet weak var compareInputTextField: UITextField! 65 | 66 | // MARK: - Action Methods 67 | 68 | @IBAction func generateSaltPressed() { 69 | self.hashLabelField.text = self.generateSalt() 70 | } 71 | 72 | @IBAction func createHashPressed() { 73 | if let hash = BCryptSwift.hashPassword(self.hashInputTextField.text!, withSalt: self.generateSalt()) { 74 | self.hashLabelField.text = hash 75 | } 76 | else { 77 | self.hashLabelField.text = "Hash generation failed" 78 | } 79 | } 80 | 81 | @IBAction func compareHashPressed() { 82 | if let compare = BCryptSwift.verifyPassword(self.compareInputTextField.text!, matchesHash:self.hashLabelField.text!) { 83 | if compare { 84 | self.compareLabelField.text = "The phrase was a SUCCESS!" 85 | } 86 | else { 87 | self.compareLabelField.text = "Compare phrase does NOT match hashed value" 88 | } 89 | } 90 | else { 91 | self.compareLabelField.text = "Compare hash generation failed" 92 | } 93 | } 94 | 95 | @IBAction func hideKeyboard() { 96 | self.hashInputTextField.resignFirstResponder() 97 | self.saltInputTextField.resignFirstResponder() 98 | self.compareInputTextField.resignFirstResponder() 99 | } 100 | 101 | // MARK: - Internal Methods 102 | 103 | func generateSalt() -> String { 104 | let rounds : Int? = Int(self.saltInputTextField.text!) 105 | 106 | var salt : String 107 | if rounds != nil && rounds >= 4 && rounds <= 31 { 108 | salt = BCryptSwift.generateSaltWithNumberOfRounds(UInt(rounds!)) 109 | } 110 | else { 111 | salt = BCryptSwift.generateSalt() 112 | } 113 | 114 | return salt 115 | } 116 | } 117 | 118 | 119 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'BCryptSwift_Example' do 4 | pod 'BCryptSwift', :path => '../' 5 | 6 | target 'BCryptSwift_Tests' do 7 | inherit! :search_paths 8 | 9 | 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BCryptSwift (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - BCryptSwift (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | BCryptSwift: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | BCryptSwift: 1345c4b84d181e9af10857bc1d33e2ff2402a58f 13 | 14 | PODFILE CHECKSUM: 6a6b73b9d4f82135608964ee2f35a637f5b9e792 15 | 16 | COCOAPODS: 1.2.0 17 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/BCryptSwift.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BCryptSwift", 3 | "version": "0.1.0", 4 | "summary": "BCryptSwift is an implementation of bcrypt written in Swift.", 5 | "description": "It currently is able to generate the salt and hash a phrase using a generated salt.\n```\nBCryptSwift.generateSaltWithNumberOfRounds(rounds: UInt) -> String\nBCryptSwift.generateSalt() -> String\nBCryptSwift.hashPassword(password: String, withSalt salt: String) -> String?\nBCryptSwift.verifyPassword(password: String, matchesHash hash: String) -> Bool?\n```\n\nThe `generateSaltWithNumberOfRounds()` class function will generate a random salt using the number of rounds provided. The number of rounds must be between 4 and 31 inclusively.\n\nThe `generateSalt()` class convenience function will generate a random salt using a default 10 rounds. This number can be adjusted based on your specific needs.\n\nThe `hashPassword(withSalt:)` class function will hash the password phrase using the salt. If there is an issue during processing, nil will be returned. Check the function documentation for details.\n\nThe `verifyPassword(matchesHash:)` class convenience function will hash the password phrase using the hash, then return the comparison between the new hash and the given hash. If there is an issue during processing, nil will be returned. Check the function documentation for details.", 6 | "homepage": "https://felipeflorencio.github.io", 7 | "license": { 8 | "type": "Apache 2.0 License", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "felipeflorencio": "felipeflorencio@me.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/felipeflorencio/BCryptSwift.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "BCryptSwift/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - BCryptSwift (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - BCryptSwift (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | BCryptSwift: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | BCryptSwift: 1345c4b84d181e9af10857bc1d33e2ff2402a58f 13 | 14 | PODFILE CHECKSUM: 6a6b73b9d4f82135608964ee2f35a637f5b9e792 15 | 16 | COCOAPODS: 1.2.0 17 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 06AF7601B09350BBD8378B4A1A1729E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; 11 | 27EF9E25B5FC8BA4F2D76B5996CA609C /* Pods-BCryptSwift_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A6950BCBCA264FE57F172F168CB7C1A /* Pods-BCryptSwift_Tests-dummy.m */; }; 12 | 4B67DA86F01BA5322B66D8CDE455A8DF /* BCryptSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37EF9FAF6F3CFE12F9C3B898F77ADBB0 /* BCryptSwift-dummy.m */; }; 13 | 6746A2B66032F0796946FA45AAC3EF6E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; 14 | 9A860DF227B620557E446ADBC2A9623D /* Pods-BCryptSwift_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1328A8C6BDC36D3B8A69248435C5EC86 /* Pods-BCryptSwift_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 15 | 9C2E3AE62500E271B8E23F723E262498 /* Pods-BCryptSwift_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F6B67B5ABFAEE37F5C7498B159D4FAC9 /* Pods-BCryptSwift_Example-dummy.m */; }; 16 | A6CF668B81BCDC3B6A875ED2B226045A /* BCryptSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9617075D8A4BAFF9A9326E8B9BAD77C3 /* BCryptSwift.swift */; }; 17 | AE4CA5479FD7616E6C037CBDC0BC2C60 /* Pods-BCryptSwift_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F7FBDEA1E9D15ECE90514CD35B848950 /* Pods-BCryptSwift_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 18 | D30CB6B8904807CBC14448A3B7927670 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; }; 19 | EA40DAC0B3AB980A9EB283717CF24FAB /* BCryptSwiftRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB31C8C2C2C809B51767035128657A0C /* BCryptSwiftRandom.swift */; }; 20 | F6BD1D5923A57EDF24DDF50E22CDDAD0 /* BCryptSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 60F7F419000C16F224017B3BB2F4391D /* BCryptSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 325F3D1525A1FE5BC4ACB7AF28653918 /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = 151C98441B35C90CAC49B68393DAD0ED; 29 | remoteInfo = BCryptSwift; 30 | }; 31 | /* End PBXContainerItemProxy section */ 32 | 33 | /* Begin PBXFileReference section */ 34 | 0A6950BCBCA264FE57F172F168CB7C1A /* Pods-BCryptSwift_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BCryptSwift_Tests-dummy.m"; sourceTree = ""; }; 35 | 0D79A10D5D98914FDDF43CA7433AA75E /* Pods_BCryptSwift_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BCryptSwift_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | 1328A8C6BDC36D3B8A69248435C5EC86 /* Pods-BCryptSwift_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BCryptSwift_Example-umbrella.h"; sourceTree = ""; }; 37 | 1543EED2BBC0A33B16329F4C25269D84 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38 | 16F7BC7E9AB755A144BAC9FB519465D2 /* Pods-BCryptSwift_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BCryptSwift_Example-resources.sh"; sourceTree = ""; }; 39 | 37EF9FAF6F3CFE12F9C3B898F77ADBB0 /* BCryptSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BCryptSwift-dummy.m"; sourceTree = ""; }; 40 | 3840C2DFBBC19994D73DDD16A6F5BF6E /* Pods-BCryptSwift_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BCryptSwift_Tests-resources.sh"; sourceTree = ""; }; 41 | 41F195F296E653DD8A5E812381B331A4 /* Pods-BCryptSwift_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BCryptSwift_Example-acknowledgements.markdown"; sourceTree = ""; }; 42 | 48C7C8FEB3AD552B4C104E8B8389EC75 /* Pods-BCryptSwift_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BCryptSwift_Tests-acknowledgements.plist"; sourceTree = ""; }; 43 | 4BC74287A170B0E89C90107BB52087B7 /* Pods-BCryptSwift_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BCryptSwift_Example.release.xcconfig"; sourceTree = ""; }; 44 | 4DC3C0B3393384FC9707A59679219615 /* Pods-BCryptSwift_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BCryptSwift_Example.debug.xcconfig"; sourceTree = ""; }; 45 | 5104993337271369D088B52A1BC18E23 /* BCryptSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BCryptSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 46 | 5180CAFFB761874585A0A02D87487CBF /* Pods_BCryptSwift_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BCryptSwift_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 53ACA68AA1B5A1FC425E85EA05C993D1 /* BCryptSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BCryptSwift.xcconfig; sourceTree = ""; }; 48 | 5F0A8A0A5320BBAD13DED1AD0944C8DE /* Pods-BCryptSwift_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BCryptSwift_Tests.debug.xcconfig"; sourceTree = ""; }; 49 | 5FA7AE260AF6E2B566D1E09AAA8547B0 /* Pods-BCryptSwift_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BCryptSwift_Tests.release.xcconfig"; sourceTree = ""; }; 50 | 60F7F419000C16F224017B3BB2F4391D /* BCryptSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BCryptSwift-umbrella.h"; sourceTree = ""; }; 51 | 668B3B5019BFC126CE93DF4F9A3CB31A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 52 | 867A8EC5B5685BC6102DACA4FA922B30 /* Pods-BCryptSwift_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-BCryptSwift_Example.modulemap"; sourceTree = ""; }; 53 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 54 | 9617075D8A4BAFF9A9326E8B9BAD77C3 /* BCryptSwift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BCryptSwift.swift; sourceTree = ""; }; 55 | 9F320159BC5E9004E40EFFC7AB3C22BF /* Pods-BCryptSwift_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-BCryptSwift_Tests.modulemap"; sourceTree = ""; }; 56 | A3A14ACD6951F9B4AA881D8A3B59B4CC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 57 | AAE9D4E51D020324B3C6C5CFCCDD093D /* BCryptSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = BCryptSwift.modulemap; sourceTree = ""; }; 58 | B531A51B6479005A3799C6AE29797500 /* BCryptSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BCryptSwift-prefix.pch"; sourceTree = ""; }; 59 | B6B010E8D740F19E65553A103D154777 /* Pods-BCryptSwift_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BCryptSwift_Tests-acknowledgements.markdown"; sourceTree = ""; }; 60 | BB31C8C2C2C809B51767035128657A0C /* BCryptSwiftRandom.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BCryptSwiftRandom.swift; sourceTree = ""; }; 61 | C08BF18286CD44DD26F48835D270D9D2 /* Pods-BCryptSwift_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BCryptSwift_Example-acknowledgements.plist"; sourceTree = ""; }; 62 | C47887BF49ED0D5B91EA3B4045F0196F /* Pods-BCryptSwift_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BCryptSwift_Tests-frameworks.sh"; sourceTree = ""; }; 63 | CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 64 | F1CCDD5BC81E96B91E1FEC074B881DC6 /* Pods-BCryptSwift_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BCryptSwift_Example-frameworks.sh"; sourceTree = ""; }; 65 | F6B67B5ABFAEE37F5C7498B159D4FAC9 /* Pods-BCryptSwift_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BCryptSwift_Example-dummy.m"; sourceTree = ""; }; 66 | F7FBDEA1E9D15ECE90514CD35B848950 /* Pods-BCryptSwift_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BCryptSwift_Tests-umbrella.h"; sourceTree = ""; }; 67 | /* End PBXFileReference section */ 68 | 69 | /* Begin PBXFrameworksBuildPhase section */ 70 | 679C66A8EDD93958399DB750C4A85C72 /* Frameworks */ = { 71 | isa = PBXFrameworksBuildPhase; 72 | buildActionMask = 2147483647; 73 | files = ( 74 | D30CB6B8904807CBC14448A3B7927670 /* Foundation.framework in Frameworks */, 75 | ); 76 | runOnlyForDeploymentPostprocessing = 0; 77 | }; 78 | A29A7DF746BC2378EBB23820F54A967A /* Frameworks */ = { 79 | isa = PBXFrameworksBuildPhase; 80 | buildActionMask = 2147483647; 81 | files = ( 82 | 6746A2B66032F0796946FA45AAC3EF6E /* Foundation.framework in Frameworks */, 83 | ); 84 | runOnlyForDeploymentPostprocessing = 0; 85 | }; 86 | ED23A0E4C35FC44E1B2872B4F34E6360 /* Frameworks */ = { 87 | isa = PBXFrameworksBuildPhase; 88 | buildActionMask = 2147483647; 89 | files = ( 90 | 06AF7601B09350BBD8378B4A1A1729E5 /* Foundation.framework in Frameworks */, 91 | ); 92 | runOnlyForDeploymentPostprocessing = 0; 93 | }; 94 | /* End PBXFrameworksBuildPhase section */ 95 | 96 | /* Begin PBXGroup section */ 97 | 15F0AC9393DF2ECB8634BA0EEF995C6F /* Products */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 5104993337271369D088B52A1BC18E23 /* BCryptSwift.framework */, 101 | 0D79A10D5D98914FDDF43CA7433AA75E /* Pods_BCryptSwift_Example.framework */, 102 | 5180CAFFB761874585A0A02D87487CBF /* Pods_BCryptSwift_Tests.framework */, 103 | ); 104 | name = Products; 105 | sourceTree = ""; 106 | }; 107 | 1D5EBD51328F3CF5D218E08E5B354C7D /* Targets Support Files */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 437BC2BD6751FDF793328746951EF8CB /* Pods-BCryptSwift_Example */, 111 | 5D964BD1CF9A74465B7920D31735B42D /* Pods-BCryptSwift_Tests */, 112 | ); 113 | name = "Targets Support Files"; 114 | sourceTree = ""; 115 | }; 116 | 3DCB7758792AF7CF88D464867617BB01 /* Classes */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 9617075D8A4BAFF9A9326E8B9BAD77C3 /* BCryptSwift.swift */, 120 | BB31C8C2C2C809B51767035128657A0C /* BCryptSwiftRandom.swift */, 121 | ); 122 | path = Classes; 123 | sourceTree = ""; 124 | }; 125 | 3DF4F8DDEB551F60ABA7EE86D638C07B /* BCryptSwift */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | A44782AC4F52A17A08C34A0C1A98922C /* BCryptSwift */, 129 | B5800AB6C1B77D4AA63A7370A63ED098 /* Support Files */, 130 | ); 131 | name = BCryptSwift; 132 | path = ../..; 133 | sourceTree = ""; 134 | }; 135 | 437BC2BD6751FDF793328746951EF8CB /* Pods-BCryptSwift_Example */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | 668B3B5019BFC126CE93DF4F9A3CB31A /* Info.plist */, 139 | 867A8EC5B5685BC6102DACA4FA922B30 /* Pods-BCryptSwift_Example.modulemap */, 140 | 41F195F296E653DD8A5E812381B331A4 /* Pods-BCryptSwift_Example-acknowledgements.markdown */, 141 | C08BF18286CD44DD26F48835D270D9D2 /* Pods-BCryptSwift_Example-acknowledgements.plist */, 142 | F6B67B5ABFAEE37F5C7498B159D4FAC9 /* Pods-BCryptSwift_Example-dummy.m */, 143 | F1CCDD5BC81E96B91E1FEC074B881DC6 /* Pods-BCryptSwift_Example-frameworks.sh */, 144 | 16F7BC7E9AB755A144BAC9FB519465D2 /* Pods-BCryptSwift_Example-resources.sh */, 145 | 1328A8C6BDC36D3B8A69248435C5EC86 /* Pods-BCryptSwift_Example-umbrella.h */, 146 | 4DC3C0B3393384FC9707A59679219615 /* Pods-BCryptSwift_Example.debug.xcconfig */, 147 | 4BC74287A170B0E89C90107BB52087B7 /* Pods-BCryptSwift_Example.release.xcconfig */, 148 | ); 149 | name = "Pods-BCryptSwift_Example"; 150 | path = "Target Support Files/Pods-BCryptSwift_Example"; 151 | sourceTree = ""; 152 | }; 153 | 5D964BD1CF9A74465B7920D31735B42D /* Pods-BCryptSwift_Tests */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 1543EED2BBC0A33B16329F4C25269D84 /* Info.plist */, 157 | 9F320159BC5E9004E40EFFC7AB3C22BF /* Pods-BCryptSwift_Tests.modulemap */, 158 | B6B010E8D740F19E65553A103D154777 /* Pods-BCryptSwift_Tests-acknowledgements.markdown */, 159 | 48C7C8FEB3AD552B4C104E8B8389EC75 /* Pods-BCryptSwift_Tests-acknowledgements.plist */, 160 | 0A6950BCBCA264FE57F172F168CB7C1A /* Pods-BCryptSwift_Tests-dummy.m */, 161 | C47887BF49ED0D5B91EA3B4045F0196F /* Pods-BCryptSwift_Tests-frameworks.sh */, 162 | 3840C2DFBBC19994D73DDD16A6F5BF6E /* Pods-BCryptSwift_Tests-resources.sh */, 163 | F7FBDEA1E9D15ECE90514CD35B848950 /* Pods-BCryptSwift_Tests-umbrella.h */, 164 | 5F0A8A0A5320BBAD13DED1AD0944C8DE /* Pods-BCryptSwift_Tests.debug.xcconfig */, 165 | 5FA7AE260AF6E2B566D1E09AAA8547B0 /* Pods-BCryptSwift_Tests.release.xcconfig */, 166 | ); 167 | name = "Pods-BCryptSwift_Tests"; 168 | path = "Target Support Files/Pods-BCryptSwift_Tests"; 169 | sourceTree = ""; 170 | }; 171 | 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */, 175 | ); 176 | name = iOS; 177 | sourceTree = ""; 178 | }; 179 | 7DB346D0F39D3F0E887471402A8071AB = { 180 | isa = PBXGroup; 181 | children = ( 182 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 183 | 97D1C24597A58F38DF7006A60D3AB977 /* Development Pods */, 184 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 185 | 15F0AC9393DF2ECB8634BA0EEF995C6F /* Products */, 186 | 1D5EBD51328F3CF5D218E08E5B354C7D /* Targets Support Files */, 187 | ); 188 | sourceTree = ""; 189 | }; 190 | 97D1C24597A58F38DF7006A60D3AB977 /* Development Pods */ = { 191 | isa = PBXGroup; 192 | children = ( 193 | 3DF4F8DDEB551F60ABA7EE86D638C07B /* BCryptSwift */, 194 | ); 195 | name = "Development Pods"; 196 | sourceTree = ""; 197 | }; 198 | A44782AC4F52A17A08C34A0C1A98922C /* BCryptSwift */ = { 199 | isa = PBXGroup; 200 | children = ( 201 | 3DCB7758792AF7CF88D464867617BB01 /* Classes */, 202 | ); 203 | path = BCryptSwift; 204 | sourceTree = ""; 205 | }; 206 | B5800AB6C1B77D4AA63A7370A63ED098 /* Support Files */ = { 207 | isa = PBXGroup; 208 | children = ( 209 | AAE9D4E51D020324B3C6C5CFCCDD093D /* BCryptSwift.modulemap */, 210 | 53ACA68AA1B5A1FC425E85EA05C993D1 /* BCryptSwift.xcconfig */, 211 | 37EF9FAF6F3CFE12F9C3B898F77ADBB0 /* BCryptSwift-dummy.m */, 212 | B531A51B6479005A3799C6AE29797500 /* BCryptSwift-prefix.pch */, 213 | 60F7F419000C16F224017B3BB2F4391D /* BCryptSwift-umbrella.h */, 214 | A3A14ACD6951F9B4AA881D8A3B59B4CC /* Info.plist */, 215 | ); 216 | name = "Support Files"; 217 | path = "Example/Pods/Target Support Files/BCryptSwift"; 218 | sourceTree = ""; 219 | }; 220 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 221 | isa = PBXGroup; 222 | children = ( 223 | 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */, 224 | ); 225 | name = Frameworks; 226 | sourceTree = ""; 227 | }; 228 | /* End PBXGroup section */ 229 | 230 | /* Begin PBXHeadersBuildPhase section */ 231 | 23C650B80D919700EB78F0B12B324E23 /* Headers */ = { 232 | isa = PBXHeadersBuildPhase; 233 | buildActionMask = 2147483647; 234 | files = ( 235 | F6BD1D5923A57EDF24DDF50E22CDDAD0 /* BCryptSwift-umbrella.h in Headers */, 236 | ); 237 | runOnlyForDeploymentPostprocessing = 0; 238 | }; 239 | 3A50B32EBF4FA846BC1BA017E05AE15B /* Headers */ = { 240 | isa = PBXHeadersBuildPhase; 241 | buildActionMask = 2147483647; 242 | files = ( 243 | 9A860DF227B620557E446ADBC2A9623D /* Pods-BCryptSwift_Example-umbrella.h in Headers */, 244 | ); 245 | runOnlyForDeploymentPostprocessing = 0; 246 | }; 247 | A556680BD3E7BF549C0BB3542744B889 /* Headers */ = { 248 | isa = PBXHeadersBuildPhase; 249 | buildActionMask = 2147483647; 250 | files = ( 251 | AE4CA5479FD7616E6C037CBDC0BC2C60 /* Pods-BCryptSwift_Tests-umbrella.h in Headers */, 252 | ); 253 | runOnlyForDeploymentPostprocessing = 0; 254 | }; 255 | /* End PBXHeadersBuildPhase section */ 256 | 257 | /* Begin PBXNativeTarget section */ 258 | 151C98441B35C90CAC49B68393DAD0ED /* BCryptSwift */ = { 259 | isa = PBXNativeTarget; 260 | buildConfigurationList = 9F1EA2C15C44E38A4C120481322984BA /* Build configuration list for PBXNativeTarget "BCryptSwift" */; 261 | buildPhases = ( 262 | 06B605B538734FC720630CC0EAA8B58E /* Sources */, 263 | A29A7DF746BC2378EBB23820F54A967A /* Frameworks */, 264 | 23C650B80D919700EB78F0B12B324E23 /* Headers */, 265 | ); 266 | buildRules = ( 267 | ); 268 | dependencies = ( 269 | ); 270 | name = BCryptSwift; 271 | productName = BCryptSwift; 272 | productReference = 5104993337271369D088B52A1BC18E23 /* BCryptSwift.framework */; 273 | productType = "com.apple.product-type.framework"; 274 | }; 275 | 3460A8C91B167FF78415A1B6767AC9E0 /* Pods-BCryptSwift_Example */ = { 276 | isa = PBXNativeTarget; 277 | buildConfigurationList = 71AD3E5A8E833D3ECABE535FB3F5AA73 /* Build configuration list for PBXNativeTarget "Pods-BCryptSwift_Example" */; 278 | buildPhases = ( 279 | 66A92659D498F4C1113C6455318B651C /* Sources */, 280 | ED23A0E4C35FC44E1B2872B4F34E6360 /* Frameworks */, 281 | 3A50B32EBF4FA846BC1BA017E05AE15B /* Headers */, 282 | ); 283 | buildRules = ( 284 | ); 285 | dependencies = ( 286 | 174F2D17624235360023AB4128F0D516 /* PBXTargetDependency */, 287 | ); 288 | name = "Pods-BCryptSwift_Example"; 289 | productName = "Pods-BCryptSwift_Example"; 290 | productReference = 0D79A10D5D98914FDDF43CA7433AA75E /* Pods_BCryptSwift_Example.framework */; 291 | productType = "com.apple.product-type.framework"; 292 | }; 293 | FC9A83AE9A96F663D8AE8C54DEE34F9A /* Pods-BCryptSwift_Tests */ = { 294 | isa = PBXNativeTarget; 295 | buildConfigurationList = 4E3C511CC8A4CC9A7E6B25B9698B2B2D /* Build configuration list for PBXNativeTarget "Pods-BCryptSwift_Tests" */; 296 | buildPhases = ( 297 | B7C74BD8DB104A1166FB12F5423133A2 /* Sources */, 298 | 679C66A8EDD93958399DB750C4A85C72 /* Frameworks */, 299 | A556680BD3E7BF549C0BB3542744B889 /* Headers */, 300 | ); 301 | buildRules = ( 302 | ); 303 | dependencies = ( 304 | ); 305 | name = "Pods-BCryptSwift_Tests"; 306 | productName = "Pods-BCryptSwift_Tests"; 307 | productReference = 5180CAFFB761874585A0A02D87487CBF /* Pods_BCryptSwift_Tests.framework */; 308 | productType = "com.apple.product-type.framework"; 309 | }; 310 | /* End PBXNativeTarget section */ 311 | 312 | /* Begin PBXProject section */ 313 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 314 | isa = PBXProject; 315 | attributes = { 316 | LastSwiftUpdateCheck = 0730; 317 | LastUpgradeCheck = 0930; 318 | TargetAttributes = { 319 | 151C98441B35C90CAC49B68393DAD0ED = { 320 | LastSwiftMigration = 0900; 321 | }; 322 | }; 323 | }; 324 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 325 | compatibilityVersion = "Xcode 3.2"; 326 | developmentRegion = English; 327 | hasScannedForEncodings = 0; 328 | knownRegions = ( 329 | en, 330 | ); 331 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 332 | productRefGroup = 15F0AC9393DF2ECB8634BA0EEF995C6F /* Products */; 333 | projectDirPath = ""; 334 | projectRoot = ""; 335 | targets = ( 336 | 151C98441B35C90CAC49B68393DAD0ED /* BCryptSwift */, 337 | 3460A8C91B167FF78415A1B6767AC9E0 /* Pods-BCryptSwift_Example */, 338 | FC9A83AE9A96F663D8AE8C54DEE34F9A /* Pods-BCryptSwift_Tests */, 339 | ); 340 | }; 341 | /* End PBXProject section */ 342 | 343 | /* Begin PBXSourcesBuildPhase section */ 344 | 06B605B538734FC720630CC0EAA8B58E /* Sources */ = { 345 | isa = PBXSourcesBuildPhase; 346 | buildActionMask = 2147483647; 347 | files = ( 348 | 4B67DA86F01BA5322B66D8CDE455A8DF /* BCryptSwift-dummy.m in Sources */, 349 | A6CF668B81BCDC3B6A875ED2B226045A /* BCryptSwift.swift in Sources */, 350 | EA40DAC0B3AB980A9EB283717CF24FAB /* BCryptSwiftRandom.swift in Sources */, 351 | ); 352 | runOnlyForDeploymentPostprocessing = 0; 353 | }; 354 | 66A92659D498F4C1113C6455318B651C /* Sources */ = { 355 | isa = PBXSourcesBuildPhase; 356 | buildActionMask = 2147483647; 357 | files = ( 358 | 9C2E3AE62500E271B8E23F723E262498 /* Pods-BCryptSwift_Example-dummy.m in Sources */, 359 | ); 360 | runOnlyForDeploymentPostprocessing = 0; 361 | }; 362 | B7C74BD8DB104A1166FB12F5423133A2 /* Sources */ = { 363 | isa = PBXSourcesBuildPhase; 364 | buildActionMask = 2147483647; 365 | files = ( 366 | 27EF9E25B5FC8BA4F2D76B5996CA609C /* Pods-BCryptSwift_Tests-dummy.m in Sources */, 367 | ); 368 | runOnlyForDeploymentPostprocessing = 0; 369 | }; 370 | /* End PBXSourcesBuildPhase section */ 371 | 372 | /* Begin PBXTargetDependency section */ 373 | 174F2D17624235360023AB4128F0D516 /* PBXTargetDependency */ = { 374 | isa = PBXTargetDependency; 375 | name = BCryptSwift; 376 | target = 151C98441B35C90CAC49B68393DAD0ED /* BCryptSwift */; 377 | targetProxy = 325F3D1525A1FE5BC4ACB7AF28653918 /* PBXContainerItemProxy */; 378 | }; 379 | /* End PBXTargetDependency section */ 380 | 381 | /* Begin XCBuildConfiguration section */ 382 | 02DDF9A238F10B3B9C3363218122F26C /* Debug */ = { 383 | isa = XCBuildConfiguration; 384 | baseConfigurationReference = 5F0A8A0A5320BBAD13DED1AD0944C8DE /* Pods-BCryptSwift_Tests.debug.xcconfig */; 385 | buildSettings = { 386 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 387 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 388 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 389 | CURRENT_PROJECT_VERSION = 1; 390 | DEBUG_INFORMATION_FORMAT = dwarf; 391 | DEFINES_MODULE = YES; 392 | DYLIB_COMPATIBILITY_VERSION = 1; 393 | DYLIB_CURRENT_VERSION = 1; 394 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 395 | ENABLE_STRICT_OBJC_MSGSEND = YES; 396 | GCC_NO_COMMON_BLOCKS = YES; 397 | INFOPLIST_FILE = "Target Support Files/Pods-BCryptSwift_Tests/Info.plist"; 398 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 399 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 400 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 401 | MACH_O_TYPE = staticlib; 402 | MODULEMAP_FILE = "Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.modulemap"; 403 | MTL_ENABLE_DEBUG_INFO = YES; 404 | OTHER_LDFLAGS = ""; 405 | OTHER_LIBTOOLFLAGS = ""; 406 | PODS_ROOT = "$(SRCROOT)"; 407 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 408 | PRODUCT_NAME = Pods_BCryptSwift_Tests; 409 | SDKROOT = iphoneos; 410 | SKIP_INSTALL = YES; 411 | TARGETED_DEVICE_FAMILY = "1,2"; 412 | VERSIONING_SYSTEM = "apple-generic"; 413 | VERSION_INFO_PREFIX = ""; 414 | }; 415 | name = Debug; 416 | }; 417 | 654FF6AF103AF4305A9D432497D6FA49 /* Debug */ = { 418 | isa = XCBuildConfiguration; 419 | baseConfigurationReference = 53ACA68AA1B5A1FC425E85EA05C993D1 /* BCryptSwift.xcconfig */; 420 | buildSettings = { 421 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 422 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 423 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 424 | CURRENT_PROJECT_VERSION = 1; 425 | DEBUG_INFORMATION_FORMAT = dwarf; 426 | DEFINES_MODULE = YES; 427 | DYLIB_COMPATIBILITY_VERSION = 1; 428 | DYLIB_CURRENT_VERSION = 1; 429 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 430 | ENABLE_STRICT_OBJC_MSGSEND = YES; 431 | GCC_NO_COMMON_BLOCKS = YES; 432 | GCC_PREFIX_HEADER = "Target Support Files/BCryptSwift/BCryptSwift-prefix.pch"; 433 | INFOPLIST_FILE = "Target Support Files/BCryptSwift/Info.plist"; 434 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 435 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 436 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 437 | MODULEMAP_FILE = "Target Support Files/BCryptSwift/BCryptSwift.modulemap"; 438 | MTL_ENABLE_DEBUG_INFO = YES; 439 | PRODUCT_NAME = BCryptSwift; 440 | SDKROOT = iphoneos; 441 | SKIP_INSTALL = YES; 442 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 443 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 444 | SWIFT_VERSION = 4.0; 445 | TARGETED_DEVICE_FAMILY = "1,2"; 446 | VERSIONING_SYSTEM = "apple-generic"; 447 | VERSION_INFO_PREFIX = ""; 448 | }; 449 | name = Debug; 450 | }; 451 | 7119365D80140E6DFBE22C3BEF8DE3E9 /* Debug */ = { 452 | isa = XCBuildConfiguration; 453 | baseConfigurationReference = 4DC3C0B3393384FC9707A59679219615 /* Pods-BCryptSwift_Example.debug.xcconfig */; 454 | buildSettings = { 455 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 456 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 457 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 458 | CURRENT_PROJECT_VERSION = 1; 459 | DEBUG_INFORMATION_FORMAT = dwarf; 460 | DEFINES_MODULE = YES; 461 | DYLIB_COMPATIBILITY_VERSION = 1; 462 | DYLIB_CURRENT_VERSION = 1; 463 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 464 | ENABLE_STRICT_OBJC_MSGSEND = YES; 465 | GCC_NO_COMMON_BLOCKS = YES; 466 | INFOPLIST_FILE = "Target Support Files/Pods-BCryptSwift_Example/Info.plist"; 467 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 468 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 469 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 470 | MACH_O_TYPE = staticlib; 471 | MODULEMAP_FILE = "Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.modulemap"; 472 | MTL_ENABLE_DEBUG_INFO = YES; 473 | OTHER_LDFLAGS = ""; 474 | OTHER_LIBTOOLFLAGS = ""; 475 | PODS_ROOT = "$(SRCROOT)"; 476 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 477 | PRODUCT_NAME = Pods_BCryptSwift_Example; 478 | SDKROOT = iphoneos; 479 | SKIP_INSTALL = YES; 480 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 481 | TARGETED_DEVICE_FAMILY = "1,2"; 482 | VERSIONING_SYSTEM = "apple-generic"; 483 | VERSION_INFO_PREFIX = ""; 484 | }; 485 | name = Debug; 486 | }; 487 | 8DED8AD26D381A6ACFF202E5217EC498 /* Release */ = { 488 | isa = XCBuildConfiguration; 489 | buildSettings = { 490 | ALWAYS_SEARCH_USER_PATHS = NO; 491 | CLANG_ANALYZER_NONNULL = YES; 492 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 493 | CLANG_CXX_LIBRARY = "libc++"; 494 | CLANG_ENABLE_MODULES = YES; 495 | CLANG_ENABLE_OBJC_ARC = YES; 496 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 497 | CLANG_WARN_BOOL_CONVERSION = YES; 498 | CLANG_WARN_COMMA = YES; 499 | CLANG_WARN_CONSTANT_CONVERSION = YES; 500 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 501 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 502 | CLANG_WARN_EMPTY_BODY = YES; 503 | CLANG_WARN_ENUM_CONVERSION = YES; 504 | CLANG_WARN_INFINITE_RECURSION = YES; 505 | CLANG_WARN_INT_CONVERSION = YES; 506 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 507 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 508 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 509 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 510 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 511 | CLANG_WARN_STRICT_PROTOTYPES = YES; 512 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 513 | CLANG_WARN_UNREACHABLE_CODE = YES; 514 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 515 | CODE_SIGNING_REQUIRED = NO; 516 | COPY_PHASE_STRIP = YES; 517 | ENABLE_NS_ASSERTIONS = NO; 518 | ENABLE_STRICT_OBJC_MSGSEND = YES; 519 | GCC_C_LANGUAGE_STANDARD = gnu99; 520 | GCC_NO_COMMON_BLOCKS = YES; 521 | GCC_PREPROCESSOR_DEFINITIONS = ( 522 | "POD_CONFIGURATION_RELEASE=1", 523 | "$(inherited)", 524 | ); 525 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 526 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 527 | GCC_WARN_UNDECLARED_SELECTOR = YES; 528 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 529 | GCC_WARN_UNUSED_FUNCTION = YES; 530 | GCC_WARN_UNUSED_VARIABLE = YES; 531 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 532 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 533 | STRIP_INSTALLED_PRODUCT = NO; 534 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 535 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 536 | SYMROOT = "${SRCROOT}/../build"; 537 | VALIDATE_PRODUCT = YES; 538 | }; 539 | name = Release; 540 | }; 541 | 92C5A4ACE6B997AFBA0AB0B222D52798 /* Release */ = { 542 | isa = XCBuildConfiguration; 543 | baseConfigurationReference = 53ACA68AA1B5A1FC425E85EA05C993D1 /* BCryptSwift.xcconfig */; 544 | buildSettings = { 545 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 546 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 547 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 548 | CURRENT_PROJECT_VERSION = 1; 549 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 550 | DEFINES_MODULE = YES; 551 | DYLIB_COMPATIBILITY_VERSION = 1; 552 | DYLIB_CURRENT_VERSION = 1; 553 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 554 | ENABLE_STRICT_OBJC_MSGSEND = YES; 555 | GCC_NO_COMMON_BLOCKS = YES; 556 | GCC_PREFIX_HEADER = "Target Support Files/BCryptSwift/BCryptSwift-prefix.pch"; 557 | INFOPLIST_FILE = "Target Support Files/BCryptSwift/Info.plist"; 558 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 559 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 560 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 561 | MODULEMAP_FILE = "Target Support Files/BCryptSwift/BCryptSwift.modulemap"; 562 | MTL_ENABLE_DEBUG_INFO = NO; 563 | PRODUCT_NAME = BCryptSwift; 564 | SDKROOT = iphoneos; 565 | SKIP_INSTALL = YES; 566 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 567 | SWIFT_VERSION = 4.0; 568 | TARGETED_DEVICE_FAMILY = "1,2"; 569 | VERSIONING_SYSTEM = "apple-generic"; 570 | VERSION_INFO_PREFIX = ""; 571 | }; 572 | name = Release; 573 | }; 574 | 9E1E4E48AF2EAB23169E611BF694090A /* Debug */ = { 575 | isa = XCBuildConfiguration; 576 | buildSettings = { 577 | ALWAYS_SEARCH_USER_PATHS = NO; 578 | CLANG_ANALYZER_NONNULL = YES; 579 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 580 | CLANG_CXX_LIBRARY = "libc++"; 581 | CLANG_ENABLE_MODULES = YES; 582 | CLANG_ENABLE_OBJC_ARC = YES; 583 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 584 | CLANG_WARN_BOOL_CONVERSION = YES; 585 | CLANG_WARN_COMMA = YES; 586 | CLANG_WARN_CONSTANT_CONVERSION = YES; 587 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 588 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 589 | CLANG_WARN_EMPTY_BODY = YES; 590 | CLANG_WARN_ENUM_CONVERSION = YES; 591 | CLANG_WARN_INFINITE_RECURSION = YES; 592 | CLANG_WARN_INT_CONVERSION = YES; 593 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 594 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 595 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 596 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 597 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 598 | CLANG_WARN_STRICT_PROTOTYPES = YES; 599 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 600 | CLANG_WARN_UNREACHABLE_CODE = YES; 601 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 602 | CODE_SIGNING_REQUIRED = NO; 603 | COPY_PHASE_STRIP = NO; 604 | ENABLE_STRICT_OBJC_MSGSEND = YES; 605 | ENABLE_TESTABILITY = YES; 606 | GCC_C_LANGUAGE_STANDARD = gnu99; 607 | GCC_DYNAMIC_NO_PIC = NO; 608 | GCC_NO_COMMON_BLOCKS = YES; 609 | GCC_OPTIMIZATION_LEVEL = 0; 610 | GCC_PREPROCESSOR_DEFINITIONS = ( 611 | "POD_CONFIGURATION_DEBUG=1", 612 | "DEBUG=1", 613 | "$(inherited)", 614 | ); 615 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 616 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 617 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 618 | GCC_WARN_UNDECLARED_SELECTOR = YES; 619 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 620 | GCC_WARN_UNUSED_FUNCTION = YES; 621 | GCC_WARN_UNUSED_VARIABLE = YES; 622 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 623 | ONLY_ACTIVE_ARCH = YES; 624 | PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; 625 | STRIP_INSTALLED_PRODUCT = NO; 626 | SWIFT_SWIFT3_OBJC_INFERENCE = Off; 627 | SYMROOT = "${SRCROOT}/../build"; 628 | }; 629 | name = Debug; 630 | }; 631 | A1A7913D3931A0641041693F38D1A1B2 /* Release */ = { 632 | isa = XCBuildConfiguration; 633 | baseConfigurationReference = 5FA7AE260AF6E2B566D1E09AAA8547B0 /* Pods-BCryptSwift_Tests.release.xcconfig */; 634 | buildSettings = { 635 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 636 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 637 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 638 | CURRENT_PROJECT_VERSION = 1; 639 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 640 | DEFINES_MODULE = YES; 641 | DYLIB_COMPATIBILITY_VERSION = 1; 642 | DYLIB_CURRENT_VERSION = 1; 643 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 644 | ENABLE_STRICT_OBJC_MSGSEND = YES; 645 | GCC_NO_COMMON_BLOCKS = YES; 646 | INFOPLIST_FILE = "Target Support Files/Pods-BCryptSwift_Tests/Info.plist"; 647 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 648 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 649 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 650 | MACH_O_TYPE = staticlib; 651 | MODULEMAP_FILE = "Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.modulemap"; 652 | MTL_ENABLE_DEBUG_INFO = NO; 653 | OTHER_LDFLAGS = ""; 654 | OTHER_LIBTOOLFLAGS = ""; 655 | PODS_ROOT = "$(SRCROOT)"; 656 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 657 | PRODUCT_NAME = Pods_BCryptSwift_Tests; 658 | SDKROOT = iphoneos; 659 | SKIP_INSTALL = YES; 660 | TARGETED_DEVICE_FAMILY = "1,2"; 661 | VERSIONING_SYSTEM = "apple-generic"; 662 | VERSION_INFO_PREFIX = ""; 663 | }; 664 | name = Release; 665 | }; 666 | F42CB012CB037F3F133BFA3433345DB1 /* Release */ = { 667 | isa = XCBuildConfiguration; 668 | baseConfigurationReference = 4BC74287A170B0E89C90107BB52087B7 /* Pods-BCryptSwift_Example.release.xcconfig */; 669 | buildSettings = { 670 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 671 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 672 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 673 | CURRENT_PROJECT_VERSION = 1; 674 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 675 | DEFINES_MODULE = YES; 676 | DYLIB_COMPATIBILITY_VERSION = 1; 677 | DYLIB_CURRENT_VERSION = 1; 678 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 679 | ENABLE_STRICT_OBJC_MSGSEND = YES; 680 | GCC_NO_COMMON_BLOCKS = YES; 681 | INFOPLIST_FILE = "Target Support Files/Pods-BCryptSwift_Example/Info.plist"; 682 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 683 | IPHONEOS_DEPLOYMENT_TARGET = 8.3; 684 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 685 | MACH_O_TYPE = staticlib; 686 | MODULEMAP_FILE = "Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.modulemap"; 687 | MTL_ENABLE_DEBUG_INFO = NO; 688 | OTHER_LDFLAGS = ""; 689 | OTHER_LIBTOOLFLAGS = ""; 690 | PODS_ROOT = "$(SRCROOT)"; 691 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 692 | PRODUCT_NAME = Pods_BCryptSwift_Example; 693 | SDKROOT = iphoneos; 694 | SKIP_INSTALL = YES; 695 | TARGETED_DEVICE_FAMILY = "1,2"; 696 | VERSIONING_SYSTEM = "apple-generic"; 697 | VERSION_INFO_PREFIX = ""; 698 | }; 699 | name = Release; 700 | }; 701 | /* End XCBuildConfiguration section */ 702 | 703 | /* Begin XCConfigurationList section */ 704 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 705 | isa = XCConfigurationList; 706 | buildConfigurations = ( 707 | 9E1E4E48AF2EAB23169E611BF694090A /* Debug */, 708 | 8DED8AD26D381A6ACFF202E5217EC498 /* Release */, 709 | ); 710 | defaultConfigurationIsVisible = 0; 711 | defaultConfigurationName = Release; 712 | }; 713 | 4E3C511CC8A4CC9A7E6B25B9698B2B2D /* Build configuration list for PBXNativeTarget "Pods-BCryptSwift_Tests" */ = { 714 | isa = XCConfigurationList; 715 | buildConfigurations = ( 716 | 02DDF9A238F10B3B9C3363218122F26C /* Debug */, 717 | A1A7913D3931A0641041693F38D1A1B2 /* Release */, 718 | ); 719 | defaultConfigurationIsVisible = 0; 720 | defaultConfigurationName = Release; 721 | }; 722 | 71AD3E5A8E833D3ECABE535FB3F5AA73 /* Build configuration list for PBXNativeTarget "Pods-BCryptSwift_Example" */ = { 723 | isa = XCConfigurationList; 724 | buildConfigurations = ( 725 | 7119365D80140E6DFBE22C3BEF8DE3E9 /* Debug */, 726 | F42CB012CB037F3F133BFA3433345DB1 /* Release */, 727 | ); 728 | defaultConfigurationIsVisible = 0; 729 | defaultConfigurationName = Release; 730 | }; 731 | 9F1EA2C15C44E38A4C120481322984BA /* Build configuration list for PBXNativeTarget "BCryptSwift" */ = { 732 | isa = XCConfigurationList; 733 | buildConfigurations = ( 734 | 654FF6AF103AF4305A9D432497D6FA49 /* Debug */, 735 | 92C5A4ACE6B997AFBA0AB0B222D52798 /* Release */, 736 | ); 737 | defaultConfigurationIsVisible = 0; 738 | defaultConfigurationName = Release; 739 | }; 740 | /* End XCConfigurationList section */ 741 | }; 742 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 743 | } 744 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/BCryptSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_BCryptSwift : NSObject 3 | @end 4 | @implementation PodsDummy_BCryptSwift 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/BCryptSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/BCryptSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double BCryptSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char BCryptSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/BCryptSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module BCryptSwift { 2 | umbrella header "BCryptSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/BCryptSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/BCryptSwift 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/BCryptSwift/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## BCryptSwift 5 | 6 | Copyright (c) 2017 Felipe Florencio Garcia 7 | 8 | Apache License 9 | Version 2.0, January 2004 10 | http://www.apache.org/licenses/ 11 | 12 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 13 | 14 | 1. Definitions. 15 | 16 | "License" shall mean the terms and conditions for use, reproduction, 17 | and distribution as defined by Sections 1 through 9 of this document. 18 | 19 | "Licensor" shall mean the copyright owner or entity authorized by 20 | the copyright owner that is granting the License. 21 | 22 | "Legal Entity" shall mean the union of the acting entity and all 23 | other entities that control, are controlled by, or are under common 24 | control with that entity. For the purposes of this definition, 25 | "control" means (i) the power, direct or indirect, to cause the 26 | direction or management of such entity, whether by contract or 27 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 28 | outstanding shares, or (iii) beneficial ownership of such entity. 29 | 30 | "You" (or "Your") shall mean an individual or Legal Entity 31 | exercising permissions granted by this License. 32 | 33 | "Source" form shall mean the preferred form for making modifications, 34 | including but not limited to software source code, documentation 35 | source, and configuration files. 36 | 37 | "Object" form shall mean any form resulting from mechanical 38 | transformation or translation of a Source form, including but 39 | not limited to compiled object code, generated documentation, 40 | and conversions to other media types. 41 | 42 | "Work" shall mean the work of authorship, whether in Source or 43 | Object form, made available under the License, as indicated by a 44 | copyright notice that is included in or attached to the work 45 | (an example is provided in the Appendix below). 46 | 47 | "Derivative Works" shall mean any work, whether in Source or Object 48 | form, that is based on (or derived from) the Work and for which the 49 | editorial revisions, annotations, elaborations, or other modifications 50 | represent, as a whole, an original work of authorship. For the purposes 51 | of this License, Derivative Works shall not include works that remain 52 | separable from, or merely link (or bind by name) to the interfaces of, 53 | the Work and Derivative Works thereof. 54 | 55 | "Contribution" shall mean any work of authorship, including 56 | the original version of the Work and any modifications or additions 57 | to that Work or Derivative Works thereof, that is intentionally 58 | submitted to Licensor for inclusion in the Work by the copyright owner 59 | or by an individual or Legal Entity authorized to submit on behalf of 60 | the copyright owner. For the purposes of this definition, "submitted" 61 | means any form of electronic, verbal, or written communication sent 62 | to the Licensor or its representatives, including but not limited to 63 | communication on electronic mailing lists, source code control systems, 64 | and issue tracking systems that are managed by, or on behalf of, the 65 | Licensor for the purpose of discussing and improving the Work, but 66 | excluding communication that is conspicuously marked or otherwise 67 | designated in writing by the copyright owner as "Not a Contribution." 68 | 69 | "Contributor" shall mean Licensor and any individual or Legal Entity 70 | on behalf of whom a Contribution has been received by Licensor and 71 | subsequently incorporated within the Work. 72 | 73 | 2. Grant of Copyright License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | copyright license to reproduce, prepare Derivative Works of, 77 | publicly display, publicly perform, sublicense, and distribute the 78 | Work and such Derivative Works in Source or Object form. 79 | 80 | 3. Grant of Patent License. Subject to the terms and conditions of 81 | this License, each Contributor hereby grants to You a perpetual, 82 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 83 | (except as stated in this section) patent license to make, have made, 84 | use, offer to sell, sell, import, and otherwise transfer the Work, 85 | where such license applies only to those patent claims licensable 86 | by such Contributor that are necessarily infringed by their 87 | Contribution(s) alone or by combination of their Contribution(s) 88 | with the Work to which such Contribution(s) was submitted. If You 89 | institute patent litigation against any entity (including a 90 | cross-claim or counterclaim in a lawsuit) alleging that the Work 91 | or a Contribution incorporated within the Work constitutes direct 92 | or contributory patent infringement, then any patent licenses 93 | granted to You under this License for that Work shall terminate 94 | as of the date such litigation is filed. 95 | 96 | 4. Redistribution. You may reproduce and distribute copies of the 97 | Work or Derivative Works thereof in any medium, with or without 98 | modifications, and in Source or Object form, provided that You 99 | meet the following conditions: 100 | 101 | (a) You must give any other recipients of the Work or 102 | Derivative Works a copy of this License; and 103 | 104 | (b) You must cause any modified files to carry prominent notices 105 | stating that You changed the files; and 106 | 107 | (c) You must retain, in the Source form of any Derivative Works 108 | that You distribute, all copyright, patent, trademark, and 109 | attribution notices from the Source form of the Work, 110 | excluding those notices that do not pertain to any part of 111 | the Derivative Works; and 112 | 113 | (d) If the Work includes a "NOTICE" text file as part of its 114 | distribution, then any Derivative Works that You distribute must 115 | include a readable copy of the attribution notices contained 116 | within such NOTICE file, excluding those notices that do not 117 | pertain to any part of the Derivative Works, in at least one 118 | of the following places: within a NOTICE text file distributed 119 | as part of the Derivative Works; within the Source form or 120 | documentation, if provided along with the Derivative Works; or, 121 | within a display generated by the Derivative Works, if and 122 | wherever such third-party notices normally appear. The contents 123 | of the NOTICE file are for informational purposes only and 124 | do not modify the License. You may add Your own attribution 125 | notices within Derivative Works that You distribute, alongside 126 | or as an addendum to the NOTICE text from the Work, provided 127 | that such additional attribution notices cannot be construed 128 | as modifying the License. 129 | 130 | You may add Your own copyright statement to Your modifications and 131 | may provide additional or different license terms and conditions 132 | for use, reproduction, or distribution of Your modifications, or 133 | for any such Derivative Works as a whole, provided Your use, 134 | reproduction, and distribution of the Work otherwise complies with 135 | the conditions stated in this License. 136 | 137 | 5. Submission of Contributions. Unless You explicitly state otherwise, 138 | any Contribution intentionally submitted for inclusion in the Work 139 | by You to the Licensor shall be under the terms and conditions of 140 | this License, without any additional terms or conditions. 141 | Notwithstanding the above, nothing herein shall supersede or modify 142 | the terms of any separate license agreement you may have executed 143 | with Licensor regarding such Contributions. 144 | 145 | 6. Trademarks. This License does not grant permission to use the trade 146 | names, trademarks, service marks, or product names of the Licensor, 147 | except as required for reasonable and customary use in describing the 148 | origin of the Work and reproducing the content of the NOTICE file. 149 | 150 | 7. Disclaimer of Warranty. Unless required by applicable law or 151 | agreed to in writing, Licensor provides the Work (and each 152 | Contributor provides its Contributions) on an "AS IS" BASIS, 153 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 154 | implied, including, without limitation, any warranties or conditions 155 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 156 | PARTICULAR PURPOSE. You are solely responsible for determining the 157 | appropriateness of using or redistributing the Work and assume any 158 | risks associated with Your exercise of permissions under this License. 159 | 160 | 8. Limitation of Liability. In no event and under no legal theory, 161 | whether in tort (including negligence), contract, or otherwise, 162 | unless required by applicable law (such as deliberate and grossly 163 | negligent acts) or agreed to in writing, shall any Contributor be 164 | liable to You for damages, including any direct, indirect, special, 165 | incidental, or consequential damages of any character arising as a 166 | result of this License or out of the use or inability to use the 167 | Work (including but not limited to damages for loss of goodwill, 168 | work stoppage, computer failure or malfunction, or any and all 169 | other commercial damages or losses), even if such Contributor 170 | has been advised of the possibility of such damages. 171 | 172 | 9. Accepting Warranty or Additional Liability. While redistributing 173 | the Work or Derivative Works thereof, You may choose to offer, 174 | and charge a fee for, acceptance of support, warranty, indemnity, 175 | or other liability obligations and/or rights consistent with this 176 | License. However, in accepting such obligations, You may act only 177 | on Your own behalf and on Your sole responsibility, not on behalf 178 | of any other Contributor, and only if You agree to indemnify, 179 | defend, and hold each Contributor harmless for any liability 180 | incurred by, or claims asserted against, such Contributor by reason 181 | of your accepting any such warranty or additional liability. 182 | 183 | END OF TERMS AND CONDITIONS 184 | 185 | APPENDIX: How to apply the Apache License to your work. 186 | 187 | To apply the Apache License to your work, attach the following 188 | boilerplate notice, with the fields enclosed by brackets "{}" 189 | replaced with your own identifying information. (Don't include 190 | the brackets!) The text should be enclosed in the appropriate 191 | comment syntax for the file format. We also recommend that a 192 | file or class name and description of purpose be included on the 193 | same "printed page" as the copyright notice for easier 194 | identification within third-party archives. 195 | 196 | Copyright 2017 Felipe Florencio Garcia 197 | 198 | Licensed under the Apache License, Version 2.0 (the "License"); 199 | you may not use this file except in compliance with the License. 200 | You may obtain a copy of the License at 201 | 202 | http://www.apache.org/licenses/LICENSE-2.0 203 | 204 | Unless required by applicable law or agreed to in writing, software 205 | distributed under the License is distributed on an "AS IS" BASIS, 206 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 207 | See the License for the specific language governing permissions and 208 | limitations under the License. 209 | 210 | Generated by CocoaPods - https://cocoapods.org 211 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2017 Felipe Florencio Garcia <felipeflorencio@me.com> 18 | 19 | Apache License 20 | Version 2.0, January 2004 21 | http://www.apache.org/licenses/ 22 | 23 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 24 | 25 | 1. Definitions. 26 | 27 | "License" shall mean the terms and conditions for use, reproduction, 28 | and distribution as defined by Sections 1 through 9 of this document. 29 | 30 | "Licensor" shall mean the copyright owner or entity authorized by 31 | the copyright owner that is granting the License. 32 | 33 | "Legal Entity" shall mean the union of the acting entity and all 34 | other entities that control, are controlled by, or are under common 35 | control with that entity. For the purposes of this definition, 36 | "control" means (i) the power, direct or indirect, to cause the 37 | direction or management of such entity, whether by contract or 38 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 39 | outstanding shares, or (iii) beneficial ownership of such entity. 40 | 41 | "You" (or "Your") shall mean an individual or Legal Entity 42 | exercising permissions granted by this License. 43 | 44 | "Source" form shall mean the preferred form for making modifications, 45 | including but not limited to software source code, documentation 46 | source, and configuration files. 47 | 48 | "Object" form shall mean any form resulting from mechanical 49 | transformation or translation of a Source form, including but 50 | not limited to compiled object code, generated documentation, 51 | and conversions to other media types. 52 | 53 | "Work" shall mean the work of authorship, whether in Source or 54 | Object form, made available under the License, as indicated by a 55 | copyright notice that is included in or attached to the work 56 | (an example is provided in the Appendix below). 57 | 58 | "Derivative Works" shall mean any work, whether in Source or Object 59 | form, that is based on (or derived from) the Work and for which the 60 | editorial revisions, annotations, elaborations, or other modifications 61 | represent, as a whole, an original work of authorship. For the purposes 62 | of this License, Derivative Works shall not include works that remain 63 | separable from, or merely link (or bind by name) to the interfaces of, 64 | the Work and Derivative Works thereof. 65 | 66 | "Contribution" shall mean any work of authorship, including 67 | the original version of the Work and any modifications or additions 68 | to that Work or Derivative Works thereof, that is intentionally 69 | submitted to Licensor for inclusion in the Work by the copyright owner 70 | or by an individual or Legal Entity authorized to submit on behalf of 71 | the copyright owner. For the purposes of this definition, "submitted" 72 | means any form of electronic, verbal, or written communication sent 73 | to the Licensor or its representatives, including but not limited to 74 | communication on electronic mailing lists, source code control systems, 75 | and issue tracking systems that are managed by, or on behalf of, the 76 | Licensor for the purpose of discussing and improving the Work, but 77 | excluding communication that is conspicuously marked or otherwise 78 | designated in writing by the copyright owner as "Not a Contribution." 79 | 80 | "Contributor" shall mean Licensor and any individual or Legal Entity 81 | on behalf of whom a Contribution has been received by Licensor and 82 | subsequently incorporated within the Work. 83 | 84 | 2. Grant of Copyright License. Subject to the terms and conditions of 85 | this License, each Contributor hereby grants to You a perpetual, 86 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 87 | copyright license to reproduce, prepare Derivative Works of, 88 | publicly display, publicly perform, sublicense, and distribute the 89 | Work and such Derivative Works in Source or Object form. 90 | 91 | 3. Grant of Patent License. Subject to the terms and conditions of 92 | this License, each Contributor hereby grants to You a perpetual, 93 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 94 | (except as stated in this section) patent license to make, have made, 95 | use, offer to sell, sell, import, and otherwise transfer the Work, 96 | where such license applies only to those patent claims licensable 97 | by such Contributor that are necessarily infringed by their 98 | Contribution(s) alone or by combination of their Contribution(s) 99 | with the Work to which such Contribution(s) was submitted. If You 100 | institute patent litigation against any entity (including a 101 | cross-claim or counterclaim in a lawsuit) alleging that the Work 102 | or a Contribution incorporated within the Work constitutes direct 103 | or contributory patent infringement, then any patent licenses 104 | granted to You under this License for that Work shall terminate 105 | as of the date such litigation is filed. 106 | 107 | 4. Redistribution. You may reproduce and distribute copies of the 108 | Work or Derivative Works thereof in any medium, with or without 109 | modifications, and in Source or Object form, provided that You 110 | meet the following conditions: 111 | 112 | (a) You must give any other recipients of the Work or 113 | Derivative Works a copy of this License; and 114 | 115 | (b) You must cause any modified files to carry prominent notices 116 | stating that You changed the files; and 117 | 118 | (c) You must retain, in the Source form of any Derivative Works 119 | that You distribute, all copyright, patent, trademark, and 120 | attribution notices from the Source form of the Work, 121 | excluding those notices that do not pertain to any part of 122 | the Derivative Works; and 123 | 124 | (d) If the Work includes a "NOTICE" text file as part of its 125 | distribution, then any Derivative Works that You distribute must 126 | include a readable copy of the attribution notices contained 127 | within such NOTICE file, excluding those notices that do not 128 | pertain to any part of the Derivative Works, in at least one 129 | of the following places: within a NOTICE text file distributed 130 | as part of the Derivative Works; within the Source form or 131 | documentation, if provided along with the Derivative Works; or, 132 | within a display generated by the Derivative Works, if and 133 | wherever such third-party notices normally appear. The contents 134 | of the NOTICE file are for informational purposes only and 135 | do not modify the License. You may add Your own attribution 136 | notices within Derivative Works that You distribute, alongside 137 | or as an addendum to the NOTICE text from the Work, provided 138 | that such additional attribution notices cannot be construed 139 | as modifying the License. 140 | 141 | You may add Your own copyright statement to Your modifications and 142 | may provide additional or different license terms and conditions 143 | for use, reproduction, or distribution of Your modifications, or 144 | for any such Derivative Works as a whole, provided Your use, 145 | reproduction, and distribution of the Work otherwise complies with 146 | the conditions stated in this License. 147 | 148 | 5. Submission of Contributions. Unless You explicitly state otherwise, 149 | any Contribution intentionally submitted for inclusion in the Work 150 | by You to the Licensor shall be under the terms and conditions of 151 | this License, without any additional terms or conditions. 152 | Notwithstanding the above, nothing herein shall supersede or modify 153 | the terms of any separate license agreement you may have executed 154 | with Licensor regarding such Contributions. 155 | 156 | 6. Trademarks. This License does not grant permission to use the trade 157 | names, trademarks, service marks, or product names of the Licensor, 158 | except as required for reasonable and customary use in describing the 159 | origin of the Work and reproducing the content of the NOTICE file. 160 | 161 | 7. Disclaimer of Warranty. Unless required by applicable law or 162 | agreed to in writing, Licensor provides the Work (and each 163 | Contributor provides its Contributions) on an "AS IS" BASIS, 164 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 165 | implied, including, without limitation, any warranties or conditions 166 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 167 | PARTICULAR PURPOSE. You are solely responsible for determining the 168 | appropriateness of using or redistributing the Work and assume any 169 | risks associated with Your exercise of permissions under this License. 170 | 171 | 8. Limitation of Liability. In no event and under no legal theory, 172 | whether in tort (including negligence), contract, or otherwise, 173 | unless required by applicable law (such as deliberate and grossly 174 | negligent acts) or agreed to in writing, shall any Contributor be 175 | liable to You for damages, including any direct, indirect, special, 176 | incidental, or consequential damages of any character arising as a 177 | result of this License or out of the use or inability to use the 178 | Work (including but not limited to damages for loss of goodwill, 179 | work stoppage, computer failure or malfunction, or any and all 180 | other commercial damages or losses), even if such Contributor 181 | has been advised of the possibility of such damages. 182 | 183 | 9. Accepting Warranty or Additional Liability. While redistributing 184 | the Work or Derivative Works thereof, You may choose to offer, 185 | and charge a fee for, acceptance of support, warranty, indemnity, 186 | or other liability obligations and/or rights consistent with this 187 | License. However, in accepting such obligations, You may act only 188 | on Your own behalf and on Your sole responsibility, not on behalf 189 | of any other Contributor, and only if You agree to indemnify, 190 | defend, and hold each Contributor harmless for any liability 191 | incurred by, or claims asserted against, such Contributor by reason 192 | of your accepting any such warranty or additional liability. 193 | 194 | END OF TERMS AND CONDITIONS 195 | 196 | APPENDIX: How to apply the Apache License to your work. 197 | 198 | To apply the Apache License to your work, attach the following 199 | boilerplate notice, with the fields enclosed by brackets "{}" 200 | replaced with your own identifying information. (Don't include 201 | the brackets!) The text should be enclosed in the appropriate 202 | comment syntax for the file format. We also recommend that a 203 | file or class name and description of purpose be included on the 204 | same "printed page" as the copyright notice for easier 205 | identification within third-party archives. 206 | 207 | Copyright 2017 Felipe Florencio Garcia 208 | 209 | Licensed under the Apache License, Version 2.0 (the "License"); 210 | you may not use this file except in compliance with the License. 211 | You may obtain a copy of the License at 212 | 213 | http://www.apache.org/licenses/LICENSE-2.0 214 | 215 | Unless required by applicable law or agreed to in writing, software 216 | distributed under the License is distributed on an "AS IS" BASIS, 217 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 218 | See the License for the specific language governing permissions and 219 | limitations under the License. 220 | 221 | License 222 | Apache 2.0 License 223 | Title 224 | BCryptSwift 225 | Type 226 | PSGroupSpecifier 227 | 228 | 229 | FooterText 230 | Generated by CocoaPods - https://cocoapods.org 231 | Title 232 | 233 | Type 234 | PSGroupSpecifier 235 | 236 | 237 | StringsTable 238 | Acknowledgements 239 | Title 240 | Acknowledgements 241 | 242 | 243 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_BCryptSwift_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_BCryptSwift_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | 91 | if [[ "$CONFIGURATION" == "Debug" ]]; then 92 | install_framework "$BUILT_PRODUCTS_DIR/BCryptSwift/BCryptSwift.framework" 93 | fi 94 | if [[ "$CONFIGURATION" == "Release" ]]; then 95 | install_framework "$BUILT_PRODUCTS_DIR/BCryptSwift/BCryptSwift.framework" 96 | fi 97 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 98 | wait 99 | fi 100 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | *) 25 | TARGET_DEVICE_ARGS="--target-device mac" 26 | ;; 27 | esac 28 | 29 | install_resource() 30 | { 31 | if [[ "$1" = /* ]] ; then 32 | RESOURCE_PATH="$1" 33 | else 34 | RESOURCE_PATH="${PODS_ROOT}/$1" 35 | fi 36 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 37 | cat << EOM 38 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 39 | EOM 40 | exit 1 41 | fi 42 | case $RESOURCE_PATH in 43 | *.storyboard) 44 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 45 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 46 | ;; 47 | *.xib) 48 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 49 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 50 | ;; 51 | *.framework) 52 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 53 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 54 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 55 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | ;; 57 | *.xcdatamodel) 58 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 59 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 60 | ;; 61 | *.xcdatamodeld) 62 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 63 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 64 | ;; 65 | *.xcmappingmodel) 66 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 67 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 68 | ;; 69 | *.xcassets) 70 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 71 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 72 | ;; 73 | *) 74 | echo "$RESOURCE_PATH" 75 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 76 | ;; 77 | esac 78 | } 79 | 80 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 81 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 82 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 83 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | fi 86 | rm -f "$RESOURCES_TO_COPY" 87 | 88 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 89 | then 90 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 91 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 92 | while read line; do 93 | if [[ $line != "${PODS_ROOT}*" ]]; then 94 | XCASSET_FILES+=("$line") 95 | fi 96 | done <<<"$OTHER_XCASSETS" 97 | 98 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 99 | fi 100 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_BCryptSwift_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_BCryptSwift_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift/BCryptSwift.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "BCryptSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_BCryptSwift_Example { 2 | umbrella header "Pods-BCryptSwift_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Example/Pods-BCryptSwift_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift/BCryptSwift.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "BCryptSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_BCryptSwift_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_BCryptSwift_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 91 | wait 92 | fi 93 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | *) 25 | TARGET_DEVICE_ARGS="--target-device mac" 26 | ;; 27 | esac 28 | 29 | install_resource() 30 | { 31 | if [[ "$1" = /* ]] ; then 32 | RESOURCE_PATH="$1" 33 | else 34 | RESOURCE_PATH="${PODS_ROOT}/$1" 35 | fi 36 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 37 | cat << EOM 38 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 39 | EOM 40 | exit 1 41 | fi 42 | case $RESOURCE_PATH in 43 | *.storyboard) 44 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 45 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 46 | ;; 47 | *.xib) 48 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 49 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 50 | ;; 51 | *.framework) 52 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 53 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 54 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 55 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | ;; 57 | *.xcdatamodel) 58 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 59 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 60 | ;; 61 | *.xcdatamodeld) 62 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 63 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 64 | ;; 65 | *.xcmappingmodel) 66 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 67 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 68 | ;; 69 | *.xcassets) 70 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 71 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 72 | ;; 73 | *) 74 | echo "$RESOURCE_PATH" 75 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 76 | ;; 77 | esac 78 | } 79 | 80 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 81 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 82 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 83 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | fi 86 | rm -f "$RESOURCES_TO_COPY" 87 | 88 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 89 | then 90 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 91 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 92 | while read line; do 93 | if [[ $line != "${PODS_ROOT}*" ]]; then 94 | XCASSET_FILES+=("$line") 95 | fi 96 | done <<<"$OTHER_XCASSETS" 97 | 98 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 99 | fi 100 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_BCryptSwift_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_BCryptSwift_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift/BCryptSwift.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_BCryptSwift_Tests { 2 | umbrella header "Pods-BCryptSwift_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-BCryptSwift_Tests/Pods-BCryptSwift_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BCryptSwift/BCryptSwift.framework/Headers" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | -------------------------------------------------------------------------------- /Example/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import XCTest 3 | import BCryptSwift 4 | 5 | class Tests: XCTestCase { 6 | 7 | override func setUp() { 8 | super.setUp() 9 | // Put setup code here. This method is called before the invocation of each test method in the class. 10 | } 11 | 12 | override func tearDown() { 13 | // Put teardown code here. This method is called after the invocation of each test method in the class. 14 | super.tearDown() 15 | } 16 | 17 | func testExample() { 18 | // This is an example of a functional test case. 19 | XCTAssert(true, "Pass") 20 | } 21 | 22 | func testPerformanceExample() { 23 | // This is an example of a performance test case. 24 | self.measure() { 25 | // Put the code you want to measure the time of here. 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Felipe Florencio Garcia 2 | 3 | Apache License 4 | Version 2.0, January 2004 5 | http://www.apache.org/licenses/ 6 | 7 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 8 | 9 | 1. Definitions. 10 | 11 | "License" shall mean the terms and conditions for use, reproduction, 12 | and distribution as defined by Sections 1 through 9 of this document. 13 | 14 | "Licensor" shall mean the copyright owner or entity authorized by 15 | the copyright owner that is granting the License. 16 | 17 | "Legal Entity" shall mean the union of the acting entity and all 18 | other entities that control, are controlled by, or are under common 19 | control with that entity. For the purposes of this definition, 20 | "control" means (i) the power, direct or indirect, to cause the 21 | direction or management of such entity, whether by contract or 22 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 23 | outstanding shares, or (iii) beneficial ownership of such entity. 24 | 25 | "You" (or "Your") shall mean an individual or Legal Entity 26 | exercising permissions granted by this License. 27 | 28 | "Source" form shall mean the preferred form for making modifications, 29 | including but not limited to software source code, documentation 30 | source, and configuration files. 31 | 32 | "Object" form shall mean any form resulting from mechanical 33 | transformation or translation of a Source form, including but 34 | not limited to compiled object code, generated documentation, 35 | and conversions to other media types. 36 | 37 | "Work" shall mean the work of authorship, whether in Source or 38 | Object form, made available under the License, as indicated by a 39 | copyright notice that is included in or attached to the work 40 | (an example is provided in the Appendix below). 41 | 42 | "Derivative Works" shall mean any work, whether in Source or Object 43 | form, that is based on (or derived from) the Work and for which the 44 | editorial revisions, annotations, elaborations, or other modifications 45 | represent, as a whole, an original work of authorship. For the purposes 46 | of this License, Derivative Works shall not include works that remain 47 | separable from, or merely link (or bind by name) to the interfaces of, 48 | the Work and Derivative Works thereof. 49 | 50 | "Contribution" shall mean any work of authorship, including 51 | the original version of the Work and any modifications or additions 52 | to that Work or Derivative Works thereof, that is intentionally 53 | submitted to Licensor for inclusion in the Work by the copyright owner 54 | or by an individual or Legal Entity authorized to submit on behalf of 55 | the copyright owner. For the purposes of this definition, "submitted" 56 | means any form of electronic, verbal, or written communication sent 57 | to the Licensor or its representatives, including but not limited to 58 | communication on electronic mailing lists, source code control systems, 59 | and issue tracking systems that are managed by, or on behalf of, the 60 | Licensor for the purpose of discussing and improving the Work, but 61 | excluding communication that is conspicuously marked or otherwise 62 | designated in writing by the copyright owner as "Not a Contribution." 63 | 64 | "Contributor" shall mean Licensor and any individual or Legal Entity 65 | on behalf of whom a Contribution has been received by Licensor and 66 | subsequently incorporated within the Work. 67 | 68 | 2. Grant of Copyright License. Subject to the terms and conditions of 69 | this License, each Contributor hereby grants to You a perpetual, 70 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 71 | copyright license to reproduce, prepare Derivative Works of, 72 | publicly display, publicly perform, sublicense, and distribute the 73 | Work and such Derivative Works in Source or Object form. 74 | 75 | 3. Grant of Patent License. Subject to the terms and conditions of 76 | this License, each Contributor hereby grants to You a perpetual, 77 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 78 | (except as stated in this section) patent license to make, have made, 79 | use, offer to sell, sell, import, and otherwise transfer the Work, 80 | where such license applies only to those patent claims licensable 81 | by such Contributor that are necessarily infringed by their 82 | Contribution(s) alone or by combination of their Contribution(s) 83 | with the Work to which such Contribution(s) was submitted. If You 84 | institute patent litigation against any entity (including a 85 | cross-claim or counterclaim in a lawsuit) alleging that the Work 86 | or a Contribution incorporated within the Work constitutes direct 87 | or contributory patent infringement, then any patent licenses 88 | granted to You under this License for that Work shall terminate 89 | as of the date such litigation is filed. 90 | 91 | 4. Redistribution. You may reproduce and distribute copies of the 92 | Work or Derivative Works thereof in any medium, with or without 93 | modifications, and in Source or Object form, provided that You 94 | meet the following conditions: 95 | 96 | (a) You must give any other recipients of the Work or 97 | Derivative Works a copy of this License; and 98 | 99 | (b) You must cause any modified files to carry prominent notices 100 | stating that You changed the files; and 101 | 102 | (c) You must retain, in the Source form of any Derivative Works 103 | that You distribute, all copyright, patent, trademark, and 104 | attribution notices from the Source form of the Work, 105 | excluding those notices that do not pertain to any part of 106 | the Derivative Works; and 107 | 108 | (d) If the Work includes a "NOTICE" text file as part of its 109 | distribution, then any Derivative Works that You distribute must 110 | include a readable copy of the attribution notices contained 111 | within such NOTICE file, excluding those notices that do not 112 | pertain to any part of the Derivative Works, in at least one 113 | of the following places: within a NOTICE text file distributed 114 | as part of the Derivative Works; within the Source form or 115 | documentation, if provided along with the Derivative Works; or, 116 | within a display generated by the Derivative Works, if and 117 | wherever such third-party notices normally appear. The contents 118 | of the NOTICE file are for informational purposes only and 119 | do not modify the License. You may add Your own attribution 120 | notices within Derivative Works that You distribute, alongside 121 | or as an addendum to the NOTICE text from the Work, provided 122 | that such additional attribution notices cannot be construed 123 | as modifying the License. 124 | 125 | You may add Your own copyright statement to Your modifications and 126 | may provide additional or different license terms and conditions 127 | for use, reproduction, or distribution of Your modifications, or 128 | for any such Derivative Works as a whole, provided Your use, 129 | reproduction, and distribution of the Work otherwise complies with 130 | the conditions stated in this License. 131 | 132 | 5. Submission of Contributions. Unless You explicitly state otherwise, 133 | any Contribution intentionally submitted for inclusion in the Work 134 | by You to the Licensor shall be under the terms and conditions of 135 | this License, without any additional terms or conditions. 136 | Notwithstanding the above, nothing herein shall supersede or modify 137 | the terms of any separate license agreement you may have executed 138 | with Licensor regarding such Contributions. 139 | 140 | 6. Trademarks. This License does not grant permission to use the trade 141 | names, trademarks, service marks, or product names of the Licensor, 142 | except as required for reasonable and customary use in describing the 143 | origin of the Work and reproducing the content of the NOTICE file. 144 | 145 | 7. Disclaimer of Warranty. Unless required by applicable law or 146 | agreed to in writing, Licensor provides the Work (and each 147 | Contributor provides its Contributions) on an "AS IS" BASIS, 148 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 149 | implied, including, without limitation, any warranties or conditions 150 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 151 | PARTICULAR PURPOSE. You are solely responsible for determining the 152 | appropriateness of using or redistributing the Work and assume any 153 | risks associated with Your exercise of permissions under this License. 154 | 155 | 8. Limitation of Liability. In no event and under no legal theory, 156 | whether in tort (including negligence), contract, or otherwise, 157 | unless required by applicable law (such as deliberate and grossly 158 | negligent acts) or agreed to in writing, shall any Contributor be 159 | liable to You for damages, including any direct, indirect, special, 160 | incidental, or consequential damages of any character arising as a 161 | result of this License or out of the use or inability to use the 162 | Work (including but not limited to damages for loss of goodwill, 163 | work stoppage, computer failure or malfunction, or any and all 164 | other commercial damages or losses), even if such Contributor 165 | has been advised of the possibility of such damages. 166 | 167 | 9. Accepting Warranty or Additional Liability. While redistributing 168 | the Work or Derivative Works thereof, You may choose to offer, 169 | and charge a fee for, acceptance of support, warranty, indemnity, 170 | or other liability obligations and/or rights consistent with this 171 | License. However, in accepting such obligations, You may act only 172 | on Your own behalf and on Your sole responsibility, not on behalf 173 | of any other Contributor, and only if You agree to indemnify, 174 | defend, and hold each Contributor harmless for any liability 175 | incurred by, or claims asserted against, such Contributor by reason 176 | of your accepting any such warranty or additional liability. 177 | 178 | END OF TERMS AND CONDITIONS 179 | 180 | APPENDIX: How to apply the Apache License to your work. 181 | 182 | To apply the Apache License to your work, attach the following 183 | boilerplate notice, with the fields enclosed by brackets "{}" 184 | replaced with your own identifying information. (Don't include 185 | the brackets!) The text should be enclosed in the appropriate 186 | comment syntax for the file format. We also recommend that a 187 | file or class name and description of purpose be included on the 188 | same "printed page" as the copyright notice for easier 189 | identification within third-party archives. 190 | 191 | Copyright 2017 Felipe Florencio Garcia 192 | 193 | Licensed under the Apache License, Version 2.0 (the "License"); 194 | you may not use this file except in compliance with the License. 195 | You may obtain a copy of the License at 196 | 197 | http://www.apache.org/licenses/LICENSE-2.0 198 | 199 | Unless required by applicable law or agreed to in writing, software 200 | distributed under the License is distributed on an "AS IS" BASIS, 201 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 202 | See the License for the specific language governing permissions and 203 | limitations under the License. 204 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BCryptSwift 2 | 3 | BCryptSwift is an implementation of bcrypt written in Swift. It currently is able to generate the salt and hash a phrase using a generated salt. 4 | 5 | 6 | [![CI Status](http://img.shields.io/travis/fatface/BCryptSwift.svg?style=flat)](https://travis-ci.org/fatface/BCryptSwift) 7 | [![Version](https://img.shields.io/cocoapods/v/BCryptSwift.svg?style=flat)](http://cocoapods.org/pods/BCryptSwift) 8 | [![License](https://img.shields.io/cocoapods/l/BCryptSwift.svg?style=flat)](http://cocoapods.org/pods/BCryptSwift) 9 | [![Platform](https://img.shields.io/cocoapods/p/BCryptSwift.svg?style=flat)](http://cocoapods.org/pods/BCryptSwift) 10 | 11 | ## Using the Code 12 | 13 | ``` 14 | BCryptSwift.generateSaltWithNumberOfRounds(rounds: UInt) -> String 15 | BCryptSwift.generateSalt() -> String 16 | BCryptSwift.hashPassword(password: String, withSalt salt: String) -> String? 17 | BCryptSwift.verifyPassword(password: String, matchesHash hash: String) -> Bool? 18 | ``` 19 | 20 | The `generateSaltWithNumberOfRounds()` class function will generate a random salt using the number of rounds provided. The number of rounds must be between 4 and 31 inclusively. 21 | 22 | The `generateSalt()` class convenience function will generate a random salt using a default 10 rounds. This number can be adjusted based on your specific needs. 23 | 24 | The `hashPassword(withSalt:)` class function will hash the password phrase using the salt. If there is an issue during processing, nil will be returned. Check the function documentation for details. 25 | 26 | The `verifyPassword(matchesHash:)` class convenience function will hash the password phrase using the hash, then return the comparison between the new hash and the given hash. If there is an issue during processing, nil will be returned. Check the function documentation for details. 27 | 28 | ## Example 29 | 30 | There is an example Xcode project that uses the BCryptSwift functions to calculate salts, hashes, and compare hashes. See the example project for a better understanding on how to use the functions. 31 | 32 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 33 | 34 | ## Requirements 35 | 36 | Swift 4.0 or higher. 37 | 38 | ## Installation 39 | 40 | BCryptSwift is available through [CocoaPods](http://cocoapods.org). To install 41 | it, simply add the following line to your Podfile: 42 | 43 | ```ruby 44 | pod "BCryptSwift" 45 | ``` 46 | 47 | ## Roadmap 48 | 49 | ### Testing 50 | 51 | TO-DO 52 | Provide suitable unit tests for the functions in the `BCryptSwift` and `BCryptSwiftRandom` classes. 53 | 54 | ## Issues, Bugs, etc. 55 | 56 | If you have any issues, bugs, or feature suggestions, please create an issue. 57 | 58 | ## Author 59 | 60 | Felipe F Garcia, felipeflorencio@me.com 61 | 62 | Twitter: @dr_nerd 63 | 64 | ## License 65 | 66 | Apache License Version 2.0 67 | 68 | ## Credits 69 | 70 | This project was inspired by and based on the Objective-C port by Jay Fuerstenberg ([Git Repo](https://github.com/jayfuerstenberg/JFCommon)). 71 | 72 | The Objective-C port is based on the original Java implementation by Damien Miller found [here](http://www.mindrot.org/projects/jBCrypt/). 73 | 74 | The Swift port was made originaly by Joe Kramer ([Git Repo](https://github.com/meanjoe45/JKBCrypt)). 75 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj --------------------------------------------------------------------------------