From 0390d502a84aca9cc4ff60229980343203c75ee3 Mon Sep 17 00:00:00 2001 From: luca3104 Date: Tue, 27 Sep 2016 01:30:22 +0900 Subject: [PATCH] remove pod file in Example project ; conflict module map in framework editing --- Example/Podfile.lock | 29 - .../IrohaSwift/ColorExtension.swift | 16 - .../Pods/IrohaSwift/IrohaSwift/Ed25519.swift | 61 - .../IrohaSwift/IrohaSwift/HttpRequest.swift | 100 - .../Pods/IrohaSwift/IrohaSwift/IrohaSwift.h | 17 - .../IrohaSwift/IrohaSwift/IrohaSwift.swift | 83 - .../Pods/IrohaSwift/IrohaSwift/Keychain.swift | 22 - .../IrohaSwift/IrohaSwift/KeychainModel.swift | 55 - .../IrohaSwift/IrohaSwift/libs/add_scalar.c | 69 - .../Pods/IrohaSwift/IrohaSwift/libs/base64.c | 147 - .../Pods/IrohaSwift/IrohaSwift/libs/base64.h | 2 - .../Pods/IrohaSwift/IrohaSwift/libs/ed25519.h | 38 - Example/Pods/IrohaSwift/IrohaSwift/libs/fe.c | 1491 --------- Example/Pods/IrohaSwift/IrohaSwift/libs/fe.h | 41 - .../IrohaSwift/IrohaSwift/libs/fixedint.h | 72 - Example/Pods/IrohaSwift/IrohaSwift/libs/ge.c | 467 --- Example/Pods/IrohaSwift/IrohaSwift/libs/ge.h | 74 - .../IrohaSwift/IrohaSwift/libs/key_exchange.c | 79 - .../Pods/IrohaSwift/IrohaSwift/libs/keypair.c | 16 - .../IrohaSwift/libs/module.modulemap | 6 - .../IrohaSwift/IrohaSwift/libs/precomp_data.h | 1391 -------- Example/Pods/IrohaSwift/IrohaSwift/libs/sc.c | 809 ----- Example/Pods/IrohaSwift/IrohaSwift/libs/sc.h | 12 - .../Pods/IrohaSwift/IrohaSwift/libs/seed.c | 40 - .../Pods/IrohaSwift/IrohaSwift/libs/sha3.c | 327 -- .../Pods/IrohaSwift/IrohaSwift/libs/sha3.h | 52 - .../Pods/IrohaSwift/IrohaSwift/libs/sign.c | 31 - .../Pods/IrohaSwift/IrohaSwift/libs/verify.c | 77 - Example/Pods/IrohaSwift/LICENSE | 201 -- Example/Pods/IrohaSwift/README.md | 142 - Example/Pods/KeychainAccess/LICENSE | 22 - .../Lib/KeychainAccess/Keychain.swift | 2889 ----------------- Example/Pods/KeychainAccess/README.md | 598 ---- .../Local Podspecs/IrohaSwift.podspec.json | 27 - Example/Pods/Manifest.lock | 29 - Example/Pods/Pods.xcodeproj/project.pbxproj | 1279 -------- Example/Pods/SwiftyJSON/LICENSE | 21 - Example/Pods/SwiftyJSON/README.md | 398 --- .../Pods/SwiftyJSON/Source/SwiftyJSON.swift | 1250 ------- .../IrohaSwift/Info.plist | 26 - .../IrohaSwift/IrohaSwift-dummy.m | 5 - .../IrohaSwift/IrohaSwift-prefix.pch | 4 - .../IrohaSwift/IrohaSwift-umbrella.h | 7 - .../IrohaSwift/IrohaSwift.modulemap | 6 - .../IrohaSwift/IrohaSwift.xcconfig | 11 - .../KeychainAccess/Info.plist | 26 - .../KeychainAccess/KeychainAccess-dummy.m | 5 - .../KeychainAccess/KeychainAccess-prefix.pch | 4 - .../KeychainAccess/KeychainAccess-umbrella.h | 6 - .../KeychainAccess/KeychainAccess.modulemap | 6 - .../KeychainAccess/KeychainAccess.xcconfig | 10 - .../Pods-Example/Info.plist | 26 - .../Pods-Example-acknowledgements.markdown | 259 -- .../Pods-Example-acknowledgements.plist | 303 -- .../Pods-Example/Pods-Example-dummy.m | 5 - .../Pods-Example/Pods-Example-frameworks.sh | 95 - .../Pods-Example/Pods-Example-resources.sh | 102 - .../Pods-Example/Pods-Example-umbrella.h | 6 - .../Pods-Example/Pods-Example.debug.xcconfig | 11 - .../Pods-Example/Pods-Example.modulemap | 6 - .../Pods-Example.release.xcconfig | 11 - .../Pods-ExampleTests/Info.plist | 26 - ...ods-ExampleTests-acknowledgements.markdown | 3 - .../Pods-ExampleTests-acknowledgements.plist | 29 - .../Pods-ExampleTests-dummy.m | 5 - .../Pods-ExampleTests-frameworks.sh | 84 - .../Pods-ExampleTests-resources.sh | 102 - .../Pods-ExampleTests-umbrella.h | 6 - .../Pods-ExampleTests.debug.xcconfig | 8 - .../Pods-ExampleTests.modulemap | 6 - .../Pods-ExampleTests.release.xcconfig | 8 - .../Pods-ExampleUITests/Info.plist | 26 - ...s-ExampleUITests-acknowledgements.markdown | 3 - ...Pods-ExampleUITests-acknowledgements.plist | 29 - .../Pods-ExampleUITests-dummy.m | 5 - .../Pods-ExampleUITests-frameworks.sh | 84 - .../Pods-ExampleUITests-resources.sh | 102 - .../Pods-ExampleUITests-umbrella.h | 6 - .../Pods-ExampleUITests.debug.xcconfig | 8 - .../Pods-ExampleUITests.modulemap | 6 - .../Pods-ExampleUITests.release.xcconfig | 8 - .../SwiftyJSON/Info.plist | 26 - .../SwiftyJSON/SwiftyJSON-dummy.m | 5 - .../SwiftyJSON/SwiftyJSON-prefix.pch | 4 - .../SwiftyJSON/SwiftyJSON-umbrella.h | 6 - .../SwiftyJSON/SwiftyJSON.modulemap | 6 - .../SwiftyJSON/SwiftyJSON.xcconfig | 9 - 87 files changed, 14030 deletions(-) delete mode 100644 Example/Podfile.lock delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/ColorExtension.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/Ed25519.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/HttpRequest.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/Keychain.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/KeychainModel.swift delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/add_scalar.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/base64.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/base64.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/ed25519.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/fe.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/fe.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/fixedint.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/ge.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/ge.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/key_exchange.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/keypair.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/module.modulemap delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/precomp_data.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/sc.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/sc.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/seed.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.h delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/sign.c delete mode 100644 Example/Pods/IrohaSwift/IrohaSwift/libs/verify.c delete mode 100644 Example/Pods/IrohaSwift/LICENSE delete mode 100644 Example/Pods/IrohaSwift/README.md delete mode 100644 Example/Pods/KeychainAccess/LICENSE delete mode 100644 Example/Pods/KeychainAccess/Lib/KeychainAccess/Keychain.swift delete mode 100644 Example/Pods/KeychainAccess/README.md delete mode 100644 Example/Pods/Local Podspecs/IrohaSwift.podspec.json delete mode 100644 Example/Pods/Manifest.lock delete mode 100644 Example/Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 Example/Pods/SwiftyJSON/LICENSE delete mode 100644 Example/Pods/SwiftyJSON/README.md delete mode 100644 Example/Pods/SwiftyJSON/Source/SwiftyJSON.swift delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/Info.plist delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-dummy.m delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-prefix.pch delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-umbrella.h delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.modulemap delete mode 100644 Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.xcconfig delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/Info.plist delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-dummy.m delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-prefix.pch delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-umbrella.h delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.modulemap delete mode 100644 Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Info.plist delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m delete mode 100755 Example/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh delete mode 100755 Example/Pods/Target Support Files/Pods-Example/Pods-Example-resources.sh delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap delete mode 100644 Example/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Info.plist delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.markdown delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.plist delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-dummy.m delete mode 100755 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-frameworks.sh delete mode 100755 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-resources.sh delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-umbrella.h delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Info.plist delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.markdown delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.plist delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-dummy.m delete mode 100755 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-frameworks.sh delete mode 100755 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-resources.sh delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-umbrella.h delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.debug.xcconfig delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap delete mode 100644 Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.release.xcconfig delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/Info.plist delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap delete mode 100644 Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig diff --git a/Example/Podfile.lock b/Example/Podfile.lock deleted file mode 100644 index a91976807..000000000 --- a/Example/Podfile.lock +++ /dev/null @@ -1,29 +0,0 @@ -PODS: - - IrohaSwift (0.0.12) - - KeychainAccess (3.0.0) - - SwiftyJSON (3.0.0) - -DEPENDENCIES: - - IrohaSwift (from `https://github.com/soramitsu/iroha-ios.git`) - - KeychainAccess (= 3.0.0) - - SwiftyJSON (= 3.0.0) - -EXTERNAL SOURCES: - IrohaSwift: - :git: https://github.com/soramitsu/iroha-ios.git - :submodules: true - -CHECKOUT OPTIONS: - IrohaSwift: - :commit: e865008683914e3c0f839b862cfbe447b3b02296 - :git: https://github.com/soramitsu/iroha-ios.git - :submodules: true - -SPEC CHECKSUMS: - IrohaSwift: 3cbf6f4cd51e77628291a52febe826b77ccda618 - KeychainAccess: 412bf2650d9aebfc8135a58103b90ec38caad7f8 - SwiftyJSON: f57b2b44bc166617372d1c70773591fe9f0f5fd4 - -PODFILE CHECKSUM: 06ed1984339366a3ee87ead2ecbea545dc73fda6 - -COCOAPODS: 1.1.0.rc.2 diff --git a/Example/Pods/IrohaSwift/IrohaSwift/ColorExtension.swift b/Example/Pods/IrohaSwift/IrohaSwift/ColorExtension.swift deleted file mode 100644 index 7affdc685..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/ColorExtension.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// ColorExtension.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/20. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation -import UIKit - -public extension UIColor { - public class func iroha()->UIColor{ - return UIColor(red: 228/255, green: 35/255, blue: 45/255, alpha: 1) - } -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/Ed25519.swift b/Example/Pods/IrohaSwift/IrohaSwift/Ed25519.swift deleted file mode 100644 index febe45976..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/Ed25519.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// Ed25519.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/19. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation -import libs - -func createSeed() -> Array { - var seed: Array = Array(repeating: 0, count: 32) - ed25519_create_seed(&seed) - - return seed -} - -public func createKeyPair() -> (publicKey:String, privateKey:String){ - var pub: Array = Array(repeating: 0, count: 32) - var pri: Array = Array(repeating: 0, count: 64) - var seed: Array = createSeed() - ed25519_create_keypair(&pub, &pri, &seed) - let encPub = base64_encode(pub, UInt32(pub.count)) - let base64Pub = String(validatingUTF8:UnsafePointer(encPub!))! -// let base64Pub = String(validatingUTF8:UnsafePointer(encPub!))! - let encPri = base64_encode(pri, UInt32(pri.count)) - let base64Pri = String(validatingUTF8:UnsafePointer(encPri!))! - - return (base64Pub, base64Pri) -} -func sign(publicKey:String,privateKey:String, message:String) -> String{ - var sig: Array = Array(repeating: 0, count: 64) - var sigMsg: Array = Array(repeating: 0, count: 32) - sha3_256(Array(message.utf8), Array(message.utf8).count, &sigMsg) - var decPubArr = base64toArr(base64str: publicKey, count: 32) - var decPriArr = base64toArr(base64str: privateKey, count: 64) - ed25519_sign(&sig, &sigMsg, sigMsg.count, &decPubArr, &decPriArr) - let encSig = base64_encode(sig, UInt32(sig.count)) - let base64Sig = String(validatingUTF8:UnsafePointer(encSig!))! - - return base64Sig -} - -func verify(publicKey:String, signature:String, message:String) -> Int{ - var sigMsg: Array = Array(repeating: 0, count: 32) - sha3_256(Array(message.utf8), Array(message.utf8).count, &sigMsg) - let decPubArr = base64toArr(base64str: publicKey, count: 32) - let decSigArr = base64toArr(base64str: signature, count: 64) - - return Int(ed25519_verify(decSigArr, sigMsg, sigMsg.count, decPubArr)) -} - -func base64toArr(base64str:String, count:Int) -> Array{ - let base64Ptr = UnsafeMutablePointer(mutating: base64str) - let decBase64 = base64_decode(base64Ptr) - let decArr = Array(UnsafeBufferPointer(start: decBase64, count: count)) - base64Ptr.deinitialize() - - return decArr -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/HttpRequest.swift b/Example/Pods/IrohaSwift/IrohaSwift/HttpRequest.swift deleted file mode 100644 index f771b6e43..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/HttpRequest.swift +++ /dev/null @@ -1,100 +0,0 @@ -// -// HttpRequest.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/18. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation - -public class HttpRequest{ - func getRequest(accessPoint:String, endpoint:String, parameters:[String: Any]? = nil) ->[String:Any] { - var url : String = "" - if(parameters == nil){ - url = "\(accessPoint)\(endpoint)" - }else{ - var parameterArray = [String]() - for param in parameters! { - parameterArray.append("\(param.key)=\(param.value)") - } - let param = parameterArray.joined(separator: "&") - url = "\(accessPoint)\(endpoint)?\(param)" - } - var request = URLRequest(url: URL(string:url)!) - request.httpMethod = "GET" - var d: [String:Any]? = nil - - let semaphore = DispatchSemaphore(value: 0) - URLSession.shared.dataTask(with: request) {data, response, err in - if(data != nil){ - do{ - let json = try JSONSerialization.jsonObject(with: data!, options: []) - if let dictFromJSON = json as? [String:Any] { - d = dictFromJSON - semaphore.signal() - } - }catch{ - d = [ - "status": 500, - "message": "Internal server error." - ] - semaphore.signal() - } - }else{ - d = [ - "status": 404, - "message": "Not found." - ] - semaphore.signal() - } - }.resume() - semaphore.wait(timeout: .distantFuture) - return d! - } - - func postRequest(accessPoint:String, endpoint:String, parameters:[String:Any]?) ->[String:Any] { - var url : String - url = "\(accessPoint)\(endpoint)" - var request = URLRequest(url: URL(string:url)!) - if(parameters != nil){ - do{ - let jsonData = try JSONSerialization.data(withJSONObject: parameters!, options: []) - - request.httpBody = jsonData - }catch{ - print("error") - } - } - request.httpMethod = "POST" - var d: [String:Any]? = nil - - let semaphore = DispatchSemaphore(value: 0) - URLSession.shared.dataTask(with: request) {data, response, err in - if(data != nil){ - do{ - let json = try JSONSerialization.jsonObject(with: data!, options: []) - if let dictFromJSON = json as? [String:Any] { - d = dictFromJSON - semaphore.signal() - } - }catch{ - d = [ - "status": 500, - "message": "Internal server error." - ] - semaphore.signal() - } - }else{ - d = [ - "status": 404, - "message": "Not found." - ] - semaphore.signal() - } - }.resume() - semaphore.wait(timeout: .distantFuture) - return d! - } - -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.h b/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.h deleted file mode 100644 index 40dad0e73..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// IrohaSwift.h -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/18. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -@import Foundation; -//! Project version number for IrohaSwift. -FOUNDATION_EXPORT double IrohaSwiftVersionNumber; - -//! Project version string for IrohaSwift. -FOUNDATION_EXPORT const unsigned char IrohaSwiftVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - diff --git a/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.swift b/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.swift deleted file mode 100644 index 86dedea7f..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/IrohaSwift.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// IrohaSwift.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/18. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation -import libs - -public func register(keyPair:(publicKey:String, privateKey:String), accessPoint:String, name:String) -> [String:Any]{ - let req = HttpRequest() - let parameter: [String : Any] = [ - "publicKey": keyPair.publicKey, - "screen_name": name, - "timestamp": Date().timeIntervalSince1970 - ] - let res = req.postRequest(accessPoint: accessPoint, endpoint: "/account/register", parameters: parameter) - return res -} - -public func getAccountInfo(accessPoint:String,uuid:String) -> [String:Any]{ - let req = HttpRequest() - return req.getRequest(accessPoint: accessPoint, endpoint: "/account",parameters: ["uuid":uuid]) -} - -public func domainRegister(accessPoint:String, domain:String, keyPair:(publicKey:String, privateKey:String)) -> [String:Any]{ - let req = HttpRequest() - let timestamp = Date().timeIntervalSince1970 - let message = "timestamp:\(timestamp),owner:\(keyPair.publicKey),name:\(domain)" - let signature = sign(publicKey: keyPair.publicKey, privateKey: keyPair.privateKey, message: message) - let parameter: [String : Any] = [ - "name" : domain, - "owner" : keyPair.publicKey, - "signature" : signature, - "timestamp": timestamp - ] - - return req.postRequest(accessPoint: accessPoint, endpoint: "/domain/register", parameters:parameter) -} - -public func getAssetsList(accessPoint:String) -> [String:Any]{ - let req = HttpRequest() - return req.getRequest(accessPoint: accessPoint, endpoint: "/assets/list") -} - -public func createAsset(accessPoint: String, domain:String, keyPair:(publicKey:String, privateKey:String), name:String)-> [String:Any]{ - let req = HttpRequest() - let message = "name:\(name),domain:\(domain),creator:\(keyPair.publicKey)" - let signature = sign(publicKey: keyPair.publicKey, privateKey: keyPair.privateKey, message: message) - let parameter: [String : Any] = [ - "name" : name, - "domain" : domain, - "creator" : keyPair.publicKey, - "signature" : signature, - ] - - return req.postRequest(accessPoint: accessPoint, endpoint: "/asset/create", parameters:parameter) -} - -public func assetOperation(accessPoint: String, command:String, assetUuid:String, amount:String, keyPair:(publicKey:String, privateKey:String), reciever:String) -> [String:Any]{ - let req = HttpRequest() - let message = "sender:\(keyPair.publicKey),reciever:\(reciever),asset-uuid:\(assetUuid),amount:\(amount)" - let signature = sign(publicKey: keyPair.publicKey, privateKey: keyPair.privateKey, message: message) - let parameter: [String : Any] = [ - "asset-uuid": assetUuid, - "params" : [ - "command": command, - "amount": Int(amount), - "sender" : keyPair.publicKey, - "receiver" : reciever - ], - "signature" : signature - ] - return req.postRequest(accessPoint: accessPoint, endpoint: "/asset/operation", parameters:parameter) -} - - -public func getTransaction(accessPoint:String, uuid:String) -> [String:Any]{ - let req = HttpRequest() - return req.getRequest(accessPoint: accessPoint, endpoint: "/history/transaction/\(uuid)") -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/Keychain.swift b/Example/Pods/IrohaSwift/IrohaSwift/Keychain.swift deleted file mode 100644 index 9ea71c4eb..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/Keychain.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Keychain.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/19. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation - -class Keychain{ - let keychainModel = KeychainModel() - func set(key:String,value:String){ - keychainModel.save(key: key, value: value) - } - func get(key:String) -> String{ - return keychainModel.load(key: key)! - } - func delete(key:String){ - keychainModel.save(key: key, value: "") - } -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/KeychainModel.swift b/Example/Pods/IrohaSwift/IrohaSwift/KeychainModel.swift deleted file mode 100644 index c18097516..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/KeychainModel.swift +++ /dev/null @@ -1,55 +0,0 @@ -// -// KeychainManager.swift -// IrohaSwift -// -// Created by Kaji Satoshi on 2016/09/19. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -import Foundation -import Security - -class KeychainModel{ - let kSecClassGenericPasswordValue = String(format: kSecClassGenericPassword as String) - let kSecClassValue = String(format: kSecClass as String) - let kSecAttrServiceValue = String(format: kSecAttrService as String) - let kSecValueDataValue = String(format: kSecValueData as String) - let kSecMatchLimitValue = String(format: kSecMatchLimit as String) - let kSecReturnDataValue = String(format: kSecReturnData as String) - let kSecMatchLimitOneValue = String(format: kSecMatchLimitOne as String) - let kSecAttrAccountValue = String(format: kSecAttrAccount as String) - - func save(key: String, value: String) { - if let dataFromString = value.data(using: String.Encoding.utf8) { - let keychainQuery = [ - kSecClassValue: kSecClassGenericPasswordValue, - kSecAttrServiceValue: key, - kSecValueDataValue: dataFromString - ] as CFDictionary - SecItemDelete(keychainQuery) - SecItemAdd(keychainQuery, nil) - } - } - - func load(key: String) -> String? { - let keychainQuery = [ - kSecClassValue: kSecClassGenericPasswordValue, - kSecAttrServiceValue: key, - kSecReturnDataValue: kCFBooleanTrue, - kSecMatchLimitValue: kSecMatchLimitOneValue - ] as CFDictionary - var dataTypeRef: AnyObject? - let status: OSStatus = SecItemCopyMatching(keychainQuery, &dataTypeRef) - var passcode: String? - if (status == errSecSuccess) { - if let retrievedData = dataTypeRef as? Data, - let result = String(data: retrievedData, encoding: String.Encoding.utf8) { - passcode = result as String - } - } - else { - print("Nothing was retrieved from the keychain. Status code \(status)") - } - return passcode - } -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/add_scalar.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/add_scalar.c deleted file mode 100644 index 4edc0906f..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/add_scalar.c +++ /dev/null @@ -1,69 +0,0 @@ -#include "ed25519.h" -#include "ge.h" -#include "sc.h" -#include "sha3.h" - - -/* see http://crypto.stackexchange.com/a/6215/4697 */ -void ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, const unsigned char *scalar) { - const unsigned char SC_1[32] = {1}; /* scalar with value 1 */ - - unsigned char n[32]; - ge_p3 nB; - ge_p1p1 A_p1p1; - ge_p3 A; - ge_p3 public_key_unpacked; - ge_cached T; - - sha3_context hash; - unsigned char hashbuf[64]; - - int i; - - /* copy the scalar and clear highest bit */ - for (i = 0; i < 31; ++i) { - n[i] = scalar[i]; - } - n[31] = scalar[31] & 127; - - /* private key: a = n + t */ - if (private_key) { - sc_muladd(private_key, SC_1, n, private_key); - - // https://github.com/orlp/ed25519/issues/3 - sha3_Init512(&hash); - sha3_Update(&hash, private_key + 32, 32); - sha3_Update(&hash, scalar, 32); - sha3_Finalize(&hash, hashbuf); - for (i = 0; i < 32; ++i) { - private_key[32 + i] = hashbuf[i]; - } - } - - /* public key: A = nB + T */ - if (public_key) { - /* if we know the private key we don't need a point addition, which is faster */ - /* using a "timing attack" you could find out wether or not we know the private - key, but this information seems rather useless - if this is important pass - public_key and private_key seperately in 2 function calls */ - if (private_key) { - ge_scalarmult_base(&A, private_key); - } else { - /* unpack public key into T */ - ge_frombytes_negate_vartime(&public_key_unpacked, public_key); - fe_neg(public_key_unpacked.X, public_key_unpacked.X); /* undo negate */ - fe_neg(public_key_unpacked.T, public_key_unpacked.T); /* undo negate */ - ge_p3_to_cached(&T, &public_key_unpacked); - - /* calculate n*B */ - ge_scalarmult_base(&nB, n); - - /* A = n*B + T */ - ge_add(&A_p1p1, &nB, &T); - ge_p1p1_to_p3(&A, &A_p1p1); - } - - /* pack public key */ - ge_p3_tobytes(public_key, &A); - } -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.c deleted file mode 100644 index 3db611011..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.c +++ /dev/null @@ -1,147 +0,0 @@ -// used in test. -#include -#include - -//====== Library ======= -/* - base64_encode(), base64_decode() - - Copyright (C) 2004-2008 René Nyffenegger - - This source code is provided 'as-is', without any express or implied - warranty. In no event will the author be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this source code must not be misrepresented; you must not - claim that you wrote the original source code. If you use this source code - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original source code. - - 3. This notice may not be removed or altered from any source distribution. - - René Nyffenegger rene.nyffenegger@adp-gmbh.ch - - */ -#include -#include -#include - -static const char* base64_chars = -"ABCDEFGHIJKLMNOPQRSTUVWXYZ" -"abcdefghijklmnopqrstuvwxyz" -"0123456789+/"; - -static inline int is_base64(unsigned char c) { - return (isalnum(c) || (c == '+') || (c == '/')); -} - -char* base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len) { - char* ret = (char*)malloc((int)(in_len * 1.4)); - int pointer = 0; - int i = 0; - int j = 0; - unsigned char char_array_3[3]; - unsigned char char_array_4[4]; - - while (in_len--) { - char_array_3[i++] = *(bytes_to_encode++); - if (i == 3) { - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - char_array_4[3] = char_array_3[2] & 0x3f; - - for(i = 0; (i <4) ; i++){ - ret[pointer] = base64_chars[char_array_4[i]]; - pointer++; - } - i = 0; - } - } - - if (i) - { - for(j = i; j < 3; j++) - char_array_3[j] = '\0'; - - char_array_4[0] = (char_array_3[0] & 0xfc) >> 2; - char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4); - char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6); - char_array_4[3] = char_array_3[2] & 0x3f; - - for (j = 0; (j < i + 1); j++){ - ret[pointer] = base64_chars[char_array_4[j]]; // use index - pointer++; // increments pointer - } - - while((i++ < 3)){ - ret[pointer] = '=';// use index - pointer++; // increments pointer - } - - } - ret[pointer] = '\0'; // add '\0' - return ret; -} - -// add find function instead of string's find() -int base64_chars_find(char c){ - for(int i=0;i < strlen(base64_chars); i++){ - if(c == base64_chars[i]) return i; - } - return -1; -} - -// use char* instead of std::string -unsigned char* base64_decode(const char* encoded_string) { - int in_len = strlen(encoded_string); - int i = 0; - int j = 0; - int in_ = 0; - unsigned char char_array_4[4], char_array_3[3]; - unsigned char* ret = (unsigned char*)malloc((int)(in_len * 0.8)); // use char* - int pointer = 0; // add index value - - while (in_len-- && ( encoded_string[in_] != '=') && is_base64(encoded_string[in_])) { - char_array_4[i++] = encoded_string[in_]; in_++; - if (i ==4) { - for (i = 0; i <4; i++) - char_array_4[i] = base64_chars_find(char_array_4[i]); - - char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); - char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); - char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; - - for (i = 0; (i < 3); i++){ - ret[pointer] = char_array_3[i]; // use index - pointer++; - } - i = 0; - } - } - - if (i) { - for (j = i; j <4; j++) - char_array_4[j] = 0; - - for (j = 0; j <4; j++) - char_array_4[j] = base64_chars_find(char_array_4[j]); - - char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4); - char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2); - char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3]; - - for (j = 0; (j < i - 1); j++){ - ret[pointer] = char_array_3[j]; // use index - pointer++; - } - } - return ret; -} \ No newline at end of file diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.h deleted file mode 100644 index 4f3b8a402..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/base64.h +++ /dev/null @@ -1,2 +0,0 @@ -char* base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len); -unsigned char* base64_decode(const char* encoded_string); diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/ed25519.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/ed25519.h deleted file mode 100644 index 8924659fa..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/ed25519.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef ED25519_H -#define ED25519_H - -#include - -#if defined(_WIN32) - #if defined(ED25519_BUILD_DLL) - #define ED25519_DECLSPEC __declspec(dllexport) - #elif defined(ED25519_DLL) - #define ED25519_DECLSPEC __declspec(dllimport) - #else - #define ED25519_DECLSPEC - #endif -#else - #define ED25519_DECLSPEC -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef ED25519_NO_SEED -int ED25519_DECLSPEC ed25519_create_seed(unsigned char *seed); -#endif - -void ED25519_DECLSPEC ed25519_create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed); -void ED25519_DECLSPEC ed25519_sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key); -int ED25519_DECLSPEC ed25519_verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key); -void ED25519_DECLSPEC ed25519_add_scalar(unsigned char *public_key, unsigned char *private_key, const unsigned char *scalar); -void ED25519_DECLSPEC ed25519_key_exchange(unsigned char *shared_secret, const unsigned char *public_key, const unsigned char *private_key); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.c deleted file mode 100644 index 33ffa2353..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.c +++ /dev/null @@ -1,1491 +0,0 @@ -#include "fixedint.h" -#include "fe.h" - - -/* - helper functions -*/ -static uint64_t load_3(const unsigned char *in) { - uint64_t result; - - result = (uint64_t) in[0]; - result |= ((uint64_t) in[1]) << 8; - result |= ((uint64_t) in[2]) << 16; - - return result; -} - -static uint64_t load_4(const unsigned char *in) { - uint64_t result; - - result = (uint64_t) in[0]; - result |= ((uint64_t) in[1]) << 8; - result |= ((uint64_t) in[2]) << 16; - result |= ((uint64_t) in[3]) << 24; - - return result; -} - - - -/* - h = 0 -*/ - -void fe_0(fe h) { - h[0] = 0; - h[1] = 0; - h[2] = 0; - h[3] = 0; - h[4] = 0; - h[5] = 0; - h[6] = 0; - h[7] = 0; - h[8] = 0; - h[9] = 0; -} - - - -/* - h = 1 -*/ - -void fe_1(fe h) { - h[0] = 1; - h[1] = 0; - h[2] = 0; - h[3] = 0; - h[4] = 0; - h[5] = 0; - h[6] = 0; - h[7] = 0; - h[8] = 0; - h[9] = 0; -} - - - -/* - h = f + g - Can overlap h with f or g. - - Preconditions: - |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - - Postconditions: - |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -*/ - -void fe_add(fe h, const fe f, const fe g) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t h0 = f0 + g0; - int32_t h1 = f1 + g1; - int32_t h2 = f2 + g2; - int32_t h3 = f3 + g3; - int32_t h4 = f4 + g4; - int32_t h5 = f5 + g5; - int32_t h6 = f6 + g6; - int32_t h7 = f7 + g7; - int32_t h8 = f8 + g8; - int32_t h9 = f9 + g9; - - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; -} - - - -/* - Replace (f,g) with (g,g) if b == 1; - replace (f,g) with (f,g) if b == 0. - - Preconditions: b in {0,1}. -*/ - -void fe_cmov(fe f, const fe g, unsigned int b) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t x0 = f0 ^ g0; - int32_t x1 = f1 ^ g1; - int32_t x2 = f2 ^ g2; - int32_t x3 = f3 ^ g3; - int32_t x4 = f4 ^ g4; - int32_t x5 = f5 ^ g5; - int32_t x6 = f6 ^ g6; - int32_t x7 = f7 ^ g7; - int32_t x8 = f8 ^ g8; - int32_t x9 = f9 ^ g9; - - b = (unsigned int) (- (int) b); /* silence warning */ - x0 &= b; - x1 &= b; - x2 &= b; - x3 &= b; - x4 &= b; - x5 &= b; - x6 &= b; - x7 &= b; - x8 &= b; - x9 &= b; - - f[0] = f0 ^ x0; - f[1] = f1 ^ x1; - f[2] = f2 ^ x2; - f[3] = f3 ^ x3; - f[4] = f4 ^ x4; - f[5] = f5 ^ x5; - f[6] = f6 ^ x6; - f[7] = f7 ^ x7; - f[8] = f8 ^ x8; - f[9] = f9 ^ x9; -} - -/* - Replace (f,g) with (g,f) if b == 1; - replace (f,g) with (f,g) if b == 0. - - Preconditions: b in {0,1}. -*/ - -void fe_cswap(fe f,fe g,unsigned int b) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t x0 = f0 ^ g0; - int32_t x1 = f1 ^ g1; - int32_t x2 = f2 ^ g2; - int32_t x3 = f3 ^ g3; - int32_t x4 = f4 ^ g4; - int32_t x5 = f5 ^ g5; - int32_t x6 = f6 ^ g6; - int32_t x7 = f7 ^ g7; - int32_t x8 = f8 ^ g8; - int32_t x9 = f9 ^ g9; - b = (unsigned int) (- (int) b); /* silence warning */ - x0 &= b; - x1 &= b; - x2 &= b; - x3 &= b; - x4 &= b; - x5 &= b; - x6 &= b; - x7 &= b; - x8 &= b; - x9 &= b; - f[0] = f0 ^ x0; - f[1] = f1 ^ x1; - f[2] = f2 ^ x2; - f[3] = f3 ^ x3; - f[4] = f4 ^ x4; - f[5] = f5 ^ x5; - f[6] = f6 ^ x6; - f[7] = f7 ^ x7; - f[8] = f8 ^ x8; - f[9] = f9 ^ x9; - g[0] = g0 ^ x0; - g[1] = g1 ^ x1; - g[2] = g2 ^ x2; - g[3] = g3 ^ x3; - g[4] = g4 ^ x4; - g[5] = g5 ^ x5; - g[6] = g6 ^ x6; - g[7] = g7 ^ x7; - g[8] = g8 ^ x8; - g[9] = g9 ^ x9; -} - - - -/* - h = f -*/ - -void fe_copy(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - - h[0] = f0; - h[1] = f1; - h[2] = f2; - h[3] = f3; - h[4] = f4; - h[5] = f5; - h[6] = f6; - h[7] = f7; - h[8] = f8; - h[9] = f9; -} - - - -/* - Ignores top bit of h. -*/ - -void fe_frombytes(fe h, const unsigned char *s) { - int64_t h0 = load_4(s); - int64_t h1 = load_3(s + 4) << 6; - int64_t h2 = load_3(s + 7) << 5; - int64_t h3 = load_3(s + 10) << 3; - int64_t h4 = load_3(s + 13) << 2; - int64_t h5 = load_4(s + 16); - int64_t h6 = load_3(s + 20) << 7; - int64_t h7 = load_3(s + 23) << 5; - int64_t h8 = load_3(s + 26) << 4; - int64_t h9 = (load_3(s + 29) & 8388607) << 2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry9 = (h9 + (int64_t) (1 << 24)) >> 25; - h0 += carry9 * 19; - h9 -= carry9 << 25; - carry1 = (h1 + (int64_t) (1 << 24)) >> 25; - h2 += carry1; - h1 -= carry1 << 25; - carry3 = (h3 + (int64_t) (1 << 24)) >> 25; - h4 += carry3; - h3 -= carry3 << 25; - carry5 = (h5 + (int64_t) (1 << 24)) >> 25; - h6 += carry5; - h5 -= carry5 << 25; - carry7 = (h7 + (int64_t) (1 << 24)) >> 25; - h8 += carry7; - h7 -= carry7 << 25; - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - carry2 = (h2 + (int64_t) (1 << 25)) >> 26; - h3 += carry2; - h2 -= carry2 << 26; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry6 = (h6 + (int64_t) (1 << 25)) >> 26; - h7 += carry6; - h6 -= carry6 << 26; - carry8 = (h8 + (int64_t) (1 << 25)) >> 26; - h9 += carry8; - h8 -= carry8 << 26; - - h[0] = (int32_t) h0; - h[1] = (int32_t) h1; - h[2] = (int32_t) h2; - h[3] = (int32_t) h3; - h[4] = (int32_t) h4; - h[5] = (int32_t) h5; - h[6] = (int32_t) h6; - h[7] = (int32_t) h7; - h[8] = (int32_t) h8; - h[9] = (int32_t) h9; -} - - - -void fe_invert(fe out, const fe z) { - fe t0; - fe t1; - fe t2; - fe t3; - int i; - - fe_sq(t0, z); - - for (i = 1; i < 1; ++i) { - fe_sq(t0, t0); - } - - fe_sq(t1, t0); - - for (i = 1; i < 2; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t1, z, t1); - fe_mul(t0, t0, t1); - fe_sq(t2, t0); - - for (i = 1; i < 1; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t1, t2); - fe_sq(t2, t1); - - for (i = 1; i < 5; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t2, t1); - fe_sq(t2, t1); - - for (i = 1; i < 10; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t2, t2, t1); - fe_sq(t3, t2); - - for (i = 1; i < 20; ++i) { - fe_sq(t3, t3); - } - - fe_mul(t2, t3, t2); - fe_sq(t2, t2); - - for (i = 1; i < 10; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t2, t1); - fe_sq(t2, t1); - - for (i = 1; i < 50; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t2, t2, t1); - fe_sq(t3, t2); - - for (i = 1; i < 100; ++i) { - fe_sq(t3, t3); - } - - fe_mul(t2, t3, t2); - fe_sq(t2, t2); - - for (i = 1; i < 50; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t2, t1); - fe_sq(t1, t1); - - for (i = 1; i < 5; ++i) { - fe_sq(t1, t1); - } - - fe_mul(out, t1, t0); -} - - - -/* - return 1 if f is in {1,3,5,...,q-2} - return 0 if f is in {0,2,4,...,q-1} - - Preconditions: - |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -*/ - -int fe_isnegative(const fe f) { - unsigned char s[32]; - - fe_tobytes(s, f); - - return s[0] & 1; -} - - - -/* - return 1 if f == 0 - return 0 if f != 0 - - Preconditions: - |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -*/ - -int fe_isnonzero(const fe f) { - unsigned char s[32]; - unsigned char r; - - fe_tobytes(s, f); - - r = s[0]; - #define F(i) r |= s[i] - F(1); - F(2); - F(3); - F(4); - F(5); - F(6); - F(7); - F(8); - F(9); - F(10); - F(11); - F(12); - F(13); - F(14); - F(15); - F(16); - F(17); - F(18); - F(19); - F(20); - F(21); - F(22); - F(23); - F(24); - F(25); - F(26); - F(27); - F(28); - F(29); - F(30); - F(31); - #undef F - - return r != 0; -} - - - -/* - h = f * g - Can overlap h with f or g. - - Preconditions: - |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. - |g| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. - - Postconditions: - |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. - */ - - /* - Notes on implementation strategy: - - Using schoolbook multiplication. - Karatsuba would save a little in some cost models. - - Most multiplications by 2 and 19 are 32-bit precomputations; - cheaper than 64-bit postcomputations. - - There is one remaining multiplication by 19 in the carry chain; - one *19 precomputation can be merged into this, - but the resulting data flow is considerably less clean. - - There are 12 carries below. - 10 of them are 2-way parallelizable and vectorizable. - Can get away with 11 carries, but then data flow is much deeper. - - With tighter constraints on inputs can squeeze carries into int32. -*/ - -void fe_mul(fe h, const fe f, const fe g) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t g1_19 = 19 * g1; /* 1.959375*2^29 */ - int32_t g2_19 = 19 * g2; /* 1.959375*2^30; still ok */ - int32_t g3_19 = 19 * g3; - int32_t g4_19 = 19 * g4; - int32_t g5_19 = 19 * g5; - int32_t g6_19 = 19 * g6; - int32_t g7_19 = 19 * g7; - int32_t g8_19 = 19 * g8; - int32_t g9_19 = 19 * g9; - int32_t f1_2 = 2 * f1; - int32_t f3_2 = 2 * f3; - int32_t f5_2 = 2 * f5; - int32_t f7_2 = 2 * f7; - int32_t f9_2 = 2 * f9; - int64_t f0g0 = f0 * (int64_t) g0; - int64_t f0g1 = f0 * (int64_t) g1; - int64_t f0g2 = f0 * (int64_t) g2; - int64_t f0g3 = f0 * (int64_t) g3; - int64_t f0g4 = f0 * (int64_t) g4; - int64_t f0g5 = f0 * (int64_t) g5; - int64_t f0g6 = f0 * (int64_t) g6; - int64_t f0g7 = f0 * (int64_t) g7; - int64_t f0g8 = f0 * (int64_t) g8; - int64_t f0g9 = f0 * (int64_t) g9; - int64_t f1g0 = f1 * (int64_t) g0; - int64_t f1g1_2 = f1_2 * (int64_t) g1; - int64_t f1g2 = f1 * (int64_t) g2; - int64_t f1g3_2 = f1_2 * (int64_t) g3; - int64_t f1g4 = f1 * (int64_t) g4; - int64_t f1g5_2 = f1_2 * (int64_t) g5; - int64_t f1g6 = f1 * (int64_t) g6; - int64_t f1g7_2 = f1_2 * (int64_t) g7; - int64_t f1g8 = f1 * (int64_t) g8; - int64_t f1g9_38 = f1_2 * (int64_t) g9_19; - int64_t f2g0 = f2 * (int64_t) g0; - int64_t f2g1 = f2 * (int64_t) g1; - int64_t f2g2 = f2 * (int64_t) g2; - int64_t f2g3 = f2 * (int64_t) g3; - int64_t f2g4 = f2 * (int64_t) g4; - int64_t f2g5 = f2 * (int64_t) g5; - int64_t f2g6 = f2 * (int64_t) g6; - int64_t f2g7 = f2 * (int64_t) g7; - int64_t f2g8_19 = f2 * (int64_t) g8_19; - int64_t f2g9_19 = f2 * (int64_t) g9_19; - int64_t f3g0 = f3 * (int64_t) g0; - int64_t f3g1_2 = f3_2 * (int64_t) g1; - int64_t f3g2 = f3 * (int64_t) g2; - int64_t f3g3_2 = f3_2 * (int64_t) g3; - int64_t f3g4 = f3 * (int64_t) g4; - int64_t f3g5_2 = f3_2 * (int64_t) g5; - int64_t f3g6 = f3 * (int64_t) g6; - int64_t f3g7_38 = f3_2 * (int64_t) g7_19; - int64_t f3g8_19 = f3 * (int64_t) g8_19; - int64_t f3g9_38 = f3_2 * (int64_t) g9_19; - int64_t f4g0 = f4 * (int64_t) g0; - int64_t f4g1 = f4 * (int64_t) g1; - int64_t f4g2 = f4 * (int64_t) g2; - int64_t f4g3 = f4 * (int64_t) g3; - int64_t f4g4 = f4 * (int64_t) g4; - int64_t f4g5 = f4 * (int64_t) g5; - int64_t f4g6_19 = f4 * (int64_t) g6_19; - int64_t f4g7_19 = f4 * (int64_t) g7_19; - int64_t f4g8_19 = f4 * (int64_t) g8_19; - int64_t f4g9_19 = f4 * (int64_t) g9_19; - int64_t f5g0 = f5 * (int64_t) g0; - int64_t f5g1_2 = f5_2 * (int64_t) g1; - int64_t f5g2 = f5 * (int64_t) g2; - int64_t f5g3_2 = f5_2 * (int64_t) g3; - int64_t f5g4 = f5 * (int64_t) g4; - int64_t f5g5_38 = f5_2 * (int64_t) g5_19; - int64_t f5g6_19 = f5 * (int64_t) g6_19; - int64_t f5g7_38 = f5_2 * (int64_t) g7_19; - int64_t f5g8_19 = f5 * (int64_t) g8_19; - int64_t f5g9_38 = f5_2 * (int64_t) g9_19; - int64_t f6g0 = f6 * (int64_t) g0; - int64_t f6g1 = f6 * (int64_t) g1; - int64_t f6g2 = f6 * (int64_t) g2; - int64_t f6g3 = f6 * (int64_t) g3; - int64_t f6g4_19 = f6 * (int64_t) g4_19; - int64_t f6g5_19 = f6 * (int64_t) g5_19; - int64_t f6g6_19 = f6 * (int64_t) g6_19; - int64_t f6g7_19 = f6 * (int64_t) g7_19; - int64_t f6g8_19 = f6 * (int64_t) g8_19; - int64_t f6g9_19 = f6 * (int64_t) g9_19; - int64_t f7g0 = f7 * (int64_t) g0; - int64_t f7g1_2 = f7_2 * (int64_t) g1; - int64_t f7g2 = f7 * (int64_t) g2; - int64_t f7g3_38 = f7_2 * (int64_t) g3_19; - int64_t f7g4_19 = f7 * (int64_t) g4_19; - int64_t f7g5_38 = f7_2 * (int64_t) g5_19; - int64_t f7g6_19 = f7 * (int64_t) g6_19; - int64_t f7g7_38 = f7_2 * (int64_t) g7_19; - int64_t f7g8_19 = f7 * (int64_t) g8_19; - int64_t f7g9_38 = f7_2 * (int64_t) g9_19; - int64_t f8g0 = f8 * (int64_t) g0; - int64_t f8g1 = f8 * (int64_t) g1; - int64_t f8g2_19 = f8 * (int64_t) g2_19; - int64_t f8g3_19 = f8 * (int64_t) g3_19; - int64_t f8g4_19 = f8 * (int64_t) g4_19; - int64_t f8g5_19 = f8 * (int64_t) g5_19; - int64_t f8g6_19 = f8 * (int64_t) g6_19; - int64_t f8g7_19 = f8 * (int64_t) g7_19; - int64_t f8g8_19 = f8 * (int64_t) g8_19; - int64_t f8g9_19 = f8 * (int64_t) g9_19; - int64_t f9g0 = f9 * (int64_t) g0; - int64_t f9g1_38 = f9_2 * (int64_t) g1_19; - int64_t f9g2_19 = f9 * (int64_t) g2_19; - int64_t f9g3_38 = f9_2 * (int64_t) g3_19; - int64_t f9g4_19 = f9 * (int64_t) g4_19; - int64_t f9g5_38 = f9_2 * (int64_t) g5_19; - int64_t f9g6_19 = f9 * (int64_t) g6_19; - int64_t f9g7_38 = f9_2 * (int64_t) g7_19; - int64_t f9g8_19 = f9 * (int64_t) g8_19; - int64_t f9g9_38 = f9_2 * (int64_t) g9_19; - int64_t h0 = f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38; - int64_t h1 = f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19; - int64_t h2 = f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38; - int64_t h3 = f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19; - int64_t h4 = f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38; - int64_t h5 = f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19; - int64_t h6 = f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38; - int64_t h7 = f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19; - int64_t h8 = f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38; - int64_t h9 = f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0 ; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - - carry1 = (h1 + (int64_t) (1 << 24)) >> 25; - h2 += carry1; - h1 -= carry1 << 25; - carry5 = (h5 + (int64_t) (1 << 24)) >> 25; - h6 += carry5; - h5 -= carry5 << 25; - - carry2 = (h2 + (int64_t) (1 << 25)) >> 26; - h3 += carry2; - h2 -= carry2 << 26; - carry6 = (h6 + (int64_t) (1 << 25)) >> 26; - h7 += carry6; - h6 -= carry6 << 26; - - carry3 = (h3 + (int64_t) (1 << 24)) >> 25; - h4 += carry3; - h3 -= carry3 << 25; - carry7 = (h7 + (int64_t) (1 << 24)) >> 25; - h8 += carry7; - h7 -= carry7 << 25; - - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry8 = (h8 + (int64_t) (1 << 25)) >> 26; - h9 += carry8; - h8 -= carry8 << 26; - - carry9 = (h9 + (int64_t) (1 << 24)) >> 25; - h0 += carry9 * 19; - h9 -= carry9 << 25; - - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - - h[0] = (int32_t) h0; - h[1] = (int32_t) h1; - h[2] = (int32_t) h2; - h[3] = (int32_t) h3; - h[4] = (int32_t) h4; - h[5] = (int32_t) h5; - h[6] = (int32_t) h6; - h[7] = (int32_t) h7; - h[8] = (int32_t) h8; - h[9] = (int32_t) h9; -} - - -/* -h = f * 121666 -Can overlap h with f. - -Preconditions: - |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. - -Postconditions: - |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -*/ - -void fe_mul121666(fe h, fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int64_t h0 = f0 * (int64_t) 121666; - int64_t h1 = f1 * (int64_t) 121666; - int64_t h2 = f2 * (int64_t) 121666; - int64_t h3 = f3 * (int64_t) 121666; - int64_t h4 = f4 * (int64_t) 121666; - int64_t h5 = f5 * (int64_t) 121666; - int64_t h6 = f6 * (int64_t) 121666; - int64_t h7 = f7 * (int64_t) 121666; - int64_t h8 = f8 * (int64_t) 121666; - int64_t h9 = f9 * (int64_t) 121666; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - - carry9 = (h9 + (int64_t) (1<<24)) >> 25; h0 += carry9 * 19; h9 -= carry9 << 25; - carry1 = (h1 + (int64_t) (1<<24)) >> 25; h2 += carry1; h1 -= carry1 << 25; - carry3 = (h3 + (int64_t) (1<<24)) >> 25; h4 += carry3; h3 -= carry3 << 25; - carry5 = (h5 + (int64_t) (1<<24)) >> 25; h6 += carry5; h5 -= carry5 << 25; - carry7 = (h7 + (int64_t) (1<<24)) >> 25; h8 += carry7; h7 -= carry7 << 25; - - carry0 = (h0 + (int64_t) (1<<25)) >> 26; h1 += carry0; h0 -= carry0 << 26; - carry2 = (h2 + (int64_t) (1<<25)) >> 26; h3 += carry2; h2 -= carry2 << 26; - carry4 = (h4 + (int64_t) (1<<25)) >> 26; h5 += carry4; h4 -= carry4 << 26; - carry6 = (h6 + (int64_t) (1<<25)) >> 26; h7 += carry6; h6 -= carry6 << 26; - carry8 = (h8 + (int64_t) (1<<25)) >> 26; h9 += carry8; h8 -= carry8 << 26; - - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; -} - - -/* -h = -f - -Preconditions: - |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - -Postconditions: - |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. -*/ - -void fe_neg(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t h0 = -f0; - int32_t h1 = -f1; - int32_t h2 = -f2; - int32_t h3 = -f3; - int32_t h4 = -f4; - int32_t h5 = -f5; - int32_t h6 = -f6; - int32_t h7 = -f7; - int32_t h8 = -f8; - int32_t h9 = -f9; - - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; -} - - -void fe_pow22523(fe out, const fe z) { - fe t0; - fe t1; - fe t2; - int i; - fe_sq(t0, z); - - for (i = 1; i < 1; ++i) { - fe_sq(t0, t0); - } - - fe_sq(t1, t0); - - for (i = 1; i < 2; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t1, z, t1); - fe_mul(t0, t0, t1); - fe_sq(t0, t0); - - for (i = 1; i < 1; ++i) { - fe_sq(t0, t0); - } - - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - - for (i = 1; i < 5; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - - for (i = 1; i < 10; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t1, t1, t0); - fe_sq(t2, t1); - - for (i = 1; i < 20; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t2, t1); - fe_sq(t1, t1); - - for (i = 1; i < 10; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t0, t1, t0); - fe_sq(t1, t0); - - for (i = 1; i < 50; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t1, t1, t0); - fe_sq(t2, t1); - - for (i = 1; i < 100; ++i) { - fe_sq(t2, t2); - } - - fe_mul(t1, t2, t1); - fe_sq(t1, t1); - - for (i = 1; i < 50; ++i) { - fe_sq(t1, t1); - } - - fe_mul(t0, t1, t0); - fe_sq(t0, t0); - - for (i = 1; i < 2; ++i) { - fe_sq(t0, t0); - } - - fe_mul(out, t0, z); - return; -} - - -/* -h = f * f -Can overlap h with f. - -Preconditions: - |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. - -Postconditions: - |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. -*/ - -/* -See fe_mul.c for discussion of implementation strategy. -*/ - -void fe_sq(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t f0_2 = 2 * f0; - int32_t f1_2 = 2 * f1; - int32_t f2_2 = 2 * f2; - int32_t f3_2 = 2 * f3; - int32_t f4_2 = 2 * f4; - int32_t f5_2 = 2 * f5; - int32_t f6_2 = 2 * f6; - int32_t f7_2 = 2 * f7; - int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ - int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ - int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ - int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ - int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ - int64_t f0f0 = f0 * (int64_t) f0; - int64_t f0f1_2 = f0_2 * (int64_t) f1; - int64_t f0f2_2 = f0_2 * (int64_t) f2; - int64_t f0f3_2 = f0_2 * (int64_t) f3; - int64_t f0f4_2 = f0_2 * (int64_t) f4; - int64_t f0f5_2 = f0_2 * (int64_t) f5; - int64_t f0f6_2 = f0_2 * (int64_t) f6; - int64_t f0f7_2 = f0_2 * (int64_t) f7; - int64_t f0f8_2 = f0_2 * (int64_t) f8; - int64_t f0f9_2 = f0_2 * (int64_t) f9; - int64_t f1f1_2 = f1_2 * (int64_t) f1; - int64_t f1f2_2 = f1_2 * (int64_t) f2; - int64_t f1f3_4 = f1_2 * (int64_t) f3_2; - int64_t f1f4_2 = f1_2 * (int64_t) f4; - int64_t f1f5_4 = f1_2 * (int64_t) f5_2; - int64_t f1f6_2 = f1_2 * (int64_t) f6; - int64_t f1f7_4 = f1_2 * (int64_t) f7_2; - int64_t f1f8_2 = f1_2 * (int64_t) f8; - int64_t f1f9_76 = f1_2 * (int64_t) f9_38; - int64_t f2f2 = f2 * (int64_t) f2; - int64_t f2f3_2 = f2_2 * (int64_t) f3; - int64_t f2f4_2 = f2_2 * (int64_t) f4; - int64_t f2f5_2 = f2_2 * (int64_t) f5; - int64_t f2f6_2 = f2_2 * (int64_t) f6; - int64_t f2f7_2 = f2_2 * (int64_t) f7; - int64_t f2f8_38 = f2_2 * (int64_t) f8_19; - int64_t f2f9_38 = f2 * (int64_t) f9_38; - int64_t f3f3_2 = f3_2 * (int64_t) f3; - int64_t f3f4_2 = f3_2 * (int64_t) f4; - int64_t f3f5_4 = f3_2 * (int64_t) f5_2; - int64_t f3f6_2 = f3_2 * (int64_t) f6; - int64_t f3f7_76 = f3_2 * (int64_t) f7_38; - int64_t f3f8_38 = f3_2 * (int64_t) f8_19; - int64_t f3f9_76 = f3_2 * (int64_t) f9_38; - int64_t f4f4 = f4 * (int64_t) f4; - int64_t f4f5_2 = f4_2 * (int64_t) f5; - int64_t f4f6_38 = f4_2 * (int64_t) f6_19; - int64_t f4f7_38 = f4 * (int64_t) f7_38; - int64_t f4f8_38 = f4_2 * (int64_t) f8_19; - int64_t f4f9_38 = f4 * (int64_t) f9_38; - int64_t f5f5_38 = f5 * (int64_t) f5_38; - int64_t f5f6_38 = f5_2 * (int64_t) f6_19; - int64_t f5f7_76 = f5_2 * (int64_t) f7_38; - int64_t f5f8_38 = f5_2 * (int64_t) f8_19; - int64_t f5f9_76 = f5_2 * (int64_t) f9_38; - int64_t f6f6_19 = f6 * (int64_t) f6_19; - int64_t f6f7_38 = f6 * (int64_t) f7_38; - int64_t f6f8_38 = f6_2 * (int64_t) f8_19; - int64_t f6f9_38 = f6 * (int64_t) f9_38; - int64_t f7f7_38 = f7 * (int64_t) f7_38; - int64_t f7f8_38 = f7_2 * (int64_t) f8_19; - int64_t f7f9_76 = f7_2 * (int64_t) f9_38; - int64_t f8f8_19 = f8 * (int64_t) f8_19; - int64_t f8f9_38 = f8 * (int64_t) f9_38; - int64_t f9f9_38 = f9 * (int64_t) f9_38; - int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; - int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; - int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; - int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; - int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; - int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; - int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; - int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; - int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; - int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry1 = (h1 + (int64_t) (1 << 24)) >> 25; - h2 += carry1; - h1 -= carry1 << 25; - carry5 = (h5 + (int64_t) (1 << 24)) >> 25; - h6 += carry5; - h5 -= carry5 << 25; - carry2 = (h2 + (int64_t) (1 << 25)) >> 26; - h3 += carry2; - h2 -= carry2 << 26; - carry6 = (h6 + (int64_t) (1 << 25)) >> 26; - h7 += carry6; - h6 -= carry6 << 26; - carry3 = (h3 + (int64_t) (1 << 24)) >> 25; - h4 += carry3; - h3 -= carry3 << 25; - carry7 = (h7 + (int64_t) (1 << 24)) >> 25; - h8 += carry7; - h7 -= carry7 << 25; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry8 = (h8 + (int64_t) (1 << 25)) >> 26; - h9 += carry8; - h8 -= carry8 << 26; - carry9 = (h9 + (int64_t) (1 << 24)) >> 25; - h0 += carry9 * 19; - h9 -= carry9 << 25; - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - h[0] = (int32_t) h0; - h[1] = (int32_t) h1; - h[2] = (int32_t) h2; - h[3] = (int32_t) h3; - h[4] = (int32_t) h4; - h[5] = (int32_t) h5; - h[6] = (int32_t) h6; - h[7] = (int32_t) h7; - h[8] = (int32_t) h8; - h[9] = (int32_t) h9; -} - - -/* -h = 2 * f * f -Can overlap h with f. - -Preconditions: - |f| bounded by 1.65*2^26,1.65*2^25,1.65*2^26,1.65*2^25,etc. - -Postconditions: - |h| bounded by 1.01*2^25,1.01*2^24,1.01*2^25,1.01*2^24,etc. -*/ - -/* -See fe_mul.c for discussion of implementation strategy. -*/ - -void fe_sq2(fe h, const fe f) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t f0_2 = 2 * f0; - int32_t f1_2 = 2 * f1; - int32_t f2_2 = 2 * f2; - int32_t f3_2 = 2 * f3; - int32_t f4_2 = 2 * f4; - int32_t f5_2 = 2 * f5; - int32_t f6_2 = 2 * f6; - int32_t f7_2 = 2 * f7; - int32_t f5_38 = 38 * f5; /* 1.959375*2^30 */ - int32_t f6_19 = 19 * f6; /* 1.959375*2^30 */ - int32_t f7_38 = 38 * f7; /* 1.959375*2^30 */ - int32_t f8_19 = 19 * f8; /* 1.959375*2^30 */ - int32_t f9_38 = 38 * f9; /* 1.959375*2^30 */ - int64_t f0f0 = f0 * (int64_t) f0; - int64_t f0f1_2 = f0_2 * (int64_t) f1; - int64_t f0f2_2 = f0_2 * (int64_t) f2; - int64_t f0f3_2 = f0_2 * (int64_t) f3; - int64_t f0f4_2 = f0_2 * (int64_t) f4; - int64_t f0f5_2 = f0_2 * (int64_t) f5; - int64_t f0f6_2 = f0_2 * (int64_t) f6; - int64_t f0f7_2 = f0_2 * (int64_t) f7; - int64_t f0f8_2 = f0_2 * (int64_t) f8; - int64_t f0f9_2 = f0_2 * (int64_t) f9; - int64_t f1f1_2 = f1_2 * (int64_t) f1; - int64_t f1f2_2 = f1_2 * (int64_t) f2; - int64_t f1f3_4 = f1_2 * (int64_t) f3_2; - int64_t f1f4_2 = f1_2 * (int64_t) f4; - int64_t f1f5_4 = f1_2 * (int64_t) f5_2; - int64_t f1f6_2 = f1_2 * (int64_t) f6; - int64_t f1f7_4 = f1_2 * (int64_t) f7_2; - int64_t f1f8_2 = f1_2 * (int64_t) f8; - int64_t f1f9_76 = f1_2 * (int64_t) f9_38; - int64_t f2f2 = f2 * (int64_t) f2; - int64_t f2f3_2 = f2_2 * (int64_t) f3; - int64_t f2f4_2 = f2_2 * (int64_t) f4; - int64_t f2f5_2 = f2_2 * (int64_t) f5; - int64_t f2f6_2 = f2_2 * (int64_t) f6; - int64_t f2f7_2 = f2_2 * (int64_t) f7; - int64_t f2f8_38 = f2_2 * (int64_t) f8_19; - int64_t f2f9_38 = f2 * (int64_t) f9_38; - int64_t f3f3_2 = f3_2 * (int64_t) f3; - int64_t f3f4_2 = f3_2 * (int64_t) f4; - int64_t f3f5_4 = f3_2 * (int64_t) f5_2; - int64_t f3f6_2 = f3_2 * (int64_t) f6; - int64_t f3f7_76 = f3_2 * (int64_t) f7_38; - int64_t f3f8_38 = f3_2 * (int64_t) f8_19; - int64_t f3f9_76 = f3_2 * (int64_t) f9_38; - int64_t f4f4 = f4 * (int64_t) f4; - int64_t f4f5_2 = f4_2 * (int64_t) f5; - int64_t f4f6_38 = f4_2 * (int64_t) f6_19; - int64_t f4f7_38 = f4 * (int64_t) f7_38; - int64_t f4f8_38 = f4_2 * (int64_t) f8_19; - int64_t f4f9_38 = f4 * (int64_t) f9_38; - int64_t f5f5_38 = f5 * (int64_t) f5_38; - int64_t f5f6_38 = f5_2 * (int64_t) f6_19; - int64_t f5f7_76 = f5_2 * (int64_t) f7_38; - int64_t f5f8_38 = f5_2 * (int64_t) f8_19; - int64_t f5f9_76 = f5_2 * (int64_t) f9_38; - int64_t f6f6_19 = f6 * (int64_t) f6_19; - int64_t f6f7_38 = f6 * (int64_t) f7_38; - int64_t f6f8_38 = f6_2 * (int64_t) f8_19; - int64_t f6f9_38 = f6 * (int64_t) f9_38; - int64_t f7f7_38 = f7 * (int64_t) f7_38; - int64_t f7f8_38 = f7_2 * (int64_t) f8_19; - int64_t f7f9_76 = f7_2 * (int64_t) f9_38; - int64_t f8f8_19 = f8 * (int64_t) f8_19; - int64_t f8f9_38 = f8 * (int64_t) f9_38; - int64_t f9f9_38 = f9 * (int64_t) f9_38; - int64_t h0 = f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38; - int64_t h1 = f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38; - int64_t h2 = f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19; - int64_t h3 = f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38; - int64_t h4 = f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38; - int64_t h5 = f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38; - int64_t h6 = f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19; - int64_t h7 = f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38; - int64_t h8 = f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38; - int64_t h9 = f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - h0 += h0; - h1 += h1; - h2 += h2; - h3 += h3; - h4 += h4; - h5 += h5; - h6 += h6; - h7 += h7; - h8 += h8; - h9 += h9; - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry1 = (h1 + (int64_t) (1 << 24)) >> 25; - h2 += carry1; - h1 -= carry1 << 25; - carry5 = (h5 + (int64_t) (1 << 24)) >> 25; - h6 += carry5; - h5 -= carry5 << 25; - carry2 = (h2 + (int64_t) (1 << 25)) >> 26; - h3 += carry2; - h2 -= carry2 << 26; - carry6 = (h6 + (int64_t) (1 << 25)) >> 26; - h7 += carry6; - h6 -= carry6 << 26; - carry3 = (h3 + (int64_t) (1 << 24)) >> 25; - h4 += carry3; - h3 -= carry3 << 25; - carry7 = (h7 + (int64_t) (1 << 24)) >> 25; - h8 += carry7; - h7 -= carry7 << 25; - carry4 = (h4 + (int64_t) (1 << 25)) >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry8 = (h8 + (int64_t) (1 << 25)) >> 26; - h9 += carry8; - h8 -= carry8 << 26; - carry9 = (h9 + (int64_t) (1 << 24)) >> 25; - h0 += carry9 * 19; - h9 -= carry9 << 25; - carry0 = (h0 + (int64_t) (1 << 25)) >> 26; - h1 += carry0; - h0 -= carry0 << 26; - h[0] = (int32_t) h0; - h[1] = (int32_t) h1; - h[2] = (int32_t) h2; - h[3] = (int32_t) h3; - h[4] = (int32_t) h4; - h[5] = (int32_t) h5; - h[6] = (int32_t) h6; - h[7] = (int32_t) h7; - h[8] = (int32_t) h8; - h[9] = (int32_t) h9; -} - - -/* -h = f - g -Can overlap h with f or g. - -Preconditions: - |f| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - |g| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc. - -Postconditions: - |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. -*/ - -void fe_sub(fe h, const fe f, const fe g) { - int32_t f0 = f[0]; - int32_t f1 = f[1]; - int32_t f2 = f[2]; - int32_t f3 = f[3]; - int32_t f4 = f[4]; - int32_t f5 = f[5]; - int32_t f6 = f[6]; - int32_t f7 = f[7]; - int32_t f8 = f[8]; - int32_t f9 = f[9]; - int32_t g0 = g[0]; - int32_t g1 = g[1]; - int32_t g2 = g[2]; - int32_t g3 = g[3]; - int32_t g4 = g[4]; - int32_t g5 = g[5]; - int32_t g6 = g[6]; - int32_t g7 = g[7]; - int32_t g8 = g[8]; - int32_t g9 = g[9]; - int32_t h0 = f0 - g0; - int32_t h1 = f1 - g1; - int32_t h2 = f2 - g2; - int32_t h3 = f3 - g3; - int32_t h4 = f4 - g4; - int32_t h5 = f5 - g5; - int32_t h6 = f6 - g6; - int32_t h7 = f7 - g7; - int32_t h8 = f8 - g8; - int32_t h9 = f9 - g9; - - h[0] = h0; - h[1] = h1; - h[2] = h2; - h[3] = h3; - h[4] = h4; - h[5] = h5; - h[6] = h6; - h[7] = h7; - h[8] = h8; - h[9] = h9; -} - - - -/* -Preconditions: - |h| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. - -Write p=2^255-19; q=floor(h/p). -Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))). - -Proof: - Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4. - Also have |h-2^230 h9|<2^231 so |19 2^(-255)(h-2^230 h9)|<1/4. - - Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9). - Then 0> 25; - q = (h0 + q) >> 26; - q = (h1 + q) >> 25; - q = (h2 + q) >> 26; - q = (h3 + q) >> 25; - q = (h4 + q) >> 26; - q = (h5 + q) >> 25; - q = (h6 + q) >> 26; - q = (h7 + q) >> 25; - q = (h8 + q) >> 26; - q = (h9 + q) >> 25; - /* Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20. */ - h0 += 19 * q; - /* Goal: Output h-2^255 q, which is between 0 and 2^255-20. */ - carry0 = h0 >> 26; - h1 += carry0; - h0 -= carry0 << 26; - carry1 = h1 >> 25; - h2 += carry1; - h1 -= carry1 << 25; - carry2 = h2 >> 26; - h3 += carry2; - h2 -= carry2 << 26; - carry3 = h3 >> 25; - h4 += carry3; - h3 -= carry3 << 25; - carry4 = h4 >> 26; - h5 += carry4; - h4 -= carry4 << 26; - carry5 = h5 >> 25; - h6 += carry5; - h5 -= carry5 << 25; - carry6 = h6 >> 26; - h7 += carry6; - h6 -= carry6 << 26; - carry7 = h7 >> 25; - h8 += carry7; - h7 -= carry7 << 25; - carry8 = h8 >> 26; - h9 += carry8; - h8 -= carry8 << 26; - carry9 = h9 >> 25; - h9 -= carry9 << 25; - - /* h10 = carry9 */ - /* - Goal: Output h0+...+2^255 h10-2^255 q, which is between 0 and 2^255-20. - Have h0+...+2^230 h9 between 0 and 2^255-1; - evidently 2^255 h10-2^255 q = 0. - Goal: Output h0+...+2^230 h9. - */ - s[0] = (unsigned char) (h0 >> 0); - s[1] = (unsigned char) (h0 >> 8); - s[2] = (unsigned char) (h0 >> 16); - s[3] = (unsigned char) ((h0 >> 24) | (h1 << 2)); - s[4] = (unsigned char) (h1 >> 6); - s[5] = (unsigned char) (h1 >> 14); - s[6] = (unsigned char) ((h1 >> 22) | (h2 << 3)); - s[7] = (unsigned char) (h2 >> 5); - s[8] = (unsigned char) (h2 >> 13); - s[9] = (unsigned char) ((h2 >> 21) | (h3 << 5)); - s[10] = (unsigned char) (h3 >> 3); - s[11] = (unsigned char) (h3 >> 11); - s[12] = (unsigned char) ((h3 >> 19) | (h4 << 6)); - s[13] = (unsigned char) (h4 >> 2); - s[14] = (unsigned char) (h4 >> 10); - s[15] = (unsigned char) (h4 >> 18); - s[16] = (unsigned char) (h5 >> 0); - s[17] = (unsigned char) (h5 >> 8); - s[18] = (unsigned char) (h5 >> 16); - s[19] = (unsigned char) ((h5 >> 24) | (h6 << 1)); - s[20] = (unsigned char) (h6 >> 7); - s[21] = (unsigned char) (h6 >> 15); - s[22] = (unsigned char) ((h6 >> 23) | (h7 << 3)); - s[23] = (unsigned char) (h7 >> 5); - s[24] = (unsigned char) (h7 >> 13); - s[25] = (unsigned char) ((h7 >> 21) | (h8 << 4)); - s[26] = (unsigned char) (h8 >> 4); - s[27] = (unsigned char) (h8 >> 12); - s[28] = (unsigned char) ((h8 >> 20) | (h9 << 6)); - s[29] = (unsigned char) (h9 >> 2); - s[30] = (unsigned char) (h9 >> 10); - s[31] = (unsigned char) (h9 >> 18); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.h deleted file mode 100644 index b4b62d282..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/fe.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef FE_H -#define FE_H - -#include "fixedint.h" - - -/* - fe means field element. - Here the field is \Z/(2^255-19). - An element t, entries t[0]...t[9], represents the integer - t[0]+2^26 t[1]+2^51 t[2]+2^77 t[3]+2^102 t[4]+...+2^230 t[9]. - Bounds on each t[i] vary depending on context. -*/ - - -typedef int32_t fe[10]; - - -void fe_0(fe h); -void fe_1(fe h); - -void fe_frombytes(fe h, const unsigned char *s); -void fe_tobytes(unsigned char *s, const fe h); - -void fe_copy(fe h, const fe f); -int fe_isnegative(const fe f); -int fe_isnonzero(const fe f); -void fe_cmov(fe f, const fe g, unsigned int b); -void fe_cswap(fe f, fe g, unsigned int b); - -void fe_neg(fe h, const fe f); -void fe_add(fe h, const fe f, const fe g); -void fe_invert(fe out, const fe z); -void fe_sq(fe h, const fe f); -void fe_sq2(fe h, const fe f); -void fe_mul(fe h, const fe f, const fe g); -void fe_mul121666(fe h, fe f); -void fe_pow22523(fe out, const fe z); -void fe_sub(fe h, const fe f, const fe g); - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/fixedint.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/fixedint.h deleted file mode 100644 index 1a8745b1e..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/fixedint.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Portable header to provide the 32 and 64 bits type. - - Not a compatible replacement for , do not blindly use it as such. -*/ - -#if ((defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__WATCOMC__) && (defined(_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_) || defined(__UINT_FAST64_TYPE__)) )) && !defined(FIXEDINT_H_INCLUDED) - #include - #define FIXEDINT_H_INCLUDED - - #if defined(__WATCOMC__) && __WATCOMC__ >= 1250 && !defined(UINT64_C) - #include - #define UINT64_C(x) (x + (UINT64_MAX - UINT64_MAX)) - #endif -#endif - - -#ifndef FIXEDINT_H_INCLUDED - #define FIXEDINT_H_INCLUDED - - #include - - /* (u)int32_t */ - #ifndef uint32_t - #if (ULONG_MAX == 0xffffffffUL) - typedef unsigned long uint32_t; - #elif (UINT_MAX == 0xffffffffUL) - typedef unsigned int uint32_t; - #elif (USHRT_MAX == 0xffffffffUL) - typedef unsigned short uint32_t; - #endif - #endif - - - #ifndef int32_t - #if (LONG_MAX == 0x7fffffffL) - typedef signed long int32_t; - #elif (INT_MAX == 0x7fffffffL) - typedef signed int int32_t; - #elif (SHRT_MAX == 0x7fffffffL) - typedef signed short int32_t; - #endif - #endif - - - /* (u)int64_t */ - #if (defined(__STDC__) && defined(__STDC_VERSION__) && __STDC__ && __STDC_VERSION__ >= 199901L) - typedef long long int64_t; - typedef unsigned long long uint64_t; - - #define UINT64_C(v) v ##ULL - #define INT64_C(v) v ##LL - #elif defined(__GNUC__) - __extension__ typedef long long int64_t; - __extension__ typedef unsigned long long uint64_t; - - #define UINT64_C(v) v ##ULL - #define INT64_C(v) v ##LL - #elif defined(__MWERKS__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(__APPLE_CC__) || defined(_LONG_LONG) || defined(_CRAYC) - typedef long long int64_t; - typedef unsigned long long uint64_t; - - #define UINT64_C(v) v ##ULL - #define INT64_C(v) v ##LL - #elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || (defined(__BORLANDC__) && __BORLANDC__ > 0x460) || defined(__alpha) || defined(__DECC) - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - - #define UINT64_C(v) v ##UI64 - #define INT64_C(v) v ##I64 - #endif -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.c deleted file mode 100644 index 3c342b1d2..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.c +++ /dev/null @@ -1,467 +0,0 @@ -#include "ge.h" -#include "precomp_data.h" - - -/* -r = p + q -*/ - -void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { - fe t0; - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->YplusX); - fe_mul(r->Y, r->Y, q->YminusX); - fe_mul(r->T, q->T2d, p->T); - fe_mul(r->X, p->Z, q->Z); - fe_add(t0, r->X, r->X); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_add(r->Z, t0, r->T); - fe_sub(r->T, t0, r->T); -} - - -static void slide(signed char *r, const unsigned char *a) { - int i; - int b; - int k; - - for (i = 0; i < 256; ++i) { - r[i] = 1 & (a[i >> 3] >> (i & 7)); - } - - for (i = 0; i < 256; ++i) - if (r[i]) { - for (b = 1; b <= 6 && i + b < 256; ++b) { - if (r[i + b]) { - if (r[i] + (r[i + b] << b) <= 15) { - r[i] += r[i + b] << b; - r[i + b] = 0; - } else if (r[i] - (r[i + b] << b) >= -15) { - r[i] -= r[i + b] << b; - - for (k = i + b; k < 256; ++k) { - if (!r[k]) { - r[k] = 1; - break; - } - - r[k] = 0; - } - } else { - break; - } - } - } - } -} - -/* -r = a * A + b * B -where a = a[0]+256*a[1]+...+256^31 a[31]. -and b = b[0]+256*b[1]+...+256^31 b[31]. -B is the Ed25519 base point (x,4/5) with x positive. -*/ - -void ge_double_scalarmult_vartime(ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b) { - signed char aslide[256]; - signed char bslide[256]; - ge_cached Ai[8]; /* A,3A,5A,7A,9A,11A,13A,15A */ - ge_p1p1 t; - ge_p3 u; - ge_p3 A2; - int i; - slide(aslide, a); - slide(bslide, b); - ge_p3_to_cached(&Ai[0], A); - ge_p3_dbl(&t, A); - ge_p1p1_to_p3(&A2, &t); - ge_add(&t, &A2, &Ai[0]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[1], &u); - ge_add(&t, &A2, &Ai[1]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[2], &u); - ge_add(&t, &A2, &Ai[2]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[3], &u); - ge_add(&t, &A2, &Ai[3]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[4], &u); - ge_add(&t, &A2, &Ai[4]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[5], &u); - ge_add(&t, &A2, &Ai[5]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[6], &u); - ge_add(&t, &A2, &Ai[6]); - ge_p1p1_to_p3(&u, &t); - ge_p3_to_cached(&Ai[7], &u); - ge_p2_0(r); - - for (i = 255; i >= 0; --i) { - if (aslide[i] || bslide[i]) { - break; - } - } - - for (; i >= 0; --i) { - ge_p2_dbl(&t, r); - - if (aslide[i] > 0) { - ge_p1p1_to_p3(&u, &t); - ge_add(&t, &u, &Ai[aslide[i] / 2]); - } else if (aslide[i] < 0) { - ge_p1p1_to_p3(&u, &t); - ge_sub(&t, &u, &Ai[(-aslide[i]) / 2]); - } - - if (bslide[i] > 0) { - ge_p1p1_to_p3(&u, &t); - ge_madd(&t, &u, &Bi[bslide[i] / 2]); - } else if (bslide[i] < 0) { - ge_p1p1_to_p3(&u, &t); - ge_msub(&t, &u, &Bi[(-bslide[i]) / 2]); - } - - ge_p1p1_to_p2(r, &t); - } -} - - -static const fe d = { - -10913610, 13857413, -15372611, 6949391, 114729, -8787816, -6275908, -3247719, -18696448, -12055116 -}; - -static const fe sqrtm1 = { - -32595792, -7943725, 9377950, 3500415, 12389472, -272473, -25146209, -2005654, 326686, 11406482 -}; - -int ge_frombytes_negate_vartime(ge_p3 *h, const unsigned char *s) { - fe u; - fe v; - fe v3; - fe vxx; - fe check; - fe_frombytes(h->Y, s); - fe_1(h->Z); - fe_sq(u, h->Y); - fe_mul(v, u, d); - fe_sub(u, u, h->Z); /* u = y^2-1 */ - fe_add(v, v, h->Z); /* v = dy^2+1 */ - fe_sq(v3, v); - fe_mul(v3, v3, v); /* v3 = v^3 */ - fe_sq(h->X, v3); - fe_mul(h->X, h->X, v); - fe_mul(h->X, h->X, u); /* x = uv^7 */ - fe_pow22523(h->X, h->X); /* x = (uv^7)^((q-5)/8) */ - fe_mul(h->X, h->X, v3); - fe_mul(h->X, h->X, u); /* x = uv^3(uv^7)^((q-5)/8) */ - fe_sq(vxx, h->X); - fe_mul(vxx, vxx, v); - fe_sub(check, vxx, u); /* vx^2-u */ - - if (fe_isnonzero(check)) { - fe_add(check, vxx, u); /* vx^2+u */ - - if (fe_isnonzero(check)) { - return -1; - } - - fe_mul(h->X, h->X, sqrtm1); - } - - if (fe_isnegative(h->X) == (s[31] >> 7)) { - fe_neg(h->X, h->X); - } - - fe_mul(h->T, h->X, h->Y); - return 0; -} - - -/* -r = p + q -*/ - -void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { - fe t0; - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->yplusx); - fe_mul(r->Y, r->Y, q->yminusx); - fe_mul(r->T, q->xy2d, p->T); - fe_add(t0, p->Z, p->Z); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_add(r->Z, t0, r->T); - fe_sub(r->T, t0, r->T); -} - - -/* -r = p - q -*/ - -void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->yminusx); - fe_mul(r->Y, r->Y, q->yplusx); - fe_mul(r->T, q->xy2d, p->T); - fe_add(t0, p->Z, p->Z); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_sub(r->Z, t0, r->T); - fe_add(r->T, t0, r->T); -} - - -/* -r = p -*/ - -void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p) { - fe_mul(r->X, p->X, p->T); - fe_mul(r->Y, p->Y, p->Z); - fe_mul(r->Z, p->Z, p->T); -} - - - -/* -r = p -*/ - -void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p) { - fe_mul(r->X, p->X, p->T); - fe_mul(r->Y, p->Y, p->Z); - fe_mul(r->Z, p->Z, p->T); - fe_mul(r->T, p->X, p->Y); -} - - -void ge_p2_0(ge_p2 *h) { - fe_0(h->X); - fe_1(h->Y); - fe_1(h->Z); -} - - - -/* -r = 2 * p -*/ - -void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p) { - fe t0; - - fe_sq(r->X, p->X); - fe_sq(r->Z, p->Y); - fe_sq2(r->T, p->Z); - fe_add(r->Y, p->X, p->Y); - fe_sq(t0, r->Y); - fe_add(r->Y, r->Z, r->X); - fe_sub(r->Z, r->Z, r->X); - fe_sub(r->X, t0, r->Y); - fe_sub(r->T, r->T, r->Z); -} - - -void ge_p3_0(ge_p3 *h) { - fe_0(h->X); - fe_1(h->Y); - fe_1(h->Z); - fe_0(h->T); -} - - -/* -r = 2 * p -*/ - -void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p) { - ge_p2 q; - ge_p3_to_p2(&q, p); - ge_p2_dbl(r, &q); -} - - - -/* -r = p -*/ - -static const fe d2 = { - -21827239, -5839606, -30745221, 13898782, 229458, 15978800, -12551817, -6495438, 29715968, 9444199 -}; - -void ge_p3_to_cached(ge_cached *r, const ge_p3 *p) { - fe_add(r->YplusX, p->Y, p->X); - fe_sub(r->YminusX, p->Y, p->X); - fe_copy(r->Z, p->Z); - fe_mul(r->T2d, p->T, d2); -} - - -/* -r = p -*/ - -void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p) { - fe_copy(r->X, p->X); - fe_copy(r->Y, p->Y); - fe_copy(r->Z, p->Z); -} - - -void ge_p3_tobytes(unsigned char *s, const ge_p3 *h) { - fe recip; - fe x; - fe y; - fe_invert(recip, h->Z); - fe_mul(x, h->X, recip); - fe_mul(y, h->Y, recip); - fe_tobytes(s, y); - s[31] ^= fe_isnegative(x) << 7; -} - - -static unsigned char equal(signed char b, signed char c) { - unsigned char ub = b; - unsigned char uc = c; - unsigned char x = ub ^ uc; /* 0: yes; 1..255: no */ - uint64_t y = x; /* 0: yes; 1..255: no */ - y -= 1; /* large: yes; 0..254: no */ - y >>= 63; /* 1: yes; 0: no */ - return (unsigned char) y; -} - -static unsigned char negative(signed char b) { - uint64_t x = b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */ - x >>= 63; /* 1: yes; 0: no */ - return (unsigned char) x; -} - -static void cmov(ge_precomp *t, ge_precomp *u, unsigned char b) { - fe_cmov(t->yplusx, u->yplusx, b); - fe_cmov(t->yminusx, u->yminusx, b); - fe_cmov(t->xy2d, u->xy2d, b); -} - - -static void select(ge_precomp *t, int pos, signed char b) { - ge_precomp minust; - unsigned char bnegative = negative(b); - unsigned char babs = b - (((-bnegative) & b) << 1); - fe_1(t->yplusx); - fe_1(t->yminusx); - fe_0(t->xy2d); - cmov(t, &base[pos][0], equal(babs, 1)); - cmov(t, &base[pos][1], equal(babs, 2)); - cmov(t, &base[pos][2], equal(babs, 3)); - cmov(t, &base[pos][3], equal(babs, 4)); - cmov(t, &base[pos][4], equal(babs, 5)); - cmov(t, &base[pos][5], equal(babs, 6)); - cmov(t, &base[pos][6], equal(babs, 7)); - cmov(t, &base[pos][7], equal(babs, 8)); - fe_copy(minust.yplusx, t->yminusx); - fe_copy(minust.yminusx, t->yplusx); - fe_neg(minust.xy2d, t->xy2d); - cmov(t, &minust, bnegative); -} - -/* -h = a * B -where a = a[0]+256*a[1]+...+256^31 a[31] -B is the Ed25519 base point (x,4/5) with x positive. - -Preconditions: - a[31] <= 127 -*/ - -void ge_scalarmult_base(ge_p3 *h, const unsigned char *a) { - signed char e[64]; - signed char carry; - ge_p1p1 r; - ge_p2 s; - ge_precomp t; - int i; - - for (i = 0; i < 32; ++i) { - e[2 * i + 0] = (a[i] >> 0) & 15; - e[2 * i + 1] = (a[i] >> 4) & 15; - } - - /* each e[i] is between 0 and 15 */ - /* e[63] is between 0 and 7 */ - carry = 0; - - for (i = 0; i < 63; ++i) { - e[i] += carry; - carry = e[i] + 8; - carry >>= 4; - e[i] -= carry << 4; - } - - e[63] += carry; - /* each e[i] is between -8 and 8 */ - ge_p3_0(h); - - for (i = 1; i < 64; i += 2) { - select(&t, i / 2, e[i]); - ge_madd(&r, h, &t); - ge_p1p1_to_p3(h, &r); - } - - ge_p3_dbl(&r, h); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p2(&s, &r); - ge_p2_dbl(&r, &s); - ge_p1p1_to_p3(h, &r); - - for (i = 0; i < 64; i += 2) { - select(&t, i / 2, e[i]); - ge_madd(&r, h, &t); - ge_p1p1_to_p3(h, &r); - } -} - - -/* -r = p - q -*/ - -void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) { - fe t0; - - fe_add(r->X, p->Y, p->X); - fe_sub(r->Y, p->Y, p->X); - fe_mul(r->Z, r->X, q->YminusX); - fe_mul(r->Y, r->Y, q->YplusX); - fe_mul(r->T, q->T2d, p->T); - fe_mul(r->X, p->Z, q->Z); - fe_add(t0, r->X, r->X); - fe_sub(r->X, r->Z, r->Y); - fe_add(r->Y, r->Z, r->Y); - fe_sub(r->Z, t0, r->T); - fe_add(r->T, t0, r->T); -} - - -void ge_tobytes(unsigned char *s, const ge_p2 *h) { - fe recip; - fe x; - fe y; - fe_invert(recip, h->Z); - fe_mul(x, h->X, recip); - fe_mul(y, h->Y, recip); - fe_tobytes(s, y); - s[31] ^= fe_isnegative(x) << 7; -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.h deleted file mode 100644 index 17fde2df1..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/ge.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef GE_H -#define GE_H - -#include "fe.h" - - -/* -ge means group element. - -Here the group is the set of pairs (x,y) of field elements (see fe.h) -satisfying -x^2 + y^2 = 1 + d x^2y^2 -where d = -121665/121666. - -Representations: - ge_p2 (projective): (X:Y:Z) satisfying x=X/Z, y=Y/Z - ge_p3 (extended): (X:Y:Z:T) satisfying x=X/Z, y=Y/Z, XY=ZT - ge_p1p1 (completed): ((X:Z),(Y:T)) satisfying x=X/Z, y=Y/T - ge_precomp (Duif): (y+x,y-x,2dxy) -*/ - -typedef struct { - fe X; - fe Y; - fe Z; -} ge_p2; - -typedef struct { - fe X; - fe Y; - fe Z; - fe T; -} ge_p3; - -typedef struct { - fe X; - fe Y; - fe Z; - fe T; -} ge_p1p1; - -typedef struct { - fe yplusx; - fe yminusx; - fe xy2d; -} ge_precomp; - -typedef struct { - fe YplusX; - fe YminusX; - fe Z; - fe T2d; -} ge_cached; - -void ge_p3_tobytes(unsigned char *s, const ge_p3 *h); -void ge_tobytes(unsigned char *s, const ge_p2 *h); -int ge_frombytes_negate_vartime(ge_p3 *h, const unsigned char *s); - -void ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q); -void ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q); -void ge_double_scalarmult_vartime(ge_p2 *r, const unsigned char *a, const ge_p3 *A, const unsigned char *b); -void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q); -void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q); -void ge_scalarmult_base(ge_p3 *h, const unsigned char *a); - -void ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p); -void ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p); -void ge_p2_0(ge_p2 *h); -void ge_p2_dbl(ge_p1p1 *r, const ge_p2 *p); -void ge_p3_0(ge_p3 *h); -void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p); -void ge_p3_to_cached(ge_cached *r, const ge_p3 *p); -void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p); - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/key_exchange.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/key_exchange.c deleted file mode 100644 index abd75da2c..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/key_exchange.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "ed25519.h" -#include "fe.h" - -void ed25519_key_exchange(unsigned char *shared_secret, const unsigned char *public_key, const unsigned char *private_key) { - unsigned char e[32]; - unsigned int i; - - fe x1; - fe x2; - fe z2; - fe x3; - fe z3; - fe tmp0; - fe tmp1; - - int pos; - unsigned int swap; - unsigned int b; - - /* copy the private key and make sure it's valid */ - for (i = 0; i < 32; ++i) { - e[i] = private_key[i]; - } - - e[0] &= 248; - e[31] &= 63; - e[31] |= 64; - - /* unpack the public key and convert edwards to montgomery */ - /* due to CodesInChaos: montgomeryX = (edwardsY + 1)*inverse(1 - edwardsY) mod p */ - fe_frombytes(x1, public_key); - fe_1(tmp1); - fe_add(tmp0, x1, tmp1); - fe_sub(tmp1, tmp1, x1); - fe_invert(tmp1, tmp1); - fe_mul(x1, tmp0, tmp1); - - fe_1(x2); - fe_0(z2); - fe_copy(x3, x1); - fe_1(z3); - - swap = 0; - for (pos = 254; pos >= 0; --pos) { - b = e[pos / 8] >> (pos & 7); - b &= 1; - swap ^= b; - fe_cswap(x2, x3, swap); - fe_cswap(z2, z3, swap); - swap = b; - - /* from montgomery.h */ - fe_sub(tmp0, x3, z3); - fe_sub(tmp1, x2, z2); - fe_add(x2, x2, z2); - fe_add(z2, x3, z3); - fe_mul(z3, tmp0, x2); - fe_mul(z2, z2, tmp1); - fe_sq(tmp0, tmp1); - fe_sq(tmp1, x2); - fe_add(x3, z3, z2); - fe_sub(z2, z3, z2); - fe_mul(x2, tmp1, tmp0); - fe_sub(tmp1, tmp1, tmp0); - fe_sq(z2, z2); - fe_mul121666(z3, tmp1); - fe_sq(x3, x3); - fe_add(tmp0, tmp0, z3); - fe_mul(z3, x1, z2); - fe_mul(z2, tmp1, tmp0); - } - - fe_cswap(x2, x3, swap); - fe_cswap(z2, z3, swap); - - fe_invert(z2, z2); - fe_mul(x2, x2, z2); - fe_tobytes(shared_secret, x2); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/keypair.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/keypair.c deleted file mode 100644 index 43011a0b9..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/keypair.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "ed25519.h" -#include "sha3.h" -#include "ge.h" - - -void ed25519_create_keypair(unsigned char *public_key, unsigned char *private_key, const unsigned char *seed) { - ge_p3 A; - - sha3_512(seed, 32, private_key); - private_key[0] &= 248; - private_key[31] &= 63; - private_key[31] |= 64; - - ge_scalarmult_base(&A, private_key); - ge_p3_tobytes(public_key, &A); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/module.modulemap b/Example/Pods/IrohaSwift/IrohaSwift/libs/module.modulemap deleted file mode 100644 index 13ff1fec5..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -module libs [system][extern_c]{ - header "base64.h" - header "ed25519.h" - header "sha3.h" - export * -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/precomp_data.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/precomp_data.h deleted file mode 100644 index ce59788cb..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/precomp_data.h +++ /dev/null @@ -1,1391 +0,0 @@ -static ge_precomp Bi[8] = { - { - { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 }, - { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 }, - { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }, - }, - { - { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 }, - { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 }, - { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }, - }, - { - { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 }, - { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 }, - { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }, - }, - { - { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 }, - { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 }, - { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }, - }, - { - { -22518993, -6692182, 14201702, -8745502, -23510406, 8844726, 18474211, -1361450, -13062696, 13821877 }, - { -6455177, -7839871, 3374702, -4740862, -27098617, -10571707, 31655028, -7212327, 18853322, -14220951 }, - { 4566830, -12963868, -28974889, -12240689, -7602672, -2830569, -8514358, -10431137, 2207753, -3209784 }, - }, - { - { -25154831, -4185821, 29681144, 7868801, -6854661, -9423865, -12437364, -663000, -31111463, -16132436 }, - { 25576264, -2703214, 7349804, -11814844, 16472782, 9300885, 3844789, 15725684, 171356, 6466918 }, - { 23103977, 13316479, 9739013, -16149481, 817875, -15038942, 8965339, -14088058, -30714912, 16193877 }, - }, - { - { -33521811, 3180713, -2394130, 14003687, -16903474, -16270840, 17238398, 4729455, -18074513, 9256800 }, - { -25182317, -4174131, 32336398, 5036987, -21236817, 11360617, 22616405, 9761698, -19827198, 630305 }, - { -13720693, 2639453, -24237460, -7406481, 9494427, -5774029, -6554551, -15960994, -2449256, -14291300 }, - }, - { - { -3151181, -5046075, 9282714, 6866145, -31907062, -863023, -18940575, 15033784, 25105118, -7894876 }, - { -24326370, 15950226, -31801215, -14592823, -11662737, -5090925, 1573892, -2625887, 2198790, -15804619 }, - { -3099351, 10324967, -2241613, 7453183, -5446979, -2735503, -13812022, -16236442, -32461234, -12290683 }, - }, -}; - - -/* base[i][j] = (j+1)*256^i*B */ -static ge_precomp base[32][8] = { - { - { - { 25967493, -14356035, 29566456, 3660896, -12694345, 4014787, 27544626, -11754271, -6079156, 2047605 }, - { -12545711, 934262, -2722910, 3049990, -727428, 9406986, 12720692, 5043384, 19500929, -15469378 }, - { -8738181, 4489570, 9688441, -14785194, 10184609, -12363380, 29287919, 11864899, -24514362, -4438546 }, - }, - { - { -12815894, -12976347, -21581243, 11784320, -25355658, -2750717, -11717903, -3814571, -358445, -10211303 }, - { -21703237, 6903825, 27185491, 6451973, -29577724, -9554005, -15616551, 11189268, -26829678, -5319081 }, - { 26966642, 11152617, 32442495, 15396054, 14353839, -12752335, -3128826, -9541118, -15472047, -4166697 }, - }, - { - { 15636291, -9688557, 24204773, -7912398, 616977, -16685262, 27787600, -14772189, 28944400, -1550024 }, - { 16568933, 4717097, -11556148, -1102322, 15682896, -11807043, 16354577, -11775962, 7689662, 11199574 }, - { 30464156, -5976125, -11779434, -15670865, 23220365, 15915852, 7512774, 10017326, -17749093, -9920357 }, - }, - { - { -17036878, 13921892, 10945806, -6033431, 27105052, -16084379, -28926210, 15006023, 3284568, -6276540 }, - { 23599295, -8306047, -11193664, -7687416, 13236774, 10506355, 7464579, 9656445, 13059162, 10374397 }, - { 7798556, 16710257, 3033922, 2874086, 28997861, 2835604, 32406664, -3839045, -641708, -101325 }, - }, - { - { 10861363, 11473154, 27284546, 1981175, -30064349, 12577861, 32867885, 14515107, -15438304, 10819380 }, - { 4708026, 6336745, 20377586, 9066809, -11272109, 6594696, -25653668, 12483688, -12668491, 5581306 }, - { 19563160, 16186464, -29386857, 4097519, 10237984, -4348115, 28542350, 13850243, -23678021, -15815942 }, - }, - { - { -15371964, -12862754, 32573250, 4720197, -26436522, 5875511, -19188627, -15224819, -9818940, -12085777 }, - { -8549212, 109983, 15149363, 2178705, 22900618, 4543417, 3044240, -15689887, 1762328, 14866737 }, - { -18199695, -15951423, -10473290, 1707278, -17185920, 3916101, -28236412, 3959421, 27914454, 4383652 }, - }, - { - { 5153746, 9909285, 1723747, -2777874, 30523605, 5516873, 19480852, 5230134, -23952439, -15175766 }, - { -30269007, -3463509, 7665486, 10083793, 28475525, 1649722, 20654025, 16520125, 30598449, 7715701 }, - { 28881845, 14381568, 9657904, 3680757, -20181635, 7843316, -31400660, 1370708, 29794553, -1409300 }, - }, - { - { 14499471, -2729599, -33191113, -4254652, 28494862, 14271267, 30290735, 10876454, -33154098, 2381726 }, - { -7195431, -2655363, -14730155, 462251, -27724326, 3941372, -6236617, 3696005, -32300832, 15351955 }, - { 27431194, 8222322, 16448760, -3907995, -18707002, 11938355, -32961401, -2970515, 29551813, 10109425 }, - }, - }, - { - { - { -13657040, -13155431, -31283750, 11777098, 21447386, 6519384, -2378284, -1627556, 10092783, -4764171 }, - { 27939166, 14210322, 4677035, 16277044, -22964462, -12398139, -32508754, 12005538, -17810127, 12803510 }, - { 17228999, -15661624, -1233527, 300140, -1224870, -11714777, 30364213, -9038194, 18016357, 4397660 }, - }, - { - { -10958843, -7690207, 4776341, -14954238, 27850028, -15602212, -26619106, 14544525, -17477504, 982639 }, - { 29253598, 15796703, -2863982, -9908884, 10057023, 3163536, 7332899, -4120128, -21047696, 9934963 }, - { 5793303, 16271923, -24131614, -10116404, 29188560, 1206517, -14747930, 4559895, -30123922, -10897950 }, - }, - { - { -27643952, -11493006, 16282657, -11036493, 28414021, -15012264, 24191034, 4541697, -13338309, 5500568 }, - { 12650548, -1497113, 9052871, 11355358, -17680037, -8400164, -17430592, 12264343, 10874051, 13524335 }, - { 25556948, -3045990, 714651, 2510400, 23394682, -10415330, 33119038, 5080568, -22528059, 5376628 }, - }, - { - { -26088264, -4011052, -17013699, -3537628, -6726793, 1920897, -22321305, -9447443, 4535768, 1569007 }, - { -2255422, 14606630, -21692440, -8039818, 28430649, 8775819, -30494562, 3044290, 31848280, 12543772 }, - { -22028579, 2943893, -31857513, 6777306, 13784462, -4292203, -27377195, -2062731, 7718482, 14474653 }, - }, - { - { 2385315, 2454213, -22631320, 46603, -4437935, -15680415, 656965, -7236665, 24316168, -5253567 }, - { 13741529, 10911568, -33233417, -8603737, -20177830, -1033297, 33040651, -13424532, -20729456, 8321686 }, - { 21060490, -2212744, 15712757, -4336099, 1639040, 10656336, 23845965, -11874838, -9984458, 608372 }, - }, - { - { -13672732, -15087586, -10889693, -7557059, -6036909, 11305547, 1123968, -6780577, 27229399, 23887 }, - { -23244140, -294205, -11744728, 14712571, -29465699, -2029617, 12797024, -6440308, -1633405, 16678954 }, - { -29500620, 4770662, -16054387, 14001338, 7830047, 9564805, -1508144, -4795045, -17169265, 4904953 }, - }, - { - { 24059557, 14617003, 19037157, -15039908, 19766093, -14906429, 5169211, 16191880, 2128236, -4326833 }, - { -16981152, 4124966, -8540610, -10653797, 30336522, -14105247, -29806336, 916033, -6882542, -2986532 }, - { -22630907, 12419372, -7134229, -7473371, -16478904, 16739175, 285431, 2763829, 15736322, 4143876 }, - }, - { - { 2379352, 11839345, -4110402, -5988665, 11274298, 794957, 212801, -14594663, 23527084, -16458268 }, - { 33431127, -11130478, -17838966, -15626900, 8909499, 8376530, -32625340, 4087881, -15188911, -14416214 }, - { 1767683, 7197987, -13205226, -2022635, -13091350, 448826, 5799055, 4357868, -4774191, -16323038 }, - }, - }, - { - { - { 6721966, 13833823, -23523388, -1551314, 26354293, -11863321, 23365147, -3949732, 7390890, 2759800 }, - { 4409041, 2052381, 23373853, 10530217, 7676779, -12885954, 21302353, -4264057, 1244380, -12919645 }, - { -4421239, 7169619, 4982368, -2957590, 30256825, -2777540, 14086413, 9208236, 15886429, 16489664 }, - }, - { - { 1996075, 10375649, 14346367, 13311202, -6874135, -16438411, -13693198, 398369, -30606455, -712933 }, - { -25307465, 9795880, -2777414, 14878809, -33531835, 14780363, 13348553, 12076947, -30836462, 5113182 }, - { -17770784, 11797796, 31950843, 13929123, -25888302, 12288344, -30341101, -7336386, 13847711, 5387222 }, - }, - { - { -18582163, -3416217, 17824843, -2340966, 22744343, -10442611, 8763061, 3617786, -19600662, 10370991 }, - { 20246567, -14369378, 22358229, -543712, 18507283, -10413996, 14554437, -8746092, 32232924, 16763880 }, - { 9648505, 10094563, 26416693, 14745928, -30374318, -6472621, 11094161, 15689506, 3140038, -16510092 }, - }, - { - { -16160072, 5472695, 31895588, 4744994, 8823515, 10365685, -27224800, 9448613, -28774454, 366295 }, - { 19153450, 11523972, -11096490, -6503142, -24647631, 5420647, 28344573, 8041113, 719605, 11671788 }, - { 8678025, 2694440, -6808014, 2517372, 4964326, 11152271, -15432916, -15266516, 27000813, -10195553 }, - }, - { - { -15157904, 7134312, 8639287, -2814877, -7235688, 10421742, 564065, 5336097, 6750977, -14521026 }, - { 11836410, -3979488, 26297894, 16080799, 23455045, 15735944, 1695823, -8819122, 8169720, 16220347 }, - { -18115838, 8653647, 17578566, -6092619, -8025777, -16012763, -11144307, -2627664, -5990708, -14166033 }, - }, - { - { -23308498, -10968312, 15213228, -10081214, -30853605, -11050004, 27884329, 2847284, 2655861, 1738395 }, - { -27537433, -14253021, -25336301, -8002780, -9370762, 8129821, 21651608, -3239336, -19087449, -11005278 }, - { 1533110, 3437855, 23735889, 459276, 29970501, 11335377, 26030092, 5821408, 10478196, 8544890 }, - }, - { - { 32173121, -16129311, 24896207, 3921497, 22579056, -3410854, 19270449, 12217473, 17789017, -3395995 }, - { -30552961, -2228401, -15578829, -10147201, 13243889, 517024, 15479401, -3853233, 30460520, 1052596 }, - { -11614875, 13323618, 32618793, 8175907, -15230173, 12596687, 27491595, -4612359, 3179268, -9478891 }, - }, - { - { 31947069, -14366651, -4640583, -15339921, -15125977, -6039709, -14756777, -16411740, 19072640, -9511060 }, - { 11685058, 11822410, 3158003, -13952594, 33402194, -4165066, 5977896, -5215017, 473099, 5040608 }, - { -20290863, 8198642, -27410132, 11602123, 1290375, -2799760, 28326862, 1721092, -19558642, -3131606 }, - }, - }, - { - { - { 7881532, 10687937, 7578723, 7738378, -18951012, -2553952, 21820786, 8076149, -27868496, 11538389 }, - { -19935666, 3899861, 18283497, -6801568, -15728660, -11249211, 8754525, 7446702, -5676054, 5797016 }, - { -11295600, -3793569, -15782110, -7964573, 12708869, -8456199, 2014099, -9050574, -2369172, -5877341 }, - }, - { - { -22472376, -11568741, -27682020, 1146375, 18956691, 16640559, 1192730, -3714199, 15123619, 10811505 }, - { 14352098, -3419715, -18942044, 10822655, 32750596, 4699007, -70363, 15776356, -28886779, -11974553 }, - { -28241164, -8072475, -4978962, -5315317, 29416931, 1847569, -20654173, -16484855, 4714547, -9600655 }, - }, - { - { 15200332, 8368572, 19679101, 15970074, -31872674, 1959451, 24611599, -4543832, -11745876, 12340220 }, - { 12876937, -10480056, 33134381, 6590940, -6307776, 14872440, 9613953, 8241152, 15370987, 9608631 }, - { -4143277, -12014408, 8446281, -391603, 4407738, 13629032, -7724868, 15866074, -28210621, -8814099 }, - }, - { - { 26660628, -15677655, 8393734, 358047, -7401291, 992988, -23904233, 858697, 20571223, 8420556 }, - { 14620715, 13067227, -15447274, 8264467, 14106269, 15080814, 33531827, 12516406, -21574435, -12476749 }, - { 236881, 10476226, 57258, -14677024, 6472998, 2466984, 17258519, 7256740, 8791136, 15069930 }, - }, - { - { 1276410, -9371918, 22949635, -16322807, -23493039, -5702186, 14711875, 4874229, -30663140, -2331391 }, - { 5855666, 4990204, -13711848, 7294284, -7804282, 1924647, -1423175, -7912378, -33069337, 9234253 }, - { 20590503, -9018988, 31529744, -7352666, -2706834, 10650548, 31559055, -11609587, 18979186, 13396066 }, - }, - { - { 24474287, 4968103, 22267082, 4407354, 24063882, -8325180, -18816887, 13594782, 33514650, 7021958 }, - { -11566906, -6565505, -21365085, 15928892, -26158305, 4315421, -25948728, -3916677, -21480480, 12868082 }, - { -28635013, 13504661, 19988037, -2132761, 21078225, 6443208, -21446107, 2244500, -12455797, -8089383 }, - }, - { - { -30595528, 13793479, -5852820, 319136, -25723172, -6263899, 33086546, 8957937, -15233648, 5540521 }, - { -11630176, -11503902, -8119500, -7643073, 2620056, 1022908, -23710744, -1568984, -16128528, -14962807 }, - { 23152971, 775386, 27395463, 14006635, -9701118, 4649512, 1689819, 892185, -11513277, -15205948 }, - }, - { - { 9770129, 9586738, 26496094, 4324120, 1556511, -3550024, 27453819, 4763127, -19179614, 5867134 }, - { -32765025, 1927590, 31726409, -4753295, 23962434, -16019500, 27846559, 5931263, -29749703, -16108455 }, - { 27461885, -2977536, 22380810, 1815854, -23033753, -3031938, 7283490, -15148073, -19526700, 7734629 }, - }, - }, - { - { - { -8010264, -9590817, -11120403, 6196038, 29344158, -13430885, 7585295, -3176626, 18549497, 15302069 }, - { -32658337, -6171222, -7672793, -11051681, 6258878, 13504381, 10458790, -6418461, -8872242, 8424746 }, - { 24687205, 8613276, -30667046, -3233545, 1863892, -1830544, 19206234, 7134917, -11284482, -828919 }, - }, - { - { 11334899, -9218022, 8025293, 12707519, 17523892, -10476071, 10243738, -14685461, -5066034, 16498837 }, - { 8911542, 6887158, -9584260, -6958590, 11145641, -9543680, 17303925, -14124238, 6536641, 10543906 }, - { -28946384, 15479763, -17466835, 568876, -1497683, 11223454, -2669190, -16625574, -27235709, 8876771 }, - }, - { - { -25742899, -12566864, -15649966, -846607, -33026686, -796288, -33481822, 15824474, -604426, -9039817 }, - { 10330056, 70051, 7957388, -9002667, 9764902, 15609756, 27698697, -4890037, 1657394, 3084098 }, - { 10477963, -7470260, 12119566, -13250805, 29016247, -5365589, 31280319, 14396151, -30233575, 15272409 }, - }, - { - { -12288309, 3169463, 28813183, 16658753, 25116432, -5630466, -25173957, -12636138, -25014757, 1950504 }, - { -26180358, 9489187, 11053416, -14746161, -31053720, 5825630, -8384306, -8767532, 15341279, 8373727 }, - { 28685821, 7759505, -14378516, -12002860, -31971820, 4079242, 298136, -10232602, -2878207, 15190420 }, - }, - { - { -32932876, 13806336, -14337485, -15794431, -24004620, 10940928, 8669718, 2742393, -26033313, -6875003 }, - { -1580388, -11729417, -25979658, -11445023, -17411874, -10912854, 9291594, -16247779, -12154742, 6048605 }, - { -30305315, 14843444, 1539301, 11864366, 20201677, 1900163, 13934231, 5128323, 11213262, 9168384 }, - }, - { - { -26280513, 11007847, 19408960, -940758, -18592965, -4328580, -5088060, -11105150, 20470157, -16398701 }, - { -23136053, 9282192, 14855179, -15390078, -7362815, -14408560, -22783952, 14461608, 14042978, 5230683 }, - { 29969567, -2741594, -16711867, -8552442, 9175486, -2468974, 21556951, 3506042, -5933891, -12449708 }, - }, - { - { -3144746, 8744661, 19704003, 4581278, -20430686, 6830683, -21284170, 8971513, -28539189, 15326563 }, - { -19464629, 10110288, -17262528, -3503892, -23500387, 1355669, -15523050, 15300988, -20514118, 9168260 }, - { -5353335, 4488613, -23803248, 16314347, 7780487, -15638939, -28948358, 9601605, 33087103, -9011387 }, - }, - { - { -19443170, -15512900, -20797467, -12445323, -29824447, 10229461, -27444329, -15000531, -5996870, 15664672 }, - { 23294591, -16632613, -22650781, -8470978, 27844204, 11461195, 13099750, -2460356, 18151676, 13417686 }, - { -24722913, -4176517, -31150679, 5988919, -26858785, 6685065, 1661597, -12551441, 15271676, -15452665 }, - }, - }, - { - { - { 11433042, -13228665, 8239631, -5279517, -1985436, -725718, -18698764, 2167544, -6921301, -13440182 }, - { -31436171, 15575146, 30436815, 12192228, -22463353, 9395379, -9917708, -8638997, 12215110, 12028277 }, - { 14098400, 6555944, 23007258, 5757252, -15427832, -12950502, 30123440, 4617780, -16900089, -655628 }, - }, - { - { -4026201, -15240835, 11893168, 13718664, -14809462, 1847385, -15819999, 10154009, 23973261, -12684474 }, - { -26531820, -3695990, -1908898, 2534301, -31870557, -16550355, 18341390, -11419951, 32013174, -10103539 }, - { -25479301, 10876443, -11771086, -14625140, -12369567, 1838104, 21911214, 6354752, 4425632, -837822 }, - }, - { - { -10433389, -14612966, 22229858, -3091047, -13191166, 776729, -17415375, -12020462, 4725005, 14044970 }, - { 19268650, -7304421, 1555349, 8692754, -21474059, -9910664, 6347390, -1411784, -19522291, -16109756 }, - { -24864089, 12986008, -10898878, -5558584, -11312371, -148526, 19541418, 8180106, 9282262, 10282508 }, - }, - { - { -26205082, 4428547, -8661196, -13194263, 4098402, -14165257, 15522535, 8372215, 5542595, -10702683 }, - { -10562541, 14895633, 26814552, -16673850, -17480754, -2489360, -2781891, 6993761, -18093885, 10114655 }, - { -20107055, -929418, 31422704, 10427861, -7110749, 6150669, -29091755, -11529146, 25953725, -106158 }, - }, - { - { -4234397, -8039292, -9119125, 3046000, 2101609, -12607294, 19390020, 6094296, -3315279, 12831125 }, - { -15998678, 7578152, 5310217, 14408357, -33548620, -224739, 31575954, 6326196, 7381791, -2421839 }, - { -20902779, 3296811, 24736065, -16328389, 18374254, 7318640, 6295303, 8082724, -15362489, 12339664 }, - }, - { - { 27724736, 2291157, 6088201, -14184798, 1792727, 5857634, 13848414, 15768922, 25091167, 14856294 }, - { -18866652, 8331043, 24373479, 8541013, -701998, -9269457, 12927300, -12695493, -22182473, -9012899 }, - { -11423429, -5421590, 11632845, 3405020, 30536730, -11674039, -27260765, 13866390, 30146206, 9142070 }, - }, - { - { 3924129, -15307516, -13817122, -10054960, 12291820, -668366, -27702774, 9326384, -8237858, 4171294 }, - { -15921940, 16037937, 6713787, 16606682, -21612135, 2790944, 26396185, 3731949, 345228, -5462949 }, - { -21327538, 13448259, 25284571, 1143661, 20614966, -8849387, 2031539, -12391231, -16253183, -13582083 }, - }, - { - { 31016211, -16722429, 26371392, -14451233, -5027349, 14854137, 17477601, 3842657, 28012650, -16405420 }, - { -5075835, 9368966, -8562079, -4600902, -15249953, 6970560, -9189873, 16292057, -8867157, 3507940 }, - { 29439664, 3537914, 23333589, 6997794, -17555561, -11018068, -15209202, -15051267, -9164929, 6580396 }, - }, - }, - { - { - { -12185861, -7679788, 16438269, 10826160, -8696817, -6235611, 17860444, -9273846, -2095802, 9304567 }, - { 20714564, -4336911, 29088195, 7406487, 11426967, -5095705, 14792667, -14608617, 5289421, -477127 }, - { -16665533, -10650790, -6160345, -13305760, 9192020, -1802462, 17271490, 12349094, 26939669, -3752294 }, - }, - { - { -12889898, 9373458, 31595848, 16374215, 21471720, 13221525, -27283495, -12348559, -3698806, 117887 }, - { 22263325, -6560050, 3984570, -11174646, -15114008, -566785, 28311253, 5358056, -23319780, 541964 }, - { 16259219, 3261970, 2309254, -15534474, -16885711, -4581916, 24134070, -16705829, -13337066, -13552195 }, - }, - { - { 9378160, -13140186, -22845982, -12745264, 28198281, -7244098, -2399684, -717351, 690426, 14876244 }, - { 24977353, -314384, -8223969, -13465086, 28432343, -1176353, -13068804, -12297348, -22380984, 6618999 }, - { -1538174, 11685646, 12944378, 13682314, -24389511, -14413193, 8044829, -13817328, 32239829, -5652762 }, - }, - { - { -18603066, 4762990, -926250, 8885304, -28412480, -3187315, 9781647, -10350059, 32779359, 5095274 }, - { -33008130, -5214506, -32264887, -3685216, 9460461, -9327423, -24601656, 14506724, 21639561, -2630236 }, - { -16400943, -13112215, 25239338, 15531969, 3987758, -4499318, -1289502, -6863535, 17874574, 558605 }, - }, - { - { -13600129, 10240081, 9171883, 16131053, -20869254, 9599700, 33499487, 5080151, 2085892, 5119761 }, - { -22205145, -2519528, -16381601, 414691, -25019550, 2170430, 30634760, -8363614, -31999993, -5759884 }, - { -6845704, 15791202, 8550074, -1312654, 29928809, -12092256, 27534430, -7192145, -22351378, 12961482 }, - }, - { - { -24492060, -9570771, 10368194, 11582341, -23397293, -2245287, 16533930, 8206996, -30194652, -5159638 }, - { -11121496, -3382234, 2307366, 6362031, -135455, 8868177, -16835630, 7031275, 7589640, 8945490 }, - { -32152748, 8917967, 6661220, -11677616, -1192060, -15793393, 7251489, -11182180, 24099109, -14456170 }, - }, - { - { 5019558, -7907470, 4244127, -14714356, -26933272, 6453165, -19118182, -13289025, -6231896, -10280736 }, - { 10853594, 10721687, 26480089, 5861829, -22995819, 1972175, -1866647, -10557898, -3363451, -6441124 }, - { -17002408, 5906790, 221599, -6563147, 7828208, -13248918, 24362661, -2008168, -13866408, 7421392 }, - }, - { - { 8139927, -6546497, 32257646, -5890546, 30375719, 1886181, -21175108, 15441252, 28826358, -4123029 }, - { 6267086, 9695052, 7709135, -16603597, -32869068, -1886135, 14795160, -7840124, 13746021, -1742048 }, - { 28584902, 7787108, -6732942, -15050729, 22846041, -7571236, -3181936, -363524, 4771362, -8419958 }, - }, - }, - { - { - { 24949256, 6376279, -27466481, -8174608, -18646154, -9930606, 33543569, -12141695, 3569627, 11342593 }, - { 26514989, 4740088, 27912651, 3697550, 19331575, -11472339, 6809886, 4608608, 7325975, -14801071 }, - { -11618399, -14554430, -24321212, 7655128, -1369274, 5214312, -27400540, 10258390, -17646694, -8186692 }, - }, - { - { 11431204, 15823007, 26570245, 14329124, 18029990, 4796082, -31446179, 15580664, 9280358, -3973687 }, - { -160783, -10326257, -22855316, -4304997, -20861367, -13621002, -32810901, -11181622, -15545091, 4387441 }, - { -20799378, 12194512, 3937617, -5805892, -27154820, 9340370, -24513992, 8548137, 20617071, -7482001 }, - }, - { - { -938825, -3930586, -8714311, 16124718, 24603125, -6225393, -13775352, -11875822, 24345683, 10325460 }, - { -19855277, -1568885, -22202708, 8714034, 14007766, 6928528, 16318175, -1010689, 4766743, 3552007 }, - { -21751364, -16730916, 1351763, -803421, -4009670, 3950935, 3217514, 14481909, 10988822, -3994762 }, - }, - { - { 15564307, -14311570, 3101243, 5684148, 30446780, -8051356, 12677127, -6505343, -8295852, 13296005 }, - { -9442290, 6624296, -30298964, -11913677, -4670981, -2057379, 31521204, 9614054, -30000824, 12074674 }, - { 4771191, -135239, 14290749, -13089852, 27992298, 14998318, -1413936, -1556716, 29832613, -16391035 }, - }, - { - { 7064884, -7541174, -19161962, -5067537, -18891269, -2912736, 25825242, 5293297, -27122660, 13101590 }, - { -2298563, 2439670, -7466610, 1719965, -27267541, -16328445, 32512469, -5317593, -30356070, -4190957 }, - { -30006540, 10162316, -33180176, 3981723, -16482138, -13070044, 14413974, 9515896, 19568978, 9628812 }, - }, - { - { 33053803, 199357, 15894591, 1583059, 27380243, -4580435, -17838894, -6106839, -6291786, 3437740 }, - { -18978877, 3884493, 19469877, 12726490, 15913552, 13614290, -22961733, 70104, 7463304, 4176122 }, - { -27124001, 10659917, 11482427, -16070381, 12771467, -6635117, -32719404, -5322751, 24216882, 5944158 }, - }, - { - { 8894125, 7450974, -2664149, -9765752, -28080517, -12389115, 19345746, 14680796, 11632993, 5847885 }, - { 26942781, -2315317, 9129564, -4906607, 26024105, 11769399, -11518837, 6367194, -9727230, 4782140 }, - { 19916461, -4828410, -22910704, -11414391, 25606324, -5972441, 33253853, 8220911, 6358847, -1873857 }, - }, - { - { 801428, -2081702, 16569428, 11065167, 29875704, 96627, 7908388, -4480480, -13538503, 1387155 }, - { 19646058, 5720633, -11416706, 12814209, 11607948, 12749789, 14147075, 15156355, -21866831, 11835260 }, - { 19299512, 1155910, 28703737, 14890794, 2925026, 7269399, 26121523, 15467869, -26560550, 5052483 }, - }, - }, - { - { - { -3017432, 10058206, 1980837, 3964243, 22160966, 12322533, -6431123, -12618185, 12228557, -7003677 }, - { 32944382, 14922211, -22844894, 5188528, 21913450, -8719943, 4001465, 13238564, -6114803, 8653815 }, - { 22865569, -4652735, 27603668, -12545395, 14348958, 8234005, 24808405, 5719875, 28483275, 2841751 }, - }, - { - { -16420968, -1113305, -327719, -12107856, 21886282, -15552774, -1887966, -315658, 19932058, -12739203 }, - { -11656086, 10087521, -8864888, -5536143, -19278573, -3055912, 3999228, 13239134, -4777469, -13910208 }, - { 1382174, -11694719, 17266790, 9194690, -13324356, 9720081, 20403944, 11284705, -14013818, 3093230 }, - }, - { - { 16650921, -11037932, -1064178, 1570629, -8329746, 7352753, -302424, 16271225, -24049421, -6691850 }, - { -21911077, -5927941, -4611316, -5560156, -31744103, -10785293, 24123614, 15193618, -21652117, -16739389 }, - { -9935934, -4289447, -25279823, 4372842, 2087473, 10399484, 31870908, 14690798, 17361620, 11864968 }, - }, - { - { -11307610, 6210372, 13206574, 5806320, -29017692, -13967200, -12331205, -7486601, -25578460, -16240689 }, - { 14668462, -12270235, 26039039, 15305210, 25515617, 4542480, 10453892, 6577524, 9145645, -6443880 }, - { 5974874, 3053895, -9433049, -10385191, -31865124, 3225009, -7972642, 3936128, -5652273, -3050304 }, - }, - { - { 30625386, -4729400, -25555961, -12792866, -20484575, 7695099, 17097188, -16303496, -27999779, 1803632 }, - { -3553091, 9865099, -5228566, 4272701, -5673832, -16689700, 14911344, 12196514, -21405489, 7047412 }, - { 20093277, 9920966, -11138194, -5343857, 13161587, 12044805, -32856851, 4124601, -32343828, -10257566 }, - }, - { - { -20788824, 14084654, -13531713, 7842147, 19119038, -13822605, 4752377, -8714640, -21679658, 2288038 }, - { -26819236, -3283715, 29965059, 3039786, -14473765, 2540457, 29457502, 14625692, -24819617, 12570232 }, - { -1063558, -11551823, 16920318, 12494842, 1278292, -5869109, -21159943, -3498680, -11974704, 4724943 }, - }, - { - { 17960970, -11775534, -4140968, -9702530, -8876562, -1410617, -12907383, -8659932, -29576300, 1903856 }, - { 23134274, -14279132, -10681997, -1611936, 20684485, 15770816, -12989750, 3190296, 26955097, 14109738 }, - { 15308788, 5320727, -30113809, -14318877, 22902008, 7767164, 29425325, -11277562, 31960942, 11934971 }, - }, - { - { -27395711, 8435796, 4109644, 12222639, -24627868, 14818669, 20638173, 4875028, 10491392, 1379718 }, - { -13159415, 9197841, 3875503, -8936108, -1383712, -5879801, 33518459, 16176658, 21432314, 12180697 }, - { -11787308, 11500838, 13787581, -13832590, -22430679, 10140205, 1465425, 12689540, -10301319, -13872883 }, - }, - }, - { - { - { 5414091, -15386041, -21007664, 9643570, 12834970, 1186149, -2622916, -1342231, 26128231, 6032912 }, - { -26337395, -13766162, 32496025, -13653919, 17847801, -12669156, 3604025, 8316894, -25875034, -10437358 }, - { 3296484, 6223048, 24680646, -12246460, -23052020, 5903205, -8862297, -4639164, 12376617, 3188849 }, - }, - { - { 29190488, -14659046, 27549113, -1183516, 3520066, -10697301, 32049515, -7309113, -16109234, -9852307 }, - { -14744486, -9309156, 735818, -598978, -20407687, -5057904, 25246078, -15795669, 18640741, -960977 }, - { -6928835, -16430795, 10361374, 5642961, 4910474, 12345252, -31638386, -494430, 10530747, 1053335 }, - }, - { - { -29265967, -14186805, -13538216, -12117373, -19457059, -10655384, -31462369, -2948985, 24018831, 15026644 }, - { -22592535, -3145277, -2289276, 5953843, -13440189, 9425631, 25310643, 13003497, -2314791, -15145616 }, - { -27419985, -603321, -8043984, -1669117, -26092265, 13987819, -27297622, 187899, -23166419, -2531735 }, - }, - { - { -21744398, -13810475, 1844840, 5021428, -10434399, -15911473, 9716667, 16266922, -5070217, 726099 }, - { 29370922, -6053998, 7334071, -15342259, 9385287, 2247707, -13661962, -4839461, 30007388, -15823341 }, - { -936379, 16086691, 23751945, -543318, -1167538, -5189036, 9137109, 730663, 9835848, 4555336 }, - }, - { - { -23376435, 1410446, -22253753, -12899614, 30867635, 15826977, 17693930, 544696, -11985298, 12422646 }, - { 31117226, -12215734, -13502838, 6561947, -9876867, -12757670, -5118685, -4096706, 29120153, 13924425 }, - { -17400879, -14233209, 19675799, -2734756, -11006962, -5858820, -9383939, -11317700, 7240931, -237388 }, - }, - { - { -31361739, -11346780, -15007447, -5856218, -22453340, -12152771, 1222336, 4389483, 3293637, -15551743 }, - { -16684801, -14444245, 11038544, 11054958, -13801175, -3338533, -24319580, 7733547, 12796905, -6335822 }, - { -8759414, -10817836, -25418864, 10783769, -30615557, -9746811, -28253339, 3647836, 3222231, -11160462 }, - }, - { - { 18606113, 1693100, -25448386, -15170272, 4112353, 10045021, 23603893, -2048234, -7550776, 2484985 }, - { 9255317, -3131197, -12156162, -1004256, 13098013, -9214866, 16377220, -2102812, -19802075, -3034702 }, - { -22729289, 7496160, -5742199, 11329249, 19991973, -3347502, -31718148, 9936966, -30097688, -10618797 }, - }, - { - { 21878590, -5001297, 4338336, 13643897, -3036865, 13160960, 19708896, 5415497, -7360503, -4109293 }, - { 27736861, 10103576, 12500508, 8502413, -3413016, -9633558, 10436918, -1550276, -23659143, -8132100 }, - { 19492550, -12104365, -29681976, -852630, -3208171, 12403437, 30066266, 8367329, 13243957, 8709688 }, - }, - }, - { - { - { 12015105, 2801261, 28198131, 10151021, 24818120, -4743133, -11194191, -5645734, 5150968, 7274186 }, - { 2831366, -12492146, 1478975, 6122054, 23825128, -12733586, 31097299, 6083058, 31021603, -9793610 }, - { -2529932, -2229646, 445613, 10720828, -13849527, -11505937, -23507731, 16354465, 15067285, -14147707 }, - }, - { - { 7840942, 14037873, -33364863, 15934016, -728213, -3642706, 21403988, 1057586, -19379462, -12403220 }, - { 915865, -16469274, 15608285, -8789130, -24357026, 6060030, -17371319, 8410997, -7220461, 16527025 }, - { 32922597, -556987, 20336074, -16184568, 10903705, -5384487, 16957574, 52992, 23834301, 6588044 }, - }, - { - { 32752030, 11232950, 3381995, -8714866, 22652988, -10744103, 17159699, 16689107, -20314580, -1305992 }, - { -4689649, 9166776, -25710296, -10847306, 11576752, 12733943, 7924251, -2752281, 1976123, -7249027 }, - { 21251222, 16309901, -2983015, -6783122, 30810597, 12967303, 156041, -3371252, 12331345, -8237197 }, - }, - { - { 8651614, -4477032, -16085636, -4996994, 13002507, 2950805, 29054427, -5106970, 10008136, -4667901 }, - { 31486080, 15114593, -14261250, 12951354, 14369431, -7387845, 16347321, -13662089, 8684155, -10532952 }, - { 19443825, 11385320, 24468943, -9659068, -23919258, 2187569, -26263207, -6086921, 31316348, 14219878 }, - }, - { - { -28594490, 1193785, 32245219, 11392485, 31092169, 15722801, 27146014, 6992409, 29126555, 9207390 }, - { 32382935, 1110093, 18477781, 11028262, -27411763, -7548111, -4980517, 10843782, -7957600, -14435730 }, - { 2814918, 7836403, 27519878, -7868156, -20894015, -11553689, -21494559, 8550130, 28346258, 1994730 }, - }, - { - { -19578299, 8085545, -14000519, -3948622, 2785838, -16231307, -19516951, 7174894, 22628102, 8115180 }, - { -30405132, 955511, -11133838, -15078069, -32447087, -13278079, -25651578, 3317160, -9943017, 930272 }, - { -15303681, -6833769, 28856490, 1357446, 23421993, 1057177, 24091212, -1388970, -22765376, -10650715 }, - }, - { - { -22751231, -5303997, -12907607, -12768866, -15811511, -7797053, -14839018, -16554220, -1867018, 8398970 }, - { -31969310, 2106403, -4736360, 1362501, 12813763, 16200670, 22981545, -6291273, 18009408, -15772772 }, - { -17220923, -9545221, -27784654, 14166835, 29815394, 7444469, 29551787, -3727419, 19288549, 1325865 }, - }, - { - { 15100157, -15835752, -23923978, -1005098, -26450192, 15509408, 12376730, -3479146, 33166107, -8042750 }, - { 20909231, 13023121, -9209752, 16251778, -5778415, -8094914, 12412151, 10018715, 2213263, -13878373 }, - { 32529814, -11074689, 30361439, -16689753, -9135940, 1513226, 22922121, 6382134, -5766928, 8371348 }, - }, - }, - { - { - { 9923462, 11271500, 12616794, 3544722, -29998368, -1721626, 12891687, -8193132, -26442943, 10486144 }, - { -22597207, -7012665, 8587003, -8257861, 4084309, -12970062, 361726, 2610596, -23921530, -11455195 }, - { 5408411, -1136691, -4969122, 10561668, 24145918, 14240566, 31319731, -4235541, 19985175, -3436086 }, - }, - { - { -13994457, 16616821, 14549246, 3341099, 32155958, 13648976, -17577068, 8849297, 65030, 8370684 }, - { -8320926, -12049626, 31204563, 5839400, -20627288, -1057277, -19442942, 6922164, 12743482, -9800518 }, - { -2361371, 12678785, 28815050, 4759974, -23893047, 4884717, 23783145, 11038569, 18800704, 255233 }, - }, - { - { -5269658, -1773886, 13957886, 7990715, 23132995, 728773, 13393847, 9066957, 19258688, -14753793 }, - { -2936654, -10827535, -10432089, 14516793, -3640786, 4372541, -31934921, 2209390, -1524053, 2055794 }, - { 580882, 16705327, 5468415, -2683018, -30926419, -14696000, -7203346, -8994389, -30021019, 7394435 }, - }, - { - { 23838809, 1822728, -15738443, 15242727, 8318092, -3733104, -21672180, -3492205, -4821741, 14799921 }, - { 13345610, 9759151, 3371034, -16137791, 16353039, 8577942, 31129804, 13496856, -9056018, 7402518 }, - { 2286874, -4435931, -20042458, -2008336, -13696227, 5038122, 11006906, -15760352, 8205061, 1607563 }, - }, - { - { 14414086, -8002132, 3331830, -3208217, 22249151, -5594188, 18364661, -2906958, 30019587, -9029278 }, - { -27688051, 1585953, -10775053, 931069, -29120221, -11002319, -14410829, 12029093, 9944378, 8024 }, - { 4368715, -3709630, 29874200, -15022983, -20230386, -11410704, -16114594, -999085, -8142388, 5640030 }, - }, - { - { 10299610, 13746483, 11661824, 16234854, 7630238, 5998374, 9809887, -16694564, 15219798, -14327783 }, - { 27425505, -5719081, 3055006, 10660664, 23458024, 595578, -15398605, -1173195, -18342183, 9742717 }, - { 6744077, 2427284, 26042789, 2720740, -847906, 1118974, 32324614, 7406442, 12420155, 1994844 }, - }, - { - { 14012521, -5024720, -18384453, -9578469, -26485342, -3936439, -13033478, -10909803, 24319929, -6446333 }, - { 16412690, -4507367, 10772641, 15929391, -17068788, -4658621, 10555945, -10484049, -30102368, -4739048 }, - { 22397382, -7767684, -9293161, -12792868, 17166287, -9755136, -27333065, 6199366, 21880021, -12250760 }, - }, - { - { -4283307, 5368523, -31117018, 8163389, -30323063, 3209128, 16557151, 8890729, 8840445, 4957760 }, - { -15447727, 709327, -6919446, -10870178, -29777922, 6522332, -21720181, 12130072, -14796503, 5005757 }, - { -2114751, -14308128, 23019042, 15765735, -25269683, 6002752, 10183197, -13239326, -16395286, -2176112 }, - }, - }, - { - { - { -19025756, 1632005, 13466291, -7995100, -23640451, 16573537, -32013908, -3057104, 22208662, 2000468 }, - { 3065073, -1412761, -25598674, -361432, -17683065, -5703415, -8164212, 11248527, -3691214, -7414184 }, - { 10379208, -6045554, 8877319, 1473647, -29291284, -12507580, 16690915, 2553332, -3132688, 16400289 }, - }, - { - { 15716668, 1254266, -18472690, 7446274, -8448918, 6344164, -22097271, -7285580, 26894937, 9132066 }, - { 24158887, 12938817, 11085297, -8177598, -28063478, -4457083, -30576463, 64452, -6817084, -2692882 }, - { 13488534, 7794716, 22236231, 5989356, 25426474, -12578208, 2350710, -3418511, -4688006, 2364226 }, - }, - { - { 16335052, 9132434, 25640582, 6678888, 1725628, 8517937, -11807024, -11697457, 15445875, -7798101 }, - { 29004207, -7867081, 28661402, -640412, -12794003, -7943086, 31863255, -4135540, -278050, -15759279 }, - { -6122061, -14866665, -28614905, 14569919, -10857999, -3591829, 10343412, -6976290, -29828287, -10815811 }, - }, - { - { 27081650, 3463984, 14099042, -4517604, 1616303, -6205604, 29542636, 15372179, 17293797, 960709 }, - { 20263915, 11434237, -5765435, 11236810, 13505955, -10857102, -16111345, 6493122, -19384511, 7639714 }, - { -2830798, -14839232, 25403038, -8215196, -8317012, -16173699, 18006287, -16043750, 29994677, -15808121 }, - }, - { - { 9769828, 5202651, -24157398, -13631392, -28051003, -11561624, -24613141, -13860782, -31184575, 709464 }, - { 12286395, 13076066, -21775189, -1176622, -25003198, 4057652, -32018128, -8890874, 16102007, 13205847 }, - { 13733362, 5599946, 10557076, 3195751, -5557991, 8536970, -25540170, 8525972, 10151379, 10394400 }, - }, - { - { 4024660, -16137551, 22436262, 12276534, -9099015, -2686099, 19698229, 11743039, -33302334, 8934414 }, - { -15879800, -4525240, -8580747, -2934061, 14634845, -698278, -9449077, 3137094, -11536886, 11721158 }, - { 17555939, -5013938, 8268606, 2331751, -22738815, 9761013, 9319229, 8835153, -9205489, -1280045 }, - }, - { - { -461409, -7830014, 20614118, 16688288, -7514766, -4807119, 22300304, 505429, 6108462, -6183415 }, - { -5070281, 12367917, -30663534, 3234473, 32617080, -8422642, 29880583, -13483331, -26898490, -7867459 }, - { -31975283, 5726539, 26934134, 10237677, -3173717, -605053, 24199304, 3795095, 7592688, -14992079 }, - }, - { - { 21594432, -14964228, 17466408, -4077222, 32537084, 2739898, 6407723, 12018833, -28256052, 4298412 }, - { -20650503, -11961496, -27236275, 570498, 3767144, -1717540, 13891942, -1569194, 13717174, 10805743 }, - { -14676630, -15644296, 15287174, 11927123, 24177847, -8175568, -796431, 14860609, -26938930, -5863836 }, - }, - }, - { - { - { 12962541, 5311799, -10060768, 11658280, 18855286, -7954201, 13286263, -12808704, -4381056, 9882022 }, - { 18512079, 11319350, -20123124, 15090309, 18818594, 5271736, -22727904, 3666879, -23967430, -3299429 }, - { -6789020, -3146043, 16192429, 13241070, 15898607, -14206114, -10084880, -6661110, -2403099, 5276065 }, - }, - { - { 30169808, -5317648, 26306206, -11750859, 27814964, 7069267, 7152851, 3684982, 1449224, 13082861 }, - { 10342826, 3098505, 2119311, 193222, 25702612, 12233820, 23697382, 15056736, -21016438, -8202000 }, - { -33150110, 3261608, 22745853, 7948688, 19370557, -15177665, -26171976, 6482814, -10300080, -11060101 }, - }, - { - { 32869458, -5408545, 25609743, 15678670, -10687769, -15471071, 26112421, 2521008, -22664288, 6904815 }, - { 29506923, 4457497, 3377935, -9796444, -30510046, 12935080, 1561737, 3841096, -29003639, -6657642 }, - { 10340844, -6630377, -18656632, -2278430, 12621151, -13339055, 30878497, -11824370, -25584551, 5181966 }, - }, - { - { 25940115, -12658025, 17324188, -10307374, -8671468, 15029094, 24396252, -16450922, -2322852, -12388574 }, - { -21765684, 9916823, -1300409, 4079498, -1028346, 11909559, 1782390, 12641087, 20603771, -6561742 }, - { -18882287, -11673380, 24849422, 11501709, 13161720, -4768874, 1925523, 11914390, 4662781, 7820689 }, - }, - { - { 12241050, -425982, 8132691, 9393934, 32846760, -1599620, 29749456, 12172924, 16136752, 15264020 }, - { -10349955, -14680563, -8211979, 2330220, -17662549, -14545780, 10658213, 6671822, 19012087, 3772772 }, - { 3753511, -3421066, 10617074, 2028709, 14841030, -6721664, 28718732, -15762884, 20527771, 12988982 }, - }, - { - { -14822485, -5797269, -3707987, 12689773, -898983, -10914866, -24183046, -10564943, 3299665, -12424953 }, - { -16777703, -15253301, -9642417, 4978983, 3308785, 8755439, 6943197, 6461331, -25583147, 8991218 }, - { -17226263, 1816362, -1673288, -6086439, 31783888, -8175991, -32948145, 7417950, -30242287, 1507265 }, - }, - { - { 29692663, 6829891, -10498800, 4334896, 20945975, -11906496, -28887608, 8209391, 14606362, -10647073 }, - { -3481570, 8707081, 32188102, 5672294, 22096700, 1711240, -33020695, 9761487, 4170404, -2085325 }, - { -11587470, 14855945, -4127778, -1531857, -26649089, 15084046, 22186522, 16002000, -14276837, -8400798 }, - }, - { - { -4811456, 13761029, -31703877, -2483919, -3312471, 7869047, -7113572, -9620092, 13240845, 10965870 }, - { -7742563, -8256762, -14768334, -13656260, -23232383, 12387166, 4498947, 14147411, 29514390, 4302863 }, - { -13413405, -12407859, 20757302, -13801832, 14785143, 8976368, -5061276, -2144373, 17846988, -13971927 }, - }, - }, - { - { - { -2244452, -754728, -4597030, -1066309, -6247172, 1455299, -21647728, -9214789, -5222701, 12650267 }, - { -9906797, -16070310, 21134160, 12198166, -27064575, 708126, 387813, 13770293, -19134326, 10958663 }, - { 22470984, 12369526, 23446014, -5441109, -21520802, -9698723, -11772496, -11574455, -25083830, 4271862 }, - }, - { - { -25169565, -10053642, -19909332, 15361595, -5984358, 2159192, 75375, -4278529, -32526221, 8469673 }, - { 15854970, 4148314, -8893890, 7259002, 11666551, 13824734, -30531198, 2697372, 24154791, -9460943 }, - { 15446137, -15806644, 29759747, 14019369, 30811221, -9610191, -31582008, 12840104, 24913809, 9815020 }, - }, - { - { -4709286, -5614269, -31841498, -12288893, -14443537, 10799414, -9103676, 13438769, 18735128, 9466238 }, - { 11933045, 9281483, 5081055, -5183824, -2628162, -4905629, -7727821, -10896103, -22728655, 16199064 }, - { 14576810, 379472, -26786533, -8317236, -29426508, -10812974, -102766, 1876699, 30801119, 2164795 }, - }, - { - { 15995086, 3199873, 13672555, 13712240, -19378835, -4647646, -13081610, -15496269, -13492807, 1268052 }, - { -10290614, -3659039, -3286592, 10948818, 23037027, 3794475, -3470338, -12600221, -17055369, 3565904 }, - { 29210088, -9419337, -5919792, -4952785, 10834811, -13327726, -16512102, -10820713, -27162222, -14030531 }, - }, - { - { -13161890, 15508588, 16663704, -8156150, -28349942, 9019123, -29183421, -3769423, 2244111, -14001979 }, - { -5152875, -3800936, -9306475, -6071583, 16243069, 14684434, -25673088, -16180800, 13491506, 4641841 }, - { 10813417, 643330, -19188515, -728916, 30292062, -16600078, 27548447, -7721242, 14476989, -12767431 }, - }, - { - { 10292079, 9984945, 6481436, 8279905, -7251514, 7032743, 27282937, -1644259, -27912810, 12651324 }, - { -31185513, -813383, 22271204, 11835308, 10201545, 15351028, 17099662, 3988035, 21721536, -3148940 }, - { 10202177, -6545839, -31373232, -9574638, -32150642, -8119683, -12906320, 3852694, 13216206, 14842320 }, - }, - { - { -15815640, -10601066, -6538952, -7258995, -6984659, -6581778, -31500847, 13765824, -27434397, 9900184 }, - { 14465505, -13833331, -32133984, -14738873, -27443187, 12990492, 33046193, 15796406, -7051866, -8040114 }, - { 30924417, -8279620, 6359016, -12816335, 16508377, 9071735, -25488601, 15413635, 9524356, -7018878 }, - }, - { - { 12274201, -13175547, 32627641, -1785326, 6736625, 13267305, 5237659, -5109483, 15663516, 4035784 }, - { -2951309, 8903985, 17349946, 601635, -16432815, -4612556, -13732739, -15889334, -22258478, 4659091 }, - { -16916263, -4952973, -30393711, -15158821, 20774812, 15897498, 5736189, 15026997, -2178256, -13455585 }, - }, - }, - { - { - { -8858980, -2219056, 28571666, -10155518, -474467, -10105698, -3801496, 278095, 23440562, -290208 }, - { 10226241, -5928702, 15139956, 120818, -14867693, 5218603, 32937275, 11551483, -16571960, -7442864 }, - { 17932739, -12437276, -24039557, 10749060, 11316803, 7535897, 22503767, 5561594, -3646624, 3898661 }, - }, - { - { 7749907, -969567, -16339731, -16464, -25018111, 15122143, -1573531, 7152530, 21831162, 1245233 }, - { 26958459, -14658026, 4314586, 8346991, -5677764, 11960072, -32589295, -620035, -30402091, -16716212 }, - { -12165896, 9166947, 33491384, 13673479, 29787085, 13096535, 6280834, 14587357, -22338025, 13987525 }, - }, - { - { -24349909, 7778775, 21116000, 15572597, -4833266, -5357778, -4300898, -5124639, -7469781, -2858068 }, - { 9681908, -6737123, -31951644, 13591838, -6883821, 386950, 31622781, 6439245, -14581012, 4091397 }, - { -8426427, 1470727, -28109679, -1596990, 3978627, -5123623, -19622683, 12092163, 29077877, -14741988 }, - }, - { - { 5269168, -6859726, -13230211, -8020715, 25932563, 1763552, -5606110, -5505881, -20017847, 2357889 }, - { 32264008, -15407652, -5387735, -1160093, -2091322, -3946900, 23104804, -12869908, 5727338, 189038 }, - { 14609123, -8954470, -6000566, -16622781, -14577387, -7743898, -26745169, 10942115, -25888931, -14884697 }, - }, - { - { 20513500, 5557931, -15604613, 7829531, 26413943, -2019404, -21378968, 7471781, 13913677, -5137875 }, - { -25574376, 11967826, 29233242, 12948236, -6754465, 4713227, -8940970, 14059180, 12878652, 8511905 }, - { -25656801, 3393631, -2955415, -7075526, -2250709, 9366908, -30223418, 6812974, 5568676, -3127656 }, - }, - { - { 11630004, 12144454, 2116339, 13606037, 27378885, 15676917, -17408753, -13504373, -14395196, 8070818 }, - { 27117696, -10007378, -31282771, -5570088, 1127282, 12772488, -29845906, 10483306, -11552749, -1028714 }, - { 10637467, -5688064, 5674781, 1072708, -26343588, -6982302, -1683975, 9177853, -27493162, 15431203 }, - }, - { - { 20525145, 10892566, -12742472, 12779443, -29493034, 16150075, -28240519, 14943142, -15056790, -7935931 }, - { -30024462, 5626926, -551567, -9981087, 753598, 11981191, 25244767, -3239766, -3356550, 9594024 }, - { -23752644, 2636870, -5163910, -10103818, 585134, 7877383, 11345683, -6492290, 13352335, -10977084 }, - }, - { - { -1931799, -5407458, 3304649, -12884869, 17015806, -4877091, -29783850, -7752482, -13215537, -319204 }, - { 20239939, 6607058, 6203985, 3483793, -18386976, -779229, -20723742, 15077870, -22750759, 14523817 }, - { 27406042, -6041657, 27423596, -4497394, 4996214, 10002360, -28842031, -4545494, -30172742, -4805667 }, - }, - }, - { - { - { 11374242, 12660715, 17861383, -12540833, 10935568, 1099227, -13886076, -9091740, -27727044, 11358504 }, - { -12730809, 10311867, 1510375, 10778093, -2119455, -9145702, 32676003, 11149336, -26123651, 4985768 }, - { -19096303, 341147, -6197485, -239033, 15756973, -8796662, -983043, 13794114, -19414307, -15621255 }, - }, - { - { 6490081, 11940286, 25495923, -7726360, 8668373, -8751316, 3367603, 6970005, -1691065, -9004790 }, - { 1656497, 13457317, 15370807, 6364910, 13605745, 8362338, -19174622, -5475723, -16796596, -5031438 }, - { -22273315, -13524424, -64685, -4334223, -18605636, -10921968, -20571065, -7007978, -99853, -10237333 }, - }, - { - { 17747465, 10039260, 19368299, -4050591, -20630635, -16041286, 31992683, -15857976, -29260363, -5511971 }, - { 31932027, -4986141, -19612382, 16366580, 22023614, 88450, 11371999, -3744247, 4882242, -10626905 }, - { 29796507, 37186, 19818052, 10115756, -11829032, 3352736, 18551198, 3272828, -5190932, -4162409 }, - }, - { - { 12501286, 4044383, -8612957, -13392385, -32430052, 5136599, -19230378, -3529697, 330070, -3659409 }, - { 6384877, 2899513, 17807477, 7663917, -2358888, 12363165, 25366522, -8573892, -271295, 12071499 }, - { -8365515, -4042521, 25133448, -4517355, -6211027, 2265927, -32769618, 1936675, -5159697, 3829363 }, - }, - { - { 28425966, -5835433, -577090, -4697198, -14217555, 6870930, 7921550, -6567787, 26333140, 14267664 }, - { -11067219, 11871231, 27385719, -10559544, -4585914, -11189312, 10004786, -8709488, -21761224, 8930324 }, - { -21197785, -16396035, 25654216, -1725397, 12282012, 11008919, 1541940, 4757911, -26491501, -16408940 }, - }, - { - { 13537262, -7759490, -20604840, 10961927, -5922820, -13218065, -13156584, 6217254, -15943699, 13814990 }, - { -17422573, 15157790, 18705543, 29619, 24409717, -260476, 27361681, 9257833, -1956526, -1776914 }, - { -25045300, -10191966, 15366585, 15166509, -13105086, 8423556, -29171540, 12361135, -18685978, 4578290 }, - }, - { - { 24579768, 3711570, 1342322, -11180126, -27005135, 14124956, -22544529, 14074919, 21964432, 8235257 }, - { -6528613, -2411497, 9442966, -5925588, 12025640, -1487420, -2981514, -1669206, 13006806, 2355433 }, - { -16304899, -13605259, -6632427, -5142349, 16974359, -10911083, 27202044, 1719366, 1141648, -12796236 }, - }, - { - { -12863944, -13219986, -8318266, -11018091, -6810145, -4843894, 13475066, -3133972, 32674895, 13715045 }, - { 11423335, -5468059, 32344216, 8962751, 24989809, 9241752, -13265253, 16086212, -28740881, -15642093 }, - { -1409668, 12530728, -6368726, 10847387, 19531186, -14132160, -11709148, 7791794, -27245943, 4383347 }, - }, - }, - { - { - { -28970898, 5271447, -1266009, -9736989, -12455236, 16732599, -4862407, -4906449, 27193557, 6245191 }, - { -15193956, 5362278, -1783893, 2695834, 4960227, 12840725, 23061898, 3260492, 22510453, 8577507 }, - { -12632451, 11257346, -32692994, 13548177, -721004, 10879011, 31168030, 13952092, -29571492, -3635906 }, - }, - { - { 3877321, -9572739, 32416692, 5405324, -11004407, -13656635, 3759769, 11935320, 5611860, 8164018 }, - { -16275802, 14667797, 15906460, 12155291, -22111149, -9039718, 32003002, -8832289, 5773085, -8422109 }, - { -23788118, -8254300, 1950875, 8937633, 18686727, 16459170, -905725, 12376320, 31632953, 190926 }, - }, - { - { -24593607, -16138885, -8423991, 13378746, 14162407, 6901328, -8288749, 4508564, -25341555, -3627528 }, - { 8884438, -5884009, 6023974, 10104341, -6881569, -4941533, 18722941, -14786005, -1672488, 827625 }, - { -32720583, -16289296, -32503547, 7101210, 13354605, 2659080, -1800575, -14108036, -24878478, 1541286 }, - }, - { - { 2901347, -1117687, 3880376, -10059388, -17620940, -3612781, -21802117, -3567481, 20456845, -1885033 }, - { 27019610, 12299467, -13658288, -1603234, -12861660, -4861471, -19540150, -5016058, 29439641, 15138866 }, - { 21536104, -6626420, -32447818, -10690208, -22408077, 5175814, -5420040, -16361163, 7779328, 109896 }, - }, - { - { 30279744, 14648750, -8044871, 6425558, 13639621, -743509, 28698390, 12180118, 23177719, -554075 }, - { 26572847, 3405927, -31701700, 12890905, -19265668, 5335866, -6493768, 2378492, 4439158, -13279347 }, - { -22716706, 3489070, -9225266, -332753, 18875722, -1140095, 14819434, -12731527, -17717757, -5461437 }, - }, - { - { -5056483, 16566551, 15953661, 3767752, -10436499, 15627060, -820954, 2177225, 8550082, -15114165 }, - { -18473302, 16596775, -381660, 15663611, 22860960, 15585581, -27844109, -3582739, -23260460, -8428588 }, - { -32480551, 15707275, -8205912, -5652081, 29464558, 2713815, -22725137, 15860482, -21902570, 1494193 }, - }, - { - { -19562091, -14087393, -25583872, -9299552, 13127842, 759709, 21923482, 16529112, 8742704, 12967017 }, - { -28464899, 1553205, 32536856, -10473729, -24691605, -406174, -8914625, -2933896, -29903758, 15553883 }, - { 21877909, 3230008, 9881174, 10539357, -4797115, 2841332, 11543572, 14513274, 19375923, -12647961 }, - }, - { - { 8832269, -14495485, 13253511, 5137575, 5037871, 4078777, 24880818, -6222716, 2862653, 9455043 }, - { 29306751, 5123106, 20245049, -14149889, 9592566, 8447059, -2077124, -2990080, 15511449, 4789663 }, - { -20679756, 7004547, 8824831, -9434977, -4045704, -3750736, -5754762, 108893, 23513200, 16652362 }, - }, - }, - { - { - { -33256173, 4144782, -4476029, -6579123, 10770039, -7155542, -6650416, -12936300, -18319198, 10212860 }, - { 2756081, 8598110, 7383731, -6859892, 22312759, -1105012, 21179801, 2600940, -9988298, -12506466 }, - { -24645692, 13317462, -30449259, -15653928, 21365574, -10869657, 11344424, 864440, -2499677, -16710063 }, - }, - { - { -26432803, 6148329, -17184412, -14474154, 18782929, -275997, -22561534, 211300, 2719757, 4940997 }, - { -1323882, 3911313, -6948744, 14759765, -30027150, 7851207, 21690126, 8518463, 26699843, 5276295 }, - { -13149873, -6429067, 9396249, 365013, 24703301, -10488939, 1321586, 149635, -15452774, 7159369 }, - }, - { - { 9987780, -3404759, 17507962, 9505530, 9731535, -2165514, 22356009, 8312176, 22477218, -8403385 }, - { 18155857, -16504990, 19744716, 9006923, 15154154, -10538976, 24256460, -4864995, -22548173, 9334109 }, - { 2986088, -4911893, 10776628, -3473844, 10620590, -7083203, -21413845, 14253545, -22587149, 536906 }, - }, - { - { 4377756, 8115836, 24567078, 15495314, 11625074, 13064599, 7390551, 10589625, 10838060, -15420424 }, - { -19342404, 867880, 9277171, -3218459, -14431572, -1986443, 19295826, -15796950, 6378260, 699185 }, - { 7895026, 4057113, -7081772, -13077756, -17886831, -323126, -716039, 15693155, -5045064, -13373962 }, - }, - { - { -7737563, -5869402, -14566319, -7406919, 11385654, 13201616, 31730678, -10962840, -3918636, -9669325 }, - { 10188286, -15770834, -7336361, 13427543, 22223443, 14896287, 30743455, 7116568, -21786507, 5427593 }, - { 696102, 13206899, 27047647, -10632082, 15285305, -9853179, 10798490, -4578720, 19236243, 12477404 }, - }, - { - { -11229439, 11243796, -17054270, -8040865, -788228, -8167967, -3897669, 11180504, -23169516, 7733644 }, - { 17800790, -14036179, -27000429, -11766671, 23887827, 3149671, 23466177, -10538171, 10322027, 15313801 }, - { 26246234, 11968874, 32263343, -5468728, 6830755, -13323031, -15794704, -101982, -24449242, 10890804 }, - }, - { - { -31365647, 10271363, -12660625, -6267268, 16690207, -13062544, -14982212, 16484931, 25180797, -5334884 }, - { -586574, 10376444, -32586414, -11286356, 19801893, 10997610, 2276632, 9482883, 316878, 13820577 }, - { -9882808, -4510367, -2115506, 16457136, -11100081, 11674996, 30756178, -7515054, 30696930, -3712849 }, - }, - { - { 32988917, -9603412, 12499366, 7910787, -10617257, -11931514, -7342816, -9985397, -32349517, 7392473 }, - { -8855661, 15927861, 9866406, -3649411, -2396914, -16655781, -30409476, -9134995, 25112947, -2926644 }, - { -2504044, -436966, 25621774, -5678772, 15085042, -5479877, -24884878, -13526194, 5537438, -13914319 }, - }, - }, - { - { - { -11225584, 2320285, -9584280, 10149187, -33444663, 5808648, -14876251, -1729667, 31234590, 6090599 }, - { -9633316, 116426, 26083934, 2897444, -6364437, -2688086, 609721, 15878753, -6970405, -9034768 }, - { -27757857, 247744, -15194774, -9002551, 23288161, -10011936, -23869595, 6503646, 20650474, 1804084 }, - }, - { - { -27589786, 15456424, 8972517, 8469608, 15640622, 4439847, 3121995, -10329713, 27842616, -202328 }, - { -15306973, 2839644, 22530074, 10026331, 4602058, 5048462, 28248656, 5031932, -11375082, 12714369 }, - { 20807691, -7270825, 29286141, 11421711, -27876523, -13868230, -21227475, 1035546, -19733229, 12796920 }, - }, - { - { 12076899, -14301286, -8785001, -11848922, -25012791, 16400684, -17591495, -12899438, 3480665, -15182815 }, - { -32361549, 5457597, 28548107, 7833186, 7303070, -11953545, -24363064, -15921875, -33374054, 2771025 }, - { -21389266, 421932, 26597266, 6860826, 22486084, -6737172, -17137485, -4210226, -24552282, 15673397 }, - }, - { - { -20184622, 2338216, 19788685, -9620956, -4001265, -8740893, -20271184, 4733254, 3727144, -12934448 }, - { 6120119, 814863, -11794402, -622716, 6812205, -15747771, 2019594, 7975683, 31123697, -10958981 }, - { 30069250, -11435332, 30434654, 2958439, 18399564, -976289, 12296869, 9204260, -16432438, 9648165 }, - }, - { - { 32705432, -1550977, 30705658, 7451065, -11805606, 9631813, 3305266, 5248604, -26008332, -11377501 }, - { 17219865, 2375039, -31570947, -5575615, -19459679, 9219903, 294711, 15298639, 2662509, -16297073 }, - { -1172927, -7558695, -4366770, -4287744, -21346413, -8434326, 32087529, -1222777, 32247248, -14389861 }, - }, - { - { 14312628, 1221556, 17395390, -8700143, -4945741, -8684635, -28197744, -9637817, -16027623, -13378845 }, - { -1428825, -9678990, -9235681, 6549687, -7383069, -468664, 23046502, 9803137, 17597934, 2346211 }, - { 18510800, 15337574, 26171504, 981392, -22241552, 7827556, -23491134, -11323352, 3059833, -11782870 }, - }, - { - { 10141598, 6082907, 17829293, -1947643, 9830092, 13613136, -25556636, -5544586, -33502212, 3592096 }, - { 33114168, -15889352, -26525686, -13343397, 33076705, 8716171, 1151462, 1521897, -982665, -6837803 }, - { -32939165, -4255815, 23947181, -324178, -33072974, -12305637, -16637686, 3891704, 26353178, 693168 }, - }, - { - { 30374239, 1595580, -16884039, 13186931, 4600344, 406904, 9585294, -400668, 31375464, 14369965 }, - { -14370654, -7772529, 1510301, 6434173, -18784789, -6262728, 32732230, -13108839, 17901441, 16011505 }, - { 18171223, -11934626, -12500402, 15197122, -11038147, -15230035, -19172240, -16046376, 8764035, 12309598 }, - }, - }, - { - { - { 5975908, -5243188, -19459362, -9681747, -11541277, 14015782, -23665757, 1228319, 17544096, -10593782 }, - { 5811932, -1715293, 3442887, -2269310, -18367348, -8359541, -18044043, -15410127, -5565381, 12348900 }, - { -31399660, 11407555, 25755363, 6891399, -3256938, 14872274, -24849353, 8141295, -10632534, -585479 }, - }, - { - { -12675304, 694026, -5076145, 13300344, 14015258, -14451394, -9698672, -11329050, 30944593, 1130208 }, - { 8247766, -6710942, -26562381, -7709309, -14401939, -14648910, 4652152, 2488540, 23550156, -271232 }, - { 17294316, -3788438, 7026748, 15626851, 22990044, 113481, 2267737, -5908146, -408818, -137719 }, - }, - { - { 16091085, -16253926, 18599252, 7340678, 2137637, -1221657, -3364161, 14550936, 3260525, -7166271 }, - { -4910104, -13332887, 18550887, 10864893, -16459325, -7291596, -23028869, -13204905, -12748722, 2701326 }, - { -8574695, 16099415, 4629974, -16340524, -20786213, -6005432, -10018363, 9276971, 11329923, 1862132 }, - }, - { - { 14763076, -15903608, -30918270, 3689867, 3511892, 10313526, -21951088, 12219231, -9037963, -940300 }, - { 8894987, -3446094, 6150753, 3013931, 301220, 15693451, -31981216, -2909717, -15438168, 11595570 }, - { 15214962, 3537601, -26238722, -14058872, 4418657, -15230761, 13947276, 10730794, -13489462, -4363670 }, - }, - { - { -2538306, 7682793, 32759013, 263109, -29984731, -7955452, -22332124, -10188635, 977108, 699994 }, - { -12466472, 4195084, -9211532, 550904, -15565337, 12917920, 19118110, -439841, -30534533, -14337913 }, - { 31788461, -14507657, 4799989, 7372237, 8808585, -14747943, 9408237, -10051775, 12493932, -5409317 }, - }, - { - { -25680606, 5260744, -19235809, -6284470, -3695942, 16566087, 27218280, 2607121, 29375955, 6024730 }, - { 842132, -2794693, -4763381, -8722815, 26332018, -12405641, 11831880, 6985184, -9940361, 2854096 }, - { -4847262, -7969331, 2516242, -5847713, 9695691, -7221186, 16512645, 960770, 12121869, 16648078 }, - }, - { - { -15218652, 14667096, -13336229, 2013717, 30598287, -464137, -31504922, -7882064, 20237806, 2838411 }, - { -19288047, 4453152, 15298546, -16178388, 22115043, -15972604, 12544294, -13470457, 1068881, -12499905 }, - { -9558883, -16518835, 33238498, 13506958, 30505848, -1114596, -8486907, -2630053, 12521378, 4845654 }, - }, - { - { -28198521, 10744108, -2958380, 10199664, 7759311, -13088600, 3409348, -873400, -6482306, -12885870 }, - { -23561822, 6230156, -20382013, 10655314, -24040585, -11621172, 10477734, -1240216, -3113227, 13974498 }, - { 12966261, 15550616, -32038948, -1615346, 21025980, -629444, 5642325, 7188737, 18895762, 12629579 }, - }, - }, - { - { - { 14741879, -14946887, 22177208, -11721237, 1279741, 8058600, 11758140, 789443, 32195181, 3895677 }, - { 10758205, 15755439, -4509950, 9243698, -4879422, 6879879, -2204575, -3566119, -8982069, 4429647 }, - { -2453894, 15725973, -20436342, -10410672, -5803908, -11040220, -7135870, -11642895, 18047436, -15281743 }, - }, - { - { -25173001, -11307165, 29759956, 11776784, -22262383, -15820455, 10993114, -12850837, -17620701, -9408468 }, - { 21987233, 700364, -24505048, 14972008, -7774265, -5718395, 32155026, 2581431, -29958985, 8773375 }, - { -25568350, 454463, -13211935, 16126715, 25240068, 8594567, 20656846, 12017935, -7874389, -13920155 }, - }, - { - { 6028182, 6263078, -31011806, -11301710, -818919, 2461772, -31841174, -5468042, -1721788, -2776725 }, - { -12278994, 16624277, 987579, -5922598, 32908203, 1248608, 7719845, -4166698, 28408820, 6816612 }, - { -10358094, -8237829, 19549651, -12169222, 22082623, 16147817, 20613181, 13982702, -10339570, 5067943 }, - }, - { - { -30505967, -3821767, 12074681, 13582412, -19877972, 2443951, -19719286, 12746132, 5331210, -10105944 }, - { 30528811, 3601899, -1957090, 4619785, -27361822, -15436388, 24180793, -12570394, 27679908, -1648928 }, - { 9402404, -13957065, 32834043, 10838634, -26580150, -13237195, 26653274, -8685565, 22611444, -12715406 }, - }, - { - { 22190590, 1118029, 22736441, 15130463, -30460692, -5991321, 19189625, -4648942, 4854859, 6622139 }, - { -8310738, -2953450, -8262579, -3388049, -10401731, -271929, 13424426, -3567227, 26404409, 13001963 }, - { -31241838, -15415700, -2994250, 8939346, 11562230, -12840670, -26064365, -11621720, -15405155, 11020693 }, - }, - { - { 1866042, -7949489, -7898649, -10301010, 12483315, 13477547, 3175636, -12424163, 28761762, 1406734 }, - { -448555, -1777666, 13018551, 3194501, -9580420, -11161737, 24760585, -4347088, 25577411, -13378680 }, - { -24290378, 4759345, -690653, -1852816, 2066747, 10693769, -29595790, 9884936, -9368926, 4745410 }, - }, - { - { -9141284, 6049714, -19531061, -4341411, -31260798, 9944276, -15462008, -11311852, 10931924, -11931931 }, - { -16561513, 14112680, -8012645, 4817318, -8040464, -11414606, -22853429, 10856641, -20470770, 13434654 }, - { 22759489, -10073434, -16766264, -1871422, 13637442, -10168091, 1765144, -12654326, 28445307, -5364710 }, - }, - { - { 29875063, 12493613, 2795536, -3786330, 1710620, 15181182, -10195717, -8788675, 9074234, 1167180 }, - { -26205683, 11014233, -9842651, -2635485, -26908120, 7532294, -18716888, -9535498, 3843903, 9367684 }, - { -10969595, -6403711, 9591134, 9582310, 11349256, 108879, 16235123, 8601684, -139197, 4242895 }, - }, - }, - { - { - { 22092954, -13191123, -2042793, -11968512, 32186753, -11517388, -6574341, 2470660, -27417366, 16625501 }, - { -11057722, 3042016, 13770083, -9257922, 584236, -544855, -7770857, 2602725, -27351616, 14247413 }, - { 6314175, -10264892, -32772502, 15957557, -10157730, 168750, -8618807, 14290061, 27108877, -1180880 }, - }, - { - { -8586597, -7170966, 13241782, 10960156, -32991015, -13794596, 33547976, -11058889, -27148451, 981874 }, - { 22833440, 9293594, -32649448, -13618667, -9136966, 14756819, -22928859, -13970780, -10479804, -16197962 }, - { -7768587, 3326786, -28111797, 10783824, 19178761, 14905060, 22680049, 13906969, -15933690, 3797899 }, - }, - { - { 21721356, -4212746, -12206123, 9310182, -3882239, -13653110, 23740224, -2709232, 20491983, -8042152 }, - { 9209270, -15135055, -13256557, -6167798, -731016, 15289673, 25947805, 15286587, 30997318, -6703063 }, - { 7392032, 16618386, 23946583, -8039892, -13265164, -1533858, -14197445, -2321576, 17649998, -250080 }, - }, - { - { -9301088, -14193827, 30609526, -3049543, -25175069, -1283752, -15241566, -9525724, -2233253, 7662146 }, - { -17558673, 1763594, -33114336, 15908610, -30040870, -12174295, 7335080, -8472199, -3174674, 3440183 }, - { -19889700, -5977008, -24111293, -9688870, 10799743, -16571957, 40450, -4431835, 4862400, 1133 }, - }, - { - { -32856209, -7873957, -5422389, 14860950, -16319031, 7956142, 7258061, 311861, -30594991, -7379421 }, - { -3773428, -1565936, 28985340, 7499440, 24445838, 9325937, 29727763, 16527196, 18278453, 15405622 }, - { -4381906, 8508652, -19898366, -3674424, -5984453, 15149970, -13313598, 843523, -21875062, 13626197 }, - }, - { - { 2281448, -13487055, -10915418, -2609910, 1879358, 16164207, -10783882, 3953792, 13340839, 15928663 }, - { 31727126, -7179855, -18437503, -8283652, 2875793, -16390330, -25269894, -7014826, -23452306, 5964753 }, - { 4100420, -5959452, -17179337, 6017714, -18705837, 12227141, -26684835, 11344144, 2538215, -7570755 }, - }, - { - { -9433605, 6123113, 11159803, -2156608, 30016280, 14966241, -20474983, 1485421, -629256, -15958862 }, - { -26804558, 4260919, 11851389, 9658551, -32017107, 16367492, -20205425, -13191288, 11659922, -11115118 }, - { 26180396, 10015009, -30844224, -8581293, 5418197, 9480663, 2231568, -10170080, 33100372, -1306171 }, - }, - { - { 15121113, -5201871, -10389905, 15427821, -27509937, -15992507, 21670947, 4486675, -5931810, -14466380 }, - { 16166486, -9483733, -11104130, 6023908, -31926798, -1364923, 2340060, -16254968, -10735770, -10039824 }, - { 28042865, -3557089, -12126526, 12259706, -3717498, -6945899, 6766453, -8689599, 18036436, 5803270 }, - }, - }, - { - { - { -817581, 6763912, 11803561, 1585585, 10958447, -2671165, 23855391, 4598332, -6159431, -14117438 }, - { -31031306, -14256194, 17332029, -2383520, 31312682, -5967183, 696309, 50292, -20095739, 11763584 }, - { -594563, -2514283, -32234153, 12643980, 12650761, 14811489, 665117, -12613632, -19773211, -10713562 }, - }, - { - { 30464590, -11262872, -4127476, -12734478, 19835327, -7105613, -24396175, 2075773, -17020157, 992471 }, - { 18357185, -6994433, 7766382, 16342475, -29324918, 411174, 14578841, 8080033, -11574335, -10601610 }, - { 19598397, 10334610, 12555054, 2555664, 18821899, -10339780, 21873263, 16014234, 26224780, 16452269 }, - }, - { - { -30223925, 5145196, 5944548, 16385966, 3976735, 2009897, -11377804, -7618186, -20533829, 3698650 }, - { 14187449, 3448569, -10636236, -10810935, -22663880, -3433596, 7268410, -10890444, 27394301, 12015369 }, - { 19695761, 16087646, 28032085, 12999827, 6817792, 11427614, 20244189, -1312777, -13259127, -3402461 }, - }, - { - { 30860103, 12735208, -1888245, -4699734, -16974906, 2256940, -8166013, 12298312, -8550524, -10393462 }, - { -5719826, -11245325, -1910649, 15569035, 26642876, -7587760, -5789354, -15118654, -4976164, 12651793 }, - { -2848395, 9953421, 11531313, -5282879, 26895123, -12697089, -13118820, -16517902, 9768698, -2533218 }, - }, - { - { -24719459, 1894651, -287698, -4704085, 15348719, -8156530, 32767513, 12765450, 4940095, 10678226 }, - { 18860224, 15980149, -18987240, -1562570, -26233012, -11071856, -7843882, 13944024, -24372348, 16582019 }, - { -15504260, 4970268, -29893044, 4175593, -20993212, -2199756, -11704054, 15444560, -11003761, 7989037 }, - }, - { - { 31490452, 5568061, -2412803, 2182383, -32336847, 4531686, -32078269, 6200206, -19686113, -14800171 }, - { -17308668, -15879940, -31522777, -2831, -32887382, 16375549, 8680158, -16371713, 28550068, -6857132 }, - { -28126887, -5688091, 16837845, -1820458, -6850681, 12700016, -30039981, 4364038, 1155602, 5988841 }, - }, - { - { 21890435, -13272907, -12624011, 12154349, -7831873, 15300496, 23148983, -4470481, 24618407, 8283181 }, - { -33136107, -10512751, 9975416, 6841041, -31559793, 16356536, 3070187, -7025928, 1466169, 10740210 }, - { -1509399, -15488185, -13503385, -10655916, 32799044, 909394, -13938903, -5779719, -32164649, -15327040 }, - }, - { - { 3960823, -14267803, -28026090, -15918051, -19404858, 13146868, 15567327, 951507, -3260321, -573935 }, - { 24740841, 5052253, -30094131, 8961361, 25877428, 6165135, -24368180, 14397372, -7380369, -6144105 }, - { -28888365, 3510803, -28103278, -1158478, -11238128, -10631454, -15441463, -14453128, -1625486, -6494814 }, - }, - }, - { - { - { 793299, -9230478, 8836302, -6235707, -27360908, -2369593, 33152843, -4885251, -9906200, -621852 }, - { 5666233, 525582, 20782575, -8038419, -24538499, 14657740, 16099374, 1468826, -6171428, -15186581 }, - { -4859255, -3779343, -2917758, -6748019, 7778750, 11688288, -30404353, -9871238, -1558923, -9863646 }, - }, - { - { 10896332, -7719704, 824275, 472601, -19460308, 3009587, 25248958, 14783338, -30581476, -15757844 }, - { 10566929, 12612572, -31944212, 11118703, -12633376, 12362879, 21752402, 8822496, 24003793, 14264025 }, - { 27713862, -7355973, -11008240, 9227530, 27050101, 2504721, 23886875, -13117525, 13958495, -5732453 }, - }, - { - { -23481610, 4867226, -27247128, 3900521, 29838369, -8212291, -31889399, -10041781, 7340521, -15410068 }, - { 4646514, -8011124, -22766023, -11532654, 23184553, 8566613, 31366726, -1381061, -15066784, -10375192 }, - { -17270517, 12723032, -16993061, 14878794, 21619651, -6197576, 27584817, 3093888, -8843694, 3849921 }, - }, - { - { -9064912, 2103172, 25561640, -15125738, -5239824, 9582958, 32477045, -9017955, 5002294, -15550259 }, - { -12057553, -11177906, 21115585, -13365155, 8808712, -12030708, 16489530, 13378448, -25845716, 12741426 }, - { -5946367, 10645103, -30911586, 15390284, -3286982, -7118677, 24306472, 15852464, 28834118, -7646072 }, - }, - { - { -17335748, -9107057, -24531279, 9434953, -8472084, -583362, -13090771, 455841, 20461858, 5491305 }, - { 13669248, -16095482, -12481974, -10203039, -14569770, -11893198, -24995986, 11293807, -28588204, -9421832 }, - { 28497928, 6272777, -33022994, 14470570, 8906179, -1225630, 18504674, -14165166, 29867745, -8795943 }, - }, - { - { -16207023, 13517196, -27799630, -13697798, 24009064, -6373891, -6367600, -13175392, 22853429, -4012011 }, - { 24191378, 16712145, -13931797, 15217831, 14542237, 1646131, 18603514, -11037887, 12876623, -2112447 }, - { 17902668, 4518229, -411702, -2829247, 26878217, 5258055, -12860753, 608397, 16031844, 3723494 }, - }, - { - { -28632773, 12763728, -20446446, 7577504, 33001348, -13017745, 17558842, -7872890, 23896954, -4314245 }, - { -20005381, -12011952, 31520464, 605201, 2543521, 5991821, -2945064, 7229064, -9919646, -8826859 }, - { 28816045, 298879, -28165016, -15920938, 19000928, -1665890, -12680833, -2949325, -18051778, -2082915 }, - }, - { - { 16000882, -344896, 3493092, -11447198, -29504595, -13159789, 12577740, 16041268, -19715240, 7847707 }, - { 10151868, 10572098, 27312476, 7922682, 14825339, 4723128, -32855931, -6519018, -10020567, 3852848 }, - { -11430470, 15697596, -21121557, -4420647, 5386314, 15063598, 16514493, -15932110, 29330899, -15076224 }, - }, - }, - { - { - { -25499735, -4378794, -15222908, -6901211, 16615731, 2051784, 3303702, 15490, -27548796, 12314391 }, - { 15683520, -6003043, 18109120, -9980648, 15337968, -5997823, -16717435, 15921866, 16103996, -3731215 }, - { -23169824, -10781249, 13588192, -1628807, -3798557, -1074929, -19273607, 5402699, -29815713, -9841101 }, - }, - { - { 23190676, 2384583, -32714340, 3462154, -29903655, -1529132, -11266856, 8911517, -25205859, 2739713 }, - { 21374101, -3554250, -33524649, 9874411, 15377179, 11831242, -33529904, 6134907, 4931255, 11987849 }, - { -7732, -2978858, -16223486, 7277597, 105524, -322051, -31480539, 13861388, -30076310, 10117930 }, - }, - { - { -29501170, -10744872, -26163768, 13051539, -25625564, 5089643, -6325503, 6704079, 12890019, 15728940 }, - { -21972360, -11771379, -951059, -4418840, 14704840, 2695116, 903376, -10428139, 12885167, 8311031 }, - { -17516482, 5352194, 10384213, -13811658, 7506451, 13453191, 26423267, 4384730, 1888765, -5435404 }, - }, - { - { -25817338, -3107312, -13494599, -3182506, 30896459, -13921729, -32251644, -12707869, -19464434, -3340243 }, - { -23607977, -2665774, -526091, 4651136, 5765089, 4618330, 6092245, 14845197, 17151279, -9854116 }, - { -24830458, -12733720, -15165978, 10367250, -29530908, -265356, 22825805, -7087279, -16866484, 16176525 }, - }, - { - { -23583256, 6564961, 20063689, 3798228, -4740178, 7359225, 2006182, -10363426, -28746253, -10197509 }, - { -10626600, -4486402, -13320562, -5125317, 3432136, -6393229, 23632037, -1940610, 32808310, 1099883 }, - { 15030977, 5768825, -27451236, -2887299, -6427378, -15361371, -15277896, -6809350, 2051441, -15225865 }, - }, - { - { -3362323, -7239372, 7517890, 9824992, 23555850, 295369, 5148398, -14154188, -22686354, 16633660 }, - { 4577086, -16752288, 13249841, -15304328, 19958763, -14537274, 18559670, -10759549, 8402478, -9864273 }, - { -28406330, -1051581, -26790155, -907698, -17212414, -11030789, 9453451, -14980072, 17983010, 9967138 }, - }, - { - { -25762494, 6524722, 26585488, 9969270, 24709298, 1220360, -1677990, 7806337, 17507396, 3651560 }, - { -10420457, -4118111, 14584639, 15971087, -15768321, 8861010, 26556809, -5574557, -18553322, -11357135 }, - { 2839101, 14284142, 4029895, 3472686, 14402957, 12689363, -26642121, 8459447, -5605463, -7621941 }, - }, - { - { -4839289, -3535444, 9744961, 2871048, 25113978, 3187018, -25110813, -849066, 17258084, -7977739 }, - { 18164541, -10595176, -17154882, -1542417, 19237078, -9745295, 23357533, -15217008, 26908270, 12150756 }, - { -30264870, -7647865, 5112249, -7036672, -1499807, -6974257, 43168, -5537701, -32302074, 16215819 }, - }, - }, - { - { - { -6898905, 9824394, -12304779, -4401089, -31397141, -6276835, 32574489, 12532905, -7503072, -8675347 }, - { -27343522, -16515468, -27151524, -10722951, 946346, 16291093, 254968, 7168080, 21676107, -1943028 }, - { 21260961, -8424752, -16831886, -11920822, -23677961, 3968121, -3651949, -6215466, -3556191, -7913075 }, - }, - { - { 16544754, 13250366, -16804428, 15546242, -4583003, 12757258, -2462308, -8680336, -18907032, -9662799 }, - { -2415239, -15577728, 18312303, 4964443, -15272530, -12653564, 26820651, 16690659, 25459437, -4564609 }, - { -25144690, 11425020, 28423002, -11020557, -6144921, -15826224, 9142795, -2391602, -6432418, -1644817 }, - }, - { - { -23104652, 6253476, 16964147, -3768872, -25113972, -12296437, -27457225, -16344658, 6335692, 7249989 }, - { -30333227, 13979675, 7503222, -12368314, -11956721, -4621693, -30272269, 2682242, 25993170, -12478523 }, - { 4364628, 5930691, 32304656, -10044554, -8054781, 15091131, 22857016, -10598955, 31820368, 15075278 }, - }, - { - { 31879134, -8918693, 17258761, 90626, -8041836, -4917709, 24162788, -9650886, -17970238, 12833045 }, - { 19073683, 14851414, -24403169, -11860168, 7625278, 11091125, -19619190, 2074449, -9413939, 14905377 }, - { 24483667, -11935567, -2518866, -11547418, -1553130, 15355506, -25282080, 9253129, 27628530, -7555480 }, - }, - { - { 17597607, 8340603, 19355617, 552187, 26198470, -3176583, 4593324, -9157582, -14110875, 15297016 }, - { 510886, 14337390, -31785257, 16638632, 6328095, 2713355, -20217417, -11864220, 8683221, 2921426 }, - { 18606791, 11874196, 27155355, -5281482, -24031742, 6265446, -25178240, -1278924, 4674690, 13890525 }, - }, - { - { 13609624, 13069022, -27372361, -13055908, 24360586, 9592974, 14977157, 9835105, 4389687, 288396 }, - { 9922506, -519394, 13613107, 5883594, -18758345, -434263, -12304062, 8317628, 23388070, 16052080 }, - { 12720016, 11937594, -31970060, -5028689, 26900120, 8561328, -20155687, -11632979, -14754271, -10812892 }, - }, - { - { 15961858, 14150409, 26716931, -665832, -22794328, 13603569, 11829573, 7467844, -28822128, 929275 }, - { 11038231, -11582396, -27310482, -7316562, -10498527, -16307831, -23479533, -9371869, -21393143, 2465074 }, - { 20017163, -4323226, 27915242, 1529148, 12396362, 15675764, 13817261, -9658066, 2463391, -4622140 }, - }, - { - { -16358878, -12663911, -12065183, 4996454, -1256422, 1073572, 9583558, 12851107, 4003896, 12673717 }, - { -1731589, -15155870, -3262930, 16143082, 19294135, 13385325, 14741514, -9103726, 7903886, 2348101 }, - { 24536016, -16515207, 12715592, -3862155, 1511293, 10047386, -3842346, -7129159, -28377538, 10048127 }, - }, - }, - { - { - { -12622226, -6204820, 30718825, 2591312, -10617028, 12192840, 18873298, -7297090, -32297756, 15221632 }, - { -26478122, -11103864, 11546244, -1852483, 9180880, 7656409, -21343950, 2095755, 29769758, 6593415 }, - { -31994208, -2907461, 4176912, 3264766, 12538965, -868111, 26312345, -6118678, 30958054, 8292160 }, - }, - { - { 31429822, -13959116, 29173532, 15632448, 12174511, -2760094, 32808831, 3977186, 26143136, -3148876 }, - { 22648901, 1402143, -22799984, 13746059, 7936347, 365344, -8668633, -1674433, -3758243, -2304625 }, - { -15491917, 8012313, -2514730, -12702462, -23965846, -10254029, -1612713, -1535569, -16664475, 8194478 }, - }, - { - { 27338066, -7507420, -7414224, 10140405, -19026427, -6589889, 27277191, 8855376, 28572286, 3005164 }, - { 26287124, 4821776, 25476601, -4145903, -3764513, -15788984, -18008582, 1182479, -26094821, -13079595 }, - { -7171154, 3178080, 23970071, 6201893, -17195577, -4489192, -21876275, -13982627, 32208683, -1198248 }, - }, - { - { -16657702, 2817643, -10286362, 14811298, 6024667, 13349505, -27315504, -10497842, -27672585, -11539858 }, - { 15941029, -9405932, -21367050, 8062055, 31876073, -238629, -15278393, -1444429, 15397331, -4130193 }, - { 8934485, -13485467, -23286397, -13423241, -32446090, 14047986, 31170398, -1441021, -27505566, 15087184 }, - }, - { - { -18357243, -2156491, 24524913, -16677868, 15520427, -6360776, -15502406, 11461896, 16788528, -5868942 }, - { -1947386, 16013773, 21750665, 3714552, -17401782, -16055433, -3770287, -10323320, 31322514, -11615635 }, - { 21426655, -5650218, -13648287, -5347537, -28812189, -4920970, -18275391, -14621414, 13040862, -12112948 }, - }, - { - { 11293895, 12478086, -27136401, 15083750, -29307421, 14748872, 14555558, -13417103, 1613711, 4896935 }, - { -25894883, 15323294, -8489791, -8057900, 25967126, -13425460, 2825960, -4897045, -23971776, -11267415 }, - { -15924766, -5229880, -17443532, 6410664, 3622847, 10243618, 20615400, 12405433, -23753030, -8436416 }, - }, - { - { -7091295, 12556208, -20191352, 9025187, -17072479, 4333801, 4378436, 2432030, 23097949, -566018 }, - { 4565804, -16025654, 20084412, -7842817, 1724999, 189254, 24767264, 10103221, -18512313, 2424778 }, - { 366633, -11976806, 8173090, -6890119, 30788634, 5745705, -7168678, 1344109, -3642553, 12412659 }, - }, - { - { -24001791, 7690286, 14929416, -168257, -32210835, -13412986, 24162697, -15326504, -3141501, 11179385 }, - { 18289522, -14724954, 8056945, 16430056, -21729724, 7842514, -6001441, -1486897, -18684645, -11443503 }, - { 476239, 6601091, -6152790, -9723375, 17503545, -4863900, 27672959, 13403813, 11052904, 5219329 }, - }, - }, - { - { - { 20678546, -8375738, -32671898, 8849123, -5009758, 14574752, 31186971, -3973730, 9014762, -8579056 }, - { -13644050, -10350239, -15962508, 5075808, -1514661, -11534600, -33102500, 9160280, 8473550, -3256838 }, - { 24900749, 14435722, 17209120, -15292541, -22592275, 9878983, -7689309, -16335821, -24568481, 11788948 }, - }, - { - { -3118155, -11395194, -13802089, 14797441, 9652448, -6845904, -20037437, 10410733, -24568470, -1458691 }, - { -15659161, 16736706, -22467150, 10215878, -9097177, 7563911, 11871841, -12505194, -18513325, 8464118 }, - { -23400612, 8348507, -14585951, -861714, -3950205, -6373419, 14325289, 8628612, 33313881, -8370517 }, - }, - { - { -20186973, -4967935, 22367356, 5271547, -1097117, -4788838, -24805667, -10236854, -8940735, -5818269 }, - { -6948785, -1795212, -32625683, -16021179, 32635414, -7374245, 15989197, -12838188, 28358192, -4253904 }, - { -23561781, -2799059, -32351682, -1661963, -9147719, 10429267, -16637684, 4072016, -5351664, 5596589 }, - }, - { - { -28236598, -3390048, 12312896, 6213178, 3117142, 16078565, 29266239, 2557221, 1768301, 15373193 }, - { -7243358, -3246960, -4593467, -7553353, -127927, -912245, -1090902, -4504991, -24660491, 3442910 }, - { -30210571, 5124043, 14181784, 8197961, 18964734, -11939093, 22597931, 7176455, -18585478, 13365930 }, - }, - { - { -7877390, -1499958, 8324673, 4690079, 6261860, 890446, 24538107, -8570186, -9689599, -3031667 }, - { 25008904, -10771599, -4305031, -9638010, 16265036, 15721635, 683793, -11823784, 15723479, -15163481 }, - { -9660625, 12374379, -27006999, -7026148, -7724114, -12314514, 11879682, 5400171, 519526, -1235876 }, - }, - { - { 22258397, -16332233, -7869817, 14613016, -22520255, -2950923, -20353881, 7315967, 16648397, 7605640 }, - { -8081308, -8464597, -8223311, 9719710, 19259459, -15348212, 23994942, -5281555, -9468848, 4763278 }, - { -21699244, 9220969, -15730624, 1084137, -25476107, -2852390, 31088447, -7764523, -11356529, 728112 }, - }, - { - { 26047220, -11751471, -6900323, -16521798, 24092068, 9158119, -4273545, -12555558, -29365436, -5498272 }, - { 17510331, -322857, 5854289, 8403524, 17133918, -3112612, -28111007, 12327945, 10750447, 10014012 }, - { -10312768, 3936952, 9156313, -8897683, 16498692, -994647, -27481051, -666732, 3424691, 7540221 }, - }, - { - { 30322361, -6964110, 11361005, -4143317, 7433304, 4989748, -7071422, -16317219, -9244265, 15258046 }, - { 13054562, -2779497, 19155474, 469045, -12482797, 4566042, 5631406, 2711395, 1062915, -5136345 }, - { -19240248, -11254599, -29509029, -7499965, -5835763, 13005411, -6066489, 12194497, 32960380, 1459310 }, - }, - }, - { - { - { 19852034, 7027924, 23669353, 10020366, 8586503, -6657907, 394197, -6101885, 18638003, -11174937 }, - { 31395534, 15098109, 26581030, 8030562, -16527914, -5007134, 9012486, -7584354, -6643087, -5442636 }, - { -9192165, -2347377, -1997099, 4529534, 25766844, 607986, -13222, 9677543, -32294889, -6456008 }, - }, - { - { -2444496, -149937, 29348902, 8186665, 1873760, 12489863, -30934579, -7839692, -7852844, -8138429 }, - { -15236356, -15433509, 7766470, 746860, 26346930, -10221762, -27333451, 10754588, -9431476, 5203576 }, - { 31834314, 14135496, -770007, 5159118, 20917671, -16768096, -7467973, -7337524, 31809243, 7347066 }, - }, - { - { -9606723, -11874240, 20414459, 13033986, 13716524, -11691881, 19797970, -12211255, 15192876, -2087490 }, - { -12663563, -2181719, 1168162, -3804809, 26747877, -14138091, 10609330, 12694420, 33473243, -13382104 }, - { 33184999, 11180355, 15832085, -11385430, -1633671, 225884, 15089336, -11023903, -6135662, 14480053 }, - }, - { - { 31308717, -5619998, 31030840, -1897099, 15674547, -6582883, 5496208, 13685227, 27595050, 8737275 }, - { -20318852, -15150239, 10933843, -16178022, 8335352, -7546022, -31008351, -12610604, 26498114, 66511 }, - { 22644454, -8761729, -16671776, 4884562, -3105614, -13559366, 30540766, -4286747, -13327787, -7515095 }, - }, - { - { -28017847, 9834845, 18617207, -2681312, -3401956, -13307506, 8205540, 13585437, -17127465, 15115439 }, - { 23711543, -672915, 31206561, -8362711, 6164647, -9709987, -33535882, -1426096, 8236921, 16492939 }, - { -23910559, -13515526, -26299483, -4503841, 25005590, -7687270, 19574902, 10071562, 6708380, -6222424 }, - }, - { - { 2101391, -4930054, 19702731, 2367575, -15427167, 1047675, 5301017, 9328700, 29955601, -11678310 }, - { 3096359, 9271816, -21620864, -15521844, -14847996, -7592937, -25892142, -12635595, -9917575, 6216608 }, - { -32615849, 338663, -25195611, 2510422, -29213566, -13820213, 24822830, -6146567, -26767480, 7525079 }, - }, - { - { -23066649, -13985623, 16133487, -7896178, -3389565, 778788, -910336, -2782495, -19386633, 11994101 }, - { 21691500, -13624626, -641331, -14367021, 3285881, -3483596, -25064666, 9718258, -7477437, 13381418 }, - { 18445390, -4202236, 14979846, 11622458, -1727110, -3582980, 23111648, -6375247, 28535282, 15779576 }, - }, - { - { 30098053, 3089662, -9234387, 16662135, -21306940, 11308411, -14068454, 12021730, 9955285, -16303356 }, - { 9734894, -14576830, -7473633, -9138735, 2060392, 11313496, -18426029, 9924399, 20194861, 13380996 }, - { -26378102, -7965207, -22167821, 15789297, -18055342, -6168792, -1984914, 15707771, 26342023, 10146099 }, - }, - }, - { - { - { -26016874, -219943, 21339191, -41388, 19745256, -2878700, -29637280, 2227040, 21612326, -545728 }, - { -13077387, 1184228, 23562814, -5970442, -20351244, -6348714, 25764461, 12243797, -20856566, 11649658 }, - { -10031494, 11262626, 27384172, 2271902, 26947504, -15997771, 39944, 6114064, 33514190, 2333242 }, - }, - { - { -21433588, -12421821, 8119782, 7219913, -21830522, -9016134, -6679750, -12670638, 24350578, -13450001 }, - { -4116307, -11271533, -23886186, 4843615, -30088339, 690623, -31536088, -10406836, 8317860, 12352766 }, - { 18200138, -14475911, -33087759, -2696619, -23702521, -9102511, -23552096, -2287550, 20712163, 6719373 }, - }, - { - { 26656208, 6075253, -7858556, 1886072, -28344043, 4262326, 11117530, -3763210, 26224235, -3297458 }, - { -17168938, -14854097, -3395676, -16369877, -19954045, 14050420, 21728352, 9493610, 18620611, -16428628 }, - { -13323321, 13325349, 11432106, 5964811, 18609221, 6062965, -5269471, -9725556, -30701573, -16479657 }, - }, - { - { -23860538, -11233159, 26961357, 1640861, -32413112, -16737940, 12248509, -5240639, 13735342, 1934062 }, - { 25089769, 6742589, 17081145, -13406266, 21909293, -16067981, -15136294, -3765346, -21277997, 5473616 }, - { 31883677, -7961101, 1083432, -11572403, 22828471, 13290673, -7125085, 12469656, 29111212, -5451014 }, - }, - { - { 24244947, -15050407, -26262976, 2791540, -14997599, 16666678, 24367466, 6388839, -10295587, 452383 }, - { -25640782, -3417841, 5217916, 16224624, 19987036, -4082269, -24236251, -5915248, 15766062, 8407814 }, - { -20406999, 13990231, 15495425, 16395525, 5377168, 15166495, -8917023, -4388953, -8067909, 2276718 }, - }, - { - { 30157918, 12924066, -17712050, 9245753, 19895028, 3368142, -23827587, 5096219, 22740376, -7303417 }, - { 2041139, -14256350, 7783687, 13876377, -25946985, -13352459, 24051124, 13742383, -15637599, 13295222 }, - { 33338237, -8505733, 12532113, 7977527, 9106186, -1715251, -17720195, -4612972, -4451357, -14669444 }, - }, - { - { -20045281, 5454097, -14346548, 6447146, 28862071, 1883651, -2469266, -4141880, 7770569, 9620597 }, - { 23208068, 7979712, 33071466, 8149229, 1758231, -10834995, 30945528, -1694323, -33502340, -14767970 }, - { 1439958, -16270480, -1079989, -793782, 4625402, 10647766, -5043801, 1220118, 30494170, -11440799 }, - }, - { - { -5037580, -13028295, -2970559, -3061767, 15640974, -6701666, -26739026, 926050, -1684339, -13333647 }, - { 13908495, -3549272, 30919928, -6273825, -21521863, 7989039, 9021034, 9078865, 3353509, 4033511 }, - { -29663431, -15113610, 32259991, -344482, 24295849, -12912123, 23161163, 8839127, 27485041, 7356032 }, - }, - }, - { - { - { 9661027, 705443, 11980065, -5370154, -1628543, 14661173, -6346142, 2625015, 28431036, -16771834 }, - { -23839233, -8311415, -25945511, 7480958, -17681669, -8354183, -22545972, 14150565, 15970762, 4099461 }, - { 29262576, 16756590, 26350592, -8793563, 8529671, -11208050, 13617293, -9937143, 11465739, 8317062 }, - }, - { - { -25493081, -6962928, 32500200, -9419051, -23038724, -2302222, 14898637, 3848455, 20969334, -5157516 }, - { -20384450, -14347713, -18336405, 13884722, -33039454, 2842114, -21610826, -3649888, 11177095, 14989547 }, - { -24496721, -11716016, 16959896, 2278463, 12066309, 10137771, 13515641, 2581286, -28487508, 9930240 }, - }, - { - { -17751622, -2097826, 16544300, -13009300, -15914807, -14949081, 18345767, -13403753, 16291481, -5314038 }, - { -33229194, 2553288, 32678213, 9875984, 8534129, 6889387, -9676774, 6957617, 4368891, 9788741 }, - { 16660756, 7281060, -10830758, 12911820, 20108584, -8101676, -21722536, -8613148, 16250552, -11111103 }, - }, - { - { -19765507, 2390526, -16551031, 14161980, 1905286, 6414907, 4689584, 10604807, -30190403, 4782747 }, - { -1354539, 14736941, -7367442, -13292886, 7710542, -14155590, -9981571, 4383045, 22546403, 437323 }, - { 31665577, -12180464, -16186830, 1491339, -18368625, 3294682, 27343084, 2786261, -30633590, -14097016 }, - }, - { - { -14467279, -683715, -33374107, 7448552, 19294360, 14334329, -19690631, 2355319, -19284671, -6114373 }, - { 15121312, -15796162, 6377020, -6031361, -10798111, -12957845, 18952177, 15496498, -29380133, 11754228 }, - { -2637277, -13483075, 8488727, -14303896, 12728761, -1622493, 7141596, 11724556, 22761615, -10134141 }, - }, - { - { 16918416, 11729663, -18083579, 3022987, -31015732, -13339659, -28741185, -12227393, 32851222, 11717399 }, - { 11166634, 7338049, -6722523, 4531520, -29468672, -7302055, 31474879, 3483633, -1193175, -4030831 }, - { -185635, 9921305, 31456609, -13536438, -12013818, 13348923, 33142652, 6546660, -19985279, -3948376 }, - }, - { - { -32460596, 11266712, -11197107, -7899103, 31703694, 3855903, -8537131, -12833048, -30772034, -15486313 }, - { -18006477, 12709068, 3991746, -6479188, -21491523, -10550425, -31135347, -16049879, 10928917, 3011958 }, - { -6957757, -15594337, 31696059, 334240, 29576716, 14796075, -30831056, -12805180, 18008031, 10258577 }, - }, - { - { -22448644, 15655569, 7018479, -4410003, -30314266, -1201591, -1853465, 1367120, 25127874, 6671743 }, - { 29701166, -14373934, -10878120, 9279288, -17568, 13127210, 21382910, 11042292, 25838796, 4642684 }, - { -20430234, 14955537, -24126347, 8124619, -5369288, -5990470, 30468147, -13900640, 18423289, 4177476 }, - }, - }, -}; diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.c deleted file mode 100644 index ca5bad2ca..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.c +++ /dev/null @@ -1,809 +0,0 @@ -#include "fixedint.h" -#include "sc.h" - -static uint64_t load_3(const unsigned char *in) { - uint64_t result; - - result = (uint64_t) in[0]; - result |= ((uint64_t) in[1]) << 8; - result |= ((uint64_t) in[2]) << 16; - - return result; -} - -static uint64_t load_4(const unsigned char *in) { - uint64_t result; - - result = (uint64_t) in[0]; - result |= ((uint64_t) in[1]) << 8; - result |= ((uint64_t) in[2]) << 16; - result |= ((uint64_t) in[3]) << 24; - - return result; -} - -/* -Input: - s[0]+256*s[1]+...+256^63*s[63] = s - -Output: - s[0]+256*s[1]+...+256^31*s[31] = s mod l - where l = 2^252 + 27742317777372353535851937790883648493. - Overwrites s in place. -*/ - -void sc_reduce(unsigned char *s) { - int64_t s0 = 2097151 & load_3(s); - int64_t s1 = 2097151 & (load_4(s + 2) >> 5); - int64_t s2 = 2097151 & (load_3(s + 5) >> 2); - int64_t s3 = 2097151 & (load_4(s + 7) >> 7); - int64_t s4 = 2097151 & (load_4(s + 10) >> 4); - int64_t s5 = 2097151 & (load_3(s + 13) >> 1); - int64_t s6 = 2097151 & (load_4(s + 15) >> 6); - int64_t s7 = 2097151 & (load_3(s + 18) >> 3); - int64_t s8 = 2097151 & load_3(s + 21); - int64_t s9 = 2097151 & (load_4(s + 23) >> 5); - int64_t s10 = 2097151 & (load_3(s + 26) >> 2); - int64_t s11 = 2097151 & (load_4(s + 28) >> 7); - int64_t s12 = 2097151 & (load_4(s + 31) >> 4); - int64_t s13 = 2097151 & (load_3(s + 34) >> 1); - int64_t s14 = 2097151 & (load_4(s + 36) >> 6); - int64_t s15 = 2097151 & (load_3(s + 39) >> 3); - int64_t s16 = 2097151 & load_3(s + 42); - int64_t s17 = 2097151 & (load_4(s + 44) >> 5); - int64_t s18 = 2097151 & (load_3(s + 47) >> 2); - int64_t s19 = 2097151 & (load_4(s + 49) >> 7); - int64_t s20 = 2097151 & (load_4(s + 52) >> 4); - int64_t s21 = 2097151 & (load_3(s + 55) >> 1); - int64_t s22 = 2097151 & (load_4(s + 57) >> 6); - int64_t s23 = (load_4(s + 60) >> 3); - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - int64_t carry10; - int64_t carry11; - int64_t carry12; - int64_t carry13; - int64_t carry14; - int64_t carry15; - int64_t carry16; - - s11 += s23 * 666643; - s12 += s23 * 470296; - s13 += s23 * 654183; - s14 -= s23 * 997805; - s15 += s23 * 136657; - s16 -= s23 * 683901; - s23 = 0; - s10 += s22 * 666643; - s11 += s22 * 470296; - s12 += s22 * 654183; - s13 -= s22 * 997805; - s14 += s22 * 136657; - s15 -= s22 * 683901; - s22 = 0; - s9 += s21 * 666643; - s10 += s21 * 470296; - s11 += s21 * 654183; - s12 -= s21 * 997805; - s13 += s21 * 136657; - s14 -= s21 * 683901; - s21 = 0; - s8 += s20 * 666643; - s9 += s20 * 470296; - s10 += s20 * 654183; - s11 -= s20 * 997805; - s12 += s20 * 136657; - s13 -= s20 * 683901; - s20 = 0; - s7 += s19 * 666643; - s8 += s19 * 470296; - s9 += s19 * 654183; - s10 -= s19 * 997805; - s11 += s19 * 136657; - s12 -= s19 * 683901; - s19 = 0; - s6 += s18 * 666643; - s7 += s18 * 470296; - s8 += s18 * 654183; - s9 -= s18 * 997805; - s10 += s18 * 136657; - s11 -= s18 * 683901; - s18 = 0; - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 << 21; - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 << 21; - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 << 21; - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 << 21; - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 << 21; - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 << 21; - s5 += s17 * 666643; - s6 += s17 * 470296; - s7 += s17 * 654183; - s8 -= s17 * 997805; - s9 += s17 * 136657; - s10 -= s17 * 683901; - s17 = 0; - s4 += s16 * 666643; - s5 += s16 * 470296; - s6 += s16 * 654183; - s7 -= s16 * 997805; - s8 += s16 * 136657; - s9 -= s16 * 683901; - s16 = 0; - s3 += s15 * 666643; - s4 += s15 * 470296; - s5 += s15 * 654183; - s6 -= s15 * 997805; - s7 += s15 * 136657; - s8 -= s15 * 683901; - s15 = 0; - s2 += s14 * 666643; - s3 += s14 * 470296; - s4 += s14 * 654183; - s5 -= s14 * 997805; - s6 += s14 * 136657; - s7 -= s14 * 683901; - s14 = 0; - s1 += s13 * 666643; - s2 += s13 * 470296; - s3 += s13 * 654183; - s4 -= s13 * 997805; - s5 += s13 * 136657; - s6 -= s13 * 683901; - s13 = 0; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 << 21; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry11 = s11 >> 21; - s12 += carry11; - s11 -= carry11 << 21; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 << 21; - - s[0] = (unsigned char) (s0 >> 0); - s[1] = (unsigned char) (s0 >> 8); - s[2] = (unsigned char) ((s0 >> 16) | (s1 << 5)); - s[3] = (unsigned char) (s1 >> 3); - s[4] = (unsigned char) (s1 >> 11); - s[5] = (unsigned char) ((s1 >> 19) | (s2 << 2)); - s[6] = (unsigned char) (s2 >> 6); - s[7] = (unsigned char) ((s2 >> 14) | (s3 << 7)); - s[8] = (unsigned char) (s3 >> 1); - s[9] = (unsigned char) (s3 >> 9); - s[10] = (unsigned char) ((s3 >> 17) | (s4 << 4)); - s[11] = (unsigned char) (s4 >> 4); - s[12] = (unsigned char) (s4 >> 12); - s[13] = (unsigned char) ((s4 >> 20) | (s5 << 1)); - s[14] = (unsigned char) (s5 >> 7); - s[15] = (unsigned char) ((s5 >> 15) | (s6 << 6)); - s[16] = (unsigned char) (s6 >> 2); - s[17] = (unsigned char) (s6 >> 10); - s[18] = (unsigned char) ((s6 >> 18) | (s7 << 3)); - s[19] = (unsigned char) (s7 >> 5); - s[20] = (unsigned char) (s7 >> 13); - s[21] = (unsigned char) (s8 >> 0); - s[22] = (unsigned char) (s8 >> 8); - s[23] = (unsigned char) ((s8 >> 16) | (s9 << 5)); - s[24] = (unsigned char) (s9 >> 3); - s[25] = (unsigned char) (s9 >> 11); - s[26] = (unsigned char) ((s9 >> 19) | (s10 << 2)); - s[27] = (unsigned char) (s10 >> 6); - s[28] = (unsigned char) ((s10 >> 14) | (s11 << 7)); - s[29] = (unsigned char) (s11 >> 1); - s[30] = (unsigned char) (s11 >> 9); - s[31] = (unsigned char) (s11 >> 17); -} - - - -/* -Input: - a[0]+256*a[1]+...+256^31*a[31] = a - b[0]+256*b[1]+...+256^31*b[31] = b - c[0]+256*c[1]+...+256^31*c[31] = c - -Output: - s[0]+256*s[1]+...+256^31*s[31] = (ab+c) mod l - where l = 2^252 + 27742317777372353535851937790883648493. -*/ - -void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c) { - int64_t a0 = 2097151 & load_3(a); - int64_t a1 = 2097151 & (load_4(a + 2) >> 5); - int64_t a2 = 2097151 & (load_3(a + 5) >> 2); - int64_t a3 = 2097151 & (load_4(a + 7) >> 7); - int64_t a4 = 2097151 & (load_4(a + 10) >> 4); - int64_t a5 = 2097151 & (load_3(a + 13) >> 1); - int64_t a6 = 2097151 & (load_4(a + 15) >> 6); - int64_t a7 = 2097151 & (load_3(a + 18) >> 3); - int64_t a8 = 2097151 & load_3(a + 21); - int64_t a9 = 2097151 & (load_4(a + 23) >> 5); - int64_t a10 = 2097151 & (load_3(a + 26) >> 2); - int64_t a11 = (load_4(a + 28) >> 7); - int64_t b0 = 2097151 & load_3(b); - int64_t b1 = 2097151 & (load_4(b + 2) >> 5); - int64_t b2 = 2097151 & (load_3(b + 5) >> 2); - int64_t b3 = 2097151 & (load_4(b + 7) >> 7); - int64_t b4 = 2097151 & (load_4(b + 10) >> 4); - int64_t b5 = 2097151 & (load_3(b + 13) >> 1); - int64_t b6 = 2097151 & (load_4(b + 15) >> 6); - int64_t b7 = 2097151 & (load_3(b + 18) >> 3); - int64_t b8 = 2097151 & load_3(b + 21); - int64_t b9 = 2097151 & (load_4(b + 23) >> 5); - int64_t b10 = 2097151 & (load_3(b + 26) >> 2); - int64_t b11 = (load_4(b + 28) >> 7); - int64_t c0 = 2097151 & load_3(c); - int64_t c1 = 2097151 & (load_4(c + 2) >> 5); - int64_t c2 = 2097151 & (load_3(c + 5) >> 2); - int64_t c3 = 2097151 & (load_4(c + 7) >> 7); - int64_t c4 = 2097151 & (load_4(c + 10) >> 4); - int64_t c5 = 2097151 & (load_3(c + 13) >> 1); - int64_t c6 = 2097151 & (load_4(c + 15) >> 6); - int64_t c7 = 2097151 & (load_3(c + 18) >> 3); - int64_t c8 = 2097151 & load_3(c + 21); - int64_t c9 = 2097151 & (load_4(c + 23) >> 5); - int64_t c10 = 2097151 & (load_3(c + 26) >> 2); - int64_t c11 = (load_4(c + 28) >> 7); - int64_t s0; - int64_t s1; - int64_t s2; - int64_t s3; - int64_t s4; - int64_t s5; - int64_t s6; - int64_t s7; - int64_t s8; - int64_t s9; - int64_t s10; - int64_t s11; - int64_t s12; - int64_t s13; - int64_t s14; - int64_t s15; - int64_t s16; - int64_t s17; - int64_t s18; - int64_t s19; - int64_t s20; - int64_t s21; - int64_t s22; - int64_t s23; - int64_t carry0; - int64_t carry1; - int64_t carry2; - int64_t carry3; - int64_t carry4; - int64_t carry5; - int64_t carry6; - int64_t carry7; - int64_t carry8; - int64_t carry9; - int64_t carry10; - int64_t carry11; - int64_t carry12; - int64_t carry13; - int64_t carry14; - int64_t carry15; - int64_t carry16; - int64_t carry17; - int64_t carry18; - int64_t carry19; - int64_t carry20; - int64_t carry21; - int64_t carry22; - - s0 = c0 + a0 * b0; - s1 = c1 + a0 * b1 + a1 * b0; - s2 = c2 + a0 * b2 + a1 * b1 + a2 * b0; - s3 = c3 + a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0; - s4 = c4 + a0 * b4 + a1 * b3 + a2 * b2 + a3 * b1 + a4 * b0; - s5 = c5 + a0 * b5 + a1 * b4 + a2 * b3 + a3 * b2 + a4 * b1 + a5 * b0; - s6 = c6 + a0 * b6 + a1 * b5 + a2 * b4 + a3 * b3 + a4 * b2 + a5 * b1 + a6 * b0; - s7 = c7 + a0 * b7 + a1 * b6 + a2 * b5 + a3 * b4 + a4 * b3 + a5 * b2 + a6 * b1 + a7 * b0; - s8 = c8 + a0 * b8 + a1 * b7 + a2 * b6 + a3 * b5 + a4 * b4 + a5 * b3 + a6 * b2 + a7 * b1 + a8 * b0; - s9 = c9 + a0 * b9 + a1 * b8 + a2 * b7 + a3 * b6 + a4 * b5 + a5 * b4 + a6 * b3 + a7 * b2 + a8 * b1 + a9 * b0; - s10 = c10 + a0 * b10 + a1 * b9 + a2 * b8 + a3 * b7 + a4 * b6 + a5 * b5 + a6 * b4 + a7 * b3 + a8 * b2 + a9 * b1 + a10 * b0; - s11 = c11 + a0 * b11 + a1 * b10 + a2 * b9 + a3 * b8 + a4 * b7 + a5 * b6 + a6 * b5 + a7 * b4 + a8 * b3 + a9 * b2 + a10 * b1 + a11 * b0; - s12 = a1 * b11 + a2 * b10 + a3 * b9 + a4 * b8 + a5 * b7 + a6 * b6 + a7 * b5 + a8 * b4 + a9 * b3 + a10 * b2 + a11 * b1; - s13 = a2 * b11 + a3 * b10 + a4 * b9 + a5 * b8 + a6 * b7 + a7 * b6 + a8 * b5 + a9 * b4 + a10 * b3 + a11 * b2; - s14 = a3 * b11 + a4 * b10 + a5 * b9 + a6 * b8 + a7 * b7 + a8 * b6 + a9 * b5 + a10 * b4 + a11 * b3; - s15 = a4 * b11 + a5 * b10 + a6 * b9 + a7 * b8 + a8 * b7 + a9 * b6 + a10 * b5 + a11 * b4; - s16 = a5 * b11 + a6 * b10 + a7 * b9 + a8 * b8 + a9 * b7 + a10 * b6 + a11 * b5; - s17 = a6 * b11 + a7 * b10 + a8 * b9 + a9 * b8 + a10 * b7 + a11 * b6; - s18 = a7 * b11 + a8 * b10 + a9 * b9 + a10 * b8 + a11 * b7; - s19 = a8 * b11 + a9 * b10 + a10 * b9 + a11 * b8; - s20 = a9 * b11 + a10 * b10 + a11 * b9; - s21 = a10 * b11 + a11 * b10; - s22 = a11 * b11; - s23 = 0; - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 << 21; - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 << 21; - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 << 21; - carry18 = (s18 + (1 << 20)) >> 21; - s19 += carry18; - s18 -= carry18 << 21; - carry20 = (s20 + (1 << 20)) >> 21; - s21 += carry20; - s20 -= carry20 << 21; - carry22 = (s22 + (1 << 20)) >> 21; - s23 += carry22; - s22 -= carry22 << 21; - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 << 21; - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 << 21; - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 << 21; - carry17 = (s17 + (1 << 20)) >> 21; - s18 += carry17; - s17 -= carry17 << 21; - carry19 = (s19 + (1 << 20)) >> 21; - s20 += carry19; - s19 -= carry19 << 21; - carry21 = (s21 + (1 << 20)) >> 21; - s22 += carry21; - s21 -= carry21 << 21; - s11 += s23 * 666643; - s12 += s23 * 470296; - s13 += s23 * 654183; - s14 -= s23 * 997805; - s15 += s23 * 136657; - s16 -= s23 * 683901; - s23 = 0; - s10 += s22 * 666643; - s11 += s22 * 470296; - s12 += s22 * 654183; - s13 -= s22 * 997805; - s14 += s22 * 136657; - s15 -= s22 * 683901; - s22 = 0; - s9 += s21 * 666643; - s10 += s21 * 470296; - s11 += s21 * 654183; - s12 -= s21 * 997805; - s13 += s21 * 136657; - s14 -= s21 * 683901; - s21 = 0; - s8 += s20 * 666643; - s9 += s20 * 470296; - s10 += s20 * 654183; - s11 -= s20 * 997805; - s12 += s20 * 136657; - s13 -= s20 * 683901; - s20 = 0; - s7 += s19 * 666643; - s8 += s19 * 470296; - s9 += s19 * 654183; - s10 -= s19 * 997805; - s11 += s19 * 136657; - s12 -= s19 * 683901; - s19 = 0; - s6 += s18 * 666643; - s7 += s18 * 470296; - s8 += s18 * 654183; - s9 -= s18 * 997805; - s10 += s18 * 136657; - s11 -= s18 * 683901; - s18 = 0; - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry12 = (s12 + (1 << 20)) >> 21; - s13 += carry12; - s12 -= carry12 << 21; - carry14 = (s14 + (1 << 20)) >> 21; - s15 += carry14; - s14 -= carry14 << 21; - carry16 = (s16 + (1 << 20)) >> 21; - s17 += carry16; - s16 -= carry16 << 21; - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 << 21; - carry13 = (s13 + (1 << 20)) >> 21; - s14 += carry13; - s13 -= carry13 << 21; - carry15 = (s15 + (1 << 20)) >> 21; - s16 += carry15; - s15 -= carry15 << 21; - s5 += s17 * 666643; - s6 += s17 * 470296; - s7 += s17 * 654183; - s8 -= s17 * 997805; - s9 += s17 * 136657; - s10 -= s17 * 683901; - s17 = 0; - s4 += s16 * 666643; - s5 += s16 * 470296; - s6 += s16 * 654183; - s7 -= s16 * 997805; - s8 += s16 * 136657; - s9 -= s16 * 683901; - s16 = 0; - s3 += s15 * 666643; - s4 += s15 * 470296; - s5 += s15 * 654183; - s6 -= s15 * 997805; - s7 += s15 * 136657; - s8 -= s15 * 683901; - s15 = 0; - s2 += s14 * 666643; - s3 += s14 * 470296; - s4 += s14 * 654183; - s5 -= s14 * 997805; - s6 += s14 * 136657; - s7 -= s14 * 683901; - s14 = 0; - s1 += s13 * 666643; - s2 += s13 * 470296; - s3 += s13 * 654183; - s4 -= s13 * 997805; - s5 += s13 * 136657; - s6 -= s13 * 683901; - s13 = 0; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = (s0 + (1 << 20)) >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry2 = (s2 + (1 << 20)) >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry4 = (s4 + (1 << 20)) >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry6 = (s6 + (1 << 20)) >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry8 = (s8 + (1 << 20)) >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry10 = (s10 + (1 << 20)) >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry1 = (s1 + (1 << 20)) >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry3 = (s3 + (1 << 20)) >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry5 = (s5 + (1 << 20)) >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry7 = (s7 + (1 << 20)) >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry9 = (s9 + (1 << 20)) >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry11 = (s11 + (1 << 20)) >> 21; - s12 += carry11; - s11 -= carry11 << 21; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 << 21; - carry11 = s11 >> 21; - s12 += carry11; - s11 -= carry11 << 21; - s0 += s12 * 666643; - s1 += s12 * 470296; - s2 += s12 * 654183; - s3 -= s12 * 997805; - s4 += s12 * 136657; - s5 -= s12 * 683901; - s12 = 0; - carry0 = s0 >> 21; - s1 += carry0; - s0 -= carry0 << 21; - carry1 = s1 >> 21; - s2 += carry1; - s1 -= carry1 << 21; - carry2 = s2 >> 21; - s3 += carry2; - s2 -= carry2 << 21; - carry3 = s3 >> 21; - s4 += carry3; - s3 -= carry3 << 21; - carry4 = s4 >> 21; - s5 += carry4; - s4 -= carry4 << 21; - carry5 = s5 >> 21; - s6 += carry5; - s5 -= carry5 << 21; - carry6 = s6 >> 21; - s7 += carry6; - s6 -= carry6 << 21; - carry7 = s7 >> 21; - s8 += carry7; - s7 -= carry7 << 21; - carry8 = s8 >> 21; - s9 += carry8; - s8 -= carry8 << 21; - carry9 = s9 >> 21; - s10 += carry9; - s9 -= carry9 << 21; - carry10 = s10 >> 21; - s11 += carry10; - s10 -= carry10 << 21; - - s[0] = (unsigned char) (s0 >> 0); - s[1] = (unsigned char) (s0 >> 8); - s[2] = (unsigned char) ((s0 >> 16) | (s1 << 5)); - s[3] = (unsigned char) (s1 >> 3); - s[4] = (unsigned char) (s1 >> 11); - s[5] = (unsigned char) ((s1 >> 19) | (s2 << 2)); - s[6] = (unsigned char) (s2 >> 6); - s[7] = (unsigned char) ((s2 >> 14) | (s3 << 7)); - s[8] = (unsigned char) (s3 >> 1); - s[9] = (unsigned char) (s3 >> 9); - s[10] = (unsigned char) ((s3 >> 17) | (s4 << 4)); - s[11] = (unsigned char) (s4 >> 4); - s[12] = (unsigned char) (s4 >> 12); - s[13] = (unsigned char) ((s4 >> 20) | (s5 << 1)); - s[14] = (unsigned char) (s5 >> 7); - s[15] = (unsigned char) ((s5 >> 15) | (s6 << 6)); - s[16] = (unsigned char) (s6 >> 2); - s[17] = (unsigned char) (s6 >> 10); - s[18] = (unsigned char) ((s6 >> 18) | (s7 << 3)); - s[19] = (unsigned char) (s7 >> 5); - s[20] = (unsigned char) (s7 >> 13); - s[21] = (unsigned char) (s8 >> 0); - s[22] = (unsigned char) (s8 >> 8); - s[23] = (unsigned char) ((s8 >> 16) | (s9 << 5)); - s[24] = (unsigned char) (s9 >> 3); - s[25] = (unsigned char) (s9 >> 11); - s[26] = (unsigned char) ((s9 >> 19) | (s10 << 2)); - s[27] = (unsigned char) (s10 >> 6); - s[28] = (unsigned char) ((s10 >> 14) | (s11 << 7)); - s[29] = (unsigned char) (s11 >> 1); - s[30] = (unsigned char) (s11 >> 9); - s[31] = (unsigned char) (s11 >> 17); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.h deleted file mode 100644 index e29e7fa5a..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/sc.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef SC_H -#define SC_H - -/* -The set of scalars is \Z/l -where l = 2^252 + 27742317777372353535851937790883648493. -*/ - -void sc_reduce(unsigned char *s); -void sc_muladd(unsigned char *s, const unsigned char *a, const unsigned char *b, const unsigned char *c); - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/seed.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/seed.c deleted file mode 100644 index 11a2e3ec4..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/seed.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "ed25519.h" - -#ifndef ED25519_NO_SEED - -#ifdef _WIN32 -#include -#include -#else -#include -#endif - -int ed25519_create_seed(unsigned char *seed) { -#ifdef _WIN32 - HCRYPTPROV prov; - - if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { - return 1; - } - - if (!CryptGenRandom(prov, 32, seed)) { - CryptReleaseContext(prov, 0); - return 1; - } - - CryptReleaseContext(prov, 0); -#else - FILE *f = fopen("/dev/urandom", "rb"); - - if (f == NULL) { - return 1; - } - - fread(seed, 1, 32, f); - fclose(f); -#endif - - return 0; -} - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.c deleted file mode 100644 index 29da81aed..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.c +++ /dev/null @@ -1,327 +0,0 @@ - -/* ------------------------------------------------------------------------- - * Works when compiled for either 32-bit or 64-bit targets, optimized for - * 64 bit. - * - * Canonical implementation of Init/Update/Finalize for SHA-3 byte input. - * - * SHA3-256, SHA3-384, SHA-512 are implemented. SHA-224 can easily be added. - * - * Based on code from http://keccak.noekeon.org/ . - * - * I place the code that I wrote into public domain, free to use. - * - * I would appreciate if you give credits to this work if you used it to - * write or test * your code. - * - * Aug 2015. Andrey Jivsov. crypto@brainhub.org - * ---------------------------------------------------------------------- */ - -#include -#include -#include -#include "sha3.h" - -#define SHA3_ASSERT( x ) -#if defined(_MSC_VER) -#define SHA3_TRACE( format, ...) -#define SHA3_TRACE_BUF( format, buf, l, ...) -#else -#define SHA3_TRACE(format, args...) -#define SHA3_TRACE_BUF(format, buf, l, args...) -#endif - -//#define SHA3_USE_KECCAK -/* - * Define SHA3_USE_KECCAK to run "pure" Keccak, as opposed to SHA3. - * The tests that this macro enables use the input and output from [Keccak] - * (see the reference below). The used test vectors aren't correct for SHA3, - * however, they are helpful to verify the implementation. - * SHA3_USE_KECCAK only changes one line of code in Finalize. - */ - -#if defined(_MSC_VER) -#define SHA3_CONST(x) x -#else -#define SHA3_CONST(x) x##L -#endif - -/* The following state definition should normally be in a separate - * header file - */ - - - -static const uint64_t keccakf_rndc[24] = { - SHA3_CONST(0x0000000000000001UL), SHA3_CONST(0x0000000000008082UL), - SHA3_CONST(0x800000000000808aUL), SHA3_CONST(0x8000000080008000UL), - SHA3_CONST(0x000000000000808bUL), SHA3_CONST(0x0000000080000001UL), - SHA3_CONST(0x8000000080008081UL), SHA3_CONST(0x8000000000008009UL), - SHA3_CONST(0x000000000000008aUL), SHA3_CONST(0x0000000000000088UL), - SHA3_CONST(0x0000000080008009UL), SHA3_CONST(0x000000008000000aUL), - SHA3_CONST(0x000000008000808bUL), SHA3_CONST(0x800000000000008bUL), - SHA3_CONST(0x8000000000008089UL), SHA3_CONST(0x8000000000008003UL), - SHA3_CONST(0x8000000000008002UL), SHA3_CONST(0x8000000000000080UL), - SHA3_CONST(0x000000000000800aUL), SHA3_CONST(0x800000008000000aUL), - SHA3_CONST(0x8000000080008081UL), SHA3_CONST(0x8000000000008080UL), - SHA3_CONST(0x0000000080000001UL), SHA3_CONST(0x8000000080008008UL) -}; - -static const unsigned keccakf_rotc[24] = { - 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, 27, 41, 56, 8, 25, 43, 62, - 18, 39, 61, 20, 44 -}; - -static const unsigned keccakf_piln[24] = { - 10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, 15, 23, 19, 13, 12, 2, 20, - 14, 22, 9, 6, 1 -}; - -/* generally called after SHA3_KECCAK_SPONGE_WORDS-ctx->capacityWords words - * are XORed into the state s - */ -static void -keccakf(uint64_t s[25]) -{ - int i, j, round; - uint64_t t, bc[5]; -#define KECCAK_ROUNDS 24 - - for(round = 0; round < KECCAK_ROUNDS; round++) { - - /* Theta */ - for(i = 0; i < 5; i++) - bc[i] = s[i] ^ s[i + 5] ^ s[i + 10] ^ s[i + 15] ^ s[i + 20]; - - for(i = 0; i < 5; i++) { - t = bc[(i + 4) % 5] ^ SHA3_ROTL64(bc[(i + 1) % 5], 1); - for(j = 0; j < 25; j += 5) - s[j + i] ^= t; - } - - /* Rho Pi */ - t = s[1]; - for(i = 0; i < 24; i++) { - j = keccakf_piln[i]; - bc[0] = s[j]; - s[j] = SHA3_ROTL64(t, keccakf_rotc[i]); - t = bc[0]; - } - - /* Chi */ - for(j = 0; j < 25; j += 5) { - for(i = 0; i < 5; i++) - bc[i] = s[j + i]; - for(i = 0; i < 5; i++) - s[j + i] ^= (~bc[(i + 1) % 5]) & bc[(i + 2) % 5]; - } - - /* Iota */ - s[0] ^= keccakf_rndc[round]; - } -} - -/* *************************** Public Inteface ************************ */ - -/* For Init or Reset call these: */ -void -sha3_Init256(void *priv) -{ - sha3_context *ctx = (sha3_context *) priv; - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 2 * 256 / (8 * sizeof(uint64_t)); - ctx->numOutputBytes = 32; -} - -void -sha3_Init384(void *priv) -{ - sha3_context *ctx = (sha3_context *) priv; - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 2 * 384 / (8 * sizeof(uint64_t)); - ctx->numOutputBytes = 48; -} - -void -sha3_Init512(void *priv) -{ - sha3_context *ctx = (sha3_context *) priv; - memset(ctx, 0, sizeof(*ctx)); - ctx->capacityWords = 2 * 512 / (8 * sizeof(uint64_t)); - ctx->numOutputBytes = 64; -} - -void -sha3_Update(void *priv, void const *bufIn, size_t len) -{ - sha3_context *ctx = (sha3_context *) priv; - - /* 0...7 -- how much is needed to have a word */ - unsigned old_tail = (8 - ctx->byteIndex) & 7; - - size_t words; - unsigned tail; - size_t i; - - const uint8_t *buf = bufIn; - - SHA3_TRACE_BUF("called to update with:", buf, len); - - SHA3_ASSERT(ctx->byteIndex < 8); - SHA3_ASSERT(ctx->wordIndex < sizeof(ctx->s) / sizeof(ctx->s[0])); - - if(len < old_tail) { /* have no complete word or haven't started - * the word yet */ - SHA3_TRACE("because %d<%d, store it and return", (unsigned)len, - (unsigned)old_tail); - /* endian-independent code follows: */ - while (len--) - ctx->saved |= (uint64_t) (*(buf++)) << ((ctx->byteIndex++) * 8); - SHA3_ASSERT(ctx->byteIndex < 8); - return; - } - - if(old_tail) { /* will have one word to process */ - SHA3_TRACE("completing one word with %d bytes", (unsigned)old_tail); - /* endian-independent code follows: */ - len -= old_tail; - while (old_tail--) - ctx->saved |= (uint64_t) (*(buf++)) << ((ctx->byteIndex++) * 8); - - /* now ready to add saved to the sponge */ - ctx->s[ctx->wordIndex] ^= ctx->saved; - SHA3_ASSERT(ctx->byteIndex == 8); - ctx->byteIndex = 0; - ctx->saved = 0; - if(++ctx->wordIndex == - (SHA3_KECCAK_SPONGE_WORDS - ctx->capacityWords)) { - keccakf(ctx->s); - ctx->wordIndex = 0; - } - } - - /* now work in full words directly from input */ - - SHA3_ASSERT(ctx->byteIndex == 0); - - words = len / sizeof(uint64_t); - tail = len - words * sizeof(uint64_t); - - SHA3_TRACE("have %d full words to process", (unsigned)words); - - for(i = 0; i < words; i++, buf += sizeof(uint64_t)) { - const uint64_t t = (uint64_t) (buf[0]) | - ((uint64_t) (buf[1]) << 8 * 1) | - ((uint64_t) (buf[2]) << 8 * 2) | - ((uint64_t) (buf[3]) << 8 * 3) | - ((uint64_t) (buf[4]) << 8 * 4) | - ((uint64_t) (buf[5]) << 8 * 5) | - ((uint64_t) (buf[6]) << 8 * 6) | - ((uint64_t) (buf[7]) << 8 * 7); -#if defined(__x86_64__ ) || defined(__i386__) - SHA3_ASSERT(memcmp(&t, buf, 8) == 0); -#endif - ctx->s[ctx->wordIndex] ^= t; - if(++ctx->wordIndex == - (SHA3_KECCAK_SPONGE_WORDS - ctx->capacityWords)) { - keccakf(ctx->s); - ctx->wordIndex = 0; - } - } - - SHA3_TRACE("have %d bytes left to process, save them", (unsigned)tail); - - /* finally, save the partial word */ - SHA3_ASSERT(ctx->byteIndex == 0 && tail < 8); - while (tail--) { - SHA3_TRACE("Store byte %02x '%c'", *buf, *buf); - ctx->saved |= (uint64_t) (*(buf++)) << ((ctx->byteIndex++) * 8); - } - SHA3_ASSERT(ctx->byteIndex < 8); - SHA3_TRACE("Have saved=0x%016" PRIx64 " at the end", ctx->saved); -} - -/* This is simply the 'update' with the padding block. - * The padding block is 0x01 || 0x00* || 0x80. First 0x01 and last 0x80 - * bytes are always present, but they can be the same byte. - */ -void sha3_Finalize(void *priv, unsigned char *out) -{ - sha3_context *ctx = (sha3_context *) priv; - - SHA3_TRACE("called with %d bytes in the buffer", ctx->byteIndex); - - /* Append 2-bit suffix 01, per SHA-3 spec. Instead of 1 for padding we - * use 1<<2 below. The 0x02 below corresponds to the suffix 01. - * Overall, we feed 0, then 1, and finally 1 to start padding. Without - * M || 01, we would simply use 1 to start padding. */ - -#ifndef SHA3_USE_KECCAK - /* SHA3 version */ - ctx->s[ctx->wordIndex] ^= - (ctx->saved ^ ((uint64_t) ((uint64_t) (0x02 | (1 << 2)) << - ((ctx->byteIndex) * 8)))); -#else - /* For testing the "pure" Keccak version */ - ctx->s[ctx->wordIndex] ^= - (ctx->saved ^ ((uint64_t) ((uint64_t) 1 << (ctx->byteIndex * - 8)))); -#endif - - ctx->s[SHA3_KECCAK_SPONGE_WORDS - ctx->capacityWords - 1] ^= - SHA3_CONST(0x8000000000000000UL); - keccakf(ctx->s); - - /* Return first bytes of the ctx->s. This conversion is not needed for - * little-endian platforms e.g. wrap with #if !defined(__BYTE_ORDER__) - * || !defined(__ORDER_LITTLE_ENDIAN__) || \ - * __BYTE_ORDER__!=__ORDER_LITTLE_ENDIAN__ ... the conversion below ... - * #endif */ - { - unsigned i; - for(i = 0; i < SHA3_KECCAK_SPONGE_WORDS; i++) { - const unsigned t1 = (uint32_t) ctx->s[i]; - const unsigned t2 = (uint32_t) ((ctx->s[i] >> 16) >> 16); - ctx->sb[i * 8 + 0] = (uint8_t) (t1); - ctx->sb[i * 8 + 1] = (uint8_t) (t1 >> 8); - ctx->sb[i * 8 + 2] = (uint8_t) (t1 >> 16); - ctx->sb[i * 8 + 3] = (uint8_t) (t1 >> 24); - ctx->sb[i * 8 + 4] = (uint8_t) (t2); - ctx->sb[i * 8 + 5] = (uint8_t) (t2 >> 8); - ctx->sb[i * 8 + 6] = (uint8_t) (t2 >> 16); - ctx->sb[i * 8 + 7] = (uint8_t) (t2 >> 24); - } - } - - unsigned i; - for (i = 0; i < ctx->numOutputBytes; i++) { - out[i] = ctx->sb[i]; - } - SHA3_TRACE_BUF("Hash: (first 32 bytes)", ctx->sb, 256 / 8); - -} - - -void sha3_256(const unsigned char *message, size_t message_len, unsigned char *out) { - sha3_context ctx; - - sha3_Init256(&ctx); - sha3_Update(&ctx, message, message_len); - sha3_Finalize(&ctx, out); -} - -void sha3_384(const unsigned char *message, size_t message_len, unsigned char *out) { - sha3_context ctx; - - sha3_Init384(&ctx); - sha3_Update(&ctx, message, message_len); - sha3_Finalize(&ctx, out); -} - -void sha3_512(const unsigned char *message, size_t message_len, unsigned char *out) { - sha3_context ctx; - - sha3_Init512(&ctx); - sha3_Update(&ctx, message, message_len); - sha3_Finalize(&ctx, out); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.h b/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.h deleted file mode 100644 index 6be9f0cb4..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/sha3.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// sha3.h -// SpirtualCoin -// -// Created by Kaji Satoshi on 2016/09/07. -// Copyright © 2016年 Kaji Satoshi. All rights reserved. -// - -#ifndef sha3_h -#define sha3_h - -#include - -/* 'Words' here refers to uint64_t */ -#define SHA3_KECCAK_SPONGE_WORDS \ -(((1600)/8/*bits to byte*/)/sizeof(uint64_t)) - -/* 'Words' here refers to uint64_t */ - - -#ifndef SHA3_ROTL64 -#define SHA3_ROTL64(x, y) \ -(((x) << (y)) | ((x) >> ((sizeof(uint64_t)*8) - (y)))) -#endif - -typedef struct sha3_context_ { - uint64_t saved; /* the portion of the input message that we - * didn't consume yet */ - union { /* Keccak's state */ - uint64_t s[SHA3_KECCAK_SPONGE_WORDS]; - uint8_t sb[SHA3_KECCAK_SPONGE_WORDS * 8]; - }; - unsigned byteIndex; /* 0..7--the next byte after the set one - * (starts from 0; 0--none are buffered) */ - unsigned wordIndex; /* 0..24--the next word to integrate input - * (starts from 0) */ - unsigned capacityWords; - - unsigned numOutputBytes;/* the double size of the hash output in - * words (e.g. 16 for Keccak 512) */ -} sha3_context; - -void sha3_Init256(void *priv); -void sha3_Init384(void *priv); -void sha3_Init512(void *priv); -void sha3_Update(void *priv, void const *bufIn, size_t len); -void sha3_Finalize(void *priv, unsigned char *out); -void sha3_256(const unsigned char *message, size_t message_len, unsigned char *out); -void sha3_384(const unsigned char *message, size_t message_len, unsigned char *out); -void sha3_512(const unsigned char *message, size_t message_len, unsigned char *out); - -#endif diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/sign.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/sign.c deleted file mode 100644 index 3c1d78231..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/sign.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "ed25519.h" -#include "sha3.h" -#include "ge.h" -#include "sc.h" - - -void ed25519_sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key) { - sha3_context hash; - unsigned char hram[64]; - unsigned char r[64]; - ge_p3 R; - - - sha3_Init512(&hash); - sha3_Update(&hash, private_key + 32, 32); - sha3_Update(&hash, message, message_len); - sha3_Finalize(&hash, r); - - sc_reduce(r); - ge_scalarmult_base(&R, r); - ge_p3_tobytes(signature, &R); - - sha3_Init512(&hash); - sha3_Update(&hash, signature, 32); - sha3_Update(&hash, public_key, 32); - sha3_Update(&hash, message, message_len); - sha3_Finalize(&hash, hram); - - sc_reduce(hram); - sc_muladd(signature + 32, hram, private_key, r); -} diff --git a/Example/Pods/IrohaSwift/IrohaSwift/libs/verify.c b/Example/Pods/IrohaSwift/IrohaSwift/libs/verify.c deleted file mode 100644 index 73b5cca44..000000000 --- a/Example/Pods/IrohaSwift/IrohaSwift/libs/verify.c +++ /dev/null @@ -1,77 +0,0 @@ -#include "ed25519.h" -#include "sha3.h" -#include "ge.h" -#include "sc.h" - -static int consttime_equal(const unsigned char *x, const unsigned char *y) { - unsigned char r = 0; - - r = x[0] ^ y[0]; - #define F(i) r |= x[i] ^ y[i] - F(1); - F(2); - F(3); - F(4); - F(5); - F(6); - F(7); - F(8); - F(9); - F(10); - F(11); - F(12); - F(13); - F(14); - F(15); - F(16); - F(17); - F(18); - F(19); - F(20); - F(21); - F(22); - F(23); - F(24); - F(25); - F(26); - F(27); - F(28); - F(29); - F(30); - F(31); - #undef F - - return !r; -} - -int ed25519_verify(const unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key) { - unsigned char h[64]; - unsigned char checker[32]; - sha3_context hash; - ge_p3 A; - ge_p2 R; - - if (signature[63] & 224) { - return 0; - } - - if (ge_frombytes_negate_vartime(&A, public_key) != 0) { - return 0; - } - - sha3_Init512(&hash); - sha3_Update(&hash, signature, 32); - sha3_Update(&hash, public_key, 32); - sha3_Update(&hash, message, message_len); - sha3_Finalize(&hash, h); - - sc_reduce(h); - ge_double_scalarmult_vartime(&R, h, &A, signature + 32); - ge_tobytes(checker, &R); - - if (!consttime_equal(checker, signature)) { - return 0; - } - - return 1; -} diff --git a/Example/Pods/IrohaSwift/LICENSE b/Example/Pods/IrohaSwift/LICENSE deleted file mode 100644 index 8dada3eda..000000000 --- a/Example/Pods/IrohaSwift/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/Example/Pods/IrohaSwift/README.md b/Example/Pods/IrohaSwift/README.md deleted file mode 100644 index 0bfe02a81..000000000 --- a/Example/Pods/IrohaSwift/README.md +++ /dev/null @@ -1,142 +0,0 @@ -# いろはSwift(IrohaSwift) - -## What's is いろは(iroha)? -いろは(iroha) is [this](https://github.com/soramitsu/iroha). - -## Description -いろはSwift(IrohaSwift) is client swift library for using いろは(iroha). - -## Requirement -iOS 8.0+ -Xcode 8.0+ -Swift 3.0+ - -## Installation -* Clone this repository. -* [Download 1.0.0 α version release](https://github.com/soramitsu/IrohaSwift/releases/tag/1.0.0%CE%B1). -* [Feature]Install with pod. - -## Usage -### API -#### IrohaSwift.createKeyPair -```swift -import IrohaSwift - -let keypair = IrohaSwift.createKeyPair() -//===> keypair : (publicKey:String, privateKey:String) -``` -#### IrohaSwift.register - -```swift -let res = IrohaSwift.register( - keyPair: (publicKey:String, privateKey:String), - accessPoint: String, //ex)http://hoge.com - name: String - ) -//if connection successful -//===> res : [ -// "message": "successful", -// "status": 200, -// "uuid": String -// ] -``` - -#### iroha.getAccountInfo - -```swift -let res = IrohaSwift.getAccountInfo( - accessPoint: String, - uuid: String //IrohaSwift.register() returned uuid - ) -//if get successful -//===> res : [ -// "status": 200, -// "alias": String -// ] -``` -#### IrohaSwift.domainRegister - -```swift -let res = IrohaSwift.domainRegister( - accessPoint: String, - domain: String, //ex)ソラミツ株式会社 - keyPair: (publicKey:String, privateKey:String) - ) -//if domain regist successful -//===> res : [ -// "status": 200, -// "message": "Domain registered successfully." -// ] -``` - -#### IrohaSwift.getDomainList -Feature Works! - -#### IrohaSwift.createAsset - -```swift -let res = IrohaSwift.createAsset({ - accessPoint: String, - domain: String, - keyPair: (publicKey:String, privateKey:String), - name: String //ex)ソラミツコイン - ) -//if asset create successful -//===> res : [ -// "status": 200, -// "message": "Asset created successfully." -// ] -``` - -#### IrohaSwift.assetOperation - -```swift -let res = IrohaSwift.assetOperation( - accessPoint: String, - command: String, //ex)Transfer - assetUuid: String, - amount: String, - keyPair: (publicKey:String, privateKey:String), - receiver: String //receiver public key -) -//if asset transfer successful -//===> res : [ -// "status": 200, -// "message": "Asset transfer successfully." -// ] -``` - -#### IrohaSwift.getAssetList - -```swift -let res = IrohaSwift.getAssetList( - accessPoint: ip address or url, - domainName: domain name - ) -``` - -#### iroha.getAssetList -Feature Works! -```swift -let res = iroha.getAssetList({ - accessPoint: ip address or url, - domainName: domain name - }); -``` - -#### IrohaSwift.getTransaction - -```swift -let res = IrohaSwift.getTransaction({ - accessPoint: String, - uuid: String - ) -//if get transaction successful -//===> Feature Works! -``` - -## Author -[luca3104](https://github.com/luca3104) - -## License -Apatch 2.0 License diff --git a/Example/Pods/KeychainAccess/LICENSE b/Example/Pods/KeychainAccess/LICENSE deleted file mode 100644 index 7ab2a8ee4..000000000 --- a/Example/Pods/KeychainAccess/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 kishikawa katsumi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/Example/Pods/KeychainAccess/Lib/KeychainAccess/Keychain.swift b/Example/Pods/KeychainAccess/Lib/KeychainAccess/Keychain.swift deleted file mode 100644 index 2bd0d48ce..000000000 --- a/Example/Pods/KeychainAccess/Lib/KeychainAccess/Keychain.swift +++ /dev/null @@ -1,2889 +0,0 @@ -// -// Keychain.swift -// KeychainAccess -// -// Created by kishikawa katsumi on 2014/12/24. -// Copyright (c) 2014 kishikawa katsumi. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -import Foundation -import Security - -public let KeychainAccessErrorDomain = "com.kishikawakatsumi.KeychainAccess.error" - -public enum ItemClass { - case genericPassword - case internetPassword -} - -public enum ProtocolType { - case ftp - case ftpAccount - case http - case irc - case nntp - case pop3 - case smtp - case socks - case imap - case ldap - case appleTalk - case afp - case telnet - case ssh - case ftps - case https - case httpProxy - case httpsProxy - case ftpProxy - case smb - case rtsp - case rtspProxy - case daap - case eppc - case ipp - case nntps - case ldaps - case telnetS - case imaps - case ircs - case pop3S -} - -public enum AuthenticationType { - case ntlm - case msn - case dpa - case rpa - case httpBasic - case httpDigest - case htmlForm - case `default` -} - -public enum Accessibility { - /** - Item data can only be accessed - while the device is unlocked. This is recommended for items that only - need be accesible while the application is in the foreground. Items - with this attribute will migrate to a new device when using encrypted - backups. - */ - case whenUnlocked - - /** - Item data can only be - accessed once the device has been unlocked after a restart. This is - recommended for items that need to be accesible by background - applications. Items with this attribute will migrate to a new device - when using encrypted backups. - */ - case afterFirstUnlock - - /** - Item data can always be accessed - regardless of the lock state of the device. This is not recommended - for anything except system use. Items with this attribute will migrate - to a new device when using encrypted backups. - */ - case always - - /** - Item data can - only be accessed while the device is unlocked. This class is only - available if a passcode is set on the device. This is recommended for - items that only need to be accessible while the application is in the - foreground. Items with this attribute will never migrate to a new - device, so after a backup is restored to a new device, these items - will be missing. No items can be stored in this class on devices - without a passcode. Disabling the device passcode will cause all - items in this class to be deleted. - */ - @available(iOS 8.0, OSX 10.10, *) - case whenPasscodeSetThisDeviceOnly - - /** - Item data can only - be accessed while the device is unlocked. This is recommended for items - that only need be accesible while the application is in the foreground. - Items with this attribute will never migrate to a new device, so after - a backup is restored to a new device, these items will be missing. - */ - case whenUnlockedThisDeviceOnly - - /** - Item data can - only be accessed once the device has been unlocked after a restart. - This is recommended for items that need to be accessible by background - applications. Items with this attribute will never migrate to a new - device, so after a backup is restored to a new device these items will - be missing. - */ - case afterFirstUnlockThisDeviceOnly - - /** - Item data can always - be accessed regardless of the lock state of the device. This option - is not recommended for anything except system use. Items with this - attribute will never migrate to a new device, so after a backup is - restored to a new device, these items will be missing. - */ - case alwaysThisDeviceOnly -} - -public struct AuthenticationPolicy: OptionSet { - /** - User presence policy using Touch ID or Passcode. Touch ID does not - have to be available or enrolled. Item is still accessible by Touch ID - even if fingers are added or removed. - */ - @available(iOS 8.0, OSX 10.10, *) - @available(watchOS, unavailable) - public static let userPresence = AuthenticationPolicy(rawValue: 1 << 0) - - /** - Constraint: Touch ID (any finger). Touch ID must be available and - at least one finger must be enrolled. Item is still accessible by - Touch ID even if fingers are added or removed. - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let touchIDAny = AuthenticationPolicy(rawValue: 1 << 1) - - /** - Constraint: Touch ID from the set of currently enrolled fingers. - Touch ID must be available and at least one finger must be enrolled. - When fingers are added or removed, the item is invalidated. - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let touchIDCurrentSet = AuthenticationPolicy(rawValue: 1 << 3) - - /** - Constraint: Device passcode - */ - @available(iOS 9.0, OSX 10.11, *) - @available(watchOS, unavailable) - public static let devicePasscode = AuthenticationPolicy(rawValue: 1 << 4) - - /** - Constraint logic operation: when using more than one constraint, - at least one of them must be satisfied. - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let or = AuthenticationPolicy(rawValue: 1 << 14) - - /** - Constraint logic operation: when using more than one constraint, - all must be satisfied. - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let and = AuthenticationPolicy(rawValue: 1 << 15) - - /** - Create access control for private key operations (i.e. sign operation) - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let privateKeyUsage = AuthenticationPolicy(rawValue: 1 << 30) - - /** - Security: Application provided password for data encryption key generation. - This is not a constraint but additional item encryption mechanism. - */ - @available(iOS 9.0, *) - @available(OSX, unavailable) - @available(watchOS, unavailable) - public static let applicationPassword = AuthenticationPolicy(rawValue: 1 << 31) - - #if swift(>=2.3) - public let rawValue: UInt - - public init(rawValue: UInt) { - self.rawValue = rawValue - } - #else - public let rawValue: Int - - public init(rawValue: Int) { - self.rawValue = rawValue - } - #endif -} - -public struct Attributes { - public var `class`: String? { - return attributes[Class] as? String - } - public var data: Data? { - return attributes[ValueData] as? Data - } - public var ref: Data? { - return attributes[ValueRef] as? Data - } - public var persistentRef: Data? { - return attributes[ValuePersistentRef] as? Data - } - - public var accessible: String? { - return attributes[AttributeAccessible] as? String - } - public var accessControl: SecAccessControl? { - if #available(OSX 10.10, *) { - if let accessControl = attributes[AttributeAccessControl] { - return (accessControl as! SecAccessControl) - } - return nil - } else { - return nil - } - } - public var accessGroup: String? { - return attributes[AttributeAccessGroup] as? String - } - public var synchronizable: Bool? { - return attributes[AttributeSynchronizable] as? Bool - } - public var creationDate: Date? { - return attributes[AttributeCreationDate] as? Date - } - public var modificationDate: Date? { - return attributes[AttributeModificationDate] as? Date - } - public var attributeDescription: String? { - return attributes[AttributeDescription] as? String - } - public var comment: String? { - return attributes[AttributeComment] as? String - } - public var creator: String? { - return attributes[AttributeCreator] as? String - } - public var type: String? { - return attributes[AttributeType] as? String - } - public var label: String? { - return attributes[AttributeLabel] as? String - } - public var isInvisible: Bool? { - return attributes[AttributeIsInvisible] as? Bool - } - public var isNegative: Bool? { - return attributes[AttributeIsNegative] as? Bool - } - public var account: String? { - return attributes[AttributeAccount] as? String - } - public var service: String? { - return attributes[AttributeService] as? String - } - public var generic: Data? { - return attributes[AttributeGeneric] as? Data - } - public var securityDomain: String? { - return attributes[AttributeSecurityDomain] as? String - } - public var server: String? { - return attributes[AttributeServer] as? String - } - public var `protocol`: String? { - return attributes[AttributeProtocol] as? String - } - public var authenticationType: String? { - return attributes[AttributeAuthenticationType] as? String - } - public var port: Int? { - return attributes[AttributePort] as? Int - } - public var path: String? { - return attributes[AttributePath] as? String - } - - fileprivate let attributes: [String: Any] - - init(attributes: [String: Any]) { - self.attributes = attributes - } - - public subscript(key: String) -> Any? { - get { - return attributes[key] - } - } -} - -public final class Keychain { - public var itemClass: ItemClass { - return options.itemClass - } - - public var service: String { - return options.service - } - - public var accessGroup: String? { - return options.accessGroup - } - - public var server: URL { - return options.server - } - - public var protocolType: ProtocolType { - return options.protocolType - } - - public var authenticationType: AuthenticationType { - return options.authenticationType - } - - public var accessibility: Accessibility { - return options.accessibility - } - - @available(iOS 8.0, OSX 10.10, *) - @available(watchOS, unavailable) - public var authenticationPolicy: AuthenticationPolicy? { - return options.authenticationPolicy - } - - public var synchronizable: Bool { - return options.synchronizable - } - - public var label: String? { - return options.label - } - - public var comment: String? { - return options.comment - } - - @available(iOS 8.0, OSX 10.10, *) - @available(watchOS, unavailable) - public var authenticationPrompt: String? { - return options.authenticationPrompt - } - - fileprivate let options: Options - - // MARK: - - public convenience init() { - var options = Options() - if let bundleIdentifier = Bundle.main.bundleIdentifier { - options.service = bundleIdentifier - } - self.init(options) - } - - public convenience init(service: String) { - var options = Options() - options.service = service - self.init(options) - } - - public convenience init(accessGroup: String) { - var options = Options() - if let bundleIdentifier = Bundle.main.bundleIdentifier { - options.service = bundleIdentifier - } - options.accessGroup = accessGroup - self.init(options) - } - - public convenience init(service: String, accessGroup: String) { - var options = Options() - options.service = service - options.accessGroup = accessGroup - self.init(options) - } - - public convenience init(server: String, protocolType: ProtocolType, authenticationType: AuthenticationType = .default) { - self.init(server: URL(string: server)!, protocolType: protocolType, authenticationType: authenticationType) - } - - public convenience init(server: URL, protocolType: ProtocolType, authenticationType: AuthenticationType = .default) { - var options = Options() - options.itemClass = .internetPassword - options.server = server - options.protocolType = protocolType - options.authenticationType = authenticationType - self.init(options) - } - - fileprivate init(_ opts: Options) { - options = opts - } - - // MARK: - - public func accessibility(_ accessibility: Accessibility) -> Keychain { - var options = self.options - options.accessibility = accessibility - return Keychain(options) - } - - @available(iOS 8.0, OSX 10.10, *) - @available(watchOS, unavailable) - public func accessibility(_ accessibility: Accessibility, authenticationPolicy: AuthenticationPolicy) -> Keychain { - var options = self.options - options.accessibility = accessibility - options.authenticationPolicy = authenticationPolicy - return Keychain(options) - } - - public func synchronizable(_ synchronizable: Bool) -> Keychain { - var options = self.options - options.synchronizable = synchronizable - return Keychain(options) - } - - public func label(_ label: String) -> Keychain { - var options = self.options - options.label = label - return Keychain(options) - } - - public func comment(_ comment: String) -> Keychain { - var options = self.options - options.comment = comment - return Keychain(options) - } - - public func attributes(_ attributes: [String: Any]) -> Keychain { - var options = self.options - attributes.forEach { options.attributes.updateValue($1, forKey: $0) } - return Keychain(options) - } - - @available(iOS 8.0, OSX 10.10, *) - @available(watchOS, unavailable) - public func authenticationPrompt(_ authenticationPrompt: String) -> Keychain { - var options = self.options - options.authenticationPrompt = authenticationPrompt - return Keychain(options) - } - - // MARK: - - public func get(_ key: String) throws -> String? { - return try getString(key) - } - - public func getString(_ key: String) throws -> String? { - guard let data = try getData(key) else { - return nil - } - guard let string = String(data: data, encoding: .utf8) else { - print("failed to convert data to string") - throw Status.conversionError - } - return string - } - - public func getData(_ key: String) throws -> Data? { - var query = options.query() - - query[MatchLimit] = MatchLimitOne - query[ReturnData] = kCFBooleanTrue - - query[AttributeAccount] = key - - var result: AnyObject? - let status = SecItemCopyMatching(query as CFDictionary, &result) - - switch status { - case errSecSuccess: - guard let data = result as? Data else { - throw Status.unexpectedError - } - return data - case errSecItemNotFound: - return nil - default: - throw securityError(status: status) - } - } - - public func get(_ key: String, handler: (Attributes?) -> T) throws -> T { - var query = options.query() - - query[MatchLimit] = MatchLimitOne - - query[ReturnData] = kCFBooleanTrue - query[ReturnAttributes] = kCFBooleanTrue - query[ReturnRef] = kCFBooleanTrue - query[ReturnPersistentRef] = kCFBooleanTrue - - query[AttributeAccount] = key - - var result: AnyObject? - let status = SecItemCopyMatching(query as CFDictionary, &result) - - switch status { - case errSecSuccess: - guard let attributes = result as? [String: Any] else { - throw Status.unexpectedError - } - return handler(Attributes(attributes: attributes)) - case errSecItemNotFound: - return handler(nil) - default: - throw securityError(status: status) - } - } - - // MARK: - - public func set(_ value: String, key: String) throws { - guard let data = value.data(using: .utf8, allowLossyConversion: false) else { - print("failed to convert string to data") - throw Status.conversionError - } - try set(data, key: key) - } - - public func set(_ value: Data, key: String) throws { - var query = options.query() - query[AttributeAccount] = key - #if os(iOS) - if #available(iOS 9.0, *) { - query[UseAuthenticationUI] = UseAuthenticationUIFail - } else { - query[UseNoAuthenticationUI] = kCFBooleanTrue - } - #elseif os(OSX) - query[ReturnData] = kCFBooleanTrue - if #available(OSX 10.11, *) { - query[UseAuthenticationUI] = UseAuthenticationUIFail - } - #endif - - var status = SecItemCopyMatching(query as CFDictionary, nil) - switch status { - case errSecSuccess, errSecInteractionNotAllowed: - var query = options.query() - query[AttributeAccount] = key - - var (attributes, error) = options.attributes(key: nil, value: value) - if let error = error { - print(error.localizedDescription) - throw error - } - - options.attributes.forEach { attributes.updateValue($1, forKey: $0) } - - #if os(iOS) - if status == errSecInteractionNotAllowed && floor(NSFoundationVersionNumber) <= floor(NSFoundationVersionNumber_iOS_8_0) { - try remove(key) - try set(value, key: key) - } else { - status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary) - if status != errSecSuccess { - throw securityError(status: status) - } - } - #else - status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary) - if status != errSecSuccess { - throw securityError(status: status) - } - #endif - case errSecItemNotFound: - var (attributes, error) = options.attributes(key: key, value: value) - if let error = error { - print(error.localizedDescription) - throw error - } - - options.attributes.forEach { attributes.updateValue($1, forKey: $0) } - - status = SecItemAdd(attributes as CFDictionary, nil) - if status != errSecSuccess { - throw securityError(status: status) - } - default: - throw securityError(status: status) - } - } - - public subscript(key: String) -> String? { - get { - return (try? get(key)).flatMap { $0 } - } - - set { - if let value = newValue { - do { - try set(value, key: key) - } catch {} - } else { - do { - try remove(key) - } catch {} - } - } - } - - public subscript(string key: String) -> String? { - get { - return self[key] - } - - set { - self[key] = newValue - } - } - - public subscript(data key: String) -> Data? { - get { - return (try? getData(key)).flatMap { $0 } - } - - set { - if let value = newValue { - do { - try set(value, key: key) - } catch {} - } else { - do { - try remove(key) - } catch {} - } - } - } - - public subscript(attributes key: String) -> Attributes? { - get { - return (try? get(key) { $0 }).flatMap { $0 } - } - } - - // MARK: - - public func remove(_ key: String) throws { - var query = options.query() - query[AttributeAccount] = key - - let status = SecItemDelete(query as CFDictionary) - if status != errSecSuccess && status != errSecItemNotFound { - throw securityError(status: status) - } - } - - public func removeAll() throws { - var query = options.query() - #if !os(iOS) && !os(watchOS) && !os(tvOS) - query[MatchLimit] = MatchLimitAll - #endif - - let status = SecItemDelete(query as CFDictionary) - if status != errSecSuccess && status != errSecItemNotFound { - throw securityError(status: status) - } - } - - // MARK: - - public func contains(_ key: String) throws -> Bool { - var query = options.query() - query[AttributeAccount] = key - - let status = SecItemCopyMatching(query as CFDictionary, nil) - switch status { - case errSecSuccess: - return true - case errSecItemNotFound: - return false - default: - throw securityError(status: status) - } - } - - // MARK: - - public class func allKeys(_ itemClass: ItemClass) -> [(String, String)] { - var query = [String: Any]() - query[Class] = itemClass.rawValue - query[AttributeSynchronizable] = SynchronizableAny - query[MatchLimit] = MatchLimitAll - query[ReturnAttributes] = kCFBooleanTrue - - var result: AnyObject? - let status = SecItemCopyMatching(query as CFDictionary, &result) - - switch status { - case errSecSuccess: - if let items = result as? [[String: Any]] { - return prettify(itemClass: itemClass, items: items).map { - switch itemClass { - case .genericPassword: - return (($0["service"] ?? "") as! String, ($0["key"] ?? "") as! String) - case .internetPassword: - return (($0["server"] ?? "") as! String, ($0["key"] ?? "") as! String) - } - } - } - case errSecItemNotFound: - return [] - default: () - } - - securityError(status: status) - return [] - } - - public func allKeys() -> [String] { - return type(of: self).prettify(itemClass: itemClass, items: items()).map { $0["key"] as! String } - } - - public class func allItems(_ itemClass: ItemClass) -> [[String: Any]] { - var query = [String: Any]() - query[Class] = itemClass.rawValue - query[MatchLimit] = MatchLimitAll - query[ReturnAttributes] = kCFBooleanTrue - #if os(iOS) || os(watchOS) || os(tvOS) - query[ReturnData] = kCFBooleanTrue - #endif - - var result: AnyObject? - let status = SecItemCopyMatching(query as CFDictionary, &result) - - switch status { - case errSecSuccess: - if let items = result as? [[String: Any]] { - return prettify(itemClass: itemClass, items: items) - } - case errSecItemNotFound: - return [] - default: () - } - - securityError(status: status) - return [] - } - - public func allItems() -> [[String: Any]] { - return type(of: self).prettify(itemClass: itemClass, items: items()) - } - - #if os(iOS) - @available(iOS 8.0, *) - public func getSharedPassword(_ completion: @escaping (_ account: String?, _ password: String?, _ error: Error?) -> () = { account, password, error -> () in }) { - if let domain = server.host { - type(of: self).requestSharedWebCredential(domain: domain, account: nil) { (credentials, error) -> () in - if let credential = credentials.first { - let account = credential["account"] - let password = credential["password"] - completion(account, password, error) - } else { - completion(nil, nil, error) - } - } - } else { - let error = securityError(status: Status.param.rawValue) - completion(nil, nil, error) - } - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public func getSharedPassword(_ account: String, completion: @escaping (_ password: String?, _ error: Error?) -> () = { password, error -> () in }) { - if let domain = server.host { - type(of: self).requestSharedWebCredential(domain: domain, account: account) { (credentials, error) -> () in - if let credential = credentials.first { - if let password = credential["password"] { - completion(password, error) - } else { - completion(nil, error) - } - } else { - completion(nil, error) - } - } - } else { - let error = securityError(status: Status.param.rawValue) - completion(nil, error) - } - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public func setSharedPassword(_ password: String, account: String, completion: (_ error: Error?) -> () = { e -> () in }) { - setSharedPassword((password as String?)!, account: account, completion: completion) - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - fileprivate func setSharedPassword(_ password: String?, account: String, completion: @escaping (_ error: Error?) -> () = { e -> () in }) { - if let domain = server.host { - SecAddSharedWebCredential(domain as CFString, account as CFString, password as CFString?) { error -> () in - if let error = error { - completion(error.error) - } else { - completion(nil) - } - } - } else { - let error = securityError(status: Status.param.rawValue) - completion(error) - } - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public func removeSharedPassword(_ account: String, completion: @escaping (_ error: Error?) -> () = { e -> () in }) { - setSharedPassword(nil, account: account, completion: completion) - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public class func requestSharedWebCredential(_ completion: @escaping (_ credentials: [[String: String]], _ error: Error?) -> () = { credentials, error -> () in }) { - requestSharedWebCredential(domain: nil, account: nil, completion: completion) - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public class func requestSharedWebCredential(domain: String, completion: @escaping (_ credentials: [[String: String]], _ error: Error?) -> () = { credentials, error -> () in }) { - requestSharedWebCredential(domain: domain, account: nil, completion: completion) - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - public class func requestSharedWebCredential(domain: String, account: String, completion: @escaping (_ credentials: [[String: String]], _ error: Error?) -> () = { credentials, error -> () in }) { - requestSharedWebCredential(domain: Optional(domain), account: Optional(account)!, completion: completion) - } - #endif - - #if os(iOS) - @available(iOS 8.0, *) - fileprivate class func requestSharedWebCredential(domain: String?, account: String?, completion: @escaping (_ credentials: [[String: String]], _ error: Error?) -> ()) { - SecRequestSharedWebCredential(domain as CFString?, account as CFString?) { (credentials, error) -> () in - var remoteError: NSError? - if let error = error { - remoteError = error.error - if remoteError?.code != Int(errSecItemNotFound) { - print("error:[\(remoteError!.code)] \(remoteError!.localizedDescription)") - } - } - if let credentials = credentials { - let credentials = (credentials as NSArray).map { credentials -> [String: String] in - var credential = [String: String]() - if let credentials = credentials as? [String: String] { - if let server = credentials[AttributeServer] { - credential["server"] = server - } - if let account = credentials[AttributeAccount] { - credential["account"] = account - } - if let password = credentials[SharedPassword] { - credential["password"] = password - } - } - return credential - } - completion(credentials, remoteError) - } else { - completion([], remoteError) - } - } - } - #endif - - #if os(iOS) - /** - @abstract Returns a randomly generated password. - @return String password in the form xxx-xxx-xxx-xxx where x is taken from the sets "abcdefghkmnopqrstuvwxy", "ABCDEFGHJKLMNPQRSTUVWXYZ", "3456789" with at least one character from each set being present. - */ - @available(iOS 8.0, *) - public class func generatePassword() -> String { - return SecCreateSharedWebCredentialPassword()! as String - } - #endif - - // MARK: - - fileprivate func items() -> [[String: Any]] { - var query = options.query() - query[MatchLimit] = MatchLimitAll - query[ReturnAttributes] = kCFBooleanTrue - #if os(iOS) || os(watchOS) || os(tvOS) - query[ReturnData] = kCFBooleanTrue - #endif - - var result: AnyObject? - let status = SecItemCopyMatching(query as CFDictionary, &result) - - switch status { - case errSecSuccess: - if let items = result as? [[String: Any]] { - return items - } - case errSecItemNotFound: - return [] - default: () - } - - securityError(status: status) - return [] - } - - fileprivate class func prettify(itemClass: ItemClass, items: [[String: Any]]) -> [[String: Any]] { - let items = items.map { attributes -> [String: Any] in - var item = [String: Any]() - - item["class"] = itemClass.description - - switch itemClass { - case .genericPassword: - if let service = attributes[AttributeService] as? String { - item["service"] = service - } - if let accessGroup = attributes[AttributeAccessGroup] as? String { - item["accessGroup"] = accessGroup - } - case .internetPassword: - if let server = attributes[AttributeServer] as? String { - item["server"] = server - } - if let proto = attributes[AttributeProtocol] as? String { - if let protocolType = ProtocolType(rawValue: proto) { - item["protocol"] = protocolType.description - } - } - if let auth = attributes[AttributeAuthenticationType] as? String { - if let authenticationType = AuthenticationType(rawValue: auth) { - item["authenticationType"] = authenticationType.description - } - } - } - - if let key = attributes[AttributeAccount] as? String { - item["key"] = key - } - if let data = attributes[ValueData] as? Data { - if let text = String(data: data, encoding: .utf8) { - item["value"] = text - } else { - item["value"] = data - } - } - - if let accessible = attributes[AttributeAccessible] as? String { - if let accessibility = Accessibility(rawValue: accessible) { - item["accessibility"] = accessibility.description - } - } - if let synchronizable = attributes[AttributeSynchronizable] as? Bool { - item["synchronizable"] = synchronizable ? "true" : "false" - } - - return item - } - return items - } - - // MARK: - - @discardableResult - fileprivate class func securityError(status: OSStatus) -> Error { - let error = Status(status: status) - print("OSStatus error:[\(error.errorCode)] \(error.description)") - - return error - } - - @discardableResult - fileprivate func securityError(status: OSStatus) -> Error { - return type(of: self).securityError(status: status) - } -} - -struct Options { - var itemClass: ItemClass = .genericPassword - - var service: String = "" - var accessGroup: String? = nil - - var server: URL! - var protocolType: ProtocolType! - var authenticationType: AuthenticationType = .default - - var accessibility: Accessibility = .afterFirstUnlock - var authenticationPolicy: AuthenticationPolicy? - - var synchronizable: Bool = false - - var label: String? - var comment: String? - - var authenticationPrompt: String? - - var attributes = [String: Any]() -} - -/** Class Key Constant */ -private let Class = String(kSecClass) - -/** Attribute Key Constants */ -private let AttributeAccessible = String(kSecAttrAccessible) - -@available(iOS 8.0, OSX 10.10, *) -private let AttributeAccessControl = String(kSecAttrAccessControl) - -private let AttributeAccessGroup = String(kSecAttrAccessGroup) -private let AttributeSynchronizable = String(kSecAttrSynchronizable) -private let AttributeCreationDate = String(kSecAttrCreationDate) -private let AttributeModificationDate = String(kSecAttrModificationDate) -private let AttributeDescription = String(kSecAttrDescription) -private let AttributeComment = String(kSecAttrComment) -private let AttributeCreator = String(kSecAttrCreator) -private let AttributeType = String(kSecAttrType) -private let AttributeLabel = String(kSecAttrLabel) -private let AttributeIsInvisible = String(kSecAttrIsInvisible) -private let AttributeIsNegative = String(kSecAttrIsNegative) -private let AttributeAccount = String(kSecAttrAccount) -private let AttributeService = String(kSecAttrService) -private let AttributeGeneric = String(kSecAttrGeneric) -private let AttributeSecurityDomain = String(kSecAttrSecurityDomain) -private let AttributeServer = String(kSecAttrServer) -private let AttributeProtocol = String(kSecAttrProtocol) -private let AttributeAuthenticationType = String(kSecAttrAuthenticationType) -private let AttributePort = String(kSecAttrPort) -private let AttributePath = String(kSecAttrPath) - -private let SynchronizableAny = kSecAttrSynchronizableAny - -/** Search Constants */ -private let MatchLimit = String(kSecMatchLimit) -private let MatchLimitOne = kSecMatchLimitOne -private let MatchLimitAll = kSecMatchLimitAll - -/** Return Type Key Constants */ -private let ReturnData = String(kSecReturnData) -private let ReturnAttributes = String(kSecReturnAttributes) -private let ReturnRef = String(kSecReturnRef) -private let ReturnPersistentRef = String(kSecReturnPersistentRef) - -/** Value Type Key Constants */ -private let ValueData = String(kSecValueData) -private let ValueRef = String(kSecValueRef) -private let ValuePersistentRef = String(kSecValuePersistentRef) - -/** Other Constants */ -@available(iOS 8.0, OSX 10.10, *) -private let UseOperationPrompt = String(kSecUseOperationPrompt) - -#if os(iOS) -@available(iOS, introduced: 8.0, deprecated: 9.0, message: "Use a UseAuthenticationUI instead.") -private let UseNoAuthenticationUI = String(kSecUseNoAuthenticationUI) -#endif - -@available(iOS 9.0, OSX 10.11, *) -@available(watchOS, unavailable) -private let UseAuthenticationUI = String(kSecUseAuthenticationUI) - -@available(iOS 9.0, OSX 10.11, *) -@available(watchOS, unavailable) -private let UseAuthenticationContext = String(kSecUseAuthenticationContext) - -@available(iOS 9.0, OSX 10.11, *) -@available(watchOS, unavailable) -private let UseAuthenticationUIAllow = String(kSecUseAuthenticationUIAllow) - -@available(iOS 9.0, OSX 10.11, *) -@available(watchOS, unavailable) -private let UseAuthenticationUIFail = String(kSecUseAuthenticationUIFail) - -@available(iOS 9.0, OSX 10.11, *) -@available(watchOS, unavailable) -private let UseAuthenticationUISkip = String(kSecUseAuthenticationUISkip) - -#if os(iOS) -/** Credential Key Constants */ -private let SharedPassword = String(kSecSharedPassword) -#endif - -extension Keychain: CustomStringConvertible, CustomDebugStringConvertible { - public var description: String { - let items = allItems() - if items.isEmpty { - return "[]" - } - var description = "[\n" - for item in items { - description += " " - description += "\(item)\n" - } - description += "]" - return description - } - - public var debugDescription: String { - return "\(items())" - } -} - -extension Options { - - func query() -> [String: Any] { - var query = [String: Any]() - - query[Class] = itemClass.rawValue - query[AttributeSynchronizable] = SynchronizableAny - - switch itemClass { - case .genericPassword: - query[AttributeService] = service - // Access group is not supported on any simulators. - #if (!arch(i386) && !arch(x86_64)) || (!os(iOS) && !os(watchOS) && !os(tvOS)) - if let accessGroup = self.accessGroup { - query[AttributeAccessGroup] = accessGroup - } - #endif - case .internetPassword: - query[AttributeServer] = server.host - query[AttributePort] = server.port - query[AttributeProtocol] = protocolType.rawValue - query[AttributeAuthenticationType] = authenticationType.rawValue - } - - if #available(OSX 10.10, *) { - if authenticationPrompt != nil { - query[UseOperationPrompt] = authenticationPrompt - } - } - - return query - } - - func attributes(key: String?, value: Data) -> ([String: Any], Error?) { - var attributes: [String: Any] - - if key != nil { - attributes = query() - attributes[AttributeAccount] = key - } else { - attributes = [String: Any]() - } - - attributes[ValueData] = value - - if label != nil { - attributes[AttributeLabel] = label - } - if comment != nil { - attributes[AttributeComment] = comment - } - - if let policy = authenticationPolicy { - if #available(OSX 10.10, *) { - var error: Unmanaged? - guard let accessControl = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue as CFTypeRef, SecAccessControlCreateFlags(rawValue: CFOptionFlags(policy.rawValue)), &error) else { - if let error = error?.takeUnretainedValue() { - return (attributes, error.error) - } - - return (attributes, Status.unexpectedError) - } - attributes[AttributeAccessControl] = accessControl - } else { - print("Unavailable 'Touch ID integration' on OS X versions prior to 10.10.") - } - } else { - attributes[AttributeAccessible] = accessibility.rawValue - } - - attributes[AttributeSynchronizable] = synchronizable ? kCFBooleanTrue : kCFBooleanFalse - - return (attributes, nil) - } -} - -// MARK: - -extension Attributes: CustomStringConvertible, CustomDebugStringConvertible { - public var description: String { - return "\(attributes)" - } - - public var debugDescription: String { - return description - } -} - -extension ItemClass: RawRepresentable, CustomStringConvertible { - - public init?(rawValue: String) { - switch rawValue { - case String(kSecClassGenericPassword): - self = .genericPassword - case String(kSecClassInternetPassword): - self = .internetPassword - default: - return nil - } - } - - public var rawValue: String { - switch self { - case .genericPassword: - return String(kSecClassGenericPassword) - case .internetPassword: - return String(kSecClassInternetPassword) - } - } - - public var description: String { - switch self { - case .genericPassword: - return "GenericPassword" - case .internetPassword: - return "InternetPassword" - } - } -} - -extension ProtocolType: RawRepresentable, CustomStringConvertible { - - public init?(rawValue: String) { - switch rawValue { - case String(kSecAttrProtocolFTP): - self = .ftp - case String(kSecAttrProtocolFTPAccount): - self = .ftpAccount - case String(kSecAttrProtocolHTTP): - self = .http - case String(kSecAttrProtocolIRC): - self = .irc - case String(kSecAttrProtocolNNTP): - self = .nntp - case String(kSecAttrProtocolPOP3): - self = .pop3 - case String(kSecAttrProtocolSMTP): - self = .smtp - case String(kSecAttrProtocolSOCKS): - self = .socks - case String(kSecAttrProtocolIMAP): - self = .imap - case String(kSecAttrProtocolLDAP): - self = .ldap - case String(kSecAttrProtocolAppleTalk): - self = .appleTalk - case String(kSecAttrProtocolAFP): - self = .afp - case String(kSecAttrProtocolTelnet): - self = .telnet - case String(kSecAttrProtocolSSH): - self = .ssh - case String(kSecAttrProtocolFTPS): - self = .ftps - case String(kSecAttrProtocolHTTPS): - self = .https - case String(kSecAttrProtocolHTTPProxy): - self = .httpProxy - case String(kSecAttrProtocolHTTPSProxy): - self = .httpsProxy - case String(kSecAttrProtocolFTPProxy): - self = .ftpProxy - case String(kSecAttrProtocolSMB): - self = .smb - case String(kSecAttrProtocolRTSP): - self = .rtsp - case String(kSecAttrProtocolRTSPProxy): - self = .rtspProxy - case String(kSecAttrProtocolDAAP): - self = .daap - case String(kSecAttrProtocolEPPC): - self = .eppc - case String(kSecAttrProtocolIPP): - self = .ipp - case String(kSecAttrProtocolNNTPS): - self = .nntps - case String(kSecAttrProtocolLDAPS): - self = .ldaps - case String(kSecAttrProtocolTelnetS): - self = .telnetS - case String(kSecAttrProtocolIMAPS): - self = .imaps - case String(kSecAttrProtocolIRCS): - self = .ircs - case String(kSecAttrProtocolPOP3S): - self = .pop3S - default: - return nil - } - } - - public var rawValue: String { - switch self { - case .ftp: - return String(kSecAttrProtocolFTP) - case .ftpAccount: - return String(kSecAttrProtocolFTPAccount) - case .http: - return String(kSecAttrProtocolHTTP) - case .irc: - return String(kSecAttrProtocolIRC) - case .nntp: - return String(kSecAttrProtocolNNTP) - case .pop3: - return String(kSecAttrProtocolPOP3) - case .smtp: - return String(kSecAttrProtocolSMTP) - case .socks: - return String(kSecAttrProtocolSOCKS) - case .imap: - return String(kSecAttrProtocolIMAP) - case .ldap: - return String(kSecAttrProtocolLDAP) - case .appleTalk: - return String(kSecAttrProtocolAppleTalk) - case .afp: - return String(kSecAttrProtocolAFP) - case .telnet: - return String(kSecAttrProtocolTelnet) - case .ssh: - return String(kSecAttrProtocolSSH) - case .ftps: - return String(kSecAttrProtocolFTPS) - case .https: - return String(kSecAttrProtocolHTTPS) - case .httpProxy: - return String(kSecAttrProtocolHTTPProxy) - case .httpsProxy: - return String(kSecAttrProtocolHTTPSProxy) - case .ftpProxy: - return String(kSecAttrProtocolFTPProxy) - case .smb: - return String(kSecAttrProtocolSMB) - case .rtsp: - return String(kSecAttrProtocolRTSP) - case .rtspProxy: - return String(kSecAttrProtocolRTSPProxy) - case .daap: - return String(kSecAttrProtocolDAAP) - case .eppc: - return String(kSecAttrProtocolEPPC) - case .ipp: - return String(kSecAttrProtocolIPP) - case .nntps: - return String(kSecAttrProtocolNNTPS) - case .ldaps: - return String(kSecAttrProtocolLDAPS) - case .telnetS: - return String(kSecAttrProtocolTelnetS) - case .imaps: - return String(kSecAttrProtocolIMAPS) - case .ircs: - return String(kSecAttrProtocolIRCS) - case .pop3S: - return String(kSecAttrProtocolPOP3S) - } - } - - public var description: String { - switch self { - case .ftp: - return "FTP" - case .ftpAccount: - return "FTPAccount" - case .http: - return "HTTP" - case .irc: - return "IRC" - case .nntp: - return "NNTP" - case .pop3: - return "POP3" - case .smtp: - return "SMTP" - case .socks: - return "SOCKS" - case .imap: - return "IMAP" - case .ldap: - return "LDAP" - case .appleTalk: - return "AppleTalk" - case .afp: - return "AFP" - case .telnet: - return "Telnet" - case .ssh: - return "SSH" - case .ftps: - return "FTPS" - case .https: - return "HTTPS" - case .httpProxy: - return "HTTPProxy" - case .httpsProxy: - return "HTTPSProxy" - case .ftpProxy: - return "FTPProxy" - case .smb: - return "SMB" - case .rtsp: - return "RTSP" - case .rtspProxy: - return "RTSPProxy" - case .daap: - return "DAAP" - case .eppc: - return "EPPC" - case .ipp: - return "IPP" - case .nntps: - return "NNTPS" - case .ldaps: - return "LDAPS" - case .telnetS: - return "TelnetS" - case .imaps: - return "IMAPS" - case .ircs: - return "IRCS" - case .pop3S: - return "POP3S" - } - } -} - -extension AuthenticationType: RawRepresentable, CustomStringConvertible { - - public init?(rawValue: String) { - switch rawValue { - case String(kSecAttrAuthenticationTypeNTLM): - self = .ntlm - case String(kSecAttrAuthenticationTypeMSN): - self = .msn - case String(kSecAttrAuthenticationTypeDPA): - self = .dpa - case String(kSecAttrAuthenticationTypeRPA): - self = .rpa - case String(kSecAttrAuthenticationTypeHTTPBasic): - self = .httpBasic - case String(kSecAttrAuthenticationTypeHTTPDigest): - self = .httpDigest - case String(kSecAttrAuthenticationTypeHTMLForm): - self = .htmlForm - case String(kSecAttrAuthenticationTypeDefault): - self = .`default` - default: - return nil - } - } - - public var rawValue: String { - switch self { - case .ntlm: - return String(kSecAttrAuthenticationTypeNTLM) - case .msn: - return String(kSecAttrAuthenticationTypeMSN) - case .dpa: - return String(kSecAttrAuthenticationTypeDPA) - case .rpa: - return String(kSecAttrAuthenticationTypeRPA) - case .httpBasic: - return String(kSecAttrAuthenticationTypeHTTPBasic) - case .httpDigest: - return String(kSecAttrAuthenticationTypeHTTPDigest) - case .htmlForm: - return String(kSecAttrAuthenticationTypeHTMLForm) - case .`default`: - return String(kSecAttrAuthenticationTypeDefault) - } - } - - public var description: String { - switch self { - case .ntlm: - return "NTLM" - case .msn: - return "MSN" - case .dpa: - return "DPA" - case .rpa: - return "RPA" - case .httpBasic: - return "HTTPBasic" - case .httpDigest: - return "HTTPDigest" - case .htmlForm: - return "HTMLForm" - case .`default`: - return "Default" - } - } -} - -extension Accessibility: RawRepresentable, CustomStringConvertible { - - public init?(rawValue: String) { - if #available(OSX 10.10, *) { - switch rawValue { - case String(kSecAttrAccessibleWhenUnlocked): - self = .whenUnlocked - case String(kSecAttrAccessibleAfterFirstUnlock): - self = .afterFirstUnlock - case String(kSecAttrAccessibleAlways): - self = .always - case String(kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly): - self = .whenPasscodeSetThisDeviceOnly - case String(kSecAttrAccessibleWhenUnlockedThisDeviceOnly): - self = .whenUnlockedThisDeviceOnly - case String(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly): - self = .afterFirstUnlockThisDeviceOnly - case String(kSecAttrAccessibleAlwaysThisDeviceOnly): - self = .alwaysThisDeviceOnly - default: - return nil - } - } else { - switch rawValue { - case String(kSecAttrAccessibleWhenUnlocked): - self = .whenUnlocked - case String(kSecAttrAccessibleAfterFirstUnlock): - self = .afterFirstUnlock - case String(kSecAttrAccessibleAlways): - self = .always - case String(kSecAttrAccessibleWhenUnlockedThisDeviceOnly): - self = .whenUnlockedThisDeviceOnly - case String(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly): - self = .afterFirstUnlockThisDeviceOnly - case String(kSecAttrAccessibleAlwaysThisDeviceOnly): - self = .alwaysThisDeviceOnly - default: - return nil - } - } - } - - public var rawValue: String { - switch self { - case .whenUnlocked: - return String(kSecAttrAccessibleWhenUnlocked) - case .afterFirstUnlock: - return String(kSecAttrAccessibleAfterFirstUnlock) - case .always: - return String(kSecAttrAccessibleAlways) - case .whenPasscodeSetThisDeviceOnly: - if #available(OSX 10.10, *) { - return String(kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly) - } else { - fatalError("'Accessibility.WhenPasscodeSetThisDeviceOnly' is not available on this version of OS.") - } - case .whenUnlockedThisDeviceOnly: - return String(kSecAttrAccessibleWhenUnlockedThisDeviceOnly) - case .afterFirstUnlockThisDeviceOnly: - return String(kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly) - case .alwaysThisDeviceOnly: - return String(kSecAttrAccessibleAlwaysThisDeviceOnly) - } - } - - public var description: String { - switch self { - case .whenUnlocked: - return "WhenUnlocked" - case .afterFirstUnlock: - return "AfterFirstUnlock" - case .always: - return "Always" - case .whenPasscodeSetThisDeviceOnly: - return "WhenPasscodeSetThisDeviceOnly" - case .whenUnlockedThisDeviceOnly: - return "WhenUnlockedThisDeviceOnly" - case .afterFirstUnlockThisDeviceOnly: - return "AfterFirstUnlockThisDeviceOnly" - case .alwaysThisDeviceOnly: - return "AlwaysThisDeviceOnly" - } - } -} - -extension CFError { - var error: NSError { - let domain = CFErrorGetDomain(self) as String - let code = CFErrorGetCode(self) - let userInfo = CFErrorCopyUserInfo(self) as! [NSObject: Any] - - return NSError(domain: domain, code: code, userInfo: userInfo) - } -} - -public enum Status: OSStatus, Error { - case success = 0 - case unimplemented = -4 - case diskFull = -34 - case io = -36 - case opWr = -49 - case param = -50 - case wrPerm = -61 - case allocate = -108 - case userCanceled = -128 - case badReq = -909 - case internalComponent = -2070 - case notAvailable = -25291 - case readOnly = -25292 - case authFailed = -25293 - case noSuchKeychain = -25294 - case invalidKeychain = -25295 - case duplicateKeychain = -25296 - case duplicateCallback = -25297 - case invalidCallback = -25298 - case duplicateItem = -25299 - case itemNotFound = -25300 - case bufferTooSmall = -25301 - case dataTooLarge = -25302 - case noSuchAttr = -25303 - case invalidItemRef = -25304 - case invalidSearchRef = -25305 - case noSuchClass = -25306 - case noDefaultKeychain = -25307 - case interactionNotAllowed = -25308 - case readOnlyAttr = -25309 - case wrongSecVersion = -25310 - case keySizeNotAllowed = -25311 - case noStorageModule = -25312 - case noCertificateModule = -25313 - case noPolicyModule = -25314 - case interactionRequired = -25315 - case dataNotAvailable = -25316 - case dataNotModifiable = -25317 - case createChainFailed = -25318 - case invalidPrefsDomain = -25319 - case inDarkWake = -25320 - case aclNotSimple = -25240 - case policyNotFound = -25241 - case invalidTrustSetting = -25242 - case noAccessForItem = -25243 - case invalidOwnerEdit = -25244 - case trustNotAvailable = -25245 - case unsupportedFormat = -25256 - case unknownFormat = -25257 - case keyIsSensitive = -25258 - case multiplePrivKeys = -25259 - case passphraseRequired = -25260 - case invalidPasswordRef = -25261 - case invalidTrustSettings = -25262 - case noTrustSettings = -25263 - case pkcs12VerifyFailure = -25264 - case invalidCertificate = -26265 - case notSigner = -26267 - case policyDenied = -26270 - case invalidKey = -26274 - case decode = -26275 - case `internal` = -26276 - case unsupportedAlgorithm = -26268 - case unsupportedOperation = -26271 - case unsupportedPadding = -26273 - case itemInvalidKey = -34000 - case itemInvalidKeyType = -34001 - case itemInvalidValue = -34002 - case itemClassMissing = -34003 - case itemMatchUnsupported = -34004 - case useItemListUnsupported = -34005 - case useKeychainUnsupported = -34006 - case useKeychainListUnsupported = -34007 - case returnDataUnsupported = -34008 - case returnAttributesUnsupported = -34009 - case returnRefUnsupported = -34010 - case returnPersitentRefUnsupported = -34011 - case valueRefUnsupported = -34012 - case valuePersistentRefUnsupported = -34013 - case returnMissingPointer = -34014 - case matchLimitUnsupported = -34015 - case itemIllegalQuery = -34016 - case waitForCallback = -34017 - case missingEntitlement = -34018 - case upgradePending = -34019 - case mpSignatureInvalid = -25327 - case otrTooOld = -25328 - case otrIDTooNew = -25329 - case serviceNotAvailable = -67585 - case insufficientClientID = -67586 - case deviceReset = -67587 - case deviceFailed = -67588 - case appleAddAppACLSubject = -67589 - case applePublicKeyIncomplete = -67590 - case appleSignatureMismatch = -67591 - case appleInvalidKeyStartDate = -67592 - case appleInvalidKeyEndDate = -67593 - case conversionError = -67594 - case appleSSLv2Rollback = -67595 - case quotaExceeded = -67596 - case fileTooBig = -67597 - case invalidDatabaseBlob = -67598 - case invalidKeyBlob = -67599 - case incompatibleDatabaseBlob = -67600 - case incompatibleKeyBlob = -67601 - case hostNameMismatch = -67602 - case unknownCriticalExtensionFlag = -67603 - case noBasicConstraints = -67604 - case noBasicConstraintsCA = -67605 - case invalidAuthorityKeyID = -67606 - case invalidSubjectKeyID = -67607 - case invalidKeyUsageForPolicy = -67608 - case invalidExtendedKeyUsage = -67609 - case invalidIDLinkage = -67610 - case pathLengthConstraintExceeded = -67611 - case invalidRoot = -67612 - case crlExpired = -67613 - case crlNotValidYet = -67614 - case crlNotFound = -67615 - case crlServerDown = -67616 - case crlBadURI = -67617 - case unknownCertExtension = -67618 - case unknownCRLExtension = -67619 - case crlNotTrusted = -67620 - case crlPolicyFailed = -67621 - case idpFailure = -67622 - case smimeEmailAddressesNotFound = -67623 - case smimeBadExtendedKeyUsage = -67624 - case smimeBadKeyUsage = -67625 - case smimeKeyUsageNotCritical = -67626 - case smimeNoEmailAddress = -67627 - case smimeSubjAltNameNotCritical = -67628 - case sslBadExtendedKeyUsage = -67629 - case ocspBadResponse = -67630 - case ocspBadRequest = -67631 - case ocspUnavailable = -67632 - case ocspStatusUnrecognized = -67633 - case endOfData = -67634 - case incompleteCertRevocationCheck = -67635 - case networkFailure = -67636 - case ocspNotTrustedToAnchor = -67637 - case recordModified = -67638 - case ocspSignatureError = -67639 - case ocspNoSigner = -67640 - case ocspResponderMalformedReq = -67641 - case ocspResponderInternalError = -67642 - case ocspResponderTryLater = -67643 - case ocspResponderSignatureRequired = -67644 - case ocspResponderUnauthorized = -67645 - case ocspResponseNonceMismatch = -67646 - case codeSigningBadCertChainLength = -67647 - case codeSigningNoBasicConstraints = -67648 - case codeSigningBadPathLengthConstraint = -67649 - case codeSigningNoExtendedKeyUsage = -67650 - case codeSigningDevelopment = -67651 - case resourceSignBadCertChainLength = -67652 - case resourceSignBadExtKeyUsage = -67653 - case trustSettingDeny = -67654 - case invalidSubjectName = -67655 - case unknownQualifiedCertStatement = -67656 - case mobileMeRequestQueued = -67657 - case mobileMeRequestRedirected = -67658 - case mobileMeServerError = -67659 - case mobileMeServerNotAvailable = -67660 - case mobileMeServerAlreadyExists = -67661 - case mobileMeServerServiceErr = -67662 - case mobileMeRequestAlreadyPending = -67663 - case mobileMeNoRequestPending = -67664 - case mobileMeCSRVerifyFailure = -67665 - case mobileMeFailedConsistencyCheck = -67666 - case notInitialized = -67667 - case invalidHandleUsage = -67668 - case pvcReferentNotFound = -67669 - case functionIntegrityFail = -67670 - case internalError = -67671 - case memoryError = -67672 - case invalidData = -67673 - case mdsError = -67674 - case invalidPointer = -67675 - case selfCheckFailed = -67676 - case functionFailed = -67677 - case moduleManifestVerifyFailed = -67678 - case invalidGUID = -67679 - case invalidHandle = -67680 - case invalidDBList = -67681 - case invalidPassthroughID = -67682 - case invalidNetworkAddress = -67683 - case crlAlreadySigned = -67684 - case invalidNumberOfFields = -67685 - case verificationFailure = -67686 - case unknownTag = -67687 - case invalidSignature = -67688 - case invalidName = -67689 - case invalidCertificateRef = -67690 - case invalidCertificateGroup = -67691 - case tagNotFound = -67692 - case invalidQuery = -67693 - case invalidValue = -67694 - case callbackFailed = -67695 - case aclDeleteFailed = -67696 - case aclReplaceFailed = -67697 - case aclAddFailed = -67698 - case aclChangeFailed = -67699 - case invalidAccessCredentials = -67700 - case invalidRecord = -67701 - case invalidACL = -67702 - case invalidSampleValue = -67703 - case incompatibleVersion = -67704 - case privilegeNotGranted = -67705 - case invalidScope = -67706 - case pvcAlreadyConfigured = -67707 - case invalidPVC = -67708 - case emmLoadFailed = -67709 - case emmUnloadFailed = -67710 - case addinLoadFailed = -67711 - case invalidKeyRef = -67712 - case invalidKeyHierarchy = -67713 - case addinUnloadFailed = -67714 - case libraryReferenceNotFound = -67715 - case invalidAddinFunctionTable = -67716 - case invalidServiceMask = -67717 - case moduleNotLoaded = -67718 - case invalidSubServiceID = -67719 - case attributeNotInContext = -67720 - case moduleManagerInitializeFailed = -67721 - case moduleManagerNotFound = -67722 - case eventNotificationCallbackNotFound = -67723 - case inputLengthError = -67724 - case outputLengthError = -67725 - case privilegeNotSupported = -67726 - case deviceError = -67727 - case attachHandleBusy = -67728 - case notLoggedIn = -67729 - case algorithmMismatch = -67730 - case keyUsageIncorrect = -67731 - case keyBlobTypeIncorrect = -67732 - case keyHeaderInconsistent = -67733 - case unsupportedKeyFormat = -67734 - case unsupportedKeySize = -67735 - case invalidKeyUsageMask = -67736 - case unsupportedKeyUsageMask = -67737 - case invalidKeyAttributeMask = -67738 - case unsupportedKeyAttributeMask = -67739 - case invalidKeyLabel = -67740 - case unsupportedKeyLabel = -67741 - case invalidKeyFormat = -67742 - case unsupportedVectorOfBuffers = -67743 - case invalidInputVector = -67744 - case invalidOutputVector = -67745 - case invalidContext = -67746 - case invalidAlgorithm = -67747 - case invalidAttributeKey = -67748 - case missingAttributeKey = -67749 - case invalidAttributeInitVector = -67750 - case missingAttributeInitVector = -67751 - case invalidAttributeSalt = -67752 - case missingAttributeSalt = -67753 - case invalidAttributePadding = -67754 - case missingAttributePadding = -67755 - case invalidAttributeRandom = -67756 - case missingAttributeRandom = -67757 - case invalidAttributeSeed = -67758 - case missingAttributeSeed = -67759 - case invalidAttributePassphrase = -67760 - case missingAttributePassphrase = -67761 - case invalidAttributeKeyLength = -67762 - case missingAttributeKeyLength = -67763 - case invalidAttributeBlockSize = -67764 - case missingAttributeBlockSize = -67765 - case invalidAttributeOutputSize = -67766 - case missingAttributeOutputSize = -67767 - case invalidAttributeRounds = -67768 - case missingAttributeRounds = -67769 - case invalidAlgorithmParms = -67770 - case missingAlgorithmParms = -67771 - case invalidAttributeLabel = -67772 - case missingAttributeLabel = -67773 - case invalidAttributeKeyType = -67774 - case missingAttributeKeyType = -67775 - case invalidAttributeMode = -67776 - case missingAttributeMode = -67777 - case invalidAttributeEffectiveBits = -67778 - case missingAttributeEffectiveBits = -67779 - case invalidAttributeStartDate = -67780 - case missingAttributeStartDate = -67781 - case invalidAttributeEndDate = -67782 - case missingAttributeEndDate = -67783 - case invalidAttributeVersion = -67784 - case missingAttributeVersion = -67785 - case invalidAttributePrime = -67786 - case missingAttributePrime = -67787 - case invalidAttributeBase = -67788 - case missingAttributeBase = -67789 - case invalidAttributeSubprime = -67790 - case missingAttributeSubprime = -67791 - case invalidAttributeIterationCount = -67792 - case missingAttributeIterationCount = -67793 - case invalidAttributeDLDBHandle = -67794 - case missingAttributeDLDBHandle = -67795 - case invalidAttributeAccessCredentials = -67796 - case missingAttributeAccessCredentials = -67797 - case invalidAttributePublicKeyFormat = -67798 - case missingAttributePublicKeyFormat = -67799 - case invalidAttributePrivateKeyFormat = -67800 - case missingAttributePrivateKeyFormat = -67801 - case invalidAttributeSymmetricKeyFormat = -67802 - case missingAttributeSymmetricKeyFormat = -67803 - case invalidAttributeWrappedKeyFormat = -67804 - case missingAttributeWrappedKeyFormat = -67805 - case stagedOperationInProgress = -67806 - case stagedOperationNotStarted = -67807 - case verifyFailed = -67808 - case querySizeUnknown = -67809 - case blockSizeMismatch = -67810 - case publicKeyInconsistent = -67811 - case deviceVerifyFailed = -67812 - case invalidLoginName = -67813 - case alreadyLoggedIn = -67814 - case invalidDigestAlgorithm = -67815 - case invalidCRLGroup = -67816 - case certificateCannotOperate = -67817 - case certificateExpired = -67818 - case certificateNotValidYet = -67819 - case certificateRevoked = -67820 - case certificateSuspended = -67821 - case insufficientCredentials = -67822 - case invalidAction = -67823 - case invalidAuthority = -67824 - case verifyActionFailed = -67825 - case invalidCertAuthority = -67826 - case invaldCRLAuthority = -67827 - case invalidCRLEncoding = -67828 - case invalidCRLType = -67829 - case invalidCRL = -67830 - case invalidFormType = -67831 - case invalidID = -67832 - case invalidIdentifier = -67833 - case invalidIndex = -67834 - case invalidPolicyIdentifiers = -67835 - case invalidTimeString = -67836 - case invalidReason = -67837 - case invalidRequestInputs = -67838 - case invalidResponseVector = -67839 - case invalidStopOnPolicy = -67840 - case invalidTuple = -67841 - case multipleValuesUnsupported = -67842 - case notTrusted = -67843 - case noDefaultAuthority = -67844 - case rejectedForm = -67845 - case requestLost = -67846 - case requestRejected = -67847 - case unsupportedAddressType = -67848 - case unsupportedService = -67849 - case invalidTupleGroup = -67850 - case invalidBaseACLs = -67851 - case invalidTupleCredendtials = -67852 - case invalidEncoding = -67853 - case invalidValidityPeriod = -67854 - case invalidRequestor = -67855 - case requestDescriptor = -67856 - case invalidBundleInfo = -67857 - case invalidCRLIndex = -67858 - case noFieldValues = -67859 - case unsupportedFieldFormat = -67860 - case unsupportedIndexInfo = -67861 - case unsupportedLocality = -67862 - case unsupportedNumAttributes = -67863 - case unsupportedNumIndexes = -67864 - case unsupportedNumRecordTypes = -67865 - case fieldSpecifiedMultiple = -67866 - case incompatibleFieldFormat = -67867 - case invalidParsingModule = -67868 - case databaseLocked = -67869 - case datastoreIsOpen = -67870 - case missingValue = -67871 - case unsupportedQueryLimits = -67872 - case unsupportedNumSelectionPreds = -67873 - case unsupportedOperator = -67874 - case invalidDBLocation = -67875 - case invalidAccessRequest = -67876 - case invalidIndexInfo = -67877 - case invalidNewOwner = -67878 - case invalidModifyMode = -67879 - case missingRequiredExtension = -67880 - case extendedKeyUsageNotCritical = -67881 - case timestampMissing = -67882 - case timestampInvalid = -67883 - case timestampNotTrusted = -67884 - case timestampServiceNotAvailable = -67885 - case timestampBadAlg = -67886 - case timestampBadRequest = -67887 - case timestampBadDataFormat = -67888 - case timestampTimeNotAvailable = -67889 - case timestampUnacceptedPolicy = -67890 - case timestampUnacceptedExtension = -67891 - case timestampAddInfoNotAvailable = -67892 - case timestampSystemFailure = -67893 - case signingTimeMissing = -67894 - case timestampRejection = -67895 - case timestampWaiting = -67896 - case timestampRevocationWarning = -67897 - case timestampRevocationNotification = -67898 - case unexpectedError = -99999 -} - -extension Status: RawRepresentable, CustomStringConvertible { - - public init(status: OSStatus) { - if let mappedStatus = Status(rawValue: status) { - self = mappedStatus - } else { - self = .unexpectedError - } - } - - public var description: String { - switch self { - case .success: - return "No error." - case .unimplemented: - return "Function or operation not implemented." - case .diskFull: - return "The disk is full." - case .io: - return "I/O error (bummers)" - case .opWr: - return "file already open with with write permission" - case .param: - return "One or more parameters passed to a function were not valid." - case .wrPerm: - return "write permissions error" - case .allocate: - return "Failed to allocate memory." - case .userCanceled: - return "User canceled the operation." - case .badReq: - return "Bad parameter or invalid state for operation." - case .internalComponent: - return "" - case .notAvailable: - return "No keychain is available. You may need to restart your computer." - case .readOnly: - return "This keychain cannot be modified." - case .authFailed: - return "The user name or passphrase you entered is not correct." - case .noSuchKeychain: - return "The specified keychain could not be found." - case .invalidKeychain: - return "The specified keychain is not a valid keychain file." - case .duplicateKeychain: - return "A keychain with the same name already exists." - case .duplicateCallback: - return "The specified callback function is already installed." - case .invalidCallback: - return "The specified callback function is not valid." - case .duplicateItem: - return "The specified item already exists in the keychain." - case .itemNotFound: - return "The specified item could not be found in the keychain." - case .bufferTooSmall: - return "There is not enough memory available to use the specified item." - case .dataTooLarge: - return "This item contains information which is too large or in a format that cannot be displayed." - case .noSuchAttr: - return "The specified attribute does not exist." - case .invalidItemRef: - return "The specified item is no longer valid. It may have been deleted from the keychain." - case .invalidSearchRef: - return "Unable to search the current keychain." - case .noSuchClass: - return "The specified item does not appear to be a valid keychain item." - case .noDefaultKeychain: - return "A default keychain could not be found." - case .interactionNotAllowed: - return "User interaction is not allowed." - case .readOnlyAttr: - return "The specified attribute could not be modified." - case .wrongSecVersion: - return "This keychain was created by a different version of the system software and cannot be opened." - case .keySizeNotAllowed: - return "This item specifies a key size which is too large." - case .noStorageModule: - return "A required component (data storage module) could not be loaded. You may need to restart your computer." - case .noCertificateModule: - return "A required component (certificate module) could not be loaded. You may need to restart your computer." - case .noPolicyModule: - return "A required component (policy module) could not be loaded. You may need to restart your computer." - case .interactionRequired: - return "User interaction is required, but is currently not allowed." - case .dataNotAvailable: - return "The contents of this item cannot be retrieved." - case .dataNotModifiable: - return "The contents of this item cannot be modified." - case .createChainFailed: - return "One or more certificates required to validate this certificate cannot be found." - case .invalidPrefsDomain: - return "The specified preferences domain is not valid." - case .inDarkWake: - return "In dark wake, no UI possible" - case .aclNotSimple: - return "The specified access control list is not in standard (simple) form." - case .policyNotFound: - return "The specified policy cannot be found." - case .invalidTrustSetting: - return "The specified trust setting is invalid." - case .noAccessForItem: - return "The specified item has no access control." - case .invalidOwnerEdit: - return "Invalid attempt to change the owner of this item." - case .trustNotAvailable: - return "No trust results are available." - case .unsupportedFormat: - return "Import/Export format unsupported." - case .unknownFormat: - return "Unknown format in import." - case .keyIsSensitive: - return "Key material must be wrapped for export." - case .multiplePrivKeys: - return "An attempt was made to import multiple private keys." - case .passphraseRequired: - return "Passphrase is required for import/export." - case .invalidPasswordRef: - return "The password reference was invalid." - case .invalidTrustSettings: - return "The Trust Settings Record was corrupted." - case .noTrustSettings: - return "No Trust Settings were found." - case .pkcs12VerifyFailure: - return "MAC verification failed during PKCS12 import (wrong password?)" - case .invalidCertificate: - return "This certificate could not be decoded." - case .notSigner: - return "A certificate was not signed by its proposed parent." - case .policyDenied: - return "The certificate chain was not trusted due to a policy not accepting it." - case .invalidKey: - return "The provided key material was not valid." - case .decode: - return "Unable to decode the provided data." - case .`internal`: - return "An internal error occurred in the Security framework." - case .unsupportedAlgorithm: - return "An unsupported algorithm was encountered." - case .unsupportedOperation: - return "The operation you requested is not supported by this key." - case .unsupportedPadding: - return "The padding you requested is not supported." - case .itemInvalidKey: - return "A string key in dictionary is not one of the supported keys." - case .itemInvalidKeyType: - return "A key in a dictionary is neither a CFStringRef nor a CFNumberRef." - case .itemInvalidValue: - return "A value in a dictionary is an invalid (or unsupported) CF type." - case .itemClassMissing: - return "No kSecItemClass key was specified in a dictionary." - case .itemMatchUnsupported: - return "The caller passed one or more kSecMatch keys to a function which does not support matches." - case .useItemListUnsupported: - return "The caller passed in a kSecUseItemList key to a function which does not support it." - case .useKeychainUnsupported: - return "The caller passed in a kSecUseKeychain key to a function which does not support it." - case .useKeychainListUnsupported: - return "The caller passed in a kSecUseKeychainList key to a function which does not support it." - case .returnDataUnsupported: - return "The caller passed in a kSecReturnData key to a function which does not support it." - case .returnAttributesUnsupported: - return "The caller passed in a kSecReturnAttributes key to a function which does not support it." - case .returnRefUnsupported: - return "The caller passed in a kSecReturnRef key to a function which does not support it." - case .returnPersitentRefUnsupported: - return "The caller passed in a kSecReturnPersistentRef key to a function which does not support it." - case .valueRefUnsupported: - return "The caller passed in a kSecValueRef key to a function which does not support it." - case .valuePersistentRefUnsupported: - return "The caller passed in a kSecValuePersistentRef key to a function which does not support it." - case .returnMissingPointer: - return "The caller passed asked for something to be returned but did not pass in a result pointer." - case .matchLimitUnsupported: - return "The caller passed in a kSecMatchLimit key to a call which does not support limits." - case .itemIllegalQuery: - return "The caller passed in a query which contained too many keys." - case .waitForCallback: - return "This operation is incomplete, until the callback is invoked (not an error)." - case .missingEntitlement: - return "Internal error when a required entitlement isn't present, client has neither application-identifier nor keychain-access-groups entitlements." - case .upgradePending: - return "Error returned if keychain database needs a schema migration but the device is locked, clients should wait for a device unlock notification and retry the command." - case .mpSignatureInvalid: - return "Signature invalid on MP message" - case .otrTooOld: - return "Message is too old to use" - case .otrIDTooNew: - return "Key ID is too new to use! Message from the future?" - case .serviceNotAvailable: - return "The required service is not available." - case .insufficientClientID: - return "The client ID is not correct." - case .deviceReset: - return "A device reset has occurred." - case .deviceFailed: - return "A device failure has occurred." - case .appleAddAppACLSubject: - return "Adding an application ACL subject failed." - case .applePublicKeyIncomplete: - return "The public key is incomplete." - case .appleSignatureMismatch: - return "A signature mismatch has occurred." - case .appleInvalidKeyStartDate: - return "The specified key has an invalid start date." - case .appleInvalidKeyEndDate: - return "The specified key has an invalid end date." - case .conversionError: - return "A conversion error has occurred." - case .appleSSLv2Rollback: - return "A SSLv2 rollback error has occurred." - case .quotaExceeded: - return "The quota was exceeded." - case .fileTooBig: - return "The file is too big." - case .invalidDatabaseBlob: - return "The specified database has an invalid blob." - case .invalidKeyBlob: - return "The specified database has an invalid key blob." - case .incompatibleDatabaseBlob: - return "The specified database has an incompatible blob." - case .incompatibleKeyBlob: - return "The specified database has an incompatible key blob." - case .hostNameMismatch: - return "A host name mismatch has occurred." - case .unknownCriticalExtensionFlag: - return "There is an unknown critical extension flag." - case .noBasicConstraints: - return "No basic constraints were found." - case .noBasicConstraintsCA: - return "No basic CA constraints were found." - case .invalidAuthorityKeyID: - return "The authority key ID is not valid." - case .invalidSubjectKeyID: - return "The subject key ID is not valid." - case .invalidKeyUsageForPolicy: - return "The key usage is not valid for the specified policy." - case .invalidExtendedKeyUsage: - return "The extended key usage is not valid." - case .invalidIDLinkage: - return "The ID linkage is not valid." - case .pathLengthConstraintExceeded: - return "The path length constraint was exceeded." - case .invalidRoot: - return "The root or anchor certificate is not valid." - case .crlExpired: - return "The CRL has expired." - case .crlNotValidYet: - return "The CRL is not yet valid." - case .crlNotFound: - return "The CRL was not found." - case .crlServerDown: - return "The CRL server is down." - case .crlBadURI: - return "The CRL has a bad Uniform Resource Identifier." - case .unknownCertExtension: - return "An unknown certificate extension was encountered." - case .unknownCRLExtension: - return "An unknown CRL extension was encountered." - case .crlNotTrusted: - return "The CRL is not trusted." - case .crlPolicyFailed: - return "The CRL policy failed." - case .idpFailure: - return "The issuing distribution point was not valid." - case .smimeEmailAddressesNotFound: - return "An email address mismatch was encountered." - case .smimeBadExtendedKeyUsage: - return "The appropriate extended key usage for SMIME was not found." - case .smimeBadKeyUsage: - return "The key usage is not compatible with SMIME." - case .smimeKeyUsageNotCritical: - return "The key usage extension is not marked as critical." - case .smimeNoEmailAddress: - return "No email address was found in the certificate." - case .smimeSubjAltNameNotCritical: - return "The subject alternative name extension is not marked as critical." - case .sslBadExtendedKeyUsage: - return "The appropriate extended key usage for SSL was not found." - case .ocspBadResponse: - return "The OCSP response was incorrect or could not be parsed." - case .ocspBadRequest: - return "The OCSP request was incorrect or could not be parsed." - case .ocspUnavailable: - return "OCSP service is unavailable." - case .ocspStatusUnrecognized: - return "The OCSP server did not recognize this certificate." - case .endOfData: - return "An end-of-data was detected." - case .incompleteCertRevocationCheck: - return "An incomplete certificate revocation check occurred." - case .networkFailure: - return "A network failure occurred." - case .ocspNotTrustedToAnchor: - return "The OCSP response was not trusted to a root or anchor certificate." - case .recordModified: - return "The record was modified." - case .ocspSignatureError: - return "The OCSP response had an invalid signature." - case .ocspNoSigner: - return "The OCSP response had no signer." - case .ocspResponderMalformedReq: - return "The OCSP responder was given a malformed request." - case .ocspResponderInternalError: - return "The OCSP responder encountered an internal error." - case .ocspResponderTryLater: - return "The OCSP responder is busy, try again later." - case .ocspResponderSignatureRequired: - return "The OCSP responder requires a signature." - case .ocspResponderUnauthorized: - return "The OCSP responder rejected this request as unauthorized." - case .ocspResponseNonceMismatch: - return "The OCSP response nonce did not match the request." - case .codeSigningBadCertChainLength: - return "Code signing encountered an incorrect certificate chain length." - case .codeSigningNoBasicConstraints: - return "Code signing found no basic constraints." - case .codeSigningBadPathLengthConstraint: - return "Code signing encountered an incorrect path length constraint." - case .codeSigningNoExtendedKeyUsage: - return "Code signing found no extended key usage." - case .codeSigningDevelopment: - return "Code signing indicated use of a development-only certificate." - case .resourceSignBadCertChainLength: - return "Resource signing has encountered an incorrect certificate chain length." - case .resourceSignBadExtKeyUsage: - return "Resource signing has encountered an error in the extended key usage." - case .trustSettingDeny: - return "The trust setting for this policy was set to Deny." - case .invalidSubjectName: - return "An invalid certificate subject name was encountered." - case .unknownQualifiedCertStatement: - return "An unknown qualified certificate statement was encountered." - case .mobileMeRequestQueued: - return "The MobileMe request will be sent during the next connection." - case .mobileMeRequestRedirected: - return "The MobileMe request was redirected." - case .mobileMeServerError: - return "A MobileMe server error occurred." - case .mobileMeServerNotAvailable: - return "The MobileMe server is not available." - case .mobileMeServerAlreadyExists: - return "The MobileMe server reported that the item already exists." - case .mobileMeServerServiceErr: - return "A MobileMe service error has occurred." - case .mobileMeRequestAlreadyPending: - return "A MobileMe request is already pending." - case .mobileMeNoRequestPending: - return "MobileMe has no request pending." - case .mobileMeCSRVerifyFailure: - return "A MobileMe CSR verification failure has occurred." - case .mobileMeFailedConsistencyCheck: - return "MobileMe has found a failed consistency check." - case .notInitialized: - return "A function was called without initializing CSSM." - case .invalidHandleUsage: - return "The CSSM handle does not match with the service type." - case .pvcReferentNotFound: - return "A reference to the calling module was not found in the list of authorized callers." - case .functionIntegrityFail: - return "A function address was not within the verified module." - case .internalError: - return "An internal error has occurred." - case .memoryError: - return "A memory error has occurred." - case .invalidData: - return "Invalid data was encountered." - case .mdsError: - return "A Module Directory Service error has occurred." - case .invalidPointer: - return "An invalid pointer was encountered." - case .selfCheckFailed: - return "Self-check has failed." - case .functionFailed: - return "A function has failed." - case .moduleManifestVerifyFailed: - return "A module manifest verification failure has occurred." - case .invalidGUID: - return "An invalid GUID was encountered." - case .invalidHandle: - return "An invalid handle was encountered." - case .invalidDBList: - return "An invalid DB list was encountered." - case .invalidPassthroughID: - return "An invalid passthrough ID was encountered." - case .invalidNetworkAddress: - return "An invalid network address was encountered." - case .crlAlreadySigned: - return "The certificate revocation list is already signed." - case .invalidNumberOfFields: - return "An invalid number of fields were encountered." - case .verificationFailure: - return "A verification failure occurred." - case .unknownTag: - return "An unknown tag was encountered." - case .invalidSignature: - return "An invalid signature was encountered." - case .invalidName: - return "An invalid name was encountered." - case .invalidCertificateRef: - return "An invalid certificate reference was encountered." - case .invalidCertificateGroup: - return "An invalid certificate group was encountered." - case .tagNotFound: - return "The specified tag was not found." - case .invalidQuery: - return "The specified query was not valid." - case .invalidValue: - return "An invalid value was detected." - case .callbackFailed: - return "A callback has failed." - case .aclDeleteFailed: - return "An ACL delete operation has failed." - case .aclReplaceFailed: - return "An ACL replace operation has failed." - case .aclAddFailed: - return "An ACL add operation has failed." - case .aclChangeFailed: - return "An ACL change operation has failed." - case .invalidAccessCredentials: - return "Invalid access credentials were encountered." - case .invalidRecord: - return "An invalid record was encountered." - case .invalidACL: - return "An invalid ACL was encountered." - case .invalidSampleValue: - return "An invalid sample value was encountered." - case .incompatibleVersion: - return "An incompatible version was encountered." - case .privilegeNotGranted: - return "The privilege was not granted." - case .invalidScope: - return "An invalid scope was encountered." - case .pvcAlreadyConfigured: - return "The PVC is already configured." - case .invalidPVC: - return "An invalid PVC was encountered." - case .emmLoadFailed: - return "The EMM load has failed." - case .emmUnloadFailed: - return "The EMM unload has failed." - case .addinLoadFailed: - return "The add-in load operation has failed." - case .invalidKeyRef: - return "An invalid key was encountered." - case .invalidKeyHierarchy: - return "An invalid key hierarchy was encountered." - case .addinUnloadFailed: - return "The add-in unload operation has failed." - case .libraryReferenceNotFound: - return "A library reference was not found." - case .invalidAddinFunctionTable: - return "An invalid add-in function table was encountered." - case .invalidServiceMask: - return "An invalid service mask was encountered." - case .moduleNotLoaded: - return "A module was not loaded." - case .invalidSubServiceID: - return "An invalid subservice ID was encountered." - case .attributeNotInContext: - return "An attribute was not in the context." - case .moduleManagerInitializeFailed: - return "A module failed to initialize." - case .moduleManagerNotFound: - return "A module was not found." - case .eventNotificationCallbackNotFound: - return "An event notification callback was not found." - case .inputLengthError: - return "An input length error was encountered." - case .outputLengthError: - return "An output length error was encountered." - case .privilegeNotSupported: - return "The privilege is not supported." - case .deviceError: - return "A device error was encountered." - case .attachHandleBusy: - return "The CSP handle was busy." - case .notLoggedIn: - return "You are not logged in." - case .algorithmMismatch: - return "An algorithm mismatch was encountered." - case .keyUsageIncorrect: - return "The key usage is incorrect." - case .keyBlobTypeIncorrect: - return "The key blob type is incorrect." - case .keyHeaderInconsistent: - return "The key header is inconsistent." - case .unsupportedKeyFormat: - return "The key header format is not supported." - case .unsupportedKeySize: - return "The key size is not supported." - case .invalidKeyUsageMask: - return "The key usage mask is not valid." - case .unsupportedKeyUsageMask: - return "The key usage mask is not supported." - case .invalidKeyAttributeMask: - return "The key attribute mask is not valid." - case .unsupportedKeyAttributeMask: - return "The key attribute mask is not supported." - case .invalidKeyLabel: - return "The key label is not valid." - case .unsupportedKeyLabel: - return "The key label is not supported." - case .invalidKeyFormat: - return "The key format is not valid." - case .unsupportedVectorOfBuffers: - return "The vector of buffers is not supported." - case .invalidInputVector: - return "The input vector is not valid." - case .invalidOutputVector: - return "The output vector is not valid." - case .invalidContext: - return "An invalid context was encountered." - case .invalidAlgorithm: - return "An invalid algorithm was encountered." - case .invalidAttributeKey: - return "A key attribute was not valid." - case .missingAttributeKey: - return "A key attribute was missing." - case .invalidAttributeInitVector: - return "An init vector attribute was not valid." - case .missingAttributeInitVector: - return "An init vector attribute was missing." - case .invalidAttributeSalt: - return "A salt attribute was not valid." - case .missingAttributeSalt: - return "A salt attribute was missing." - case .invalidAttributePadding: - return "A padding attribute was not valid." - case .missingAttributePadding: - return "A padding attribute was missing." - case .invalidAttributeRandom: - return "A random number attribute was not valid." - case .missingAttributeRandom: - return "A random number attribute was missing." - case .invalidAttributeSeed: - return "A seed attribute was not valid." - case .missingAttributeSeed: - return "A seed attribute was missing." - case .invalidAttributePassphrase: - return "A passphrase attribute was not valid." - case .missingAttributePassphrase: - return "A passphrase attribute was missing." - case .invalidAttributeKeyLength: - return "A key length attribute was not valid." - case .missingAttributeKeyLength: - return "A key length attribute was missing." - case .invalidAttributeBlockSize: - return "A block size attribute was not valid." - case .missingAttributeBlockSize: - return "A block size attribute was missing." - case .invalidAttributeOutputSize: - return "An output size attribute was not valid." - case .missingAttributeOutputSize: - return "An output size attribute was missing." - case .invalidAttributeRounds: - return "The number of rounds attribute was not valid." - case .missingAttributeRounds: - return "The number of rounds attribute was missing." - case .invalidAlgorithmParms: - return "An algorithm parameters attribute was not valid." - case .missingAlgorithmParms: - return "An algorithm parameters attribute was missing." - case .invalidAttributeLabel: - return "A label attribute was not valid." - case .missingAttributeLabel: - return "A label attribute was missing." - case .invalidAttributeKeyType: - return "A key type attribute was not valid." - case .missingAttributeKeyType: - return "A key type attribute was missing." - case .invalidAttributeMode: - return "A mode attribute was not valid." - case .missingAttributeMode: - return "A mode attribute was missing." - case .invalidAttributeEffectiveBits: - return "An effective bits attribute was not valid." - case .missingAttributeEffectiveBits: - return "An effective bits attribute was missing." - case .invalidAttributeStartDate: - return "A start date attribute was not valid." - case .missingAttributeStartDate: - return "A start date attribute was missing." - case .invalidAttributeEndDate: - return "An end date attribute was not valid." - case .missingAttributeEndDate: - return "An end date attribute was missing." - case .invalidAttributeVersion: - return "A version attribute was not valid." - case .missingAttributeVersion: - return "A version attribute was missing." - case .invalidAttributePrime: - return "A prime attribute was not valid." - case .missingAttributePrime: - return "A prime attribute was missing." - case .invalidAttributeBase: - return "A base attribute was not valid." - case .missingAttributeBase: - return "A base attribute was missing." - case .invalidAttributeSubprime: - return "A subprime attribute was not valid." - case .missingAttributeSubprime: - return "A subprime attribute was missing." - case .invalidAttributeIterationCount: - return "An iteration count attribute was not valid." - case .missingAttributeIterationCount: - return "An iteration count attribute was missing." - case .invalidAttributeDLDBHandle: - return "A database handle attribute was not valid." - case .missingAttributeDLDBHandle: - return "A database handle attribute was missing." - case .invalidAttributeAccessCredentials: - return "An access credentials attribute was not valid." - case .missingAttributeAccessCredentials: - return "An access credentials attribute was missing." - case .invalidAttributePublicKeyFormat: - return "A public key format attribute was not valid." - case .missingAttributePublicKeyFormat: - return "A public key format attribute was missing." - case .invalidAttributePrivateKeyFormat: - return "A private key format attribute was not valid." - case .missingAttributePrivateKeyFormat: - return "A private key format attribute was missing." - case .invalidAttributeSymmetricKeyFormat: - return "A symmetric key format attribute was not valid." - case .missingAttributeSymmetricKeyFormat: - return "A symmetric key format attribute was missing." - case .invalidAttributeWrappedKeyFormat: - return "A wrapped key format attribute was not valid." - case .missingAttributeWrappedKeyFormat: - return "A wrapped key format attribute was missing." - case .stagedOperationInProgress: - return "A staged operation is in progress." - case .stagedOperationNotStarted: - return "A staged operation was not started." - case .verifyFailed: - return "A cryptographic verification failure has occurred." - case .querySizeUnknown: - return "The query size is unknown." - case .blockSizeMismatch: - return "A block size mismatch occurred." - case .publicKeyInconsistent: - return "The public key was inconsistent." - case .deviceVerifyFailed: - return "A device verification failure has occurred." - case .invalidLoginName: - return "An invalid login name was detected." - case .alreadyLoggedIn: - return "The user is already logged in." - case .invalidDigestAlgorithm: - return "An invalid digest algorithm was detected." - case .invalidCRLGroup: - return "An invalid CRL group was detected." - case .certificateCannotOperate: - return "The certificate cannot operate." - case .certificateExpired: - return "An expired certificate was detected." - case .certificateNotValidYet: - return "The certificate is not yet valid." - case .certificateRevoked: - return "The certificate was revoked." - case .certificateSuspended: - return "The certificate was suspended." - case .insufficientCredentials: - return "Insufficient credentials were detected." - case .invalidAction: - return "The action was not valid." - case .invalidAuthority: - return "The authority was not valid." - case .verifyActionFailed: - return "A verify action has failed." - case .invalidCertAuthority: - return "The certificate authority was not valid." - case .invaldCRLAuthority: - return "The CRL authority was not valid." - case .invalidCRLEncoding: - return "The CRL encoding was not valid." - case .invalidCRLType: - return "The CRL type was not valid." - case .invalidCRL: - return "The CRL was not valid." - case .invalidFormType: - return "The form type was not valid." - case .invalidID: - return "The ID was not valid." - case .invalidIdentifier: - return "The identifier was not valid." - case .invalidIndex: - return "The index was not valid." - case .invalidPolicyIdentifiers: - return "The policy identifiers are not valid." - case .invalidTimeString: - return "The time specified was not valid." - case .invalidReason: - return "The trust policy reason was not valid." - case .invalidRequestInputs: - return "The request inputs are not valid." - case .invalidResponseVector: - return "The response vector was not valid." - case .invalidStopOnPolicy: - return "The stop-on policy was not valid." - case .invalidTuple: - return "The tuple was not valid." - case .multipleValuesUnsupported: - return "Multiple values are not supported." - case .notTrusted: - return "The trust policy was not trusted." - case .noDefaultAuthority: - return "No default authority was detected." - case .rejectedForm: - return "The trust policy had a rejected form." - case .requestLost: - return "The request was lost." - case .requestRejected: - return "The request was rejected." - case .unsupportedAddressType: - return "The address type is not supported." - case .unsupportedService: - return "The service is not supported." - case .invalidTupleGroup: - return "The tuple group was not valid." - case .invalidBaseACLs: - return "The base ACLs are not valid." - case .invalidTupleCredendtials: - return "The tuple credentials are not valid." - case .invalidEncoding: - return "The encoding was not valid." - case .invalidValidityPeriod: - return "The validity period was not valid." - case .invalidRequestor: - return "The requestor was not valid." - case .requestDescriptor: - return "The request descriptor was not valid." - case .invalidBundleInfo: - return "The bundle information was not valid." - case .invalidCRLIndex: - return "The CRL index was not valid." - case .noFieldValues: - return "No field values were detected." - case .unsupportedFieldFormat: - return "The field format is not supported." - case .unsupportedIndexInfo: - return "The index information is not supported." - case .unsupportedLocality: - return "The locality is not supported." - case .unsupportedNumAttributes: - return "The number of attributes is not supported." - case .unsupportedNumIndexes: - return "The number of indexes is not supported." - case .unsupportedNumRecordTypes: - return "The number of record types is not supported." - case .fieldSpecifiedMultiple: - return "Too many fields were specified." - case .incompatibleFieldFormat: - return "The field format was incompatible." - case .invalidParsingModule: - return "The parsing module was not valid." - case .databaseLocked: - return "The database is locked." - case .datastoreIsOpen: - return "The data store is open." - case .missingValue: - return "A missing value was detected." - case .unsupportedQueryLimits: - return "The query limits are not supported." - case .unsupportedNumSelectionPreds: - return "The number of selection predicates is not supported." - case .unsupportedOperator: - return "The operator is not supported." - case .invalidDBLocation: - return "The database location is not valid." - case .invalidAccessRequest: - return "The access request is not valid." - case .invalidIndexInfo: - return "The index information is not valid." - case .invalidNewOwner: - return "The new owner is not valid." - case .invalidModifyMode: - return "The modify mode is not valid." - case .missingRequiredExtension: - return "A required certificate extension is missing." - case .extendedKeyUsageNotCritical: - return "The extended key usage extension was not marked critical." - case .timestampMissing: - return "A timestamp was expected but was not found." - case .timestampInvalid: - return "The timestamp was not valid." - case .timestampNotTrusted: - return "The timestamp was not trusted." - case .timestampServiceNotAvailable: - return "The timestamp service is not available." - case .timestampBadAlg: - return "An unrecognized or unsupported Algorithm Identifier in timestamp." - case .timestampBadRequest: - return "The timestamp transaction is not permitted or supported." - case .timestampBadDataFormat: - return "The timestamp data submitted has the wrong format." - case .timestampTimeNotAvailable: - return "The time source for the Timestamp Authority is not available." - case .timestampUnacceptedPolicy: - return "The requested policy is not supported by the Timestamp Authority." - case .timestampUnacceptedExtension: - return "The requested extension is not supported by the Timestamp Authority." - case .timestampAddInfoNotAvailable: - return "The additional information requested is not available." - case .timestampSystemFailure: - return "The timestamp request cannot be handled due to system failure." - case .signingTimeMissing: - return "A signing time was expected but was not found." - case .timestampRejection: - return "A timestamp transaction was rejected." - case .timestampWaiting: - return "A timestamp transaction is waiting." - case .timestampRevocationWarning: - return "A timestamp authority revocation warning was issued." - case .timestampRevocationNotification: - return "A timestamp authority revocation notification was issued." - case .unexpectedError: - return "Unexpected error has occurred." - } - } -} - -extension Status: CustomNSError { - - public static var errorDomain: String { - return KeychainAccessErrorDomain - } - - public var errorCode: Int { - return Int(rawValue) - } - - public var errorUserInfo: [String : Any] { - return [NSLocalizedDescriptionKey: description] - } -} diff --git a/Example/Pods/KeychainAccess/README.md b/Example/Pods/KeychainAccess/README.md deleted file mode 100644 index 480f1218e..000000000 --- a/Example/Pods/KeychainAccess/README.md +++ /dev/null @@ -1,598 +0,0 @@ -# KeychainAccess -[![CI Status](http://img.shields.io/travis/kishikawakatsumi/KeychainAccess.svg)](https://travis-ci.org/kishikawakatsumi/KeychainAccess) -[![Coverage Status](https://img.shields.io/coveralls/kishikawakatsumi/KeychainAccess.svg)](https://coveralls.io/github/kishikawakatsumi/KeychainAccess?branch=master) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) -[![Version](https://img.shields.io/cocoapods/v/KeychainAccess.svg)](http://cocoadocs.org/docsets/KeychainAccess) -[![Platform](https://img.shields.io/cocoapods/p/KeychainAccess.svg)](http://cocoadocs.org/docsets/KeychainAccess) - -KeychainAccess is a simple Swift wrapper for Keychain that works on iOS and OS X. Makes using Keychain APIs extremely easy and much more palatable to use in Swift. - - - - - -## :bulb: Features - -- Simple interface -- Support access group -- [Support accessibility](#accessibility) -- [Support iCloud sharing](#icloud_sharing) -- **[Support TouchID and Keychain integration (iOS 8+)](#touch_id_integration)** -- **[Support Shared Web Credentials (iOS 8+)](#shared_web_credentials)** -- [Works on both iOS & OS X](#requirements) -- [watchOS and tvOS are supported](#requirements) -- **[Swift 3 & Swift 2.3 compatible](#requirements)** - -## :book: Usage - -##### :eyes: See also: -- [:link: Playground](https://github.com/kishikawakatsumi/KeychainAccess/blob/master/Examples/Playground-iOS.playground/section-1.swift) -- [:link: iOS Example Project](https://github.com/kishikawakatsumi/KeychainAccess/tree/master/Examples/Example-iOS) - -### :key: Basics - -#### Saving Application Password - -```swift -let keychain = Keychain(service: "com.example.github-token") -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -#### Saving Internet Password - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .HTTPS) -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -### :key: Instantiation - -#### Create Keychain for Application Password - -```swift -let keychain = Keychain(service: "com.example.github-token") -``` - -```swift -let keychain = Keychain(service: "com.example.github-token", accessGroup: "12ABCD3E4F.shared") -``` - -#### Create Keychain for Internet Password - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .HTTPS) -``` - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .HTTPS, authenticationType: .HTMLForm) -``` - -### :key: Adding an item - -#### subscripting - -##### for String - -```swift -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -```swift -keychain[string: "kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -##### for NSData - -```swift -keychain[data: "secret"] = NSData(contentsOfFile: "secret.bin") -``` - -#### set method - -```swift -keychain.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -``` - -#### error handling - -```swift -do { - try keychain.set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -} -catch let error { - print(error) -} -``` - -### :key: Obtaining an item - -#### subscripting - -##### for String (If the value is NSData, attempt to convert to String) - -```swift -let token = keychain["kishikawakatsumi"] -``` - -```swift -let token = keychain[string: "kishikawakatsumi"] -``` - -##### for NSData - -```swift -let secretData = keychain[data: "secret"] -``` - -#### get methods - -##### as String - -```swift -let token = try? keychain.get("kishikawakatsumi") -``` - -```swift -let token = try? keychain.getString("kishikawakatsumi") -``` - -##### as NSData - -```swift -let data = try? keychain.getData("kishikawakatsumi") -``` - -### :key: Removing an item - -#### subscripting - -```swift -keychain["kishikawakatsumi"] = nil -``` - -#### remove method - -```swift -do { - try keychain.remove("kishikawakatsumi") -} catch let error { - print("error: \(error)") -} -``` - -### :key: Set Label and Comment - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .HTTPS) -do { - try keychain - .label("github.com (kishikawakatsumi)") - .comment("github access token") - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -} catch let error { - print("error: \(error)") -} -``` - -### :key: Obtaining Other Attributes - -#### PersistentRef - -```swift -let keychain = Keychain() -let persistentRef = keychain[attributes: "kishikawakatsumi"].persistentRef -... -``` - -#### Creation Date - -```swift -let keychain = Keychain() -let creationDate = keychain[attributes: "kishikawakatsumi"].creationDate -... -``` - -#### All Attributes - -```swift -let keychain = Keychain() -do { - let attributes = try keychain.get("kishikawakatsumi") { $0 } - print(attributes.comment) - print(attributes.label) - print(attributes.creator) - ... -} catch let error { - print("error: \(error)") -} -``` - -##### subscripting - -```swift -let keychain = Keychain() -let attributes = keychain[attributes: "kishikawakatsumi"] -print(attributes.comment) -print(attributes.label) -print(attributes.creator) -``` - -### :key: Configuration (Accessibility, Sharing, iCloud Sync) - -**Provides fluent interfaces** - -```swift -let keychain = Keychain(service: "com.example.github-token") - .label("github.com (kishikawakatsumi)") - .synchronizable(true) - .accessibility(.afterFirstUnlock) -``` - -#### Accessibility - -##### Default accessibility matches background application (=kSecAttrAccessibleAfterFirstUnlock) - -```swift -let keychain = Keychain(service: "com.example.github-token") -``` - -##### For background application - -###### Creating instance - -```swift -let keychain = Keychain(service: "com.example.github-token") - .accessibility(.AfterFirstUnlock) - -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -###### One-shot - -```swift -let keychain = Keychain(service: "com.example.github-token") - -do { - try keychain - .accessibility(.afterFirstUnlock) - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -} catch let error { - print("error: \(error)") -} -``` - -##### For foreground application - -###### Creating instance - -```swift -let keychain = Keychain(service: "com.example.github-token") - .accessibility(.WhenUnlocked) - -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -###### One-shot - -```swift -let keychain = Keychain(service: "com.example.github-token") - -do { - try keychain - .accessibility(.whenUnlocked) - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -} catch let error { - print("error: \(error)") -} -``` - -#### :couple: Sharing Keychain items - -```swift -let keychain = Keychain(service: "com.example.github-token", accessGroup: "12ABCD3E4F.shared") -``` - -#### :arrows_counterclockwise: Synchronizing Keychain items with iCloud - -###### Creating instance - -```swift -let keychain = Keychain(service: "com.example.github-token") - .synchronizable(true) - -keychain["kishikawakatsumi"] = "01234567-89ab-cdef-0123-456789abcdef" -``` - -###### One-shot - -```swift -let keychain = Keychain(service: "com.example.github-token") - -do { - try keychain - .synchronizable(true) - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") -} catch let error { - print("error: \(error)") -} -``` - -### :fu: Touch ID integration - -**Any Operation that require authentication must be run in the background thread.** -**If you run in the main thread, UI thread will lock for the system to try to display the authentication dialog.** - -#### :closed_lock_with_key: Adding a Touch ID protected item - -If you want to store the Touch ID protected Keychain item, specify `accessibility` and `authenticationPolicy` attributes. - -```swift -let keychain = Keychain(service: "com.example.github-token") - -dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { - do { - // Should be the secret invalidated when passcode is removed? If not then use `.WhenUnlocked` - try keychain - .accessibility(.WhenPasscodeSetThisDeviceOnly, authenticationPolicy: .UserPresence) - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") - } catch let error { - // Error handling if needed... - } -} -``` - -#### :closed_lock_with_key: Updating a Touch ID protected item - -The same way as when adding. - -**Do not run in the main thread if there is a possibility that the item you are trying to add already exists, and protected.** -**Because updating protected items requires authentication.** - -Additionally, you want to show custom authentication prompt message when updating, specify an `authenticationPrompt` attribute. -If the item not protected, the `authenticationPrompt` parameter just be ignored. - -```swift -let keychain = Keychain(service: "com.example.github-token") - -DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async { - do { - // Should be the secret invalidated when passcode is removed? If not then use `.WhenUnlocked` - try keychain - .accessibility(.whenPasscodeSetThisDeviceOnly, authenticationPolicy: .userPresence) - .authenticationPrompt("Authenticate to update your access token") - .set("01234567-89ab-cdef-0123-456789abcdef", key: "kishikawakatsumi") - } catch let error { - // Error handling if needed... - } -} -``` - -#### :closed_lock_with_key: Obtaining a Touch ID protected item - -The same way as when you get a normal item. It will be displayed automatically Touch ID or passcode authentication If the item you try to get is protected. -If you want to show custom authentication prompt message, specify an `authenticationPrompt` attribute. -If the item not protected, the `authenticationPrompt` parameter just be ignored. - -```swift -let keychain = Keychain(service: "com.example.github-token") - -DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async { - do { - let password = try keychain - .authenticationPrompt("Authenticate to login to server") - .get("kishikawakatsumi") - - print("password: \(password)") - } catch let error { - // Error handling if needed... - } -} -``` - -#### :closed_lock_with_key: Removing a Touch ID protected item - -The same way as when you remove a normal item. -There is no way to show Touch ID or passcode authentication when removing Keychain items. - -```swift -let keychain = Keychain(service: "com.example.github-token") - -do { - try keychain.remove("kishikawakatsumi") -} catch let error { - // Error handling if needed... -} -``` - -### :key: Shared Web Credentials - -> Shared web credentials is a programming interface that enables native iOS apps to share credentials with their website counterparts. For example, a user may log in to a website in Safari, entering a user name and password, and save those credentials using the iCloud Keychain. Later, the user may run a native app from the same developer, and instead of the app requiring the user to reenter a user name and password, shared web credentials gives it access to the credentials that were entered earlier in Safari. The user can also create new accounts, update passwords, or delete her account from within the app. These changes are then saved and used by Safari. - - - -```swift -let keychain = Keychain(server: "https://www.kishikawakatsumi.com", protocolType: .HTTPS) - -let username = "kishikawakatsumi@mac.com" - -// First, check the credential in the app's Keychain -if let password = try? keychain.get(username) { - // If found password in the Keychain, - // then log into the server -} else { - // If not found password in the Keychain, - // try to read from Shared Web Credentials - keychain.getSharedPassword(username) { (password, error) -> () in - if password != nil { - // If found password in the Shared Web Credentials, - // then log into the server - // and save the password to the Keychain - - keychain[username] = password - } else { - // If not found password either in the Keychain also Shared Web Credentials, - // prompt for username and password - - // Log into server - - // If the login is successful, - // save the credentials to both the Keychain and the Shared Web Credentials. - - keychain[username] = inputPassword - keychain.setSharedPassword(inputPassword, account: username) - } - } -} -``` - -#### Request all associated domain's credentials - -```swift -Keychain.requestSharedWebCredential { (credentials, error) -> () in - -} -``` - -#### Generate strong random password - -Generate strong random password that is in the same format used by Safari autofill (xxx-xxx-xxx-xxx). - -```swift -let password = Keychain.generatePassword() // => Nhu-GKm-s3n-pMx -``` - -#### How to set up Shared Web Credentials - -> 1. Add a com.apple.developer.associated-domains entitlement to your app. This entitlement must include all the domains with which you want to share credentials. - -> 2. Add an apple-app-site-association file to your website. This file must include application identifiers for all the apps with which the site wants to share credentials, and it must be properly signed. - -> 3. When the app is installed, the system downloads and verifies the site association file for each of its associated domains. If the verification is successful, the app is associated with the domain. - -**More details:** - - -### :key: Debugging - -#### Display all stored items if print keychain object - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .HTTPS) -print("\(keychain)") -``` - -``` -=> -[ - [authenticationType: Default, key: kishikawakatsumi, server: github.com, class: InternetPassword, protocol: HTTPS] - [authenticationType: Default, key: hirohamada, server: github.com, class: InternetPassword, protocol: HTTPS] - [authenticationType: Default, key: honeylemon, server: github.com, class: InternetPassword, protocol: HTTPS] -] -``` - -#### Obtaining all stored keys - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .https) - -let keys = keychain.allKeys() -for key in keys { - print("key: \(key)") -} -``` - -``` -=> -key: kishikawakatsumi -key: hirohamada -key: honeylemon -``` - -#### Obtaining all stored items - -```swift -let keychain = Keychain(server: "https://github.com", protocolType: .https) - -let items = keychain.allItems() -for item in items { - print("item: \(item)") -} -``` - -``` -=> -item: [authenticationType: Default, key: kishikawakatsumi, server: github.com, class: InternetPassword, protocol: HTTPS] -item: [authenticationType: Default, key: hirohamada, server: github.com, class: InternetPassword, protocol: HTTPS] -item: [authenticationType: Default, key: honeylemon, server: github.com, class: InternetPassword, protocol: HTTPS] -``` - -## Requirements - -| | OS | Swift | -|------------|----------------------------------------|---------------| -| **v1.1.x** | iOS 7+, OSX 10.9+ | 1.1 | -| **v1.2.x** | iOS 7+, OSX 10.9+ | 1.2 | -| **v2.0.x** | iOS 7+, OSX 10.9+, watchOS 2+ | 2.0 | -| **v2.1.x** | iOS 7+, OSX 10.9+, watchOS 2+ | 2.0 | -| **v2.2.x** | iOS 8+, OSX 10.9+, watchOS 2+, tvOS 9+ | 2.0, 2.1 | -| **v2.3.x** | iOS 8+, OSX 10.9+, watchOS 2+, tvOS 9+ | 2.0, 2.1, 2.2 | -| **v2.4.x** | iOS 8+, OSX 10.9+, watchOS 2+, tvOS 9+ | 2.2, 2.3 | -| **v3.x** | iOS 8+, OSX 10.9+, watchOS 2+, tvOS 9+ | 3.0 | - -## Installation - -### CocoaPods - -KeychainAccess is available through [CocoaPods](http://cocoapods.org). To install -it, simply add the following lines to your Podfile: - -```ruby -use_frameworks! -pod 'KeychainAccess' -``` - -### Carthage - -KeychainAccess is available through [Carthage](https://github.com/Carthage/Carthage). To install -it, simply add the following line to your Cartfile: - -`github "kishikawakatsumi/KeychainAccess"` - -### Swift Package Manager - -KeychainAccess is also available through [Swift Package Manager](https://github.com/apple/swift-package-manager/). -First, create `Package.swift` that its package declaration includes: - -```swift -import PackageDescription - -let package = Package( - dependencies: [ - .Package(url: "https://github.com/kishikawakatsumi/KeychainAccess.git", majorVersion: 2) - ] -) -``` - -Then, type - -```shell -$ swift build -``` - -### To manually add to your project - -1. Add `Lib/KeychainAccess.xcodeproj` to your project -2. Link `KeychainAccess.framework` with your target -3. Add `Copy Files Build Phase` to include the framework to your application bundle - -_See [iOS Example Project](https://github.com/kishikawakatsumi/KeychainAccess/tree/master/Examples/Example-iOS) as reference._ - - - -## Author - -kishikawa katsumi, kishikawakatsumi@mac.com - -## License - -KeychainAccess is available under the MIT license. See the LICENSE file for more info. diff --git a/Example/Pods/Local Podspecs/IrohaSwift.podspec.json b/Example/Pods/Local Podspecs/IrohaSwift.podspec.json deleted file mode 100644 index 68f8827eb..000000000 --- a/Example/Pods/Local Podspecs/IrohaSwift.podspec.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "IrohaSwift", - "version": "0.0.12", - "summary": "Easy create signature of Iroha Blockchain", - "homepage": "http://www.soramitsu.co.jp/", - "license": "Apache License Version 2.0", - "authors": { - "Soramitsu Co., Ltd.": "info@soramitsu.co.jp" - }, - "source": { - "git": "https://github.com/soramitsu/IrohaSwift.git", - "tag": "0.0.12" - }, - "platforms": { - "ios": "8.0" - }, - "source_files": [ - "IrohaSwift/libs/*.{h,c}", - "IrohaSwift/*.{h,swift}" - ], - "public_header_files": "IrohaSwift/*.h", - "preserve_paths": "IrohaSwift/libs/module.modulemap", - "pod_target_xcconfig": { - "SWIFT_INCLUDE_PATHS": "$(SRCROOT)/**", - "LIBRARY_SEARCH_PATHS": "$(SRCROOT)/IrohaSwift/**" - } -} diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock deleted file mode 100644 index a91976807..000000000 --- a/Example/Pods/Manifest.lock +++ /dev/null @@ -1,29 +0,0 @@ -PODS: - - IrohaSwift (0.0.12) - - KeychainAccess (3.0.0) - - SwiftyJSON (3.0.0) - -DEPENDENCIES: - - IrohaSwift (from `https://github.com/soramitsu/iroha-ios.git`) - - KeychainAccess (= 3.0.0) - - SwiftyJSON (= 3.0.0) - -EXTERNAL SOURCES: - IrohaSwift: - :git: https://github.com/soramitsu/iroha-ios.git - :submodules: true - -CHECKOUT OPTIONS: - IrohaSwift: - :commit: e865008683914e3c0f839b862cfbe447b3b02296 - :git: https://github.com/soramitsu/iroha-ios.git - :submodules: true - -SPEC CHECKSUMS: - IrohaSwift: 3cbf6f4cd51e77628291a52febe826b77ccda618 - KeychainAccess: 412bf2650d9aebfc8135a58103b90ec38caad7f8 - SwiftyJSON: f57b2b44bc166617372d1c70773591fe9f0f5fd4 - -PODFILE CHECKSUM: 06ed1984339366a3ee87ead2ecbea545dc73fda6 - -COCOAPODS: 1.1.0.rc.2 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index f369d933d..000000000 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1279 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 00853B2F7D39FA699D51B97EDC5727A8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - 0646143D120A6941C494C4251B2CBCA8 /* sha3.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CA4CE6B7061AB6D11A8E844255A25A /* sha3.c */; }; - 0750087E9E1301D8D246243D2A086368 /* ge.c in Sources */ = {isa = PBXBuildFile; fileRef = 058D2C0BDCD4D67C825ABE71AA44FB01 /* ge.c */; }; - 0F1686C1EBCDF59E961BFFF5324DC103 /* Pods-ExampleUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A59E7231873C248546DF7541EF613BE /* Pods-ExampleUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14F17A64C38A928A625E95BD5091C89F /* verify.c in Sources */ = {isa = PBXBuildFile; fileRef = 8BF3D8F94DA5E449A4EDA0C959AC8E88 /* verify.c */; }; - 202E8A6FE778EFDA20DF9F40328F63B5 /* sc.h in Headers */ = {isa = PBXBuildFile; fileRef = 67735315C9658EF98EF2C66C3F569E4C /* sc.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2B1455FDA4BAE3A639FA56230A32A4F3 /* fe.h in Headers */ = {isa = PBXBuildFile; fileRef = F91F7D0E69D7471C71F8F2764CCD587F /* fe.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2E97BE41D443D7641693B53D2AF2244E /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 141E4A64DF60054A3EA3E8D8B34FBF0E /* Keychain.swift */; }; - 3416746E60AE7211274F48CB7605C459 /* seed.c in Sources */ = {isa = PBXBuildFile; fileRef = 09BBDE1E61EABC42D0871DE954CEDCEC /* seed.c */; }; - 390B8ADCFEBDB9AB31E8C7ACD1CCAE4F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - 40A3157EF9DCE6B16FC5F783BC51732B /* KeychainAccess-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E2F6F758C6A8FB379B8DFB85BC06C32 /* KeychainAccess-dummy.m */; }; - 43A364739786BB8304DEF6C0FF05CDDA /* sha3.h in Headers */ = {isa = PBXBuildFile; fileRef = 72794BEAABF2274FBFC6AFF306D67DD0 /* sha3.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 45E878CA8BDA9F04194DEF2DCD76A6AB /* IrohaSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 510238CEC10DEE2D7F37F6B7C4569E8F /* IrohaSwift-dummy.m */; }; - 462BF081C2EA25D41F4ED6013FA24679 /* add_scalar.c in Sources */ = {isa = PBXBuildFile; fileRef = 3BF67257EC636A386AA72C4414B4508F /* add_scalar.c */; }; - 478698D6DDD47F58035E236EAD82E868 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - 4C704C6BBDEAA3CB9930736D0765544B /* SwiftyJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = B95E2881D0170BCB391E357BE21EFE83 /* SwiftyJSON.swift */; }; - 4F62D99B678E9DC6724AC4691EC17772 /* IrohaSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACD8A25BA5A91F4F8596582E052BB293 /* IrohaSwift.swift */; }; - 5280BF42A578D3C5B68DB09FE8ABA653 /* keypair.c in Sources */ = {isa = PBXBuildFile; fileRef = 22265ED8909901C7F7C0B499E73F8C55 /* keypair.c */; }; - 55F9FBC65B032F0CBEB48157A3BFD594 /* KeychainAccess-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AF1EAE9853AFE9A6F5C867F1C59E05F /* KeychainAccess-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 620CC66870C7713ED07E6A58DEF33AAD /* sc.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DD0BF8C21C68AC5C40CED3878C10EDA /* sc.c */; }; - 655309A3DBD0DEAE458EB03EF0271C5B /* fixedint.h in Headers */ = {isa = PBXBuildFile; fileRef = 52A44794FB34BD54F90A5CD743338124 /* fixedint.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6792F9FBAC89E492240EF08DFA03A031 /* SwiftyJSON-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E7BB4587F5EC279BD712832834B5179 /* SwiftyJSON-dummy.m */; }; - 69A065F61AB9711FBA3736FCD9D0B8E6 /* base64.c in Sources */ = {isa = PBXBuildFile; fileRef = 73B855921CD1D07FF8950733BFFE6115 /* base64.c */; }; - 6DCD91A941FE4BC72B12176E3D2B44ED /* fe.c in Sources */ = {isa = PBXBuildFile; fileRef = 8EC380EFE6FE71F62434A480706A5D51 /* fe.c */; }; - 73A53CF735DBFB929A6F7B8325426C33 /* base64.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BFE14280E11FA378FCCD1C110B37FC8 /* base64.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 79855D26A1DB2B90DC40C5ABC43252F3 /* ed25519.h in Headers */ = {isa = PBXBuildFile; fileRef = 545EE48503CB7895E6642F6FD69E2DC9 /* ed25519.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 80E2343AE9B8D80297228FD7F7DD0BA6 /* Pods-ExampleTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D66B277E581ACCADAC536AF2C2FB2E8E /* Pods-ExampleTests-dummy.m */; }; - 8E8CBFF9010374297C9C161EB967AEEF /* Pods-ExampleTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E47265EB6FA6DD4F40CD496F613370B /* Pods-ExampleTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 902475A59ABC653EEE537EA5EF8A4A11 /* KeychainModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8724B28544F0B0F8E8B134A6DBBEAA87 /* KeychainModel.swift */; }; - 93910183FDCF689B958A69AC74DB710A /* precomp_data.h in Headers */ = {isa = PBXBuildFile; fileRef = 6126F3C0A5EA7C0F02AAC672CC5B66F6 /* precomp_data.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 98F69886EE0083171B99EBCD94CE09A3 /* ge.h in Headers */ = {isa = PBXBuildFile; fileRef = 731C66C37B6AE8F0094FDE917192B153 /* ge.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9E22C52342FC0BFF3D2F49F0119DF8A5 /* IrohaSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EA4250E5C0084BD4E1618953FAFF460 /* IrohaSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7CA1C606EA2F794D533C82B9B24DF16 /* Pods-Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C18D00EE1A286D362D3FFCE4B28449A /* Pods-Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACE2C0A73A84E78560293E8DD6F87DB5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - B40B30F27F9B6F57B198DB25C7F13150 /* SwiftyJSON-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23476C16E219D6E9A4E13AD8A5D95124 /* SwiftyJSON-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B65DB10498F1F1C6AE311D3F0CFFE013 /* sign.c in Sources */ = {isa = PBXBuildFile; fileRef = 21508E38C15420081DFA146DB858A487 /* sign.c */; }; - BB443F28196D251FF9ACD20379E7C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - CF81DAADE9CBA4BB2162857316344DB6 /* IrohaSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = 1292796A4E52E089BF4A545FF1EF0601 /* IrohaSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D41160D26B894B6F457D9C222905E46B /* key_exchange.c in Sources */ = {isa = PBXBuildFile; fileRef = 69C730BDEC52853F7C5D563E4ADDE68E /* key_exchange.c */; }; - DC6B2F0F9FD511E70A22840DEFADAD50 /* Pods-Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F7FED35CACB70238519C94E6D828288C /* Pods-Example-dummy.m */; }; - DCDF89FC60C964558C0C86A30000D6E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - E54B6370C6C5DC0062BBAFABB2C8639F /* Ed25519.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE9EB0A39B76F1F683A3F1BE4F75BE57 /* Ed25519.swift */; }; - EB6295B996BD4E6415EA268B47C23379 /* Pods-ExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A01DA5EE78439C3D5078724BA45513D5 /* Pods-ExampleUITests-dummy.m */; }; - FBA3BF780315671FC8B64E7243EDF901 /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6676DD65D4B92831A9B6ACBCC8951D1 /* ColorExtension.swift */; }; - FE3FF5E36C13D67653D44FB1ACC7FCA3 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D60902ECEA42E98C94F886CE596D8D /* Keychain.swift */; }; - FF28C26EEE4D686BE58AD8F2B9D86672 /* HttpRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45C92C861EA43608CE015C4C9476FA97 /* HttpRequest.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 2FABC8CA3913F3FA3F3F53A2B609C282 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 838A2C6DA366DE138E5FDF1AF19D94C0; - remoteInfo = KeychainAccess; - }; - 7F5A13D0D0CC4D95BF20248F8423C828 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0D1BDFA87629F9E81C59B15110CF3A15; - remoteInfo = SwiftyJSON; - }; - C937859CB3781F103F062C0D408711FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 792FE5A63A6CE9389A001DE22D97BD62; - remoteInfo = IrohaSwift; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 058D2C0BDCD4D67C825ABE71AA44FB01 /* ge.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = ge.c; path = IrohaSwift/libs/ge.c; sourceTree = ""; }; - 069D901D767633364FE961219CEAE861 /* IrohaSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IrohaSwift-prefix.pch"; sourceTree = ""; }; - 09BBDE1E61EABC42D0871DE954CEDCEC /* seed.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = seed.c; path = IrohaSwift/libs/seed.c; sourceTree = ""; }; - 0DD0BF8C21C68AC5C40CED3878C10EDA /* sc.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = sc.c; path = IrohaSwift/libs/sc.c; sourceTree = ""; }; - 0E47265EB6FA6DD4F40CD496F613370B /* Pods-ExampleTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ExampleTests-umbrella.h"; sourceTree = ""; }; - 0EA4250E5C0084BD4E1618953FAFF460 /* IrohaSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IrohaSwift-umbrella.h"; sourceTree = ""; }; - 0F8D18467982723D0F655F367F9FEE53 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 106EE280595D0A61B14F60848CC48B5E /* Pods_ExampleTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ExampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 123AFCD997708967B068BFFAAAD458AA /* Pods-Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-Example.modulemap"; sourceTree = ""; }; - 1292796A4E52E089BF4A545FF1EF0601 /* IrohaSwift.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = IrohaSwift.h; path = IrohaSwift/IrohaSwift.h; sourceTree = ""; }; - 129F822B0E9F28AF90FEA5465593A604 /* Pods-ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.release.xcconfig"; sourceTree = ""; }; - 141E4A64DF60054A3EA3E8D8B34FBF0E /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = Lib/KeychainAccess/Keychain.swift; sourceTree = ""; }; - 14B69BBCD903081A01A699CD1673DE07 /* Pods-ExampleTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleTests-acknowledgements.plist"; sourceTree = ""; }; - 1CEC4D75ECA6563D3F2B41F876B83BDC /* Pods-Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.debug.xcconfig"; sourceTree = ""; }; - 21508E38C15420081DFA146DB858A487 /* sign.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = sign.c; path = IrohaSwift/libs/sign.c; sourceTree = ""; }; - 22265ED8909901C7F7C0B499E73F8C55 /* keypair.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = keypair.c; path = IrohaSwift/libs/keypair.c; sourceTree = ""; }; - 23476C16E219D6E9A4E13AD8A5D95124 /* SwiftyJSON-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-umbrella.h"; sourceTree = ""; }; - 28CA4CE6B7061AB6D11A8E844255A25A /* sha3.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = sha3.c; path = IrohaSwift/libs/sha3.c; sourceTree = ""; }; - 2BB6FB3F7D1CA5DD6E3412C874B52D34 /* Pods-ExampleUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ExampleUITests.modulemap"; sourceTree = ""; }; - 2E2F6F758C6A8FB379B8DFB85BC06C32 /* KeychainAccess-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KeychainAccess-dummy.m"; sourceTree = ""; }; - 36F6867465199DF9EF75FB4A2882D5AE /* KeychainAccess.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = KeychainAccess.modulemap; sourceTree = ""; }; - 3A59E7231873C248546DF7541EF613BE /* Pods-ExampleUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ExampleUITests-umbrella.h"; sourceTree = ""; }; - 3BF67257EC636A386AA72C4414B4508F /* add_scalar.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = add_scalar.c; path = IrohaSwift/libs/add_scalar.c; sourceTree = ""; }; - 42B1187D245E965E468F78B94A45DC81 /* Pods-ExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-frameworks.sh"; sourceTree = ""; }; - 43A7070025539262EED27B648D1259D0 /* IrohaSwift.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IrohaSwift.xcconfig; sourceTree = ""; }; - 45C92C861EA43608CE015C4C9476FA97 /* HttpRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HttpRequest.swift; path = IrohaSwift/HttpRequest.swift; sourceTree = ""; }; - 462D66811A6B323C24E23001F9AF765F /* SwiftyJSON.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftyJSON.xcconfig; sourceTree = ""; }; - 473EB885840297AB0FCC064F4E94DE3A /* Pods_ExampleUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4AF1EAE9853AFE9A6F5C867F1C59E05F /* KeychainAccess-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-umbrella.h"; sourceTree = ""; }; - 4BFE14280E11FA378FCCD1C110B37FC8 /* base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = base64.h; path = IrohaSwift/libs/base64.h; sourceTree = ""; }; - 4FC17AC9FDAD70746C704A4A40F3C34A /* Pods-Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-frameworks.sh"; sourceTree = ""; }; - 5022179D9AEBF4FB31479748982AA1E7 /* Pods-ExampleUITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleUITests-resources.sh"; sourceTree = ""; }; - 510238CEC10DEE2D7F37F6B7C4569E8F /* IrohaSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IrohaSwift-dummy.m"; sourceTree = ""; }; - 52A44794FB34BD54F90A5CD743338124 /* fixedint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fixedint.h; path = IrohaSwift/libs/fixedint.h; sourceTree = ""; }; - 545EE48503CB7895E6642F6FD69E2DC9 /* ed25519.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ed25519.h; path = IrohaSwift/libs/ed25519.h; sourceTree = ""; }; - 5495FFE06EAF97ED060762F18022E9BB /* Pods-Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Example.release.xcconfig"; sourceTree = ""; }; - 5C8EA11D5BA9E5670D1ABF67D1A7B6D8 /* SwiftyJSON.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SwiftyJSON.modulemap; sourceTree = ""; }; - 5E7BB4587F5EC279BD712832834B5179 /* SwiftyJSON-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftyJSON-dummy.m"; sourceTree = ""; }; - 6097FA4D4E6B177FC4A85E0F5C14B754 /* Pods-ExampleTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleTests-acknowledgements.markdown"; sourceTree = ""; }; - 60C1F2558C33674E30C3C7E077BBC606 /* Pods-Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Example-resources.sh"; sourceTree = ""; }; - 6126F3C0A5EA7C0F02AAC672CC5B66F6 /* precomp_data.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = precomp_data.h; path = IrohaSwift/libs/precomp_data.h; sourceTree = ""; }; - 641FCBBAA1D6ED616099C158F7440B8B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 67735315C9658EF98EF2C66C3F569E4C /* sc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sc.h; path = IrohaSwift/libs/sc.h; sourceTree = ""; }; - 69C730BDEC52853F7C5D563E4ADDE68E /* key_exchange.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = key_exchange.c; path = IrohaSwift/libs/key_exchange.c; sourceTree = ""; }; - 72442580FBD1FDAB015827CEB3AA475F /* Pods-ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleTests.debug.xcconfig"; sourceTree = ""; }; - 72794BEAABF2274FBFC6AFF306D67DD0 /* sha3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sha3.h; path = IrohaSwift/libs/sha3.h; sourceTree = ""; }; - 731C66C37B6AE8F0094FDE917192B153 /* ge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ge.h; path = IrohaSwift/libs/ge.h; sourceTree = ""; }; - 73B855921CD1D07FF8950733BFFE6115 /* base64.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = base64.c; path = IrohaSwift/libs/base64.c; sourceTree = ""; }; - 8724B28544F0B0F8E8B134A6DBBEAA87 /* KeychainModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeychainModel.swift; path = IrohaSwift/KeychainModel.swift; sourceTree = ""; }; - 8B6350F0C528B9D23082C28E5A4E032C /* Pods-ExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.debug.xcconfig"; sourceTree = ""; }; - 8BF3D8F94DA5E449A4EDA0C959AC8E88 /* verify.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = verify.c; path = IrohaSwift/libs/verify.c; sourceTree = ""; }; - 8C18D00EE1A286D362D3FFCE4B28449A /* Pods-Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Example-umbrella.h"; sourceTree = ""; }; - 8EC380EFE6FE71F62434A480706A5D51 /* fe.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = fe.c; path = IrohaSwift/libs/fe.c; sourceTree = ""; }; - 91543D3B0159EE6C1387FB78EF6F994A /* SwiftyJSON.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftyJSON.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A01DA5EE78439C3D5078724BA45513D5 /* Pods-ExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleUITests-dummy.m"; sourceTree = ""; }; - A1A1442B3E92D2BBA9CC96F50CB2215D /* Pods-Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Example-acknowledgements.markdown"; sourceTree = ""; }; - A3D60902ECEA42E98C94F886CE596D8D /* Keychain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Keychain.swift; path = IrohaSwift/Keychain.swift; sourceTree = ""; }; - AB09EFBC4C37FF5DB09781A01C855DB8 /* IrohaSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = IrohaSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - ACD8A25BA5A91F4F8596582E052BB293 /* IrohaSwift.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IrohaSwift.swift; path = IrohaSwift/IrohaSwift.swift; sourceTree = ""; }; - B90113490902940BCC0DAA245BBC5F51 /* Pods-ExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ExampleUITests.release.xcconfig"; sourceTree = ""; }; - B95E2881D0170BCB391E357BE21EFE83 /* SwiftyJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftyJSON.swift; path = Source/SwiftyJSON.swift; sourceTree = ""; }; - B99DE35EF900500A6CFEFD8C57318C90 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - BCEC3B4A4B730CE797AD04D5EC979AF2 /* IrohaSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = IrohaSwift.modulemap; sourceTree = ""; }; - C084E61E539C92D677AF7463F28562FB /* Pods-ExampleTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ExampleTests.modulemap"; sourceTree = ""; }; - C14F585D55D8F48BEE2E757CF3548934 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C8F1DCDE2B7D636BC3B27B64DEC0E8B6 /* KeychainAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = KeychainAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C9F16CFB4FE1131D618E6449844AB086 /* KeychainAccess.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KeychainAccess.xcconfig; sourceTree = ""; }; - CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - D2023C69282F0AC14735515B4564C203 /* KeychainAccess-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KeychainAccess-prefix.pch"; sourceTree = ""; }; - D4B4DA19F20B6EAE568F5C3ACBCB4609 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D4D4F198FD28BC1C89ED9CD21E4F5A0F /* Pods-Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Example-acknowledgements.plist"; sourceTree = ""; }; - D628618CD0EFF403DE21EC5E37292CD2 /* Pods-ExampleTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-resources.sh"; sourceTree = ""; }; - D66B277E581ACCADAC536AF2C2FB2E8E /* Pods-ExampleTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ExampleTests-dummy.m"; sourceTree = ""; }; - D7DA2DDC00EEB302E0695124D2902885 /* Pods_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DA988F74DDE82FA26DBF31F55E009FE2 /* Pods-ExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ExampleUITests-acknowledgements.markdown"; sourceTree = ""; }; - DFE3444624C83E71196EA4B4F493951D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EA19A6A61AD6F768C1A363DF9BCA390A /* SwiftyJSON-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftyJSON-prefix.pch"; sourceTree = ""; }; - EE9EB0A39B76F1F683A3F1BE4F75BE57 /* Ed25519.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Ed25519.swift; path = IrohaSwift/Ed25519.swift; sourceTree = ""; }; - F2115B22D10BE2BE4B8B5B296D357EED /* Pods-ExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ExampleUITests-acknowledgements.plist"; sourceTree = ""; }; - F6070578FB2F0F256AA9D559091BB912 /* Pods-ExampleTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ExampleTests-frameworks.sh"; sourceTree = ""; }; - F6676DD65D4B92831A9B6ACBCC8951D1 /* ColorExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ColorExtension.swift; path = IrohaSwift/ColorExtension.swift; sourceTree = ""; }; - F7FED35CACB70238519C94E6D828288C /* Pods-Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Example-dummy.m"; sourceTree = ""; }; - F91F7D0E69D7471C71F8F2764CCD587F /* fe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fe.h; path = IrohaSwift/libs/fe.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1EBC39F5198C5D7C0E22FA8C4CA33694 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 00853B2F7D39FA699D51B97EDC5727A8 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 37C0D1127616471731E1C52A48FE9D07 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ACE2C0A73A84E78560293E8DD6F87DB5 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6381A663D2CF015EEDB1126CA437C68A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DCDF89FC60C964558C0C86A30000D6E2 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7A7309C804299147E67418DA1F7D9964 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 478698D6DDD47F58035E236EAD82E868 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 81E8FE40F4F4CC37FD1E886D5DCCC267 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 390B8ADCFEBDB9AB31E8C7ACD1CCAE4F /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E2EAA7510A8023843124BDF85A41FC26 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BB443F28196D251FF9ACD20379E7C28B /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 074CE5224318254E004B71F844C91C9F /* IrohaSwift */ = { - isa = PBXGroup; - children = ( - 3BF67257EC636A386AA72C4414B4508F /* add_scalar.c */, - 73B855921CD1D07FF8950733BFFE6115 /* base64.c */, - 4BFE14280E11FA378FCCD1C110B37FC8 /* base64.h */, - F6676DD65D4B92831A9B6ACBCC8951D1 /* ColorExtension.swift */, - 545EE48503CB7895E6642F6FD69E2DC9 /* ed25519.h */, - EE9EB0A39B76F1F683A3F1BE4F75BE57 /* Ed25519.swift */, - 8EC380EFE6FE71F62434A480706A5D51 /* fe.c */, - F91F7D0E69D7471C71F8F2764CCD587F /* fe.h */, - 52A44794FB34BD54F90A5CD743338124 /* fixedint.h */, - 058D2C0BDCD4D67C825ABE71AA44FB01 /* ge.c */, - 731C66C37B6AE8F0094FDE917192B153 /* ge.h */, - 45C92C861EA43608CE015C4C9476FA97 /* HttpRequest.swift */, - 1292796A4E52E089BF4A545FF1EF0601 /* IrohaSwift.h */, - ACD8A25BA5A91F4F8596582E052BB293 /* IrohaSwift.swift */, - 69C730BDEC52853F7C5D563E4ADDE68E /* key_exchange.c */, - A3D60902ECEA42E98C94F886CE596D8D /* Keychain.swift */, - 8724B28544F0B0F8E8B134A6DBBEAA87 /* KeychainModel.swift */, - 22265ED8909901C7F7C0B499E73F8C55 /* keypair.c */, - 6126F3C0A5EA7C0F02AAC672CC5B66F6 /* precomp_data.h */, - 0DD0BF8C21C68AC5C40CED3878C10EDA /* sc.c */, - 67735315C9658EF98EF2C66C3F569E4C /* sc.h */, - 09BBDE1E61EABC42D0871DE954CEDCEC /* seed.c */, - 28CA4CE6B7061AB6D11A8E844255A25A /* sha3.c */, - 72794BEAABF2274FBFC6AFF306D67DD0 /* sha3.h */, - 21508E38C15420081DFA146DB858A487 /* sign.c */, - 8BF3D8F94DA5E449A4EDA0C959AC8E88 /* verify.c */, - E70E9A804F3FDD82DB0ED05A58945651 /* Support Files */, - ); - path = IrohaSwift; - sourceTree = ""; - }; - 0F4FA9D9A707E2D556F138FE2478098C /* SwiftyJSON */ = { - isa = PBXGroup; - children = ( - B95E2881D0170BCB391E357BE21EFE83 /* SwiftyJSON.swift */, - AE3A5F769FCA12DB96848300663A2EEF /* Support Files */, - ); - path = SwiftyJSON; - sourceTree = ""; - }; - 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { - isa = PBXGroup; - children = ( - CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 57557C86D7700C692E4635633BEB1108 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 7B29973C77120EC8A1E61478E5C382AC /* Pods-Example */, - 6AF0599C93D036772EF68208472B4158 /* Pods-ExampleTests */, - 5EA358DE7D28C72FF57EBD37248FC391 /* Pods-ExampleUITests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - 5EA358DE7D28C72FF57EBD37248FC391 /* Pods-ExampleUITests */ = { - isa = PBXGroup; - children = ( - 0F8D18467982723D0F655F367F9FEE53 /* Info.plist */, - 2BB6FB3F7D1CA5DD6E3412C874B52D34 /* Pods-ExampleUITests.modulemap */, - DA988F74DDE82FA26DBF31F55E009FE2 /* Pods-ExampleUITests-acknowledgements.markdown */, - F2115B22D10BE2BE4B8B5B296D357EED /* Pods-ExampleUITests-acknowledgements.plist */, - A01DA5EE78439C3D5078724BA45513D5 /* Pods-ExampleUITests-dummy.m */, - 42B1187D245E965E468F78B94A45DC81 /* Pods-ExampleUITests-frameworks.sh */, - 5022179D9AEBF4FB31479748982AA1E7 /* Pods-ExampleUITests-resources.sh */, - 3A59E7231873C248546DF7541EF613BE /* Pods-ExampleUITests-umbrella.h */, - 8B6350F0C528B9D23082C28E5A4E032C /* Pods-ExampleUITests.debug.xcconfig */, - B90113490902940BCC0DAA245BBC5F51 /* Pods-ExampleUITests.release.xcconfig */, - ); - name = "Pods-ExampleUITests"; - path = "Target Support Files/Pods-ExampleUITests"; - sourceTree = ""; - }; - 6AF0599C93D036772EF68208472B4158 /* Pods-ExampleTests */ = { - isa = PBXGroup; - children = ( - C14F585D55D8F48BEE2E757CF3548934 /* Info.plist */, - C084E61E539C92D677AF7463F28562FB /* Pods-ExampleTests.modulemap */, - 6097FA4D4E6B177FC4A85E0F5C14B754 /* Pods-ExampleTests-acknowledgements.markdown */, - 14B69BBCD903081A01A699CD1673DE07 /* Pods-ExampleTests-acknowledgements.plist */, - D66B277E581ACCADAC536AF2C2FB2E8E /* Pods-ExampleTests-dummy.m */, - F6070578FB2F0F256AA9D559091BB912 /* Pods-ExampleTests-frameworks.sh */, - D628618CD0EFF403DE21EC5E37292CD2 /* Pods-ExampleTests-resources.sh */, - 0E47265EB6FA6DD4F40CD496F613370B /* Pods-ExampleTests-umbrella.h */, - 72442580FBD1FDAB015827CEB3AA475F /* Pods-ExampleTests.debug.xcconfig */, - 129F822B0E9F28AF90FEA5465593A604 /* Pods-ExampleTests.release.xcconfig */, - ); - name = "Pods-ExampleTests"; - path = "Target Support Files/Pods-ExampleTests"; - sourceTree = ""; - }; - 7B29973C77120EC8A1E61478E5C382AC /* Pods-Example */ = { - isa = PBXGroup; - children = ( - D4B4DA19F20B6EAE568F5C3ACBCB4609 /* Info.plist */, - 123AFCD997708967B068BFFAAAD458AA /* Pods-Example.modulemap */, - A1A1442B3E92D2BBA9CC96F50CB2215D /* Pods-Example-acknowledgements.markdown */, - D4D4F198FD28BC1C89ED9CD21E4F5A0F /* Pods-Example-acknowledgements.plist */, - F7FED35CACB70238519C94E6D828288C /* Pods-Example-dummy.m */, - 4FC17AC9FDAD70746C704A4A40F3C34A /* Pods-Example-frameworks.sh */, - 60C1F2558C33674E30C3C7E077BBC606 /* Pods-Example-resources.sh */, - 8C18D00EE1A286D362D3FFCE4B28449A /* Pods-Example-umbrella.h */, - 1CEC4D75ECA6563D3F2B41F876B83BDC /* Pods-Example.debug.xcconfig */, - 5495FFE06EAF97ED060762F18022E9BB /* Pods-Example.release.xcconfig */, - ); - name = "Pods-Example"; - path = "Target Support Files/Pods-Example"; - sourceTree = ""; - }; - 7DB346D0F39D3F0E887471402A8071AB = { - isa = PBXGroup; - children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - B10FE28535847265AD3708C8FCFD2537 /* Pods */, - DB5277AFD6ECAA1C644126FDAA25BCF1 /* Products */, - 57557C86D7700C692E4635633BEB1108 /* Targets Support Files */, - ); - sourceTree = ""; - }; - AE3A5F769FCA12DB96848300663A2EEF /* Support Files */ = { - isa = PBXGroup; - children = ( - DFE3444624C83E71196EA4B4F493951D /* Info.plist */, - 5C8EA11D5BA9E5670D1ABF67D1A7B6D8 /* SwiftyJSON.modulemap */, - 462D66811A6B323C24E23001F9AF765F /* SwiftyJSON.xcconfig */, - 5E7BB4587F5EC279BD712832834B5179 /* SwiftyJSON-dummy.m */, - EA19A6A61AD6F768C1A363DF9BCA390A /* SwiftyJSON-prefix.pch */, - 23476C16E219D6E9A4E13AD8A5D95124 /* SwiftyJSON-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SwiftyJSON"; - sourceTree = ""; - }; - B10FE28535847265AD3708C8FCFD2537 /* Pods */ = { - isa = PBXGroup; - children = ( - 074CE5224318254E004B71F844C91C9F /* IrohaSwift */, - BE8E804A218D8CBEB750AAA08D55C7E4 /* KeychainAccess */, - 0F4FA9D9A707E2D556F138FE2478098C /* SwiftyJSON */, - ); - name = Pods; - sourceTree = ""; - }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - BE8E804A218D8CBEB750AAA08D55C7E4 /* KeychainAccess */ = { - isa = PBXGroup; - children = ( - 141E4A64DF60054A3EA3E8D8B34FBF0E /* Keychain.swift */, - C45EB110611674FCB8B6B120243A2AF6 /* Support Files */, - ); - path = KeychainAccess; - sourceTree = ""; - }; - C45EB110611674FCB8B6B120243A2AF6 /* Support Files */ = { - isa = PBXGroup; - children = ( - B99DE35EF900500A6CFEFD8C57318C90 /* Info.plist */, - 36F6867465199DF9EF75FB4A2882D5AE /* KeychainAccess.modulemap */, - C9F16CFB4FE1131D618E6449844AB086 /* KeychainAccess.xcconfig */, - 2E2F6F758C6A8FB379B8DFB85BC06C32 /* KeychainAccess-dummy.m */, - D2023C69282F0AC14735515B4564C203 /* KeychainAccess-prefix.pch */, - 4AF1EAE9853AFE9A6F5C867F1C59E05F /* KeychainAccess-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/KeychainAccess"; - sourceTree = ""; - }; - DB5277AFD6ECAA1C644126FDAA25BCF1 /* Products */ = { - isa = PBXGroup; - children = ( - AB09EFBC4C37FF5DB09781A01C855DB8 /* IrohaSwift.framework */, - C8F1DCDE2B7D636BC3B27B64DEC0E8B6 /* KeychainAccess.framework */, - D7DA2DDC00EEB302E0695124D2902885 /* Pods_Example.framework */, - 106EE280595D0A61B14F60848CC48B5E /* Pods_ExampleTests.framework */, - 473EB885840297AB0FCC064F4E94DE3A /* Pods_ExampleUITests.framework */, - 91543D3B0159EE6C1387FB78EF6F994A /* SwiftyJSON.framework */, - ); - name = Products; - sourceTree = ""; - }; - E70E9A804F3FDD82DB0ED05A58945651 /* Support Files */ = { - isa = PBXGroup; - children = ( - 641FCBBAA1D6ED616099C158F7440B8B /* Info.plist */, - BCEC3B4A4B730CE797AD04D5EC979AF2 /* IrohaSwift.modulemap */, - 43A7070025539262EED27B648D1259D0 /* IrohaSwift.xcconfig */, - 510238CEC10DEE2D7F37F6B7C4569E8F /* IrohaSwift-dummy.m */, - 069D901D767633364FE961219CEAE861 /* IrohaSwift-prefix.pch */, - 0EA4250E5C0084BD4E1618953FAFF460 /* IrohaSwift-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/IrohaSwift"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 1244AE44EAA90018593EEB0A43D40AEE /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A7CA1C606EA2F794D533C82B9B24DF16 /* Pods-Example-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13F3E95C0844606623667346F2A2FB04 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 0F1686C1EBCDF59E961BFFF5324DC103 /* Pods-ExampleUITests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1CBF5244103ED55D41456E67D1750CBC /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8E8CBFF9010374297C9C161EB967AEEF /* Pods-ExampleTests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 961C9EDA01419A6E5C68A55FAAB0940E /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 73A53CF735DBFB929A6F7B8325426C33 /* base64.h in Headers */, - 79855D26A1DB2B90DC40C5ABC43252F3 /* ed25519.h in Headers */, - 2B1455FDA4BAE3A639FA56230A32A4F3 /* fe.h in Headers */, - 655309A3DBD0DEAE458EB03EF0271C5B /* fixedint.h in Headers */, - 98F69886EE0083171B99EBCD94CE09A3 /* ge.h in Headers */, - 9E22C52342FC0BFF3D2F49F0119DF8A5 /* IrohaSwift-umbrella.h in Headers */, - CF81DAADE9CBA4BB2162857316344DB6 /* IrohaSwift.h in Headers */, - 93910183FDCF689B958A69AC74DB710A /* precomp_data.h in Headers */, - 202E8A6FE778EFDA20DF9F40328F63B5 /* sc.h in Headers */, - 43A364739786BB8304DEF6C0FF05CDDA /* sha3.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9AD5BDD41EEC297DBAF323239E5FDAA1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 55F9FBC65B032F0CBEB48157A3BFD594 /* KeychainAccess-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E5C8E34C8C7520AC9652224397C3724D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B40B30F27F9B6F57B198DB25C7F13150 /* SwiftyJSON-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 0D1BDFA87629F9E81C59B15110CF3A15 /* SwiftyJSON */ = { - isa = PBXNativeTarget; - buildConfigurationList = BDF72BFB8B16FDB5DB666DBEBD3E390E /* Build configuration list for PBXNativeTarget "SwiftyJSON" */; - buildPhases = ( - 41577A5DD275F82FE9C54A5FAC2A3C08 /* Sources */, - 7A7309C804299147E67418DA1F7D9964 /* Frameworks */, - E5C8E34C8C7520AC9652224397C3724D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SwiftyJSON; - productName = SwiftyJSON; - productReference = 91543D3B0159EE6C1387FB78EF6F994A /* SwiftyJSON.framework */; - productType = "com.apple.product-type.framework"; - }; - 792FE5A63A6CE9389A001DE22D97BD62 /* IrohaSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = C8FE501E2FD2B337D239043760851C25 /* Build configuration list for PBXNativeTarget "IrohaSwift" */; - buildPhases = ( - 9F92A5BCAD319E5C39FE0D8B2880E7CF /* Sources */, - 1EBC39F5198C5D7C0E22FA8C4CA33694 /* Frameworks */, - 961C9EDA01419A6E5C68A55FAAB0940E /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = IrohaSwift; - productName = IrohaSwift; - productReference = AB09EFBC4C37FF5DB09781A01C855DB8 /* IrohaSwift.framework */; - productType = "com.apple.product-type.framework"; - }; - 838A2C6DA366DE138E5FDF1AF19D94C0 /* KeychainAccess */ = { - isa = PBXNativeTarget; - buildConfigurationList = ECE5D705C2612FC8850408E1FD3FD182 /* Build configuration list for PBXNativeTarget "KeychainAccess" */; - buildPhases = ( - BE1974EE4D1CCA01327BF802B589737B /* Sources */, - 37C0D1127616471731E1C52A48FE9D07 /* Frameworks */, - 9AD5BDD41EEC297DBAF323239E5FDAA1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = KeychainAccess; - productName = KeychainAccess; - productReference = C8F1DCDE2B7D636BC3B27B64DEC0E8B6 /* KeychainAccess.framework */; - productType = "com.apple.product-type.framework"; - }; - A3C98F248F7DE0B1FBC783684A2193A4 /* Pods-ExampleTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7520CB403B09CD6D1703E961CDA0F65C /* Build configuration list for PBXNativeTarget "Pods-ExampleTests" */; - buildPhases = ( - 3378499DC613870D180F1394351722F8 /* Sources */, - 6381A663D2CF015EEDB1126CA437C68A /* Frameworks */, - 1CBF5244103ED55D41456E67D1750CBC /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-ExampleTests"; - productName = "Pods-ExampleTests"; - productReference = 106EE280595D0A61B14F60848CC48B5E /* Pods_ExampleTests.framework */; - productType = "com.apple.product-type.framework"; - }; - AA80FD5C2224AB550C8BFB131ECEE882 /* Pods-Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = D78DED60FFA5254F44D0B852E781834F /* Build configuration list for PBXNativeTarget "Pods-Example" */; - buildPhases = ( - D852B528A79D7D0AE88EE81C25BA30AE /* Sources */, - 81E8FE40F4F4CC37FD1E886D5DCCC267 /* Frameworks */, - 1244AE44EAA90018593EEB0A43D40AEE /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 109B6D992B34821AEA9595C420509CBD /* PBXTargetDependency */, - 5D717EAE9F0D9608518C049C3269B18B /* PBXTargetDependency */, - B5E4F28EB16D259E7D3C3102FA166025 /* PBXTargetDependency */, - ); - name = "Pods-Example"; - productName = "Pods-Example"; - productReference = D7DA2DDC00EEB302E0695124D2902885 /* Pods_Example.framework */; - productType = "com.apple.product-type.framework"; - }; - DAF8E186CE9C5D6E5D573BA9B8B0E078 /* Pods-ExampleUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7155A987004867E6D523A53BD775D4F8 /* Build configuration list for PBXNativeTarget "Pods-ExampleUITests" */; - buildPhases = ( - 27707A76FA8E20C27664CB5CDBE3AED3 /* Sources */, - E2EAA7510A8023843124BDF85A41FC26 /* Frameworks */, - 13F3E95C0844606623667346F2A2FB04 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-ExampleUITests"; - productName = "Pods-ExampleUITests"; - productReference = 473EB885840297AB0FCC064F4E94DE3A /* Pods_ExampleUITests.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0700; - }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = DB5277AFD6ECAA1C644126FDAA25BCF1 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 792FE5A63A6CE9389A001DE22D97BD62 /* IrohaSwift */, - 838A2C6DA366DE138E5FDF1AF19D94C0 /* KeychainAccess */, - AA80FD5C2224AB550C8BFB131ECEE882 /* Pods-Example */, - A3C98F248F7DE0B1FBC783684A2193A4 /* Pods-ExampleTests */, - DAF8E186CE9C5D6E5D573BA9B8B0E078 /* Pods-ExampleUITests */, - 0D1BDFA87629F9E81C59B15110CF3A15 /* SwiftyJSON */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 27707A76FA8E20C27664CB5CDBE3AED3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - EB6295B996BD4E6415EA268B47C23379 /* Pods-ExampleUITests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3378499DC613870D180F1394351722F8 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 80E2343AE9B8D80297228FD7F7DD0BA6 /* Pods-ExampleTests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 41577A5DD275F82FE9C54A5FAC2A3C08 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6792F9FBAC89E492240EF08DFA03A031 /* SwiftyJSON-dummy.m in Sources */, - 4C704C6BBDEAA3CB9930736D0765544B /* SwiftyJSON.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F92A5BCAD319E5C39FE0D8B2880E7CF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 462BF081C2EA25D41F4ED6013FA24679 /* add_scalar.c in Sources */, - 69A065F61AB9711FBA3736FCD9D0B8E6 /* base64.c in Sources */, - FBA3BF780315671FC8B64E7243EDF901 /* ColorExtension.swift in Sources */, - E54B6370C6C5DC0062BBAFABB2C8639F /* Ed25519.swift in Sources */, - 6DCD91A941FE4BC72B12176E3D2B44ED /* fe.c in Sources */, - 0750087E9E1301D8D246243D2A086368 /* ge.c in Sources */, - FF28C26EEE4D686BE58AD8F2B9D86672 /* HttpRequest.swift in Sources */, - 45E878CA8BDA9F04194DEF2DCD76A6AB /* IrohaSwift-dummy.m in Sources */, - 4F62D99B678E9DC6724AC4691EC17772 /* IrohaSwift.swift in Sources */, - D41160D26B894B6F457D9C222905E46B /* key_exchange.c in Sources */, - FE3FF5E36C13D67653D44FB1ACC7FCA3 /* Keychain.swift in Sources */, - 902475A59ABC653EEE537EA5EF8A4A11 /* KeychainModel.swift in Sources */, - 5280BF42A578D3C5B68DB09FE8ABA653 /* keypair.c in Sources */, - 620CC66870C7713ED07E6A58DEF33AAD /* sc.c in Sources */, - 3416746E60AE7211274F48CB7605C459 /* seed.c in Sources */, - 0646143D120A6941C494C4251B2CBCA8 /* sha3.c in Sources */, - B65DB10498F1F1C6AE311D3F0CFFE013 /* sign.c in Sources */, - 14F17A64C38A928A625E95BD5091C89F /* verify.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - BE1974EE4D1CCA01327BF802B589737B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2E97BE41D443D7641693B53D2AF2244E /* Keychain.swift in Sources */, - 40A3157EF9DCE6B16FC5F783BC51732B /* KeychainAccess-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D852B528A79D7D0AE88EE81C25BA30AE /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DC6B2F0F9FD511E70A22840DEFADAD50 /* Pods-Example-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 109B6D992B34821AEA9595C420509CBD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = IrohaSwift; - target = 792FE5A63A6CE9389A001DE22D97BD62 /* IrohaSwift */; - targetProxy = C937859CB3781F103F062C0D408711FF /* PBXContainerItemProxy */; - }; - 5D717EAE9F0D9608518C049C3269B18B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = KeychainAccess; - target = 838A2C6DA366DE138E5FDF1AF19D94C0 /* KeychainAccess */; - targetProxy = 2FABC8CA3913F3FA3F3F53A2B609C282 /* PBXContainerItemProxy */; - }; - B5E4F28EB16D259E7D3C3102FA166025 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftyJSON; - target = 0D1BDFA87629F9E81C59B15110CF3A15 /* SwiftyJSON */; - targetProxy = 7F5A13D0D0CC4D95BF20248F8423C828 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 12E6F0A022DF7532679DC15F2A8B8431 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 43A7070025539262EED27B648D1259D0 /* IrohaSwift.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/IrohaSwift/IrohaSwift-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/IrohaSwift/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/IrohaSwift/IrohaSwift.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = IrohaSwift; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 17F7CDECE3914E3F3EA595D821696E95 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8B6350F0C528B9D23082C28E5A4E032C /* Pods-ExampleUITests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-ExampleUITests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_ExampleUITests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 37565CF2D932EDB32ADEFD70805E8667 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 43A7070025539262EED27B648D1259D0 /* IrohaSwift.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/IrohaSwift/IrohaSwift-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/IrohaSwift/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/IrohaSwift/IrohaSwift.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = IrohaSwift; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 384AF887EAD40F63CDB570777B4FCCE9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 462D66811A6B323C24E23001F9AF765F /* SwiftyJSON.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SwiftyJSON/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = SwiftyJSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3B2217A32F845255B721B3582F852FAF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 129F822B0E9F28AF90FEA5465593A604 /* Pods-ExampleTests.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-ExampleTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_ExampleTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 422FB04D6BCE5740F3FC8EEA38C04F98 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5495FFE06EAF97ED060762F18022E9BB /* Pods-Example.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 59B042A655B7C20CBAB90E385BF4E4C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 6CF389E422912077409DF3E1125E8CAC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C9F16CFB4FE1131D618E6449844AB086 /* KeychainAccess.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KeychainAccess/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = KeychainAccess; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - B7324857C38B065FEB1EEE3105C2367A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - BA8BDABD3E2D69B025F0537990A5F3B8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1CEC4D75ECA6563D3F2B41F876B83BDC /* Pods-Example.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-Example/Pods-Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - BD4EBADB3E6E78C9BDFF2C870EE1B2AF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 462D66811A6B323C24E23001F9AF765F /* SwiftyJSON.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SwiftyJSON/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SwiftyJSON/SwiftyJSON.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = SwiftyJSON; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - CFFA7B03EDF4CD4E6250D6E7520BBFEA /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 72442580FBD1FDAB015827CEB3AA475F /* Pods-ExampleTests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-ExampleTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_ExampleTests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - E32D2034A790B3942D35A8F4FC0D3DAA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C9F16CFB4FE1131D618E6449844AB086 /* KeychainAccess.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/KeychainAccess/KeychainAccess-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/KeychainAccess/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/KeychainAccess/KeychainAccess.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = KeychainAccess; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FD37FDCE0223D767451199912A2BA7F9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B90113490902940BCC0DAA245BBC5F51 /* Pods-ExampleUITests.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-ExampleUITests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_ExampleUITests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 59B042A655B7C20CBAB90E385BF4E4C7 /* Debug */, - B7324857C38B065FEB1EEE3105C2367A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7155A987004867E6D523A53BD775D4F8 /* Build configuration list for PBXNativeTarget "Pods-ExampleUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 17F7CDECE3914E3F3EA595D821696E95 /* Debug */, - FD37FDCE0223D767451199912A2BA7F9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7520CB403B09CD6D1703E961CDA0F65C /* Build configuration list for PBXNativeTarget "Pods-ExampleTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - CFFA7B03EDF4CD4E6250D6E7520BBFEA /* Debug */, - 3B2217A32F845255B721B3582F852FAF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - BDF72BFB8B16FDB5DB666DBEBD3E390E /* Build configuration list for PBXNativeTarget "SwiftyJSON" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 384AF887EAD40F63CDB570777B4FCCE9 /* Debug */, - BD4EBADB3E6E78C9BDFF2C870EE1B2AF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C8FE501E2FD2B337D239043760851C25 /* Build configuration list for PBXNativeTarget "IrohaSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 12E6F0A022DF7532679DC15F2A8B8431 /* Debug */, - 37565CF2D932EDB32ADEFD70805E8667 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D78DED60FFA5254F44D0B852E781834F /* Build configuration list for PBXNativeTarget "Pods-Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BA8BDABD3E2D69B025F0537990A5F3B8 /* Debug */, - 422FB04D6BCE5740F3FC8EEA38C04F98 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - ECE5D705C2612FC8850408E1FD3FD182 /* Build configuration list for PBXNativeTarget "KeychainAccess" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6CF389E422912077409DF3E1125E8CAC /* Debug */, - E32D2034A790B3942D35A8F4FC0D3DAA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; -} diff --git a/Example/Pods/SwiftyJSON/LICENSE b/Example/Pods/SwiftyJSON/LICENSE deleted file mode 100644 index a7af19687..000000000 --- a/Example/Pods/SwiftyJSON/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Ruoyu Fu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Example/Pods/SwiftyJSON/README.md b/Example/Pods/SwiftyJSON/README.md deleted file mode 100644 index 492f1e29f..000000000 --- a/Example/Pods/SwiftyJSON/README.md +++ /dev/null @@ -1,398 +0,0 @@ -#SwiftyJSON - -[![Travis CI](https://travis-ci.org/SwiftyJSON/SwiftyJSON.svg?branch=master)](https://travis-ci.org/SwiftyJSON/SwiftyJSON) - -SwiftyJSON makes it easy to deal with JSON data in Swift. - -1. [Why is the typical JSON handling in Swift NOT good](#why-is-the-typical-json-handling-in-swift-not-good) -2. [Requirements](#requirements) -3. [Integration](#integration) -4. [Usage](#usage) - - [Initialization](#initialization) - - [Subscript](#subscript) - - [Loop](#loop) - - [Error](#error) - - [Optional getter](#optional-getter) - - [Non-optional getter](#non-optional-getter) - - [Setter](#setter) - - [Raw object](#raw-object) - - [Literal convertibles](#literal-convertibles) -5. [Work with Alamofire](#work-with-alamofire) - -> For Legacy Swift support, take a look at the [swift2 branch](https://github.com/SwiftyJSON/SwiftyJSON/tree/swift2) - -> [中文介绍](http://tangplin.github.io/swiftyjson/) - - -##Why is the typical JSON handling in Swift NOT good? -Swift is very strict about types. But although explicit typing is good for saving us from mistakes, it becomes painful when dealing with JSON and other areas that are, by nature, implicit about types. - -Take the Twitter API for example. Say we want to retrieve a user's "name" value of some tweet in Swift (according to Twitter's API https://dev.twitter.com/docs/api/1.1/get/statuses/home_timeline). - -The code would look like this: - -```swift - -if let statusesArray = try? NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [[String: AnyObject]], - let user = statusesArray[0]["user"] as? [String: AnyObject], - let username = user["name"] as? String { - // Finally we got the username -} - -``` - -It's not good. - -Even if we use optional chaining, it would be messy: - -```swift - -if let JSONObject = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [[String: AnyObject]], - let username = (JSONObject[0]["user"] as? [String: AnyObject])?["name"] as? String { - // There's our username -} - -``` -An unreadable mess--for something that should really be simple! - -With SwiftyJSON all you have to do is: - -```swift - -let json = JSON(data: dataFromNetworking) -if let userName = json[0]["user"]["name"].string { - //Now you got your value -} - -``` - -And don't worry about the Optional Wrapping thing. It's done for you automatically. - -```swift - -let json = JSON(data: dataFromNetworking) -if let userName = json[999999]["wrong_key"]["wrong_name"].string { - //Calm down, take it easy, the ".string" property still produces the correct Optional String type with safety -} else { - //Print the error - print(json[999999]["wrong_key"]["wrong_name"]) -} - -``` - -## Requirements - -- iOS 7.0+ / OS X 10.9+ -- Xcode 8 - -##Integration - -####CocoaPods (iOS 8+, OS X 10.9+) -You can use [Cocoapods](http://cocoapods.org/) to install `SwiftyJSON`by adding it to your `Podfile`: -```ruby -platform :ios, '8.0' -use_frameworks! - -target 'MyApp' do - pod 'SwiftyJSON' -end -``` -Note that this requires CocoaPods version 36, and your iOS deployment target to be at least 8.0: - - -####Carthage (iOS 8+, OS X 10.9+) -You can use [Carthage](https://github.com/Carthage/Carthage) to install `SwiftyJSON` by adding it to your `Cartfile`: -``` -github "SwiftyJSON/SwiftyJSON" -``` - -####Swift Package Manager -You can use [The Swift Package Manager](https://swift.org/package-manager) to install `SwiftyJSON` by adding the proper description to your `Package.swift` file: -```swift -import PackageDescription - -let package = Package( - name: "YOUR_PROJECT_NAME", - targets: [], - dependencies: [ - .Package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", versions: "2.3.3" ..< Version.max) - ] -) -``` - -Note that the [Swift Package Manager](https://swift.org/package-manager) is still in early design and development, for more infomation checkout its [GitHub Page](https://github.com/apple/swift-package-manager) - -####Manually (iOS 7+, OS X 10.9+) - -To use this library in your project manually you may: - -1. for Projects, just drag SwiftyJSON.swift to the project tree -2. for Workspaces, include the whole SwiftyJSON.xcodeproj - -## Usage - -####Initialization -```swift -import SwiftyJSON -``` -```swift -let json = JSON(data: dataFromNetworking) -``` -```swift -let json = JSON(jsonObject) -``` -```swift -if let dataFromString = jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) { - let json = JSON(data: dataFromString) -} -``` - -####Subscript -```swift -//Getting a double from a JSON Array -let name = json[0].double -``` -```swift -//Getting a string from a JSON Dictionary -let name = json["name"].stringValue -``` -```swift -//Getting a string using a path to the element -let path = [1,"list",2,"name"] -let name = json[path].string -//Just the same -let name = json[1]["list"][2]["name"].string -//Alternatively -let name = json[1,"list",2,"name"].string -``` -```swift -//With a hard way -let name = json[].string -``` -```swift -//With a custom way -let keys:[SubscriptType] = [1,"list",2,"name"] -let name = json[keys].string -``` -####Loop -```swift -//If json is .Dictionary -for (key,subJson):(String, JSON) in json { - //Do something you want -} -``` -*The first element is always a String, even if the JSON is an Array* -```swift -//If json is .Array -//The `index` is 0.. = json["list"].arrayValue -``` -```swift -//If not a Dictionary or nil, return [:] -let user: Dictionary = json["user"].dictionaryValue -``` - -####Setter -```swift -json["name"] = JSON("new-name") -json[0] = JSON(1) -``` -```swift -json["id"].int = 1234567890 -json["coordinate"].double = 8766.766 -json["name"].string = "Jack" -json.arrayObject = [1,2,3,4] -json.dictionary = ["name":"Jack", "age":25] -``` - -####Raw object -```swift -let jsonObject: AnyObject = json.object -``` -```swift -if let jsonObject: AnyObject = json.rawValue -``` -```swift -//convert the JSON to raw NSData -if let data = json.rawData() { - //Do something you want -} -``` -```swift -//convert the JSON to a raw String -if let string = json.rawString() { - //Do something you want -} -``` -####Existance -```swift -//shows you whether value specified in JSON or not -if json["name"].isExists() -``` - -####Literal convertibles -For more info about literal convertibles: [Swift Literal Convertibles](http://nshipster.com/swift-literal-convertible/) -```swift -//StringLiteralConvertible -let json: JSON = "I'm a json" -``` -```swift -//IntegerLiteralConvertible -let json: JSON = 12345 -``` -```swift -//BooleanLiteralConvertible -let json: JSON = true -``` -```swift -//FloatLiteralConvertible -let json: JSON = 2.8765 -``` -```swift -//DictionaryLiteralConvertible -let json: JSON = ["I":"am", "a":"json"] -``` -```swift -//ArrayLiteralConvertible -let json: JSON = ["I", "am", "a", "json"] -``` -```swift -//NilLiteralConvertible -let json: JSON = nil -``` -```swift -//With subscript in array -var json: JSON = [1,2,3] -json[0] = 100 -json[1] = 200 -json[2] = 300 -json[999] = 300 //Don't worry, nothing will happen -``` -```swift -//With subscript in dictionary -var json: JSON = ["name": "Jack", "age": 25] -json["name"] = "Mike" -json["age"] = "25" //It's OK to set String -json["address"] = "L.A." // Add the "address": "L.A." in json -``` -```swift -//Array & Dictionary -var json: JSON = ["name": "Jack", "age": 25, "list": ["a", "b", "c", ["what": "this"]]] -json["list"][3]["what"] = "that" -json["list",3,"what"] = "that" -let path = ["list",3,"what"] -json[path] = "that" -``` -##Work with Alamofire - -SwiftyJSON nicely wraps the result of the Alamofire JSON response handler: -```swift -Alamofire.request(.GET, url).validate().responseJSON { response in - switch response.result { - case .Success: - if let value = response.result.value { - let json = JSON(value) - print("JSON: \(json)") - } - case .Failure(let error): - print(error) - } -} -``` diff --git a/Example/Pods/SwiftyJSON/Source/SwiftyJSON.swift b/Example/Pods/SwiftyJSON/Source/SwiftyJSON.swift deleted file mode 100644 index 26180fecd..000000000 --- a/Example/Pods/SwiftyJSON/Source/SwiftyJSON.swift +++ /dev/null @@ -1,1250 +0,0 @@ -// SwiftyJSON.swift -// -// Copyright (c) 2014 Ruoyu Fu, Pinglin Tang -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -import Foundation - -// MARK: - Error - -///Error domain -public let ErrorDomain: String = "SwiftyJSONErrorDomain" - -///Error code -public let ErrorUnsupportedType: Int = 999 -public let ErrorIndexOutOfBounds: Int = 900 -public let ErrorWrongType: Int = 901 -public let ErrorNotExist: Int = 500 -public let ErrorInvalidJSON: Int = 490 - -// MARK: - JSON Type - -/** - JSON's type definitions. - - See http://www.json.org - */ -public enum Type :Int{ - - case number - case string - case bool - case array - case dictionary - case null - case unknown -} - -// MARK: - JSON Base - -public struct JSON { - - /** - Creates a JSON using the data. - - - parameter data: The NSData used to convert to json.Top level object in data is an NSArray or NSDictionary - - parameter opt: The JSON serialization reading options. `.AllowFragments` by default. - - parameter error: error The NSErrorPointer used to return the error. `nil` by default. - - - returns: The created JSON - */ - public init(data:Data, options opt: JSONSerialization.ReadingOptions = .allowFragments, error: NSErrorPointer? = nil) { - do { - let object: Any = try JSONSerialization.jsonObject(with: data, options: opt) - self.init(object) - } catch let aError as NSError { - if error != nil { - error??.pointee = aError - } - self.init(NSNull()) - } - } - - /** - Create a JSON from JSON string - - parameter string: Normal json string like '{"a":"b"}' - - - returns: The created JSON - */ - public static func parse(_ string:String) -> JSON { - return string.data(using: String.Encoding.utf8) - .flatMap({JSON(data: $0)}) ?? JSON(NSNull()) - } - - /** - Creates a JSON using the object. - - - parameter object: The object must have the following properties: All objects are NSString/String, NSNumber/Int/Float/Double/Bool, NSArray/Array, NSDictionary/Dictionary, or NSNull; All dictionary keys are NSStrings/String; NSNumbers are not NaN or infinity. - - - returns: The created JSON - */ - public init(_ object: Any) { - self.object = object - } - - /** - Creates a JSON from a [JSON] - - - parameter jsonArray: A Swift array of JSON objects - - - returns: The created JSON - */ - public init(_ jsonArray:[JSON]) { - self.init(jsonArray.map { $0.object }) - } - - /** - Creates a JSON from a [String: JSON] - - - parameter jsonDictionary: A Swift dictionary of JSON objects - - - returns: The created JSON - */ - public init(_ jsonDictionary:[String: JSON]) { - var dictionary = [String: Any](minimumCapacity: jsonDictionary.count) - for (key, json) in jsonDictionary { - dictionary[key] = json.object - } - self.init(dictionary) - } - - /// Private object - fileprivate var rawArray: [Any] = [] - fileprivate var rawDictionary: [String : Any] = [:] - fileprivate var rawString: String = "" - fileprivate var rawNumber: NSNumber = 0 - fileprivate var rawNull: NSNull = NSNull() - fileprivate var rawBool: Bool = false - /// Private type - fileprivate var _type: Type = .null - /// prviate error - fileprivate var _error: NSError? = nil - - /// Object in JSON - public var object: Any { - get { - switch self.type { - case .array: - return self.rawArray - case .dictionary: - return self.rawDictionary - case .string: - return self.rawString - case .number: - return self.rawNumber - case .bool: - return self.rawBool - default: - return self.rawNull - } - } - set { - _error = nil - switch newValue { - case let number as NSNumber: - if number.isBool { - _type = .bool - self.rawBool = number.boolValue - } else { - _type = .number - self.rawNumber = number - } - case let string as String: - _type = .string - self.rawString = string - case _ as NSNull: - _type = .null - case let array as [Any]: - _type = .array - self.rawArray = array - case let dictionary as [String : Any]: - _type = .dictionary - self.rawDictionary = dictionary - default: - _type = .unknown - _error = NSError(domain: ErrorDomain, code: ErrorUnsupportedType, userInfo: [NSLocalizedDescriptionKey: "It is a unsupported type"]) - } - } - } - - /// json type - public var type: Type { get { return _type } } - - /// Error in JSON - public var error: NSError? { get { return self._error } } - - /// The static null json - @available(*, unavailable, renamed:"null") - public static var nullJSON: JSON { get { return null } } - public static var null: JSON { get { return JSON(NSNull()) } } -} - -public enum JSONIndex:Comparable { - case array(Int) - case dictionary(DictionaryIndex) - case null -} - -public func ==(lhs: JSONIndex, rhs: JSONIndex) -> Bool { - switch (lhs, rhs) { - case (.array(let left), .array(let right)): - return left == right - case (.dictionary(let left), .dictionary(let right)): - return left == right - default: - return false - } -} - -public func <(lhs: JSONIndex, rhs: JSONIndex) -> Bool { - switch (lhs, rhs) { - case (.array(let left), .array(let right)): - return left < right - case (.dictionary(let left), .dictionary(let right)): - return left < right - default: - return false - } -} - - -extension JSON: Collection{ - - public typealias Index = JSONIndex - - public var startIndex: Index{ - switch type { - case .array: - return .array(rawArray.startIndex) - case .dictionary: - return .dictionary(dictionaryValue.startIndex) - default: - return .null - } - } - - public var endIndex: Index{ - switch type { - case .array: - return .array(rawArray.endIndex) - case .dictionary: - return .dictionary(dictionaryValue.endIndex) - default: - return .null - } - } - - public func index(after i: Index) -> Index { - switch i { - case .array(let idx): - return .array(rawArray.index(after: idx)) - case .dictionary(let idx): - return .dictionary(dictionaryValue.index(after: idx)) - default: - return .null - } - - } - - public subscript (position: Index) -> (String, JSON) { - switch position { - case .array(let idx): - return (String(idx), JSON(self.rawArray[idx])) - case .dictionary(let idx): - return dictionaryValue[idx] - default: - return ("", JSON.null) - } - } - - -} - -// MARK: - Subscript - -/** - * To mark both String and Int can be used in subscript. - */ -public enum JSONKey { - case index(Int) - case key(String) -} - -public protocol JSONSubscriptType { - var jsonKey:JSONKey { get } -} - -extension Int: JSONSubscriptType { - public var jsonKey:JSONKey { - return JSONKey.index(self) - } -} - -extension String: JSONSubscriptType { - public var jsonKey:JSONKey { - return JSONKey.key(self) - } -} - -extension JSON { - - /// If `type` is `.Array`, return json whose object is `array[index]`, otherwise return null json with error. - fileprivate subscript(index index: Int) -> JSON { - get { - if self.type != .array { - var r = JSON.null - r._error = self._error ?? NSError(domain: ErrorDomain, code: ErrorWrongType, userInfo: [NSLocalizedDescriptionKey: "Array[\(index)] failure, It is not an array"]) - return r - } else if index >= 0 && index < self.rawArray.count { - return JSON(self.rawArray[index]) - } else { - var r = JSON.null - r._error = NSError(domain: ErrorDomain, code:ErrorIndexOutOfBounds , userInfo: [NSLocalizedDescriptionKey: "Array[\(index)] is out of bounds"]) - return r - } - } - set { - if self.type == .array { - if self.rawArray.count > index && newValue.error == nil { - self.rawArray[index] = newValue.object - } - } - } - } - - /// If `type` is `.Dictionary`, return json whose object is `dictionary[key]` , otherwise return null json with error. - fileprivate subscript(key key: String) -> JSON { - get { - var r = JSON.null - if self.type == .dictionary { - if let o = self.rawDictionary[key] { - r = JSON(o) - } else { - r._error = NSError(domain: ErrorDomain, code: ErrorNotExist, userInfo: [NSLocalizedDescriptionKey: "Dictionary[\"\(key)\"] does not exist"]) - } - } else { - r._error = self._error ?? NSError(domain: ErrorDomain, code: ErrorWrongType, userInfo: [NSLocalizedDescriptionKey: "Dictionary[\"\(key)\"] failure, It is not an dictionary"]) - } - return r - } - set { - if self.type == .dictionary && newValue.error == nil { - self.rawDictionary[key] = newValue.object - } - } - } - - /// If `sub` is `Int`, return `subscript(index:)`; If `sub` is `String`, return `subscript(key:)`. - fileprivate subscript(sub sub: JSONSubscriptType) -> JSON { - get { - switch sub.jsonKey { - case .index(let index): return self[index: index] - case .key(let key): return self[key: key] - } - } - set { - switch sub.jsonKey { - case .index(let index): self[index: index] = newValue - case .key(let key): self[key: key] = newValue - } - } - } - - /** - Find a json in the complex data structuresby using the Int/String's array. - - - parameter path: The target json's path. Example: - - let json = JSON[data] - let path = [9,"list","person","name"] - let name = json[path] - - The same as: let name = json[9]["list"]["person"]["name"] - - - returns: Return a json found by the path or a null json with error - */ - public subscript(path: [JSONSubscriptType]) -> JSON { - get { - return path.reduce(self) { $0[sub: $1] } - } - set { - switch path.count { - case 0: - return - case 1: - self[sub:path[0]].object = newValue.object - default: - var aPath = path; aPath.remove(at: 0) - var nextJSON = self[sub: path[0]] - nextJSON[aPath] = newValue - self[sub: path[0]] = nextJSON - } - } - } - - /** - Find a json in the complex data structures by using the Int/String's array. - - - parameter path: The target json's path. Example: - - let name = json[9,"list","person","name"] - - The same as: let name = json[9]["list"]["person"]["name"] - - - returns: Return a json found by the path or a null json with error - */ - public subscript(path: JSONSubscriptType...) -> JSON { - get { - return self[path] - } - set { - self[path] = newValue - } - } -} - -// MARK: - LiteralConvertible - -extension JSON: Swift.ExpressibleByStringLiteral { - - public init(stringLiteral value: StringLiteralType) { - self.init(value as Any) - } - - public init(extendedGraphemeClusterLiteral value: StringLiteralType) { - self.init(value as Any) - } - - public init(unicodeScalarLiteral value: StringLiteralType) { - self.init(value as Any) - } -} - -extension JSON: Swift.ExpressibleByIntegerLiteral { - - public init(integerLiteral value: IntegerLiteralType) { - self.init(value as Any) - } -} - -extension JSON: Swift.ExpressibleByBooleanLiteral { - - public init(booleanLiteral value: BooleanLiteralType) { - self.init(value as Any) - } -} - -extension JSON: Swift.ExpressibleByFloatLiteral { - - public init(floatLiteral value: FloatLiteralType) { - self.init(value as Any) - } -} - -extension JSON: Swift.ExpressibleByDictionaryLiteral { - - public init(dictionaryLiteral elements: (String, Any)...) { - self.init(elements.reduce([String : Any](minimumCapacity: elements.count)){(dictionary: [String : Any], element:(String, Any)) -> [String : Any] in - var d = dictionary - d[element.0] = element.1 - return d - } as Any) - } -} - -extension JSON: Swift.ExpressibleByArrayLiteral { - - public init(arrayLiteral elements: Any...) { - self.init(elements as Any) - } -} - -extension JSON: Swift.ExpressibleByNilLiteral { - - public init(nilLiteral: ()) { - self.init(NSNull() as Any) - } -} - -// MARK: - Raw - -extension JSON: Swift.RawRepresentable { - - public init?(rawValue: Any) { - if JSON(rawValue).type == .unknown { - return nil - } else { - self.init(rawValue) - } - } - - public var rawValue: Any { - return self.object - } - - public func rawData(options opt: JSONSerialization.WritingOptions = JSONSerialization.WritingOptions(rawValue: 0)) throws -> Data { - guard JSONSerialization.isValidJSONObject(self.object) else { - throw NSError(domain: ErrorDomain, code: ErrorInvalidJSON, userInfo: [NSLocalizedDescriptionKey: "JSON is invalid"]) - } - - return try JSONSerialization.data(withJSONObject: self.object, options: opt) - } - - public func rawString(_ encoding: String.Encoding = String.Encoding.utf8, options opt: JSONSerialization.WritingOptions = .prettyPrinted) -> String? { - switch self.type { - case .array, .dictionary: - do { - let data = try self.rawData(options: opt) - return String(data: data, encoding: encoding) - } catch _ { - return nil - } - case .string: - return self.rawString - case .number: - return self.rawNumber.stringValue - case .bool: - return self.rawBool.description - case .null: - return "null" - default: - return nil - } - } -} - -// MARK: - Printable, DebugPrintable - -extension JSON: Swift.CustomStringConvertible, Swift.CustomDebugStringConvertible { - - public var description: String { - if let string = self.rawString(options:.prettyPrinted) { - return string - } else { - return "unknown" - } - } - - public var debugDescription: String { - return description - } -} - -// MARK: - Array - -extension JSON { - - //Optional [JSON] - public var array: [JSON]? { - get { - if self.type == .array { - return self.rawArray.map{ JSON($0) } - } else { - return nil - } - } - } - - //Non-optional [JSON] - public var arrayValue: [JSON] { - get { - return self.array ?? [] - } - } - - //Optional [AnyObject] - public var arrayObject: [Any]? { - get { - switch self.type { - case .array: - return self.rawArray - default: - return nil - } - } - set { - if let array = newValue { - self.object = array as Any - } else { - self.object = NSNull() - } - } - } -} - -// MARK: - Dictionary - -extension JSON { - - //Optional [String : JSON] - public var dictionary: [String : JSON]? { - if self.type == .dictionary { - - return self.rawDictionary.reduce([String : JSON]()) { (dictionary: [String : JSON], element: (String, Any)) -> [String : JSON] in - var d = dictionary - d[element.0] = JSON(element.1) - return d - } - } else { - return nil - } - } - - //Non-optional [String : JSON] - public var dictionaryValue: [String : JSON] { - return self.dictionary ?? [:] - } - - //Optional [String : AnyObject] - public var dictionaryObject: [String : Any]? { - get { - switch self.type { - case .dictionary: - return self.rawDictionary - default: - return nil - } - } - set { - if let v = newValue { - self.object = v as Any - } else { - self.object = NSNull() - } - } - } -} - -// MARK: - Bool - -extension JSON { // : Swift.Bool - - //Optional bool - public var bool: Bool? { - get { - switch self.type { - case .bool: - return self.rawBool - default: - return nil - } - } - set { - if let newValue = newValue { - self.object = newValue as Bool - } else { - self.object = NSNull() - } - } - } - - //Non-optional bool - public var boolValue: Bool { - get { - switch self.type { - case .bool: - return self.rawBool - case .number: - return self.rawNumber.boolValue - case .string: - return self.rawString.caseInsensitiveCompare("true") == .orderedSame - default: - return false - } - } - set { - self.object = newValue - } - } -} - -// MARK: - String - -extension JSON { - - //Optional string - public var string: String? { - get { - switch self.type { - case .string: - return self.object as? String - default: - return nil - } - } - set { - if let newValue = newValue { - self.object = NSString(string:newValue) - } else { - self.object = NSNull() - } - } - } - - //Non-optional string - public var stringValue: String { - get { - switch self.type { - case .string: - return self.object as? String ?? "" - case .number: - return self.rawNumber.stringValue - case .bool: - return (self.object as? Bool).map { String($0) } ?? "" - default: - return "" - } - } - set { - self.object = NSString(string:newValue) - } - } -} - -// MARK: - Number -extension JSON { - - //Optional number - public var number: NSNumber? { - get { - switch self.type { - case .number: - return self.rawNumber - case .bool: - return NSNumber(value: self.rawBool ? 1 : 0) - default: - return nil - } - } - set { - self.object = newValue ?? NSNull() - } - } - - //Non-optional number - public var numberValue: NSNumber { - get { - switch self.type { - case .string: - let decimal = NSDecimalNumber(string: self.object as? String) - if decimal == NSDecimalNumber.notANumber { // indicates parse error - return NSDecimalNumber.zero - } - return decimal - case .number: - return self.object as? NSNumber ?? NSNumber(value: 0) - case .bool: - return NSNumber(value: self.rawBool ? 1 : 0) - default: - return NSNumber(value: 0.0) - } - } - set { - self.object = newValue - } - } -} - -//MARK: - Null -extension JSON { - - public var null: NSNull? { - get { - switch self.type { - case .null: - return self.rawNull - default: - return nil - } - } - set { - self.object = NSNull() - } - } - public func exists() -> Bool{ - if let errorValue = error , errorValue.code == ErrorNotExist{ - return false - } - return true - } -} - -//MARK: - URL -extension JSON { - - //Optional URL - public var URL: NSURL? { - get { - switch self.type { - case .string: - if let encodedString_ = self.rawString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) { - return NSURL(string: encodedString_) - } else { - return nil - } - default: - return nil - } - } - set { - self.object = newValue?.absoluteString - } - } -} - -// MARK: - Int, Double, Float, Int8, Int16, Int32, Int64 - -extension JSON { - - public var double: Double? { - get { - return self.number?.doubleValue - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var doubleValue: Double { - get { - return self.numberValue.doubleValue - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var float: Float? { - get { - return self.number?.floatValue - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var floatValue: Float { - get { - return self.numberValue.floatValue - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var int: Int? { - get { - return self.number?.intValue - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var intValue: Int { - get { - return self.numberValue.intValue - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var uInt: UInt? { - get { - return self.number?.uintValue - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var uIntValue: UInt { - get { - return self.numberValue.uintValue - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var int8: Int8? { - get { - return self.number?.int8Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var int8Value: Int8 { - get { - return self.numberValue.int8Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var uInt8: UInt8? { - get { - return self.number?.uint8Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var uInt8Value: UInt8 { - get { - return self.numberValue.uint8Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var int16: Int16? { - get { - return self.number?.int16Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var int16Value: Int16 { - get { - return self.numberValue.int16Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var uInt16: UInt16? { - get { - return self.number?.uint16Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var uInt16Value: UInt16 { - get { - return self.numberValue.uint16Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var int32: Int32? { - get { - return self.number?.int32Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var int32Value: Int32 { - get { - return self.numberValue.int32Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var uInt32: UInt32? { - get { - return self.number?.uint32Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var uInt32Value: UInt32 { - get { - return self.numberValue.uint32Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var int64: Int64? { - get { - return self.number?.int64Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var int64Value: Int64 { - get { - return self.numberValue.int64Value - } - set { - self.object = NSNumber(value: newValue) - } - } - - public var uInt64: UInt64? { - get { - return self.number?.uint64Value - } - set { - if let newValue = newValue { - self.object = NSNumber(value: newValue) - } else { - self.object = NSNull() - } - } - } - - public var uInt64Value: UInt64 { - get { - return self.numberValue.uint64Value - } - set { - self.object = NSNumber(value: newValue) - } - } -} - -//MARK: - Comparable -extension JSON : Swift.Comparable {} - -public func ==(lhs: JSON, rhs: JSON) -> Bool { - - switch (lhs.type, rhs.type) { - case (.number, .number): - return lhs.rawNumber == rhs.rawNumber - case (.string, .string): - return lhs.rawString == rhs.rawString - case (.bool, .bool): - return lhs.rawBool == rhs.rawBool - case (.array, .array): - return lhs.rawArray as NSArray == rhs.rawArray as NSArray - case (.dictionary, .dictionary): - return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary - case (.null, .null): - return true - default: - return false - } -} - -public func <=(lhs: JSON, rhs: JSON) -> Bool { - - switch (lhs.type, rhs.type) { - case (.number, .number): - return lhs.rawNumber <= rhs.rawNumber - case (.string, .string): - return lhs.rawString <= rhs.rawString - case (.bool, .bool): - return lhs.rawBool == rhs.rawBool - case (.array, .array): - return lhs.rawArray as NSArray == rhs.rawArray as NSArray - case (.dictionary, .dictionary): - return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary - case (.null, .null): - return true - default: - return false - } -} - -public func >=(lhs: JSON, rhs: JSON) -> Bool { - - switch (lhs.type, rhs.type) { - case (.number, .number): - return lhs.rawNumber >= rhs.rawNumber - case (.string, .string): - return lhs.rawString >= rhs.rawString - case (.bool, .bool): - return lhs.rawBool == rhs.rawBool - case (.array, .array): - return lhs.rawArray as NSArray == rhs.rawArray as NSArray - case (.dictionary, .dictionary): - return lhs.rawDictionary as NSDictionary == rhs.rawDictionary as NSDictionary - case (.null, .null): - return true - default: - return false - } -} - -public func >(lhs: JSON, rhs: JSON) -> Bool { - - switch (lhs.type, rhs.type) { - case (.number, .number): - return lhs.rawNumber > rhs.rawNumber - case (.string, .string): - return lhs.rawString > rhs.rawString - default: - return false - } -} - -public func <(lhs: JSON, rhs: JSON) -> Bool { - - switch (lhs.type, rhs.type) { - case (.number, .number): - return lhs.rawNumber < rhs.rawNumber - case (.string, .string): - return lhs.rawString < rhs.rawString - default: - return false - } -} - -private let trueNumber = NSNumber(value: true) -private let falseNumber = NSNumber(value: false) -private let trueObjCType = String(cString: trueNumber.objCType) -private let falseObjCType = String(cString: falseNumber.objCType) - -// MARK: - NSNumber: Comparable - -extension NSNumber { - var isBool:Bool { - get { - let objCType = String(cString: self.objCType) - if (self.compare(trueNumber) == ComparisonResult.orderedSame && objCType == trueObjCType) - || (self.compare(falseNumber) == ComparisonResult.orderedSame && objCType == falseObjCType){ - return true - } else { - return false - } - } - } -} - -func ==(lhs: NSNumber, rhs: NSNumber) -> Bool { - switch (lhs.isBool, rhs.isBool) { - case (false, true): - return false - case (true, false): - return false - default: - return lhs.compare(rhs) == ComparisonResult.orderedSame - } -} - -func !=(lhs: NSNumber, rhs: NSNumber) -> Bool { - return !(lhs == rhs) -} - -func <(lhs: NSNumber, rhs: NSNumber) -> Bool { - - switch (lhs.isBool, rhs.isBool) { - case (false, true): - return false - case (true, false): - return false - default: - return lhs.compare(rhs) == ComparisonResult.orderedAscending - } -} - -func >(lhs: NSNumber, rhs: NSNumber) -> Bool { - - switch (lhs.isBool, rhs.isBool) { - case (false, true): - return false - case (true, false): - return false - default: - return lhs.compare(rhs) == ComparisonResult.orderedDescending - } -} - -func <=(lhs: NSNumber, rhs: NSNumber) -> Bool { - - switch (lhs.isBool, rhs.isBool) { - case (false, true): - return false - case (true, false): - return false - default: - return lhs.compare(rhs) != ComparisonResult.orderedDescending - } -} - -func >=(lhs: NSNumber, rhs: NSNumber) -> Bool { - - switch (lhs.isBool, rhs.isBool) { - case (false, true): - return false - case (true, false): - return false - default: - return lhs.compare(rhs) != ComparisonResult.orderedAscending - } -} diff --git a/Example/Pods/Target Support Files/IrohaSwift/Info.plist b/Example/Pods/Target Support Files/IrohaSwift/Info.plist deleted file mode 100644 index 7db935aa9..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.0.12 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-dummy.m b/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-dummy.m deleted file mode 100644 index 8d256bd68..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_IrohaSwift : NSObject -@end -@implementation PodsDummy_IrohaSwift -@end diff --git a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-prefix.pch b/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-prefix.pch deleted file mode 100644 index aa992a4ad..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-prefix.pch +++ /dev/null @@ -1,4 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - diff --git a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-umbrella.h b/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-umbrella.h deleted file mode 100644 index ada21ed15..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift-umbrella.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -#import "IrohaSwift.h" - -FOUNDATION_EXPORT double IrohaSwiftVersionNumber; -FOUNDATION_EXPORT const unsigned char IrohaSwiftVersionString[]; - diff --git a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.modulemap b/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.modulemap deleted file mode 100644 index e4c5ad6a5..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module IrohaSwift { - umbrella header "IrohaSwift-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.xcconfig b/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.xcconfig deleted file mode 100644 index 2bc325689..000000000 --- a/Example/Pods/Target Support Files/IrohaSwift/IrohaSwift.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/IrohaSwift -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -LIBRARY_SEARCH_PATHS = $(inherited) $(SRCROOT)/IrohaSwift/** -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = $(SRCROOT)/** diff --git a/Example/Pods/Target Support Files/KeychainAccess/Info.plist b/Example/Pods/Target Support Files/KeychainAccess/Info.plist deleted file mode 100644 index 452267571..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-dummy.m b/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-dummy.m deleted file mode 100644 index b1cd3bfc8..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_KeychainAccess : NSObject -@end -@implementation PodsDummy_KeychainAccess -@end diff --git a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-prefix.pch b/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-prefix.pch deleted file mode 100644 index aa992a4ad..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-prefix.pch +++ /dev/null @@ -1,4 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - diff --git a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-umbrella.h b/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-umbrella.h deleted file mode 100644 index 2c272b9bb..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess-umbrella.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - - -FOUNDATION_EXPORT double KeychainAccessVersionNumber; -FOUNDATION_EXPORT const unsigned char KeychainAccessVersionString[]; - diff --git a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.modulemap b/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.modulemap deleted file mode 100644 index f26e6b163..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module KeychainAccess { - umbrella header "KeychainAccess-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.xcconfig b/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.xcconfig deleted file mode 100644 index fd510a229..000000000 --- a/Example/Pods/Target Support Files/KeychainAccess/KeychainAccess.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/KeychainAccess -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_VERSION = 3.0 diff --git a/Example/Pods/Target Support Files/Pods-Example/Info.plist b/Example/Pods/Target Support Files/Pods-Example/Info.plist deleted file mode 100644 index 2243fe6e2..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown deleted file mode 100644 index b6e25e298..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.markdown +++ /dev/null @@ -1,259 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## IrohaSwift - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - -## KeychainAccess - -The MIT License (MIT) - -Copyright (c) 2014 kishikawa katsumi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -## SwiftyJSON - -The MIT License (MIT) - -Copyright (c) 2014 Ruoyu Fu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist deleted file mode 100644 index 9aa3e1183..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-acknowledgements.plist +++ /dev/null @@ -1,303 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - License - Apache License Version 2.0 - Title - IrohaSwift - Type - PSGroupSpecifier - - - FooterText - The MIT License (MIT) - -Copyright (c) 2014 kishikawa katsumi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - License - MIT - Title - KeychainAccess - Type - PSGroupSpecifier - - - FooterText - The MIT License (MIT) - -Copyright (c) 2014 Ruoyu Fu - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - License - MIT - Title - SwiftyJSON - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m deleted file mode 100644 index 6ee3f9006..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_Example : NSObject -@end -@implementation PodsDummy_Pods_Example -@end diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh deleted file mode 100755 index bdcfa0e1d..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-frameworks.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh -set -e - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" - stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi -} - - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/IrohaSwift/IrohaSwift.framework" - install_framework "$BUILT_PRODUCTS_DIR/KeychainAccess/KeychainAccess.framework" - install_framework "$BUILT_PRODUCTS_DIR/SwiftyJSON/SwiftyJSON.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/IrohaSwift/IrohaSwift.framework" - install_framework "$BUILT_PRODUCTS_DIR/KeychainAccess/KeychainAccess.framework" - install_framework "$BUILT_PRODUCTS_DIR/SwiftyJSON/SwiftyJSON.framework" -fi diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-resources.sh b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-resources.sh deleted file mode 100755 index 0a1561528..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-resources.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -realpath() { - DIRECTORY="$(cd "${1%/*}" && pwd)" - FILENAME="${1##*/}" - echo "$DIRECTORY/$FILENAME" -} - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - 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}" - 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} - ;; - *.xib) - 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}" - 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} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "`realpath $PODS_ROOT`*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - 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}" -fi diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h b/Example/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h deleted file mode 100644 index 09826d78f..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example-umbrella.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - - -FOUNDATION_EXPORT double Pods_ExampleVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_ExampleVersionString[]; - diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig deleted file mode 100644 index 009ddc193..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.debug.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "IrohaSwift" -framework "KeychainAccess" -framework "SwiftyJSON" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap b/Example/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap deleted file mode 100644 index 4b5189fd4..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_Example { - umbrella header "Pods-Example-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig deleted file mode 100644 index 009ddc193..000000000 --- a/Example/Pods/Target Support Files/Pods-Example/Pods-Example.release.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "IrohaSwift" -framework "KeychainAccess" -framework "SwiftyJSON" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Info.plist b/Example/Pods/Target Support Files/Pods-ExampleTests/Info.plist deleted file mode 100644 index 2243fe6e2..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.markdown deleted file mode 100644 index 102af7538..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.markdown +++ /dev/null @@ -1,3 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: -Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.plist deleted file mode 100644 index 7acbad1ea..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-acknowledgements.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-dummy.m b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-dummy.m deleted file mode 100644 index c0024d529..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_ExampleTests : NSObject -@end -@implementation PodsDummy_Pods_ExampleTests -@end diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-frameworks.sh b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-frameworks.sh deleted file mode 100755 index 893c16a63..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-frameworks.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -set -e - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" - stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi -} - diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-resources.sh b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-resources.sh deleted file mode 100755 index 0a1561528..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-resources.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -realpath() { - DIRECTORY="$(cd "${1%/*}" && pwd)" - FILENAME="${1##*/}" - echo "$DIRECTORY/$FILENAME" -} - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - 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}" - 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} - ;; - *.xib) - 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}" - 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} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "`realpath $PODS_ROOT`*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - 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}" -fi diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-umbrella.h b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-umbrella.h deleted file mode 100644 index 66b16bb2c..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests-umbrella.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - - -FOUNDATION_EXPORT double Pods_ExampleTestsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_ExampleTestsVersionString[]; - diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig deleted file mode 100644 index 8e2ab4384..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.debug.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap deleted file mode 100644 index 08843bd05..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_ExampleTests { - umbrella header "Pods-ExampleTests-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig b/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig deleted file mode 100644 index 8e2ab4384..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleTests/Pods-ExampleTests.release.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Info.plist b/Example/Pods/Target Support Files/Pods-ExampleUITests/Info.plist deleted file mode 100644 index 2243fe6e2..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.markdown deleted file mode 100644 index 102af7538..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.markdown +++ /dev/null @@ -1,3 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: -Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.plist deleted file mode 100644 index 7acbad1ea..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-acknowledgements.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-dummy.m b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-dummy.m deleted file mode 100644 index 623ac2bec..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_ExampleUITests : NSObject -@end -@implementation PodsDummy_Pods_ExampleUITests -@end diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-frameworks.sh b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-frameworks.sh deleted file mode 100755 index 893c16a63..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-frameworks.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -set -e - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" - stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi -} - diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-resources.sh b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-resources.sh deleted file mode 100755 index 0a1561528..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-resources.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -realpath() { - DIRECTORY="$(cd "${1%/*}" && pwd)" - FILENAME="${1##*/}" - echo "$DIRECTORY/$FILENAME" -} - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - 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}" - 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} - ;; - *.xib) - 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}" - 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} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "`realpath $PODS_ROOT`*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - 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}" -fi diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-umbrella.h b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-umbrella.h deleted file mode 100644 index 399be1b2a..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests-umbrella.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - - -FOUNDATION_EXPORT double Pods_ExampleUITestsVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_ExampleUITestsVersionString[]; - diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.debug.xcconfig deleted file mode 100644 index 8e2ab4384..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.debug.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap deleted file mode 100644 index 0a40082fc..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_ExampleUITests { - umbrella header "Pods-ExampleUITests-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.release.xcconfig b/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.release.xcconfig deleted file mode 100644 index 8e2ab4384..000000000 --- a/Example/Pods/Target Support Files/Pods-ExampleUITests/Pods-ExampleUITests.release.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift" "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess" "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IrohaSwift/IrohaSwift.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/KeychainAccess/KeychainAccess.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON/SwiftyJSON.framework/Headers" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/SwiftyJSON/Info.plist b/Example/Pods/Target Support Files/SwiftyJSON/Info.plist deleted file mode 100644 index 452267571..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m b/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m deleted file mode 100644 index 3159becdb..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_SwiftyJSON : NSObject -@end -@implementation PodsDummy_SwiftyJSON -@end diff --git a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch b/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch deleted file mode 100644 index aa992a4ad..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch +++ /dev/null @@ -1,4 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - diff --git a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h b/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h deleted file mode 100644 index ce00ad0dd..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-umbrella.h +++ /dev/null @@ -1,6 +0,0 @@ -#import - - -FOUNDATION_EXPORT double SwiftyJSONVersionNumber; -FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[]; - diff --git a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap b/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap deleted file mode 100644 index 6f41751d6..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module SwiftyJSON { - umbrella header "SwiftyJSON-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig b/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig deleted file mode 100644 index 6165caf7e..000000000 --- a/Example/Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES