From 0c2b3f1c25f5c74f0c107f7cbe1c7afac464d5f2 Mon Sep 17 00:00:00 2001 From: Giuseppe Nucifora Date: Wed, 28 Dec 2016 18:49:02 +0100 Subject: [PATCH] - Upgrade to 1.0 --- Example/PNObject.xcodeproj/project.pbxproj | 269 +- .../xcschemes/PNObject-Example.xcscheme | 24 +- .../AppIcon.appiconset/Contents.json | 87 +- .../AppIcon.appiconset/Icon-40.png | Bin 188 -> 0 bytes .../AppIcon.appiconset/Icon-40@2x.png | Bin 353 -> 0 bytes .../AppIcon.appiconset/Icon-40@3x.png | Bin 523 -> 0 bytes .../AppIcon.appiconset/Icon-60@2x.png | Bin 523 -> 0 bytes .../AppIcon.appiconset/Icon-60@3x.png | Bin 958 -> 0 bytes .../AppIcon.appiconset/Icon-72.png | Bin 317 -> 0 bytes .../AppIcon.appiconset/Icon-72@2x.png | Bin 722 -> 0 bytes .../AppIcon.appiconset/Icon-76.png | Bin 341 -> 0 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 782 -> 0 bytes .../AppIcon.appiconset/Icon-83.5@2x.png | Bin 899 -> 0 bytes .../AppIcon.appiconset/Icon-Small-50.png | Bin 245 -> 0 bytes .../AppIcon.appiconset/Icon-Small-50@2x.png | Bin 458 -> 0 bytes .../AppIcon.appiconset/Icon-Small.png | Bin 170 -> 0 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 263 -> 0 bytes .../AppIcon.appiconset/Icon-Small@3x.png | Bin 387 -> 0 bytes .../AppIcon.appiconset/Icon.png | Bin 261 -> 0 bytes .../AppIcon.appiconset/Icon@2x.png | Bin 505 -> 0 bytes .../LaunchImage.launchimage/Contents.json | 129 +- .../Default-568h@2x.png | Bin 14964 -> 0 bytes .../Default-667h@2x.png | Bin 20567 -> 0 bytes .../Default-Landscape-736h@3x.png | Bin 50841 -> 0 bytes .../Default-Portrait-736h@3x.png | Bin 53106 -> 0 bytes .../LaunchImage.launchimage/Default.png | Bin 3635 -> 0 bytes .../LaunchImage.launchimage/Default@2x.png | Bin 12665 -> 0 bytes .../LaunchImage.launchimage/Default~ipad.png | Bin 15499 -> 0 bytes .../Default~ipad@2x.png | Bin 58219 -> 0 bytes .../Default~ipad~landscape.png | Bin 15040 -> 0 bytes .../Default~ipad~landscape@2x.png | Bin 57078 -> 0 bytes .../Default~ipad~landscape~nostatusbar.png | Bin 15438 -> 0 bytes .../Default~ipad~landscape~nostatusbar@2x.png | Bin 58611 -> 0 bytes .../Default~ipad~nostatusbar.png | Bin 15805 -> 0 bytes .../Default~ipad~nostatusbar@2x.png | Bin 59388 -> 0 bytes Example/PNObject/Main.storyboard | 27 + Example/PNObject/PNObjAppDelegate.h | 15 + ...ObjectAppDelegate.m => PNObjAppDelegate.m} | 59 +- Example/PNObject/PNObjViewController.h | 13 + ...ViewController.m => PNObjViewController.m} | 125 +- Example/PNObject/PNObject-Info.plist | 39 +- Example/PNObject/PNObjectAppDelegate.h | 15 - Example/PNObject/PNObjectViewController.h | 13 - Example/PNObject/main.m | 8 +- Example/PNObject_Example.entitlements | 8 - Example/Podfile | 26 +- Example/Podfile.lock | 46 +- .../{NACrypto => DDDKeychainWrapper}/LICENSE | 13 +- .../Pod/Classes/DDDKeychainWrapper.h | 46 + .../Pod/Classes/DDDKeychainWrapper.m | 373 + Example/Pods/DDDKeychainWrapper/README.md | 47 + .../EXPMatchers+FBSnapshotTest.h | 14 - .../EXPMatchers+FBSnapshotTest.m | 284 - .../ExpectaObject+FBSnapshotTest.h | 17 - .../ExpectaObject+FBSnapshotTest.m | 25 - Example/Pods/Expecta+Snapshots/LICENSE.md | 22 - Example/Pods/Expecta+Snapshots/README.md | 87 - .../UIApplication+StrictKeyWindow.h | 20 - .../UIApplication+StrictKeyWindow.m | 27 - .../Categories/UIImage+Compare.h | 37 - .../Categories/UIImage+Compare.m | 134 - .../Categories/UIImage+Diff.h | 37 - .../Categories/UIImage+Diff.m | 56 - .../Categories/UIImage+Snapshot.h | 24 - .../Categories/UIImage+Snapshot.m | 73 - .../FBSnapshotTestCase/FBSnapshotTestCase.h | 180 - .../FBSnapshotTestCase/FBSnapshotTestCase.m | 192 - .../FBSnapshotTestCasePlatform.h | 44 - .../FBSnapshotTestCasePlatform.m | 51 - .../FBSnapshotTestController.h | 166 - .../FBSnapshotTestController.m | 358 - .../FBSnapshotTestCase/SwiftSupport.swift | 125 - Example/Pods/FBSnapshotTestCase/LICENSE | 29 - Example/Pods/FBSnapshotTestCase/README.md | 97 - .../Pods/Local Podspecs/PNObject.podspec.json | 17 +- Example/Pods/Manifest.lock | 46 +- Example/Pods/NAChloride/LICENSE | 20 + Example/Pods/NAChloride/NAChloride/NAAEAD.h | 19 + Example/Pods/NAChloride/NAChloride/NAAEAD.m | 98 + Example/Pods/NAChloride/NAChloride/NAAuth.h | 24 + Example/Pods/NAChloride/NAChloride/NAAuth.m | 50 + Example/Pods/NAChloride/NAChloride/NABox.h | 21 + Example/Pods/NAChloride/NAChloride/NABox.m | 78 + .../Pods/NAChloride/NAChloride/NABoxKeypair.h | 22 + .../Pods/NAChloride/NAChloride/NABoxKeypair.m | 57 + .../Pods/NAChloride/NAChloride/NAChloride.h | 30 + .../Pods/NAChloride/NAChloride/NAInterface.h | 64 + .../Pods/NAChloride/NAChloride/NAInterface.m | 60 + .../NAChloride/NAChloride/NAOneTimeAuth.h | 24 + .../NAChloride/NAChloride/NAOneTimeAuth.m | 49 + Example/Pods/NAChloride/NAChloride/NARandom.h | 25 + Example/Pods/NAChloride/NAChloride/NARandom.m | 32 + Example/Pods/NAChloride/NAChloride/NAScrypt.h | 29 + Example/Pods/NAChloride/NAChloride/NAScrypt.m | 51 + .../NAChloride/NASecretBox.h} | 13 +- .../Pods/NAChloride/NAChloride/NASecretBox.m | 84 + .../Pods/NAChloride/NAChloride/NASecureData.h | 52 + .../Pods/NAChloride/NAChloride/NASecureData.m | 100 + Example/Pods/NAChloride/NAChloride/NAStream.h | 15 + Example/Pods/NAChloride/NAChloride/NAStream.m | 41 + Example/Pods/NAChloride/README.md | 189 + Example/Pods/NACrypto/NACrypto/NAAES.h | 25 - Example/Pods/NACrypto/NACrypto/NAAES.m | 72 - Example/Pods/NACrypto/NACrypto/NACounter.h | 20 - Example/Pods/NACrypto/NACrypto/NACounter.m | 44 - Example/Pods/NACrypto/NACrypto/NACrypto.h | 33 - Example/Pods/NACrypto/NACrypto/NADigest.h | 34 - Example/Pods/NACrypto/NACrypto/NADigest.m | 77 - Example/Pods/NACrypto/NACrypto/NAHMAC.h | 34 - Example/Pods/NACrypto/NACrypto/NAHMAC.m | 121 - Example/Pods/NACrypto/NACrypto/NAKeychain.h | 17 - Example/Pods/NACrypto/NACrypto/NAKeychain.m | 104 - .../Pods/NACrypto/NACrypto/NANSData+Utils.h | 23 - .../Pods/NACrypto/NACrypto/NANSData+Utils.m | 70 - .../NACrypto/NACrypto/NANSMutableData+Utils.h | 15 - .../NACrypto/NACrypto/NANSMutableData+Utils.m | 24 - .../Pods/NACrypto/NACrypto/NANSString+Utils.h | 15 - .../Pods/NACrypto/NACrypto/NANSString+Utils.m | 33 - Example/Pods/NACrypto/NACrypto/NASHA3.h | 17 - Example/Pods/NACrypto/NACrypto/NASHA3.m | 37 - Example/Pods/NACrypto/NACrypto/NASecRandom.h | 27 - Example/Pods/NACrypto/NACrypto/NASecRandom.m | 35 - Example/Pods/NACrypto/NACrypto/NATwoFish.m | 58 - .../Pods/NACrypto/NACrypto/TwoFish/twofish.c | 1691 --- .../Pods/NACrypto/NACrypto/TwoFish/twofish.h | 180 - .../NACrypto/keccak/KeccakF-1600-32-rvk.h | 562 - .../NACrypto/keccak/KeccakF-1600-32-s1.h | 1191 -- .../NACrypto/keccak/KeccakF-1600-32-s2.h | 1140 -- .../NACrypto/keccak/KeccakF-1600-32.h | 26 - .../NACrypto/keccak/KeccakF-1600-int-set.h | 6 - .../NACrypto/keccak/KeccakF-1600-interface.h | 51 - .../keccak/KeccakF-1600-opt32-settings.h | 6 - .../NACrypto/keccak/KeccakF-1600-opt32.c | 519 - .../NACrypto/keccak/KeccakF-1600-unrolling.h | 128 - .../NACrypto/keccak/KeccakNISTInterface.c | 83 - .../NACrypto/keccak/KeccakNISTInterface.h | 72 - .../NACrypto/NACrypto/keccak/KeccakSponge.c | 266 - .../NACrypto/NACrypto/keccak/KeccakSponge.h | 77 - .../NACrypto/NACrypto/keccak/brg_endian.h | 152 - Example/Pods/NACrypto/README.md | 71 - .../Pod/Classes/NSDate+NSDate_Util.h | 1 + .../Pod/Classes/NSDate+NSDate_Util.m | 7 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 10702 ++++++++-------- .../DDDKeychainWrapper-dummy.m | 5 + .../DDDKeychainWrapper-prefix.pch} | 0 .../DDDKeychainWrapper-umbrella.h | 17 + .../DDDKeychainWrapper.modulemap | 6 + .../DDDKeychainWrapper.xcconfig} | 5 +- .../Info.plist | 2 +- .../Expecta+Snapshots-dummy.m | 5 - .../Expecta+Snapshots-umbrella.h | 18 - .../Expecta+Snapshots.modulemap | 6 - .../Expecta+Snapshots.xcconfig | 11 - .../FBSnapshotTestCase-dummy.m | 5 - .../FBSnapshotTestCase-umbrella.h | 19 - .../FBSnapshotTestCase.modulemap | 6 - .../FBSnapshotTestCase.xcconfig | 13 - .../Info.plist | 2 +- .../NAChloride/NAChloride-dummy.m | 5 + .../NAChloride-prefix.pch} | 0 .../NAChloride/NAChloride-umbrella.h | 28 + .../NAChloride/NAChloride.modulemap | 6 + .../NAChloride/NAChloride.xcconfig | 10 + .../NACrypto/NACrypto-dummy.m | 5 - .../NACrypto/NACrypto-umbrella.h | 40 - .../NACrypto/NACrypto.modulemap | 6 - .../NSDate_Utils/Info.plist | 2 +- .../Target Support Files/PNObject/Info.plist | 2 +- .../PNObject/PNObject.xcconfig | 2 +- ...PNObject_Example-acknowledgements.markdown | 57 +- ...ds-PNObject_Example-acknowledgements.plist | 69 +- .../Pods-PNObject_Example-frameworks.sh | 8 +- .../Pods-PNObject_Example.debug.xcconfig | 7 +- .../Pods-PNObject_Example.release.xcconfig | 7 +- ...s-PNObject_Tests-acknowledgements.markdown | 656 - ...Pods-PNObject_Tests-acknowledgements.plist | 776 -- .../Pods-PNObject_Tests-frameworks.sh | 40 - .../Pods-PNObject_Tests.debug.xcconfig | 8 +- .../Pods-PNObject_Tests.release.xcconfig | 8 +- .../{NACrypto => libsodium}/Info.plist | 2 +- .../libsodium/libsodium-dummy.m | 5 + .../libsodium-prefix.pch} | 0 .../libsodium/libsodium-umbrella.h | 76 + .../libsodium/libsodium.modulemap | 6 + .../libsodium/libsodium.xcconfig | 9 + Example/Pods/libsodium/LICENSE | 18 + Example/Pods/libsodium/README.markdown | 46 + .../aes256gcm/aesni/aead_aes256gcm_aesni.c | 1045 ++ .../sodium/aead_chacha20poly1305.c | 365 + .../src/libsodium/crypto_auth/crypto_auth.c | 34 + .../hmacsha256/auth_hmacsha256_api.c | 16 + .../hmacsha256/cp/hmac_hmacsha256.c | 110 + .../hmacsha256/cp/verify_hmacsha256.c | 11 + .../hmacsha512/auth_hmacsha512_api.c | 16 + .../hmacsha512/cp/hmac_hmacsha512.c | 110 + .../hmacsha512/cp/verify_hmacsha512.c | 12 + .../hmacsha512256/auth_hmacsha512256_api.c | 16 + .../hmacsha512256/cp/hmac_hmacsha512256.c | 54 + .../hmacsha512256/cp/verify_hmacsha512256.c | 14 + .../src/libsodium/crypto_box/crypto_box.c | 108 + .../libsodium/crypto_box/crypto_box_easy.c | 113 + .../libsodium/crypto_box/crypto_box_seal.c | 67 + .../box_curve25519xsalsa20poly1305_api.c | 41 + .../ref/after_curve25519xsalsa20poly1305.c | 22 + .../ref/before_curve25519xsalsa20poly1305.c | 18 + .../ref/box_curve25519xsalsa20poly1305.c | 42 + .../ref/keypair_curve25519xsalsa20poly1305.c | 29 + .../crypto_core/curve25519/ref10/base.h | 1344 ++ .../crypto_core/curve25519/ref10/base2.h | 40 + .../curve25519/ref10/curve25519_ref10.c | 2242 ++++ .../crypto_core/hchacha20/core_hchacha20.c | 86 + .../crypto_core/hchacha20/core_hchacha20.h | 28 + .../crypto_core/hsalsa20/core_hsalsa20_api.c | 21 + .../crypto_core/hsalsa20/ref2/core_hsalsa20.c | 100 + .../crypto_core/salsa20/core_salsa20_api.c | 21 + .../crypto_core/salsa20/ref/core_salsa20.c | 126 + .../salsa2012/core_salsa2012_api.c | 21 + .../salsa2012/ref/core_salsa2012.c | 126 + .../crypto_core/salsa208/core_salsa208_api.c | 21 + .../crypto_core/salsa208/ref/core_salsa208.c | 126 + .../blake2/generichash_blake2_api.c | 48 + .../blake2/ref/blake2-impl.h | 48 + .../crypto_generichash/blake2/ref/blake2.h | 97 + .../blake2/ref/blake2b-compress-avx2.c | 45 + .../blake2/ref/blake2b-compress-avx2.h | 123 + .../blake2/ref/blake2b-compress-ref.c | 94 + .../blake2/ref/blake2b-compress-sse41.c | 80 + .../blake2/ref/blake2b-compress-sse41.h | 97 + .../blake2/ref/blake2b-compress-ssse3.c | 87 + .../blake2/ref/blake2b-compress-ssse3.h | 97 + .../blake2/ref/blake2b-load-avx2.h | 339 + .../blake2/ref/blake2b-load-sse2.h | 66 + .../blake2/ref/blake2b-load-sse41.h | 400 + .../blake2/ref/blake2b-ref.c | 456 + .../blake2/ref/generichash_blake2b.c | 114 + .../crypto_generichash/crypto_generichash.c | 84 + .../src/libsodium/crypto_hash/crypto_hash.c | 20 + .../crypto_hash/sha256/cp/hash_sha256.c | 269 + .../crypto_hash/sha256/hash_sha256_api.c | 11 + .../crypto_hash/sha512/cp/hash_sha512.c | 298 + .../crypto_hash/sha512/hash_sha512_api.c | 11 + .../crypto_onetimeauth/crypto_onetimeauth.c | 65 + .../poly1305/donna/poly1305_donna.c | 117 + .../poly1305/donna/poly1305_donna.h | 12 + .../poly1305/donna/poly1305_donna32.h | 188 + .../poly1305/donna/poly1305_donna64.h | 181 + .../poly1305/onetimeauth_poly1305.c | 71 + .../poly1305/onetimeauth_poly1305.h | 23 + .../poly1305/sse2/poly1305_sse2.c | 706 + .../poly1305/sse2/poly1305_sse2.h | 12 + .../crypto_pwhash/argon2/argon2-core.c | 570 + .../crypto_pwhash/argon2/argon2-core.h | 198 + .../crypto_pwhash/argon2/argon2-encoding.c | 443 + .../crypto_pwhash/argon2/argon2-encoding.h | 32 + .../argon2/argon2-fill-block-ref.c | 229 + .../argon2/argon2-fill-block-ssse3.c | 222 + .../crypto_pwhash/argon2/argon2-impl.h | 40 + .../libsodium/crypto_pwhash/argon2/argon2.c | 242 + .../libsodium/crypto_pwhash/argon2/argon2.h | 251 + .../crypto_pwhash/argon2/blake2b-long.c | 80 + .../crypto_pwhash/argon2/blake2b-long.h | 8 + .../crypto_pwhash/argon2/blamka-round-ref.h | 38 + .../crypto_pwhash/argon2/blamka-round-ssse3.h | 117 + .../crypto_pwhash/argon2/pwhash_argon2i.c | 164 + .../libsodium/crypto_pwhash/crypto_pwhash.c | 106 + .../crypto_scrypt-common.c | 252 + .../scryptsalsa208sha256/crypto_scrypt.h | 99 + .../nosse/pwhash_scryptsalsa208sha256_nosse.c | 341 + .../scryptsalsa208sha256/pbkdf2-sha256.c | 88 + .../scryptsalsa208sha256/pbkdf2-sha256.h | 45 + .../pwhash_scryptsalsa208sha256.c | 208 + .../scryptsalsa208sha256/scrypt_platform.c | 100 + .../sse/pwhash_scryptsalsa208sha256_sse.c | 392 + .../crypto_scalarmult/crypto_scalarmult.c | 33 + .../donna_c64/curve25519_donna_c64.c | 480 + .../donna_c64/curve25519_donna_c64.h | 10 + .../curve25519/ref10/x25519_ref10.c | 255 + .../curve25519/ref10/x25519_ref10.h | 10 + .../curve25519/sandy2x/consts_namespace.h | 20 + .../curve25519/sandy2x/curve25519_sandy2x.c | 114 + .../curve25519/sandy2x/curve25519_sandy2x.h | 9 + .../crypto_scalarmult/curve25519/sandy2x/fe.h | 26 + .../curve25519/sandy2x/fe51.h | 35 + .../curve25519/sandy2x/fe51_invert.c | 57 + .../curve25519/sandy2x/fe51_namespace.h | 16 + .../curve25519/sandy2x/fe_frombytes_sandy2x.c | 75 + .../curve25519/sandy2x/ladder.h | 18 + .../curve25519/sandy2x/ladder_base.h | 18 + .../sandy2x/ladder_base_namespace.h | 8 + .../curve25519/sandy2x/ladder_namespace.h | 8 + .../curve25519/scalarmult_curve25519.c | 67 + .../curve25519/scalarmult_curve25519.h | 11 + .../crypto_secretbox/crypto_secretbox.c | 54 + .../crypto_secretbox/crypto_secretbox_easy.c | 142 + .../ref/box_xsalsa20poly1305.c | 35 + .../secretbox_xsalsa20poly1305_api.c | 26 + .../crypto_shorthash/crypto_shorthash.c | 27 + .../siphash24/ref/shorthash_siphash24.c | 72 + .../siphash24/shorthash_siphash24_api.c | 11 + .../src/libsodium/crypto_sign/crypto_sign.c | 76 + .../crypto_sign/ed25519/ref10/keypair.c | 77 + .../crypto_sign/ed25519/ref10/obsolete.c | 111 + .../crypto_sign/ed25519/ref10/open.c | 154 + .../crypto_sign/ed25519/ref10/sign.c | 77 + .../crypto_sign/ed25519/sign_ed25519_api.c | 39 + .../aes128ctr/portable/afternm_aes128ctr.c | 159 + .../aes128ctr/portable/beforenm_aes128ctr.c | 59 + .../crypto_stream/aes128ctr/portable/common.h | 771 ++ .../crypto_stream/aes128ctr/portable/consts.h | 28 + .../aes128ctr/portable/consts_aes128ctr.c | 14 + .../crypto_stream/aes128ctr/portable/int128.h | 56 + .../aes128ctr/portable/int128_aes128ctr.c | 131 + .../aes128ctr/portable/stream_aes128ctr.c | 29 + .../crypto_stream/aes128ctr/portable/types.h | 10 + .../portable/xor_afternm_aes128ctr.c | 180 + .../aes128ctr/stream_aes128ctr_api.c | 16 + .../chacha20/ref/stream_chacha20_ref.c | 315 + .../chacha20/ref/stream_chacha20_ref.h | 28 + .../crypto_stream/chacha20/stream_chacha20.c | 85 + .../crypto_stream/chacha20/stream_chacha20.h | 22 + .../chacha20/vec/stream_chacha20_vec.c | 336 + .../chacha20/vec/stream_chacha20_vec.h | 28 + .../libsodium/crypto_stream/crypto_stream.c | 36 + .../salsa20/ref/stream_salsa20_ref.c | 55 + .../salsa20/ref/xor_salsa20_ref.c | 63 + .../salsa20/stream_salsa20_api.c | 19 + .../salsa2012/ref/stream_salsa2012.c | 51 + .../salsa2012/ref/xor_salsa2012.c | 54 + .../salsa2012/stream_salsa2012_api.c | 11 + .../salsa208/ref/stream_salsa208.c | 51 + .../crypto_stream/salsa208/ref/xor_salsa208.c | 54 + .../salsa208/stream_salsa208_api.c | 11 + .../xsalsa20/ref/stream_xsalsa20.c | 24 + .../crypto_stream/xsalsa20/ref/xor_xsalsa20.c | 35 + .../xsalsa20/stream_xsalsa20_api.c | 11 + .../crypto_verify/16/ref/verify_16.c | 17 + .../crypto_verify/16/verify_16_api.c | 6 + .../crypto_verify/32/ref/verify_32.c | 17 + .../crypto_verify/32/verify_32_api.c | 6 + .../crypto_verify/64/ref/verify_64.c | 17 + .../crypto_verify/64/verify_64_api.c | 6 + .../libsodium/src/libsodium/include/sodium.h | 57 + .../src/libsodium/include/sodium/core.h | 19 + .../include/sodium/crypto_aead_aes256gcm.h | 141 + .../sodium/crypto_aead_chacha20poly1305.h | 156 + .../libsodium/include/sodium/crypto_auth.h | 41 + .../include/sodium/crypto_auth_hmacsha256.h | 63 + .../include/sodium/crypto_auth_hmacsha512.h | 63 + .../sodium/crypto_auth_hmacsha512256.h | 58 + .../src/libsodium/include/sodium/crypto_box.h | 169 + .../crypto_box_curve25519xsalsa20poly1305.h | 100 + .../include/sodium/crypto_core_hchacha20.h | 35 + .../include/sodium/crypto_core_hsalsa20.h | 35 + .../include/sodium/crypto_core_salsa20.h | 35 + .../include/sodium/crypto_core_salsa2012.h | 35 + .../include/sodium/crypto_core_salsa208.h | 35 + .../include/sodium/crypto_generichash.h | 71 + .../sodium/crypto_generichash_blake2b.h | 118 + .../libsodium/include/sodium/crypto_hash.h | 40 + .../include/sodium/crypto_hash_sha256.h | 56 + .../include/sodium/crypto_hash_sha512.h | 56 + .../libsodium/include/sodium/crypto_int32.h | 8 + .../libsodium/include/sodium/crypto_int64.h | 8 + .../include/sodium/crypto_onetimeauth.h | 58 + .../sodium/crypto_onetimeauth_poly1305.h | 65 + .../libsodium/include/sodium/crypto_pwhash.h | 89 + .../include/sodium/crypto_pwhash_argon2i.h | 86 + .../crypto_pwhash_scryptsalsa208sha256.h | 79 + .../include/sodium/crypto_scalarmult.h | 37 + .../sodium/crypto_scalarmult_curve25519.h | 36 + .../include/sodium/crypto_secretbox.h | 84 + .../crypto_secretbox_xsalsa20poly1305.h | 54 + .../include/sodium/crypto_shorthash.h | 36 + .../sodium/crypto_shorthash_siphash24.h | 30 + .../libsodium/include/sodium/crypto_sign.h | 77 + .../include/sodium/crypto_sign_ed25519.h | 82 + .../crypto_sign_edwards25519sha512batch.h | 54 + .../libsodium/include/sodium/crypto_stream.h | 49 + .../include/sodium/crypto_stream_aes128ctr.h | 60 + .../include/sodium/crypto_stream_chacha20.h | 77 + .../include/sodium/crypto_stream_salsa20.h | 49 + .../include/sodium/crypto_stream_salsa2012.h | 43 + .../include/sodium/crypto_stream_salsa208.h | 43 + .../include/sodium/crypto_stream_xsalsa20.h | 49 + .../libsodium/include/sodium/crypto_uint16.h | 8 + .../libsodium/include/sodium/crypto_uint32.h | 8 + .../libsodium/include/sodium/crypto_uint64.h | 8 + .../libsodium/include/sodium/crypto_uint8.h | 8 + .../include/sodium/crypto_verify_16.h | 23 + .../include/sodium/crypto_verify_32.h | 23 + .../include/sodium/crypto_verify_64.h | 23 + .../src/libsodium/include/sodium/export.h | 44 + .../libsodium/include/sodium/private/common.h | 150 + .../include/sodium/private/curve25519_ref10.h | 160 + .../libsodium/include/sodium/private/mutex.h | 7 + .../libsodium/include/sodium/randombytes.h | 58 + .../include/sodium/randombytes_nativeclient.h | 23 + .../sodium/randombytes_salsa20_random.h | 19 + .../include/sodium/randombytes_sysrandom.h | 19 + .../src/libsodium/include/sodium/runtime.h | 46 + .../src/libsodium/include/sodium/utils.h | 132 + .../src/libsodium/include/sodium/version.h | 29 + .../src/libsodium/include/sodium/version.h.in | 29 + .../nativeclient/randombytes_nativeclient.c | 60 + .../src/libsodium/randombytes/randombytes.c | 174 + .../salsa20/randombytes_salsa20_random.c | 503 + .../sysrandom/randombytes_sysrandom.c | 360 + .../libsodium/src/libsodium/sodium/core.c | 169 + .../libsodium/src/libsodium/sodium/runtime.c | 245 + .../libsodium/src/libsodium/sodium/utils.c | 690 + .../libsodium/src/libsodium/sodium/version.c | 20 + Example/Tests/Tests-Prefix.pch | 2 - Example/Tests/Tests.m | 4 +- LICENSE | 2 +- PNObject.podspec | 40 +- {Pod => PNObject}/Assets/.gitkeep | 0 {Pod => PNObject}/Classes/.gitkeep | 0 .../Classes/PNClasses/PNAddress.h | 0 .../Classes/PNClasses/PNAddress.m | 0 .../Classes/PNClasses/PNInstallation.h | 0 .../Classes/PNClasses/PNInstallation.m | 0 .../Classes/PNClasses/PNLocation.h | 0 .../Classes/PNClasses/PNLocation.m | 0 .../Classes/PNClasses/PNObjcPassword.h | 0 .../Classes/PNClasses/PNObjcPassword.m | 0 {Pod => PNObject}/Classes/PNClasses/PNUser.h | 5 + {Pod => PNObject}/Classes/PNClasses/PNUser.m | 81 +- .../Classes/PNObject+PNObjectConnection.h | 0 .../Classes/PNObject+PNObjectConnection.m | 0 .../Classes/PNObject+Protected.h | 0 .../Classes/PNObject+Protected.m | 0 {Pod => PNObject}/Classes/PNObject.h | 2 +- {Pod => PNObject}/Classes/PNObject.m | 1 + {Pod => PNObject}/Classes/PNObjectConfig.h | 0 {Pod => PNObject}/Classes/PNObjectConfig.m | 20 +- {Pod => PNObject}/Classes/PNObjectConstants.h | 2 - {Pod => PNObject}/Classes/PNObjectFormData.h | 0 {Pod => PNObject}/Classes/PNObjectFormData.m | 0 {Pod => PNObject}/Classes/PNObjectModel.h | 0 {Pod => PNObject}/Classes/PNObjectModel.m | 40 +- {Pod => PNObject}/Classes/PNObjectUtilities.h | 0 {Pod => PNObject}/Classes/PNObjectUtilities.m | 0 .../AFJSONResponseSerializerWithData.h | 0 .../AFJSONResponseSerializerWithData.m | 0 .../AFHTTPRequestSerializer+OAuth2.h | 0 .../AFHTTPRequestSerializer+OAuth2.m | 0 .../Vendors/AFOAuth2Manager/AFOAuth2Manager.h | 0 .../Vendors/AFOAuth2Manager/AFOAuth2Manager.m | 0 .../AFOAuth2Manager/AFOAuthCredential.h | 0 .../AFOAuth2Manager/AFOAuthCredential.m | 0 Pod/Modulemap/module.modulemap | 0 README.md | 89 +- 452 files changed, 33888 insertions(+), 16806 deletions(-) delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-72.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-76.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small-50.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon.png delete mode 100644 Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-Landscape-736h@3x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape~nostatusbar.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape~nostatusbar@2x.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~nostatusbar.png delete mode 100644 Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~nostatusbar@2x.png create mode 100644 Example/PNObject/Main.storyboard create mode 100644 Example/PNObject/PNObjAppDelegate.h rename Example/PNObject/{PNObjectAppDelegate.m => PNObjAppDelegate.m} (82%) create mode 100644 Example/PNObject/PNObjViewController.h rename Example/PNObject/{PNObjectViewController.m => PNObjViewController.m} (77%) delete mode 100644 Example/PNObject/PNObjectAppDelegate.h delete mode 100644 Example/PNObject/PNObjectViewController.h delete mode 100644 Example/PNObject_Example.entitlements rename Example/Pods/{NACrypto => DDDKeychainWrapper}/LICENSE (86%) create mode 100644 Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.h create mode 100644 Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.m create mode 100644 Example/Pods/DDDKeychainWrapper/README.md delete mode 100644 Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h delete mode 100644 Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.m delete mode 100644 Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.h delete mode 100644 Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.m delete mode 100644 Example/Pods/Expecta+Snapshots/LICENSE.md delete mode 100644 Example/Pods/Expecta+Snapshots/README.md delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.m delete mode 100644 Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/SwiftSupport.swift delete mode 100644 Example/Pods/FBSnapshotTestCase/LICENSE delete mode 100644 Example/Pods/FBSnapshotTestCase/README.md create mode 100644 Example/Pods/NAChloride/LICENSE create mode 100644 Example/Pods/NAChloride/NAChloride/NAAEAD.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAAEAD.m create mode 100644 Example/Pods/NAChloride/NAChloride/NAAuth.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAAuth.m create mode 100644 Example/Pods/NAChloride/NAChloride/NABox.h create mode 100644 Example/Pods/NAChloride/NAChloride/NABox.m create mode 100644 Example/Pods/NAChloride/NAChloride/NABoxKeypair.h create mode 100644 Example/Pods/NAChloride/NAChloride/NABoxKeypair.m create mode 100644 Example/Pods/NAChloride/NAChloride/NAChloride.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAInterface.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAInterface.m create mode 100644 Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.m create mode 100644 Example/Pods/NAChloride/NAChloride/NARandom.h create mode 100644 Example/Pods/NAChloride/NAChloride/NARandom.m create mode 100644 Example/Pods/NAChloride/NAChloride/NAScrypt.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAScrypt.m rename Example/Pods/{NACrypto/NACrypto/NATwoFish.h => NAChloride/NAChloride/NASecretBox.h} (56%) create mode 100644 Example/Pods/NAChloride/NAChloride/NASecretBox.m create mode 100644 Example/Pods/NAChloride/NAChloride/NASecureData.h create mode 100644 Example/Pods/NAChloride/NAChloride/NASecureData.m create mode 100644 Example/Pods/NAChloride/NAChloride/NAStream.h create mode 100644 Example/Pods/NAChloride/NAChloride/NAStream.m create mode 100644 Example/Pods/NAChloride/README.md delete mode 100644 Example/Pods/NACrypto/NACrypto/NAAES.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NAAES.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NACounter.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NACounter.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NACrypto.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NADigest.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NADigest.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NAHMAC.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NAHMAC.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NAKeychain.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NAKeychain.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSData+Utils.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSData+Utils.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSString+Utils.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NANSString+Utils.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NASHA3.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NASHA3.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NASecRandom.h delete mode 100644 Example/Pods/NACrypto/NACrypto/NASecRandom.m delete mode 100644 Example/Pods/NACrypto/NACrypto/NATwoFish.m delete mode 100644 Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c delete mode 100644 Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h delete mode 100644 Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h delete mode 100644 Example/Pods/NACrypto/README.md create mode 100644 Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-dummy.m rename Example/Pods/Target Support Files/{Expecta+Snapshots/Expecta+Snapshots-prefix.pch => DDDKeychainWrapper/DDDKeychainWrapper-prefix.pch} (100%) create mode 100644 Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-umbrella.h create mode 100644 Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.modulemap rename Example/Pods/Target Support Files/{NACrypto/NACrypto.xcconfig => DDDKeychainWrapper/DDDKeychainWrapper.xcconfig} (69%) rename Example/Pods/Target Support Files/{Expecta+Snapshots => DDDKeychainWrapper}/Info.plist (96%) delete mode 100644 Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-dummy.m delete mode 100644 Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-umbrella.h delete mode 100644 Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.modulemap delete mode 100644 Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.xcconfig delete mode 100644 Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-dummy.m delete mode 100644 Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-umbrella.h delete mode 100644 Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap delete mode 100644 Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig rename Example/Pods/Target Support Files/{FBSnapshotTestCase => NAChloride}/Info.plist (96%) create mode 100644 Example/Pods/Target Support Files/NAChloride/NAChloride-dummy.m rename Example/Pods/Target Support Files/{FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch => NAChloride/NAChloride-prefix.pch} (100%) create mode 100644 Example/Pods/Target Support Files/NAChloride/NAChloride-umbrella.h create mode 100644 Example/Pods/Target Support Files/NAChloride/NAChloride.modulemap create mode 100644 Example/Pods/Target Support Files/NAChloride/NAChloride.xcconfig delete mode 100644 Example/Pods/Target Support Files/NACrypto/NACrypto-dummy.m delete mode 100644 Example/Pods/Target Support Files/NACrypto/NACrypto-umbrella.h delete mode 100644 Example/Pods/Target Support Files/NACrypto/NACrypto.modulemap rename Example/Pods/Target Support Files/{NACrypto => libsodium}/Info.plist (96%) create mode 100644 Example/Pods/Target Support Files/libsodium/libsodium-dummy.m rename Example/Pods/Target Support Files/{NACrypto/NACrypto-prefix.pch => libsodium/libsodium-prefix.pch} (100%) create mode 100644 Example/Pods/Target Support Files/libsodium/libsodium-umbrella.h create mode 100644 Example/Pods/Target Support Files/libsodium/libsodium.modulemap create mode 100644 Example/Pods/Target Support Files/libsodium/libsodium.xcconfig create mode 100644 Example/Pods/libsodium/LICENSE create mode 100644 Example/Pods/libsodium/README.markdown create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/crypto_auth.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_easy.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_seal.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/core_salsa20_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/ref/core_salsa20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/core_salsa208_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/ref/core_salsa208.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-avx2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_hash/crypto_hash.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-impl.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/crypto_sign.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/types.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/crypto_stream.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/16/ref/verify_16.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/16/verify_16_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/32/verify_32_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/64/ref/verify_64.c create mode 100644 Example/Pods/libsodium/src/libsodium/crypto_verify/64/verify_64_api.c create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/core.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int32.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int64.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint16.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint32.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint64.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint8.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_16.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_32.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_64.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/export.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/private/common.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/private/mutex.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/randombytes.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_nativeclient.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_salsa20_random.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/runtime.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/utils.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/version.h create mode 100644 Example/Pods/libsodium/src/libsodium/include/sodium/version.h.in create mode 100644 Example/Pods/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c create mode 100644 Example/Pods/libsodium/src/libsodium/randombytes/randombytes.c create mode 100644 Example/Pods/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c create mode 100644 Example/Pods/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c create mode 100644 Example/Pods/libsodium/src/libsodium/sodium/core.c create mode 100644 Example/Pods/libsodium/src/libsodium/sodium/runtime.c create mode 100644 Example/Pods/libsodium/src/libsodium/sodium/utils.c create mode 100644 Example/Pods/libsodium/src/libsodium/sodium/version.c rename {Pod => PNObject}/Assets/.gitkeep (100%) rename {Pod => PNObject}/Classes/.gitkeep (100%) rename {Pod => PNObject}/Classes/PNClasses/PNAddress.h (100%) rename {Pod => PNObject}/Classes/PNClasses/PNAddress.m (100%) rename {Pod => PNObject}/Classes/PNClasses/PNInstallation.h (100%) rename {Pod => PNObject}/Classes/PNClasses/PNInstallation.m (100%) rename {Pod => PNObject}/Classes/PNClasses/PNLocation.h (100%) rename {Pod => PNObject}/Classes/PNClasses/PNLocation.m (100%) rename {Pod => PNObject}/Classes/PNClasses/PNObjcPassword.h (100%) rename {Pod => PNObject}/Classes/PNClasses/PNObjcPassword.m (100%) rename {Pod => PNObject}/Classes/PNClasses/PNUser.h (95%) rename {Pod => PNObject}/Classes/PNClasses/PNUser.m (81%) rename {Pod => PNObject}/Classes/PNObject+PNObjectConnection.h (100%) rename {Pod => PNObject}/Classes/PNObject+PNObjectConnection.m (100%) rename {Pod => PNObject}/Classes/PNObject+Protected.h (100%) rename {Pod => PNObject}/Classes/PNObject+Protected.m (100%) rename {Pod => PNObject}/Classes/PNObject.h (99%) rename {Pod => PNObject}/Classes/PNObject.m (99%) rename {Pod => PNObject}/Classes/PNObjectConfig.h (100%) rename {Pod => PNObject}/Classes/PNObjectConfig.m (97%) rename {Pod => PNObject}/Classes/PNObjectConstants.h (95%) rename {Pod => PNObject}/Classes/PNObjectFormData.h (100%) rename {Pod => PNObject}/Classes/PNObjectFormData.m (100%) rename {Pod => PNObject}/Classes/PNObjectModel.h (100%) rename {Pod => PNObject}/Classes/PNObjectModel.m (80%) rename {Pod => PNObject}/Classes/PNObjectUtilities.h (100%) rename {Pod => PNObject}/Classes/PNObjectUtilities.m (100%) rename {Pod => PNObject}/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.h (100%) rename {Pod => PNObject}/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.m (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.h (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.m (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.h (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.m (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.h (100%) rename {Pod => PNObject}/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.m (100%) delete mode 100644 Pod/Modulemap/module.modulemap diff --git a/Example/PNObject.xcodeproj/project.pbxproj b/Example/PNObject.xcodeproj/project.pbxproj index e933b15..974f73e 100644 --- a/Example/PNObject.xcodeproj/project.pbxproj +++ b/Example/PNObject.xcodeproj/project.pbxproj @@ -7,21 +7,22 @@ objects = { /* Begin PBXBuildFile section */ - 3F3C53CB2D851F471BE8A604 /* Pods_PNObject_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89BBA9195EECA9F4625BB1DC /* Pods_PNObject_Example.framework */; }; + 2EC5979E315D48625574D725 /* Pods_PNObject_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 808511432137F18DDFE44210 /* Pods_PNObject_Tests.framework */; }; 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; }; 6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; }; 6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; }; - 6003F59E195388D20070C39A /* PNObjectAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* PNObjectAppDelegate.m */; }; - 6003F5A7195388D20070C39A /* PNObjectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* PNObjectViewController.m */; }; + 6003F59E195388D20070C39A /* PNObjAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* PNObjAppDelegate.m */; }; + 6003F5A7195388D20070C39A /* PNObjViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* PNObjViewController.m */; }; 6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; }; 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; }; 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; }; 6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; }; - 60D833DF200A0D946F2E8C4D /* Pods_PNObject_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CAD2FCF55030EAE61415B480 /* Pods_PNObject_Tests.framework */; }; + 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; }; + FD9FF8837F786E50B88531C0 /* Pods_PNObject_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F74BC1D549B9C619883DB7E0 /* Pods_PNObject_Example.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -35,8 +36,9 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 2DBDB9BA06776F1FFBD6EDC3 /* Pods-PNObject_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig"; sourceTree = ""; }; - 4082E2E9CCB7F56C1A30AF72 /* Pods-PNObject_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.release.xcconfig"; sourceTree = ""; }; + 116AF818F8117B91EF290C9A /* Pods-PNObject_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.release.xcconfig"; sourceTree = ""; }; + 2661CEE1F223361CD1DACC25 /* PNObject.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = PNObject.podspec; path = ../PNObject.podspec; sourceTree = ""; }; + 3E392C278361604C1602CAF0 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 6003F58A195388D20070C39A /* PNObject_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PNObject_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -45,10 +47,10 @@ 6003F597195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 6003F599195388D20070C39A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 6003F59B195388D20070C39A /* PNObject-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PNObject-Prefix.pch"; sourceTree = ""; }; - 6003F59C195388D20070C39A /* PNObjectAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNObjectAppDelegate.h; sourceTree = ""; }; - 6003F59D195388D20070C39A /* PNObjectAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNObjectAppDelegate.m; sourceTree = ""; }; - 6003F5A5195388D20070C39A /* PNObjectViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNObjectViewController.h; sourceTree = ""; }; - 6003F5A6195388D20070C39A /* PNObjectViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNObjectViewController.m; sourceTree = ""; }; + 6003F59C195388D20070C39A /* PNObjAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNObjAppDelegate.h; sourceTree = ""; }; + 6003F59D195388D20070C39A /* PNObjAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNObjAppDelegate.m; sourceTree = ""; }; + 6003F5A5195388D20070C39A /* PNObjViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNObjViewController.h; sourceTree = ""; }; + 6003F5A6195388D20070C39A /* PNObjViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNObjViewController.m; sourceTree = ""; }; 6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 6003F5AE195388D20070C39A /* PNObject_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PNObject_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; @@ -56,15 +58,13 @@ 6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = ""; }; 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = ""; }; - 6805F44B1DF6DCC600C79B18 /* PNObject_Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PNObject_Example.entitlements; sourceTree = ""; }; - 75FCB4EFD17838CCA4C93E4A /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - 89BBA9195EECA9F4625BB1DC /* Pods_PNObject_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNObject_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8C017F9292D546DE8DBC84F8 /* PNObject.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = PNObject.podspec; path = ../PNObject.podspec; sourceTree = ""; }; - 9898F9E5E65D3B402429FD73 /* Pods-PNObject_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig"; sourceTree = ""; }; - 9F4B24EF58CA8BC69BFC569B /* Pods-PNObject_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig"; sourceTree = ""; }; - BA17B1571B43FAFAA8B45B6D /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - CAD2FCF55030EAE61415B480 /* Pods_PNObject_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNObject_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DE7587A588720F0590F50755 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 808511432137F18DDFE44210 /* Pods_PNObject_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNObject_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; + A90E0E5930707E3F83662328 /* Pods-PNObject_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig"; sourceTree = ""; }; + C0F786F6B0C2234E3B3A5F30 /* Pods-PNObject_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig"; sourceTree = ""; }; + C6D958A9E3E6FFB7818A72C7 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; + E20844B85780704FB196FA2A /* Pods-PNObject_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PNObject_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig"; sourceTree = ""; }; + F74BC1D549B9C619883DB7E0 /* Pods_PNObject_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PNObject_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,7 +75,7 @@ 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */, 6003F592195388D20070C39A /* UIKit.framework in Frameworks */, 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */, - 3F3C53CB2D851F471BE8A604 /* Pods_PNObject_Example.framework in Frameworks */, + FD9FF8837F786E50B88531C0 /* Pods_PNObject_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -86,34 +86,22 @@ 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */, 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */, 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */, - 60D833DF200A0D946F2E8C4D /* Pods_PNObject_Tests.framework in Frameworks */, + 2EC5979E315D48625574D725 /* Pods_PNObject_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 2DE160677BF4961C3D433201 /* Pods */ = { - isa = PBXGroup; - children = ( - 9898F9E5E65D3B402429FD73 /* Pods-PNObject_Example.debug.xcconfig */, - 4082E2E9CCB7F56C1A30AF72 /* Pods-PNObject_Example.release.xcconfig */, - 9F4B24EF58CA8BC69BFC569B /* Pods-PNObject_Tests.debug.xcconfig */, - 2DBDB9BA06776F1FFBD6EDC3 /* Pods-PNObject_Tests.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; 6003F581195388D10070C39A = { isa = PBXGroup; children = ( - 6805F44B1DF6DCC600C79B18 /* PNObject_Example.entitlements */, 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */, 6003F593195388D20070C39A /* Example for PNObject */, 6003F5B5195388D20070C39A /* Tests */, 6003F58C195388D20070C39A /* Frameworks */, 6003F58B195388D20070C39A /* Products */, - 2DE160677BF4961C3D433201 /* Pods */, + 977F1D998CB9116027C75157 /* Pods */, ); sourceTree = ""; }; @@ -133,9 +121,8 @@ 6003F58F195388D20070C39A /* CoreGraphics.framework */, 6003F591195388D20070C39A /* UIKit.framework */, 6003F5AF195388D20070C39A /* XCTest.framework */, - DE7587A588720F0590F50755 /* Pods.framework */, - 89BBA9195EECA9F4625BB1DC /* Pods_PNObject_Example.framework */, - CAD2FCF55030EAE61415B480 /* Pods_PNObject_Tests.framework */, + F74BC1D549B9C619883DB7E0 /* Pods_PNObject_Example.framework */, + 808511432137F18DDFE44210 /* Pods_PNObject_Tests.framework */, ); name = Frameworks; sourceTree = ""; @@ -143,10 +130,11 @@ 6003F593195388D20070C39A /* Example for PNObject */ = { isa = PBXGroup; children = ( - 6003F59C195388D20070C39A /* PNObjectAppDelegate.h */, - 6003F59D195388D20070C39A /* PNObjectAppDelegate.m */, - 6003F5A5195388D20070C39A /* PNObjectViewController.h */, - 6003F5A6195388D20070C39A /* PNObjectViewController.m */, + 6003F59C195388D20070C39A /* PNObjAppDelegate.h */, + 6003F59D195388D20070C39A /* PNObjAppDelegate.m */, + 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */, + 6003F5A5195388D20070C39A /* PNObjViewController.h */, + 6003F5A6195388D20070C39A /* PNObjViewController.m */, 6003F5A8195388D20070C39A /* Images.xcassets */, 6003F594195388D20070C39A /* Supporting Files */, ); @@ -187,13 +175,24 @@ 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */ = { isa = PBXGroup; children = ( - 8C017F9292D546DE8DBC84F8 /* PNObject.podspec */, - BA17B1571B43FAFAA8B45B6D /* README.md */, - 75FCB4EFD17838CCA4C93E4A /* LICENSE */, + 2661CEE1F223361CD1DACC25 /* PNObject.podspec */, + 3E392C278361604C1602CAF0 /* README.md */, + C6D958A9E3E6FFB7818A72C7 /* LICENSE */, ); name = "Podspec Metadata"; sourceTree = ""; }; + 977F1D998CB9116027C75157 /* Pods */ = { + isa = PBXGroup; + children = ( + E20844B85780704FB196FA2A /* Pods-PNObject_Example.debug.xcconfig */, + 116AF818F8117B91EF290C9A /* Pods-PNObject_Example.release.xcconfig */, + A90E0E5930707E3F83662328 /* Pods-PNObject_Tests.debug.xcconfig */, + C0F786F6B0C2234E3B3A5F30 /* Pods-PNObject_Tests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -201,12 +200,12 @@ isa = PBXNativeTarget; buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "PNObject_Example" */; buildPhases = ( - 387C1DBC7D3E0673105ED546 /* [CP] Check Pods Manifest.lock */, + E4CE079F616C61EA34D08B8B /* [CP] Check Pods Manifest.lock */, 6003F586195388D20070C39A /* Sources */, 6003F587195388D20070C39A /* Frameworks */, 6003F588195388D20070C39A /* Resources */, - 3695565DCFF7D29C95488878 /* [CP] Embed Pods Frameworks */, - B84699CAD21D4AE39D658EC6 /* [CP] Copy Pods Resources */, + C40CC8D7B1996A567BE82827 /* [CP] Embed Pods Frameworks */, + 614EA73ED5E0ED0F8684468C /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -221,12 +220,12 @@ isa = PBXNativeTarget; buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "PNObject_Tests" */; buildPhases = ( - F5E57EFDD9ADE887CAAAC837 /* [CP] Check Pods Manifest.lock */, + 3FF38AA7E586B22171D1A118 /* [CP] Check Pods Manifest.lock */, 6003F5AA195388D20070C39A /* Sources */, 6003F5AB195388D20070C39A /* Frameworks */, 6003F5AC195388D20070C39A /* Resources */, - 31A4834C1FAEFDFFFAEC6297 /* [CP] Embed Pods Frameworks */, - C2D74CFB72423672ACF097D4 /* [CP] Copy Pods Resources */, + 746A765B48FD98342716D81F /* [CP] Embed Pods Frameworks */, + 21411FBE0FE21EC75B6AB1E3 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -244,17 +243,12 @@ 6003F582195388D10070C39A /* Project object */ = { isa = PBXProject; attributes = { - CLASSPREFIX = PNObject; - LastUpgradeCheck = 0820; + CLASSPREFIX = PNObj; + LastUpgradeCheck = 0720; ORGANIZATIONNAME = "Giuseppe Nucifora"; TargetAttributes = { 6003F589195388D20070C39A = { DevelopmentTeam = 825G85A28E; - SystemCapabilities = { - com.apple.Push = { - enabled = 1; - }; - }; }; 6003F5AD195388D20070C39A = { TestTargetID = 6003F589195388D20070C39A; @@ -285,6 +279,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, ); @@ -301,67 +296,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 31A4834C1FAEFDFFFAEC6297 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 3695565DCFF7D29C95488878 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 387C1DBC7D3E0673105ED546 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - B84699CAD21D4AE39D658EC6 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - C2D74CFB72423672ACF097D4 /* [CP] Copy Pods Resources */ = { + 21411FBE0FE21EC75B6AB1E3 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -376,7 +311,67 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - F5E57EFDD9ADE887CAAAC837 /* [CP] Check Pods Manifest.lock */ = { + 3FF38AA7E586B22171D1A118 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + 614EA73ED5E0ED0F8684468C /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 746A765B48FD98342716D81F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C40CC8D7B1996A567BE82827 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E4CE079F616C61EA34D08B8B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -398,8 +393,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 6003F59E195388D20070C39A /* PNObjectAppDelegate.m in Sources */, - 6003F5A7195388D20070C39A /* PNObjectViewController.m in Sources */, + 6003F59E195388D20070C39A /* PNObjAppDelegate.m in Sources */, + 6003F5A7195388D20070C39A /* PNObjViewController.m in Sources */, 6003F59A195388D20070C39A /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -455,19 +450,14 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -480,8 +470,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = NO; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -500,25 +490,20 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -527,15 +512,14 @@ }; 6003F5C0195388D20070C39A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9898F9E5E65D3B402429FD73 /* Pods-PNObject_Example.debug.xcconfig */; + baseConfigurationReference = E20844B85780704FB196FA2A /* Pods-PNObject_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_ENTITLEMENTS = PNObject_Example.entitlements; + DEVELOPMENT_TEAM = 825G85A28E; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "PNObject/PNObject-Prefix.pch"; INFOPLIST_FILE = "PNObject/PNObject-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -545,15 +529,14 @@ }; 6003F5C1195388D20070C39A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4082E2E9CCB7F56C1A30AF72 /* Pods-PNObject_Example.release.xcconfig */; + baseConfigurationReference = 116AF818F8117B91EF290C9A /* Pods-PNObject_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_ENTITLEMENTS = PNObject_Example.entitlements; + DEVELOPMENT_TEAM = 825G85A28E; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "PNObject/PNObject-Prefix.pch"; INFOPLIST_FILE = "PNObject/PNObject-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -563,9 +546,8 @@ }; 6003F5C3195388D20070C39A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9F4B24EF58CA8BC69BFC569B /* Pods-PNObject_Tests.debug.xcconfig */; + baseConfigurationReference = A90E0E5930707E3F83662328 /* Pods-PNObject_Tests.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", @@ -588,9 +570,8 @@ }; 6003F5C4195388D20070C39A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2DBDB9BA06776F1FFBD6EDC3 /* Pods-PNObject_Tests.release.xcconfig */; + baseConfigurationReference = C0F786F6B0C2234E3B3A5F30 /* Pods-PNObject_Tests.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( "$(SDKROOT)/Developer/Library/Frameworks", diff --git a/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme b/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme index daf767c..9861ec6 100644 --- a/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme +++ b/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme @@ -1,6 +1,6 @@ - - - - - - - - - - i*i6weQcl+0UA0+R8-uqf!e1GM~ z+~-^PuE={CIEr4_$E&u2>DKmxETIm+&1Nj%%DB%a9K!hac0!ZZf?8>x0M;$}&77+m ezU6`x*D+@uX08bQJ+}#H8H1;*pUXO@geCxgL_mT7 diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@2x.png deleted file mode 100644 index 9c834e8628edb816a323b66a4c2f8927ad923e24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)jKx9jP7LeL$-D$|I14-?iy0Wi zR6&^0Gf3qFPyw5#i(^OyGdv= ze@qOI1sRxnm<+!=Gz2OfF`wX!tP=tT6N9I#pUXO@geCyKNpDdA diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-40@3x.png deleted file mode 100644 index 099ca39585d298efa61a10123a5dc65d2a765cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b#^NA%Cx&(BWL^R}oCO|{#S9E$ zsvykh8Km+7s9=Mqi(^Oyjj@UGjJynr0xTP!%P!{6Wf4m8sp2bJm%P5xZn?vf1M)W$ z+nClfTu@lT#W1&OxuJvc1TBV=S96asoOM{maA9S+6tfBQN+yTp_cD1d@Qf-N4T8~B dfXE2qujjB#c(8T zI!1>=7Ka8Wg-z^?T#YB>STtCass$DZbi8pK)Pf=o><8nScT7BQei-Om22WQ%mvv4F FO#muMU(Nsk diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png deleted file mode 100644 index c3e27408a1e8e0ef79840e01123878a33f6d0844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$a>cF%}28J29*~C-V}>;VkfoEM{O3 zQw3p0&mff#3=B-=o-U3d6^w5$ZR9&TtM4X%wdswFmP2o&=(i?JrXOFXd1;fyU$gh~3>!?=7ax%D;AWWitdviJ zIg|0gr9I~ulNEFsB4%B;OyF6<%HaLkioK_C)R56Ip&*^aua0Dic*mLl1em57JYD@< J);T3K0RR~S8h8Kz diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-83.5@2x.png deleted file mode 100644 index 55f3a6fb13a13c565d44662e7176219e7e22a068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 899 zcmeAS@N?(olHy`uVBq!ia0vp^%R!if4M>)V`Md#AjKx9jP7LeL$-D$|I14-?iy0Wi zR6&^0Gf3qF0|T>$r;B4q1>@UGj=T(t0xSm~%Pi*4Wf2PbvN-JElI_RhKG*m)CN$db zIH|%K$7tbrLaf2~x76VWDGJdH=iX%VG*52KVYJx1-jK(SZ4>K*Gy9GiSV)d48V!PB bmI@lV4cD=hT@QT<%2f=Wu6{1-oD!M5rgGuY2@4J_Lz?%Ke zhxr#2cTZj8;i|%1tLv$AER1FKF`%VuIP;YAM#>5nUg-G90eK8;OXk;vd$@?2>`u7Hpu`0 diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png deleted file mode 100644 index 92382cc3e0c42248d7236a4133a3e951c87faea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s51|%Qu_R;`SjKx9jP7LeL$-D$|I14-?iy0Wi zR6&^0Gf3qFP;iZ>i(^Oz>)T5k1sexGOy6oLy2!)3Z*h9tRU8?ZxR>zPn}|( UW7zsyALwodPgg&ebxsLQ0J%wGbN~PV diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png deleted file mode 100644 index 93a009a7ac94a4ef9b3a2da05ce71e969b21df32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^;ULVx1|$nl+{^(|jKx9jP7LeL$-D$|I14-?iy0Wi zR6&^0Gf3qFP=SW0i(^Oy4{!RPykB;)n@nXheHw%->RkPM!#elF{r5}E)xgQ=1L diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon.png deleted file mode 100644 index 833d7a0658d6fca551a6d7eaff016a3194bdb3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^mLSZ*1|)kVnp=SsV{wqX6T`Z5GB1G~&H|6fVg?2= zRS;(M3{v?36kO%$;uw;_`u5UB-U9{#hYwgtr`w$uJL15WaGw3{s*A7p-1}Q|{X;qb z{`dClm6vO%&s>txxNkKF_iDAy&mD(UTq7b(J?FTKsA(QLw9505%_0L&L9sAjq343F zo?RO@WKFW@*YF8yX$_rxq|zmEl9JAvSt{q0xh9JwCSFx3lnb1(gjl0qG1loY&#GPH R+5>bogQu&X%Q~loCIH>AT#Wz# diff --git a/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon@2x.png b/Example/PNObject/Images.xcassets/AppIcon.appiconset/Icon@2x.png deleted file mode 100644 index 566b80a8162a604cc5eec9b9930552221393621e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^MIg+<1|<9Mw$=hE#^NA%Cx&(BWL^R}oCO|{#S9E$ zsvykh8Km+7s9>I_i(^OyeMU0XZ qni3~Ex$(Fd=!|M2FCZpPV1MwOg-22U;yPgTF?hQAxvXO|y8CF2<) z8zWK+nuC8bUwY*4q!crW7?rPrFFbG+lG!3reOSDdRHoG=>TF2GyNBnL*V`cvHT!x_ z9)kPcX|-nRIP2VfOI(hl>l;u8UN zIZ=^Bp^=wq0R=$8s>uTifP$1)00lq+P=F)}(bxz<1&6F}EsO9e@HGKW5-utL3VcSu z>my_~KmkyY{yXdx00rz6V9|sdOSleT(G)Cz8w+kMxUtYGfZhi*bBKyM+HJV~0R2Nk oX+%R5&zsTV1t?fbBcSjvDEMz?-P)689*I8ERBt+7j^&rX0gOZft^fc4 diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png deleted file mode 100644 index be0281aa25b6f57f3a5e388453a6aa3db6c36503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20567 zcmeI4%}X0W7>D0oW8GLoq6Y~gb}JD)3PLYMT*H=Ri-?3?gdRNAQ)$3Lg{o|Nka`kD zJbU)wO%QsCdQ%Vzeo(Ln>8XBf13ly*h3-tu_&2mXhp^enJIu~xXXc$}e(x+#P83q@ zJ?$cr3W|P7#EwK-pE-}>l*993b+Kkkg}iJZ_x_A;lI7ymtVs8O`dC3JR}=9h@W)=w zS+{3jlT|n4kL~<8nR)v(zg63N-FkGha5G>3ohpQ4*$F4(dSUg{zP@_D-x+_sPpdu7 zMtv1y;Ca<@dOg?Q%plgm_q58{uyCAgR9W+L&3kux_wK>ewycAZ$+gdovQ&~ zIZ=)m9vN<^_UG}vS#YS88>_4YOG^a+SWg2HfCw6e0TF-*+DU?jDtrq>03rYp*x@jH zH9!O)0uVv(V*(L?2zsXlhyX-TP7)9ShyX+|k|C4`C=pO1Xc-$20f+!Z03vAbKs5sp z0f+!ZFd}Z02q+Qs{D=|(hyX+YA^;Jzcc7aAB?3wWwbKGb03rYpfCxYYLWzl={%?ZD zH>SSbill4mEC6D(Aft^5ju1jL1uvAft% z>IZ(HU={}5D7Nm}MW@hqRcv>H1cWRUQA8I?lrDT@nE1a}?#)|Bvgl6;P8@wNIq#fv z&%O8MIX<#usH<~*X9%IIK3p3Op*$Hvdbhkh|C4WCO-$#%C1ayQgW<;QPafuJoxyB zkd)GLrJ6OI7tN{WFVh!R`+sTf-_L%K_I-NXIad3vYDamb`|_3oXK#c*S1s@bzBy=b zl5C&(Y?J$)%$>b5Ia}bo;dpN~s~`JoL3r|mmey=7aNg>VY1%jb&-pe64(3^7X2n96 zrFEE7jj-|Ax{nH6n)1kh1Zx+{~t{reXtMM#np8w#AaGF&R1`QzYM&NthBtC~Gq zRs`*O);Kjg(NTaDY2UZ)gL~HpGP)NMGCHh;jINjBjJEOMjBbgeOxwz$Oxv=`YZ;l* zQ5KoeO}Au5J2KP2xJ?HQjIAuXX?5i(T<}m zMmu%`nk$acj@^SY+Ho4ta)r^3tt>`6wyYTK*t}sK=<=oo52GEs2W7OwXh*YyGHu%} zW!kk{HZV>AW&>l-i7C@=9imLT@UVfgmBj`|=Nma1WdkGeh?&F&#+ehdf$^ds8yH(w zY+&roUCXT5z}O9F4i6g`+j!W(I1MNp7%vJk+OcKD2F7({ejv+-hYgHvJdAc2?Pzwe zfwBFBGEJG*?BISzHK)4y`-y+s&jN^hZ8~dB9bvt6*0#6MS<_i-cJLzzvAIeQW&q9r zT(g5cb-Z1aeII*j5k;h#o;{^2)}k5L&!+H2yL@6gn2tgK zxgZyT0M&)+q7WdA*%MFXqR1kkqPhrg6|)S&n2I72DojTxNq~dtU^)r`(bzyU}lqC(4?vsO&DnI zCENtVO)zf}KrYBdAwZKVEtBfP?Y=f62xEjXi2ySliHGdos4ljb5XMv#kx;bQWT> z@Kym1U8d@>BvhCVrV}H8T#$=Gfa)SG6S*waP^QX4*@=Nzw=ym%Tar#}T#`q$R}v4= zL0~!#IG7HmqYxl3%EA-dE^<+1kx)^iW3ouwrAA9UsL?FgBnO0-AQ$AK5TLqHU19_X zV}vn<0KJPSqN2Vc7ey8c71bs7R#|!pV-gRctM@lwytMV!tq_*4uh#~4&R-08IS<7< wFW}{(@Nyn^xHu2RJ1^iOTvQ0WcezwgkAFD*;?dc!L;kD2ZAb0K;J)u(18?zEZ~y=R diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default-Portrait-736h@3x.png deleted file mode 100644 index dc3c298ed04eec609f5d91a87e2c9dacf6e98dac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53106 zcmeI5Pe@cz6vpp+KBlKQ_MiyS%n8b6xDY{tcr#4sKv@hz1VKWZffxwfShN_;ML`rr z1m#AfMNmjV)FKGMww1Q1n1WgvR#+e{gcjX9bKkpHom#XI!Ji<$8RyUA&bin z=F-vr-ef~dgAgK_>&xba@XA8?6MjP8vvB>$E&0b8%J*i()T^Bf@<#oczT-ne?AWV* zom_s;Pa#5)%ccj0o$v1-C8tw?m!3HFuD5ve+DEswsi*z&zVh-j+{ED7u2 znEUPP)7NY7_x#^(W_h85D&xy@qnIyo`9Z!o?zF|!~^j_Jirg(hwwxAA^Z?N03U!4zz5(1 z@B#P$d;mTGAAk?Q2jBzn0r&uXU}Nxs`)6NVjb;Iu{Jb&Fjq_nP0@uPTzQBGoSU~SO z@epqbc|bf655xnrl^i*H3cds${(~=#%v@=EBgdh2HZJ`**O55=d7`I9UF*^4WL)e4ULgRUYOgoXKL?m0n%Nr^2wXWL-NFKl4IqwmWrOKRH5c_21Ov<+X1r zM$%!SH8^Z2PyEcFe17elmZs(FBrkT@FRTZ)`Nab(N4Hf@X)p-NiR`xc^vuCncYFL^ z=AhH}i*uxuwQgviy3jS$-LA>{qFh z)EkRIq+Xa$#2z7@DrrJI;r&+CLD{8?Ey^yLG^u)ZvOsiD7=h@3=n%0dM2C1K5FHR5 zEQuD;LG27g2Sf+syI{BI8Vk_@(ZP6!(j>%ebX-ISL5x!JC?pgTI!?1W&F0ZI!1u-XwfF_TugZ{=V3c5#V1_GFf>{uW?~Csnu_v0% z&OmZQax*lFW^;UB3nKA-H>2-+uWkQbM~K1Z`A@$NHNKrr4|Ta7 z!=hv;Ff2+*k+QggN<*csJOP!4N?ZLw8T`8t|1Q#9@bB>NEO8qD4*xEK2DuUpi;{er z7D^ov42x1U3jYrO&Ojuh1EPcWC=eYG9Zc6x#kRq}!@tA7GuaaV&Voq%yUpm|@x?$@ zI3W6oe#@1hWnO0nBsU~CEwIRlKypKJ(*lc1oAmk6=VR*0_3HB}o_O$Fh^D1nHa%cz zU3?Vl|532~d^an3ph}goUa(#)JmkwkbvmNoQ&DBC7ri&=_mt%{mrkiVT1Eu@o@yNs ipAnz+hEPfKui|r1IJv#Bcw_jPkUzPD{n@F^;OHN0U^m+U diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default.png deleted file mode 100644 index 365101efc58f43549458f47076f9bd4f70a7c502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3635 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ZD2OMlbkt;o0T!0i~age(c!@6@aFM%A+0*}aI z1_m)z5N7lYQuzSXdBfAiF{Fa=?G;8|21NnpgU@9b^XIY%<-D2G?58hVefF~@6AK3m z>%WAwiJSroA6R%6xGOj)XeTgizRK;_(7^bGnS~>Tl_z0a)j>`HgNC{WhQ>7wjAz31 zEf|^DF7OK|Ob|6_xcQ1z-QfVkFGePoO-yVC(R&}Ta7Z}VJ2W_i9biaXEk1{Vk@*EX zhrkIgi32%bn}ih-82&OaGDR{n&sZB*zy!2Ze$>*@;2lj!qgiIOa2PFnM{AkU`gFAA qFxo~MZGw(Awnw`aSUXS!jJ@~RUaVQSKN;BZWAJqKb6Mw<&;$Tk(pM4y diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default@2x.png deleted file mode 100644 index 4f4a254cfab3c8060b72934546a758f08494bf45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12665 zcmeI3y-UMD7{=eUp&y~8rJ^lTw4!wpO1rokYo(1!(Ne@hk)nc&LZypCky8*9ML`E$ z1VID`DY$iTh~n2IPVUx42c@8sB6u;U|AE^xgz)6^LhgQd_rA}q4yTiDrCA{&x0Xs| zh%AiAsyl4_$YJf~lkcQbCK;#7ZSa{3XEBv45jBO4P0}(Qb)r~{mgvpSOE32$Zff)P zojnE*JhQTI<}_#Ddre-Czm+#gvd9i^NDZ~ur?->=CUjkPshg@$E6xBrIll}G9bgN; zmw6kaG`YMsD0Gy*{+`!apex0{BXog2#EY0Zq|g;tc_D zIU^#8KqC*+0t$eF8IuPT00og=0TciQKmjR9B#qS&vfxPTo82OO3cOE%lY}P~00rJ6 z;Po-mY=8owApCb2DF6x>DZru$HEbxp@I$~sdN!RT?#HD z>f+=e=;RP5!9hn67r{wT5nUV{%)8p;L--#`n&c&Sm*nof_q+dXP8G-FoxPnz6ffAh z5|QftRbRERxA}}bu6P?!D~(%pdYgLjcA`u6OpPcxz&}war9X&-^9d|E=64lF@$o~7}_59b`HVGx9>4xc0z2P3%gK2+XD3dOIXn$wD!V zY0YLmwC?!Vo3=|@b0`yBue#m7sjfwP=reByNo+7PU^F11&m^1Zol;Bp#duHj!H>LWnBlOH{x!q2ogq=R$)X)=IvKF=` z+VwKMMyo+R&}e?5c+>d2WtTyp#z4k{BSvqyEa@@frxBcRl!u56VJKqnRw9LjgIxo% zETop4qa&XNIgvC55CISY5J3h>fCzvH5>|tIvuglE07L*pkUQMA z0T2NYLC&;5i2x-62T6bkfCzvHZK)TO2m(q3C=sM!5fA|o0T4k(2Y?9t7yuCf5v1%L z5CISY5P_ouC=s|P03x)$1uSQP5&=pCIVwVl03`yu20#RM4gYdEgWIup*G0=abLZZI NVk+c|xl^mM@e9=|qPGA5 diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad@2x.png deleted file mode 100644 index 09b55a0d7c7385f086e801fc87537fbc71e8caf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58219 zcmeI5Pe>F|7{I^T-FDZ-wN*?uG1^2yIvGTS2N`Wew}aYdP={c}=nw^h9)voK5~AI@ zbO<6NB<$d&n{?1FULu7qN*AGn1_mA^I%V_T?(9sX6J0vU{tn{mbJ^W*{=DD!`@Z*_ z9qjK-CK?kWlFapG^CD6EVQeF=zU}Ncys*C+WBJ~0S^U)W&HkZkwC~oKNJFdoGIIHr zJrPrK*{-1pV|VjfQqHBWtbA>Heeyx1?#}y<9Xt0AI(|Ig9*e|N8PgIY44w`k~mAhEnzI5_x&PE?~S}cAS^@$2Xox%hbTB z*?{r1jQgMAgfeoXT2|gX$p(y9OUF?MQ@zeqC~9q8?`aMgkIEV6HT(yM!>P^<4kuTq zzFxUHx!LO5FE?A}PCc74cY;D1o*-MuR?#zwN}NPRWvb+z&&xhI}h{sbg0G}4&M4K zW+mNwadBQMsn^L@R=998cmp$|5VV0=p>0dj&jPn08>39)JhnK`8(vcHY$Jz-~o8xi2!&29)JhnffE7nfK?2vVqg_RDFWaDcmN(a zlOy&3JOB?W1`o{dn-`My)@UEv4;Hsa79xqWEb?U)kBR_oy0q!irmLnx@EAM>kDUmB z$KWw|fIY*WDLMiVN)cd@FN=Ix`RRgvU+`m>AOg{j|rAo&9T diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape.png deleted file mode 100644 index 3fec990e6ab300fbc5e963e343f6169f87b8f99b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15040 zcmeI3ze>YU6vj{f5YyV=)u9xr7)pyB6zZyiX-P?|P-<`~ICRia5V|<1q`D|BDn3B* z0gCtpbr5lJ5_Bv$2?|ArIyiWfR_z5J;TuA3KJxdFbM}DAVPbh zpsQ+x>Sy_6{{sChX|yN`sw``sb(a|Xxs%?GiZ>|=vLq>1V|_IAd&_>qlUgH!Ky|K} z<*UPiXX87xs6F)eu>KJi*I2q@4+epmRq80>ktWyl^XY^bgbaO(g2`Bh)TQXD7}gkl zi2_6Tczh8)ynXn1W&Hd6pCh^sbRFnlmRFMSO%aBKpFVpD&Slm1W*QGn}LSIG6*IlfHDAO0LuWB0Vo4d20@L0 ji3y+#KpF7d=>Hj&ZAxE+=wN4Jmd`?^V!mWIbJhKCiMX+w diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape@2x.png deleted file mode 100644 index 26a8f901a8546f26c73247b8961e9cd548051b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57078 zcmeI4O-K}R7{=e3U6<8d*(74=izO073_SHg9#&b?tq@%d>JWI3N{~Jd9cC*CJ$a~e z+My1Chad=q+B!#vD3Ay&ilP+q(jmGuyYum%o&T)U&5BjTFlwY5TBcIi0emmgy6$d7+7;A5zWvcmXVqpH`>)~_bbFW$+ESUXI?tfXjbKy!doy`|4G0bKM)i>tq zx0PT0&ChWE^ZJ&Y97;C5j(b)%+b8K;-Dce7`eZ86>|64_+kAdfvfbmc_negXskk4r zP^e0N>~1>lo>i%4Vk#yT%Q6b{#jSDovKaPQo~4Cg_*r^_cRi6aKq2BRy5O0 zNu_fr_MRy@zY!$r^-m_-#q64my=S|;^FFVp*G#8#l03Gp5_e)w9>?J(55QEJ0hn70 z0H*pB26JlxgQ-Elh;(bgh*U}g4d&JY4W^_l8qBE$B0pgD5c!U8#6<@D87|W45Mqje zuP3H(I)s>lm_m7SVu}DoIIKxbK}?}2!i5Jh1u=!jn#2^u6e`Jd;XzD6OrerY7aqhE z#1tyYbm2ivK}@0T`XHttrU>NQb<$ur1u+FNh33hLDYTLhQxH=SQ)r%?m_jQFF$FON zF@@&Ii7B*_5K|CS5L1Lbx$DQ+O`$vpF$FONF@@@f##->uhw>oA6vPz76sjK@Yr#Vw z%7YM7{IfB|;o1IH?_B_m0LM|{C~=fHO5RgZvk2@BBXm`QhrMA9wcru9K#IWLF!qLp zRl|QAy52l<^N1UvyxgoPNG025%M*_xIc_o64z6XE0^On?b6;Urs)>!eOq@E!P$u&@9V zU;<1;i%s+ddICLxp3t6dBcBM53^FS)0VbklgioO83G@Vd!fyxd056Ic4G$480Vcpi zw6H)=peN81nvB4U;zh$F15AJkFcB>yd;&#JpeN81emiIfc+t)GqI0F=W$#@8{!ouN zfXm=AxJ;ukzf<6{&F3=z!-zP5zu+(U3;ts73D1rOZ98+Dxg8F&zyz286G4_#f*Ku- zjz&kLqtVgm=-`AvGohL4nrUq5(ustK)%W7*>d#X>mFKMivh0upQ4i88d10TMGCSmY z=THz_4gc=c*|5*zTD8JZFQwJNgwtMN0!)Mn6ik2#FyX0(u!luYc#aO9fG6MyctYiz zk@gGUfv@#OhTkmA4rT|l!*2)efP8{{B21cK0!)AjG-lkw2s{B#z!UHUJV93L@c@1s zzm4D4Y_`9+gJwcAd0gqC1WbSlFcGDrPkw*YBeLgmsW>pfzOrD2;0!ne&IopdFR@q$ zW*s=(8ejrUfC)vBp7rqm20ekE2sa3r025#Wjp=lOHZqtUp~A5C!P*CFAMgbG)X8dt xssSC1jz&iZJHnTay~PzML^(yG1xz~LD}E)V&9NpkP|-0u!5<$@WS2@#Q5DmpHa z&YKz;0lsRtr%k?6>TV%Nt-IJ8-w19Mt97DCQY=czO>~Jey^@n%+g9G6ugs3cv~2VB zp|H7n-2zn{{4cAZSfi0A&Emz^@T7 oF#(hTCV!Z diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape~nostatusbar@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~landscape~nostatusbar@2x.png deleted file mode 100644 index 887f77bee7ef8a0fee6782fe5414cd15275334a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58611 zcmeI4&r1|>7{=e(-L}=#R*8`Eu!Mp{2Tx@svC4{Wg{XL_L*PGP35Iwmn5`i6B$3c9 z^H4$HEeM3#I(3K+QI`m`f_~Y-ONZ!Cv(At2?DsqC)G3OOAdWiDtnWVW^FGfr-jie#M4v}DrGmv=YrPB>qzsnLNxS$^L3+4-h!a`5z&$nK8Hr&Szn z-w?@5vCum!#f{WZl0S-WwN=vEmoq|M)_4@ z{mbf)p4xkOf4s4yRk~9(kK^r?&2~xVdS@c;a9uK)to4%oSDVX?OSW?)_MGFgmX7;3 z^ZBymhLLK!7--wG0`7>Ok+abgh zAzx2S;dTfy1u=#4QG^E%VhUmkgEfgMh$&Q(>A{1Tf|x=jnI1fd zDTpallIg*Nn1YzXSoJ|nK}-?Kw>L?H)fB`O#1w`nC#En;LQFwSK}=zIa$*XjB*YZN z6vPyUCnu&bNy0!&29h=4%R6X*%_M9>b#243{_4cm6+Hgj7KvcLqG025)BRDv2E zjgCe~qodK$=;-i-Kr^A4HZ@arW%^`N#O`|bX#M-C{iP>$A+l_egHboqDtY1Tn@%*z z<(B?1xT=2d*4c9Q;#if!P%ov`!GzmhU;<3&1PUg=1eoyEgYIF`6TYK^C*TQq0-jJg zXQchYci?ONkr6ZtvxC{e>oSXUOV5S#&Lz!~9=2qYHQ zfw>N>w+5I16JSD7q;EZfpP(nu6MBPy2`~XB(3ox)7$bw(p%sQ}A6)z3+6O$rI(4$z zuxda@qodK$;f@HTBe@*8oZcE>0!)AjMUjS}Mo*w8^acSFU;<41vBq4S{*;%>$J3wp kn_JqtC)diQe8u$gOfvb5ky?YO>uHi3N8)~=3Q(u`UU<&(=fi$ROs6`RZ>Dtmam$AVG)}0OpRo^ zLiPLphF6#^UP5lI`5yH^#9n+pk8vyHJ+t)VnbPi&E%eMvx!X>m1nnWuG^xk3WUe2~ zb?ap~jaL17pwaw9@lWIRmR$yY8Uq;*ju^e+vZTj^pGI)PQ63^PgrSJN-9!or2fGGj zSx7B8M@K#law2IAAOau)Ac72%01*HYB&-JaX4e3S0EhsHAcG{#W$`>6Ch#z8Dg7fL z0w4k)f}ClA5&=pC4w3*701*HYx>7GF5d@S7P$EddA|L`F0w98n4geAOF#sX}B1qXg zAOau)AOc4RP$F)fsfX> diff --git a/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~nostatusbar@2x.png b/Example/PNObject/Images.xcassets/LaunchImage.launchimage/Default~ipad~nostatusbar@2x.png deleted file mode 100644 index 46eafe812f1ce8d82fbe22937dac85ac5f35410e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59388 zcmeI5Jxo(k6oAibYg-yx3!uG4q!qIlfgxN_qMNn7M^h>e1qY^wJAOC=YHoq=U!%q z2m7Ou=7@+yGXv?YNYFkEOIUp=e%S7?zZjF*{$5#poBVEnQpNXPAFWRY!ts=8iQ%g`FfSB`<{M^q z50ri~RP@!3X?@pjp8-o7@z;YdOXLq}&l z#uIY8_7zSj1BdEm<=OqT$9TPT?R7HM`xJaZt9Y^Rl*f2bTAcT&Jvp3Cb!~7uxjXg! z%H7GsRzH4u*fMwO*_62x6w>en*+RC8o=H@~Bq}OXCGRBf)M5dRfECi72#tV7KqF|2 zi$*{rXep0IKqF{MLL;CNG$o-C&RtfJQ(gRF}n}5zq)| z1T=!i12h5}p-M^nvKwJ(wKe4I1yKDc)vKHJD(WWRm#3D~S#eu62b@lIZ6N#*eh5E= zUv;u)`4N3X2tUnDEI-oBMBmW=3cvi?i-~4?tF?RMzpuPo&DJ$_@8<6rU(6c!-uf(L zMXS%^(!5kwuhUN~e{Rfs12ZG%wSif#ttg3yp4*V+<#Q#4uQ^CWI%Q_wb2G7|bX2YA z-+ax-RFUCqa?z?Ri+httko_3vNy~(yW?1G;@BlopBLLHC2@4*82jGDn0q_7kP!RwR zzyt6=w-#X!QYHdZ)o8H?-~o659@vipT^ORcKyiWMf*k?y06b6;01v>8*0DE9x3A84H2jBsC03J9IIM}@h*N!iJb@l?lBw!L; zOOQYXPyti`6`YBZRSX9k6~F`V06cI-06YK>zyt8Wi2!)ODh5_Du!^A^0q_7k01uqW z5qkh0fCmQ#56sQAb5VP1wAbxBi|Z2$fyfCK`Lc>fMSwP4+H`5tRZ}5&3?75WP6WVX z@EAP6o?*`v9f1es2(ZYPMZPTZrT2#3o64lXDjpX3Vh>6Y01vy=Y6c=ueWj~3WxtmG%jJp0CDK;rKDK;rKDYh%YWOEEs zY*K7eY*K6|0;Jfa*reE`*reF5+?l`Og+0I?U=Oed*aPf=D+1U9>;d+`$(RZ6C;& V@R7D3^S4ISXr^y4z1W*8`~hF_r7i#f diff --git a/Example/PNObject/Main.storyboard b/Example/PNObject/Main.storyboard new file mode 100644 index 0000000..d16074f --- /dev/null +++ b/Example/PNObject/Main.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/PNObject/PNObjAppDelegate.h b/Example/PNObject/PNObjAppDelegate.h new file mode 100644 index 0000000..9696f10 --- /dev/null +++ b/Example/PNObject/PNObjAppDelegate.h @@ -0,0 +1,15 @@ +// +// PNObjAppDelegate.h +// PNObject +// +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. +// + +@import UIKit; + +@interface PNObjAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Example/PNObject/PNObjectAppDelegate.m b/Example/PNObject/PNObjAppDelegate.m similarity index 82% rename from Example/PNObject/PNObjectAppDelegate.m rename to Example/PNObject/PNObjAppDelegate.m index 64b21cf..f59780b 100644 --- a/Example/PNObject/PNObjectAppDelegate.m +++ b/Example/PNObject/PNObjAppDelegate.m @@ -1,36 +1,34 @@ // -// PNObjectAppDelegate.m +// PNObjAppDelegate.m // PNObject // -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. // -#import "PNObjectAppDelegate.h" -#import "PNObjectViewController.h" +#import "PNObjAppDelegate.h" -#import "PNObject.h" -#import "PNUser.h" -#import "PNAddress.h" -#import "PNObject+PNObjectConnection.h" +#import +#import +#import +#import "PNObjViewController.h" #import #import #import #import "UIDevice-Hardware.h" -#import "PNInstallation.h" +#import - -@implementation PNObjectAppDelegate +@implementation PNObjAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - + [FBSDKSettings setAppID:@"213761522305123"]; - + [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; - + _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. @@ -47,7 +45,7 @@ - PNObjectViewController *viewController = [[PNObjectViewController alloc] init]; + PNObjViewController *viewController = [[PNObjViewController alloc] init]; switch ([[UIDevice currentDevice] deviceFamily]) { case UIDeviceFamilyiPhone: @@ -65,17 +63,17 @@ break; } } - + _window.rootViewController = viewController; - + _window.backgroundColor = [UIColor whiteColor]; [_window makeKeyAndVisible]; /*[PNUser loginCurrentUserWithEmail:@"socials2@giuseppenucifora.com" password:@"asdasdasd" withBlockSuccess:^(PNUser * _Nullable responseObject) { - - } failure:^(NSError * _Nonnull error) { - - }];*/ + + } failure:^(NSError * _Nonnull error) { + + }];*/ if ([PNUser currentUser] && [[PNUser currentUser] isAuthenticated]) { NSLogDebug(@"Login in corso..."); @@ -87,6 +85,7 @@ }]; } + return YES; } @@ -107,8 +106,9 @@ // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } -- (void)applicationDidBecomeActive:(UIApplication *)application { - [FBSDKAppEvents activateApp]; +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application @@ -116,17 +116,6 @@ // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } -- (BOOL)application:(UIApplication *)application - openURL:(NSURL *)url - sourceApplication:(NSString *)sourceApplication - annotation:(id)annotation { - return [[FBSDKApplicationDelegate sharedInstance] application:application - openURL:url - sourceApplication:sourceApplication - annotation:annotation]; -} - - #pragma mark - Remote Notification - (void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { diff --git a/Example/PNObject/PNObjViewController.h b/Example/PNObject/PNObjViewController.h new file mode 100644 index 0000000..02385a8 --- /dev/null +++ b/Example/PNObject/PNObjViewController.h @@ -0,0 +1,13 @@ +// +// PNObjViewController.h +// PNObject +// +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. +// + +@import UIKit; + +@interface PNObjViewController : UIViewController + +@end diff --git a/Example/PNObject/PNObjectViewController.m b/Example/PNObject/PNObjViewController.m similarity index 77% rename from Example/PNObject/PNObjectViewController.m rename to Example/PNObject/PNObjViewController.m index 6e30cba..31a1734 100644 --- a/Example/PNObject/PNObjectViewController.m +++ b/Example/PNObject/PNObjViewController.m @@ -1,19 +1,19 @@ // -// PNObjectViewController.m +// PNObjViewController.m // PNObject // -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. // -#import "PNObjectViewController.h" +#import "PNObjViewController.h" +#import +#import +#import +#import #import -#import "PNObject.h" -#import "PNUser.h" -#import "PNAddress.h" -#import "PNObject+PNObjectConnection.h" -@interface PNObjectViewController () +@interface PNObjViewController () @property (nonatomic) BOOL didSetupConstraints; @@ -23,15 +23,15 @@ @property (nonatomic, strong) UIButton *cancelToken; - @end -@implementation PNObjectViewController +@implementation PNObjViewController - (void)viewDidLoad { [super viewDidLoad]; - + // Do any additional setup after loading the view, typically from a nib. + _refreshToken = [UIButton newAutoLayoutView]; [_refreshToken addTarget:self action:@selector(refreshTokenAction) forControlEvents:UIControlEventTouchUpInside]; [_refreshToken setTitle:@"Refresh Token" forState:UIControlStateNormal]; @@ -39,9 +39,9 @@ [_refreshToken.layer setBorderColor:[UIColor blackColor].CGColor]; [_refreshToken.layer setCornerRadius:4]; [_refreshToken.layer setBorderWidth:2]; - + [self.view addSubview:_refreshToken]; - + _apiCall = [UIButton newAutoLayoutView]; [_apiCall addTarget:self action:@selector(apiCallAction) forControlEvents:UIControlEventTouchUpInside]; [_apiCall setTitle:@"API Call" forState:UIControlStateNormal]; @@ -49,9 +49,9 @@ [_apiCall.layer setBorderColor:[UIColor blackColor].CGColor]; [_apiCall.layer setCornerRadius:4]; [_apiCall.layer setBorderWidth:2]; - + [self.view addSubview:_apiCall]; - + _cancelToken = [UIButton newAutoLayoutView]; [_cancelToken addTarget:self action:@selector(cancelTokenAction) forControlEvents:UIControlEventTouchUpInside]; [_cancelToken setTitle:@"Reset Token" forState:UIControlStateNormal]; @@ -59,31 +59,31 @@ [_cancelToken.layer setBorderColor:[UIColor blackColor].CGColor]; [_cancelToken.layer setCornerRadius:4]; [_cancelToken.layer setBorderWidth:2]; - + [self.view addSubview:_cancelToken]; - + //User * user = [User currentUser]; - + [self.view setNeedsUpdateConstraints]; } - (void) updateViewConstraints { if (!_didSetupConstraints) { - + _didSetupConstraints = YES; - + [self.view autoPinEdgesToSuperviewEdges]; - + [_refreshToken autoAlignAxisToSuperviewAxis:ALAxisVertical]; [_refreshToken autoAlignAxisToSuperviewAxis:ALAxisHorizontal]; [_refreshToken autoSetDimension:ALDimensionWidth toSize:140]; [_refreshToken autoSetDimension:ALDimensionHeight toSize:44]; - + [_apiCall autoPinEdge:ALEdgeBottom toEdge:ALEdgeTop ofView:_refreshToken withOffset:-35]; [_apiCall autoAlignAxisToSuperviewAxis:ALAxisVertical]; [_apiCall autoSetDimension:ALDimensionWidth toSize:140]; [_apiCall autoSetDimension:ALDimensionHeight toSize:44]; - + [_cancelToken autoAlignAxisToSuperviewAxis:ALAxisVertical]; [_cancelToken autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:_refreshToken withOffset:35]; [_cancelToken autoSetDimension:ALDimensionWidth toSize:140]; @@ -101,67 +101,68 @@ } - (void) apiCallAction { - + /*PNObjcPassword *password = [PNObjcPassword new]; - [password setPassword:@"asdasdasd"]; - [password setConfirmPassword:@"asdasdasd"]; - - User *user = [User new]; - [user setFirstName:@"Giuseppe"]; - [user setLastName:@"Nuficora"]; - [user setEmail:@"packman5@giuseppenucifora.com"]; - [user setPassword:password]; - [user setHasAcceptedNewsletter:YES]; - [user setHasAcceptedPrivacy:YES]; -*/ + [password setPassword:@"asdasdasd"]; + [password setConfirmPassword:@"asdasdasd"]; + + User *user = [User new]; + [user setFirstName:@"Giuseppe"]; + [user setLastName:@"Nuficora"]; + [user setEmail:@"packman5@giuseppenucifora.com"]; + [user setPassword:password]; + [user setHasAcceptedNewsletter:YES]; + [user setHasAcceptedPrivacy:YES]; + */ //[user saveLocally]; - + NSLog(@"%@",[[PNUser currentUser] JSONFormObject]); //NSLog(@"%@",[user JSONObjectMap]); /*[user registerWithBlockSuccess:^(PNUser * _Nullable responseObject) { - + } failure:^(NSError * _Nonnull error) { - + }];*/ - + /*[[User currentUser] socialLoginWithBlockSuccessFromViewController:self blockSuccess:^(PNUser * _Nullable responseObject) { - + } failure:^(NSError * _Nonnull error) { - + }];*/ - + //User * user = [User currentUser]; - + //if ([user isAuthenticated]) { - + /*[User loginCurrentUserWithEmail:@"demo@packman.example" password:@"demo@packman.example" withBlockSuccess:^(PNUser * _Nullable responseObject) { - - NSLog(@"response : %@",responseObject); - - NSLog(@"%@",[User currentUser]); - } failure:^(NSError * _Nonnull error) { - NSLog(@"response : %@",error); - }];*/ + + NSLog(@"response : %@",responseObject); + + NSLog(@"%@",[User currentUser]); + } failure:^(NSError * _Nonnull error) { + NSLog(@"response : %@",error); + }];*/ [PNUser socialLoginWithBlockSuccess:^(PNUser * _Nullable responseObject) { } failure:^(NSError * _Nonnull error) { }]; - - - + + + /*[User resetPasswordForEmail:@"packman@giuseppenucifora.com" Progress:^(NSProgress * _Nonnull uploadProgress) { - - } Success:^(NSDictionary * _Nullable responseObject) { - - } failure:^(NSError * _Nonnull error) { - - }];*/ - + + } Success:^(NSDictionary * _Nullable responseObject) { + + } failure:^(NSError * _Nonnull error) { + + }];*/ + } + - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; diff --git a/Example/PNObject/PNObject-Info.plist b/Example/PNObject/PNObject-Info.plist index 34835c2..6eac159 100644 --- a/Example/PNObject/PNObject-Info.plist +++ b/Example/PNObject/PNObject-Info.plist @@ -24,6 +24,25 @@ 1.0 LSRequiresIPhoneOS + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + NSAppTransportSecurity NSAllowsArbitraryLoads @@ -64,26 +83,6 @@ - UIRequiredDeviceCapabilities - - armv7 - - UIRequiresFullScreen - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortraitUpsideDown - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - CFBundleURLTypes diff --git a/Example/PNObject/PNObjectAppDelegate.h b/Example/PNObject/PNObjectAppDelegate.h deleted file mode 100644 index 5b2259c..0000000 --- a/Example/PNObject/PNObjectAppDelegate.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// PNObjectAppDelegate.h -// PNObject -// -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. -// - -@import UIKit; - -@interface PNObjectAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Example/PNObject/PNObjectViewController.h b/Example/PNObject/PNObjectViewController.h deleted file mode 100644 index 18fd09f..0000000 --- a/Example/PNObject/PNObjectViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// PNObjectViewController.h -// PNObject -// -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. -// - -@import UIKit; - -@interface PNObjectViewController : UIViewController - -@end diff --git a/Example/PNObject/main.m b/Example/PNObject/main.m index 2212567..5f7c655 100644 --- a/Example/PNObject/main.m +++ b/Example/PNObject/main.m @@ -2,16 +2,16 @@ // main.m // PNObject // -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. // @import UIKit; -#import "PNObjectAppDelegate.h" +#import "PNObjAppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([PNObjectAppDelegate class])); + return UIApplicationMain(argc, argv, nil, NSStringFromClass([PNObjAppDelegate class])); } } diff --git a/Example/PNObject_Example.entitlements b/Example/PNObject_Example.entitlements deleted file mode 100644 index 903def2..0000000 --- a/Example/PNObject_Example.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - aps-environment - development - - diff --git a/Example/Podfile b/Example/Podfile index 983061c..74b918e 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,27 +1,13 @@ -source 'https://github.com/CocoaPods/Specs.git' use_frameworks! target 'PNObject_Example' do - pod 'PNObject', :path => '../' - pod 'PEAR-FileManager-iOS' - pod 'NSDate_Utils' - pod 'UIDevice-Utils' - pod 'AFNetworking' - pod 'nv-ios-http-status' - pod 'NSString-Helper' - pod 'CodFis-Helper' - pod 'StrongestPasswordValidator' - pod 'PureLayout' - pod 'FBSDKCoreKit' - pod 'FBSDKShareKit' - pod 'FBSDKLoginKit' + pod 'PNObject', :path => '../' + pod 'PureLayout' -end + target 'PNObject_Tests' do + inherit! :search_paths -target 'PNObject_Tests' do - pod 'PNObject', :path => '../' pod 'Specta' - pod 'Expecta' - pod 'FBSnapshotTestCase' - pod 'Expecta+Snapshots' + pod 'Expecta' + end end diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 8624707..beb45d7 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -22,40 +22,35 @@ PODS: - Bolts/Tasks (1.8.4) - CocoaSecurity (1.2.4) - CodFis-Helper (0.1.3) + - DDDKeychainWrapper (1.0.0) - DJLocalization (1.2.2): - DJLocalization/Core (= 1.2.2) - DJLocalization/Core (1.2.2) - Expecta (1.0.5) - - Expecta+Snapshots (3.0.0): - - Expecta (~> 1.0) - - FBSnapshotTestCase/Core (~> 2.0) - - Specta (~> 1.0) - FBSDKCoreKit (4.18.0): - Bolts (~> 1.7) - FBSDKLoginKit (4.18.0): - FBSDKCoreKit - FBSDKShareKit (4.18.0): - FBSDKCoreKit - - FBSnapshotTestCase (2.1.4): - - FBSnapshotTestCase/SwiftSupport (= 2.1.4) - - FBSnapshotTestCase/Core (2.1.4) - - FBSnapshotTestCase/SwiftSupport (2.1.4): - - FBSnapshotTestCase/Core - - NACrypto (1.0.6) - - NSDate_Utils (0.1.3) + - libsodium (1.0.11) + - NAChloride (2.2.1): + - libsodium + - NSDate_Utils (1.0.0) - NSString-Helper (1.0.5) - NSUserDefaults-AESEncryptor (0.0.4): - CocoaSecurity (~> 1.2.2) - nv-ios-http-status (0.0.1) - PEAR-FileManager-iOS (1.3.1) - - PNObject (0.9.0): + - PNObject (1.0.0): - AFNetworking - CodFis-Helper + - DDDKeychainWrapper - DJLocalization - FBSDKCoreKit - FBSDKLoginKit - FBSDKShareKit - - NACrypto + - NAChloride - NSDate_Utils - NSString-Helper - NSUserDefaults-AESEncryptor @@ -71,23 +66,10 @@ PODS: - UIDevice-Utils (0.1.6) DEPENDENCIES: - - AFNetworking - - CodFis-Helper - Expecta - - Expecta+Snapshots - - FBSDKCoreKit - - FBSDKLoginKit - - FBSDKShareKit - - FBSnapshotTestCase - - NSDate_Utils - - NSString-Helper - - nv-ios-http-status - - PEAR-FileManager-iOS - PNObject (from `../`) - PureLayout - Specta - - StrongestPasswordValidator - - UIDevice-Utils EXTERNAL SOURCES: PNObject: @@ -98,26 +80,26 @@ SPEC CHECKSUMS: Bolts: 8a7995239dbe724f9cba2248b766d48b7ebdd322 CocoaSecurity: d288a6f87e0f363823d2cb83e753814a6944f71a CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87 + DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897 DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47 Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe - Expecta+Snapshots: c343f410c7a6392f3e22e78f94c44b6c0749a516 FBSDKCoreKit: 15fef8804a4629f98c6f4e55e81a76c9d725d85e FBSDKLoginKit: 6773073e970b2b15fb12e451ce7f11da0532b880 FBSDKShareKit: 0b8d6cc3f103c75297eb3c62caec284a2ccf1b9e - FBSnapshotTestCase: '094f9f314decbabe373b87cc339bea235a63e07a' - NACrypto: ce3900f1775f1b0cc27ce7c4953b94c598a74149 - NSDate_Utils: 68669d2c81f310ee13026c791f4f0ed227b94c65 + libsodium: 9aba161d2ee096977ecbdcce1ada69ffe511970c + NAChloride: 8f3d4f9a20df6b68840789a22a70aa4fcc437b0c + NSDate_Utils: 45d47afab329001ccafe056308d0cc05460e5298 NSString-Helper: 459e1b6a62b3bf7db10f01b0d102548608e945c4 NSUserDefaults-AESEncryptor: da02cfef056f1e18ebe2748767915f08b274c9c5 nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3 - PNObject: f8d8116d0f72252552bddcbc3703d6d1e4719354 + PNObject: 34839792d6fcc437b3123d0770b4d45e845bf2c9 PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109 Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 StrongestPasswordValidator: 921e42615bdf353513c6f925bffd4fc29865dbd7 UIDevice-Utils: 11c10b18d3c6489b45a97436e5ae6064a3622820 -PODFILE CHECKSUM: 7c7096ec3fa75c9e7a1d2b538e5719592b9f5e60 +PODFILE CHECKSUM: 57090c7ea88a91b49ca8dd73d9e7c6b866e772ba COCOAPODS: 1.2.0.beta.1 diff --git a/Example/Pods/NACrypto/LICENSE b/Example/Pods/DDDKeychainWrapper/LICENSE similarity index 86% rename from Example/Pods/NACrypto/LICENSE rename to Example/Pods/DDDKeychainWrapper/LICENSE index 24c7920..05498e9 100644 --- a/Example/Pods/NACrypto/LICENSE +++ b/Example/Pods/DDDKeychainWrapper/LICENSE @@ -1,6 +1,4 @@ -The MIT License (MIT) - -Copyright (c) 2015 Gabriel Handford +Copyright (c) 2014 axldyb Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,14 +7,13 @@ 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 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. - +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.h b/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.h new file mode 100644 index 0000000..344b547 --- /dev/null +++ b/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.h @@ -0,0 +1,46 @@ +// +// DDDKeychainWrapper.h +// Aksel Dybdal +// +// Created by Aksel Dybdal on 02.04.14. +// Copyright (c) 2014 Aksel Dybdal. All rights reserved. +// + +/** + A small wrapper for Keychain access. + + Inspired by: + http://useyourloaf.com/blog/2010/03/29/simple-iphone-keychain-access.html + */ + +#import + +@interface DDDKeychainWrapper : NSObject + ++ (void)setString:(NSString *)string forKey:(NSString *)key; ++ (NSString *)stringForKey:(NSString *)key; + ++ (void)setDate:(NSDate *)date forKey:(NSString *)key; ++ (NSDate *)dateForKey:(NSString *)key; + ++ (void)setData:(NSData *)data forKey:(NSString *)key; ++ (NSData *)dataForKey:(NSString *)key; + ++ (void)setArray:(NSArray *)array forKey:(NSString *)key; ++ (NSArray *)arrayForKey:(NSString *)key; + ++ (void)setDictionary:(NSDictionary *)dictionary forKey:(NSString *)key; ++ (NSDictionary *)dictionaryForKey:(NSString *)key; + ++ (void)setNumber:(NSNumber *)number forKey:(NSString *)key; ++ (NSNumber *)numberForKey:(NSString *)key; + ++ (void)setBoolean:(BOOL)boolean forKey:(NSString *)key; ++ (BOOL)booleanForKey:(NSString *)key; + ++ (void)setObject:(id)object forKey:(NSString *)key; ++ (id)objectForKey:(NSString *)key; + ++ (void)wipeKeychain; + +@end \ No newline at end of file diff --git a/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.m b/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.m new file mode 100644 index 0000000..764e1e3 --- /dev/null +++ b/Example/Pods/DDDKeychainWrapper/Pod/Classes/DDDKeychainWrapper.m @@ -0,0 +1,373 @@ +// +// DDDKeychainWrapper.m +// Aksel Dybdal +// +// Created by Aksel Dybdal on 02.04.14. +// Copyright (c) 2014 Aksel Dybdal. All rights reserved. +// + +#import "DDDKeychainWrapper.h" +#import + +typedef NS_ENUM(NSUInteger, DDDKeychainWrapperErrorCode) { + DDDKeychainWrapperErrorCreatingKeychainValue = 1, + DDDKeychainWrapperErrorUpdatingKeychainValue, + DDDKeychainWrapperErrorDeletingKeychainValue, + DDDKeychainWrapperErrorSearchingKeychainValue +}; + +NSString *const kDDDKeychainWrapperServiceName = @"com.dddkeychainwrapper.keychainService"; +NSString *const kDDDKeychainWrapperErrorDomain = @"DDDKeychainWrapperErrorDomain"; + +#ifdef DEBUG +# warning "Including NSLog" +# define DDDLOG(s, ...) NSLog(s, ## __VA_ARGS__) +#else +# define DDDLOG(s, ...) while(0){} +#endif + +@implementation DDDKeychainWrapper + + +#pragma mark - String + ++ (void)setString:(NSString *)string forKey:(NSString *)key +{ + NSData *stringData = [string dataUsingEncoding:NSUTF8StringEncoding]; + [self setData:stringData forIdentifier:key]; +} + ++ (NSString *)stringForKey:(NSString *)key +{ + NSData *stringData = [self dataForIdentifier:key]; + return [[NSString alloc] initWithData:stringData encoding:NSUTF8StringEncoding]; +} + + +#pragma mark - Date + ++ (void)setDate:(NSDate *)date forKey:(NSString *)key +{ + NSData *dateData = [NSKeyedArchiver archivedDataWithRootObject:date]; + [self setData:dateData forIdentifier:key]; +} + ++ (NSDate *)dateForKey:(NSString *)key +{ + NSData *dateData = [self dataForIdentifier:key]; + return (NSDate *)[NSKeyedUnarchiver unarchiveObjectWithData:dateData]; +} + + +#pragma mark - Data + ++ (void)setData:(NSData *)data forKey:(NSString *)key +{ + [self setData:data forIdentifier:key]; +} + ++ (NSData *)dataForKey:(NSString *)key +{ + return [self dataForIdentifier:key]; +} + + +#pragma mark - Array + ++ (void)setArray:(NSArray *)array forKey:(NSString *)key +{ + for (id obj in array) { + NSAssert([obj conformsToProtocol:@protocol(NSCoding)], @"Objects must confirm to NSCoding protocol in order to be stored in keychain"); + } + + NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:array]; + [self setData:arrayData forIdentifier:key]; +} + ++ (NSArray *)arrayForKey:(NSString *)key +{ + NSData *arrayData = [self dataForIdentifier:key]; + return (NSArray *)[NSKeyedUnarchiver unarchiveObjectWithData:arrayData]; +} + + +#pragma mark - Dictionary + ++ (void)setDictionary:(NSDictionary *)dictionary forKey:(NSString *)key +{ + [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + NSAssert([key conformsToProtocol:@protocol(NSCoding)], @"Keys must confirm to NSCoding protocol in order to be stored in keychain"); + NSAssert([obj conformsToProtocol:@protocol(NSCoding)], @"Objects must confirm to NSCoding protocol in order to be stored in keychain"); + }]; + + NSData *dictionaryData = [NSKeyedArchiver archivedDataWithRootObject:dictionary]; + [self setData:dictionaryData forIdentifier:key]; +} + ++ (NSDictionary *)dictionaryForKey:(NSString *)key +{ + NSData *dictionaryData = [self dataForIdentifier:key]; + return (NSDictionary *)[NSKeyedUnarchiver unarchiveObjectWithData:dictionaryData]; +} + + +#pragma mark - Number + ++ (void)setNumber:(NSNumber *)number forKey:(NSString *)key +{ + NSData *numberData = [NSKeyedArchiver archivedDataWithRootObject:number]; + [self setData:numberData forIdentifier:key]; +} + ++ (NSNumber *)numberForKey:(NSString *)key +{ + NSData *numberData = [self dataForIdentifier:key]; + return (NSNumber *)[NSKeyedUnarchiver unarchiveObjectWithData:numberData]; +} + + +#pragma mark - BOOL + ++ (void)setBoolean:(BOOL)boolean forKey:(NSString *)key +{ + NSNumber *boolNumber = [NSNumber numberWithBool:boolean]; + [self setNumber:boolNumber forKey:key]; +} + ++ (BOOL)booleanForKey:(NSString *)key +{ + NSNumber *boolNumber = [self numberForKey:key]; + return [boolNumber boolValue]; +} + + +#pragma mark - Object + ++ (void)setObject:(id)object forKey:(NSString *)key +{ + NSAssert([object conformsToProtocol:@protocol(NSCoding)], @"Object must confirm to NSCoding protocol in order to be stored in keychain"); + + NSData *objectData = [NSKeyedArchiver archivedDataWithRootObject:object]; + [self setData:objectData forIdentifier:key]; +} + ++ (id)objectForKey:(NSString *)key +{ + NSData *objectData = [self dataForIdentifier:key]; + return (id)[NSKeyedUnarchiver unarchiveObjectWithData:objectData]; +} + + +#pragma mark - Clear Keychain + ++ (void)wipeKeychain +{ + NSArray *secItemClasses = @[(__bridge id)kSecClassGenericPassword, + (__bridge id)kSecClassInternetPassword, + (__bridge id)kSecClassCertificate, + (__bridge id)kSecClassKey, + (__bridge id)kSecClassIdentity]; + + for (id secItemClass in secItemClasses) { + NSDictionary *spec = @{(__bridge id)kSecClass: (id)secItemClass}; + SecItemDelete((__bridge CFDictionaryRef)spec); + } +} + + +#pragma mark - Private + ++ (void)setData:(NSData *)data forIdentifier:(NSString *)identifier +{ + NSError *error = nil; + + // If no data provided we assume we want to delete the value + if (nil == data || NO == [data bytes]) { + [self deleteKeychainValueForIdentifier:identifier error:&error]; + if (error) { + DDDLOG(@"Error deleting keychain value for key: \"%@\" Error: %@", identifier, [error localizedDescription]); + } + return; + } + + // We first look up the key in order to see if we need to update or create the value + if ([self searchKeychainCopyMatching:identifier error:&error]) { + if (error) { + DDDLOG(@"Error finding keychain value for key: \"%@\" Error: %@", identifier, [error localizedDescription]); + return; + } + + if (![self updateKeychainValue:data forIdentifier:identifier error:&error]) { + DDDLOG(@"Error updating keychain value for key: \"%@\" Error: %@", identifier, [error localizedDescription]); + } + } else { + if (![self createKeychainValue:data forIdentifier:identifier error:&error]) { + DDDLOG(@"Error creating keychain value for key: \"%@\" Error: %@", identifier, [error localizedDescription]); + } + } +} + ++ (NSData *)dataForIdentifier:(NSString *)identifier +{ + NSError *error = nil; + NSData *stringData = [self searchKeychainCopyMatching:identifier error:&error]; + if (error) { + DDDLOG(@"Error finding keychain value for key: \"%@\" Error: %@", identifier, [error localizedDescription]); + return nil; + } + return stringData; +} + ++ (NSMutableDictionary *)newSearchDictionary:(NSString *)identifier +{ + NSMutableDictionary *searchDictionary = [[NSMutableDictionary alloc] init]; + + [searchDictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; + + NSData *encodedIdentifier = [identifier dataUsingEncoding:NSUTF8StringEncoding]; + [searchDictionary setObject:encodedIdentifier forKey:(__bridge id)kSecAttrGeneric]; + [searchDictionary setObject:encodedIdentifier forKey:(__bridge id)kSecAttrAccount]; + [searchDictionary setObject:(__bridge id)kSecAttrAccessibleAfterFirstUnlock forKey:(__bridge id)kSecAttrAccessible]; + [searchDictionary setObject:kDDDKeychainWrapperServiceName forKey:(__bridge id)kSecAttrService]; + + return searchDictionary; +} + ++ (NSData *)searchKeychainCopyMatching:(NSString *)identifier error:(NSError **)error +{ + NSMutableDictionary *searchDictionary = [self newSearchDictionary:identifier]; + + [searchDictionary setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit]; + [searchDictionary setObject:(__bridge id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; + + CFDataRef result; + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)searchDictionary, (CFTypeRef *)&result); + + if (status != errSecSuccess) { + [self keychainError:error forStatus:status domain:DDDKeychainWrapperErrorSearchingKeychainValue]; + return nil; + } + + NSData *data = (__bridge NSData *)result; + return data; +} + ++ (BOOL)createKeychainValue:(NSData *)data forIdentifier:(NSString *)identifier error:(NSError **)error +{ + NSMutableDictionary *dictionary = [self newSearchDictionary:identifier]; + [dictionary setObject:data forKey:(__bridge id)kSecValueData]; + + OSStatus status = SecItemAdd((__bridge CFDictionaryRef)dictionary, NULL); + + if (status == errSecSuccess) { + return YES; + } + + [self keychainError:error forStatus:status domain:DDDKeychainWrapperErrorCreatingKeychainValue]; + return NO; +} + ++ (BOOL)updateKeychainValue:(NSData *)data forIdentifier:(NSString *)identifier error:(NSError **)error +{ + NSMutableDictionary *searchDictionary = [self newSearchDictionary:identifier]; + NSMutableDictionary *updateDictionary = [[NSMutableDictionary alloc] init]; + [updateDictionary setObject:data forKey:(__bridge id)kSecValueData]; + + OSStatus status = SecItemUpdate((__bridge CFDictionaryRef)searchDictionary, + (__bridge CFDictionaryRef)updateDictionary); + + if (status == errSecSuccess) { + return YES; + } + + [self keychainError:error forStatus:status domain:DDDKeychainWrapperErrorUpdatingKeychainValue]; + return NO; +} + ++ (BOOL)deleteKeychainValueForIdentifier:(NSString *)identifier error:(NSError **)error +{ + NSMutableDictionary *searchDictionary = [self newSearchDictionary:identifier]; + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)searchDictionary); + + if (status == errSecSuccess) { + return YES; + } + + [self keychainError:error forStatus:status domain:DDDKeychainWrapperErrorDeletingKeychainValue]; + return NO; +} + +#pragma mark - Error + ++ (void)keychainError:(NSError **)error forStatus:(OSStatus)status domain:(NSUInteger)domain +{ + NSString *errorString = @""; + + switch (status) { + case errSecUnimplemented: + errorString = @"Function or operation not implemented."; + break; + + case errSecIO: + errorString = @"I/O error (bummers)"; + break; + + case errSecOpWr: + errorString = @"File already open with write permission"; + break; + + case errSecParam: + errorString = @"One or more parameters passed to a function where not valid."; + break; + + case errSecAllocate: + errorString = @"Failed to allocate memory."; + break; + + case errSecUserCanceled: + errorString = @"User canceled the operation."; + break; + + case errSecBadReq: + errorString = @"Bad parameter or invalid state for operation."; + break; + + case errSecInternalComponent: + errorString = @"errSecInternalComponent"; + break; + + case errSecNotAvailable: + errorString = @"No keychain is available. You may need to restart your computer."; + break; + + case errSecDuplicateItem: + errorString = @"The specified item already exists in the keychain."; + break; + + case errSecItemNotFound: + errorString = @"The specified item could not be found in the keychain."; + break; + + case errSecInteractionNotAllowed: + errorString = @"User interaction is not allowed."; + break; + + case errSecDecode: + errorString = @"Unable to decode the provided data."; + break; + + case errSecAuthFailed: + errorString = @"The user name or passphrase you entered is not correct."; + break; + + default: + errorString = @"Unknown error"; + break; + } + + *error = [NSError errorWithDomain:kDDDKeychainWrapperErrorDomain + code:domain + userInfo:@{NSLocalizedDescriptionKey: errorString}]; +} + +@end diff --git a/Example/Pods/DDDKeychainWrapper/README.md b/Example/Pods/DDDKeychainWrapper/README.md new file mode 100644 index 0000000..ca799be --- /dev/null +++ b/Example/Pods/DDDKeychainWrapper/README.md @@ -0,0 +1,47 @@ +# DDDKeychainWrapper + +[![CI Status](http://img.shields.io/travis/axldyb/DDDKeychainWrapper.svg?style=flat)](https://travis-ci.org/axldyb/DDDKeychainWrapper) +[![Version](https://img.shields.io/cocoapods/v/DDDKeychainWrapper.svg?style=flat)](http://cocoadocs.org/docsets/DDDKeychainWrapper) +[![License](https://img.shields.io/cocoapods/l/DDDKeychainWrapper.svg?style=flat)](http://cocoadocs.org/docsets/DDDKeychainWrapper) +[![Platform](https://img.shields.io/cocoapods/p/DDDKeychainWrapper.svg?style=flat)](http://cocoadocs.org/docsets/DDDKeychainWrapper) + +## Usage + +Storing your sensitive data in the keychain can take up a lot of time and effort. It should be easy to just drop something in there and retrive it with a few simple lines of code. DDDKeychainWrapper offers this simplicity and here is how we do it: + +```objective-c + // Writing to the Keychain + [DDDKeychainWrapper setString:@"Secret string" forKey:@"my_key"]; + + // Reading from the Keychain + NSString *secretString = [DDDKeychainWrapper stringForKey:@"my_key"]; +``` + +DDDKeychainWrapper has support for the following types + +* NSString +* NSDate +* NSData +* NSArray +* NSDictionary +* NSNumber +* BOOL +* Objects (Must confirm to NSCoding) + +A method for wiping the keychain data inserted via the wrapper exists as well. + +## Installation + +DDDKeychainWrapper is available through [CocoaPods](http://cocoapods.org). To install +it, simply add the following line to your Podfile: + + pod "DDDKeychainWrapper" + +## Author + +axldyb, aksel.dybdal@shortcut.no + +## License + +DDDKeychainWrapper is available under the MIT license. See the LICENSE file for more info. + diff --git a/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h b/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h deleted file mode 100644 index 8392d50..0000000 --- a/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import "ExpectaObject+FBSnapshotTest.h" - -@interface EXPExpectFBSnapshotTest : NSObject -@end - -/// Set the default folder for image tests to run in -extern void setGlobalReferenceImageDir(char *reference); - -EXPMatcherInterface(haveValidSnapshot, (void)); -EXPMatcherInterface(recordSnapshot, (void)); - -EXPMatcherInterface(haveValidSnapshotNamed, (NSString *snapshot)); -EXPMatcherInterface(recordSnapshotNamed, (NSString *snapshot)); diff --git a/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.m b/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.m deleted file mode 100644 index 1455e4a..0000000 --- a/Example/Pods/Expecta+Snapshots/EXPMatchers+FBSnapshotTest.m +++ /dev/null @@ -1,284 +0,0 @@ -#import "EXPMatchers+FBSnapshotTest.h" -#import -#import - -@interface EXPExpectFBSnapshotTest() -@property (nonatomic, strong) NSString *referenceImagesDirectory; -@end - -@implementation EXPExpectFBSnapshotTest - -+ (id)instance -{ - static EXPExpectFBSnapshotTest *instance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[self alloc] init]; - }); - return instance; -} - -+ (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer snapshot:(NSString *)snapshot testCase:(id)testCase record:(BOOL)record referenceDirectory:(NSString *)referenceDirectory error:(NSError **)error - -{ - FBSnapshotTestController *snapshotController = [[FBSnapshotTestController alloc] initWithTestClass:[testCase class]]; - snapshotController.recordMode = record; - snapshotController.referenceImagesDirectory = referenceDirectory; - snapshotController.usesDrawViewHierarchyInRect = [Expecta usesDrawViewHierarchyInRect]; - - if (! snapshotController.referenceImagesDirectory) { - [NSException raise:@"Missing value for referenceImagesDirectory" format:@"Call [[EXPExpectFBSnapshotTest instance] setReferenceImagesDirectory"]; - } - - return [snapshotController compareSnapshotOfViewOrLayer:viewOrLayer - selector:NSSelectorFromString(snapshot) - identifier:nil - tolerance:0 - error:error]; -} - -+ (NSString *)combinedError:(NSString *)message test:(NSString *)test error:(NSError *)error -{ - NSAssert(message, @"missing message"); - NSAssert(test, @"missing test name"); - - NSMutableArray *ary = [NSMutableArray array]; - - [ary addObject:[NSString stringWithFormat:@"%@ %@", message, test]]; - - for(NSString *key in error.userInfo.keyEnumerator) { - [ary addObject:[NSString stringWithFormat:@" %@: %@", key, [error.userInfo valueForKey:key]]]; - } - - return [ary componentsJoinedByString:@"\n"]; -} - -@end - -void setGlobalReferenceImageDir(char *reference) { - NSString *referenceImagesDirectory = [NSString stringWithFormat:@"%s", reference]; - [[EXPExpectFBSnapshotTest instance] setReferenceImagesDirectory:referenceImagesDirectory]; -}; - -@interface EXPExpect(ReferenceDirExtension) -- (NSString *)_getDefaultReferenceDirectory; -@end - -@implementation EXPExpect(ReferenceDirExtension) - -- (NSString *)_getDefaultReferenceDirectory -{ - NSString *globalReference = [[EXPExpectFBSnapshotTest instance] referenceImagesDirectory]; - if (globalReference) { - return globalReference; - } - - // Search the test file's path to find the first folder with the substring "tests" - // then append "/ReferenceImages" and use that - - NSString *testFileName = [NSString stringWithCString:self.fileName encoding:NSUTF8StringEncoding]; - NSArray *pathComponents = [testFileName pathComponents]; - - for (NSString *folder in pathComponents) { - if ([folder.lowercaseString rangeOfString:@"tests"].location != NSNotFound) { - - NSArray *folderPathComponents = [pathComponents subarrayWithRange:NSMakeRange(0, [pathComponents indexOfObject:folder] + 1)]; - return [NSString stringWithFormat:@"%@/ReferenceImages", [folderPathComponents componentsJoinedByString:@"/"]]; - - } - } - - [NSException raise:@"Could not infer reference image folder" format:@"You should provide a reference dir using setGlobalReferenceImageDir(FB_REFERENCE_IMAGE_DIR);"]; - return nil; -} -@end - - -#import -#import -#import - -NSString *sanitizedTestPath(); - -NSString *sanitizedTestPath(){ - id compiledExample = [[NSThread currentThread] threadDictionary][@"SPTCurrentSpec"]; // SPTSpec - NSString *name; - if ([compiledExample respondsToSelector:@selector(name)]) { - // Specta 0.3 syntax - name = [compiledExample performSelector:@selector(name)]; - } else if ([compiledExample respondsToSelector:@selector(fileName)]) { - // Specta 0.2 syntax - name = [compiledExample performSelector:@selector(fileName)]; - } - name = [[[[name componentsSeparatedByString:@" test_"] lastObject] stringByReplacingOccurrencesOfString:@"__" withString:@"_"] stringByReplacingOccurrencesOfString:@"]" withString:@""]; - return name; -} - -EXPMatcherImplementationBegin(haveValidSnapshot, (void)){ - __block NSError *error = nil; - - prerequisite(^BOOL{ - return actual; - }); - - - match(^BOOL{ - NSString *referenceImageDir = [self _getDefaultReferenceDirectory]; - NSString *name = sanitizedTestPath(); - if ([actual isKindOfClass:UIViewController.class]) { - [actual beginAppearanceTransition:YES animated:NO]; - [actual endAppearanceTransition]; - - actual = [actual view]; - } - - return [EXPExpectFBSnapshotTest compareSnapshotOfViewOrLayer:actual snapshot:name testCase:[self testCase] record:NO referenceDirectory:referenceImageDir error:&error]; - }); - - failureMessageForTo(^NSString *{ - if (!actual) { - return [EXPExpectFBSnapshotTest combinedError:@"Nil was passed into haveValidSnapshot." test:sanitizedTestPath() error:nil]; - } - - return [EXPExpectFBSnapshotTest combinedError:@"expected a matching snapshot in" test:sanitizedTestPath() error:error]; - }); - - failureMessageForNotTo(^NSString *{ - return [EXPExpectFBSnapshotTest combinedError:@"expected to not have a matching snapshot in" test:sanitizedTestPath() error:error]; - }); -} -EXPMatcherImplementationEnd - -EXPMatcherImplementationBegin(recordSnapshot, (void)) { - __block NSError *error = nil; - - BOOL actualIsViewLayerOrViewController = ([actual isKindOfClass:UIView.class] || [actual isKindOfClass:CALayer.class] || [actual isKindOfClass:UIViewController.class]); - - prerequisite(^BOOL{ - return actual && actualIsViewLayerOrViewController; - }); - - match(^BOOL{ - NSString *referenceImageDir = [self _getDefaultReferenceDirectory]; - - // For view controllers do the viewWill/viewDid dance, then pass view through - if ([actual isKindOfClass:UIViewController.class]) { - - [actual beginAppearanceTransition:YES animated:NO]; - [actual endAppearanceTransition]; - actual = [actual view]; - } - - [EXPExpectFBSnapshotTest compareSnapshotOfViewOrLayer:actual snapshot:sanitizedTestPath() testCase:[self testCase] record:YES referenceDirectory:referenceImageDir error:&error]; - return NO; - }); - - failureMessageForTo(^NSString *{ - if (!actual) { - return [EXPExpectFBSnapshotTest combinedError:@"Nil was passed into recordSnapshot." test:sanitizedTestPath() error:nil]; - } - - if (!actualIsViewLayerOrViewController) { - return [EXPExpectFBSnapshotTest combinedError:@"Expected a View, Layer or View Controller." test:sanitizedTestPath() error:nil]; - } - if (error) { - return [EXPExpectFBSnapshotTest combinedError:@"expected to record a snapshot in" test:sanitizedTestPath() error:error]; - } else { - return [NSString stringWithFormat:@"snapshot %@ successfully recorded, replace recordSnapshot with a check", sanitizedTestPath()]; - } - }); - - failureMessageForNotTo(^NSString *{ - if (error) { - return [EXPExpectFBSnapshotTest combinedError:@"expected to record a snapshot in" test:sanitizedTestPath() error:error]; - } else { - return [NSString stringWithFormat:@"snapshot %@ successfully recorded, replace recordSnapshot with a check", sanitizedTestPath()]; - } - }); -} -EXPMatcherImplementationEnd - -EXPMatcherImplementationBegin(haveValidSnapshotNamed, (NSString *snapshot)){ - BOOL snapshotIsNil = (snapshot == nil); - __block NSError *error = nil; - - prerequisite(^BOOL{ - return actual && !(snapshotIsNil); - }); - - match(^BOOL{ - NSString *referenceImageDir = [self _getDefaultReferenceDirectory]; - if ([actual isKindOfClass:UIViewController.class]) { - [actual beginAppearanceTransition:YES animated:NO]; - [actual endAppearanceTransition]; - - actual = [actual view]; - } - return [EXPExpectFBSnapshotTest compareSnapshotOfViewOrLayer:actual snapshot:snapshot testCase:[self testCase] record:NO referenceDirectory:referenceImageDir error:&error]; - }); - - failureMessageForTo(^NSString *{ - if (!actual) { - return [EXPExpectFBSnapshotTest combinedError:@"Nil was passed into haveValidSnapshotNamed." test:sanitizedTestPath() error:nil]; - } - - return [EXPExpectFBSnapshotTest combinedError:@"expected a matching snapshot named" test:snapshot error:error]; - - }); - - failureMessageForNotTo(^NSString *{ - return [EXPExpectFBSnapshotTest combinedError:@"expected not to have a matching snapshot named" test:snapshot error:error]; - }); -} -EXPMatcherImplementationEnd - -EXPMatcherImplementationBegin(recordSnapshotNamed, (NSString *snapshot)) { - BOOL snapshotExists = (snapshot != nil); - BOOL actualIsViewLayerOrViewController = ([actual isKindOfClass:UIView.class] || [actual isKindOfClass:CALayer.class] || [actual isKindOfClass:UIViewController.class]); - __block NSError *error = nil; - id actualRef = actual; - - prerequisite(^BOOL{ - return actualRef && snapshotExists && actualIsViewLayerOrViewController; - }); - - match(^BOOL{ - NSString *referenceImageDir = [self _getDefaultReferenceDirectory]; - - // For view controllers do the viewWill/viewDid dance, then pass view through - if ([actual isKindOfClass:UIViewController.class]) { - [actual beginAppearanceTransition:YES animated:NO]; - [actual endAppearanceTransition]; - actual = [actual view]; - } - - [EXPExpectFBSnapshotTest compareSnapshotOfViewOrLayer:actual snapshot:snapshot testCase:[self testCase] record:YES referenceDirectory:referenceImageDir error:&error]; - return NO; - }); - - failureMessageForTo(^NSString *{ - if (!actual) { - return [EXPExpectFBSnapshotTest combinedError:@"Nil was passed into recordSnapshotNamed." test:sanitizedTestPath() error:nil]; - } - if (!actualIsViewLayerOrViewController) { - return [EXPExpectFBSnapshotTest combinedError:@"Expected a View, Layer or View Controller." test:snapshot error:nil]; - } - if (error) { - return [EXPExpectFBSnapshotTest combinedError:@"expected to record a matching snapshot named" test:snapshot error:error]; - } else { - return [NSString stringWithFormat:@"snapshot %@ successfully recorded, replace recordSnapshot with a check", snapshot]; - } - }); - - failureMessageForNotTo(^NSString *{ - if (!actualIsViewLayerOrViewController) { - return [EXPExpectFBSnapshotTest combinedError:@"Expected a View, Layer or View Controller." test:snapshot error:nil]; - } - if (error) { - return [EXPExpectFBSnapshotTest combinedError:@"expected to record a matching snapshot named" test:snapshot error:error]; - } else { - return [NSString stringWithFormat:@"snapshot %@ successfully recorded, replace recordSnapshot with a check", snapshot]; - } - }); -} -EXPMatcherImplementationEnd diff --git a/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.h b/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.h deleted file mode 100644 index a3feec3..0000000 --- a/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// ExpectaObject+FBSnapshotTest.h -// Expecta+Snapshots -// -// Created by John Boiles on 8/3/15. -// Copyright (c) 2015 Expecta+Snapshots All rights reserved. -// - -#import - -@interface Expecta (FBSnapshotTest) - -+ (void)setUsesDrawViewHierarchyInRect:(BOOL)usesDrawViewHierarchyInRect; - -+ (BOOL)usesDrawViewHierarchyInRect; - -@end diff --git a/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.m b/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.m deleted file mode 100644 index 698447a..0000000 --- a/Example/Pods/Expecta+Snapshots/ExpectaObject+FBSnapshotTest.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// ExpectaObject+FBSnapshotTest.m -// Expecta+Snapshots -// -// Created by John Boiles on 8/3/15. -// Copyright (c) 2015 Expecta+Snapshots All rights reserved. -// - -#import "ExpectaObject+FBSnapshotTest.h" -#import - -static NSString const *kUsesDrawViewHierarchyInRectKey = @"ExpectaObject+FBSnapshotTest.usesDrawViewHierarchyInRect"; - -@implementation Expecta (FBSnapshotTest) - -+ (void)setUsesDrawViewHierarchyInRect:(BOOL)usesDrawViewHierarchyInRect { - objc_setAssociatedObject(self, (__bridge const void *)(kUsesDrawViewHierarchyInRectKey), @(usesDrawViewHierarchyInRect), OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -+ (BOOL)usesDrawViewHierarchyInRect { - NSNumber *usesDrawViewHierarchyInRect = objc_getAssociatedObject(self, (__bridge const void *)(kUsesDrawViewHierarchyInRectKey)); - return usesDrawViewHierarchyInRect.boolValue; -} - -@end diff --git a/Example/Pods/Expecta+Snapshots/LICENSE.md b/Example/Pods/Expecta+Snapshots/LICENSE.md deleted file mode 100644 index 47c9a3d..0000000 --- a/Example/Pods/Expecta+Snapshots/LICENSE.md +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014 Daniel Doubrovkine, Artsy Inc. - -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/Expecta+Snapshots/README.md b/Example/Pods/Expecta+Snapshots/README.md deleted file mode 100644 index 07c5265..0000000 --- a/Example/Pods/Expecta+Snapshots/README.md +++ /dev/null @@ -1,87 +0,0 @@ -Expecta Matchers for FBSnapshotTestCase -======================================= - -[Expecta](https://github.com/specta/expecta) matchers for [ios-snapshot-test-case](https://github.com/facebook/ios-snapshot-test-case). - -[![Build Status](https://travis-ci.org/dblock/ios-snapshot-test-case-expecta.png)](https://travis-ci.org/dblock/ios-snapshot-test-case-expecta) - -### Usage - -Add `Expecta+Snapshots` to your Podfile, the latest `FBSnapshotTestCase` will come in as a dependency. - -``` ruby -pod 'Expecta+Snapshots' -``` - -### App setup - -Use `expect(view).to.recordSnapshotNamed(@"unique snapshot name")` to record a snapshot and `expect(view).to.haveValidSnapshotNamed(@"unique snapshot name")` to check it. - -If you project was compiled with Specta included, you have two extra methods that use the spec hierarchy to generate the snapshot name for you: `recordSnapshot()` and `haveValidSnapshot()`. You should only call these once per `it()` block. - -If you need the `usesDrawViewHierarchyInRect` property in order to correctly render UIVisualEffect, UIAppearance and Size Classes, call `[Expecta setUsesDrawViewHierarchyInRect:NO];` inside `beforeAll`. - -``` Objective-C -#define EXP_SHORTHAND -#include -#include -#include -#include "FBExampleView.h" - -SpecBegin(FBExampleView) - -describe(@"manual matching", ^{ - - it(@"matches view", ^{ - FBExampleView *view = [[FBExampleView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)]; - expect(view).to.recordSnapshotNamed(@"FBExampleView"); - expect(view).to.haveValidSnapshotNamed(@"FBExampleView"); - }); - - it(@"doesn't match a view", ^{ - FBExampleView *view = [[FBExampleView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)]; - expect(view).toNot.haveValidSnapshotNamed(@"FBExampleViewDoesNotExist"); - }); - -}); - -describe(@"test name derived matching", ^{ - - it(@"matches view", ^{ - FBExampleView *view = [[FBExampleView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)]; - expect(view).to.recordSnapshot(); - expect(view).to.haveValidSnapshot(); - }); - - it(@"doesn't match a view", ^{ - FBExampleView *view = [[FBExampleView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)]; - expect(view).toNot.haveValidSnapshot(); - }); - -}); - -SpecEnd -``` - -### Sane defaults - -`EXPMatchers+FBSnapshotTest` will automatically figure out the tests folder, and [add a reference image](https://github.com/dblock/ios-snapshot-test-case-expecta/blob/master/EXPMatchers%2BFBSnapshotTest.m#L84-L85) directory, if you'd like to override this, you should include a `beforeAll` block setting the `setGlobalReferenceImageDir` in each file containing tests. - -``` -beforeAll(^{ - setGlobalReferenceImageDir(FB_REFERENCE_IMAGE_DIR); -}); -``` - - -### Example - -A complete project can be found in [FBSnapshotTestCaseDemo](FBSnapshotTestCaseDemo). - -Notably, take a look at [FBSnapshotTestCaseDemoSpecs.m](FBSnapshotTestCaseDemo/FBSnapshotTestCaseDemoTests/FBSnapshotTestCaseDemoSpecs.m) for a complete example, which is an expanded Specta version version of [FBSnapshotTestCaseDemoTests.m](https://github.com/facebook/ios-snapshot-test-case/blob/master/FBSnapshotTestCaseDemo/FBSnapshotTestCaseDemoTests/FBSnapshotTestCaseDemoTests.m). - -Finally you can consult the tests for [ARTiledImageView](https://github.com/dblock/ARTiledImageView/tree/master/IntegrationTests) or [NAMapKit](https://github.com/neilang/NAMapKit/tree/master/Demo/DemoTests). - -### License - -MIT, see [LICENSE](LICENSE.md) diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h deleted file mode 100644 index eefe11b..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import - -@interface UIApplication (StrictKeyWindow) - -/** - @return The receiver's @c keyWindow. Raises an assertion if @c nil. - */ -- (UIWindow *)fb_strictKeyWindow; - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m deleted file mode 100644 index 0f7a0c2..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import - -@implementation UIApplication (StrictKeyWindow) - -- (UIWindow *)fb_strictKeyWindow -{ - UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; - if (!keyWindow) { - [NSException raise:@"FBSnapshotTestCaseNilKeyWindowException" - format:@"Snapshot tests must be hosted by an application with a key window. Please ensure your test" - " host sets up a key window at launch (either via storyboards or programmatically) and doesn't" - " do anything to remove it while snapshot tests are running."]; - } - return keyWindow; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.h deleted file mode 100644 index 9091d62..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Created by Gabriel Handford on 3/1/09. -// Copyright 2009-2013. All rights reserved. -// Created by John Boiles on 10/20/11. -// Copyright (c) 2011. All rights reserved -// Modified by Felix Schulze on 2/11/13. -// Copyright 2013. 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 - -@interface UIImage (Compare) - -- (BOOL)fb_compareWithImage:(UIImage *)image tolerance:(CGFloat)tolerance; - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.m deleted file mode 100644 index c997f57..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.m +++ /dev/null @@ -1,134 +0,0 @@ -// -// Created by Gabriel Handford on 3/1/09. -// Copyright 2009-2013. All rights reserved. -// Created by John Boiles on 10/20/11. -// Copyright (c) 2011. All rights reserved -// Modified by Felix Schulze on 2/11/13. -// Copyright 2013. 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 - -// This makes debugging much more fun -typedef union { - uint32_t raw; - unsigned char bytes[4]; - struct { - char red; - char green; - char blue; - char alpha; - } __attribute__ ((packed)) pixels; -} FBComparePixel; - -@implementation UIImage (Compare) - -- (BOOL)fb_compareWithImage:(UIImage *)image tolerance:(CGFloat)tolerance -{ - NSAssert(CGSizeEqualToSize(self.size, image.size), @"Images must be same size."); - - CGSize referenceImageSize = CGSizeMake(CGImageGetWidth(self.CGImage), CGImageGetHeight(self.CGImage)); - CGSize imageSize = CGSizeMake(CGImageGetWidth(image.CGImage), CGImageGetHeight(image.CGImage)); - - // The images have the equal size, so we could use the smallest amount of bytes because of byte padding - size_t minBytesPerRow = MIN(CGImageGetBytesPerRow(self.CGImage), CGImageGetBytesPerRow(image.CGImage)); - size_t referenceImageSizeBytes = referenceImageSize.height * minBytesPerRow; - void *referenceImagePixels = calloc(1, referenceImageSizeBytes); - void *imagePixels = calloc(1, referenceImageSizeBytes); - - if (!referenceImagePixels || !imagePixels) { - free(referenceImagePixels); - free(imagePixels); - return NO; - } - - CGContextRef referenceImageContext = CGBitmapContextCreate(referenceImagePixels, - referenceImageSize.width, - referenceImageSize.height, - CGImageGetBitsPerComponent(self.CGImage), - minBytesPerRow, - CGImageGetColorSpace(self.CGImage), - (CGBitmapInfo)kCGImageAlphaPremultipliedLast - ); - CGContextRef imageContext = CGBitmapContextCreate(imagePixels, - imageSize.width, - imageSize.height, - CGImageGetBitsPerComponent(image.CGImage), - minBytesPerRow, - CGImageGetColorSpace(image.CGImage), - (CGBitmapInfo)kCGImageAlphaPremultipliedLast - ); - - if (!referenceImageContext || !imageContext) { - CGContextRelease(referenceImageContext); - CGContextRelease(imageContext); - free(referenceImagePixels); - free(imagePixels); - return NO; - } - - CGContextDrawImage(referenceImageContext, CGRectMake(0, 0, referenceImageSize.width, referenceImageSize.height), self.CGImage); - CGContextDrawImage(imageContext, CGRectMake(0, 0, imageSize.width, imageSize.height), image.CGImage); - - CGContextRelease(referenceImageContext); - CGContextRelease(imageContext); - - BOOL imageEqual = YES; - - // Do a fast compare if we can - if (tolerance == 0) { - imageEqual = (memcmp(referenceImagePixels, imagePixels, referenceImageSizeBytes) == 0); - } else { - // Go through each pixel in turn and see if it is different - const NSInteger pixelCount = referenceImageSize.width * referenceImageSize.height; - - FBComparePixel *p1 = referenceImagePixels; - FBComparePixel *p2 = imagePixels; - - NSInteger numDiffPixels = 0; - for (int n = 0; n < pixelCount; ++n) { - // If this pixel is different, increment the pixel diff count and see - // if we have hit our limit. - if (p1->raw != p2->raw) { - numDiffPixels ++; - - CGFloat percent = (CGFloat)numDiffPixels / pixelCount; - if (percent > tolerance) { - imageEqual = NO; - break; - } - } - - p1++; - p2++; - } - } - - free(referenceImagePixels); - free(imagePixels); - - return imageEqual; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.h deleted file mode 100644 index a0863f3..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.h +++ /dev/null @@ -1,37 +0,0 @@ -// -// Created by Gabriel Handford on 3/1/09. -// Copyright 2009-2013. All rights reserved. -// Created by John Boiles on 10/20/11. -// Copyright (c) 2011. All rights reserved -// Modified by Felix Schulze on 2/11/13. -// Copyright 2013. 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 - -@interface UIImage (Diff) - -- (UIImage *)fb_diffWithImage:(UIImage *)image; - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.m deleted file mode 100644 index ebb72fe..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.m +++ /dev/null @@ -1,56 +0,0 @@ -// -// Created by Gabriel Handford on 3/1/09. -// Copyright 2009-2013. All rights reserved. -// Created by John Boiles on 10/20/11. -// Copyright (c) 2011. All rights reserved -// Modified by Felix Schulze on 2/11/13. -// Copyright 2013. 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 - -@implementation UIImage (Diff) - -- (UIImage *)fb_diffWithImage:(UIImage *)image -{ - if (!image) { - return nil; - } - CGSize imageSize = CGSizeMake(MAX(self.size.width, image.size.width), MAX(self.size.height, image.size.height)); - UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); - CGContextRef context = UIGraphicsGetCurrentContext(); - [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)]; - CGContextSetAlpha(context, 0.5); - CGContextBeginTransparencyLayer(context, NULL); - [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; - CGContextSetBlendMode(context, kCGBlendModeDifference); - CGContextSetFillColorWithColor(context,[UIColor whiteColor].CGColor); - CGContextFillRect(context, CGRectMake(0, 0, self.size.width, self.size.height)); - CGContextEndTransparencyLayer(context); - UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return returnImage; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.h deleted file mode 100644 index b0d5b26..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import - -@interface UIImage (Snapshot) - -/// Uses renderInContext: to get a snapshot of the layer. -+ (UIImage *)fb_imageForLayer:(CALayer *)layer; - -/// Uses renderInContext: to get a snapshot of the view layer. -+ (UIImage *)fb_imageForViewLayer:(UIView *)view; - -/// Uses drawViewHierarchyInRect: to get a snapshot of the view and adds the view into a window if needed. -+ (UIImage *)fb_imageForView:(UIView *)view; - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.m deleted file mode 100644 index 968091b..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.m +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import - -@implementation UIImage (Snapshot) - -+ (UIImage *)fb_imageForLayer:(CALayer *)layer -{ - CGRect bounds = layer.bounds; - NSAssert1(CGRectGetWidth(bounds), @"Zero width for layer %@", layer); - NSAssert1(CGRectGetHeight(bounds), @"Zero height for layer %@", layer); - - UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0); - CGContextRef context = UIGraphicsGetCurrentContext(); - NSAssert1(context, @"Could not generate context for layer %@", layer); - CGContextSaveGState(context); - [layer layoutIfNeeded]; - [layer renderInContext:context]; - CGContextRestoreGState(context); - - UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return snapshot; -} - -+ (UIImage *)fb_imageForViewLayer:(UIView *)view -{ - [view layoutIfNeeded]; - return [self fb_imageForLayer:view.layer]; -} - -+ (UIImage *)fb_imageForView:(UIView *)view -{ - CGRect bounds = view.bounds; - NSAssert1(CGRectGetWidth(bounds), @"Zero width for view %@", view); - NSAssert1(CGRectGetHeight(bounds), @"Zero height for view %@", view); - - // If the input view is already a UIWindow, then just use that. Otherwise wrap in a window. - UIWindow *window = [view isKindOfClass:[UIWindow class]] ? (UIWindow *)view : view.window; - BOOL removeFromSuperview = NO; - if (!window) { - window = [[UIApplication sharedApplication] fb_strictKeyWindow]; - } - - if (!view.window && view != window) { - [window addSubview:view]; - removeFromSuperview = YES; - } - - UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0); - [view layoutIfNeeded]; - [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; - - UIImage *snapshot = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - if (removeFromSuperview) { - [view removeFromSuperview]; - } - - return snapshot; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h deleted file mode 100644 index 72abc3c..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import - -#import - -#import - -#import - -/* - There are three ways of setting reference image directories. - - 1. Set the preprocessor macro FB_REFERENCE_IMAGE_DIR to a double quoted - c-string with the path. - 2. Set an environment variable named FB_REFERENCE_IMAGE_DIR with the path. This - takes precedence over the preprocessor macro to allow for run-time override. - 3. Keep everything unset, which will cause the reference images to be looked up - inside the bundle holding the current test, in the - Resources/ReferenceImages_* directories. - */ -#ifndef FB_REFERENCE_IMAGE_DIR -#define FB_REFERENCE_IMAGE_DIR "" -#endif - -/** - Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though. - @param view The view to snapshot - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param suffixes An NSOrderedSet of strings for the different suffixes - @param tolerance The percentage of pixels that can differ and still count as an 'identical' view - */ -#define FBSnapshotVerifyViewWithOptions(view__, identifier__, suffixes__, tolerance__) \ - FBSnapshotVerifyViewOrLayerWithOptions(View, view__, identifier__, suffixes__, tolerance__) - -#define FBSnapshotVerifyView(view__, identifier__) \ - FBSnapshotVerifyViewWithOptions(view__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0) - - -/** - Similar to our much-loved XCTAssert() macros. Use this to perform your test. No need to write an explanation, though. - @param layer The layer to snapshot - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param suffixes An NSOrderedSet of strings for the different suffixes - @param tolerance The percentage of pixels that can differ and still count as an 'identical' layer - */ -#define FBSnapshotVerifyLayerWithOptions(layer__, identifier__, suffixes__, tolerance__) \ - FBSnapshotVerifyViewOrLayerWithOptions(Layer, layer__, identifier__, suffixes__, tolerance__) - -#define FBSnapshotVerifyLayer(layer__, identifier__) \ - FBSnapshotVerifyLayerWithOptions(layer__, identifier__, FBSnapshotTestCaseDefaultSuffixes(), 0) - - -#define FBSnapshotVerifyViewOrLayerWithOptions(what__, viewOrLayer__, identifier__, suffixes__, tolerance__) \ -{ \ - NSString *errorDescription = [self snapshotVerifyViewOrLayer:viewOrLayer__ identifier:identifier__ suffixes:suffixes__ tolerance:tolerance__]; \ - BOOL noErrors = (errorDescription == nil); \ - XCTAssertTrue(noErrors, @"%@", errorDescription); \ -} - - -/** - The base class of view snapshotting tests. If you have small UI component, it's often easier to configure it in a test - and compare an image of the view to a reference image that write lots of complex layout-code tests. - - In order to flip the tests in your subclass to record the reference images set @c recordMode to @c YES. - - @attention When recording, the reference image directory should be explicitly - set, otherwise the images may be written to somewhere inside the - simulator directory. - - For example: - @code - - (void)setUp - { - [super setUp]; - self.recordMode = YES; - } - @endcode - */ -@interface FBSnapshotTestCase : XCTestCase - -/** - When YES, the test macros will save reference images, rather than performing an actual test. - */ -@property (readwrite, nonatomic, assign) BOOL recordMode; - -/** - When @c YES appends the name of the device model and OS to the snapshot file name. - The default value is @c NO. - */ -@property (readwrite, nonatomic, assign, getter=isDeviceAgnostic) BOOL deviceAgnostic; - -/** - When YES, renders a snapshot of the complete view hierarchy as visible onscreen. - There are several things that do not work if renderInContext: is used. - - UIVisualEffect #70 - - UIAppearance #91 - - Size Classes #92 - - @attention If the view does't belong to a UIWindow, it will create one and add the view as a subview. - */ -@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect; - -- (void)setUp NS_REQUIRES_SUPER; -- (void)tearDown NS_REQUIRES_SUPER; - -/** - Performs the comparison or records a snapshot of the layer if recordMode is YES. - @param viewOrLayer The UIView or CALayer to snapshot - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param suffixes An NSOrderedSet of strings for the different suffixes - @param tolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care - @returns nil if the comparison (or saving of the reference image) succeeded. Otherwise it contains an error description. - */ -- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer - identifier:(NSString *)identifier - suffixes:(NSOrderedSet *)suffixes - tolerance:(CGFloat)tolerance; - -/** - Performs the comparison or records a snapshot of the layer if recordMode is YES. - @param layer The Layer to snapshot - @param referenceImagesDirectory The directory in which reference images are stored. - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param tolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care - @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if the comparison (or saving of the reference image) succeeded. - */ -- (BOOL)compareSnapshotOfLayer:(CALayer *)layer - referenceImagesDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr; - -/** - Performs the comparison or records a snapshot of the view if recordMode is YES. - @param view The view to snapshot - @param referenceImagesDirectory The directory in which reference images are stored. - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param tolerance The percentage difference to still count as identical - 0 mean pixel perfect, 1 means I don't care - @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if the comparison (or saving of the reference image) succeeded. - */ -- (BOOL)compareSnapshotOfView:(UIView *)view - referenceImagesDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr; - -/** - Checks if reference image with identifier based name exists in the reference images directory. - @param referenceImagesDirectory The directory in which reference images are stored. - @param identifier An optional identifier, used if there are multiple snapshot tests in a given -test method. - @param errorPtr An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if reference image exists. - */ -- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - error:(NSError **)errorPtr; - -/** - Returns the reference image directory. - - Helper function used to implement the assert macros. - - @param dir directory to use if environment variable not specified. Ignored if null or empty. - */ -- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir; - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m deleted file mode 100644 index f44458c..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import - -@implementation FBSnapshotTestCase -{ - FBSnapshotTestController *_snapshotController; -} - -#pragma mark - Overrides - -- (void)setUp -{ - [super setUp]; - _snapshotController = [[FBSnapshotTestController alloc] initWithTestName:NSStringFromClass([self class])]; -} - -- (void)tearDown -{ - _snapshotController = nil; - [super tearDown]; -} - -- (BOOL)recordMode -{ - return _snapshotController.recordMode; -} - -- (void)setRecordMode:(BOOL)recordMode -{ - NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__); - _snapshotController.recordMode = recordMode; -} - -- (BOOL)isDeviceAgnostic -{ - return _snapshotController.deviceAgnostic; -} - -- (void)setDeviceAgnostic:(BOOL)deviceAgnostic -{ - NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__); - _snapshotController.deviceAgnostic = deviceAgnostic; -} - -- (BOOL)usesDrawViewHierarchyInRect -{ - return _snapshotController.usesDrawViewHierarchyInRect; -} - -- (void)setUsesDrawViewHierarchyInRect:(BOOL)usesDrawViewHierarchyInRect -{ - NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__); - _snapshotController.usesDrawViewHierarchyInRect = usesDrawViewHierarchyInRect; -} - -#pragma mark - Public API - -- (NSString *)snapshotVerifyViewOrLayer:(id)viewOrLayer - identifier:(NSString *)identifier - suffixes:(NSOrderedSet *)suffixes - tolerance:(CGFloat)tolerance -{ - if (nil == viewOrLayer) { - return @"Object to be snapshotted must not be nil"; - } - NSString *referenceImageDirectory = [self getReferenceImageDirectoryWithDefault:(@ FB_REFERENCE_IMAGE_DIR)]; - if (referenceImageDirectory == nil) { - return @"Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as Environment variable in your scheme."; - } - if (suffixes.count == 0) { - return [NSString stringWithFormat:@"Suffixes set cannot be empty %@", suffixes]; - } - - BOOL testSuccess = NO; - NSError *error = nil; - NSMutableArray *errors = [NSMutableArray array]; - - if (self.recordMode) { - NSString *referenceImagesDirectory = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffixes.firstObject]; - BOOL referenceImageSaved = [self _compareSnapshotOfViewOrLayer:viewOrLayer referenceImagesDirectory:referenceImagesDirectory identifier:(identifier) tolerance:tolerance error:&error]; - if (!referenceImageSaved) { - [errors addObject:error]; - } - } else { - for (NSString *suffix in suffixes) { - NSString *referenceImagesDirectory = [NSString stringWithFormat:@"%@%@", referenceImageDirectory, suffix]; - BOOL referenceImageAvailable = [self referenceImageRecordedInDirectory:referenceImagesDirectory identifier:(identifier) error:&error]; - - if (referenceImageAvailable) { - BOOL comparisonSuccess = [self _compareSnapshotOfViewOrLayer:viewOrLayer referenceImagesDirectory:referenceImagesDirectory identifier:identifier tolerance:tolerance error:&error]; - [errors removeAllObjects]; - if (comparisonSuccess) { - testSuccess = YES; - break; - } else { - [errors addObject:error]; - } - } else { - [errors addObject:error]; - } - } - } - - if (!testSuccess) { - return [NSString stringWithFormat:@"Snapshot comparison failed: %@", errors.firstObject]; - } - if (self.recordMode) { - return @"Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!"; - } - - return nil; -} - -- (BOOL)compareSnapshotOfLayer:(CALayer *)layer - referenceImagesDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - return [self _compareSnapshotOfViewOrLayer:layer - referenceImagesDirectory:referenceImagesDirectory - identifier:identifier - tolerance:tolerance - error:errorPtr]; -} - -- (BOOL)compareSnapshotOfView:(UIView *)view - referenceImagesDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - return [self _compareSnapshotOfViewOrLayer:view - referenceImagesDirectory:referenceImagesDirectory - identifier:identifier - tolerance:tolerance - error:errorPtr]; -} - -- (BOOL)referenceImageRecordedInDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - NSAssert1(_snapshotController, @"%s cannot be called before [super setUp]", __FUNCTION__); - _snapshotController.referenceImagesDirectory = referenceImagesDirectory; - UIImage *referenceImage = [_snapshotController referenceImageForSelector:self.invocation.selector - identifier:identifier - error:errorPtr]; - - return (referenceImage != nil); -} - -- (NSString *)getReferenceImageDirectoryWithDefault:(NSString *)dir -{ - NSString *envReferenceImageDirectory = [NSProcessInfo processInfo].environment[@"FB_REFERENCE_IMAGE_DIR"]; - if (envReferenceImageDirectory) { - return envReferenceImageDirectory; - } - if (dir && dir.length > 0) { - return dir; - } - return [[NSBundle bundleForClass:self.class].resourcePath stringByAppendingPathComponent:@"ReferenceImages"]; -} - - -#pragma mark - Private API - -- (BOOL)_compareSnapshotOfViewOrLayer:(id)viewOrLayer - referenceImagesDirectory:(NSString *)referenceImagesDirectory - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - _snapshotController.referenceImagesDirectory = referenceImagesDirectory; - return [_snapshotController compareSnapshotOfViewOrLayer:viewOrLayer - selector:self.invocation.selector - identifier:identifier - tolerance:tolerance - error:errorPtr]; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h deleted file mode 100644 index e04acf2..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import - -#ifdef __cplusplus -extern "C" { -#endif - -/** - Returns a Boolean value that indicates whether the snapshot test is running in 64Bit. - This method is a convenience for creating the suffixes set based on the architecture - that the test is running. - - @returns @c YES if the test is running in 64bit, otherwise @c NO. - */ -BOOL FBSnapshotTestCaseIs64Bit(void); - -/** - Returns a default set of strings that is used to append a suffix based on the architectures. - @warning Do not modify this function, you can create your own and use it with @c FBSnapshotVerifyViewWithOptions() - - @returns An @c NSOrderedSet object containing strings that are appended to the reference images directory. - */ -NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void); - -/** - Returns a fully «normalized» file name. - Strips punctuation and spaces and replaces them with @c _. Also appends the device model, running OS and screen size to the file name. - - @returns An @c NSString object containing the passed @c fileName with the device model, OS and screen size appended at the end. - */ -NSString *FBDeviceAgnosticNormalizedFileName(NSString *fileName); - -#ifdef __cplusplus -} -#endif diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m deleted file mode 100644 index d8709d8..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import -#import - -BOOL FBSnapshotTestCaseIs64Bit(void) -{ -#if __LP64__ - return YES; -#else - return NO; -#endif -} - -NSOrderedSet *FBSnapshotTestCaseDefaultSuffixes(void) -{ - NSMutableOrderedSet *suffixesSet = [[NSMutableOrderedSet alloc] init]; - [suffixesSet addObject:@"_32"]; - [suffixesSet addObject:@"_64"]; - if (FBSnapshotTestCaseIs64Bit()) { - return [suffixesSet reversedOrderedSet]; - } - return [suffixesSet copy]; -} - -NSString *FBDeviceAgnosticNormalizedFileName(NSString *fileName) -{ - UIDevice *device = [UIDevice currentDevice]; - UIWindow *keyWindow = [[UIApplication sharedApplication] fb_strictKeyWindow]; - CGSize screenSize = keyWindow.bounds.size; - NSString *os = device.systemVersion; - - fileName = [NSString stringWithFormat:@"%@_%@%@_%.0fx%.0f", fileName, device.model, os, screenSize.width, screenSize.height]; - - NSMutableCharacterSet *invalidCharacters = [NSMutableCharacterSet new]; - [invalidCharacters formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]]; - [invalidCharacters formUnionWithCharacterSet:[NSCharacterSet punctuationCharacterSet]]; - NSArray *validComponents = [fileName componentsSeparatedByCharactersInSet:invalidCharacters]; - fileName = [validComponents componentsJoinedByString:@"_"]; - - return fileName; -} \ No newline at end of file diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h deleted file mode 100644 index a0285ad..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import - -typedef NS_ENUM(NSInteger, FBSnapshotTestControllerErrorCode) { - FBSnapshotTestControllerErrorCodeUnknown, - FBSnapshotTestControllerErrorCodeNeedsRecord, - FBSnapshotTestControllerErrorCodePNGCreationFailed, - FBSnapshotTestControllerErrorCodeImagesDifferentSizes, - FBSnapshotTestControllerErrorCodeImagesDifferent, -}; -/** - Errors returned by the methods of FBSnapshotTestController use this domain. - */ -extern NSString *const FBSnapshotTestControllerErrorDomain; - -/** - Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary. - */ -extern NSString *const FBReferenceImageFilePathKey; - -/** - Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary. - */ -extern NSString *const FBReferenceImageKey; - -/** - Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary. - */ -extern NSString *const FBCapturedImageKey; - -/** - Errors returned by the methods of FBSnapshotTestController sometimes contain this key in the `userInfo` dictionary. - */ -extern NSString *const FBDiffedImageKey; - -/** - Provides the heavy-lifting for FBSnapshotTestCase. It loads and saves images, along with performing the actual pixel- - by-pixel comparison of images. - Instances are initialized with the test class, and directories to read and write to. - */ -@interface FBSnapshotTestController : NSObject - -/** - Record snapshots. - */ -@property (readwrite, nonatomic, assign) BOOL recordMode; - -/** - When @c YES appends the name of the device model and OS to the snapshot file name. - The default value is @c NO. - */ -@property (readwrite, nonatomic, assign, getter=isDeviceAgnostic) BOOL deviceAgnostic; - -/** - Uses drawViewHierarchyInRect:afterScreenUpdates: to draw the image instead of renderInContext: - */ -@property (readwrite, nonatomic, assign) BOOL usesDrawViewHierarchyInRect; - -/** - The directory in which referfence images are stored. - */ -@property (readwrite, nonatomic, copy) NSString *referenceImagesDirectory; - -/** - @param testClass The subclass of FBSnapshotTestCase that is using this controller. - @returns An instance of FBSnapshotTestController. - */ -- (instancetype)initWithTestClass:(Class)testClass; - -/** - Designated initializer. - @param testName The name of the tests. - @returns An instance of FBSnapshotTestController. - */ -- (instancetype)initWithTestName:(NSString *)testName; - -/** - Performs the comparison of the layer. - @param layer The Layer to snapshot. - @param selector The test method being run. - @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. - @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if the comparison (or saving of the reference image) succeeded. - */ -- (BOOL)compareSnapshotOfLayer:(CALayer *)layer - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr; - -/** - Performs the comparison of the view. - @param view The view to snapshot. - @param selector The test method being run. - @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. - @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if the comparison (or saving of the reference image) succeeded. - */ -- (BOOL)compareSnapshotOfView:(UIView *)view - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr; - -/** - Performs the comparison of a view or layer. - @param view The view or layer to snapshot. - @param selector The test method being run. - @param identifier An optional identifier, used is there are muliptle snapshot tests in a given -test method. - @param tolerance The percentage of pixels that can differ and still be considered 'identical' - @param error An error to log in an XCTAssert() macro if the method fails (missing reference image, images differ, etc). - @returns YES if the comparison (or saving of the reference image) succeeded. - */ -- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer - selector:(SEL)selector - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr; - -/** - Loads a reference image. - @param selector The test method being run. - @param identifier The optional identifier, used when multiple images are tested in a single -test method. - @param errorPtr An error, if this methods returns nil, the error will be something useful. - @returns An image. - */ -- (UIImage *)referenceImageForSelector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr; - -/** - Performs a pixel-by-pixel comparison of the two images with an allowable margin of error. - @param referenceImage The reference (correct) image. - @param image The image to test against the reference. - @param tolerance The percentage of pixels that can differ and still be considered 'identical' - @param errorPtr An error that indicates why the comparison failed if it does. - @returns YES if the comparison succeeded and the images are the same(ish). - */ -- (BOOL)compareReferenceImage:(UIImage *)referenceImage - toImage:(UIImage *)image - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr; - -/** - Saves the reference image and the test image to `failedOutputDirectory`. - @param referenceImage The reference (correct) image. - @param testImage The image to test against the reference. - @param selector The test method being run. - @param identifier The optional identifier, used when multiple images are tested in a single -test method. - @param errorPtr An error that indicates why the comparison failed if it does. - @returns YES if the save succeeded. - */ -- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage - testImage:(UIImage *)testImage - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr; -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.m b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.m deleted file mode 100644 index 74c5a0a..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.m +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ - -#import -#import -#import -#import -#import - -#import - -NSString *const FBSnapshotTestControllerErrorDomain = @"FBSnapshotTestControllerErrorDomain"; -NSString *const FBReferenceImageFilePathKey = @"FBReferenceImageFilePathKey"; -NSString *const FBReferenceImageKey = @"FBReferenceImageKey"; -NSString *const FBCapturedImageKey = @"FBCapturedImageKey"; -NSString *const FBDiffedImageKey = @"FBDiffedImageKey"; - -typedef NS_ENUM(NSUInteger, FBTestSnapshotFileNameType) { - FBTestSnapshotFileNameTypeReference, - FBTestSnapshotFileNameTypeFailedReference, - FBTestSnapshotFileNameTypeFailedTest, - FBTestSnapshotFileNameTypeFailedTestDiff, -}; - -@implementation FBSnapshotTestController -{ - NSString *_testName; - NSFileManager *_fileManager; -} - -#pragma mark - Initializers - -- (instancetype)initWithTestClass:(Class)testClass; -{ - return [self initWithTestName:NSStringFromClass(testClass)]; -} - -- (instancetype)initWithTestName:(NSString *)testName -{ - if (self = [super init]) { - _testName = [testName copy]; - _deviceAgnostic = NO; - - _fileManager = [[NSFileManager alloc] init]; - } - return self; -} - -#pragma mark - Overrides - -- (NSString *)description -{ - return [NSString stringWithFormat:@"%@ %@", [super description], _referenceImagesDirectory]; -} - -#pragma mark - Public API - -- (BOOL)compareSnapshotOfLayer:(CALayer *)layer - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - return [self compareSnapshotOfViewOrLayer:layer - selector:selector - identifier:identifier - tolerance:0 - error:errorPtr]; -} - -- (BOOL)compareSnapshotOfView:(UIView *)view - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - return [self compareSnapshotOfViewOrLayer:view - selector:selector - identifier:identifier - tolerance:0 - error:errorPtr]; -} - -- (BOOL)compareSnapshotOfViewOrLayer:(id)viewOrLayer - selector:(SEL)selector - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - if (self.recordMode) { - return [self _recordSnapshotOfViewOrLayer:viewOrLayer selector:selector identifier:identifier error:errorPtr]; - } else { - return [self _performPixelComparisonWithViewOrLayer:viewOrLayer selector:selector identifier:identifier tolerance:tolerance error:errorPtr]; - } -} - -- (UIImage *)referenceImageForSelector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier]; - UIImage *image = [UIImage imageWithContentsOfFile:filePath]; - if (nil == image && NULL != errorPtr) { - BOOL exists = [_fileManager fileExistsAtPath:filePath]; - if (!exists) { - *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain - code:FBSnapshotTestControllerErrorCodeNeedsRecord - userInfo:@{ - FBReferenceImageFilePathKey: filePath, - NSLocalizedDescriptionKey: @"Unable to load reference image.", - NSLocalizedFailureReasonErrorKey: @"Reference image not found. You need to run the test in record mode", - }]; - } else { - *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain - code:FBSnapshotTestControllerErrorCodeUnknown - userInfo:nil]; - } - } - return image; -} - -- (BOOL)compareReferenceImage:(UIImage *)referenceImage - toImage:(UIImage *)image - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - BOOL sameImageDimensions = CGSizeEqualToSize(referenceImage.size, image.size); - if (sameImageDimensions && [referenceImage fb_compareWithImage:image tolerance:tolerance]) { - return YES; - } - - if (NULL != errorPtr) { - NSString *errorDescription = sameImageDimensions ? @"Images different" : @"Images different sizes"; - NSString *errorReason = sameImageDimensions ? [NSString stringWithFormat:@"image pixels differed by more than %.2f%% from the reference image", tolerance * 100] - : [NSString stringWithFormat:@"referenceImage:%@, image:%@", NSStringFromCGSize(referenceImage.size), NSStringFromCGSize(image.size)]; - FBSnapshotTestControllerErrorCode errorCode = sameImageDimensions ? FBSnapshotTestControllerErrorCodeImagesDifferent : FBSnapshotTestControllerErrorCodeImagesDifferentSizes; - - *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain - code:errorCode - userInfo:@{ - NSLocalizedDescriptionKey: errorDescription, - NSLocalizedFailureReasonErrorKey: errorReason, - FBReferenceImageKey: referenceImage, - FBCapturedImageKey: image, - FBDiffedImageKey: [referenceImage fb_diffWithImage:image], - }]; - } - return NO; -} - -- (BOOL)saveFailedReferenceImage:(UIImage *)referenceImage - testImage:(UIImage *)testImage - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - NSData *referencePNGData = UIImagePNGRepresentation(referenceImage); - NSData *testPNGData = UIImagePNGRepresentation(testImage); - - NSString *referencePath = [self _failedFilePathForSelector:selector - identifier:identifier - fileNameType:FBTestSnapshotFileNameTypeFailedReference]; - - NSError *creationError = nil; - BOOL didCreateDir = [_fileManager createDirectoryAtPath:[referencePath stringByDeletingLastPathComponent] - withIntermediateDirectories:YES - attributes:nil - error:&creationError]; - if (!didCreateDir) { - if (NULL != errorPtr) { - *errorPtr = creationError; - } - return NO; - } - - if (![referencePNGData writeToFile:referencePath options:NSDataWritingAtomic error:errorPtr]) { - return NO; - } - - NSString *testPath = [self _failedFilePathForSelector:selector - identifier:identifier - fileNameType:FBTestSnapshotFileNameTypeFailedTest]; - - if (![testPNGData writeToFile:testPath options:NSDataWritingAtomic error:errorPtr]) { - return NO; - } - - NSString *diffPath = [self _failedFilePathForSelector:selector - identifier:identifier - fileNameType:FBTestSnapshotFileNameTypeFailedTestDiff]; - - UIImage *diffImage = [referenceImage fb_diffWithImage:testImage]; - NSData *diffImageData = UIImagePNGRepresentation(diffImage); - - if (![diffImageData writeToFile:diffPath options:NSDataWritingAtomic error:errorPtr]) { - return NO; - } - - NSLog(@"If you have Kaleidoscope installed you can run this command to see an image diff:\n" - @"ksdiff \"%@\" \"%@\"", referencePath, testPath); - - return YES; -} - -#pragma mark - Private API - -- (NSString *)_fileNameForSelector:(SEL)selector - identifier:(NSString *)identifier - fileNameType:(FBTestSnapshotFileNameType)fileNameType -{ - NSString *fileName = nil; - switch (fileNameType) { - case FBTestSnapshotFileNameTypeFailedReference: - fileName = @"reference_"; - break; - case FBTestSnapshotFileNameTypeFailedTest: - fileName = @"failed_"; - break; - case FBTestSnapshotFileNameTypeFailedTestDiff: - fileName = @"diff_"; - break; - default: - fileName = @""; - break; - } - fileName = [fileName stringByAppendingString:NSStringFromSelector(selector)]; - if (0 < identifier.length) { - fileName = [fileName stringByAppendingFormat:@"_%@", identifier]; - } - - if (self.isDeviceAgnostic) { - fileName = FBDeviceAgnosticNormalizedFileName(fileName); - } - - if ([[UIScreen mainScreen] scale] > 1) { - fileName = [fileName stringByAppendingFormat:@"@%.fx", [[UIScreen mainScreen] scale]]; - } - fileName = [fileName stringByAppendingPathExtension:@"png"]; - return fileName; -} - -- (NSString *)_referenceFilePathForSelector:(SEL)selector - identifier:(NSString *)identifier -{ - NSString *fileName = [self _fileNameForSelector:selector - identifier:identifier - fileNameType:FBTestSnapshotFileNameTypeReference]; - NSString *filePath = [_referenceImagesDirectory stringByAppendingPathComponent:_testName]; - filePath = [filePath stringByAppendingPathComponent:fileName]; - return filePath; -} - -- (NSString *)_failedFilePathForSelector:(SEL)selector - identifier:(NSString *)identifier - fileNameType:(FBTestSnapshotFileNameType)fileNameType -{ - NSString *fileName = [self _fileNameForSelector:selector - identifier:identifier - fileNameType:fileNameType]; - NSString *folderPath = NSTemporaryDirectory(); - if (getenv("IMAGE_DIFF_DIR")) { - folderPath = @(getenv("IMAGE_DIFF_DIR")); - } - NSString *filePath = [folderPath stringByAppendingPathComponent:_testName]; - filePath = [filePath stringByAppendingPathComponent:fileName]; - return filePath; -} - -- (BOOL)_performPixelComparisonWithViewOrLayer:(id)viewOrLayer - selector:(SEL)selector - identifier:(NSString *)identifier - tolerance:(CGFloat)tolerance - error:(NSError **)errorPtr -{ - UIImage *referenceImage = [self referenceImageForSelector:selector identifier:identifier error:errorPtr]; - if (nil != referenceImage) { - UIImage *snapshot = [self _imageForViewOrLayer:viewOrLayer]; - BOOL imagesSame = [self compareReferenceImage:referenceImage toImage:snapshot tolerance:tolerance error:errorPtr]; - if (!imagesSame) { - NSError *saveError = nil; - if ([self saveFailedReferenceImage:referenceImage testImage:snapshot selector:selector identifier:identifier error:&saveError] == NO) { - NSLog(@"Error saving test images: %@", saveError); - } - } - return imagesSame; - } - return NO; -} - -- (BOOL)_recordSnapshotOfViewOrLayer:(id)viewOrLayer - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - UIImage *snapshot = [self _imageForViewOrLayer:viewOrLayer]; - return [self _saveReferenceImage:snapshot selector:selector identifier:identifier error:errorPtr]; -} - -- (BOOL)_saveReferenceImage:(UIImage *)image - selector:(SEL)selector - identifier:(NSString *)identifier - error:(NSError **)errorPtr -{ - BOOL didWrite = NO; - if (nil != image) { - NSString *filePath = [self _referenceFilePathForSelector:selector identifier:identifier]; - NSData *pngData = UIImagePNGRepresentation(image); - if (nil != pngData) { - NSError *creationError = nil; - BOOL didCreateDir = [_fileManager createDirectoryAtPath:[filePath stringByDeletingLastPathComponent] - withIntermediateDirectories:YES - attributes:nil - error:&creationError]; - if (!didCreateDir) { - if (NULL != errorPtr) { - *errorPtr = creationError; - } - return NO; - } - didWrite = [pngData writeToFile:filePath options:NSDataWritingAtomic error:errorPtr]; - if (didWrite) { - NSLog(@"Reference image save at: %@", filePath); - } - } else { - if (nil != errorPtr) { - *errorPtr = [NSError errorWithDomain:FBSnapshotTestControllerErrorDomain - code:FBSnapshotTestControllerErrorCodePNGCreationFailed - userInfo:@{ - FBReferenceImageFilePathKey: filePath, - }]; - } - } - } - return didWrite; -} - -- (UIImage *)_imageForViewOrLayer:(id)viewOrLayer -{ - if ([viewOrLayer isKindOfClass:[UIView class]]) { - if (_usesDrawViewHierarchyInRect) { - return [UIImage fb_imageForView:viewOrLayer]; - } else { - return [UIImage fb_imageForViewLayer:viewOrLayer]; - } - } else if ([viewOrLayer isKindOfClass:[CALayer class]]) { - return [UIImage fb_imageForLayer:viewOrLayer]; - } else { - [NSException raise:@"Only UIView and CALayer classes can be snapshotted" format:@"%@", viewOrLayer]; - } - return nil; -} - -@end diff --git a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/SwiftSupport.swift b/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/SwiftSupport.swift deleted file mode 100644 index 471bb0d..0000000 --- a/Example/Pods/FBSnapshotTestCase/FBSnapshotTestCase/SwiftSupport.swift +++ /dev/null @@ -1,125 +0,0 @@ -/* -* Copyright (c) 2015, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -* -*/ - -#if swift(>=3) - public extension FBSnapshotTestCase { - public func FBSnapshotVerifyView(_ view: UIView, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - FBSnapshotVerifyViewOrLayer(view, identifier: identifier, suffixes: suffixes, tolerance: tolerance, file: file, line: line) - } - - public func FBSnapshotVerifyLayer(_ layer: CALayer, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - FBSnapshotVerifyViewOrLayer(layer, identifier: identifier, suffixes: suffixes, tolerance: tolerance, file: file, line: line) - } - - private func FBSnapshotVerifyViewOrLayer(_ viewOrLayer: AnyObject, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - let envReferenceImageDirectory = self.getReferenceImageDirectory(withDefault: FB_REFERENCE_IMAGE_DIR) - var error: NSError? - var comparisonSuccess = false - - if let envReferenceImageDirectory = envReferenceImageDirectory { - for suffix in suffixes { - let referenceImagesDirectory = "\(envReferenceImageDirectory)\(suffix)" - if viewOrLayer.isKind(of: UIView.self) { - do { - try compareSnapshot(of: viewOrLayer as! UIView, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: tolerance) - comparisonSuccess = true - } catch let error1 as NSError { - error = error1 - comparisonSuccess = false - } - } else if viewOrLayer.isKind(of: CALayer.self) { - do { - try compareSnapshot(of: viewOrLayer as! CALayer, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: tolerance) - comparisonSuccess = true - } catch let error1 as NSError { - error = error1 - comparisonSuccess = false - } - } else { - assertionFailure("Only UIView and CALayer classes can be snapshotted") - } - - assert(recordMode == false, message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line) - - if comparisonSuccess || recordMode { - break - } - - assert(comparisonSuccess, message: "Snapshot comparison failed: \(error)", file: file, line: line) - } - } else { - XCTFail("Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as Environment variable in your scheme.") - } - } - - func assert(_ assertion: Bool, message: String, file: StaticString, line: UInt) { - if !assertion { - XCTFail(message, file: file, line: line) - } - } - } -#else -public extension FBSnapshotTestCase { - public func FBSnapshotVerifyView(view: UIView, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - FBSnapshotVerifyViewOrLayer(view, identifier: identifier, suffixes: suffixes, tolerance: tolerance, file: file, line: line) - } - - public func FBSnapshotVerifyLayer(layer: CALayer, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - FBSnapshotVerifyViewOrLayer(layer, identifier: identifier, suffixes: suffixes, tolerance: tolerance, file: file, line: line) - } - - private func FBSnapshotVerifyViewOrLayer(viewOrLayer: AnyObject, identifier: String = "", suffixes: NSOrderedSet = FBSnapshotTestCaseDefaultSuffixes(), tolerance: CGFloat = 0, file: StaticString = #file, line: UInt = #line) { - let envReferenceImageDirectory = self.getReferenceImageDirectoryWithDefault(FB_REFERENCE_IMAGE_DIR) - var error: NSError? - var comparisonSuccess = false - - if let envReferenceImageDirectory = envReferenceImageDirectory { - for suffix in suffixes { - let referenceImagesDirectory = "\(envReferenceImageDirectory)\(suffix)" - if viewOrLayer.isKindOfClass(UIView) { - do { - try compareSnapshotOfView(viewOrLayer as! UIView, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: tolerance) - comparisonSuccess = true - } catch let error1 as NSError { - error = error1 - comparisonSuccess = false - } - } else if viewOrLayer.isKindOfClass(CALayer) { - do { - try compareSnapshotOfLayer(viewOrLayer as! CALayer, referenceImagesDirectory: referenceImagesDirectory, identifier: identifier, tolerance: tolerance) - comparisonSuccess = true - } catch let error1 as NSError { - error = error1 - comparisonSuccess = false - } - } else { - assertionFailure("Only UIView and CALayer classes can be snapshotted") - } - - assert(recordMode == false, message: "Test ran in record mode. Reference image is now saved. Disable record mode to perform an actual snapshot comparison!", file: file, line: line) - - if comparisonSuccess || recordMode { - break - } - - assert(comparisonSuccess, message: "Snapshot comparison failed: \(error)", file: file, line: line) - } - } else { - XCTFail("Missing value for referenceImagesDirectory - Set FB_REFERENCE_IMAGE_DIR as Environment variable in your scheme.") - } - } - - func assert(assertion: Bool, message: String, file: StaticString, line: UInt) { - if !assertion { - XCTFail(message, file: file, line: line) - } - } -} -#endif diff --git a/Example/Pods/FBSnapshotTestCase/LICENSE b/Example/Pods/FBSnapshotTestCase/LICENSE deleted file mode 100644 index 2dd780c..0000000 --- a/Example/Pods/FBSnapshotTestCase/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD License - -For the FBSnapshotTestCase software - -Copyright (c) 2013, Facebook, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Example/Pods/FBSnapshotTestCase/README.md b/Example/Pods/FBSnapshotTestCase/README.md deleted file mode 100644 index bc23b83..0000000 --- a/Example/Pods/FBSnapshotTestCase/README.md +++ /dev/null @@ -1,97 +0,0 @@ -FBSnapshotTestCase -====================== - -[![Build Status](https://travis-ci.org/facebook/ios-snapshot-test-case.svg)](https://travis-ci.org/facebook/ios-snapshot-test-case) [![Cocoa Pod Version](https://cocoapod-badges.herokuapp.com/v/FBSnapshotTestCase/badge.svg)](http://cocoadocs.org/docsets/FBSnapshotTestCase/) - -What it does ------------- - -A "snapshot test case" takes a configured `UIView` or `CALayer` and uses the -`renderInContext:` method to get an image snapshot of its contents. It -compares this snapshot to a "reference image" stored in your source code -repository and fails the test if the two images don't match. - -Why? ----- - -At Facebook we write a lot of UI code. As you might imagine, each type of -feed story is rendered using a subclass of `UIView`. There are a lot of edge -cases that we want to handle correctly: - -- What if there is more text than can fit in the space available? -- What if an image doesn't match the size of an image view? -- What should the highlighted state look like? - -It's straightforward to test logic code, but less obvious how you should test -views. You can do a lot of rectangle asserts, but these are hard to understand -or visualize. Looking at an image diff shows you exactly what changed and how -it will look to users. - -We developed `FBSnapshotTestCase` to make snapshot tests easy. - -Installation with CocoaPods ---------------------------- - -1. Add the following lines to your Podfile: - - ``` - target "Tests" do - pod 'FBSnapshotTestCase' - end - ``` - - If you support iOS 7 use `FBSnapshotTestCase/Core` instead, which doesn't contain Swift support. - - Replace "Tests" with the name of your test project. - -2. There are [three ways](https://github.com/facebook/ios-snapshot-test-case/blob/master/FBSnapshotTestCase/FBSnapshotTestCase.h#L19-L29) of setting reference image directories, the recommended one is to define `FB_REFERENCE_IMAGE_DIR` in your scheme. This should point to the directory where you want reference images to be stored. At Facebook, we normally use this: - -|Name|Value| -|:---|:----| -|`FB_REFERENCE_IMAGE_DIR`|`$(SOURCE_ROOT)/$(PROJECT_NAME)Tests/ReferenceImages`| - - -![](FBSnapshotTestCaseDemo/Scheme_FB_REFERENCE_IMAGE_DIR.png) - -Creating a snapshot test ------------------------- - -1. Subclass `FBSnapshotTestCase` instead of `XCTestCase`. -2. From within your test, use `FBSnapshotVerifyView`. -3. Run the test once with `self.recordMode = YES;` in the test's `-setUp` - method. (This creates the reference images on disk.) -4. Remove the line enabling record mode and run the test. - -Features --------- - -- Automatically names reference images on disk according to test class and - selector. -- Prints a descriptive error message to the console on failure. (Bonus: - failure message includes a one-line command to see an image diff if - you have [Kaleidoscope](http://www.kaleidoscopeapp.com) installed.) -- Supply an optional "identifier" if you want to perform multiple snapshots - in a single test method. -- Support for `CALayer` via `FBSnapshotVerifyLayer`. -- `usesDrawViewHierarchyInRect` to handle cases like `UIVisualEffect`, `UIAppearance` and Size Classes. -- `isDeviceAgnostic` to allow appending the device model (`iPhone`, `iPad`, `iPod Touch`, etc), OS version and screen size to the images (allowing to have multiple tests for the same «snapshot» for different `OS`s and devices). - -Notes ------ - -Your unit test must be an "application test", not a "logic test." (That is, it -must be run within the Simulator so that it has access to UIKit.) In Xcode 5 -and later new projects only offer application tests, but older projects will -have separate targets for the two types. - -Authors -------- - -`FBSnapshotTestCase` was written at Facebook by -[Jonathan Dann](https://facebook.com/j.p.dann) with significant contributions by -[Todd Krabach](https://facebook.com/toddkrabach). - -License -------- - -`FBSnapshotTestCase` is BSD-licensed. See `LICENSE`. diff --git a/Example/Pods/Local Podspecs/PNObject.podspec.json b/Example/Pods/Local Podspecs/PNObject.podspec.json index a2d5901..6301717 100644 --- a/Example/Pods/Local Podspecs/PNObject.podspec.json +++ b/Example/Pods/Local Podspecs/PNObject.podspec.json @@ -1,21 +1,23 @@ { "name": "PNObject", - "version": "0.9.0", + "version": "1.0.0", "summary": "PNObject is a simple replica of the more complex ParseObject", "homepage": "https://git.giuseppenucifora.com/giuseppenucifora/PNObject", - "license": "MIT", + "license": { + "type": "MIT", + "file": "LICENSE" + }, "authors": { "Giuseppe Nucifora": "me@giuseppenucifora.com" }, "source": { "git": "https://git.giuseppenucifora.com/giuseppenucifora/PNObject.git", - "tag": "0.9.0" + "tag": "1.0.0" }, "platforms": { "ios": "8.0" }, - "requires_arc": true, - "source_files": "Pod/Classes/**/*", + "source_files": "PNObject/Classes/**/*", "dependencies": { "AFNetworking": [ @@ -50,7 +52,10 @@ "FBSDKLoginKit": [ ], - "NACrypto": [ + "NAChloride": [ + + ], + "DDDKeychainWrapper": [ ], "NSUserDefaults-AESEncryptor": [ diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 8624707..beb45d7 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -22,40 +22,35 @@ PODS: - Bolts/Tasks (1.8.4) - CocoaSecurity (1.2.4) - CodFis-Helper (0.1.3) + - DDDKeychainWrapper (1.0.0) - DJLocalization (1.2.2): - DJLocalization/Core (= 1.2.2) - DJLocalization/Core (1.2.2) - Expecta (1.0.5) - - Expecta+Snapshots (3.0.0): - - Expecta (~> 1.0) - - FBSnapshotTestCase/Core (~> 2.0) - - Specta (~> 1.0) - FBSDKCoreKit (4.18.0): - Bolts (~> 1.7) - FBSDKLoginKit (4.18.0): - FBSDKCoreKit - FBSDKShareKit (4.18.0): - FBSDKCoreKit - - FBSnapshotTestCase (2.1.4): - - FBSnapshotTestCase/SwiftSupport (= 2.1.4) - - FBSnapshotTestCase/Core (2.1.4) - - FBSnapshotTestCase/SwiftSupport (2.1.4): - - FBSnapshotTestCase/Core - - NACrypto (1.0.6) - - NSDate_Utils (0.1.3) + - libsodium (1.0.11) + - NAChloride (2.2.1): + - libsodium + - NSDate_Utils (1.0.0) - NSString-Helper (1.0.5) - NSUserDefaults-AESEncryptor (0.0.4): - CocoaSecurity (~> 1.2.2) - nv-ios-http-status (0.0.1) - PEAR-FileManager-iOS (1.3.1) - - PNObject (0.9.0): + - PNObject (1.0.0): - AFNetworking - CodFis-Helper + - DDDKeychainWrapper - DJLocalization - FBSDKCoreKit - FBSDKLoginKit - FBSDKShareKit - - NACrypto + - NAChloride - NSDate_Utils - NSString-Helper - NSUserDefaults-AESEncryptor @@ -71,23 +66,10 @@ PODS: - UIDevice-Utils (0.1.6) DEPENDENCIES: - - AFNetworking - - CodFis-Helper - Expecta - - Expecta+Snapshots - - FBSDKCoreKit - - FBSDKLoginKit - - FBSDKShareKit - - FBSnapshotTestCase - - NSDate_Utils - - NSString-Helper - - nv-ios-http-status - - PEAR-FileManager-iOS - PNObject (from `../`) - PureLayout - Specta - - StrongestPasswordValidator - - UIDevice-Utils EXTERNAL SOURCES: PNObject: @@ -98,26 +80,26 @@ SPEC CHECKSUMS: Bolts: 8a7995239dbe724f9cba2248b766d48b7ebdd322 CocoaSecurity: d288a6f87e0f363823d2cb83e753814a6944f71a CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87 + DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897 DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47 Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe - Expecta+Snapshots: c343f410c7a6392f3e22e78f94c44b6c0749a516 FBSDKCoreKit: 15fef8804a4629f98c6f4e55e81a76c9d725d85e FBSDKLoginKit: 6773073e970b2b15fb12e451ce7f11da0532b880 FBSDKShareKit: 0b8d6cc3f103c75297eb3c62caec284a2ccf1b9e - FBSnapshotTestCase: '094f9f314decbabe373b87cc339bea235a63e07a' - NACrypto: ce3900f1775f1b0cc27ce7c4953b94c598a74149 - NSDate_Utils: 68669d2c81f310ee13026c791f4f0ed227b94c65 + libsodium: 9aba161d2ee096977ecbdcce1ada69ffe511970c + NAChloride: 8f3d4f9a20df6b68840789a22a70aa4fcc437b0c + NSDate_Utils: 45d47afab329001ccafe056308d0cc05460e5298 NSString-Helper: 459e1b6a62b3bf7db10f01b0d102548608e945c4 NSUserDefaults-AESEncryptor: da02cfef056f1e18ebe2748767915f08b274c9c5 nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3 - PNObject: f8d8116d0f72252552bddcbc3703d6d1e4719354 + PNObject: 34839792d6fcc437b3123d0770b4d45e845bf2c9 PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109 Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2 StrongestPasswordValidator: 921e42615bdf353513c6f925bffd4fc29865dbd7 UIDevice-Utils: 11c10b18d3c6489b45a97436e5ae6064a3622820 -PODFILE CHECKSUM: 7c7096ec3fa75c9e7a1d2b538e5719592b9f5e60 +PODFILE CHECKSUM: 57090c7ea88a91b49ca8dd73d9e7c6b866e772ba COCOAPODS: 1.2.0.beta.1 diff --git a/Example/Pods/NAChloride/LICENSE b/Example/Pods/NAChloride/LICENSE new file mode 100644 index 0000000..b93e7be --- /dev/null +++ b/Example/Pods/NAChloride/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Gabriel Handford + +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/NAChloride/NAChloride/NAAEAD.h b/Example/Pods/NAChloride/NAChloride/NAAEAD.h new file mode 100644 index 0000000..378e779 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAAEAD.h @@ -0,0 +1,19 @@ +// +// NAAEAD.h +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +@interface NAAEAD : NSObject + +@property (getter=isSecureDataEnabled) BOOL secureDataEnabled; + +- (NSData *)encryptChaCha20Poly1305:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key additionalData:(NSData *)additionalData error:(NSError **)error; + +- (NSData *)decryptChaCha20Poly1305:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key additionalData:(NSData *)additionalData error:(NSError **)error; + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAAEAD.m b/Example/Pods/NAChloride/NAChloride/NAAEAD.m new file mode 100644 index 0000000..6d35705 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAAEAD.m @@ -0,0 +1,98 @@ +// +// NAAEAD.m +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NAAEAD.h" + +#import "NAInterface.h" +#import "NASecureData.h" + +#import "sodium.h" + +@implementation NAAEAD + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)encryptChaCha20Poly1305:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key additionalData:(NSData *)additionalData error:(NSError **)error { + if (!nonce || [nonce length] != NAAEADNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + if (!additionalData) { + if (error) *error = NAError(NAErrorCodeInvalidAdditionalData, @"Invalid additional data"); + return nil; + } + + if (!key || [key length] != NAAEADKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + NSMutableData *outData = [NSMutableData dataWithLength:[data length] + NAAEADASize]; + + unsigned long long outLength; + int retval = crypto_aead_chacha20poly1305_encrypt([outData mutableBytes], &outLength, + [data bytes], [data length], + [additionalData bytes], [additionalData length], + NULL, + [nonce bytes], + [key bytes]); + + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"AEAD encrypt failed"); + return nil; + } + + return outData; +} + +- (NSData *)decryptChaCha20Poly1305:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key additionalData:(NSData *)additionalData error:(NSError **)error { + if (!nonce || [nonce length] != NAAEADNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + if (!additionalData) { + if (error) *error = NAError(NAErrorCodeInvalidAdditionalData, @"Invalid additional data"); + return nil; + } + + if (!key || [key length] != NAAEADKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + __block unsigned long long outLength; + __block int retval = -1; + NSMutableData *outData = NAData(self.secureDataEnabled, data.length, ^(void *bytes, NSUInteger length) { + retval = crypto_aead_chacha20poly1305_decrypt(bytes, &outLength, + NULL, + [data bytes], [data length], + [additionalData bytes], [additionalData length], + [nonce bytes], + [key bytes]); + }); + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeVerificationFailed, @"Verification failed"); + return nil; + } + + return [outData na_truncate:outData.length - (NSUInteger)outLength]; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAAuth.h b/Example/Pods/NAChloride/NAChloride/NAAuth.h new file mode 100644 index 0000000..86d4d50 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAAuth.h @@ -0,0 +1,24 @@ +// +// NAAuth.h +// NAChloride +// +// Created by Gabriel on 6/16/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +/*! + Computes an authentication tag for a message and a secret key, and provides a way to verify that a given tag is valid for a given message and a key. + */ +@interface NAAuth : NSObject + +- (NSData *)auth:(NSData *)data key:(NSData *)key error:(NSError **)error; + +/*! + Returns YES if verifies OK. + */ +- (BOOL)verify:(NSData *)auth data:(NSData *)data key:(NSData *)key error:(NSError **)error; + + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAAuth.m b/Example/Pods/NAChloride/NAChloride/NAAuth.m new file mode 100644 index 0000000..4570e44 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAAuth.m @@ -0,0 +1,50 @@ +// +// NAAuth.m +// NAChloride +// +// Created by Gabriel on 6/16/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NAAuth.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NAAuth + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)auth:(NSData *)data key:(NSData *)key error:(NSError **)error { + if (!key || [key length] != NAAuthKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + NSMutableData *outData = [NSMutableData dataWithLength:NAAuthSize]; + + crypto_auth([outData mutableBytes], [data bytes], [data length], [key bytes]); + return outData; +} + +- (BOOL)verify:(NSData *)auth data:(NSData *)data key:(NSData *)key error:(NSError **)error { + if (!key || [key length] != NAAuthKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return NO; + } + + if (!auth || [auth length] != NAAuthSize) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return NO; + } + + if (crypto_auth_verify([auth bytes], [data bytes], [data length], [key bytes]) != 0) { + if (error) *error = NAError(NAErrorCodeVerificationFailed, @"Verification failed"); + return NO; // Message forged! + } + return YES; +} + +@end + diff --git a/Example/Pods/NAChloride/NAChloride/NABox.h b/Example/Pods/NAChloride/NAChloride/NABox.h new file mode 100644 index 0000000..7fb1f40 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NABox.h @@ -0,0 +1,21 @@ +// +// NABox.h +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +#import "NABoxKeypair.h" + +@interface NABox : NSObject + +@property (getter=isSecureDataEnabled) BOOL secureDataEnabled; + +- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce keypair:(NABoxKeypair *)keypair error:(NSError **)error; + +- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce keypair:(NABoxKeypair *)keypair error:(NSError **)error; + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NABox.m b/Example/Pods/NAChloride/NAChloride/NABox.m new file mode 100644 index 0000000..11c0424 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NABox.m @@ -0,0 +1,78 @@ +// +// NABox.m +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NABox.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NABox + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce keypair:(NABoxKeypair *)keypair error:(NSError **)error { + if (!nonce || [nonce length] != NABoxNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + if (!keypair) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid keypair"); + return nil; + } + + NSMutableData *outData = [NSMutableData dataWithLength:[data length] + NABoxMACSize]; + + int retval = crypto_box_easy([outData mutableBytes], + [data bytes], [data length], + [nonce bytes], + [keypair.publicKey bytes], + [keypair.secretKey bytes]); + + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Encrypt (box) failed"); + return nil; + } + + return outData; +} + +- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce keypair:(NABoxKeypair *)keypair error:(NSError **)error { + if (!nonce || [nonce length] != NABoxNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + __block int retval = -1; + NSMutableData *outData = NAData(self.secureDataEnabled, data.length, ^(void *bytes, NSUInteger length) { + retval = crypto_box_open_easy(bytes, + [data bytes], [data length], + [nonce bytes], + [keypair.publicKey bytes], + [keypair.secretKey bytes]); + }); + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeVerificationFailed, @"Verification failed"); + return nil; + } + + return [outData na_truncate:NABoxMACSize]; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NABoxKeypair.h b/Example/Pods/NAChloride/NAChloride/NABoxKeypair.h new file mode 100644 index 0000000..ed32b12 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NABoxKeypair.h @@ -0,0 +1,22 @@ +// +// NABoxKeypair.h +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +#import "NASecureData.h" + +@interface NABoxKeypair : NSObject + +@property (readonly) NSData *publicKey; +@property (readonly) NASecureData *secretKey; + +- (instancetype)initWithPublicKey:(NSData *)publicKey secretKey:(NASecureData *)secretKey error:(NSError **)error; + ++ (instancetype)generate:(NSError **)error; + +@end \ No newline at end of file diff --git a/Example/Pods/NAChloride/NAChloride/NABoxKeypair.m b/Example/Pods/NAChloride/NAChloride/NABoxKeypair.m new file mode 100644 index 0000000..2855f47 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NABoxKeypair.m @@ -0,0 +1,57 @@ +// +// NABoxKeypair.m +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NABoxKeypair.h" + +#import "NAInterface.h" +#import "NASecureData.h" + +#import "sodium.h" + +@interface NABoxKeypair () +@property NSData *publicKey; +@property NASecureData *secretKey; +@end + +@implementation NABoxKeypair + ++ (void)initialize { NAChlorideInit(); } + +- (instancetype)initWithPublicKey:(NSData *)publicKey secretKey:(NASecureData *)secretKey error:(NSError **)error { + if ((self = [super init])) { + + if (!publicKey || [publicKey length] != NABoxPublicKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid public key"); + return nil; + } + + if (!secretKey || [secretKey length] != NABoxPublicKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid secret key"); + return nil; + } + + _publicKey = publicKey; + _secretKey = secretKey; + } + return self; +} + ++ (instancetype)generate:(NSError **)error { + NSMutableData *publicKey = [NSMutableData dataWithLength:NABoxPublicKeySize]; + __block int retval = -1; + NASecureData *secretKey = [NASecureData secureReadOnlyDataWithLength:NABoxSecretKeySize completion:^(void *bytes, NSUInteger length) { + retval = crypto_box_keypair([publicKey mutableBytes], bytes); + }]; + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Keypair generate failed"); + return nil; + } + return [[NABoxKeypair alloc] initWithPublicKey:publicKey secretKey:secretKey error:error]; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAChloride.h b/Example/Pods/NAChloride/NAChloride/NAChloride.h new file mode 100644 index 0000000..38c8611 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAChloride.h @@ -0,0 +1,30 @@ +// +// NAChloride.h +// NAChloride +// +// Created by Gabriel Handford on 1/16/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import + +//! Project version number for NAChloride. +FOUNDATION_EXPORT double NAChlorideVersionNumber; + +//! Project version string for NAChloride. +FOUNDATION_EXPORT const unsigned char NAChlorideVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/Example/Pods/NAChloride/NAChloride/NAInterface.h b/Example/Pods/NAChloride/NAChloride/NAInterface.h new file mode 100644 index 0000000..de866aa --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAInterface.h @@ -0,0 +1,64 @@ +// +// NAInterface.h +// NAChloride +// +// Created by Gabriel on 6/25/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import + +typedef NS_ENUM (NSInteger, NAErrorCode) { + NAErrorCodeFailure = 1, // Generic failure + + NAErrorCodeInvalidNonce = 100, + NAErrorCodeInvalidKey = 101, + NAErrorCodeInvalidData = 102, + NAErrorCodeInvalidSalt = 103, + NAErrorCodeInvalidAdditionalData = 104, // For AEAD + + NAErrorCodeVerificationFailed = 205, // Verification failed +}; + +extern const size_t NASecretBoxKeySize; +extern const size_t NASecretBoxNonceSize; +extern const size_t NASecretBoxMACSize; + +extern const size_t NABoxPublicKeySize; +extern const size_t NABoxSecretKeySize; +extern const size_t NABoxNonceSize; +extern const size_t NABoxMACSize; + +extern const size_t NAAuthKeySize; +extern const size_t NAAuthSize; + +extern const size_t NAOneTimeAuthKeySize; +extern const size_t NAOneTimeAuthSize; + +extern const size_t NAScryptSaltSize; + +extern const size_t NAStreamKeySize; +extern const size_t NAStreamNonceSize; + +extern const size_t NAXSalsaKeySize; +extern const size_t NAXSalsaNonceSize; + +extern const size_t NAAEADKeySize; +extern const size_t NAAEADNonceSize; +extern const size_t NAAEADASize; + + +// Thread safe libsodium init +void NAChlorideInit(void); + +// Don't call this directly (use NAChlorideInit). This is made accessible for testing. +int NASodiumInit(void); + + +typedef id (^NAWork)(NSError **error); +typedef void (^NACompletion)(NSError *error, id output); +void NADispatch(dispatch_queue_t queue, NAWork work, NACompletion completion); + +#define NAError(CODE, DESC) [NSError errorWithDomain:@"NAChloride" code:CODE userInfo:@{NSLocalizedDescriptionKey: DESC}]; + +typedef void (^NADataCompletion)(void *bytes, NSUInteger length); diff --git a/Example/Pods/NAChloride/NAChloride/NAInterface.m b/Example/Pods/NAChloride/NAChloride/NAInterface.m new file mode 100644 index 0000000..e69325a --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAInterface.m @@ -0,0 +1,60 @@ +// +// NAInterface.m +// NACL +// +// Created by Gabriel Handford on 1/16/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import "NAInterface.h" + +#import "sodium.h" + +const size_t NASecretBoxKeySize = crypto_secretbox_KEYBYTES; +const size_t NASecretBoxNonceSize = crypto_secretbox_NONCEBYTES; +const size_t NASecretBoxMACSize = crypto_secretbox_MACBYTES; + +const size_t NABoxPublicKeySize = crypto_box_PUBLICKEYBYTES; +const size_t NABoxSecretKeySize = crypto_box_SECRETKEYBYTES; +const size_t NABoxNonceSize = crypto_box_NONCEBYTES; +const size_t NABoxMACSize = crypto_box_MACBYTES; + +const size_t NAAuthKeySize = crypto_auth_KEYBYTES; +const size_t NAAuthSize = crypto_auth_BYTES; + +const size_t NAOneTimeAuthKeySize = crypto_onetimeauth_KEYBYTES; +const size_t NAOneTimeAuthSize = crypto_onetimeauth_BYTES; + +const size_t NAScryptSaltSize = crypto_pwhash_scryptsalsa208sha256_SALTBYTES; + +const size_t NAStreamKeySize = crypto_stream_KEYBYTES; +const size_t NAStreamNonceSize = crypto_stream_NONCEBYTES; + +const size_t NAXSalsaKeySize = crypto_stream_xsalsa20_KEYBYTES; +const size_t NAXSalsaNonceSize = crypto_stream_xsalsa20_NONCEBYTES; + +const size_t NAAEADKeySize = crypto_aead_chacha20poly1305_KEYBYTES; +const size_t NAAEADNonceSize = crypto_aead_chacha20poly1305_NPUBBYTES; +const size_t NAAEADASize = crypto_aead_chacha20poly1305_ABYTES; + + +void NAChlorideInit(void) { + static dispatch_once_t sodiumInit; + dispatch_once(&sodiumInit, ^{ NASodiumInit(); }); +} + +int NASodiumInit(void) { + return sodium_init(); +} + +void NADispatch(dispatch_queue_t queue, NAWork work, NACompletion completion) { + dispatch_async(queue, ^{ + + NSError *error = nil; + id output = work(&error); + + dispatch_async(dispatch_get_main_queue(), ^{ + completion(error, output); + }); + }); +} diff --git a/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.h b/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.h new file mode 100644 index 0000000..a294dfd --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.h @@ -0,0 +1,24 @@ +// +// NAOneTimeAuth.h +// NAChloride +// +// Created by Gabriel on 9/24/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import + +/*! + Generates a MAC for a given message and shared key using Poly1305 algorithm + (key may NOT be reused across messages). + */ +@interface NAOneTimeAuth : NSObject + +- (NSData *)auth:(NSData *)data key:(NSData *)key error:(NSError **)error; + +/*! + Returns YES if verifies OK. + */ +- (BOOL)verify:(NSData *)auth data:(NSData *)data key:(NSData *)key error:(NSError **)error; + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.m b/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.m new file mode 100644 index 0000000..51e003a --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAOneTimeAuth.m @@ -0,0 +1,49 @@ +// +// NAOneTimeAuth.m +// NAChloride +// +// Created by Gabriel on 9/24/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import "NAOneTimeAuth.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NAOneTimeAuth + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)auth:(NSData *)data key:(NSData *)key error:(NSError **)error { + if (!key || [key length] != NAOneTimeAuthKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + NSMutableData *outData = [NSMutableData dataWithLength:NAOneTimeAuthSize]; + + crypto_onetimeauth([outData mutableBytes], [data bytes], [data length], [key bytes]); + return outData; +} + +- (BOOL)verify:(NSData *)auth data:(NSData *)data key:(NSData *)key error:(NSError **)error { + if (!key || [key length] != NAOneTimeAuthKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return NO; + } + + if (!auth || [auth length] != NAOneTimeAuthSize) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return NO; + } + + if (crypto_onetimeauth_verify([auth bytes], [data bytes], [data length], [key bytes]) != 0) { + if (error) *error = NAError(NAErrorCodeVerificationFailed, @"Verification failed"); + return NO; // Message forged! + } + return YES; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NARandom.h b/Example/Pods/NAChloride/NAChloride/NARandom.h new file mode 100644 index 0000000..274521a --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NARandom.h @@ -0,0 +1,25 @@ +// +// NARandom.h +// NAChloride +// +// Created by Gabriel on 6/16/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +#import "NASecureData.h" + +@interface NARandom : NSObject + +/*! + Random data of length bytes. + */ ++ (NSData *)randomData:(NSUInteger)length; + +/*! + Random & secure data of length bytes. + */ ++ (NASecureData *)randomSecureReadOnlyData:(NSUInteger)length; + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NARandom.m b/Example/Pods/NAChloride/NAChloride/NARandom.m new file mode 100644 index 0000000..294cbc1 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NARandom.m @@ -0,0 +1,32 @@ +// +// NARandom.m +// NAChloride +// +// Created by Gabriel on 6/16/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NARandom.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NARandom + ++ (void)initialize { NAChlorideInit(); } + ++ (NSData *)randomData:(NSUInteger)length { + NSMutableData *outData = [NSMutableData dataWithLength:length]; + randombytes_buf([outData mutableBytes], length); + return outData; +} + ++ (NASecureData *)randomSecureReadOnlyData:(NSUInteger)length { + NASecureData *secureData = [NASecureData secureReadOnlyDataWithLength:length completion:^(void *bytes, NSUInteger length) { + randombytes_buf(bytes, length); + }]; + return secureData; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAScrypt.h b/Example/Pods/NAChloride/NAChloride/NAScrypt.h new file mode 100644 index 0000000..0ce5b27 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAScrypt.h @@ -0,0 +1,29 @@ +// +// NAScrypt.h +// NAChloride +// +// Created by Gabriel on 6/19/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import + +@interface NAScrypt : NSObject + +/*! + Key derivation. + + @param password Password + @param salt Must be NAScryptSaltSize + + Default opslimit is crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE. + Default memlimit is crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE. + */ ++ (NSData *)scrypt:(NSData *)password salt:(NSData *)salt error:(NSError **)error; + +/*! + Use the default scrypt. This is for advanced use only. + */ ++ (NSData *)scrypt:(NSData *)password salt:(NSData *)salt N:(uint64_t)N r:(uint32_t)r p:(uint32_t)p length:(size_t)length error:(NSError **)error; + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAScrypt.m b/Example/Pods/NAChloride/NAChloride/NAScrypt.m new file mode 100644 index 0000000..0ba7267 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAScrypt.m @@ -0,0 +1,51 @@ +// +// NAScrypt.m +// NAChloride +// +// Created by Gabriel on 6/19/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import "NAScrypt.h" +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NAScrypt + ++ (void)initialize { NAChlorideInit(); } + ++ (NSData *)scrypt:(NSData *)password salt:(NSData *)salt error:(NSError **)error { + if (!salt || [salt length] != NAScryptSaltSize) { + if (error) *error = NAError(NAErrorCodeInvalidSalt, @"Invalid salt") + return nil; + } + + NSMutableData *key = [NSMutableData dataWithLength:crypto_box_SEEDBYTES]; + + int retval = crypto_pwhash_scryptsalsa208sha256([key mutableBytes], key.length, password.bytes, password.length, salt.bytes, crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE, crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE); + + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Scrypt failed"); + return nil; + } + + return key; +} + ++ (NSData *)scrypt:(NSData *)password salt:(NSData *)salt N:(uint64_t)N r:(uint32_t)r p:(uint32_t)p length:(size_t)length error:(NSError **)error { + NSMutableData *outData = [NSMutableData dataWithLength:length]; + + int retval = crypto_pwhash_scryptsalsa208sha256_ll((uint8_t *)password.bytes, password.length, (uint8_t *)salt.bytes, salt.length, N, r, p, [outData mutableBytes], outData.length); + + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Scrypt failed"); + return nil; + } + + NSAssert([outData length] == length, @"Mismatched output length"); + + return outData; +} + +@end diff --git a/Example/Pods/NACrypto/NACrypto/NATwoFish.h b/Example/Pods/NAChloride/NAChloride/NASecretBox.h similarity index 56% rename from Example/Pods/NACrypto/NACrypto/NATwoFish.h rename to Example/Pods/NAChloride/NAChloride/NASecretBox.h index 55ff7b3..2404e04 100644 --- a/Example/Pods/NACrypto/NACrypto/NATwoFish.h +++ b/Example/Pods/NAChloride/NAChloride/NASecretBox.h @@ -1,14 +1,19 @@ // -// NATwoFish.h -// NACrypto +// NASecretBox.h +// NACL // -// Created by Gabriel on 6/20/14. +// Created by Gabriel Handford on 1/16/14. // Copyright (c) 2014 Gabriel Handford. All rights reserved. // #import -@interface NATwoFish : NSObject +/*! + Encrypts and authenticates a message using a shared key and nonce. + */ +@interface NASecretBox : NSObject + +@property (getter=isSecureDataEnabled) BOOL secureDataEnabled; - (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error; diff --git a/Example/Pods/NAChloride/NAChloride/NASecretBox.m b/Example/Pods/NAChloride/NAChloride/NASecretBox.m new file mode 100644 index 0000000..3f65709 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NASecretBox.m @@ -0,0 +1,84 @@ +// +// NASecretBox.m +// NACL +// +// Created by Gabriel Handford on 1/16/14. +// Copyright (c) 2014 Gabriel Handford. All rights reserved. +// + +#import "NASecretBox.h" + +#import "NAInterface.h" +#import "NASecureData.h" + +#import "sodium.h" + +@implementation NASecretBox + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { + if (!nonce || [nonce length] != NASecretBoxNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + if (!key || [key length] != NASecretBoxKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + // Add space for authentication tag of size MACBYTES + NSMutableData *outData = [NSMutableData dataWithLength:[data length] + NASecretBoxMACSize]; + + int retval = crypto_secretbox_easy([outData mutableBytes], + [data bytes], [data length], + [nonce bytes], + [key bytes]); + + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Encrypt (secret box) failed"); + return nil; + } + + return outData; +} + +- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { + if (!nonce || [nonce length] != NASecretBoxNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid nonce"); + return nil; + } + + if (!data) { + if (error) *error = NAError(NAErrorCodeInvalidData, @"Invalid data"); + return nil; + } + + if (!key || [key length] != NASecretBoxKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid key"); + return nil; + } + + __block int retval = -1; + NSMutableData *outData = NAData(self.secureDataEnabled, data.length, ^(void *bytes, NSUInteger length) { + retval = crypto_secretbox_open_easy(bytes, + [data bytes], [data length], + [nonce bytes], [key bytes]); + }); + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeVerificationFailed, @"Verification failed"); + return nil; + } + + // Remove MAC bytes from data + return [outData na_truncate:NASecretBoxMACSize]; +} + + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NASecureData.h b/Example/Pods/NAChloride/NAChloride/NASecureData.h new file mode 100644 index 0000000..2381429 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NASecureData.h @@ -0,0 +1,52 @@ +// +// NASecureData.h +// NAChloride +// +// Created by Gabriel on 6/19/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +#import "NAInterface.h" + +typedef NS_ENUM (NSInteger, NASecureDataProtection) { + NASecureDataProtectionReadWrite = 0, // Default no protection + NASecureDataProtectionReadOnly, + NASecureDataProtectionNoAccess, +}; + +/*! + Secure memory using libsodium. + */ +@interface NASecureData : NSMutableData // Subclassing for convienience + +@property (nonatomic) NASecureDataProtection protection; + +/*! + Secure and read only data. + */ ++ (instancetype)secureReadOnlyDataWithLength:(NSUInteger)length completion:(NADataCompletion)completion; + +/*! + Secure data is has read/write protection in this block. + */ +- (void)readWrite:(void (^)(NASecureData *secureData))completion; + +/*! + Truncate. + */ +- (NASecureData *)truncate:(NSUInteger)length; + +@end + + +// Optional building of secure NSData +NSMutableData *NAData(BOOL secure, NSUInteger length, NADataCompletion completion); + + +@interface NSMutableData (NASecureData) + +- (NSData *)na_truncate:(NSUInteger)length; + +@end \ No newline at end of file diff --git a/Example/Pods/NAChloride/NAChloride/NASecureData.m b/Example/Pods/NAChloride/NAChloride/NASecureData.m new file mode 100644 index 0000000..277d8bb --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NASecureData.m @@ -0,0 +1,100 @@ +// +// NASecureData.m +// NAChloride +// +// Created by Gabriel on 6/19/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NASecureData.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@interface NASecureData () +@property void *secureBytes; +@property NSUInteger secureLength; +@end + +@implementation NASecureData + ++ (void)initialize { NAChlorideInit(); } + +- (instancetype)initWithLength:(NSUInteger)length { + if ((self = [super init])) { + NAChlorideInit(); // It's already init'ed, but just to be safe + _secureLength = length; + _secureBytes = sodium_malloc(length); + } + return self; +} + ++ (instancetype)secureReadOnlyDataWithLength:(NSUInteger)length completion:(NADataCompletion)completion { + NASecureData *secureData = [[NASecureData alloc] initWithLength:length]; + completion(secureData.secureBytes, secureData.length); + secureData.protection = NASecureDataProtectionReadOnly; + return secureData; +} + +- (void)dealloc { + sodium_free(_secureBytes); +} + +- (void)setProtection:(NASecureDataProtection)protection { + switch (protection) { + // Keep these case statements order from most secure to least secure in case some jerk removes a break; + case NASecureDataProtectionReadWrite: sodium_mprotect_readwrite(_secureBytes); break; + case NASecureDataProtectionReadOnly: sodium_mprotect_readonly(_secureBytes); break; + case NASecureDataProtectionNoAccess: sodium_mprotect_noaccess(_secureBytes); break; + } +} + +- (NSUInteger)length { + return _secureLength; +} + +- (const void *)bytes { + return _secureBytes; +} + +- (void *)mutableBytes { + return _secureBytes; +} + +- (void)readWrite:(void (^)(NASecureData *secureData))completion { + NASecureDataProtection protection = self.protection; + self.protection = NASecureDataProtectionReadWrite; + completion(self); + self.protection = protection; +} + +- (NASecureData *)truncate:(NSUInteger)length { + if (length == 0) return self; + return [NASecureData secureReadOnlyDataWithLength:(self.length - length) completion:^(void *bytes, NSUInteger length) { + memcpy(bytes, self.bytes, length); + }]; +} + +- (NSData *)na_truncate:(NSUInteger)length { return [self truncate:length]; } + +@end + +NSMutableData *NAData(BOOL secure, NSUInteger length, NADataCompletion completion) { + if (!secure) { + NSMutableData *data = [NSMutableData dataWithLength:length]; + completion([data mutableBytes], length); + return data; + } else { + return [NASecureData secureReadOnlyDataWithLength:length completion:completion]; + } +} + +@implementation NSMutableData (NASecureData) + +- (NSData *)na_truncate:(NSUInteger)length { + if (length == 0) return self; + return [NSData dataWithBytes:self.bytes length:self.length - length]; +} + +@end diff --git a/Example/Pods/NAChloride/NAChloride/NAStream.h b/Example/Pods/NAChloride/NAChloride/NAStream.h new file mode 100644 index 0000000..4af3098 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAStream.h @@ -0,0 +1,15 @@ +// +// NAStream.h +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import + +@interface NAStream : NSObject + +- (NSData *)xor:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error; + +@end \ No newline at end of file diff --git a/Example/Pods/NAChloride/NAChloride/NAStream.m b/Example/Pods/NAChloride/NAChloride/NAStream.m new file mode 100644 index 0000000..56571b7 --- /dev/null +++ b/Example/Pods/NAChloride/NAChloride/NAStream.m @@ -0,0 +1,41 @@ +// +// NAStream.m +// NAChloride +// +// Created by Gabriel on 6/18/15. +// Copyright (c) 2015 Gabriel Handford. All rights reserved. +// + +#import "NAStream.h" + +#import "NAInterface.h" + +#import "sodium.h" + +@implementation NAStream + ++ (void)initialize { NAChlorideInit(); } + +- (NSData *)xor:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { + if (!nonce || [nonce length] < NAStreamNonceSize) { + if (error) *error = NAError(NAErrorCodeInvalidNonce, @"Invalid stream nonce"); + return nil; + } + + if (!key || [key length] != NAStreamKeySize) { + if (error) *error = NAError(NAErrorCodeInvalidKey, @"Invalid stream key"); + return nil; + } + + NSMutableData *outData = [NSMutableData dataWithLength:[data length]]; + + int retval = crypto_stream_xor([outData mutableBytes], [data bytes], [data length], [nonce bytes], [key bytes]); + if (retval != 0) { + if (error) *error = NAError(NAErrorCodeFailure, @"Stream failed"); + return nil; + } + + return outData; +} + +@end diff --git a/Example/Pods/NAChloride/README.md b/Example/Pods/NAChloride/README.md new file mode 100644 index 0000000..21d9d9e --- /dev/null +++ b/Example/Pods/NAChloride/README.md @@ -0,0 +1,189 @@ +NAChloride +=========== + +This project wraps [libsodium](https://github.com/jedisct1/libsodium) for: + +* Secure Memory +* Random Data +* Secret-Key + * Authenticated Encryption + * Authentication + * AEAD +* Public-Key + * Authenticated Encryption +* One-Time Authentication +* Password Hashing: *Scrypt* +* Stream Ciphers: *XSalsa20* + +More wrappers are coming soon. + +Do you want to work on crypto at Keybase? [We're hiring](https://keybase.io/jobs). + +If you are looking for other non-libsodium related crypto (that used to be here), see [NACrypto](https://github.com/gabriel/NACrypto). + +# Podfile + +```ruby +pod "NAChloride" +``` + +# Init + +You should call `NAChlorideInit()` to initialize on app start. It is thread safe and multiple calls are ignored. We automatically call this as well as a safety measure. + +```objc +NAChlorideInit(); +``` + +# Secure Memory + +See [Securing Memory Allocations](https://download.libsodium.org/doc/helpers/memory_management.html). + +```objc +NASecureData *secureData = [NASecureData secureReadOnlyDataWithLength:length completion:^(void *bytes, NSUInteger length) { + // Set the bytes here. After this it will be read-only. +}]; + +// After the block executes, secureData is read-only. You can set it to no access (or read/write). +// If you set it to no access and secureData.bytes is accessed, it will SIGABRT. For example, +// secureData.protection = NASecureDataProtectionNoAccess; +``` + +Some classes like NASecretBox, NABox and NAAEAD have an option to enable secureMemory (on decrypt). + +NASecureData subclasses NSMutableData for compatibility and usage with other APIs. + +# Generating Random Data + +See [Generating Random Data](https://download.libsodium.org/doc/generating_random_data/index.html). + +```objc +NSData *data = [NARandom randomData:32]; // 32 bytes of random data +NSData *data = [NARandom randomSecureReadOnlyData:32]; // 32 bytes of random, secure, read-only data +``` + +# Secret-Key Cryptography + +## Authenticated Encryption + +Encrypts and authenticates a message using a shared key and nonce. + +See [Authenticated Encryption](https://download.libsodium.org/doc/secret-key_cryptography/authenticated_encryption.html). + +```objc +NSData *key = [NARandom randomData:NASecretBoxKeySize]; +NSData *nonce = [NARandom randomData:NASecretBoxNonceSize]; +NSData *message = [@"This is a secret message" dataUsingEncoding:NSUTF8StringEncoding]; + +NASecretBox *secretBox = [[NASecretBox alloc] init]; +NSError *error = nil; +NSData *encrypted = [secretBox encrypt:message nonce:nonce key:key error:&error]; +// If an error occurred encrypted will be nil and error set + +NSData *decrypted = [secretBox decrypt:encrypted nonce:nonce key:key error:&error]; +``` + +## Authentication + +See [Authentication](https://download.libsodium.org/doc/secret-key_cryptography/secret-key_authentication.html). + +```objc +NSData *key = [NARandom randomData:NAAuthKeySize]; +NSData *message = [@"This is a message" dataUsingEncoding:NSUTF8StringEncoding]; + +NSError *error = nil; +NAAuth *auth = [[NAAuth alloc] init]; +NSData *authData = [auth auth:message key:key &error]; +BOOL verified = [auth verify:authData data:message key:key error:&error]; +``` + +## AEAD + +See [Authenticated Encryption with Additional Data](https://download.libsodium.org/doc/secret-key_cryptography/aead.html). + +```objc +NSData *key = [NARandom randomData:NAAEADKeySize]; +NSData *nonce = [NARandom randomData:NAAEADNonceSize]; +NSData *message = [@"This is a secret message" dataUsingEncoding:NSUTF8StringEncoding]; +NSData *additionalData = [@"Additional data" dataUsingEncoding:NSUTF8StringEncoding]; + +NAAEAD *AEAD = [[NAAEAD alloc] init]; +NSError *error = nil; +NSData *encryptedData = [AEAD encryptChaCha20Poly1305:message nonce:nonce key:key additionalData:additionalData error:&error]; +NSData *decryptedData = [AEAD decryptChaCha20Poly1305:encryptedData nonce:nonce key:key additionalData:additionalData error:&error]; +``` + +# Public-Key Cryptography + +## Authenticated Encryption + +See [Authenticated Encryption](https://download.libsodium.org/doc/public-key_cryptography/authenticated_encryption.html). + +```objc +NSError *error = nil; +NABoxKeypair *keypair = [NABoxKeypair generate:&error]; + +NSData *nonce = [NARandom randomData:NABoxNonceSize]; +NSData *message = [@"This is a secret message" dataUsingEncoding:NSUTF8StringEncoding]; + +NABox *box = [[NABox alloc] init]; +NSData *encryptedData = [box encrypt:message nonce:nonce keypair:keypair error:&error]; +NSData *decryptedData = [box decrypt:encryptedData nonce:nonce keypair:keypair error:&error]; +``` + +# Password Hashing + +See [Password Hashing](https://download.libsodium.org/doc/password_hashing/index.html). + +```objc +NSData *key = [@"toomanysecrets" dataUsingEncoding:NSUTF8StringEncoding]; +NSData *salt = [NARandom randomData:NAScryptSaltSize]; +NSError *error = nil; +NSData *data = [NAScrypt scrypt:key salt:salt error:&error]; +``` + +# Advanced + +## One-Time Authentication + +Generates a MAC for a given message and shared key using Poly1305 algorithm. +Key may NOT be reused across messages. + +See [One-Time Authentication](https://download.libsodium.org/doc/advanced/poly1305.html). + +```objc +NSData *key = [NARandom randomData:NAOneTimeAuthKeySize]; +NSData *message = [@"This is a message" dataUsingEncoding:NSUTF8StringEncoding]; + +NSError *error = nil; +NAOneTimeAuth *oneTimeAuth = [[NAOneTimeAuth alloc] init]; +NSData *auth = [oneTimeAuth auth:message key:key error:&error]; +BOOL verified = [oneTimeAuth verify:auth data:message key:key error:&error]; +``` + +## Stream Ciphers + +See [XSalsa20](https://download.libsodium.org/doc/advanced/xsalsa20.html). + +```objc +NSData *key = [NARandom randomData:NAStreamKeySize]; +NSData *nonce = [NARandom randomData:NAStreamNonceSize]; +NAStream *stream = [[NAStream alloc] init]; +NSError *error = nil; +NSData *encrypted = [stream xor:message nonce:nonce key:key error:&error]; +NSData *decrypted = [stream xor:encrypted nonce:nonce key:key error:&error]; +``` + +## Dispatch + +There is a helper to dispatch these operations on a queue: + +```objc +dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); +NADispatch(queue, ^id(NSError **error) { + return [NAScrypt scrypt:password salt:salt error:error]; +}, ^(NSError *error, NSData *data) { + // This is on the main queue. + // Error is set if it failed. +}); +``` diff --git a/Example/Pods/NACrypto/NACrypto/NAAES.h b/Example/Pods/NACrypto/NACrypto/NAAES.h deleted file mode 100644 index c8ec754..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAAES.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// NAAES.h -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -typedef NS_ENUM (NSUInteger, NAAESAlgorithm) { - NAAESAlgorithm256CTR = 1, -}; - -@interface NAAES : NSObject - -@property (readonly) NAAESAlgorithm algorithm; - -- (instancetype)initWithAlgorithm:(NAAESAlgorithm)algorithm; - -- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error; - -- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NAAES.m b/Example/Pods/NACrypto/NACrypto/NAAES.m deleted file mode 100644 index c7fd868..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAAES.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// NAAES.m -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NAAES.h" - -//#include "crypto_stream_aes256estream.h" -#include - -#import "NACounter.h" -#import "NANSMutableData+Utils.h" - -#define AES_256_CTR_NONCE_BYTES (16) -#define AES_256_CTR_KEY_BYTES (32) - -@implementation NAAES - -- (instancetype)initWithAlgorithm:(NAAESAlgorithm)algorithm { - if ((self = [super init])) { - _algorithm = algorithm; - } - return self; -} - -- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { - NSAssert(_algorithm == NAAESAlgorithm256CTR, @"Unsupported algorithm"); - - if (!nonce || [nonce length] < AES_256_CTR_NONCE_BYTES) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:600 userInfo:@{NSLocalizedDescriptionKey: @"Invalid AES nonce"}]; - return nil; - } - - if (!key || [key length] != AES_256_CTR_KEY_BYTES) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:601 userInfo:@{NSLocalizedDescriptionKey: @"Invalid AES key"}]; - return nil; - } - - // This libsodium version doesn't return what I expected - //int retval = crypto_stream_aes256estream_xor([outData mutableBytes], [data bytes], [data length], [nonce bytes], [key bytes]); - - NSMutableData *outData = [data mutableCopy]; - - CCCryptorStatus cryptStatus; - CCCryptorRef cryptor; - cryptStatus = CCCryptorCreateWithMode(kCCEncrypt, kCCModeCTR, kCCAlgorithmAES128, ccNoPadding, [nonce bytes], [key bytes], [key length], NULL, 0, 0, kCCModeOptionCTR_BE, &cryptor); - - if (cryptStatus != kCCSuccess) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:604 userInfo:@{NSLocalizedDescriptionKey: @"Failed AES (1)"}]; - return nil; - } - - size_t bytesEncrypted; - cryptStatus = CCCryptorUpdate(cryptor, [data bytes],[ data length], [outData mutableBytes], [outData length], &bytesEncrypted); - - if (cryptStatus != kCCSuccess) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:605 userInfo:@{NSLocalizedDescriptionKey: @"Failed AES (2)"}]; - return nil; - } - - return outData; -} - -- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { - NSAssert(_algorithm == NAAESAlgorithm256CTR, @"Unsupported algorithm"); - return [self encrypt:data nonce:nonce key:key error:error]; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NACounter.h b/Example/Pods/NACrypto/NACrypto/NACounter.h deleted file mode 100644 index 3657723..0000000 --- a/Example/Pods/NACrypto/NACrypto/NACounter.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// NACounter.h -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -// Counter for CTR mode -@interface NACounter : NSObject - -- (instancetype)initWithData:(NSData *)data; - -- (void)increment; - -- (NSData *)data; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NACounter.m b/Example/Pods/NACrypto/NACrypto/NACounter.m deleted file mode 100644 index 3522654..0000000 --- a/Example/Pods/NACrypto/NACrypto/NACounter.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// NACounter.m -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NACounter.h" - -@interface NACounter () -@property NSMutableData *counterData; -@end - -#define DEFAULT_LENGTH (16) - -@implementation NACounter - -- (instancetype)init { - NSAssert(NO, @"Use initWithData:"); - return nil; -} - -- (instancetype)initWithData:(NSData *)data { - if ((self = [super init])) { - _counterData = [data mutableCopy]; - } - return self; -} - -- (void)increment { - for (NSInteger i = [_counterData length] - 1; i >= 0; i--) { - uint8_t *bytes = [_counterData mutableBytes]; - bytes[i]++; - if (bytes[i]) - break; - } -} - -- (NSData *)data { - return _counterData; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NACrypto.h b/Example/Pods/NACrypto/NACrypto/NACrypto.h deleted file mode 100644 index 54ca388..0000000 --- a/Example/Pods/NACrypto/NACrypto/NACrypto.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// NACrypto.h -// NACrypto -// -// Created by Gabriel on 6/16/15. -// Copyright (c) 2015 Gabriel Handford. All rights reserved. -// - -#import - -//! Project version number for NACrypto. -FOUNDATION_EXPORT double NACryptoVersionNumber; - -//! Project version string for NACrypto. -FOUNDATION_EXPORT const unsigned char NACryptoVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - -#import -#import -#import - -#import -#import -#import - -#import -#import - -#import -#import -#import - diff --git a/Example/Pods/NACrypto/NACrypto/NADigest.h b/Example/Pods/NACrypto/NACrypto/NADigest.h deleted file mode 100644 index 2e0f62c..0000000 --- a/Example/Pods/NACrypto/NACrypto/NADigest.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// NADigest.h -// NACrypto -// -// Created by Gabriel on 7/3/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -typedef NS_ENUM (NSUInteger, NADigestAlgorithm) { - //NADigestAlgorithmSHA1 = 1, // SHA1 might not be secure enough - NADigestAlgorithmSHA2_224 = 2, - NADigestAlgorithmSHA2_256, - NADigestAlgorithmSHA2_384, - NADigestAlgorithmSHA2_512, - - // SHA3 - NADigestAlgorithmSHA3_256, - NADigestAlgorithmSHA3_384, - NADigestAlgorithmSHA3_512, -}; - -@interface NADigest : NSObject - -@property NADigestAlgorithm algorithm; - -- (instancetype)initWithAlgorithm:(NADigestAlgorithm)algorithm; - -- (NSData *)digestForData:(NSData *)data; - -+ (NSData *)digestForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NADigest.m b/Example/Pods/NACrypto/NACrypto/NADigest.m deleted file mode 100644 index b62641e..0000000 --- a/Example/Pods/NACrypto/NACrypto/NADigest.m +++ /dev/null @@ -1,77 +0,0 @@ -// -// NADigest.m -// NACrypto -// -// Created by Gabriel on 7/3/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NADigest.h" -#import "NASHA3.h" - -#import - -@implementation NADigest - -- (instancetype)initWithAlgorithm:(NADigestAlgorithm)algorithm { - if ((self = [super init])) { - _algorithm = algorithm; - } - return self; -} - -- (NSData *)digestForData:(NSData *)data { - return [NADigest digestForData:data algorithm:_algorithm]; -} - -+ (NSData *)digestForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm { - switch (algorithm) { - case NADigestAlgorithmSHA2_224: - case NADigestAlgorithmSHA2_256: - case NADigestAlgorithmSHA2_384: - case NADigestAlgorithmSHA2_512: - return [self _SHAForData:data algorithm:algorithm]; - - case NADigestAlgorithmSHA3_256: - return [NASHA3 SHA3ForData:data digestBitLength:256]; - case NADigestAlgorithmSHA3_384: - return [NASHA3 SHA3ForData:data digestBitLength:384]; - case NADigestAlgorithmSHA3_512: - return [NASHA3 SHA3ForData:data digestBitLength:512]; - } -} - -+ (NSData *)_SHAForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm { - switch (algorithm) { - case NADigestAlgorithmSHA2_224: { - uint8_t digest[CC_SHA224_DIGEST_LENGTH]; - CC_SHA224(data.bytes, (CC_LONG)data.length, digest); - return [[NSData alloc] initWithBytes:digest length:sizeof(digest)]; - } - - case NADigestAlgorithmSHA2_256: { - uint8_t digest[CC_SHA256_DIGEST_LENGTH]; - CC_SHA256(data.bytes, (CC_LONG)data.length, digest); - return [[NSData alloc] initWithBytes:digest length:sizeof(digest)]; - } - - case NADigestAlgorithmSHA2_384: { - uint8_t digest[CC_SHA384_DIGEST_LENGTH]; - CC_SHA384(data.bytes, (CC_LONG)data.length, digest); - return [[NSData alloc] initWithBytes:digest length:sizeof(digest)]; - } - - case NADigestAlgorithmSHA2_512: { - uint8_t digest[CC_SHA512_DIGEST_LENGTH]; - CC_SHA512(data.bytes, (CC_LONG)data.length, digest); - return [[NSData alloc] initWithBytes:digest length:sizeof(digest)]; - } - - default: { - NSAssert(NO, @"Unsupported algorithm"); - return nil; - } - } -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NAHMAC.h b/Example/Pods/NACrypto/NACrypto/NAHMAC.h deleted file mode 100644 index 0c357ff..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAHMAC.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// NAHMAC.h -// NACL -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -typedef NS_ENUM (NSUInteger, NAHMACAlgorithm) { - NAHMACAlgorithmSHA1, - NAHMACAlgorithmSHA2_224, - NAHMACAlgorithmSHA2_256, - NAHMACAlgorithmSHA2_384, - NAHMACAlgorithmSHA2_512, - - // SHA3 - NAHMACAlgorithmSHA3_256, - NAHMACAlgorithmSHA3_384, - NAHMACAlgorithmSHA3_512, -}; - -@interface NAHMAC : NSObject - -@property NAHMACAlgorithm algorithm; - -- (instancetype)initWithAlgorithm:(NAHMACAlgorithm)algorithm; - -- (NSData *)HMACForKey:(NSData *)key data:(NSData *)data; - -+ (NSData *)HMACForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NAHMAC.m b/Example/Pods/NACrypto/NACrypto/NAHMAC.m deleted file mode 100644 index 5b381ce..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAHMAC.m +++ /dev/null @@ -1,121 +0,0 @@ -// -// NAHMAC.m -// NACL -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NAHMAC.h" - -#include -#import "NANSData+Utils.h" -#import "NANSString+Utils.h" -#import "NASHA3.h" - -@implementation NAHMAC - -- (instancetype)initWithAlgorithm:(NAHMACAlgorithm)algorithm { - if ((self = [super init])) { - _algorithm = algorithm; - } - return self; -} - -- (NSData *)HMACForKey:(NSData *)key data:(NSData *)data { - return [NAHMAC HMACForKey:key data:data algorithm:_algorithm]; -} - -+ (NSData *)HMACForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm { - NSParameterAssert(key); - - switch (algorithm) { - case NAHMACAlgorithmSHA1: - case NAHMACAlgorithmSHA2_224: - case NAHMACAlgorithmSHA2_256: - case NAHMACAlgorithmSHA2_384: - case NAHMACAlgorithmSHA2_512: - return [self _HMACSHAForKey:key data:data algorithm:algorithm]; - - case NAHMACAlgorithmSHA3_256: - case NAHMACAlgorithmSHA3_384: - case NAHMACAlgorithmSHA3_512: - return [self _HMACSHA3ForKey:key data:data algorithm:algorithm]; - } -} - -+ (NSData *)_HMACSHAForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm { - CCHmacAlgorithm ccAlgorithm; - NSUInteger dataLength; - switch (algorithm) { - case NAHMACAlgorithmSHA1: ccAlgorithm = kCCHmacAlgSHA1; dataLength = CC_SHA1_DIGEST_LENGTH; break; - case NAHMACAlgorithmSHA2_224: ccAlgorithm = kCCHmacAlgSHA224; dataLength = CC_SHA224_DIGEST_LENGTH; break; - case NAHMACAlgorithmSHA2_256: ccAlgorithm = kCCHmacAlgSHA256; dataLength = CC_SHA256_DIGEST_LENGTH; break; - case NAHMACAlgorithmSHA2_384: ccAlgorithm = kCCHmacAlgSHA384; dataLength = CC_SHA384_DIGEST_LENGTH; break; - case NAHMACAlgorithmSHA2_512: ccAlgorithm = kCCHmacAlgSHA512; dataLength = CC_SHA512_DIGEST_LENGTH; break; - default: - NSAssert(NO, @"Unsupported algorithm"); - return nil; - } - - CCHmacContext ctx; - CCHmacInit(&ctx, ccAlgorithm, [key bytes], [key length]); - - CCHmacUpdate(&ctx, [data bytes], [data length]); - - NSMutableData *macOut = [NSMutableData dataWithLength:dataLength]; - CCHmacFinal(&ctx, [macOut mutableBytes]); - return macOut; -} - -+ (NSData *)_HMACSHA3ForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm { - NSUInteger blockLength = 72; - NSUInteger keyLength = [key length]; - - NSUInteger digestBitLength; - switch (algorithm) { - case NAHMACAlgorithmSHA3_256: digestBitLength = 256; break; - case NAHMACAlgorithmSHA3_384: digestBitLength = 384; break; - case NAHMACAlgorithmSHA3_512: digestBitLength = 512; break; - - default: - NSAssert(NO, @"Unsupported algorithm"); - return nil; - } - - // - // Used this as a reference: - // http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/Source/API/CommonHMAC.c - // - - uint8_t *keyP; - - if (keyLength > blockLength) { - key = [NASHA3 SHA3ForData:key digestBitLength:digestBitLength]; - keyLength = [key length]; - } - - NSMutableData *keyIn = [NSMutableData dataWithLength:blockLength]; - uint8_t *k_ipad = [keyIn mutableBytes]; - NSMutableData *keyOut = [NSMutableData dataWithLength:blockLength]; - uint8_t *k_opad = [keyOut mutableBytes]; - - keyP = (uint8_t *)[key bytes]; - /* Copy the key into k_ipad and k_opad while doing the XOR. */ - for (uint32_t byte = 0; byte < keyLength; byte++) { - k_ipad[byte] = keyP[byte] ^ 0x36; - k_opad[byte] = keyP[byte] ^ 0x5c; - } - /* Fill the remainder of k_ipad and k_opad with 0 XORed with the appropriate value. */ - if (keyLength < blockLength) { - memset(k_ipad + keyLength, 0x36, blockLength - keyLength); - memset(k_opad + keyLength, 0x5c, blockLength - keyLength); - } - - NSData *macOut = [NASHA3 SHA3ForDatas:@[keyIn, data] digestBitLength:digestBitLength]; - - /* Perform outer digest */ - return [NASHA3 SHA3ForDatas:@[keyOut, macOut] digestBitLength:digestBitLength]; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NAKeychain.h b/Example/Pods/NACrypto/NACrypto/NAKeychain.h deleted file mode 100644 index ed8a917..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAKeychain.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// NAKeychain.h -// NACL -// -// Created by Gabriel Handford on 1/21/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NAKeychain : NSObject - -+ (BOOL)addSymmetricKey:(NSData *)symmetricKey applicationLabel:(NSString *)applicationLabel tag:(NSData *)tag label:(NSString *)label; - -+ (NSData *)symmetricKeyWithApplicationLabel:(NSString *)applicationLabel; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NAKeychain.m b/Example/Pods/NACrypto/NACrypto/NAKeychain.m deleted file mode 100644 index ec60a5e..0000000 --- a/Example/Pods/NACrypto/NACrypto/NAKeychain.m +++ /dev/null @@ -1,104 +0,0 @@ -// -// NAKeychain.m -// NACL -// -// Created by Gabriel Handford on 1/21/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NAKeychain.h" - -@implementation NAKeychain - -+ (BOOL)addKey:(NSData *)key attributes:(NSDictionary *)attributes { - if (!key || attributes[(__bridge id)(kSecAttrKeyClass)] == nil || attributes[(__bridge id)(kSecAttrApplicationLabel)] == nil) { - return NO; - } - - NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey); - allAttributes[(__bridge __strong id)(kSecValueData)] = key; - if (allAttributes[(__bridge id)(kSecAttrIsPermanent)] == nil) { - allAttributes[(__bridge __strong id)(kSecAttrIsPermanent)] = @(YES); - } - - OSStatus status = SecItemAdd((__bridge CFDictionaryRef)(allAttributes), NULL); - if (status != errSecSuccess) { - return NO; - } - return YES; -} - -+ (BOOL)addSymmetricKey:(NSData *)symmetricKey applicationLabel:(NSString *)applicationLabel tag:(NSData *)tag label:(NSString *)label { - - if (!symmetricKey || !applicationLabel) { - return NO; - } - - NSMutableDictionary *attributes = [NSMutableDictionary dictionary]; - attributes[(__bridge __strong id)kSecAttrKeyClass] = (__bridge id)kSecAttrKeyClassSymmetric; - attributes[(__bridge __strong id)kSecAttrAccessible] = (__bridge id)kSecAttrAccessibleWhenUnlockedThisDeviceOnly; - attributes[(__bridge __strong id)kSecAttrApplicationLabel] = applicationLabel; - if (tag) { - attributes[(__bridge __strong id)kSecAttrApplicationTag] = tag; - } - if (label) { - attributes[(__bridge __strong id)kSecAttrLabel] = label; - } - - return [self addKey:symmetricKey attributes:attributes]; -} - -+ (NSData *)keyWithApplicationLabel:(NSString *)applicationLabel attributes:(NSDictionary *)attributes { - if (!applicationLabel || !attributes[(__bridge id)(kSecAttrKeyClass)]) { - return nil; - } - - NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes]; - allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey); - allAttributes[(__bridge __strong id)kSecAttrApplicationLabel] = applicationLabel; - if (allAttributes[(__bridge id)(kSecAttrIsPermanent)] == nil) { - allAttributes[(__bridge __strong id)(kSecAttrIsPermanent)] = @(YES); - } - allAttributes[(__bridge __strong id)(kSecReturnData)] = @(YES); - - CFTypeRef keyData = nil; - OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)allAttributes, &keyData); - if (status != errSecSuccess) { - return nil; - } - - return (__bridge_transfer NSData *)keyData; -} - -+ (NSData *)symmetricKeyWithApplicationLabel:(NSString *)applicationLabel { - NSDictionary *attributes = @{(__bridge __strong id)kSecAttrKeyClass: (__bridge id)kSecAttrKeyClassSymmetric}; - return [self keyWithApplicationLabel:applicationLabel attributes:attributes]; -} - -+ (NSDictionary *)keyAttributesWithApplicationLabel:(NSString *)applicationLabel queryAttributes:(NSDictionary *)queryAttributes { - if (!applicationLabel || !queryAttributes || !queryAttributes[(__bridge id)(kSecAttrKeyClass)]) { - return nil; - } - - NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:queryAttributes]; - allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey); - allAttributes[(__bridge __strong id)(kSecAttrApplicationLabel)] = applicationLabel; - allAttributes[(__bridge __strong id)(kSecReturnData)] = @YES; - allAttributes[(__bridge __strong id)(kSecReturnAttributes)] = @YES; - - CFTypeRef resultData = nil; - OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)allAttributes, &resultData); - if (status != errSecSuccess) { - return nil; - } - - return (__bridge_transfer NSDictionary *)resultData; -} - -+ (NSDictionary *)symmetricKeyAttributesWithApplicationLabel:(NSString *)applicationLabel { - NSDictionary *queryAttributes = @{(__bridge __strong id)(kSecAttrKeyClass): (__bridge id)(kSecAttrKeyClassSymmetric)}; - return [self keyAttributesWithApplicationLabel:applicationLabel queryAttributes:queryAttributes]; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h deleted file mode 100644 index cedc442..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// NANSData+Utils.h -// NACL -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NSData (NAUtils) - -- (NSString *)na_hexString; - -+ (NSData *)na_dataWithDatas:(NSArray *)datas; - -- (BOOL)na_isEqualConstantTime:(NSData *)data; - -- (void)na_sliceNoCopyAtIndex:(NSUInteger)index data:(NSData **)data1 data:(NSData **)data2; - -+ (NSData *)na_dataNoCopy:(NSData *)data offset:(NSUInteger)offset length:(NSUInteger)length; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m deleted file mode 100644 index fa38c4d..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m +++ /dev/null @@ -1,70 +0,0 @@ -// -// NANSData+Utils.m -// NACL -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NANSData+Utils.h" - -@implementation NSData (NAUtils) - -- (NSString *)na_hexString { - if ([self length] == 0) return nil; - NSMutableString *hexString = [NSMutableString stringWithCapacity:[self length] * 2]; - for (NSUInteger i = 0; i < [self length]; ++i) { - [hexString appendFormat:@"%02X", *((uint8_t *)[self bytes] + i)]; - } - return [hexString lowercaseString]; -} - -+ (NSData *)na_dataWithDatas:(NSArray *)datas { - NSInteger length = 0; - for (NSData *data in datas) { - length += data.length; - } - NSMutableData *combined = [NSMutableData dataWithCapacity:length]; - for (NSData *data in datas) { - [combined appendData:data]; - } - return combined; -} - -- (BOOL)na_isEqualConstantTime:(NSData *)data { - if ([self length] != [data length]) return NO; - - const uint8_t *dataPtr = (uint8_t *)self.bytes; - const uint8_t *data2Ptr = (uint8_t *)data.bytes; - - uint8_t result = 0; - for (int i = 0; i < self.length; i++) { - result = result ^ (dataPtr[i] ^ data2Ptr[i]); - } - return (result == 0); -} - -- (void)na_sliceNoCopyAtIndex:(NSUInteger)index data:(NSData **)data1 data:(NSData **)data2 { - if (index > [self length]) { - [NSException raise:NSRangeException format:@"Index is out of bounds"]; - return; - } - - if (index > 0) { - *data1 = [NSData dataWithBytesNoCopy:(uint8_t *)[self bytes] length:index freeWhenDone:NO]; - } else { - *data1 = [NSData data]; - } - - if ([self length] > index) { - *data2 = [NSData dataWithBytesNoCopy:((uint8_t *)[self bytes] + index) length:([self length] - index) freeWhenDone:NO]; - } else { - *data2 = [NSData data]; - } -} - -+ (NSData *)na_dataNoCopy:(NSData *)data offset:(NSUInteger)offset length:(NSUInteger)length { - return [NSData dataWithBytesNoCopy:((uint8_t *)[data bytes] + offset) length:length freeWhenDone:NO]; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h deleted file mode 100644 index 60dc070..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// NANSMutableData+Utils.h -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NSMutableData (NAUtils) - -- (void)na_XORWithData:(NSData *)data index:(NSInteger)index; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m deleted file mode 100644 index c02b0ca..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// NANSMutableData+Utils.m -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NANSMutableData+Utils.h" - -@implementation NSMutableData (NAUtils) - -- (void)na_XORWithData:(NSData *)data index:(NSInteger)index { - uint8_t *dataPtr = (uint8_t *)self.mutableBytes; - const uint8_t *data2Ptr = (uint8_t *)data.bytes; - - NSAssert(index < self.length, @"Invalid index"); - - for (int i = 0; i < data.length && (i + index) < self.length; i++) { - dataPtr[i + index] = dataPtr[i + index] ^ data2Ptr[i]; - } -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h deleted file mode 100644 index 2fd712d..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// NANSString+Utils.h -// NACrypto -// -// Created by Gabriel on 6/19/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NSString (NAUtils) - -- (NSData *)na_dataFromHexString; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m deleted file mode 100644 index 631035b..0000000 --- a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// NANSString+Utils.m -// NACrypto -// -// Created by Gabriel on 6/19/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NANSString+Utils.h" - -@implementation NSString (NAUtils) - -- (NSData *)na_dataFromHexString { - if ((self.length % 2) != 0) { - return nil; - } - - const char *chars = [self UTF8String]; - NSMutableData *data = [NSMutableData dataWithCapacity:self.length / 2]; - char byteChars[3] = {0, 0, 0}; - unsigned long wholeByte; - - for (int i = 0; i < self.length; i += 2) { - byteChars[0] = chars[i]; - byteChars[1] = chars[i + 1]; - wholeByte = strtoul(byteChars, NULL, 16); - [data appendBytes:&wholeByte length:1]; - } - - return data; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NASHA3.h b/Example/Pods/NACrypto/NACrypto/NASHA3.h deleted file mode 100644 index d503672..0000000 --- a/Example/Pods/NACrypto/NACrypto/NASHA3.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// NASHA3.h -// NACrypto -// -// Created by Gabriel on 6/23/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NASHA3 : NSObject - -+ (NSData *)SHA3ForData:(NSData *)data digestBitLength:(NSUInteger)digestBitLength; - -+ (NSData *)SHA3ForDatas:(NSArray *)datas digestBitLength:(NSUInteger)digestBitLength; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NASHA3.m b/Example/Pods/NACrypto/NACrypto/NASHA3.m deleted file mode 100644 index a8b98db..0000000 --- a/Example/Pods/NACrypto/NACrypto/NASHA3.m +++ /dev/null @@ -1,37 +0,0 @@ -// -// NASHA3.m -// NACrypto -// -// Created by Gabriel on 6/23/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NASHA3.h" - -#import "KeccakNISTInterface.h" - -@implementation NASHA3 - -+ (NSData *)SHA3ForData:(NSData *)data digestBitLength:(NSUInteger)digestBitLength { - return [self SHA3ForDatas:@[data] digestBitLength:digestBitLength]; -} - -+ (NSData *)SHA3ForDatas:(NSArray *)datas digestBitLength:(NSUInteger)digestBitLength { - NSUInteger digestLength = digestBitLength/8; - NSMutableData *outData = [NSMutableData dataWithLength:digestLength]; - - hashState state; - int result; - result = Init(&state, (int)digestBitLength); // Bit length - NSAssert(result == 0, @"Failed to init"); - for (NSData *data in datas) { - result = Update(&state, (const BitSequence *)[data bytes], [data length] * 8); // Bit length - NSAssert(result == 0, @"Failed to update"); - } - result = Final(&state, [outData mutableBytes]); - NSAssert(result == 0, @"Failed to finalize"); - - return outData; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NASecRandom.h b/Example/Pods/NACrypto/NACrypto/NASecRandom.h deleted file mode 100644 index e1415d3..0000000 --- a/Example/Pods/NACrypto/NACrypto/NASecRandom.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// NASecRandom.h -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import - -@interface NASecRandom : NSObject - -/*! - Generate random data. - The source code of SecRandomCopyBytes() is located at - http://opensource.apple.com/source/Security/Security-55179.11/sec/Security/SecFramework.c - - @param len Number of random bytes to generate - @result NSData of length bytes, or nil if an error occurred - */ -+ (NSData *)randomData:(size_t)numBytes error:(NSError **)error; - -/*! - Generate random base64 string. - */ -+ (NSString *)randomBase64String:(size_t)length error:(NSError **)error; - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NASecRandom.m b/Example/Pods/NACrypto/NACrypto/NASecRandom.m deleted file mode 100644 index 7f0008b..0000000 --- a/Example/Pods/NACrypto/NACrypto/NASecRandom.m +++ /dev/null @@ -1,35 +0,0 @@ -// -// NASecRandom.m -// -// Created by Gabriel Handford on 1/16/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NASecRandom.h" -#import "NANSData+Utils.h" - -#include - -@implementation NASecRandom - -+ (NSData *)randomData:(size_t)numBytes error:(NSError **)error { - NSMutableData *data = [NSMutableData dataWithLength:numBytes]; - int ret = SecRandomCopyBytes(kSecRandomDefault, numBytes, [data mutableBytes]); - if (ret == -1) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:50 userInfo:@{NSLocalizedDescriptionKey: @"Unable to generate random data"}]; - return nil; - } - return data; -} - -+ (NSString *)randomBase64String:(size_t)length error:(NSError **)error { - size_t numBytes = (size_t)ceil((length * 8.0) / 6.0); - NSData *data = [self randomData:numBytes error:error]; - if (!data) return nil; - - NSString *base64String = [data base64EncodedStringWithOptions:0]; - if ([base64String length] > length) base64String = [base64String substringToIndex:length]; - return base64String; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/NATwoFish.m b/Example/Pods/NACrypto/NACrypto/NATwoFish.m deleted file mode 100644 index d964e43..0000000 --- a/Example/Pods/NACrypto/NACrypto/NATwoFish.m +++ /dev/null @@ -1,58 +0,0 @@ -// -// NATwoFish.m -// NACrypto -// -// Created by Gabriel on 6/20/14. -// Copyright (c) 2014 Gabriel Handford. All rights reserved. -// - -#import "NATwoFish.h" - -#import "NACounter.h" -#import "NANSMutableData+Utils.h" -#import "NANSData+Utils.h" - -#include "twofish.h" - -@implementation NATwoFish - -static dispatch_once_t twoFishInit; - -- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { - if (!nonce || [nonce length] < 16) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:700 userInfo:@{NSLocalizedDescriptionKey: @"Invalid TwoFish nonce"}]; - return nil; - } - - if (!key || [key length] != 32) { - if (error) *error = [NSError errorWithDomain:@"NACrypto" code:701 userInfo:@{NSLocalizedDescriptionKey: @"Invalid TwoFish key"}]; - return nil; - } - - dispatch_once(&twoFishInit, ^{ Twofish_initialise(); }); - - Twofish_key xkey; - Twofish_prepare_key((uint8_t *)[key bytes], (int)[key length], &xkey); - - NACounter *counter = [[NACounter alloc] initWithData:nonce]; - - NSInteger blockLength = [nonce length]; - - NSMutableData *outData = [data mutableCopy]; - - NSMutableData *blockOutData = [NSMutableData dataWithLength:blockLength]; - - for (NSInteger index = 0; index < [data length]; index += blockLength) { - Twofish_encrypt(&xkey, (uint8_t *)[counter.data bytes], [blockOutData mutableBytes]); - [outData na_XORWithData:blockOutData index:index]; - [counter increment]; - } - - return outData; -} - -- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error { - return [self encrypt:data nonce:nonce key:key error:error]; -} - -@end diff --git a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c deleted file mode 100644 index 17937ec..0000000 --- a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c +++ /dev/null @@ -1,1691 +0,0 @@ -/* - * Fast, portable, and easy-to-use Twofish implementation, - * Version 0.3. - * Copyright (c) 2002 by Niels Ferguson. - * (See further down for the almost-unrestricted licensing terms.) - * - * -------------------------------------------------------------------------- - * There are two files for this implementation: - * - twofish.h, the header file. - * - twofish.c, the code file. - * - * To incorporate this code into your program you should: - * - Check the licensing terms further down in this comment. - * - Fix the two type definitions in twofish.h to suit your platform. - * - Fix a few definitions in twofish.c in the section marked - * PLATFORM FIXES. There is one important ones that affects - * functionality, and then a few definitions that you can optimise - * for efficiency but those have no effect on the functionality. - * Don't change anything else. - * - Put the code in your project and compile it. - * - * To use this library you should: - * - Call Twofish_initialise() in your program before any other function in - * this library. - * - Use Twofish_prepare_key(...) to convert a key to internal form. - * - Use Twofish_encrypt(...) and Twofish_decrypt(...) to encrypt and decrypt - * data. - * See the comments in the header file for details on these functions. - * -------------------------------------------------------------------------- - * - * There are many Twofish implementation available for free on the web. - * Most of them are hard to integrate into your own program. - * As we like people to use our cipher, I thought I would make it easier. - * Here is a free and easy-to-integrate Twofish implementation in C. - * The latest version is always available from my personal home page at - * http://niels.ferguson.net/ - * - * Integrating library code into a project is difficult because the library - * header files interfere with the project's header files and code. - * And of course the project's header files interfere with the library code. - * I've tried to resolve these problems here. - * The header file of this implementation is very light-weight. - * It contains two typedefs, a structure, and a few function declarations. - * All names it defines start with "Twofish_". - * The header file is therefore unlikely to cause problems in your project. - * The code file of this implementation doesn't need to include the header - * files of the project. There is thus no danger of the project interfering - * with all the definitions and macros of the Twofish code. - * In most situations, all you need to do is fill in a few platform-specific - * definitions in the header file and code file, - * and you should be able to run the Twofish code in your project. - * I estimate it should take you less than an hour to integrate this code - * into your project, most of it spent reading the comments telling you what - * to do. - * - * For people using C++: it is very easy to wrap this library into a - * TwofishKey class. One of the big advantages is that you can automate the - * wiping of the key material in the destructor. I have not provided a C++ - * class because the interface depends too much on the abstract base class - * you use for block ciphers in your program, which I don't know about. - * - * This implementation is designed for use on PC-class machines. It uses the - * Twofish 'full' keying option which uses large tables. Total table size is - * around 5-6 kB for static tables plus 4.5 kB for each pre-processed key. - * If you need an implementation that uses less memory, - * take a look at Brian Gladman's code on his web site: - * http://fp.gladman.plus.com/cryptography_technology/aes/ - * He has code for all AES candidates. - * His Twofish code has lots of options trading off table size vs. speed. - * You can also take a look at the optimised code by Doug Whiting on the - * Twofish web site - * http://www.counterpane.com/twofish.html - * which has loads of options. - * I believe these existing implementations are harder to re-use because they - * are not clean libraries and they impose requirements on the environment. - * This implementation is very careful to minimise those, - * and should be easier to integrate into any larger program. - * - * The default mode of this implementation is fully portable as it uses no - * behaviour not defined in the C standard. (This is harder than you think.) - * If you have any problems porting the default mode, please let me know - * so that I can fix the problem. (But only if this code is at fault, I - * don't fix compilers.) - * Most of the platform fixes are related to non-portable but faster ways - * of implementing certain functions. - * - * In general I've tried to make the code as fast as possible, at the expense - * of memory and code size. However, C does impose limits, and this - * implementation will be slower than an optimised assembler implementation. - * But beware of assembler implementations: a good Pentium implementation - * uses completely different code than a good Pentium II implementation. - * You basically have to re-write the assembly code for every generation of - * processor. Unless you are severely pressed for speed, stick with C. - * - * The initialisation routine of this implementation contains a self-test. - * If initialisation succeeds without calling the fatal routine, then - * the implementation works. I don't think you can break the implementation - * in such a way that it still passes the tests, unless you are malicious. - * In other words: if the initialisation routine returns, - * you have successfully ported the implementation. - * (Or not implemented the fatal routine properly, but that is your problem.) - * - * I'm indebted to many people who helped me in one way or another to write - * this code. During the design of Twofish and the AES process I had very - * extensive discussions of all implementation issues with various people. - * Doug Whiting in particular provided a wealth of information. The Twofish - * team spent untold hours discussion various cipher features, and their - * implementation. Brian Gladman implemented all AES candidates in C, - * and we had some fruitful discussions on how to implement Twofish in C. - * Jan Nieuwenhuizen tested this code on Linux using GCC. - * - * Now for the license: - * The author hereby grants a perpetual license to everybody to - * use this code for any purpose as long as the copyright message is included - * in the source code of this or any derived work. - * - * Yes, this means that you, your company, your club, and anyone else - * can use this code anywhere you want. You can change it and distribute it - * under the GPL, include it in your commercial product without releasing - * the source code, put it on the web, etc. - * The only thing you cannot do is remove my copyright message, - * or distribute any source code based on this implementation that does not - * include my copyright message. - * - * I appreciate a mention in the documentation or credits, - * but I understand if that is difficult to do. - * I also appreciate it if you tell me where and why you used my code. - * - * Please send any questions or comments to niels@ferguson.net - * - * Have Fun! - * - * Niels - */ - -/* - * DISCLAIMER: As I'm giving away my work for free, I'm of course not going - * to accept any liability of any form. This code, or the Twofish cipher, - * might very well be flawed; you have been warned. - * This software is provided as-is, without any kind of warrenty or - * guarantee. And that is really all you can expect when you download - * code for free from the Internet. - * - * I think it is really sad that disclaimers like this seem to be necessary. - * If people only had a little bit more common sense, and didn't come - * whining like little children every time something happens.... - */ - -/* - * Version history: - * Version 0.0, 2002-08-30 - * First written. - * Version 0.1, 2002-09-03 - * Added disclaimer. Improved self-tests. - * Version 0.2, 2002-09-09 - * Removed last non-portabilities. Default now works completely within - * the C standard. UInt32 can be larger than 32 bits without problems. - * Version 0.3, 2002-09-28 - * Bugfix: use instead of to adhere to ANSI/ISO. - * Rename BIG_ENDIAN macro to CPU_IS_BIG_ENDIAN. The gcc library - * header already defines BIG_ENDIAN, even though it is not - * supposed to. - */ - - -/* - * Minimum set of include files. - * You should not need any application-specific include files for this code. - * In fact, adding you own header files could break one of the many macros or - * functions in this file. Be very careful. - * Standard include files will probably be ok. - */ -#include /* for memset(), memcpy(), and memcmp() */ -#include "twofish.h" - - -/* - * PLATFORM FIXES - * ============== - * - * Fix the type definitions in twofish.h first! - * - * The following definitions have to be fixed for each particular platform - * you work on. If you have a multi-platform program, you no doubt have - * portable definitions that you can substitute here without changing the - * rest of the code. - */ - - -/* - * Function called if something is fatally wrong with the implementation. - * This fatal function is called when a coding error is detected in the - * Twofish implementation, or when somebody passes an obviously erroneous - * parameter to this implementation. There is not much you can do when - * the code contains bugs, so we just stop. - * - * The argument is a string. Ideally the fatal function prints this string - * as an error message. Whatever else this function does, it should never - * return. A typical implementation would stop the program completely after - * printing the error message. - * - * This default implementation is not very useful, - * but does not assume anything about your environment. - * It will at least let you know something is wrong.... - * I didn't want to include any libraries to print and error or so, - * as this makes the code much harder to integrate in a project. - * - * Note that the Twofish_fatal function may not return to the caller. - * Unfortunately this is not something the self-test can test for, - * so you have to make sure of this yourself. - * - * If you want to call an external function, be careful about including - * your own header files here. This code uses a lot of macros, and your - * header file could easily break it. Maybe the best solution is to use - * a separate extern statement for your fatal function. - */ -#define Twofish_fatal( msg ) {for(;;);} - - -/* - * The rest of the settings are not important for the functionality - * of this Twofish implementation. That is, their default settings - * work on all platforms. You can change them to improve the - * speed of the implementation on your platform. Erroneous settings - * will result in erroneous implementations, but the self-test should - * catch those. - */ - - -/* - * Macros to rotate a Twofish_UInt32 value left or right by the - * specified number of bits. This should be a 32-bit rotation, - * and not rotation of, say, 64-bit values. - * - * Every encryption or decryption operation uses 32 of these rotations, - * so it is a good idea to make these macros efficient. - * - * This fully portable definition has one piece of tricky stuff. - * The UInt32 might be larger than 32 bits, so we have to mask - * any higher bits off. The simplest way to do this is to 'and' the - * value first with 0xffffffff and then shift it right. An optimising - * compiler that has a 32-bit type can optimise this 'and' away. - * - * Unfortunately there is no portable way of writing the constant - * 0xffffffff. You don't know which suffix to use (U, or UL?) - * The UINT32_MASK definition uses a bit of trickery. Shift-left - * is only defined if the shift amount is strictly less than the size - * of the UInt32, so we can't use (1<<32). The answer it to take the value - * 2, cast it to a UInt32, shift it left 31 positions, and subtract one. - * Another example of how to make something very simple extremely difficult. - * I hate C. - * - * The rotation macros are straightforward. - * They are only applied to UInt32 values, which are _unsigned_ - * so the >> operator must do a logical shift that brings in zeroes. - * On most platforms you will only need to optimise the ROL32 macro; the - * ROR32 macro is not inefficient on an optimising compiler as all rotation - * amounts in this code are known at compile time. - * - * On many platforms there is a faster solution. - * For example, MS compilers have the __rotl and __rotr functions - * that generate x86 rotation instructions. - */ -#define UINT32_MASK ( (((UInt32)2)<<31) - 1 ) -#define ROL32( x, n ) ( (x)<<(n) | ((x) & UINT32_MASK) >> (32-(n)) ) -#define ROR32( x, n ) ROL32( (x), 32-(n) ) - - -/* - * Select data type for q-table entries. - * - * Larger entry types cost more memory (1.5 kB), and might be faster - * or slower depending on the CPU and compiler details. - * - * This choice only affects the static data size and the key setup speed. - * Functionality, expanded key size, or encryption speed are not affected. - * Define to 1 to get large q-table entries. - */ -#define LARGE_Q_TABLE 0 /* default = 0 */ - - -/* - * Method to select a single byte from a UInt32. - * WARNING: non-portable code if set; might not work on all platforms. - * - * Inside the inner loop of Twofish it is necessary to access the 4 - * individual bytes of a UInt32. This can be done using either shifts - * and masks, or memory accesses. - * - * Set to 0 to use shift and mask operations for the byte selection. - * This is more ALU intensive. It is also fully portable. - * - * Set to 1 to use memory accesses. The UInt32 is stored in memory and - * the individual bytes are read from memory one at a time. - * This solution is more memory-intensive, and not fully portable. - * It might be faster on your platform, or not. If you use this option, - * make sure you set the CPU_IS_BIG_ENDIAN flag appropriately. - * - * This macro does not affect the conversion of the inputs and outputs - * of the cipher. See the CONVERT_USING_CASTS macro for that. - */ -#define SELECT_BYTE_FROM_UINT32_IN_MEMORY 0 /* default = 0 */ - - -/* - * Method used to read the input and write the output. - * WARNING: non-portable code if set; might not work on all platforms. - * - * Twofish operates on 32-bit words. The input to the cipher is - * a byte array, as is the output. The portable method of doing the - * conversion is a bunch of rotate and mask operations, but on many - * platforms it can be done faster using a cast. - * This only works if your CPU allows UInt32 accesses to arbitrary Byte - * addresses. - * - * Set to 0 to use the shift and mask operations. This is fully - * portable. . - * - * Set to 1 to use a cast. The Byte * is cast to a UInt32 *, and a - * UInt32 is read. If necessary (as indicated by the CPU_IS_BIG_ENDIAN - * macro) the byte order in the UInt32 is swapped. The reverse is done - * to write the output of the encryption/decryption. Make sure you set - * the CPU_IS_BIG_ENDIAN flag appropriately. - * This option does not work unless a UInt32 is exactly 32 bits. - * - * This macro only changes the reading/writing of the plaintext/ciphertext. - * See the SELECT_BYTE_FROM_UINT32_IN_MEMORY to affect the way in which - * a UInt32 is split into 4 bytes for the S-box selection. - */ -#define CONVERT_USING_CASTS 0 /* default = 0 */ - - -/* - * Endianness switch. - * Only relevant if SELECT_BYTE_FROM_UINT32_IN_MEMORY or - * CONVERT_USING_CASTS is set. - * - * Set to 1 on a big-endian machine, and to 0 on a little-endian machine. - * Twofish uses the little-endian convention (least significant byte first) - * and big-endian machines (using most significant byte first) - * have to do a few conversions. - * - * CAUTION: This code has never been tested on a big-endian machine, - * because I don't have access to one. Feedback appreciated. - */ -#define CPU_IS_BIG_ENDIAN 0 - - -/* - * Macro to reverse the order of the bytes in a UInt32. - * Used to convert to little-endian on big-endian machines. - * This macro is always tested, but only used in the encryption and - * decryption if CONVERT_USING_CASTS, and CPU_IS_BIG_ENDIAN - * are both set. In other words: this macro is only speed-critical if - * both these flags have been set. - * - * This default definition of SWAP works, but on many platforms there is a - * more efficient implementation. - */ -#define BSWAP(x) ((ROL32((x),8) & 0x00ff00ff) | (ROR32((x),8) & 0xff00ff00)) - - -/* - * END OF PLATFORM FIXES - * ===================== - * - * You should not have to touch the rest of this file. - */ - - -/* - * Convert the external type names to some that are easier to use inside - * this file. I didn't want to use the names Byte and UInt32 in the - * header file, because many programs already define them and using two - * conventions at once can be very difficult. - * Don't change these definitions! Change the originals - * in twofish.h instead. - */ -/* A Byte must be an unsigned integer, 8 bits long. */ -typedef Twofish_Byte Byte; -/* A UInt32 must be an unsigned integer at least 32 bits long. */ -typedef Twofish_UInt32 UInt32; - - -/* - * Define a macro ENDIAN_CONVERT. - * - * We define a macro ENDIAN_CONVERT that performs a BSWAP on big-endian - * machines, and is the identity function on little-endian machines. - * The code then uses this macro without considering the endianness. - */ -#if CPU_IS_BIG_ENDIAN -#define ENDIAN_CONVERT(x) BSWAP(x) -#else -#define ENDIAN_CONVERT(x) (x) -#endif - - -/* - * Compute byte offset within a UInt32 stored in memory. - * - * This is only used when SELECT_BYTE_FROM_UINT32_IN_MEMORY is set. - * - * The input is the byte number 0..3, 0 for least significant. - * Note the use of sizeof() to support UInt32 types that are larger - * than 4 bytes. - */ -#if CPU_IS_BIG_ENDIAN -#define BYTE_OFFSET( n ) (sizeof(UInt32) - 1 - (n) ) -#else -#define BYTE_OFFSET( n ) (n) -#endif - - -/* - * Macro to get Byte no. b from UInt32 value X. - * We use two different definition, depending on the settings. - */ -#if SELECT_BYTE_FROM_UINT32_IN_MEMORY - /* Pick the byte from the memory in which X is stored. */ -#define SELECT_BYTE( X, b ) (((Byte *)(&(X)))[BYTE_OFFSET(b)]) -#else - /* Portable solution: Pick the byte directly from the X value. */ -#define SELECT_BYTE( X, b ) (((X) >> 8*(b)) & 0xff) -#endif - - -/* Some shorthands because we use byte selection in large formulae. */ -#define b0(X) SELECT_BYTE((X),0) -#define b1(X) SELECT_BYTE((X),1) -#define b2(X) SELECT_BYTE((X),2) -#define b3(X) SELECT_BYTE((X),3) - - -/* - * We need macros to load and store UInt32 from/to byte arrays - * using the least-significant-byte-first convention. - * - * GET32( p ) gets a UInt32 in lsb-first form from four bytes pointed to - * by p. - * PUT32( v, p ) writes the UInt32 value v at address p in lsb-first form. - */ -#if CONVERT_USING_CASTS - - /* Get UInt32 from four bytes pointed to by p. */ -#define GET32( p ) ENDIAN_CONVERT( *((UInt32 *)(p)) ) - /* Put UInt32 into four bytes pointed to by p */ -#define PUT32( v, p ) *((UInt32 *)(p)) = ENDIAN_CONVERT(v) - -#else - - /* Get UInt32 from four bytes pointed to by p. */ -#define GET32( p ) \ - ( \ - (UInt32)((p)[0]) \ - | (UInt32)((p)[1])<< 8\ - | (UInt32)((p)[2])<<16\ - | (UInt32)((p)[3])<<24\ - ) - /* Put UInt32 into four bytes pointed to by p */ -#define PUT32( v, p ) \ - (p)[0] = (Byte)(((v) ) & 0xff);\ - (p)[1] = (Byte)(((v) >> 8) & 0xff);\ - (p)[2] = (Byte)(((v) >> 16) & 0xff);\ - (p)[3] = (Byte)(((v) >> 24) & 0xff) - -#endif - - -/* - * Test the platform-specific macros. - * This function tests the macros defined so far to make sure the - * definitions are appropriate for this platform. - * If you make any mistake in the platform configuration, this should detect - * that and inform you what went wrong. - * Somewhere, someday, this is going to save somebody a lot of time, - * because misbehaving macros are hard to debug. - */ -static void test_platform() - { - /* Buffer with test values. */ - Byte buf[] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0}; - UInt32 C; - UInt32 x,y; - int i; - - /* - * Some sanity checks on the types that can't be done in compile time. - * A smart compiler will just optimise these tests away. - * The pre-processor doesn't understand different types, so we cannot - * do these checks in compile-time. - * - * I hate C. - * - * The first check in each case is to make sure the size is correct. - * The second check is to ensure that it is an unsigned type. - */ - if( ((UInt32) ((UInt32)1 << 31) == 0) || ((UInt32)-1 < 0) ) - { - Twofish_fatal( "Twofish code: Twofish_UInt32 type not suitable" ); - } - if( (sizeof( Byte ) != 1) || ((Byte)-1 < 0) ) - { - Twofish_fatal( "Twofish code: Twofish_Byte type not suitable" ); - } - - /* - * Sanity-check the endianness conversions. - * This is just an aid to find problems. If you do the endianness - * conversion macros wrong you will fail the full cipher test, - * but that does not help you find the error. - * Always make it easy to find the bugs! - * - * Detail: There is no fully portable way of writing UInt32 constants, - * as you don't know whether to use the U or UL suffix. Using only U you - * might only be allowed 16-bit constants. Using UL you might get 64-bit - * constants which cannot be stored in a UInt32 without warnings, and - * which generally behave subtly different from a true UInt32. - * As long as we're just comparing with the constant, - * we can always use the UL suffix and at worst lose some efficiency. - * I use a separate '32-bit constant' macro in most of my other code. - * - * I hate C. - * - * Start with testing GET32. We test it on all positions modulo 4 - * to make sure we can handly any position of inputs. (Some CPUs - * do not allow non-aligned accesses which we would do if you used - * the CONVERT_USING_CASTS option. - */ - if( GET32( buf ) != 0x78563412UL || GET32(buf+1) != 0x9a785634UL - || GET32( buf+2 ) != 0xbc9a7856UL || GET32(buf+3) != 0xdebc9a78UL ) - { - Twofish_fatal( "Twofish code: GET32 not implemented properly" ); - } - - /* - * We can now use GET32 to test PUT32. - * We don't test the shifted versions. If GET32 can do that then - * so should PUT32. - */ - C = GET32( buf ); - PUT32( 3*C, buf ); - if( GET32( buf ) != 0x69029c36UL ) - { - Twofish_fatal( "Twofish code: PUT32 not implemented properly" ); - } - - - /* Test ROL and ROR */ - for( i=1; i<32; i++ ) - { - /* Just a simple test. */ - x = ROR32( C, i ); - y = ROL32( C, i ); - x ^= (C>>i) ^ (C<<(32-i)); - y ^= (C<>(32-i)); - x |= y; - /* - * Now all we check is that x is zero in the least significant - * 32 bits. Using the UL suffix is safe here, as it doesn't matter - * if we get a larger type. - */ - if( (x & 0xffffffffUL) != 0 ) - { - Twofish_fatal( "Twofish ROL or ROR not properly defined." ); - } - } - - /* Test the BSWAP macro */ - if( (BSWAP(C)) != 0x12345678UL ) - { - /* - * The BSWAP macro should always work, even if you are not using it. - * A smart optimising compiler will just remove this entire test. - */ - Twofish_fatal( "BSWAP not properly defined." ); - } - - /* And we can test the b macros which use SELECT_BYTE. */ - if( (b0(C)!=0x12) || (b1(C) != 0x34) || (b2(C) != 0x56) || (b3(C) != 0x78) ) - { - /* - * There are many reasons why this could fail. - * Most likely is that CPU_IS_BIG_ENDIAN has the wrong value. - */ - Twofish_fatal( "Twofish code: SELECT_BYTE not implemented properly" ); - } - } - - -/* - * Finally, we can start on the Twofish-related code. - * You really need the Twofish specifications to understand this code. The - * best source is the Twofish book: - * "The Twofish Encryption Algorithm", by Bruce Schneier, John Kelsey, - * Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson. - * you can also use the AES submission document of Twofish, which is - * available from my list of publications on my personal web site at - * http://niels.ferguson.net/. - * - * The first thing we do is write the testing routines. This is what the - * implementation has to satisfy in the end. We only test the external - * behaviour of the implementation of course. - */ - - -/* - * Perform a single self test on a (plaintext,ciphertext,key) triple. - * Arguments: - * key array of key bytes - * key_len length of key in bytes - * p plaintext - * c ciphertext - */ -static void test_vector( Byte key[], int key_len, Byte p[16], Byte c[16] ) - { - Byte tmp[16]; /* scratch pad. */ - Twofish_key xkey; /* The expanded key */ - int i; - - - /* Prepare the key */ - Twofish_prepare_key( key, key_len, &xkey ); - - /* - * We run the test twice to ensure that the xkey structure - * is not damaged by the first encryption. - * Those are hideous bugs to find if you get them in an application. - */ - for( i=0; i<2; i++ ) - { - /* Encrypt and test */ - Twofish_encrypt( &xkey, p, tmp ); - if( memcmp( c, tmp, 16 ) != 0 ) - { - Twofish_fatal( "Twofish encryption failure" ); - } - - /* Decrypt and test */ - Twofish_decrypt( &xkey, c, tmp ); - if( memcmp( p, tmp, 16 ) != 0 ) - { - Twofish_fatal( "Twofish decryption failure" ); - } - } - - /* The test keys are not secret, so we don't need to wipe xkey. */ - } - - -/* - * Check implementation using three (key,plaintext,ciphertext) - * test vectors, one for each major key length. - * - * This is an absolutely minimal self-test. - * This routine does not test odd-sized keys. - */ -static void test_vectors() - { - /* - * We run three tests, one for each major key length. - * These test vectors come from the Twofish specification. - * One encryption and one decryption using randomish data and key - * will detect almost any error, especially since we generate the - * tables ourselves, so we don't have the problem of a single - * damaged table entry in the source. - */ - - /* 128-bit test is the I=3 case of section B.2 of the Twofish book. */ - static Byte k128[] = { - 0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32, - 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A, - }; - static Byte p128[] = { - 0xD4, 0x91, 0xDB, 0x16, 0xE7, 0xB1, 0xC3, 0x9E, - 0x86, 0xCB, 0x08, 0x6B, 0x78, 0x9F, 0x54, 0x19 - }; - static Byte c128[] = { - 0x01, 0x9F, 0x98, 0x09, 0xDE, 0x17, 0x11, 0x85, - 0x8F, 0xAA, 0xC3, 0xA3, 0xBA, 0x20, 0xFB, 0xC3 - }; - - /* 192-bit test is the I=4 case of section B.2 of the Twofish book. */ - static Byte k192[] = { - 0x88, 0xB2, 0xB2, 0x70, 0x6B, 0x10, 0x5E, 0x36, - 0xB4, 0x46, 0xBB, 0x6D, 0x73, 0x1A, 0x1E, 0x88, - 0xEF, 0xA7, 0x1F, 0x78, 0x89, 0x65, 0xBD, 0x44 - }; - static Byte p192[] = { - 0x39, 0xDA, 0x69, 0xD6, 0xBA, 0x49, 0x97, 0xD5, - 0x85, 0xB6, 0xDC, 0x07, 0x3C, 0xA3, 0x41, 0xB2 - }; - static Byte c192[] = { - 0x18, 0x2B, 0x02, 0xD8, 0x14, 0x97, 0xEA, 0x45, - 0xF9, 0xDA, 0xAC, 0xDC, 0x29, 0x19, 0x3A, 0x65 - }; - - /* 256-bit test is the I=4 case of section B.2 of the Twofish book. */ - static Byte k256[] = { - 0xD4, 0x3B, 0xB7, 0x55, 0x6E, 0xA3, 0x2E, 0x46, - 0xF2, 0xA2, 0x82, 0xB7, 0xD4, 0x5B, 0x4E, 0x0D, - 0x57, 0xFF, 0x73, 0x9D, 0x4D, 0xC9, 0x2C, 0x1B, - 0xD7, 0xFC, 0x01, 0x70, 0x0C, 0xC8, 0x21, 0x6F - }; - static Byte p256[] = { - 0x90, 0xAF, 0xE9, 0x1B, 0xB2, 0x88, 0x54, 0x4F, - 0x2C, 0x32, 0xDC, 0x23, 0x9B, 0x26, 0x35, 0xE6 - }; - static Byte c256[] = { - 0x6C, 0xB4, 0x56, 0x1C, 0x40, 0xBF, 0x0A, 0x97, - 0x05, 0x93, 0x1C, 0xB6, 0xD4, 0x08, 0xE7, 0xFA - }; - - /* Run the actual tests. */ - test_vector( k128, 16, p128, c128 ); - test_vector( k192, 24, p192, c192 ); - test_vector( k256, 32, p256, c256 ); - } - - -/* - * Perform extensive test for a single key size. - * - * Test a single key size against the test vectors from section - * B.2 in the Twofish book. This is a sequence of 49 encryptions - * and decryptions. Each plaintext is equal to the ciphertext of - * the previous encryption. The key is made up from the ciphertext - * two and three encryptions ago. Both plaintext and key start - * at the zero value. - * We should have designed a cleaner recurrence relation for - * these tests, but it is too late for that now. At least we learned - * how to do it better next time. - * For details see appendix B of the book. - * - * Arguments: - * key_len Number of bytes of key - * final_value Final plaintext value after 49 iterations - */ -static void test_sequence( int key_len, Byte final_value[] ) - { - Byte buf[ (50+3)*16 ]; /* Buffer to hold our computation values. */ - Byte tmp[16]; /* Temp for testing the decryption. */ - Twofish_key xkey; /* The expanded key */ - int i; - Byte * p; - - /* Wipe the buffer */ - memset( buf, 0, sizeof( buf ) ); - - /* - * Because the recurrence relation is done in an inconvenient manner - * we end up looping backwards over the buffer. - */ - - /* Pointer in buffer points to current plaintext. */ - p = &buf[50*16]; - for( i=1; i<50; i++ ) - { - /* - * Prepare a key. - * This automatically checks that key_len is valid. - */ - Twofish_prepare_key( p+16, key_len, &xkey ); - - /* Compute the next 16 bytes in the buffer */ - Twofish_encrypt( &xkey, p, p-16 ); - - /* Check that the decryption is correct. */ - Twofish_decrypt( &xkey, p-16, tmp ); - if( memcmp( tmp, p, 16 ) != 0 ) - { - Twofish_fatal( "Twofish decryption failure in sequence" ); - } - /* Move on to next 16 bytes in the buffer. */ - p -= 16; - } - - /* And check the final value. */ - if( memcmp( p, final_value, 16 ) != 0 ) - { - Twofish_fatal( "Twofish encryption failure in sequence" ); - } - - /* None of the data was secret, so there is no need to wipe anything. */ - } - - -/* - * Run all three sequence tests from the Twofish test vectors. - * - * This checks the most extensive test vectors currently available - * for Twofish. The data is from the Twofish book, appendix B.2. - */ -static void test_sequences() - { - static Byte r128[] = { - 0x5D, 0x9D, 0x4E, 0xEF, 0xFA, 0x91, 0x51, 0x57, - 0x55, 0x24, 0xF1, 0x15, 0x81, 0x5A, 0x12, 0xE0 - }; - static Byte r192[] = { - 0xE7, 0x54, 0x49, 0x21, 0x2B, 0xEE, 0xF9, 0xF4, - 0xA3, 0x90, 0xBD, 0x86, 0x0A, 0x64, 0x09, 0x41 - }; - static Byte r256[] = { - 0x37, 0xFE, 0x26, 0xFF, 0x1C, 0xF6, 0x61, 0x75, - 0xF5, 0xDD, 0xF4, 0xC3, 0x3B, 0x97, 0xA2, 0x05 - }; - - /* Run the three sequence test vectors */ - test_sequence( 16, r128 ); - test_sequence( 24, r192 ); - test_sequence( 32, r256 ); - } - - -/* - * Test the odd-sized keys. - * - * Every odd-sized key is equivalent to a one of 128, 192, or 256 bits. - * The equivalent key is found by padding at the end with zero bytes - * until a regular key size is reached. - * - * We just test that the key expansion routine behaves properly. - * If the expanded keys are identical, then the encryptions and decryptions - * will behave the same. - */ -static void test_odd_sized_keys() - { - Byte buf[32]; - Twofish_key xkey; - Twofish_key xkey_two; - int i; - - /* - * We first create an all-zero key to use as PRNG key. - * Normally we would not have to fill the buffer with zeroes, as we could - * just pass a zero key length to the Twofish_prepare_key function. - * However, this relies on using odd-sized keys, and those are just the - * ones we are testing here. We can't use an untested function to test - * itself. - */ - memset( buf, 0, sizeof( buf ) ); - Twofish_prepare_key( buf, 16, &xkey ); - - /* Fill buffer with pseudo-random data derived from two encryptions */ - Twofish_encrypt( &xkey, buf, buf ); - Twofish_encrypt( &xkey, buf, buf+16 ); - - /* Create all possible shorter keys that are prefixes of the buffer. */ - for( i=31; i>=0; i-- ) - { - /* Set a byte to zero. This is the new padding byte */ - buf[i] = 0; - - /* Expand the key with only i bytes of length */ - Twofish_prepare_key( buf, i, &xkey ); - - /* Expand the corresponding padded key of regular length */ - Twofish_prepare_key( buf, i<=16 ? 16 : i<= 24 ? 24 : 32, &xkey_two ); - - /* Compare the two */ - if( memcmp( &xkey, &xkey_two, sizeof( xkey ) ) != 0 ) - { - Twofish_fatal( "Odd sized keys do not expand properly" ); - } - } - - /* None of the key values are secret, so we don't need to wipe them. */ - } - - -/* - * Test the Twofish implementation. - * - * This routine runs all the self tests, in order of importance. - * It is called by the Twofish_initialise routine. - * - * In almost all applications the cost of running the self tests during - * initialisation is insignificant, especially - * compared to the time it takes to load the application from disk. - * If you are very pressed for initialisation performance, - * you could remove some of the tests. Make sure you did run them - * once in the software and hardware configuration you are using. - */ -static void self_test() - { - /* The three test vectors form an absolute minimal test set. */ - test_vectors(); - - /* - * If at all possible you should run these tests too. They take - * more time, but provide a more thorough coverage. - */ - test_sequences(); - - /* Test the odd-sized keys. */ - test_odd_sized_keys(); - } - - -/* - * And now, the actual Twofish implementation. - * - * This implementation generates all the tables during initialisation. - * I don't like large tables in the code, especially since they are easily - * damaged in the source without anyone noticing it. You need code to - * generate them anyway, and this way all the code is close together. - * Generating them in the application leads to a smaller executable - * (the code is smaller than the tables it generates) and a - * larger static memory footprint. - * - * Twofish can be implemented in many ways. I have chosen to - * use large tables with a relatively long key setup time. - * If you encrypt more than a few blocks of data it pays to pre-compute - * as much as possible. This implementation is relatively inefficient for - * applications that need to re-key every block or so. - */ - -/* - * We start with the t-tables, directly from the Twofish definition. - * These are nibble-tables, but merging them and putting them two nibbles - * in one byte is more work than it is worth. - */ -static Byte t_table[2][4][16] = { - { - {0x8,0x1,0x7,0xD,0x6,0xF,0x3,0x2,0x0,0xB,0x5,0x9,0xE,0xC,0xA,0x4}, - {0xE,0xC,0xB,0x8,0x1,0x2,0x3,0x5,0xF,0x4,0xA,0x6,0x7,0x0,0x9,0xD}, - {0xB,0xA,0x5,0xE,0x6,0xD,0x9,0x0,0xC,0x8,0xF,0x3,0x2,0x4,0x7,0x1}, - {0xD,0x7,0xF,0x4,0x1,0x2,0x6,0xE,0x9,0xB,0x3,0x0,0x8,0x5,0xC,0xA} - }, - { - {0x2,0x8,0xB,0xD,0xF,0x7,0x6,0xE,0x3,0x1,0x9,0x4,0x0,0xA,0xC,0x5}, - {0x1,0xE,0x2,0xB,0x4,0xC,0x3,0x7,0x6,0xD,0xA,0x5,0xF,0x9,0x0,0x8}, - {0x4,0xC,0x7,0x5,0x1,0x6,0x9,0xA,0x0,0xE,0xD,0x8,0x2,0xB,0x3,0xF}, - {0xB,0x9,0x5,0x1,0xC,0x3,0xD,0xE,0x6,0x4,0x7,0xF,0x2,0x0,0x8,0xA} - } -}; - - -/* A 1-bit rotation of 4-bit values. Input must be in range 0..15 */ -#define ROR4BY1( x ) (((x)>>1) | (((x)<<3) & 0x8) ) - -/* - * The q-boxes are only used during the key schedule computations. - * These are 8->8 bit lookup tables. Some CPUs prefer to have 8->32 bit - * lookup tables as it is faster to load a 32-bit value than to load an - * 8-bit value and zero the rest of the register. - * The LARGE_Q_TABLE switch allows you to choose 32-bit entries in - * the q-tables. Here we just define the Qtype which is used to store - * the entries of the q-tables. - */ -#if LARGE_Q_TABLE -typedef UInt32 Qtype; -#else -typedef Byte Qtype; -#endif - -/* - * The actual q-box tables. - * There are two q-boxes, each having 256 entries. - */ -static Qtype q_table[2][256]; - - -/* - * Now the function that converts a single t-table into a q-table. - * - * Arguments: - * t[4][16] : four 4->4bit lookup tables that define the q-box - * q[256] : output parameter: the resulting q-box as a lookup table. - */ -static void make_q_table( Byte t[4][16], Qtype q[256] ) - { - int ae,be,ao,bo; /* Some temporaries. */ - int i; - /* Loop over all input values and compute the q-box result. */ - for( i=0; i<256; i++ ) { - /* - * This is straight from the Twofish specifications. - * - * The ae variable is used for the a_i values from the specs - * with even i, and ao for the odd i's. Similarly for the b's. - */ - ae = i>>4; be = i&0xf; - ao = ae ^ be; bo = ae ^ ROR4BY1(be) ^ ((ae<<3)&8); - ae = t[0][ao]; be = t[1][bo]; - ao = ae ^ be; bo = ae ^ ROR4BY1(be) ^ ((ae<<3)&8); - ae = t[2][ao]; be = t[3][bo]; - - /* Store the result in the q-box table, the cast avoids a warning. */ - q[i] = (Qtype) ((be<<4) | ae); - } - } - - -/* - * Initialise both q-box tables. - */ -static void initialise_q_boxes() { - /* Initialise each of the q-boxes using the t-tables */ - make_q_table( t_table[0], q_table[0] ); - make_q_table( t_table[1], q_table[1] ); - } - - -/* - * Next up is the MDS matrix multiplication. - * The MDS matrix multiplication operates in the field - * GF(2)[x]/p(x) with p(x)=x^8+x^6+x^5+x^3+1. - * If you don't understand this, read a book on finite fields. You cannot - * follow the finite-field computations without some background. - * - * In this field, multiplication by x is easy: shift left one bit - * and if bit 8 is set then xor the result with 0x169. - * - * The MDS coefficients use a multiplication by 1/x, - * or rather a division by x. This is easy too: first make the - * value 'even' (i.e. bit 0 is zero) by xorring with 0x169 if necessary, - * and then shift right one position. - * Even easier: shift right and xor with 0xb4 if the lsbit was set. - * - * The MDS coefficients are 1, EF, and 5B, and we use the fact that - * EF = 1 + 1/x + 1/x^2 - * 5B = 1 + 1/x^2 - * in this field. This makes multiplication by EF and 5B relatively easy. - * - * This property is no accident, the MDS matrix was designed to allow - * this implementation technique to be used. - * - * We have four MDS tables, each mapping 8 bits to 32 bits. - * Each table performs one column of the matrix multiplication. - * As the MDS is always preceded by q-boxes, each of these tables - * also implements the q-box just previous to that column. - */ - -/* The actual MDS tables. */ -static UInt32 MDS_table[4][256]; - -/* A small table to get easy conditional access to the 0xb4 constant. */ -static UInt32 mds_poly_divx_const[] = {0,0xb4}; - -/* Function to initialise the MDS tables. */ -static void initialise_mds_tables() - { - int i; - UInt32 q,qef,q5b; /* Temporary variables. */ - - /* Loop over all 8-bit input values */ - for( i=0; i<256; i++ ) - { - /* - * To save some work during the key expansion we include the last - * of the q-box layers from the h() function in these MDS tables. - */ - - /* We first do the inputs that are mapped through the q0 table. */ - q = q_table[0][i]; - /* - * Here we divide by x, note the table to get 0xb4 only if the - * lsbit is set. - * This sets qef = (1/x)*q in the finite field - */ - qef = (q >> 1) ^ mds_poly_divx_const[ q & 1 ]; - /* - * Divide by x again, and add q to get (1+1/x^2)*q. - * Note that (1+1/x^2) = 5B in the field, and addition in the field - * is exclusive or on the bits. - */ - q5b = (qef >> 1) ^ mds_poly_divx_const[ qef & 1 ] ^ q; - /* - * Add q5b to qef to set qef = (1+1/x+1/x^2)*q. - * Again, (1+1/x+1/x^2) = EF in the field. - */ - qef ^= q5b; - - /* - * Now that we have q5b = 5B * q and qef = EF * q - * we can fill two of the entries in the MDS matrix table. - * See the Twofish specifications for the order of the constants. - */ - MDS_table[1][i] = q <<24 | q5b<<16 | qef<<8 | qef; - MDS_table[3][i] = q5b<<24 | qef<<16 | q <<8 | q5b; - - /* Now we do it all again for the two columns that have a q1 box. */ - q = q_table[1][i]; - qef = (q >> 1) ^ mds_poly_divx_const[ q & 1 ]; - q5b = (qef >> 1) ^ mds_poly_divx_const[ qef & 1 ] ^ q; - qef ^= q5b; - - /* The other two columns use the coefficient in a different order. */ - MDS_table[0][i] = qef<<24 | qef<<16 | q5b<<8 | q ; - MDS_table[2][i] = qef<<24 | q <<16 | qef<<8 | q5b; - } - } - - -/* - * The h() function is the heart of the Twofish cipher. - * It is a complicated sequence of q-box lookups, key material xors, - * and finally the MDS matrix. - * We use lots of macros to make this reasonably fast. - */ - -/* First a shorthand for the two q-tables */ -#define q0 q_table[0] -#define q1 q_table[1] - -/* - * Each macro computes one column of the h for either 2, 3, or 4 stages. - * As there are 4 columns, we have 12 macros in all. - * - * The key bytes are stored in the Byte array L at offset - * 0,1,2,3, 8,9,10,11, [16,17,18,19, [24,25,26,27]] as this is the - * order we get the bytes from the user. If you look at the Twofish - * specs, you'll see that h() is applied to the even key words or the - * odd key words. The bytes of the even words appear in this spacing, - * and those of the odd key words too. - * - * These macros are the only place where the q-boxes and the MDS table - * are used. - */ -#define H02( y, L ) MDS_table[0][q0[q0[y]^L[ 8]]^L[0]] -#define H12( y, L ) MDS_table[1][q0[q1[y]^L[ 9]]^L[1]] -#define H22( y, L ) MDS_table[2][q1[q0[y]^L[10]]^L[2]] -#define H32( y, L ) MDS_table[3][q1[q1[y]^L[11]]^L[3]] -#define H03( y, L ) H02( q1[y]^L[16], L ) -#define H13( y, L ) H12( q1[y]^L[17], L ) -#define H23( y, L ) H22( q0[y]^L[18], L ) -#define H33( y, L ) H32( q0[y]^L[19], L ) -#define H04( y, L ) H03( q1[y]^L[24], L ) -#define H14( y, L ) H13( q0[y]^L[25], L ) -#define H24( y, L ) H23( q0[y]^L[26], L ) -#define H34( y, L ) H33( q1[y]^L[27], L ) - -/* - * Now we can define the h() function given an array of key bytes. - * This function is only used in the key schedule, and not to pre-compute - * the keyed S-boxes. - * - * In the key schedule, the input is always of the form k*(1+2^8+2^16+2^24) - * so we only provide k as an argument. - * - * Arguments: - * k input to the h() function. - * L pointer to array of key bytes at - * offsets 0,1,2,3, ... 8,9,10,11, [16,17,18,19, [24,25,26,27]] - * kCycles # key cycles, 2, 3, or 4. - */ -static UInt32 h( int k, Byte L[], int kCycles ) - { - switch( kCycles ) { - /* We code all 3 cases separately for speed reasons. */ - case 2: - return H02(k,L) ^ H12(k,L) ^ H22(k,L) ^ H32(k,L); - case 3: - return H03(k,L) ^ H13(k,L) ^ H23(k,L) ^ H33(k,L); - case 4: - return H04(k,L) ^ H14(k,L) ^ H24(k,L) ^ H34(k,L); - default: - /* This is always a coding error, which is fatal. */ - Twofish_fatal( "Twofish h(): Illegal argument" ); - } - } - - -/* - * Pre-compute the keyed S-boxes. - * Fill the pre-computed S-box array in the expanded key structure. - * Each pre-computed S-box maps 8 bits to 32 bits. - * - * The S argument contains half the number of bytes of the full key, but is - * derived from the full key. (See Twofish specifications for details.) - * S has the weird byte input order used by the Hxx macros. - * - * This function takes most of the time of a key expansion. - * - * Arguments: - * S pointer to array of 8*kCycles Bytes containing the S vector. - * kCycles number of key words, must be in the set {2,3,4} - * xkey pointer to Twofish_key structure that will contain the S-boxes. - */ -static void fill_keyed_sboxes( Byte S[], int kCycles, Twofish_key * xkey ) - { - int i; - switch( kCycles ) { - /* We code all 3 cases separately for speed reasons. */ - case 2: - for( i=0; i<256; i++ ) - { - xkey->s[0][i]= H02( i, S ); - xkey->s[1][i]= H12( i, S ); - xkey->s[2][i]= H22( i, S ); - xkey->s[3][i]= H32( i, S ); - } - break; - case 3: - for( i=0; i<256; i++ ) - { - xkey->s[0][i]= H03( i, S ); - xkey->s[1][i]= H13( i, S ); - xkey->s[2][i]= H23( i, S ); - xkey->s[3][i]= H33( i, S ); - } - break; - case 4: - for( i=0; i<256; i++ ) - { - xkey->s[0][i]= H04( i, S ); - xkey->s[1][i]= H14( i, S ); - xkey->s[2][i]= H24( i, S ); - xkey->s[3][i]= H34( i, S ); - } - break; - default: - /* This is always a coding error, which is fatal. */ - Twofish_fatal( "Twofish fill_keyed_sboxes(): Illegal argument" ); - } - } - - -/* A flag to keep track of whether we have been initialised or not. */ -static int Twofish_initialised = 0; - -/* - * Initialise the Twofish implementation. - * This function must be called before any other function in the - * Twofish implementation is called. - * This routine also does some sanity checks, to make sure that - * all the macros behave, and it tests the whole cipher. - */ -void Twofish_initialise() - { - /* First test the various platform-specific definitions. */ - test_platform(); - - /* We can now generate our tables, in the right order of course. */ - initialise_q_boxes(); - initialise_mds_tables(); - - /* We're finished with the initialisation itself. */ - Twofish_initialised = 1; - - /* - * And run some tests on the whole cipher. - * Yes, you need to do this every time you start your program. - * It is called assurance; you have to be certain that your program - * still works properly. - */ - self_test(); - } - - -/* - * The Twofish key schedule uses an Reed-Solomon code matrix multiply. - * Just like the MDS matrix, the RS-matrix is designed to be easy - * to implement. Details are below in the code. - * - * These constants make it easy to compute in the finite field used - * for the RS code. - * - * We use Bytes for the RS computation, but these are automatically - * widened to unsigned integers in the expressions. Having unsigned - * ints in these tables therefore provides the fastest access. - */ -static unsigned int rs_poly_const[] = {0, 0x14d}; -static unsigned int rs_poly_div_const[] = {0, 0xa6 }; - - -/* - * Prepare a key for use in encryption and decryption. - * Like most block ciphers, Twofish allows the key schedule - * to be pre-computed given only the key. - * Twofish has a fairly 'heavy' key schedule that takes a lot of time - * to compute. The main work is pre-computing the S-boxes used in the - * encryption and decryption. We feel that this makes the cipher much - * harder to attack. The attacker doesn't even know what the S-boxes - * contain without including the entire key schedule in the analysis. - * - * Unlike most Twofish implementations, this one allows any key size from - * 0 to 32 bytes. Odd key sizes are defined for Twofish (see the - * specifications); the key is simply padded with zeroes to the next real - * key size of 16, 24, or 32 bytes. - * Each odd-sized key is thus equivalent to a single normal-sized key. - * - * Arguments: - * key array of key bytes - * key_len number of bytes in the key, must be in the range 0,...,32. - * xkey Pointer to an Twofish_key structure that will be filled - * with the internal form of the cipher key. - */ -void Twofish_prepare_key( Byte key[], int key_len, Twofish_key * xkey ) - { - /* We use a single array to store all key material in, - * to simplify the wiping of the key material at the end. - * The first 32 bytes contain the actual (padded) cipher key. - * The next 32 bytes contain the S-vector in its weird format, - * and we have 4 bytes of overrun necessary for the RS-reduction. - */ - Byte K[32+32+4]; - - int kCycles; /* # key cycles, 2,3, or 4. */ - - int i; - UInt32 A, B; /* Used to compute the round keys. */ - - Byte * kptr; /* Three pointers for the RS computation. */ - Byte * sptr; - Byte * t; - - Byte b,bx,bxx; /* Some more temporaries for the RS computation. */ - - /* Check that the Twofish implementation was initialised. */ - if( Twofish_initialised == 0 ) - { - /* - * You didn't call Twofish_initialise before calling this routine. - * This is a programming error, and therefore we call the fatal - * routine. - * - * I could of course call the initialisation routine here, - * but there are a few reasons why I don't. First of all, the - * self-tests have to be done at startup. It is no good to inform - * the user that the cipher implementation fails when he wants to - * write his data to disk in encrypted form. You have to warn him - * before he spends time typing his data. Second, the initialisation - * and self test are much slower than a single key expansion. - * Calling the initialisation here makes the performance of the - * cipher unpredictable. This can lead to really weird problems - * if you use the cipher for a real-time task. Suddenly it fails - * once in a while the first time you try to use it. Things like - * that are almost impossible to debug. - */ - Twofish_fatal( "Twofish implementation was not initialised." ); - - /* - * There is always a danger that the Twofish_fatal routine returns, - * in spite of the specifications that it should not. - * (A good programming rule: don't trust the rest of the code.) - * This would be disasterous. If the q-tables and MDS-tables have - * not been initialised, they are probably still filled with zeroes. - * Suppose the MDS-tables are all zero. The key expansion would then - * generate all-zero round keys, and all-zero s-boxes. The danger - * is that nobody would notice as the encryption function still - * mangles the input, and the decryption still 'decrypts' it, - * but now in a completely key-independent manner. - * To stop such security disasters, we use blunt force. - * If your program hangs here: fix the fatal routine! - */ - //for(;;); /* Infinite loop, which beats being insecure. */ - return; - } - - /* Check for valid key length. */ - if( key_len < 0 || key_len > 32 ) - { - /* - * This can only happen if a programmer didn't read the limitations - * on the key size. - */ - Twofish_fatal( "Twofish_prepare_key: illegal key length" ); - /* - * A return statement just in case the fatal macro returns. - * The rest of the code assumes that key_len is in range, and would - * buffer-overflow if it wasn't. - * - * Why do we still use a programming language that has problems like - * buffer overflows, when these problems were solved in 1960 with - * the development of Algol? Have we not leared anything? - */ - return; - } - - /* Pad the key with zeroes to the next suitable key length. */ - memcpy( K, key, key_len ); - memset( K+key_len, 0, sizeof(K)-key_len ); - - /* - * Compute kCycles: the number of key cycles used in the cipher. - * 2 for 128-bit keys, 3 for 192-bit keys, and 4 for 256-bit keys. - */ - kCycles = (key_len + 7) >> 3; - /* Handle the special case of very short keys: minimum 2 cycles. */ - if( kCycles < 2 ) - { - kCycles = 2; - } - - /* - * From now on we just pretend to have 8*kCycles bytes of - * key material in K. This handles all the key size cases. - */ - - /* - * We first compute the 40 expanded key words, - * formulas straight from the Twofish specifications. - */ - for( i=0; i<40; i+=2 ) - { - /* - * Due to the byte spacing expected by the h() function - * we can pick the bytes directly from the key K. - * As we use bytes, we never have the little/big endian - * problem. - * - * Note that we apply the rotation function only to simple - * variables, as the rotation macro might evaluate its argument - * more than once. - */ - A = h( i , K , kCycles ); - B = h( i+1, K+4, kCycles ); - B = ROL32( B, 8 ); - - /* Compute and store the round keys. */ - A += B; - B += A; - xkey->K[i] = A; - xkey->K[i+1] = ROL32( B, 9 ); - } - - /* Wipe variables that contained key material. */ - A=B=0; - - /* - * And now the dreaded RS multiplication that few seem to understand. - * The RS matrix is not random, and is specially designed to compute the - * RS matrix multiplication in a simple way. - * - * We work in the field GF(2)[x]/x^8+x^6+x^3+x^2+1. Note that this is a - * different field than used for the MDS matrix. - * (At least, it is a different representation because all GF(2^8) - * representations are equivalent in some form.) - * - * We take 8 consecutive bytes of the key and interpret them as - * a polynomial k_0 + k_1 y + k_2 y^2 + ... + k_7 y^7 where - * the k_i bytes are the key bytes and are elements of the finite field. - * We multiply this polynomial by y^4 and reduce it modulo - * y^4 + (x + 1/x)y^3 + (x)y^2 + (x + 1/x)y + 1. - * using straightforward polynomial modulo reduction. - * The coefficients of the result are the result of the RS - * matrix multiplication. When we wrote the Twofish specification, - * the original RS definition used the polynomials, - * but that requires much more mathematical knowledge. - * We were already using matrix multiplication in a finite field for - * the MDS matrix, so I re-wrote the RS operation as a matrix - * multiplication to reduce the difficulty of understanding it. - * Some implementors have not picked up on this simpler method of - * computing the RS operation, even though it is mentioned in the - * specifications. - * - * It is possible to perform these computations faster by using 32-bit - * word operations, but that is not portable and this is not a speed- - * critical area. - * - * We explained the 1/x computation when we did the MDS matrix. - * - * The S vector is stored in K[32..64]. - * The S vector has to be reversed, so we loop cross-wise. - * - * Note the weird byte spacing of the S-vector, to match the even - * or odd key words arrays. See the discussion at the Hxx macros for - * details. - */ - kptr = K + 8*kCycles; /* Start at end of key */ - sptr = K + 32; /* Start at start of S */ - - /* Loop over all key material */ - while( kptr > K ) - { - kptr -= 8; - /* - * Initialise the polynimial in sptr[0..12] - * The first four coefficients are 0 as we have to multiply by y^4. - * The next 8 coefficients are from the key material. - */ - memset( sptr, 0, 4 ); - memcpy( sptr+4, kptr, 8 ); - - /* - * The 12 bytes starting at sptr are now the coefficients of - * the polynomial we need to reduce. - */ - - /* Loop over the polynomial coefficients from high to low */ - t = sptr+11; - /* Keep looping until polynomial is degree 3; */ - while( t > sptr+3 ) - { - /* Pick up the highest coefficient of the poly. */ - b = *t; - - /* - * Compute x and (x+1/x) times this coefficient. - * See the MDS matrix implementation for a discussion of - * multiplication by x and 1/x. We just use different - * constants here as we are in a - * different finite field representation. - * - * These two statements set - * bx = (x) * b - * bxx= (x + 1/x) * b - */ - bx = (Byte)((b<<1) ^ rs_poly_const[ b>>7 ]); - bxx= (Byte)((b>>1) ^ rs_poly_div_const[ b&1 ] ^ bx); - - /* - * Subtract suitable multiple of - * y^4 + (x + 1/x)y^3 + (x)y^2 + (x + 1/x)y + 1 - * from the polynomial, except that we don't bother - * updating t[0] as it will become zero anyway. - */ - t[-1] ^= bxx; - t[-2] ^= bx; - t[-3] ^= bxx; - t[-4] ^= b; - - /* Go to the next coefficient. */ - t--; - } - - /* Go to next S-vector word, obeying the weird spacing rules. */ - sptr += 8; - } - - /* Wipe variables that contained key material. */ - b = bx = bxx = 0; - - /* And finally, we can compute the key-dependent S-boxes. */ - fill_keyed_sboxes( &K[32], kCycles, xkey ); - - /* Wipe array that contained key material. */ - memset( K, 0, sizeof( K ) ); - } - - -/* - * We can now start on the actual encryption and decryption code. - * As these are often speed-critical we will use a lot of macros. - */ - -/* - * The g() function is the heart of the round function. - * We have two versions of the g() function, one without an input - * rotation and one with. - * The pre-computed S-boxes make this pretty simple. - */ -#define g0(X,xkey) \ - (xkey->s[0][b0(X)]^xkey->s[1][b1(X)]^xkey->s[2][b2(X)]^xkey->s[3][b3(X)]) - -#define g1(X,xkey) \ - (xkey->s[0][b3(X)]^xkey->s[1][b0(X)]^xkey->s[2][b1(X)]^xkey->s[3][b2(X)]) - -/* - * A single round of Twofish. The A,B,C,D are the four state variables, - * T0 and T1 are temporaries, xkey is the expanded key, and r the - * round number. - * - * Note that this macro does not implement the swap at the end of the round. - */ -#define ENCRYPT_RND( A,B,C,D, T0, T1, xkey, r ) \ - T0 = g0(A,xkey); T1 = g1(B,xkey);\ - C ^= T0+T1+xkey->K[8+2*(r)]; C = ROR32(C,1);\ - D = ROL32(D,1); D ^= T0+2*T1+xkey->K[8+2*(r)+1] - -/* - * Encrypt a single cycle, consisting of two rounds. - * This avoids the swapping of the two halves. - * Parameter r is now the cycle number. - */ -#define ENCRYPT_CYCLE( A, B, C, D, T0, T1, xkey, r ) \ - ENCRYPT_RND( A,B,C,D,T0,T1,xkey,2*(r) );\ - ENCRYPT_RND( C,D,A,B,T0,T1,xkey,2*(r)+1 ) - -/* Full 16-round encryption */ -#define ENCRYPT( A,B,C,D,T0,T1,xkey ) \ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 0 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 1 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 2 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 3 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 4 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 5 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 6 );\ - ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 7 ) - -/* - * A single round of Twofish for decryption. It differs from - * ENCRYTP_RND only because of the 1-bit rotations. - */ -#define DECRYPT_RND( A,B,C,D, T0, T1, xkey, r ) \ - T0 = g0(A,xkey); T1 = g1(B,xkey);\ - C = ROL32(C,1); C ^= T0+T1+xkey->K[8+2*(r)];\ - D ^= T0+2*T1+xkey->K[8+2*(r)+1]; D = ROR32(D,1) - -/* - * Decrypt a single cycle, consisting of two rounds. - * This avoids the swapping of the two halves. - * Parameter r is now the cycle number. - */ -#define DECRYPT_CYCLE( A, B, C, D, T0, T1, xkey, r ) \ - DECRYPT_RND( A,B,C,D,T0,T1,xkey,2*(r)+1 );\ - DECRYPT_RND( C,D,A,B,T0,T1,xkey,2*(r) ) - -/* Full 16-round decryption. */ -#define DECRYPT( A,B,C,D,T0,T1, xkey ) \ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 7 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 6 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 5 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 4 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 3 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 2 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 1 );\ - DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 0 ) - -/* - * A macro to read the state from the plaintext and do the initial key xors. - * The koff argument allows us to use the same macro - * for the decryption which uses different key words at the start. - */ -#define GET_INPUT( src, A,B,C,D, xkey, koff ) \ - A = GET32(src )^xkey->K[ koff]; B = GET32(src+ 4)^xkey->K[1+koff]; \ - C = GET32(src+ 8)^xkey->K[2+koff]; D = GET32(src+12)^xkey->K[3+koff] - -/* - * Similar macro to put the ciphertext in the output buffer. - * We xor the keys into the state variables before we use the PUT32 - * macro as the macro might use its argument multiple times. - */ -#define PUT_OUTPUT( A,B,C,D, dst, xkey, koff ) \ - A ^= xkey->K[ koff]; B ^= xkey->K[1+koff]; \ - C ^= xkey->K[2+koff]; D ^= xkey->K[3+koff]; \ - PUT32( A, dst ); PUT32( B, dst+ 4 ); \ - PUT32( C, dst+8 ); PUT32( D, dst+12 ) - - -/* - * Twofish block encryption - * - * Arguments: - * xkey expanded key array - * p 16 bytes of plaintext - * c 16 bytes in which to store the ciphertext - */ -void Twofish_encrypt( Twofish_key * xkey, Byte p[16], Byte c[16]) - { - UInt32 A,B,C,D,T0,T1; /* Working variables */ - - /* Get the four plaintext words xorred with the key */ - GET_INPUT( p, A,B,C,D, xkey, 0 ); - - /* Do 8 cycles (= 16 rounds) */ - ENCRYPT( A,B,C,D,T0,T1,xkey ); - - /* Store them with the final swap and the output whitening. */ - PUT_OUTPUT( C,D,A,B, c, xkey, 4 ); - } - - -/* - * Twofish block decryption. - * - * Arguments: - * xkey expanded key array - * p 16 bytes of plaintext - * c 16 bytes in which to store the ciphertext - */ -void Twofish_decrypt( Twofish_key * xkey, Byte c[16], Byte p[16]) - { - UInt32 A,B,C,D,T0,T1; /* Working variables */ - - /* Get the four plaintext words xorred with the key */ - GET_INPUT( c, A,B,C,D, xkey, 4 ); - - /* Do 8 cycles (= 16 rounds) */ - DECRYPT( A,B,C,D,T0,T1,xkey ); - - /* Store them with the final swap and the output whitening. */ - PUT_OUTPUT( C,D,A,B, p, xkey, 0 ); - } - -/* - * Using the macros it is easy to make special routines for - * CBC mode, CTR mode etc. The only thing you might want to - * add is a XOR_PUT_OUTPUT which xors the outputs into the - * destinationa instead of overwriting the data. This requires - * a XOR_PUT32 macro as well, but that should all be trivial. - * - * I thought about including routines for the separate cipher - * modes here, but it is unclear which modes should be included, - * and each encryption or decryption routine takes up a lot of code space. - * Also, I don't have any test vectors for any cipher modes - * with Twofish. - */ diff --git a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h deleted file mode 100644 index 839be45..0000000 --- a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Fast, portable, and easy-to-use Twofish implementation, - * Version 0.3. - * Copyright (c) 2002 by Niels Ferguson. - * - * See the twofish.c file for the details of the how and why of this code. - * - * The author hereby grants a perpetual license to everybody to - * use this code for any purpose as long as the copyright message is included - * in the source code of this or any derived work. - */ - -#include - -/* - * PLATFORM FIXES - * ============== - * - * The following definitions have to be fixed for each particular platform - * you work on. If you have a multi-platform program, you no doubt have - * portable definitions that you can substitute here without changing - * the rest of the code. - * - * The defaults provided here should work on most PC compilers. - */ - - -/* - * A Twofish_Byte must be an unsigned 8-bit integer. - * It must also be the elementary data size of your C platform, - * i.e. sizeof( Twofish_Byte ) == 1. - */ -typedef uint8_t Twofish_Byte; - -/* - * A Twofish_UInt32 must be an unsigned integer of at least 32 bits. - * - * This type is used only internally in the implementation, so ideally it - * would not appear in the header file, but it is used inside the - * Twofish_key structure which means it has to be included here. - */ -typedef uint32_t Twofish_UInt32; - - -/* - * END OF PLATFORM FIXES - * ===================== - * - * You should not have to touch the rest of this file, but the code - * in twofish.c has a few things you need to fix too. - */ - - -/* - * Structure that contains a prepared Twofish key. - * A cipher key is used in two stages. In the first stage it is converted - * form the original form to an internal representation. - * This internal form is then used to encrypt and decrypt data. - * This structure contains the internal form. It is rather large: 4256 bytes - * on a platform with 32-bit unsigned values. - * - * Treat this as an opague structure, and don't try to manipulate the - * elements in it. I wish I could hide the inside of the structure, - * but C doesn't allow that. - */ -typedef - struct - { - Twofish_UInt32 s[4][256]; /* pre-computed S-boxes */ - Twofish_UInt32 K[40]; /* Round key words */ - } - Twofish_key; - - -/* - * Initialise and test the Twofish implementation. - * - * This function MUST be called before any other function in the - * Twofish implementation is called. - * It only needs to be called once. - * - * Apart from initialising the implementation it performs a self test. - * If the Twofish_fatal function is not called, the code passed the test. - * (See the twofish.c file for details on the Twofish_fatal function.) - */ -extern void Twofish_initialise(); - - -/* - * Convert a cipher key to the internal form used for - * encryption and decryption. - * - * The cipher key is an array of bytes; the Twofish_Byte type is - * defined above to a type suitable on your platform. - * - * Any key must be converted to an internal form in the Twofisk_key structure - * before it can be used. - * The encryption and decryption functions only work with the internal form. - * The conversion to internal form need only be done once for each key value. - * - * Be sure to wipe all key storage, including the Twofish_key structure, - * once you are done with the key data. - * A simple memset( TwofishKey, 0, sizeof( TwofishKey ) ) will do just fine. - * - * Unlike most implementations, this one allows any key size from 0 bytes - * to 32 bytes. According to the Twofish specifications, - * irregular key sizes are handled by padding the key with zeroes at the end - * until the key size is 16, 24, or 32 bytes, whichever - * comes first. Note that each key of irregular size is equivalent to exactly - * one key of 16, 24, or 32 bytes. - * - * WARNING: Short keys have low entropy, and result in low security. - * Anything less than 8 bytes is utterly insecure. For good security - * use at least 16 bytes. I prefer to use 32-byte keys to prevent - * any collision attacks on the key. - * - * The key length argument key_len must be in the proper range. - * If key_len is not in the range 0,...,32 this routine attempts to generate - * a fatal error (depending on the code environment), - * and at best (or worst) returns without having done anything. - * - * Arguments: - * key Array of key bytes - * key_len Number of key bytes, must be in the range 0,1,...,32. - * xkey Pointer to an Twofish_key structure that will be filled - * with the internal form of the cipher key. - */ -extern void Twofish_prepare_key( - Twofish_Byte key[], - int key_len, - Twofish_key * xkey - ); - - -/* - * Encrypt a single block of data. - * - * This function encrypts a single block of 16 bytes of data. - * If you want to encrypt a larger or variable-length message, - * you will have to use a cipher mode, such as CBC or CTR. - * These are outside the scope of this implementation. - * - * The xkey structure is not modified by this routine, and can be - * used for further encryption and decryption operations. - * - * Arguments: - * xkey pointer to Twofish_key, internal form of the key - * produces by Twofish_prepare_key() - * p Plaintext to be encrypted - * c Place to store the ciphertext - */ -extern void Twofish_encrypt( - Twofish_key * xkey, - Twofish_Byte p[16], - Twofish_Byte c[16] - ); - - -/* - * Decrypt a single block of data. - * - * This function decrypts a single block of 16 bytes of data. - * If you want to decrypt a larger or variable-length message, - * you will have to use a cipher mode, such as CBC or CTR. - * These are outside the scope of this implementation. - * - * The xkey structure is not modified by this routine, and can be - * used for further encryption and decryption operations. - * - * Arguments: - * xkey pointer to Twofish_key, internal form of the key - * produces by Twofish_prepare_key() - * c Ciphertext to be decrypted - * p Place to store the plaintext - */ -extern void Twofish_decrypt( - Twofish_key * xkey, - Twofish_Byte c[16], - Twofish_Byte p[16] - ); diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h deleted file mode 100644 index b59db4c..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h +++ /dev/null @@ -1,562 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by Ronny Van Keer, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#include "KeccakF-1600-interface.h" - -#ifndef _Keccak1600_32_rvk_h_ -#define _Keccak1600_32_rvk_h_ - -static const UINT32 KeccakF1600RoundConstants_int2[2*24] = -{ - 0x00000001UL, 0x00000000UL, - 0x00000000UL, 0x00000089UL, - 0x00000000UL, 0x8000008bUL, - 0x00000000UL, 0x80008080UL, - 0x00000001UL, 0x0000008bUL, - 0x00000001UL, 0x00008000UL, - 0x00000001UL, 0x80008088UL, - 0x00000001UL, 0x80000082UL, - 0x00000000UL, 0x0000000bUL, - 0x00000000UL, 0x0000000aUL, - 0x00000001UL, 0x00008082UL, - 0x00000000UL, 0x00008003UL, - 0x00000001UL, 0x0000808bUL, - 0x00000001UL, 0x8000000bUL, - 0x00000001UL, 0x8000008aUL, - 0x00000001UL, 0x80000081UL, - 0x00000000UL, 0x80000081UL, - 0x00000000UL, 0x80000008UL, - 0x00000000UL, 0x00000083UL, - 0x00000000UL, 0x80008003UL, - 0x00000001UL, 0x80008088UL, - 0x00000000UL, 0x80000088UL, - 0x00000001UL, 0x00008000UL, - 0x00000000UL, 0x80008082UL -}; - -#undef rounds - -#define rounds \ -{ \ - UINT32 Da0, De0, Di0, Do0, Du0; \ - UINT32 Da1, De1, Di1, Do1, Du1; \ - UINT32 Ba, Be, Bi, Bo, Bu; \ - UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ - UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ - UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ - UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ - UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ - UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ - UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ - UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ - UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ - UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ - UINT32 Cw, Cx, Cy, Cz; \ - UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ - UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ - UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ - UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ - UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ - UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ - UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ - UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ - UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ - UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ - const UINT32 * pRoundConstants = KeccakF1600RoundConstants_int2; \ - UINT32 i; \ -\ - copyFromState(A, state) \ -\ - for( i = 12; i != 0; --i ) { \ - Cx = Abu0^Agu0^Aku0^Amu0^Asu0; \ - Du1 = Abe1^Age1^Ake1^Ame1^Ase1; \ - Da0 = Cx^ROL32(Du1, 1); \ - Cz = Abu1^Agu1^Aku1^Amu1^Asu1; \ - Du0 = Abe0^Age0^Ake0^Ame0^Ase0; \ - Da1 = Cz^Du0; \ -\ - Cw = Abi0^Agi0^Aki0^Ami0^Asi0; \ - Do0 = Cw^ROL32(Cz, 1); \ - Cy = Abi1^Agi1^Aki1^Ami1^Asi1; \ - Do1 = Cy^Cx; \ -\ - Cx = Aba0^Aga0^Aka0^Ama0^Asa0; \ - De0 = Cx^ROL32(Cy, 1); \ - Cz = Aba1^Aga1^Aka1^Ama1^Asa1; \ - De1 = Cz^Cw; \ -\ - Cy = Abo1^Ago1^Ako1^Amo1^Aso1; \ - Di0 = Du0^ROL32(Cy, 1); \ - Cw = Abo0^Ago0^Ako0^Amo0^Aso0; \ - Di1 = Du1^Cw; \ -\ - Du0 = Cw^ROL32(Cz, 1); \ - Du1 = Cy^Cx; \ -\ - Aba0 ^= Da0; \ - Ba = Aba0; \ - Age0 ^= De0; \ - Be = ROL32(Age0, 22); \ - Aki1 ^= Di1; \ - Bi = ROL32(Aki1, 22); \ - Amo1 ^= Do1; \ - Bo = ROL32(Amo1, 11); \ - Asu0 ^= Du0; \ - Bu = ROL32(Asu0, 7); \ - Eba0 = Ba ^((~Be)& Bi ) ^ *(pRoundConstants++); \ - Ebe0 = Be ^((~Bi)& Bo ); \ - Ebi0 = Bi ^((~Bo)& Bu ); \ - Ebo0 = Bo ^((~Bu)& Ba ); \ - Ebu0 = Bu ^((~Ba)& Be ); \ -\ - Abo0 ^= Do0; \ - Ba = ROL32(Abo0, 14); \ - Agu0 ^= Du0; \ - Be = ROL32(Agu0, 10); \ - Aka1 ^= Da1; \ - Bi = ROL32(Aka1, 2); \ - Ame1 ^= De1; \ - Bo = ROL32(Ame1, 23); \ - Asi1 ^= Di1; \ - Bu = ROL32(Asi1, 31); \ - Ega0 = Ba ^((~Be)& Bi ); \ - Ege0 = Be ^((~Bi)& Bo ); \ - Egi0 = Bi ^((~Bo)& Bu ); \ - Ego0 = Bo ^((~Bu)& Ba ); \ - Egu0 = Bu ^((~Ba)& Be ); \ -\ - Abe1 ^= De1; \ - Ba = ROL32(Abe1, 1); \ - Agi0 ^= Di0; \ - Be = ROL32(Agi0, 3); \ - Ako1 ^= Do1; \ - Bi = ROL32(Ako1, 13); \ - Amu0 ^= Du0; \ - Bo = ROL32(Amu0, 4); \ - Asa0 ^= Da0; \ - Bu = ROL32(Asa0, 9); \ - Eka0 = Ba ^((~Be)& Bi ); \ - Eke0 = Be ^((~Bi)& Bo ); \ - Eki0 = Bi ^((~Bo)& Bu ); \ - Eko0 = Bo ^((~Bu)& Ba ); \ - Eku0 = Bu ^((~Ba)& Be ); \ -\ - Abu1 ^= Du1; \ - Ba = ROL32(Abu1, 14); \ - Aga0 ^= Da0; \ - Be = ROL32(Aga0, 18); \ - Ake0 ^= De0; \ - Bi = ROL32(Ake0, 5); \ - Ami1 ^= Di1; \ - Bo = ROL32(Ami1, 8); \ - Aso0 ^= Do0; \ - Bu = ROL32(Aso0, 28); \ - Ema0 = Ba ^((~Be)& Bi ); \ - Eme0 = Be ^((~Bi)& Bo ); \ - Emi0 = Bi ^((~Bo)& Bu ); \ - Emo0 = Bo ^((~Bu)& Ba ); \ - Emu0 = Bu ^((~Ba)& Be ); \ -\ - Abi0 ^= Di0; \ - Ba = ROL32(Abi0, 31); \ - Ago1 ^= Do1; \ - Be = ROL32(Ago1, 28); \ - Aku1 ^= Du1; \ - Bi = ROL32(Aku1, 20); \ - Ama1 ^= Da1; \ - Bo = ROL32(Ama1, 21); \ - Ase0 ^= De0; \ - Bu = ROL32(Ase0, 1); \ - Esa0 = Ba ^((~Be)& Bi ); \ - Ese0 = Be ^((~Bi)& Bo ); \ - Esi0 = Bi ^((~Bo)& Bu ); \ - Eso0 = Bo ^((~Bu)& Ba ); \ - Esu0 = Bu ^((~Ba)& Be ); \ -\ - Aba1 ^= Da1; \ - Ba = Aba1; \ - Age1 ^= De1; \ - Be = ROL32(Age1, 22); \ - Aki0 ^= Di0; \ - Bi = ROL32(Aki0, 21); \ - Amo0 ^= Do0; \ - Bo = ROL32(Amo0, 10); \ - Asu1 ^= Du1; \ - Bu = ROL32(Asu1, 7); \ - Eba1 = Ba ^((~Be)& Bi ); \ - Eba1 ^= *(pRoundConstants++); \ - Ebe1 = Be ^((~Bi)& Bo ); \ - Ebi1 = Bi ^((~Bo)& Bu ); \ - Ebo1 = Bo ^((~Bu)& Ba ); \ - Ebu1 = Bu ^((~Ba)& Be ); \ -\ - Abo1 ^= Do1; \ - Ba = ROL32(Abo1, 14); \ - Agu1 ^= Du1; \ - Be = ROL32(Agu1, 10); \ - Aka0 ^= Da0; \ - Bi = ROL32(Aka0, 1); \ - Ame0 ^= De0; \ - Bo = ROL32(Ame0, 22); \ - Asi0 ^= Di0; \ - Bu = ROL32(Asi0, 30); \ - Ega1 = Ba ^((~Be)& Bi ); \ - Ege1 = Be ^((~Bi)& Bo ); \ - Egi1 = Bi ^((~Bo)& Bu ); \ - Ego1 = Bo ^((~Bu)& Ba ); \ - Egu1 = Bu ^((~Ba)& Be ); \ -\ - Abe0 ^= De0; \ - Ba = Abe0; \ - Agi1 ^= Di1; \ - Be = ROL32(Agi1, 3); \ - Ako0 ^= Do0; \ - Bi = ROL32(Ako0, 12); \ - Amu1 ^= Du1; \ - Bo = ROL32(Amu1, 4); \ - Asa1 ^= Da1; \ - Bu = ROL32(Asa1, 9); \ - Eka1 = Ba ^((~Be)& Bi ); \ - Eke1 = Be ^((~Bi)& Bo ); \ - Eki1 = Bi ^((~Bo)& Bu ); \ - Eko1 = Bo ^((~Bu)& Ba ); \ - Eku1 = Bu ^((~Ba)& Be ); \ -\ - Abu0 ^= Du0; \ - Ba = ROL32(Abu0, 13); \ - Aga1 ^= Da1; \ - Be = ROL32(Aga1, 18); \ - Ake1 ^= De1; \ - Bi = ROL32(Ake1, 5); \ - Ami0 ^= Di0; \ - Bo = ROL32(Ami0, 7); \ - Aso1 ^= Do1; \ - Bu = ROL32(Aso1, 28); \ - Ema1 = Ba ^((~Be)& Bi ); \ - Eme1 = Be ^((~Bi)& Bo ); \ - Emi1 = Bi ^((~Bo)& Bu ); \ - Emo1 = Bo ^((~Bu)& Ba ); \ - Emu1 = Bu ^((~Ba)& Be ); \ -\ - Abi1 ^= Di1; \ - Ba = ROL32(Abi1, 31); \ - Ago0 ^= Do0; \ - Be = ROL32(Ago0, 27); \ - Aku0 ^= Du0; \ - Bi = ROL32(Aku0, 19); \ - Ama0 ^= Da0; \ - Bo = ROL32(Ama0, 20); \ - Ase1 ^= De1; \ - Bu = ROL32(Ase1, 1); \ - Esa1 = Ba ^((~Be)& Bi ); \ - Ese1 = Be ^((~Bi)& Bo ); \ - Esi1 = Bi ^((~Bo)& Bu ); \ - Eso1 = Bo ^((~Bu)& Ba ); \ - Esu1 = Bu ^((~Ba)& Be ); \ -\ - Cx = Ebu0^Egu0^Eku0^Emu0^Esu0; \ - Du1 = Ebe1^Ege1^Eke1^Eme1^Ese1; \ - Da0 = Cx^ROL32(Du1, 1); \ - Cz = Ebu1^Egu1^Eku1^Emu1^Esu1; \ - Du0 = Ebe0^Ege0^Eke0^Eme0^Ese0; \ - Da1 = Cz^Du0; \ -\ - Cw = Ebi0^Egi0^Eki0^Emi0^Esi0; \ - Do0 = Cw^ROL32(Cz, 1); \ - Cy = Ebi1^Egi1^Eki1^Emi1^Esi1; \ - Do1 = Cy^Cx; \ -\ - Cx = Eba0^Ega0^Eka0^Ema0^Esa0; \ - De0 = Cx^ROL32(Cy, 1); \ - Cz = Eba1^Ega1^Eka1^Ema1^Esa1; \ - De1 = Cz^Cw; \ -\ - Cy = Ebo1^Ego1^Eko1^Emo1^Eso1; \ - Di0 = Du0^ROL32(Cy, 1); \ - Cw = Ebo0^Ego0^Eko0^Emo0^Eso0; \ - Di1 = Du1^Cw; \ -\ - Du0 = Cw^ROL32(Cz, 1); \ - Du1 = Cy^Cx; \ -\ - Eba0 ^= Da0; \ - Ba = Eba0; \ - Ege0 ^= De0; \ - Be = ROL32(Ege0, 22); \ - Eki1 ^= Di1; \ - Bi = ROL32(Eki1, 22); \ - Emo1 ^= Do1; \ - Bo = ROL32(Emo1, 11); \ - Esu0 ^= Du0; \ - Bu = ROL32(Esu0, 7); \ - Aba0 = Ba ^((~Be)& Bi ); \ - Aba0 ^= *(pRoundConstants++); \ - Abe0 = Be ^((~Bi)& Bo ); \ - Abi0 = Bi ^((~Bo)& Bu ); \ - Abo0 = Bo ^((~Bu)& Ba ); \ - Abu0 = Bu ^((~Ba)& Be ); \ -\ - Ebo0 ^= Do0; \ - Ba = ROL32(Ebo0, 14); \ - Egu0 ^= Du0; \ - Be = ROL32(Egu0, 10); \ - Eka1 ^= Da1; \ - Bi = ROL32(Eka1, 2); \ - Eme1 ^= De1; \ - Bo = ROL32(Eme1, 23); \ - Esi1 ^= Di1; \ - Bu = ROL32(Esi1, 31); \ - Aga0 = Ba ^((~Be)& Bi ); \ - Age0 = Be ^((~Bi)& Bo ); \ - Agi0 = Bi ^((~Bo)& Bu ); \ - Ago0 = Bo ^((~Bu)& Ba ); \ - Agu0 = Bu ^((~Ba)& Be ); \ -\ - Ebe1 ^= De1; \ - Ba = ROL32(Ebe1, 1); \ - Egi0 ^= Di0; \ - Be = ROL32(Egi0, 3); \ - Eko1 ^= Do1; \ - Bi = ROL32(Eko1, 13); \ - Emu0 ^= Du0; \ - Bo = ROL32(Emu0, 4); \ - Esa0 ^= Da0; \ - Bu = ROL32(Esa0, 9); \ - Aka0 = Ba ^((~Be)& Bi ); \ - Ake0 = Be ^((~Bi)& Bo ); \ - Aki0 = Bi ^((~Bo)& Bu ); \ - Ako0 = Bo ^((~Bu)& Ba ); \ - Aku0 = Bu ^((~Ba)& Be ); \ -\ - Ebu1 ^= Du1; \ - Ba = ROL32(Ebu1, 14); \ - Ega0 ^= Da0; \ - Be = ROL32(Ega0, 18); \ - Eke0 ^= De0; \ - Bi = ROL32(Eke0, 5); \ - Emi1 ^= Di1; \ - Bo = ROL32(Emi1, 8); \ - Eso0 ^= Do0; \ - Bu = ROL32(Eso0, 28); \ - Ama0 = Ba ^((~Be)& Bi ); \ - Ame0 = Be ^((~Bi)& Bo ); \ - Ami0 = Bi ^((~Bo)& Bu ); \ - Amo0 = Bo ^((~Bu)& Ba ); \ - Amu0 = Bu ^((~Ba)& Be ); \ -\ - Ebi0 ^= Di0; \ - Ba = ROL32(Ebi0, 31); \ - Ego1 ^= Do1; \ - Be = ROL32(Ego1, 28); \ - Eku1 ^= Du1; \ - Bi = ROL32(Eku1, 20); \ - Ema1 ^= Da1; \ - Bo = ROL32(Ema1, 21); \ - Ese0 ^= De0; \ - Bu = ROL32(Ese0, 1); \ - Asa0 = Ba ^((~Be)& Bi ); \ - Ase0 = Be ^((~Bi)& Bo ); \ - Asi0 = Bi ^((~Bo)& Bu ); \ - Aso0 = Bo ^((~Bu)& Ba ); \ - Asu0 = Bu ^((~Ba)& Be ); \ -\ - Eba1 ^= Da1; \ - Ba = Eba1; \ - Ege1 ^= De1; \ - Be = ROL32(Ege1, 22); \ - Eki0 ^= Di0; \ - Bi = ROL32(Eki0, 21); \ - Emo0 ^= Do0; \ - Bo = ROL32(Emo0, 10); \ - Esu1 ^= Du1; \ - Bu = ROL32(Esu1, 7); \ - Aba1 = Ba ^((~Be)& Bi ); \ - Aba1 ^= *(pRoundConstants++); \ - Abe1 = Be ^((~Bi)& Bo ); \ - Abi1 = Bi ^((~Bo)& Bu ); \ - Abo1 = Bo ^((~Bu)& Ba ); \ - Abu1 = Bu ^((~Ba)& Be ); \ -\ - Ebo1 ^= Do1; \ - Ba = ROL32(Ebo1, 14); \ - Egu1 ^= Du1; \ - Be = ROL32(Egu1, 10); \ - Eka0 ^= Da0; \ - Bi = ROL32(Eka0, 1); \ - Eme0 ^= De0; \ - Bo = ROL32(Eme0, 22); \ - Esi0 ^= Di0; \ - Bu = ROL32(Esi0, 30); \ - Aga1 = Ba ^((~Be)& Bi ); \ - Age1 = Be ^((~Bi)& Bo ); \ - Agi1 = Bi ^((~Bo)& Bu ); \ - Ago1 = Bo ^((~Bu)& Ba ); \ - Agu1 = Bu ^((~Ba)& Be ); \ -\ - Ebe0 ^= De0; \ - Ba = Ebe0; \ - Egi1 ^= Di1; \ - Be = ROL32(Egi1, 3); \ - Eko0 ^= Do0; \ - Bi = ROL32(Eko0, 12); \ - Emu1 ^= Du1; \ - Bo = ROL32(Emu1, 4); \ - Esa1 ^= Da1; \ - Bu = ROL32(Esa1, 9); \ - Aka1 = Ba ^((~Be)& Bi ); \ - Ake1 = Be ^((~Bi)& Bo ); \ - Aki1 = Bi ^((~Bo)& Bu ); \ - Ako1 = Bo ^((~Bu)& Ba ); \ - Aku1 = Bu ^((~Ba)& Be ); \ -\ - Ebu0 ^= Du0; \ - Ba = ROL32(Ebu0, 13); \ - Ega1 ^= Da1; \ - Be = ROL32(Ega1, 18); \ - Eke1 ^= De1; \ - Bi = ROL32(Eke1, 5); \ - Emi0 ^= Di0; \ - Bo = ROL32(Emi0, 7); \ - Eso1 ^= Do1; \ - Bu = ROL32(Eso1, 28); \ - Ama1 = Ba ^((~Be)& Bi ); \ - Ame1 = Be ^((~Bi)& Bo ); \ - Ami1 = Bi ^((~Bo)& Bu ); \ - Amo1 = Bo ^((~Bu)& Ba ); \ - Amu1 = Bu ^((~Ba)& Be ); \ -\ - Ebi1 ^= Di1; \ - Ba = ROL32(Ebi1, 31); \ - Ego0 ^= Do0; \ - Be = ROL32(Ego0, 27); \ - Eku0 ^= Du0; \ - Bi = ROL32(Eku0, 19); \ - Ema0 ^= Da0; \ - Bo = ROL32(Ema0, 20); \ - Ese1 ^= De1; \ - Bu = ROL32(Ese1, 1); \ - Asa1 = Ba ^((~Be)& Bi ); \ - Ase1 = Be ^((~Bi)& Bo ); \ - Asi1 = Bi ^((~Bo)& Bu ); \ - Aso1 = Bo ^((~Bu)& Ba ); \ - Asu1 = Bu ^((~Ba)& Be ); \ - } \ - copyToState(state, A) \ -} - -#define copyFromState(X, state) \ - X##ba0 = state[ 0]; \ - X##ba1 = state[ 1]; \ - X##be0 = state[ 2]; \ - X##be1 = state[ 3]; \ - X##bi0 = state[ 4]; \ - X##bi1 = state[ 5]; \ - X##bo0 = state[ 6]; \ - X##bo1 = state[ 7]; \ - X##bu0 = state[ 8]; \ - X##bu1 = state[ 9]; \ - X##ga0 = state[10]; \ - X##ga1 = state[11]; \ - X##ge0 = state[12]; \ - X##ge1 = state[13]; \ - X##gi0 = state[14]; \ - X##gi1 = state[15]; \ - X##go0 = state[16]; \ - X##go1 = state[17]; \ - X##gu0 = state[18]; \ - X##gu1 = state[19]; \ - X##ka0 = state[20]; \ - X##ka1 = state[21]; \ - X##ke0 = state[22]; \ - X##ke1 = state[23]; \ - X##ki0 = state[24]; \ - X##ki1 = state[25]; \ - X##ko0 = state[26]; \ - X##ko1 = state[27]; \ - X##ku0 = state[28]; \ - X##ku1 = state[29]; \ - X##ma0 = state[30]; \ - X##ma1 = state[31]; \ - X##me0 = state[32]; \ - X##me1 = state[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyToState(state, X) \ - state[ 0] = X##ba0; \ - state[ 1] = X##ba1; \ - state[ 2] = X##be0; \ - state[ 3] = X##be1; \ - state[ 4] = X##bi0; \ - state[ 5] = X##bi1; \ - state[ 6] = X##bo0; \ - state[ 7] = X##bo1; \ - state[ 8] = X##bu0; \ - state[ 9] = X##bu1; \ - state[10] = X##ga0; \ - state[11] = X##ga1; \ - state[12] = X##ge0; \ - state[13] = X##ge1; \ - state[14] = X##gi0; \ - state[15] = X##gi1; \ - state[16] = X##go0; \ - state[17] = X##go1; \ - state[18] = X##gu0; \ - state[19] = X##gu1; \ - state[20] = X##ka0; \ - state[21] = X##ka1; \ - state[22] = X##ke0; \ - state[23] = X##ke1; \ - state[24] = X##ki0; \ - state[25] = X##ki1; \ - state[26] = X##ko0; \ - state[27] = X##ko1; \ - state[28] = X##ku0; \ - state[29] = X##ku1; \ - state[30] = X##ma0; \ - state[31] = X##ma1; \ - state[32] = X##me0; \ - state[33] = X##me1; \ - state[34] = X##mi0; \ - state[35] = X##mi1; \ - state[36] = X##mo0; \ - state[37] = X##mo1; \ - state[38] = X##mu0; \ - state[39] = X##mu1; \ - state[40] = X##sa0; \ - state[41] = X##sa1; \ - state[42] = X##se0; \ - state[43] = X##se1; \ - state[44] = X##si0; \ - state[45] = X##si1; \ - state[46] = X##so0; \ - state[47] = X##so1; \ - state[48] = X##su0; \ - state[49] = X##su1; \ - - -#endif \ No newline at end of file diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h deleted file mode 100644 index 7c93036..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h +++ /dev/null @@ -1,1191 +0,0 @@ -/* -Code automatically generated by KeccakTools! - -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifndef _Keccak1600_32_s1_h_ -#define _Keccak1600_32_s1_h_ - -#define declareABCDE \ - UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ - UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ - UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ - UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ - UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ - UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ - UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ - UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ - UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ - UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ - UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \ - UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \ - UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \ - UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \ - UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \ - UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \ - UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \ - UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \ - UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \ - UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \ - UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \ - UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \ - UINT32 Da0, De0, Di0, Do0, Du0; \ - UINT32 Da1, De1, Di1, Do1, Du1; \ - UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ - UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ - UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ - UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ - UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ - UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ - UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ - UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ - UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ - UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ - -#define prepareTheta \ - Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \ - Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \ - Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \ - Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \ - Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \ - Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \ - Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \ - Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \ - Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \ - Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \ - -#ifdef UseBebigokimisa -/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - Ca0 = E##ba0; \ - E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ - Ce0 = E##be0; \ - E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ - Ci0 = E##bi0; \ - E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ - Co0 = E##bo0; \ - E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ - Cu0 = E##bu0; \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - Ca1 = E##ba1; \ - E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ - Ce1 = E##be1; \ - E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ - Ci1 = E##bi1; \ - E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ - Co1 = E##bo1; \ - E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ - Cu1 = E##bu1; \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ - Ca0 ^= E##ga0; \ - E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ - Ce0 ^= E##ge0; \ - E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ - Ci0 ^= E##gi0; \ - E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ - Co0 ^= E##go0; \ - E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ - Cu0 ^= E##gu0; \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ - Ca1 ^= E##ga1; \ - E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ - Ce1 ^= E##ge1; \ - E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ - Ci1 ^= E##gi1; \ - E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ - Co1 ^= E##go1; \ - E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ - Cu1 ^= E##gu1; \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ - Ca0 ^= E##ka0; \ - E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ - Ce0 ^= E##ke0; \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - Ci0 ^= E##ki0; \ - E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ - Co0 ^= E##ko0; \ - E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ - Cu0 ^= E##ku0; \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ - Ca1 ^= E##ka1; \ - E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ - Ce1 ^= E##ke1; \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - Ci1 ^= E##ki1; \ - E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ - Co1 ^= E##ko1; \ - E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ - Cu1 ^= E##ku1; \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ - Ca0 ^= E##ma0; \ - E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ - Ce0 ^= E##me0; \ - E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ - Ci0 ^= E##mi0; \ - E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ - Co0 ^= E##mo0; \ - E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ - Cu0 ^= E##mu0; \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ - Ca1 ^= E##ma1; \ - E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ - Ce1 ^= E##me1; \ - E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ - Ci1 ^= E##mi1; \ - E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ - Co1 ^= E##mo1; \ - E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ - Cu1 ^= E##mu1; \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - Ca0 ^= E##sa0; \ - E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ - Ce0 ^= E##se0; \ - E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ - Ci0 ^= E##si0; \ - E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ - Co0 ^= E##so0; \ - E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ - Cu0 ^= E##su0; \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - Ca1 ^= E##sa1; \ - E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ - Ce1 ^= E##se1; \ - E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ - Ci1 ^= E##si1; \ - E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ - Co1 ^= E##so1; \ - E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ - Cu1 ^= E##su1; \ -\ - -/* --- Code for round (lane complementing pattern 'bebigokimisa') */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIota(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ - E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ - E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ - E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ - E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ - E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ - E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ - E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ - E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ - E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ - E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ - E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ - E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ - E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ - E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ - E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ - E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ - E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ - E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ - E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ - E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ - E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ - E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ - E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ - E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ - E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ - E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ - E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ - E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ - E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ - E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ - E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ - E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ -\ - -#else /* UseBebigokimisa */ -/* --- Code for round, with prepare-theta */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - Ca0 = E##ba0; \ - E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ - Ce0 = E##be0; \ - E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ - Ci0 = E##bi0; \ - E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ - Co0 = E##bo0; \ - E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ - Cu0 = E##bu0; \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - Ca1 = E##ba1; \ - E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ - Ce1 = E##be1; \ - E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ - Ci1 = E##bi1; \ - E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ - Co1 = E##bo1; \ - E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ - Cu1 = E##bu1; \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ - Ca0 ^= E##ga0; \ - E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ - Ce0 ^= E##ge0; \ - E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ - Ci0 ^= E##gi0; \ - E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ - Co0 ^= E##go0; \ - E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ - Cu0 ^= E##gu0; \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ - Ca1 ^= E##ga1; \ - E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ - Ce1 ^= E##ge1; \ - E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ - Ci1 ^= E##gi1; \ - E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ - Co1 ^= E##go1; \ - E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ - Cu1 ^= E##gu1; \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ - Ca0 ^= E##ka0; \ - E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ - Ce0 ^= E##ke0; \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - Ci0 ^= E##ki0; \ - E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ - Co0 ^= E##ko0; \ - E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ - Cu0 ^= E##ku0; \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ - Ca1 ^= E##ka1; \ - E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ - Ce1 ^= E##ke1; \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - Ci1 ^= E##ki1; \ - E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ - Co1 ^= E##ko1; \ - E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ - Cu1 ^= E##ku1; \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ - Ca0 ^= E##ma0; \ - E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ - Ce0 ^= E##me0; \ - E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ - Ci0 ^= E##mi0; \ - E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ - Co0 ^= E##mo0; \ - E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ - Cu0 ^= E##mu0; \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ - Ca1 ^= E##ma1; \ - E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ - Ce1 ^= E##me1; \ - E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ - Ci1 ^= E##mi1; \ - E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ - Co1 ^= E##mo1; \ - E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ - Cu1 ^= E##mu1; \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - Ca0 ^= E##sa0; \ - E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ - Ce0 ^= E##se0; \ - E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ - Ci0 ^= E##si0; \ - E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ - Co0 ^= E##so0; \ - E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ - Cu0 ^= E##su0; \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - Ca1 ^= E##sa1; \ - E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ - Ce1 ^= E##se1; \ - E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ - Ci1 ^= E##si1; \ - E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ - Co1 ^= E##so1; \ - E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ - Cu1 ^= E##su1; \ -\ - -/* --- Code for round */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIota(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ - E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ - E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ - E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ - E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ - E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ - E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ - E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ - E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ - E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ - E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ - E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ - E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ - E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ - E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ - E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ - E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ - E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ - E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ - E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ - E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ - E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ - E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ - E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ - E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ - E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ - E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ - E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ - E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ - E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ - E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ - E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ - E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ -\ - -#endif /* UseBebigokimisa */ - -const UINT32 KeccakF1600RoundConstants_int2_0[24] = { - 0x00000001UL, - 0x00000000UL, - 0x00000000UL, - 0x00000000UL, - 0x00000001UL, - 0x00000001UL, - 0x00000001UL, - 0x00000001UL, - 0x00000000UL, - 0x00000000UL, - 0x00000001UL, - 0x00000000UL, - 0x00000001UL, - 0x00000001UL, - 0x00000001UL, - 0x00000001UL, - 0x00000000UL, - 0x00000000UL, - 0x00000000UL, - 0x00000000UL, - 0x00000001UL, - 0x00000000UL, - 0x00000001UL, - 0x00000000UL }; - -const UINT32 KeccakF1600RoundConstants_int2_1[24] = { - 0x00000000UL, - 0x00000089UL, - 0x8000008bUL, - 0x80008080UL, - 0x0000008bUL, - 0x00008000UL, - 0x80008088UL, - 0x80000082UL, - 0x0000000bUL, - 0x0000000aUL, - 0x00008082UL, - 0x00008003UL, - 0x0000808bUL, - 0x8000000bUL, - 0x8000008aUL, - 0x80000081UL, - 0x80000081UL, - 0x80000008UL, - 0x00000083UL, - 0x80008003UL, - 0x80008088UL, - 0x80000088UL, - 0x00008000UL, - 0x80008082UL }; - -#define copyFromStateAndXor1024bits(X, state, input) \ - X##ba0 = state[ 0]^input[ 0]; \ - X##ba1 = state[ 1]^input[ 1]; \ - X##be0 = state[ 2]^input[ 2]; \ - X##be1 = state[ 3]^input[ 3]; \ - X##bi0 = state[ 4]^input[ 4]; \ - X##bi1 = state[ 5]^input[ 5]; \ - X##bo0 = state[ 6]^input[ 6]; \ - X##bo1 = state[ 7]^input[ 7]; \ - X##bu0 = state[ 8]^input[ 8]; \ - X##bu1 = state[ 9]^input[ 9]; \ - X##ga0 = state[10]^input[10]; \ - X##ga1 = state[11]^input[11]; \ - X##ge0 = state[12]^input[12]; \ - X##ge1 = state[13]^input[13]; \ - X##gi0 = state[14]^input[14]; \ - X##gi1 = state[15]^input[15]; \ - X##go0 = state[16]^input[16]; \ - X##go1 = state[17]^input[17]; \ - X##gu0 = state[18]^input[18]; \ - X##gu1 = state[19]^input[19]; \ - X##ka0 = state[20]^input[20]; \ - X##ka1 = state[21]^input[21]; \ - X##ke0 = state[22]^input[22]; \ - X##ke1 = state[23]^input[23]; \ - X##ki0 = state[24]^input[24]; \ - X##ki1 = state[25]^input[25]; \ - X##ko0 = state[26]^input[26]; \ - X##ko1 = state[27]^input[27]; \ - X##ku0 = state[28]^input[28]; \ - X##ku1 = state[29]^input[29]; \ - X##ma0 = state[30]^input[30]; \ - X##ma1 = state[31]^input[31]; \ - X##me0 = state[32]; \ - X##me1 = state[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyFromStateAndXor1088bits(X, state, input) \ - X##ba0 = state[ 0]^input[ 0]; \ - X##ba1 = state[ 1]^input[ 1]; \ - X##be0 = state[ 2]^input[ 2]; \ - X##be1 = state[ 3]^input[ 3]; \ - X##bi0 = state[ 4]^input[ 4]; \ - X##bi1 = state[ 5]^input[ 5]; \ - X##bo0 = state[ 6]^input[ 6]; \ - X##bo1 = state[ 7]^input[ 7]; \ - X##bu0 = state[ 8]^input[ 8]; \ - X##bu1 = state[ 9]^input[ 9]; \ - X##ga0 = state[10]^input[10]; \ - X##ga1 = state[11]^input[11]; \ - X##ge0 = state[12]^input[12]; \ - X##ge1 = state[13]^input[13]; \ - X##gi0 = state[14]^input[14]; \ - X##gi1 = state[15]^input[15]; \ - X##go0 = state[16]^input[16]; \ - X##go1 = state[17]^input[17]; \ - X##gu0 = state[18]^input[18]; \ - X##gu1 = state[19]^input[19]; \ - X##ka0 = state[20]^input[20]; \ - X##ka1 = state[21]^input[21]; \ - X##ke0 = state[22]^input[22]; \ - X##ke1 = state[23]^input[23]; \ - X##ki0 = state[24]^input[24]; \ - X##ki1 = state[25]^input[25]; \ - X##ko0 = state[26]^input[26]; \ - X##ko1 = state[27]^input[27]; \ - X##ku0 = state[28]^input[28]; \ - X##ku1 = state[29]^input[29]; \ - X##ma0 = state[30]^input[30]; \ - X##ma1 = state[31]^input[31]; \ - X##me0 = state[32]^input[32]; \ - X##me1 = state[33]^input[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyFromState(X, state) \ - X##ba0 = state[ 0]; \ - X##ba1 = state[ 1]; \ - X##be0 = state[ 2]; \ - X##be1 = state[ 3]; \ - X##bi0 = state[ 4]; \ - X##bi1 = state[ 5]; \ - X##bo0 = state[ 6]; \ - X##bo1 = state[ 7]; \ - X##bu0 = state[ 8]; \ - X##bu1 = state[ 9]; \ - X##ga0 = state[10]; \ - X##ga1 = state[11]; \ - X##ge0 = state[12]; \ - X##ge1 = state[13]; \ - X##gi0 = state[14]; \ - X##gi1 = state[15]; \ - X##go0 = state[16]; \ - X##go1 = state[17]; \ - X##gu0 = state[18]; \ - X##gu1 = state[19]; \ - X##ka0 = state[20]; \ - X##ka1 = state[21]; \ - X##ke0 = state[22]; \ - X##ke1 = state[23]; \ - X##ki0 = state[24]; \ - X##ki1 = state[25]; \ - X##ko0 = state[26]; \ - X##ko1 = state[27]; \ - X##ku0 = state[28]; \ - X##ku1 = state[29]; \ - X##ma0 = state[30]; \ - X##ma1 = state[31]; \ - X##me0 = state[32]; \ - X##me1 = state[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyToState(state, X) \ - state[ 0] = X##ba0; \ - state[ 1] = X##ba1; \ - state[ 2] = X##be0; \ - state[ 3] = X##be1; \ - state[ 4] = X##bi0; \ - state[ 5] = X##bi1; \ - state[ 6] = X##bo0; \ - state[ 7] = X##bo1; \ - state[ 8] = X##bu0; \ - state[ 9] = X##bu1; \ - state[10] = X##ga0; \ - state[11] = X##ga1; \ - state[12] = X##ge0; \ - state[13] = X##ge1; \ - state[14] = X##gi0; \ - state[15] = X##gi1; \ - state[16] = X##go0; \ - state[17] = X##go1; \ - state[18] = X##gu0; \ - state[19] = X##gu1; \ - state[20] = X##ka0; \ - state[21] = X##ka1; \ - state[22] = X##ke0; \ - state[23] = X##ke1; \ - state[24] = X##ki0; \ - state[25] = X##ki1; \ - state[26] = X##ko0; \ - state[27] = X##ko1; \ - state[28] = X##ku0; \ - state[29] = X##ku1; \ - state[30] = X##ma0; \ - state[31] = X##ma1; \ - state[32] = X##me0; \ - state[33] = X##me1; \ - state[34] = X##mi0; \ - state[35] = X##mi1; \ - state[36] = X##mo0; \ - state[37] = X##mo1; \ - state[38] = X##mu0; \ - state[39] = X##mu1; \ - state[40] = X##sa0; \ - state[41] = X##sa1; \ - state[42] = X##se0; \ - state[43] = X##se1; \ - state[44] = X##si0; \ - state[45] = X##si1; \ - state[46] = X##so0; \ - state[47] = X##so1; \ - state[48] = X##su0; \ - state[49] = X##su1; \ - -#define copyStateVariables(X, Y) \ - X##ba0 = Y##ba0; \ - X##ba1 = Y##ba1; \ - X##be0 = Y##be0; \ - X##be1 = Y##be1; \ - X##bi0 = Y##bi0; \ - X##bi1 = Y##bi1; \ - X##bo0 = Y##bo0; \ - X##bo1 = Y##bo1; \ - X##bu0 = Y##bu0; \ - X##bu1 = Y##bu1; \ - X##ga0 = Y##ga0; \ - X##ga1 = Y##ga1; \ - X##ge0 = Y##ge0; \ - X##ge1 = Y##ge1; \ - X##gi0 = Y##gi0; \ - X##gi1 = Y##gi1; \ - X##go0 = Y##go0; \ - X##go1 = Y##go1; \ - X##gu0 = Y##gu0; \ - X##gu1 = Y##gu1; \ - X##ka0 = Y##ka0; \ - X##ka1 = Y##ka1; \ - X##ke0 = Y##ke0; \ - X##ke1 = Y##ke1; \ - X##ki0 = Y##ki0; \ - X##ki1 = Y##ki1; \ - X##ko0 = Y##ko0; \ - X##ko1 = Y##ko1; \ - X##ku0 = Y##ku0; \ - X##ku1 = Y##ku1; \ - X##ma0 = Y##ma0; \ - X##ma1 = Y##ma1; \ - X##me0 = Y##me0; \ - X##me1 = Y##me1; \ - X##mi0 = Y##mi0; \ - X##mi1 = Y##mi1; \ - X##mo0 = Y##mo0; \ - X##mo1 = Y##mo1; \ - X##mu0 = Y##mu0; \ - X##mu1 = Y##mu1; \ - X##sa0 = Y##sa0; \ - X##sa1 = Y##sa1; \ - X##se0 = Y##se0; \ - X##se1 = Y##se1; \ - X##si0 = Y##si0; \ - X##si1 = Y##si1; \ - X##so0 = Y##so0; \ - X##so1 = Y##so1; \ - X##su0 = Y##su0; \ - X##su1 = Y##su1; \ - -#endif \ No newline at end of file diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h deleted file mode 100644 index 347aaec..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h +++ /dev/null @@ -1,1140 +0,0 @@ -/* -Code automatically generated by KeccakTools! - -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifndef _Keccak1600_32_s2_h_ -#define _Keccak1600_32_s2_h_ - -#define declareABCDE \ - UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \ - UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \ - UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \ - UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \ - UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \ - UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \ - UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \ - UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \ - UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \ - UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \ - UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \ - UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \ - UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \ - UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \ - UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \ - UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \ - UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \ - UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \ - UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \ - UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \ - UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \ - UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \ - UINT32 Da0, De0, Di0, Do0, Du0; \ - UINT32 Da1, De1, Di1, Do1, Du1; \ - UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \ - UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \ - UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \ - UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \ - UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \ - UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \ - UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \ - UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \ - UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \ - UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \ - -#define prepareTheta \ - Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \ - Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \ - Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \ - Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \ - Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \ - Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \ - Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \ - Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \ - Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \ - Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \ - -#ifdef UseBebigokimisa -/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - Ca0 = E##ba0; \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ - Ce0 = E##be0; \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ - Ci0 = E##bi0; \ - E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ - Co0 = E##bo0; \ - E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ - Cu0 = E##bu0; \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - Ca1 = E##ba1; \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ - Ce1 = E##be1; \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ - Ci1 = E##bi1; \ - E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ - Co1 = E##bo1; \ - E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ - Cu1 = E##bu1; \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ - Ca0 ^= E##ga0; \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ - Ce0 ^= E##ge0; \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ - Ci0 ^= E##gi0; \ - E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ - Co0 ^= E##go0; \ - E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ - Cu0 ^= E##gu0; \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ - Ca1 ^= E##ga1; \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ - Ce1 ^= E##ge1; \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ - Ci1 ^= E##gi1; \ - E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ - Co1 ^= E##go1; \ - E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ - Cu1 ^= E##gu1; \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ - Ca0 ^= E##ka0; \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ - Ce0 ^= E##ke0; \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - Ci0 ^= E##ki0; \ - E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ - Co0 ^= E##ko0; \ - E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ - Cu0 ^= E##ku0; \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ - Ca1 ^= E##ka1; \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ - Ce1 ^= E##ke1; \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - Ci1 ^= E##ki1; \ - E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ - Co1 ^= E##ko1; \ - E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ - Cu1 ^= E##ku1; \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ - Ca0 ^= E##ma0; \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ - Ce0 ^= E##me0; \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ - Ci0 ^= E##mi0; \ - E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ - Co0 ^= E##mo0; \ - E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ - Cu0 ^= E##mu0; \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ - Ca1 ^= E##ma1; \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ - Ce1 ^= E##me1; \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ - Ci1 ^= E##mi1; \ - E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ - Co1 ^= E##mo1; \ - E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ - Cu1 ^= E##mu1; \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - Ca0 ^= E##sa0; \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ - Ce0 ^= E##se0; \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ - Ci0 ^= E##si0; \ - E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ - Co0 ^= E##so0; \ - E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ - Cu0 ^= E##su0; \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - Ca1 ^= E##sa1; \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ - Ce1 ^= E##se1; \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ - Ci1 ^= E##si1; \ - E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ - Co1 ^= E##so1; \ - E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ - Cu1 ^= E##su1; \ -\ - -/* --- Code for round (lane complementing pattern 'bebigokimisa') */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIota(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \ - E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \ - E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \ - E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \ - E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \ - E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \ - E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \ - E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \ - E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - E##ka0 = Bka0 ^( Bke0 | Bki0 ); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - E##ke0 = Bke0 ^( Bki0 & Bko0 ); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \ - E##ku0 = Bku0 ^( Bka0 & Bke0 ); \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - E##ka1 = Bka1 ^( Bke1 | Bki1 ); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - E##ke1 = Bke1 ^( Bki1 & Bko1 ); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \ - E##ku1 = Bku1 ^( Bka1 & Bke1 ); \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \ - E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \ - E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \ - E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \ - E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \ - E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \ - E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \ - E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \ - E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \ -\ - -#else /* UseBebigokimisa */ -/* --- Code for round, with prepare-theta */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - Ca0 = E##ba0; \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ - Ce0 = E##be0; \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ - Ci0 = E##bi0; \ - E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ - Co0 = E##bo0; \ - E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ - Cu0 = E##bu0; \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - Ca1 = E##ba1; \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ - Ce1 = E##be1; \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ - Ci1 = E##bi1; \ - E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ - Co1 = E##bo1; \ - E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ - Cu1 = E##bu1; \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ - Ca0 ^= E##ga0; \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ - Ce0 ^= E##ge0; \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ - Ci0 ^= E##gi0; \ - E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ - Co0 ^= E##go0; \ - E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ - Cu0 ^= E##gu0; \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ - Ca1 ^= E##ga1; \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ - Ce1 ^= E##ge1; \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ - Ci1 ^= E##gi1; \ - E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ - Co1 ^= E##go1; \ - E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ - Cu1 ^= E##gu1; \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ - Ca0 ^= E##ka0; \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ - Ce0 ^= E##ke0; \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - Ci0 ^= E##ki0; \ - E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ - Co0 ^= E##ko0; \ - E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ - Cu0 ^= E##ku0; \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ - Ca1 ^= E##ka1; \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ - Ce1 ^= E##ke1; \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - Ci1 ^= E##ki1; \ - E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ - Co1 ^= E##ko1; \ - E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ - Cu1 ^= E##ku1; \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ - Ca0 ^= E##ma0; \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ - Ce0 ^= E##me0; \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ - Ci0 ^= E##mi0; \ - E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ - Co0 ^= E##mo0; \ - E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ - Cu0 ^= E##mu0; \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ - Ca1 ^= E##ma1; \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ - Ce1 ^= E##me1; \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ - Ci1 ^= E##mi1; \ - E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ - Co1 ^= E##mo1; \ - E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ - Cu1 ^= E##mu1; \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - Ca0 ^= E##sa0; \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ - Ce0 ^= E##se0; \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ - Ci0 ^= E##si0; \ - E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ - Co0 ^= E##so0; \ - E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ - Cu0 ^= E##su0; \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - Ca1 ^= E##sa1; \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ - Ce1 ^= E##se1; \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ - Ci1 ^= E##si1; \ - E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ - Co1 ^= E##so1; \ - E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ - Cu1 ^= E##su1; \ -\ - -/* --- Code for round */ -/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */ -#define thetaRhoPiChiIota(i, A, E) \ - Da0 = Cu0^ROL32(Ce1, 1); \ - Da1 = Cu1^Ce0; \ - De0 = Ca0^ROL32(Ci1, 1); \ - De1 = Ca1^Ci0; \ - Di0 = Ce0^ROL32(Co1, 1); \ - Di1 = Ce1^Co0; \ - Do0 = Ci0^ROL32(Cu1, 1); \ - Do1 = Ci1^Cu0; \ - Du0 = Co0^ROL32(Ca1, 1); \ - Du1 = Co1^Ca0; \ -\ - A##ba0 ^= Da0; \ - Bba0 = A##ba0; \ - A##ge0 ^= De0; \ - Bbe0 = ROL32(A##ge0, 22); \ - A##ki1 ^= Di1; \ - Bbi0 = ROL32(A##ki1, 22); \ - E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \ - E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \ - A##mo1 ^= Do1; \ - Bbo0 = ROL32(A##mo1, 11); \ - E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \ - A##su0 ^= Du0; \ - Bbu0 = ROL32(A##su0, 7); \ - E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \ - E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \ - E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \ -\ - A##ba1 ^= Da1; \ - Bba1 = A##ba1; \ - A##ge1 ^= De1; \ - Bbe1 = ROL32(A##ge1, 22); \ - A##ki0 ^= Di0; \ - Bbi1 = ROL32(A##ki0, 21); \ - E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \ - E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \ - A##mo0 ^= Do0; \ - Bbo1 = ROL32(A##mo0, 10); \ - E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \ - A##su1 ^= Du1; \ - Bbu1 = ROL32(A##su1, 7); \ - E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \ - E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \ - E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \ -\ - A##bo0 ^= Do0; \ - Bga0 = ROL32(A##bo0, 14); \ - A##gu0 ^= Du0; \ - Bge0 = ROL32(A##gu0, 10); \ - A##ka1 ^= Da1; \ - Bgi0 = ROL32(A##ka1, 2); \ - E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \ - A##me1 ^= De1; \ - Bgo0 = ROL32(A##me1, 23); \ - E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \ - A##si1 ^= Di1; \ - Bgu0 = ROL32(A##si1, 31); \ - E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \ - E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \ - E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \ -\ - A##bo1 ^= Do1; \ - Bga1 = ROL32(A##bo1, 14); \ - A##gu1 ^= Du1; \ - Bge1 = ROL32(A##gu1, 10); \ - A##ka0 ^= Da0; \ - Bgi1 = ROL32(A##ka0, 1); \ - E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \ - A##me0 ^= De0; \ - Bgo1 = ROL32(A##me0, 22); \ - E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \ - A##si0 ^= Di0; \ - Bgu1 = ROL32(A##si0, 30); \ - E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \ - E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \ - E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \ -\ - A##be1 ^= De1; \ - Bka0 = ROL32(A##be1, 1); \ - A##gi0 ^= Di0; \ - Bke0 = ROL32(A##gi0, 3); \ - A##ko1 ^= Do1; \ - Bki0 = ROL32(A##ko1, 13); \ - E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \ - A##mu0 ^= Du0; \ - Bko0 = ROL32(A##mu0, 4); \ - E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \ - A##sa0 ^= Da0; \ - Bku0 = ROL32(A##sa0, 9); \ - E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \ - E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \ - E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \ -\ - A##be0 ^= De0; \ - Bka1 = A##be0; \ - A##gi1 ^= Di1; \ - Bke1 = ROL32(A##gi1, 3); \ - A##ko0 ^= Do0; \ - Bki1 = ROL32(A##ko0, 12); \ - E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \ - A##mu1 ^= Du1; \ - Bko1 = ROL32(A##mu1, 4); \ - E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \ - A##sa1 ^= Da1; \ - Bku1 = ROL32(A##sa1, 9); \ - E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \ - E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \ - E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \ -\ - A##bu1 ^= Du1; \ - Bma0 = ROL32(A##bu1, 14); \ - A##ga0 ^= Da0; \ - Bme0 = ROL32(A##ga0, 18); \ - A##ke0 ^= De0; \ - Bmi0 = ROL32(A##ke0, 5); \ - E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \ - A##mi1 ^= Di1; \ - Bmo0 = ROL32(A##mi1, 8); \ - E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \ - A##so0 ^= Do0; \ - Bmu0 = ROL32(A##so0, 28); \ - E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \ - E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \ - E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \ -\ - A##bu0 ^= Du0; \ - Bma1 = ROL32(A##bu0, 13); \ - A##ga1 ^= Da1; \ - Bme1 = ROL32(A##ga1, 18); \ - A##ke1 ^= De1; \ - Bmi1 = ROL32(A##ke1, 5); \ - E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \ - A##mi0 ^= Di0; \ - Bmo1 = ROL32(A##mi0, 7); \ - E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \ - A##so1 ^= Do1; \ - Bmu1 = ROL32(A##so1, 28); \ - E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \ - E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \ - E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \ -\ - A##bi0 ^= Di0; \ - Bsa0 = ROL32(A##bi0, 31); \ - A##go1 ^= Do1; \ - Bse0 = ROL32(A##go1, 28); \ - A##ku1 ^= Du1; \ - Bsi0 = ROL32(A##ku1, 20); \ - E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \ - A##ma1 ^= Da1; \ - Bso0 = ROL32(A##ma1, 21); \ - E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \ - A##se0 ^= De0; \ - Bsu0 = ROL32(A##se0, 1); \ - E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \ - E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \ - E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \ -\ - A##bi1 ^= Di1; \ - Bsa1 = ROL32(A##bi1, 31); \ - A##go0 ^= Do0; \ - Bse1 = ROL32(A##go0, 27); \ - A##ku0 ^= Du0; \ - Bsi1 = ROL32(A##ku0, 19); \ - E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \ - A##ma0 ^= Da0; \ - Bso1 = ROL32(A##ma0, 20); \ - E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \ - A##se1 ^= De1; \ - Bsu1 = ROL32(A##se1, 1); \ - E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \ - E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \ - E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \ -\ - -#endif /* UseBebigokimisa */ - -#define copyFromStateAndXor1024bits(X, state, input) \ - X##ba0 = state[ 0]^input[ 0]; \ - X##ba1 = state[ 1]^input[ 1]; \ - X##be0 = state[ 2]^input[ 2]; \ - X##be1 = state[ 3]^input[ 3]; \ - X##bi0 = state[ 4]^input[ 4]; \ - X##bi1 = state[ 5]^input[ 5]; \ - X##bo0 = state[ 6]^input[ 6]; \ - X##bo1 = state[ 7]^input[ 7]; \ - X##bu0 = state[ 8]^input[ 8]; \ - X##bu1 = state[ 9]^input[ 9]; \ - X##ga0 = state[10]^input[10]; \ - X##ga1 = state[11]^input[11]; \ - X##ge0 = state[12]^input[12]; \ - X##ge1 = state[13]^input[13]; \ - X##gi0 = state[14]^input[14]; \ - X##gi1 = state[15]^input[15]; \ - X##go0 = state[16]^input[16]; \ - X##go1 = state[17]^input[17]; \ - X##gu0 = state[18]^input[18]; \ - X##gu1 = state[19]^input[19]; \ - X##ka0 = state[20]^input[20]; \ - X##ka1 = state[21]^input[21]; \ - X##ke0 = state[22]^input[22]; \ - X##ke1 = state[23]^input[23]; \ - X##ki0 = state[24]^input[24]; \ - X##ki1 = state[25]^input[25]; \ - X##ko0 = state[26]^input[26]; \ - X##ko1 = state[27]^input[27]; \ - X##ku0 = state[28]^input[28]; \ - X##ku1 = state[29]^input[29]; \ - X##ma0 = state[30]^input[30]; \ - X##ma1 = state[31]^input[31]; \ - X##me0 = state[32]; \ - X##me1 = state[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyFromStateAndXor1088bits(X, state, input) \ - X##ba0 = state[ 0]^input[ 0]; \ - X##ba1 = state[ 1]^input[ 1]; \ - X##be0 = state[ 2]^input[ 2]; \ - X##be1 = state[ 3]^input[ 3]; \ - X##bi0 = state[ 4]^input[ 4]; \ - X##bi1 = state[ 5]^input[ 5]; \ - X##bo0 = state[ 6]^input[ 6]; \ - X##bo1 = state[ 7]^input[ 7]; \ - X##bu0 = state[ 8]^input[ 8]; \ - X##bu1 = state[ 9]^input[ 9]; \ - X##ga0 = state[10]^input[10]; \ - X##ga1 = state[11]^input[11]; \ - X##ge0 = state[12]^input[12]; \ - X##ge1 = state[13]^input[13]; \ - X##gi0 = state[14]^input[14]; \ - X##gi1 = state[15]^input[15]; \ - X##go0 = state[16]^input[16]; \ - X##go1 = state[17]^input[17]; \ - X##gu0 = state[18]^input[18]; \ - X##gu1 = state[19]^input[19]; \ - X##ka0 = state[20]^input[20]; \ - X##ka1 = state[21]^input[21]; \ - X##ke0 = state[22]^input[22]; \ - X##ke1 = state[23]^input[23]; \ - X##ki0 = state[24]^input[24]; \ - X##ki1 = state[25]^input[25]; \ - X##ko0 = state[26]^input[26]; \ - X##ko1 = state[27]^input[27]; \ - X##ku0 = state[28]^input[28]; \ - X##ku1 = state[29]^input[29]; \ - X##ma0 = state[30]^input[30]; \ - X##ma1 = state[31]^input[31]; \ - X##me0 = state[32]^input[32]; \ - X##me1 = state[33]^input[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyFromState(X, state) \ - X##ba0 = state[ 0]; \ - X##ba1 = state[ 1]; \ - X##be0 = state[ 2]; \ - X##be1 = state[ 3]; \ - X##bi0 = state[ 4]; \ - X##bi1 = state[ 5]; \ - X##bo0 = state[ 6]; \ - X##bo1 = state[ 7]; \ - X##bu0 = state[ 8]; \ - X##bu1 = state[ 9]; \ - X##ga0 = state[10]; \ - X##ga1 = state[11]; \ - X##ge0 = state[12]; \ - X##ge1 = state[13]; \ - X##gi0 = state[14]; \ - X##gi1 = state[15]; \ - X##go0 = state[16]; \ - X##go1 = state[17]; \ - X##gu0 = state[18]; \ - X##gu1 = state[19]; \ - X##ka0 = state[20]; \ - X##ka1 = state[21]; \ - X##ke0 = state[22]; \ - X##ke1 = state[23]; \ - X##ki0 = state[24]; \ - X##ki1 = state[25]; \ - X##ko0 = state[26]; \ - X##ko1 = state[27]; \ - X##ku0 = state[28]; \ - X##ku1 = state[29]; \ - X##ma0 = state[30]; \ - X##ma1 = state[31]; \ - X##me0 = state[32]; \ - X##me1 = state[33]; \ - X##mi0 = state[34]; \ - X##mi1 = state[35]; \ - X##mo0 = state[36]; \ - X##mo1 = state[37]; \ - X##mu0 = state[38]; \ - X##mu1 = state[39]; \ - X##sa0 = state[40]; \ - X##sa1 = state[41]; \ - X##se0 = state[42]; \ - X##se1 = state[43]; \ - X##si0 = state[44]; \ - X##si1 = state[45]; \ - X##so0 = state[46]; \ - X##so1 = state[47]; \ - X##su0 = state[48]; \ - X##su1 = state[49]; \ - -#define copyToState(state, X) \ - state[ 0] = X##ba0; \ - state[ 1] = X##ba1; \ - state[ 2] = X##be0; \ - state[ 3] = X##be1; \ - state[ 4] = X##bi0; \ - state[ 5] = X##bi1; \ - state[ 6] = X##bo0; \ - state[ 7] = X##bo1; \ - state[ 8] = X##bu0; \ - state[ 9] = X##bu1; \ - state[10] = X##ga0; \ - state[11] = X##ga1; \ - state[12] = X##ge0; \ - state[13] = X##ge1; \ - state[14] = X##gi0; \ - state[15] = X##gi1; \ - state[16] = X##go0; \ - state[17] = X##go1; \ - state[18] = X##gu0; \ - state[19] = X##gu1; \ - state[20] = X##ka0; \ - state[21] = X##ka1; \ - state[22] = X##ke0; \ - state[23] = X##ke1; \ - state[24] = X##ki0; \ - state[25] = X##ki1; \ - state[26] = X##ko0; \ - state[27] = X##ko1; \ - state[28] = X##ku0; \ - state[29] = X##ku1; \ - state[30] = X##ma0; \ - state[31] = X##ma1; \ - state[32] = X##me0; \ - state[33] = X##me1; \ - state[34] = X##mi0; \ - state[35] = X##mi1; \ - state[36] = X##mo0; \ - state[37] = X##mo1; \ - state[38] = X##mu0; \ - state[39] = X##mu1; \ - state[40] = X##sa0; \ - state[41] = X##sa1; \ - state[42] = X##se0; \ - state[43] = X##se1; \ - state[44] = X##si0; \ - state[45] = X##si1; \ - state[46] = X##so0; \ - state[47] = X##so1; \ - state[48] = X##su0; \ - state[49] = X##su1; \ - -#define copyStateVariables(X, Y) \ - X##ba0 = Y##ba0; \ - X##ba1 = Y##ba1; \ - X##be0 = Y##be0; \ - X##be1 = Y##be1; \ - X##bi0 = Y##bi0; \ - X##bi1 = Y##bi1; \ - X##bo0 = Y##bo0; \ - X##bo1 = Y##bo1; \ - X##bu0 = Y##bu0; \ - X##bu1 = Y##bu1; \ - X##ga0 = Y##ga0; \ - X##ga1 = Y##ga1; \ - X##ge0 = Y##ge0; \ - X##ge1 = Y##ge1; \ - X##gi0 = Y##gi0; \ - X##gi1 = Y##gi1; \ - X##go0 = Y##go0; \ - X##go1 = Y##go1; \ - X##gu0 = Y##gu0; \ - X##gu1 = Y##gu1; \ - X##ka0 = Y##ka0; \ - X##ka1 = Y##ka1; \ - X##ke0 = Y##ke0; \ - X##ke1 = Y##ke1; \ - X##ki0 = Y##ki0; \ - X##ki1 = Y##ki1; \ - X##ko0 = Y##ko0; \ - X##ko1 = Y##ko1; \ - X##ku0 = Y##ku0; \ - X##ku1 = Y##ku1; \ - X##ma0 = Y##ma0; \ - X##ma1 = Y##ma1; \ - X##me0 = Y##me0; \ - X##me1 = Y##me1; \ - X##mi0 = Y##mi0; \ - X##mi1 = Y##mi1; \ - X##mo0 = Y##mo0; \ - X##mo1 = Y##mo1; \ - X##mu0 = Y##mu0; \ - X##mu1 = Y##mu1; \ - X##sa0 = Y##sa0; \ - X##sa1 = Y##sa1; \ - X##se0 = Y##se0; \ - X##se1 = Y##se1; \ - X##si0 = Y##si0; \ - X##si1 = Y##si1; \ - X##so0 = Y##so0; \ - X##so1 = Y##so1; \ - X##su0 = Y##su0; \ - X##su1 = Y##su1; \ - - -#endif \ No newline at end of file diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h deleted file mode 100644 index e62e8f0..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifdef UseSchedule - #if (UseSchedule == 1) - #include "KeccakF-1600-32-s1.h" - #elif (UseSchedule == 2) - #include "KeccakF-1600-32-s2.h" - #elif (UseSchedule == 3) - #include "KeccakF-1600-32-rvk.h" - #else - #error "This schedule is not supported." - #endif -#else - #include "KeccakF-1600-32-s1.h" -#endif diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h deleted file mode 100644 index 0ed1d80..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h +++ /dev/null @@ -1,6 +0,0 @@ -#define ProvideFast576 -#define ProvideFast832 -#define ProvideFast1024 -#define ProvideFast1088 -#define ProvideFast1152 -#define ProvideFast1344 diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h deleted file mode 100644 index a2c98f3..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifndef _KeccakPermutationInterface_h_ -#define _KeccakPermutationInterface_h_ - -typedef unsigned char UINT8; -typedef unsigned short UINT16; -typedef unsigned int UINT32; -typedef uint64_t UINT64; - -#include "KeccakF-1600-int-set.h" - -void KeccakInitialize( void ); -void KeccakInitializeState(unsigned char *state); -void KeccakPermutation(unsigned char *state); -#ifdef ProvideFast576 -void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data); -#endif -#ifdef ProvideFast832 -void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data); -#endif -#ifdef ProvideFast1024 -void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data); -#endif -#ifdef ProvideFast1088 -void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data); -#endif -#ifdef ProvideFast1152 -void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data); -#endif -#ifdef ProvideFast1344 -void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data); -#endif -void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount); -#ifdef ProvideFast1024 -void KeccakExtract1024bits(const unsigned char *state, unsigned char *data); -#endif -void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount); - -#endif diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h deleted file mode 100644 index fa0d5e5..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h +++ /dev/null @@ -1,6 +0,0 @@ -#define Unrolling 2 -#define UseSchedule 3 -/* -#define UseBebigokimisa -#define UseInterleaveTables -*/ diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c deleted file mode 100644 index f00ba73..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c +++ /dev/null @@ -1,519 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#include -#include "brg_endian.h" -#include "KeccakF-1600-opt32-settings.h" -#include "KeccakF-1600-interface.h" - -#ifdef UseInterleaveTables -static int interleaveTablesBuilt = 0; -static UINT16 interleaveTable[65536]; -static UINT16 deinterleaveTable[65536]; - -static void buildInterleaveTables() -{ - UINT32 i, j; - UINT16 x; - - if (!interleaveTablesBuilt) { - for(i=0; i<65536; i++) { - x = 0; - for(j=0; j<16; j++) { - if (i & (1 << j)) - x |= (1 << (j/2 + 8*(j%2))); - } - interleaveTable[i] = x; - deinterleaveTable[x] = (UINT16)i; - } - interleaveTablesBuilt = 1; - } -} - -#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) - -#define xor2bytesIntoInterleavedWords(even, odd, source, j) \ - i##j = interleaveTable[((const UINT16*)source)[j]]; \ - ((UINT8*)even)[j] ^= i##j & 0xFF; \ - ((UINT8*)odd)[j] ^= i##j >> 8; - -#define setInterleavedWordsInto2bytes(dest, even, odd, j) \ - d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \ - ((UINT16*)dest)[j] = d##j; - -#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ - -#define xor2bytesIntoInterleavedWords(even, odd, source, j) \ - i##j = interleaveTable[source[2*j] ^ ((UINT16)source[2*j+1] << 8)]; \ - *even ^= (i##j & 0xFF) << (j*8); \ - *odd ^= ((i##j >> 8) & 0xFF) << (j*8); - -#define setInterleavedWordsInto2bytes(dest, even, odd, j) \ - d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \ - dest[2*j] = d##j & 0xFF; \ - dest[2*j+1] = d##j >> 8; - -#endif /* Endianness */ - -static void xor8bytesIntoInterleavedWords(UINT32 *even, UINT32 *odd, const UINT8* source) -{ - UINT16 i0, i1, i2, i3; - - xor2bytesIntoInterleavedWords(even, odd, source, 0) - xor2bytesIntoInterleavedWords(even, odd, source, 1) - xor2bytesIntoInterleavedWords(even, odd, source, 2) - xor2bytesIntoInterleavedWords(even, odd, source, 3) -} - -#define xorLanesIntoState(laneCount, state, input) \ - { \ - int i; \ - for(i=0; i<(laneCount); i++) \ - xor8bytesIntoInterleavedWords(state+i*2, state+i*2+1, input+i*8); \ - } - -static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32 even, UINT32 odd) -{ - UINT16 d0, d1, d2, d3; - - setInterleavedWordsInto2bytes(dest, even, odd, 0) - setInterleavedWordsInto2bytes(dest, even, odd, 1) - setInterleavedWordsInto2bytes(dest, even, odd, 2) - setInterleavedWordsInto2bytes(dest, even, odd, 3) -} - -#define extractLanes(laneCount, state, data) \ - { \ - int i; \ - for(i=0; i<(laneCount); i++) \ - setInterleavedWordsInto8bytes(data+i*8, ((UINT32*)state)[i*2], ((UINT32*)state)[i*2+1]); \ - } - -#else /* No interleaving tables */ - -#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) - -/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ -#define xorInterleavedLE(rateInLanes, state, input) \ - { \ - const UINT32 * pI = (const UINT32 *)input; \ - UINT32 * pS = state; \ - UINT32 t, x0, x1; \ - int i; \ - for (i = (rateInLanes)-1; i >= 0; --i) \ - { \ - x0 = *(pI++); \ - t = (x0 ^ (x0 >> 1)) & 0x22222222UL; x0 = x0 ^ t ^ (t << 1); \ - t = (x0 ^ (x0 >> 2)) & 0x0C0C0C0CUL; x0 = x0 ^ t ^ (t << 2); \ - t = (x0 ^ (x0 >> 4)) & 0x00F000F0UL; x0 = x0 ^ t ^ (t << 4); \ - t = (x0 ^ (x0 >> 8)) & 0x0000FF00UL; x0 = x0 ^ t ^ (t << 8); \ - x1 = *(pI++); \ - t = (x1 ^ (x1 >> 1)) & 0x22222222UL; x1 = x1 ^ t ^ (t << 1); \ - t = (x1 ^ (x1 >> 2)) & 0x0C0C0C0CUL; x1 = x1 ^ t ^ (t << 2); \ - t = (x1 ^ (x1 >> 4)) & 0x00F000F0UL; x1 = x1 ^ t ^ (t << 4); \ - t = (x1 ^ (x1 >> 8)) & 0x0000FF00UL; x1 = x1 ^ t ^ (t << 8); \ - *(pS++) ^= (UINT16)x0 | (x1 << 16); \ - *(pS++) ^= (x0 >> 16) | (x1 & 0xFFFF0000); \ - } \ - } - -#define xorLanesIntoState(laneCount, state, input) \ - xorInterleavedLE(laneCount, state, input) - -#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ - -/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ -UINT64 toInterleaving(UINT64 x) -{ - UINT64 t; - - t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1); - t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2); - t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4); - t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8); - t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16); - - return x; -} - -static void xor8bytesIntoInterleavedWords(UINT32* evenAndOdd, const UINT8* source) -{ - /* This can be optimized */ - UINT64 sourceWord = - (UINT64)source[0] - ^ (((UINT64)source[1]) << 8) - ^ (((UINT64)source[2]) << 16) - ^ (((UINT64)source[3]) << 24) - ^ (((UINT64)source[4]) << 32) - ^ (((UINT64)source[5]) << 40) - ^ (((UINT64)source[6]) << 48) - ^ (((UINT64)source[7]) << 56); - UINT64 evenAndOddWord = toInterleaving(sourceWord); - evenAndOdd[0] ^= (UINT32)evenAndOddWord; - evenAndOdd[1] ^= (UINT32)(evenAndOddWord >> 32); -} - -#define xorLanesIntoState(laneCount, state, input) \ - { \ - int i; \ - for(i=0; i<(laneCount); i++) \ - xor8bytesIntoInterleavedWords(state+i*2, input+i*8); \ - } - -#endif /* Endianness */ - -/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */ -UINT64 fromInterleaving(UINT64 x) -{ - UINT64 t; - - t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16); - t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8); - t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4); - t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2); - t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1); - - return x; -} - -static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32* evenAndOdd) -{ -#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN) - ((UINT64*)dest)[0] = fromInterleaving(*(UINT64*)evenAndOdd); -#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */ - /* This can be optimized */ - UINT64 evenAndOddWord = (UINT64)evenAndOdd[0] ^ ((UINT64)evenAndOdd[1] << 32); - UINT64 destWord = fromInterleaving(evenAndOddWord); - dest[0] = destWord & 0xFF; - dest[1] = (destWord >> 8) & 0xFF; - dest[2] = (destWord >> 16) & 0xFF; - dest[3] = (destWord >> 24) & 0xFF; - dest[4] = (destWord >> 32) & 0xFF; - dest[5] = (destWord >> 40) & 0xFF; - dest[6] = (destWord >> 48) & 0xFF; - dest[7] = (destWord >> 56) & 0xFF; -#endif /* Endianness */ -} - -#define extractLanes(laneCount, state, data) \ - { \ - int i; \ - for(i=0; i<(laneCount); i++) \ - setInterleavedWordsInto8bytes(data+i*8, (UINT32*)state+i*2); \ - } - -#endif /* With or without interleaving tables */ - -#if defined(_MSC_VER) -#define ROL32(a, offset) _rotl(a, offset) -#elif (defined (__arm__) && defined(__ARMCC_VERSION)) -#define ROL32(a, offset) __ror(a, 32-(offset)) -#else -#define ROL32(a, offset) ((((UINT32)a) << (offset)) ^ (((UINT32)a) >> (32-(offset)))) -#endif - -#include "KeccakF-1600-unrolling.h" -#include "KeccakF-1600-32.h" - -#if (UseSchedule == 3) - -#ifdef UseBebigokimisa -#error "No lane complementing with schedule 3." -#endif - -#if (Unrolling != 2) -#error "Only unrolling 2 is supported by schedule 3." -#endif - -static void KeccakPermutationOnWords(UINT32 *state) -{ - rounds -} - -static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount) -{ - xorLanesIntoState(laneCount, state, input) - rounds -} - -#ifdef ProvideFast576 -static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(9, state, input) - rounds -} -#endif - -#ifdef ProvideFast832 -static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(13, state, input) - rounds -} -#endif - -#ifdef ProvideFast1024 -static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(16, state, input) - rounds -} -#endif - -#ifdef ProvideFast1088 -static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(17, state, input) - rounds -} -#endif - -#ifdef ProvideFast1152 -static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(18, state, input) - rounds -} -#endif - -#ifdef ProvideFast1344 -static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input) -{ - xorLanesIntoState(21, state, input) - rounds -} -#endif - -#else /* (Schedule != 3) */ - -static void KeccakPermutationOnWords(UINT32 *state) -{ - declareABCDE -#if (Unrolling != 24) - unsigned int i; -#endif - - copyFromState(A, state) - rounds -} - -static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(laneCount, state, input) - copyFromState(A, state) - rounds -} - -#ifdef ProvideFast576 -static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(9, state, input) - copyFromState(A, state) - rounds -} -#endif - -#ifdef ProvideFast832 -static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(13, state, input) - copyFromState(A, state) - rounds -} -#endif - -#ifdef ProvideFast1024 -static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(16, state, input) - copyFromState(A, state) - rounds -} -#endif - -#ifdef ProvideFast1088 -static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(17, state, input) - copyFromState(A, state) - rounds -} -#endif - -#ifdef ProvideFast1152 -static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(18, state, input) - copyFromState(A, state) - rounds -} -#endif - -#ifdef ProvideFast1344 -static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input) -{ - declareABCDE - unsigned int i; - - xorLanesIntoState(21, state, input) - copyFromState(A, state) - rounds -} -#endif - -#endif - -void KeccakInitialize() -{ -#ifdef UseInterleaveTables - buildInterleaveTables(); -#endif -} - -void KeccakInitializeState(unsigned char *state) -{ - memset(state, 0, 200); -#ifdef UseBebigokimisa - ((UINT32*)state)[ 2] = ~(UINT32)0; - ((UINT32*)state)[ 3] = ~(UINT32)0; - ((UINT32*)state)[ 4] = ~(UINT32)0; - ((UINT32*)state)[ 5] = ~(UINT32)0; - ((UINT32*)state)[16] = ~(UINT32)0; - ((UINT32*)state)[17] = ~(UINT32)0; - ((UINT32*)state)[24] = ~(UINT32)0; - ((UINT32*)state)[25] = ~(UINT32)0; - ((UINT32*)state)[34] = ~(UINT32)0; - ((UINT32*)state)[35] = ~(UINT32)0; - ((UINT32*)state)[40] = ~(UINT32)0; - ((UINT32*)state)[41] = ~(UINT32)0; -#endif -} - -void KeccakPermutation(unsigned char *state) -{ - /* We assume the state is always stored as interleaved 32-bit words */ - KeccakPermutationOnWords((UINT32*)state); -} - -#ifdef ProvideFast576 -void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring576bits((UINT32*)state, data); -} -#endif - -#ifdef ProvideFast832 -void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring832bits((UINT32*)state, data); -} -#endif - -#ifdef ProvideFast1024 -void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring1024bits((UINT32*)state, data); -} -#endif - -#ifdef ProvideFast1088 -void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring1088bits((UINT32*)state, data); -} -#endif - -#ifdef ProvideFast1152 -void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring1152bits((UINT32*)state, data); -} -#endif - -#ifdef ProvideFast1344 -void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data) -{ - KeccakPermutationOnWordsAfterXoring1344bits((UINT32*)state, data); -} -#endif - -void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount) -{ - KeccakPermutationOnWordsAfterXoring((UINT32*)state, data, laneCount); -} - -#ifdef ProvideFast1024 -void KeccakExtract1024bits(const unsigned char *state, unsigned char *data) -{ - extractLanes(16, state, data) -#ifdef UseBebigokimisa - ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2]; - ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3]; - ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4]; - ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5]; - ((UINT32*)data)[16] = ~((UINT32*)data)[16]; - ((UINT32*)data)[17] = ~((UINT32*)data)[17]; - ((UINT32*)data)[24] = ~((UINT32*)data)[24]; - ((UINT32*)data)[25] = ~((UINT32*)data)[25]; -#endif -} -#endif - -void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount) -{ - extractLanes(laneCount, state, data) -#ifdef UseBebigokimisa - if (laneCount > 1) { - ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2]; - ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3]; - if (laneCount > 2) { - ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4]; - ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5]; - if (laneCount > 8) { - ((UINT32*)data)[16] = ~((UINT32*)data)[16]; - ((UINT32*)data)[17] = ~((UINT32*)data)[17]; - if (laneCount > 12) { - ((UINT32*)data)[24] = ~((UINT32*)data)[24]; - ((UINT32*)data)[25] = ~((UINT32*)data)[25]; - if (laneCount > 17) { - ((UINT32*)data)[34] = ~((UINT32*)data)[34]; - ((UINT32*)data)[35] = ~((UINT32*)data)[35]; - if (laneCount > 20) { - ((UINT32*)data)[40] = ~((UINT32*)data)[40]; - ((UINT32*)data)[41] = ~((UINT32*)data)[41]; - } - } - } - } - } - } -#endif -} diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h deleted file mode 100644 index c2de385..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h +++ /dev/null @@ -1,128 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ -#ifndef _Keccak1600_unrolling_h_ -#define _Keccak1600_unrolling_h_ - -#if (Unrolling == 24) -#define rounds \ - prepareTheta \ - thetaRhoPiChiIotaPrepareTheta( 0, A, E) \ - thetaRhoPiChiIotaPrepareTheta( 1, E, A) \ - thetaRhoPiChiIotaPrepareTheta( 2, A, E) \ - thetaRhoPiChiIotaPrepareTheta( 3, E, A) \ - thetaRhoPiChiIotaPrepareTheta( 4, A, E) \ - thetaRhoPiChiIotaPrepareTheta( 5, E, A) \ - thetaRhoPiChiIotaPrepareTheta( 6, A, E) \ - thetaRhoPiChiIotaPrepareTheta( 7, E, A) \ - thetaRhoPiChiIotaPrepareTheta( 8, A, E) \ - thetaRhoPiChiIotaPrepareTheta( 9, E, A) \ - thetaRhoPiChiIotaPrepareTheta(10, A, E) \ - thetaRhoPiChiIotaPrepareTheta(11, E, A) \ - thetaRhoPiChiIotaPrepareTheta(12, A, E) \ - thetaRhoPiChiIotaPrepareTheta(13, E, A) \ - thetaRhoPiChiIotaPrepareTheta(14, A, E) \ - thetaRhoPiChiIotaPrepareTheta(15, E, A) \ - thetaRhoPiChiIotaPrepareTheta(16, A, E) \ - thetaRhoPiChiIotaPrepareTheta(17, E, A) \ - thetaRhoPiChiIotaPrepareTheta(18, A, E) \ - thetaRhoPiChiIotaPrepareTheta(19, E, A) \ - thetaRhoPiChiIotaPrepareTheta(20, A, E) \ - thetaRhoPiChiIotaPrepareTheta(21, E, A) \ - thetaRhoPiChiIotaPrepareTheta(22, A, E) \ - thetaRhoPiChiIota(23, E, A) \ - copyToState(state, A) -#elif (Unrolling == 12) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=12) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+ 1, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+ 2, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+ 3, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+ 4, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+ 5, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+ 6, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+ 7, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+ 8, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+ 9, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+10, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+11, E, A) \ - } \ - copyToState(state, A) -#elif (Unrolling == 8) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=8) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+6, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+7, E, A) \ - } \ - copyToState(state, A) -#elif (Unrolling == 6) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=6) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \ - } \ - copyToState(state, A) -#elif (Unrolling == 4) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=4) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \ - } \ - copyToState(state, A) -#elif (Unrolling == 3) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=3) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ - thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \ - copyStateVariables(A, E) \ - } \ - copyToState(state, A) -#elif (Unrolling == 2) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i+=2) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \ - } \ - copyToState(state, A) -#elif (Unrolling == 1) -#define rounds \ - prepareTheta \ - for(i=0; i<24; i++) { \ - thetaRhoPiChiIotaPrepareTheta(i , A, E) \ - copyStateVariables(A, E) \ - } \ - copyToState(state, A) -#else -#error "Unrolling is not correctly specified!" -#endif - -#endif \ No newline at end of file diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c deleted file mode 100644 index ee6d2cc..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c +++ /dev/null @@ -1,83 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#include -#include "KeccakNISTInterface.h" -#include "KeccakF-1600-interface.h" - -HashReturn Init(hashState *state, int hashbitlen) -{ - switch(hashbitlen) { - case 0: /* Default parameters, arbitrary length output */ - InitSponge((spongeState*)state, 1024, 576); - break; - case 224: - InitSponge((spongeState*)state, 1152, 448); - break; - case 256: - InitSponge((spongeState*)state, 1088, 512); - break; - case 384: - InitSponge((spongeState*)state, 832, 768); - break; - case 512: - InitSponge((spongeState*)state, 576, 1024); - break; - default: - return BAD_HASHLEN; - } - state->fixedOutputLength = hashbitlen; - return SUCCESS; -} - -HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen) -{ - if ((databitlen % 8) == 0) - return Absorb((spongeState*)state, data, databitlen); - else { - HashReturn ret = Absorb((spongeState*)state, data, databitlen - (databitlen % 8)); - if (ret == SUCCESS) { - unsigned char lastByte; - /* Align the last partial byte to the least significant bits */ - lastByte = data[databitlen/8] >> (8 - (databitlen % 8)); - return Absorb((spongeState*)state, &lastByte, databitlen % 8); - } - else - return ret; - } -} - -HashReturn Final(hashState *state, BitSequence *hashval) -{ - return Squeeze(state, hashval, state->fixedOutputLength); -} - -/* -static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval) -{ - hashState state; - HashReturn result; - - if ((hashbitlen != 224) && (hashbitlen != 256) && (hashbitlen != 384) && (hashbitlen != 512)) - return BAD_HASHLEN; * Only the four fixed output lengths available through this API * - result = Init(&state, hashbitlen); - if (result != SUCCESS) - return result; - result = Update(&state, data, databitlen); - if (result != SUCCESS) - return result; - result = Final(&state, hashval); - return result; -} -*/ - diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h deleted file mode 100644 index 13d127c..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifndef _KeccakNISTInterface_h_ -#define _KeccakNISTInterface_h_ - -#include "KeccakSponge.h" - -typedef unsigned char BitSequence; -typedef unsigned long long DataLength; -typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn; - -typedef spongeState hashState; - -/** - * Function to initialize the state of the Keccak[r, c] sponge function. - * The rate r and capacity c values are determined from @a hashbitlen. - * @param state Pointer to the state of the sponge function to be initialized. - * @param hashbitlen The desired number of output bits, - * or 0 for Keccak[] with default parameters - * and arbitrarily-long output. - * @pre The value of hashbitlen must be one of 0, 224, 256, 384 and 512. - * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect. - */ -HashReturn Init(hashState *state, int hashbitlen); -/** - * Function to give input data for the sponge function to absorb. - * @param state Pointer to the state of the sponge function initialized by Init(). - * @param data Pointer to the input data. - * When @a databitLen is not a multiple of 8, the last bits of data must be - * in the most significant bits of the last byte. - * @param databitLen The number of input bits provided in the input data. - * @pre In the previous call to Absorb(), databitLen was a multiple of 8. - * @return SUCCESS if successful, FAIL otherwise. - */ -HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen); -/** - * Function to squeeze output data from the sponge function. - * If @a hashbitlen was not 0 in the call to Init(), the number of output bits is equal to @a hashbitlen. - * If @a hashbitlen was 0 in the call to Init(), the output bits must be extracted using the Squeeze() function. - * @param state Pointer to the state of the sponge function initialized by Init(). - * @param hashval Pointer to the buffer where to store the output data. - * @return SUCCESS if successful, FAIL otherwise. - */ -HashReturn Final(hashState *state, BitSequence *hashval); -/** - * Function to compute a hash using the Keccak[r, c] sponge function. - * The rate r and capacity c values are determined from @a hashbitlen. - * @param hashbitlen The desired number of output bits. - * @param data Pointer to the input data. - * When @a databitLen is not a multiple of 8, the last bits of data must be - * in the most significant bits of the last byte. - * @param databitLen The number of input bits provided in the input data. - * @param hashval Pointer to the buffer where to store the output data. - * @pre The value of hashbitlen must be one of 224, 256, 384 and 512. - * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect. - */ -/* -static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval); -*/ - -#endif diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c deleted file mode 100644 index 75773d0..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c +++ /dev/null @@ -1,266 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#include -#include "KeccakSponge.h" -#include "KeccakF-1600-interface.h" -#ifdef KeccakReference -#include "displayIntermediateValues.h" -#endif - -int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity) -{ - if (rate+capacity != 1600) - return 1; - if ((rate <= 0) || (rate >= 1600) || ((rate % 64) != 0)) - return 1; - KeccakInitialize(); - state->rate = rate; - state->capacity = capacity; - state->fixedOutputLength = 0; - KeccakInitializeState(state->state); - memset(state->dataQueue, 0, KeccakMaximumRateInBytes); - state->bitsInQueue = 0; - state->squeezing = 0; - state->bitsAvailableForSqueezing = 0; - - return 0; -} - -static void AbsorbQueue(spongeState *state) -{ - /* state->bitsInQueue is assumed to be equal to state->rate */ - #ifdef KeccakReference - displayBytes(1, "Block to be absorbed", state->dataQueue, state->rate/8); - #endif -#ifdef ProvideFast576 - if (state->rate == 576) - KeccakAbsorb576bits(state->state, state->dataQueue); - else -#endif -#ifdef ProvideFast832 - if (state->rate == 832) - KeccakAbsorb832bits(state->state, state->dataQueue); - else -#endif -#ifdef ProvideFast1024 - if (state->rate == 1024) - KeccakAbsorb1024bits(state->state, state->dataQueue); - else -#endif -#ifdef ProvideFast1088 - if (state->rate == 1088) - KeccakAbsorb1088bits(state->state, state->dataQueue); - else -#endif -#ifdef ProvideFast1152 - if (state->rate == 1152) - KeccakAbsorb1152bits(state->state, state->dataQueue); - else -#endif -#ifdef ProvideFast1344 - if (state->rate == 1344) - KeccakAbsorb1344bits(state->state, state->dataQueue); - else -#endif - KeccakAbsorb(state->state, state->dataQueue, state->rate/64); - state->bitsInQueue = 0; -} - -int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen) -{ - unsigned long long i, j, wholeBlocks; - unsigned int partialBlock, partialByte; - const unsigned char *curData; - - if ((state->bitsInQueue % 8) != 0) - return 1; /* Only the last call may contain a partial byte */ - if (state->squeezing) - return 1; /* Too late for additional input */ - - i = 0; - while(i < databitlen) { - if ((state->bitsInQueue == 0) && (databitlen >= state->rate) && (i <= (databitlen-state->rate))) { - wholeBlocks = (databitlen-i)/state->rate; - curData = data+i/8; -#ifdef ProvideFast576 - if (state->rate == 576) { - for(j=0; jrate/8); - #endif - KeccakAbsorb576bits(state->state, curData); - } - } - else -#endif -#ifdef ProvideFast832 - if (state->rate == 832) { - for(j=0; jrate/8); - #endif - KeccakAbsorb832bits(state->state, curData); - } - } - else -#endif -#ifdef ProvideFast1024 - if (state->rate == 1024) { - for(j=0; jrate/8); - #endif - KeccakAbsorb1024bits(state->state, curData); - } - } - else -#endif -#ifdef ProvideFast1088 - if (state->rate == 1088) { - for(j=0; jrate/8); - #endif - KeccakAbsorb1088bits(state->state, curData); - } - } - else -#endif -#ifdef ProvideFast1152 - if (state->rate == 1152) { - for(j=0; jrate/8); - #endif - KeccakAbsorb1152bits(state->state, curData); - } - } - else -#endif -#ifdef ProvideFast1344 - if (state->rate == 1344) { - for(j=0; jrate/8); - #endif - KeccakAbsorb1344bits(state->state, curData); - } - } - else -#endif - { - for(j=0; jrate/8) { - #ifdef KeccakReference - displayBytes(1, "Block to be absorbed", curData, state->rate/8); - #endif - KeccakAbsorb(state->state, curData, state->rate/64); - } - } - i += wholeBlocks*state->rate; - } - else { - partialBlock = (unsigned int)(databitlen - i); - if (partialBlock+state->bitsInQueue > state->rate) - partialBlock = state->rate-state->bitsInQueue; - partialByte = partialBlock % 8; - partialBlock -= partialByte; - memcpy(state->dataQueue+state->bitsInQueue/8, data+i/8, partialBlock/8); - state->bitsInQueue += partialBlock; - i += partialBlock; - if (state->bitsInQueue == state->rate) - AbsorbQueue(state); - if (partialByte > 0) { - unsigned char mask = (1 << partialByte)-1; - state->dataQueue[state->bitsInQueue/8] = data[i/8] & mask; - state->bitsInQueue += partialByte; - i += partialByte; - } - } - } - return 0; -} - -static void PadAndSwitchToSqueezingPhase(spongeState *state) -{ - /* Note: the bits are numbered from 0=LSB to 7=MSB */ - if (state->bitsInQueue + 1 == state->rate) { - state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8); - AbsorbQueue(state); - memset(state->dataQueue, 0, state->rate/8); - } - else { - memset(state->dataQueue + (state->bitsInQueue+7)/8, 0, state->rate/8 - (state->bitsInQueue+7)/8); - state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8); - } - state->dataQueue[(state->rate-1)/8] |= 1 << ((state->rate-1) % 8); - AbsorbQueue(state); - - #ifdef KeccakReference - displayText(1, "--- Switching to squeezing phase ---"); - #endif -#ifdef ProvideFast1024 - if (state->rate == 1024) { - KeccakExtract1024bits(state->state, state->dataQueue); - state->bitsAvailableForSqueezing = 1024; - } - else -#endif - { - KeccakExtract(state->state, state->dataQueue, state->rate/64); - state->bitsAvailableForSqueezing = state->rate; - } - #ifdef KeccakReference - displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8); - #endif - state->squeezing = 1; -} - -int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength) -{ - unsigned long long i; - unsigned int partialBlock; - - if (!state->squeezing) - PadAndSwitchToSqueezingPhase(state); - if ((outputLength % 8) != 0) - return 1; /* Only multiple of 8 bits are allowed, truncation can be done at user level */ - - i = 0; - while(i < outputLength) { - if (state->bitsAvailableForSqueezing == 0) { - KeccakPermutation(state->state); -#ifdef ProvideFast1024 - if (state->rate == 1024) { - KeccakExtract1024bits(state->state, state->dataQueue); - state->bitsAvailableForSqueezing = 1024; - } - else -#endif - { - KeccakExtract(state->state, state->dataQueue, state->rate/64); - state->bitsAvailableForSqueezing = state->rate; - } - #ifdef KeccakReference - displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8); - #endif - } - partialBlock = state->bitsAvailableForSqueezing; - if ((unsigned long long)partialBlock > outputLength - i) - partialBlock = (unsigned int)(outputLength - i); - memcpy(output+i/8, state->dataQueue+(state->rate-state->bitsAvailableForSqueezing)/8, partialBlock/8); - state->bitsAvailableForSqueezing -= partialBlock; - i += partialBlock; - } - return 0; -} diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h deleted file mode 100644 index aeabe39..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -The Keccak sponge function, designed by Guido Bertoni, Joan Daemen, -Michaël Peeters and Gilles Van Assche. For more information, feedback or -questions, please refer to our website: http://keccak.noekeon.org/ - -Implementation by the designers, -hereby denoted as "the implementer". - -To the extent possible under law, the implementer has waived all copyright -and related or neighboring rights to the source code in this file. -http://creativecommons.org/publicdomain/zero/1.0/ -*/ - -#ifndef _KeccakSponge_h_ -#define _KeccakSponge_h_ - -#define KeccakPermutationSize 1600 -#define KeccakPermutationSizeInBytes (KeccakPermutationSize/8) -#define KeccakMaximumRate 1536 -#define KeccakMaximumRateInBytes (KeccakMaximumRate/8) - -#if defined(__GNUC__) -#undef ALIGN -#define ALIGN __attribute__ ((aligned(32))) -#elif defined(_MSC_VER) -#define ALIGN __declspec(align(32)) -#else -#define ALIGN -#endif - -ALIGN typedef struct spongeStateStruct { - ALIGN unsigned char state[KeccakPermutationSizeInBytes]; - ALIGN unsigned char dataQueue[KeccakMaximumRateInBytes]; - unsigned int rate; - unsigned int capacity; - unsigned int bitsInQueue; - unsigned int fixedOutputLength; - int squeezing; - unsigned int bitsAvailableForSqueezing; -} spongeState; - -/** - * Function to initialize the state of the Keccak[r, c] sponge function. - * The sponge function is set to the absorbing phase. - * @param state Pointer to the state of the sponge function to be initialized. - * @param rate The value of the rate r. - * @param capacity The value of the capacity c. - * @pre One must have r+c=1600 and the rate a multiple of 64 bits in this implementation. - * @return Zero if successful, 1 otherwise. - */ -int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity); -/** - * Function to give input data for the sponge function to absorb. - * @param state Pointer to the state of the sponge function initialized by InitSponge(). - * @param data Pointer to the input data. - * When @a databitLen is not a multiple of 8, the last bits of data must be - * in the least significant bits of the last byte. - * @param databitLen The number of input bits provided in the input data. - * @pre In the previous call to Absorb(), databitLen was a multiple of 8. - * @pre The sponge function must be in the absorbing phase, - * i.e., Squeeze() must not have been called before. - * @return Zero if successful, 1 otherwise. - */ -int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen); -/** - * Function to squeeze output data from the sponge function. - * If the sponge function was in the absorbing phase, this function - * switches it to the squeezing phase. - * @param state Pointer to the state of the sponge function initialized by InitSponge(). - * @param output Pointer to the buffer where to store the output data. - * @param outputLength The number of output bits desired. - * It must be a multiple of 8. - * @return Zero if successful, 1 otherwise. - */ -int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength); - -#endif diff --git a/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h b/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h deleted file mode 100644 index c11b109..0000000 --- a/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - --------------------------------------------------------------------------- - Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved. - - LICENSE TERMS - - The redistribution and use of this software (with or without changes) - is allowed without the payment of fees or royalties provided that: - - 1. source code distributions include the above copyright notice, this - list of conditions and the following disclaimer; - - 2. binary distributions include the above copyright notice, this list - of conditions and the following disclaimer in their documentation; - - 3. the name of the copyright holder is not used to endorse products - built using this software without specific written permission. - - DISCLAIMER - - This software is provided 'as is' with no explicit or implied warranties - in respect of its properties, including, but not limited to, correctness - and/or fitness for purpose. - --------------------------------------------------------------------------- - Issue Date: 20/12/2007 - Changes for ARM 9/9/2010 - */ - -/* modified by justin@basho.com to include Solaris endianness test */ - -#ifndef _BRG_ENDIAN_H -#define _BRG_ENDIAN_H - -#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */ -#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */ - -#if 0 -/* Include files where endian defines and byteswap functions may reside */ -#if defined( __sun ) -# include -#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ ) || \ -defined (__DragonFly__) -# include -# include -#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \ -defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ ) -# include -#elif defined (__SVR4) && defined (__sun) -# ifdef __sparc__ -# define BYTE_ORDER IS_BIG_ENDIAN -# else -# define BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ ) -# if !defined( __MINGW32__ ) && !defined( _AIX ) -# include -# if !defined( __BEOS__ ) -# include -# endif -# endif -#endif -#endif - -/* Now attempt to set the define for platform byte order using any */ -/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */ -/* seem to encompass most endian symbol definitions */ - -#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN ) -# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif defined( BIG_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -#elif defined( LITTLE_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -#endif - -#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN ) -# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif defined( _BIG_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -#elif defined( _LITTLE_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -#endif - -#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN ) -# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif defined( __BIG_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -#elif defined( __LITTLE_ENDIAN ) -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -#endif - -#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ ) -# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__ -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__ -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif defined( __BIG_ENDIAN__ ) -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -#elif defined( __LITTLE_ENDIAN__ ) -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -#endif - -/* if the platform byte order could not be determined, then try to */ -/* set this define using common machine defines */ -#if !defined(PLATFORM_BYTE_ORDER) - -#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \ -defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \ -defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \ -defined( vax ) || defined( vms ) || defined( VMS ) || \ -defined( __VMS ) || defined( _M_X64 ) -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN - -#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \ -defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \ -defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \ -defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \ -defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \ -defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \ -defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX ) -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN - -#elif defined(__arm__) -# ifdef __BIG_ENDIAN -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -# else -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -# endif -#elif 1 /* **** EDIT HERE IF NECESSARY **** */ -# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN -#elif 0 /* **** EDIT HERE IF NECESSARY **** */ -# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN -#else -# error Please edit lines 132 or 134 in brg_endian.h to set the platform byte order -#endif - -#endif - -#endif diff --git a/Example/Pods/NACrypto/README.md b/Example/Pods/NACrypto/README.md deleted file mode 100644 index c23e5ff..0000000 --- a/Example/Pods/NACrypto/README.md +++ /dev/null @@ -1,71 +0,0 @@ -NACrypto -========= - -You should be using [NAChloride](https://github.com/gabriel/NAChloride) (libsodium/NaCl) instead. This is for advanced crypto only. - -The following use Apple's CommonCrypto framework: - -* HMAC: *SHA1*, *SHA2* -* Digest: *SHA2* -* AES (256-CTR) - -The following are implemented from included reference C libraries: - -* HMAC: *SHA3/Keccak* -* Digest: *SHA3/Keccak* -* TwoFish (CTR) - -# Podfile - -```ruby -pod "NACrypto" -``` - -# HMAC (SHA1, SHA2, SHA3) - -```objc -NSData *mac1 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA2_512]; -NSData *mac2 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA3_512]; -``` - -# AES (256-CTR) - -```objc -// Nonce should be 16 bytes -// Key should be 32 bytes -NAAES *AES = [[NAAES alloc] initWithAlgorithm:NAAESAlgorithm256CTR]; -NSData *encrypted = [AES encrypt:message nonce:nonce key:key error:&error]; -``` - -# TwoFish (CTR) - -```objc -// Nonce should be 16 bytes -// Key should be 32 bytes -NATwoFish *twoFish = [[NATwoFish alloc] init]; -NSData *encrypted = [twoFish encrypt:message nonce:nonce key:key error:&error]; -``` - -# Digest (SHA2, SHA3) - -```objc -NSData *digest1 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA2_256]; -NSData *digest2 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA3_512]; - -// Directly use SHA3 -NSData *sha = [NASHA3 SHA3ForData:data digestBitLength:512]; -``` - -# Keychain Utils - -```objc -NSData *key = [NASecRandom randomData:32 error:&error]; -[NAKeychain addSymmetricKey:key applicationLabel:@"NACrypto" tag:nil label:nil]; -NSData *keyOut = [NAKeychain symmetricKeyWithApplicationLabel:@"NACrypto"]; -``` - -# NSData Utils -```objc -NSData *data = [@"deadbeef" na_dataFromHexString]; -[data na_hexString]; // @"deadbeef"; -``` diff --git a/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.h b/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.h index ab8a910..ffd0b98 100755 --- a/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.h +++ b/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.h @@ -99,6 +99,7 @@ static NSString *kNSDateHelperFormatSQLDateWithTimeEN_shashSeparated = @" + (NSString *) stringForDisplayFromDate:(NSDate *) date; + (NSString *) stringForDisplayFromDate:(NSDate *) date prefixed:(BOOL) prefixed; + (NSString *) stringForDisplayFromDate:(NSDate *) date prefixed:(BOOL) prefixed alwaysDisplayTime:(BOOL)displayTime; +- (NSString *) monthSymbol; - (NSString *) string; - (NSString *) stringWithFormat:(NSString *) format; - (NSString *) stringWithFormat:(NSString *) format timeZone:(NSTimeZone*) timezone; diff --git a/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.m b/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.m index a17741a..f8f8476 100755 --- a/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.m +++ b/Example/Pods/NSDate_Utils/Pod/Classes/NSDate+NSDate_Util.m @@ -139,6 +139,11 @@ static NSDateFormatter *_displayFormatter = nil; return -[self timeIntervalSinceDate:anotherDate]; } +- (NSString *) monthSymbol { + + return [[[NSDate sharedDateFormatter] monthSymbols] objectAtIndex:([self month]-1)]; +} + -(NSDate *) toLocalTime { NSTimeZone *tz = [NSTimeZone defaultTimeZone]; @@ -1190,4 +1195,4 @@ static NSDateFormatter *_displayFormatter = nil; } return @""; } - @end \ No newline at end of file + @end diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 96e633d..30ba025 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,710 +7,897 @@ objects = { /* Begin PBXBuildFile section */ - 0044008BF25599E4701DC05D7143A57D /* FBSDKShareDialogMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F61504322C791CBFABA0E03BB5BD64 /* FBSDKShareDialogMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 00769B190D2C39FCAA09DC0004A5EA76 /* FBSDKGraphRequestDataAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A5855DA2A036FE0DA398D3DECE6B252 /* FBSDKGraphRequestDataAttachment.m */; }; - 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = C0F0C246A358693DDC306F1B90514EC8 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0193B71F4C41EB0453BA95484719BE1E /* FBSDKShareOpenGraphContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 73EAEB2ACC28947EFDE3D15CB3DD5E27 /* FBSDKShareOpenGraphContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 01D662EA9BD22907E92F1B2621310A07 /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFEE023C1812D2A21356E8492D857BE /* ALView+PureLayout.m */; }; - 01F278A54C85C2C865DDAD4090C559B6 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = C2392FC029A1A994002C8ADEF511B8F1 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 02414528B6D50F6551A4C2B83D3B5EDD /* FBSDKGameRequestDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 752A4F33FDBCE314B01265F228AE9FC2 /* FBSDKGameRequestDialog.m */; }; - 02DE5DA34DCF1A86A851CD9D650635FD /* NAAES.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C27D8C9E1AEF410593CCBD29D5ACD56 /* NAAES.m */; }; - 034F4F061EE00447F6D8EC6EB23F0BEA /* FBSDKAccessTokenCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B42983F65301E6FC33FB5E0B8D7D7075 /* FBSDKAccessTokenCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 03674AF1F02ABBDF3871B6D5116CC362 /* BFCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = F506431B86469BF9550E7E848C3059E2 /* BFCancellationTokenRegistration.m */; }; - 03890D59600D45E6E9463700F9B11FFE /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 506805DEEDDE08004B6C60B624ADA2FE /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 038E6D83DAC1ADB12A3A24F043850DD4 /* PEAR-FileManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1599782BA1B2F33B3538CA19A571A942 /* PEAR-FileManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03974DBFA76336D78A71143892141761 /* FBSDKAccessTokenCacheV3_21.m in Sources */ = {isa = PBXBuildFile; fileRef = 4206F36137803A80E0484EF7F632C376 /* FBSDKAccessTokenCacheV3_21.m */; }; - 039854EF33A78AB7BCF40EF412207E03 /* FBSDKLogo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F5F32A6D215C6B3EE4E9CC81EE092FD /* FBSDKLogo.m */; }; - 042CD3EF017770BB04B03CC181E14CF8 /* BFCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = D1D25BE326C5F0754BB5250894DF05A1 /* BFCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 04E9E07F3816EA0C3DFBD7B7A221AED4 /* FBSDKShareMediaContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E41B4DB2B3154C1F8370682035C9D46E /* FBSDKShareMediaContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0526E02C4AA867933C5A40D7AFCDD97F /* FBSDKProfile+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88D3C6E20A2F8CA7B91A377A0C84ED /* FBSDKProfile+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 056A88B801658B31B0F50449E0C26D6A /* FBSDKURLSessionTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 4151A59A353EA4CFBC1A0EB436FECBB2 /* FBSDKURLSessionTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 056AD7848AE876E8978F9B7E1B929DB6 /* NACrypto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D884498DAE38ED9E68E5921E2E7A7CF7 /* NACrypto-dummy.m */; }; - 05E3437C51FFC76A7E985D0F47155B5A /* FBSDKAppEventsDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F88DF088FA82BF589AEAB9B984573D5 /* FBSDKAppEventsDeviceInfo.m */; }; - 06577217F4423C33142FBFF301CC52ED /* FBSDKLoginButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 19A290D4124DBB9ED53D935CA5E95EF3 /* FBSDKLoginButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0676595134A6036819E78D0404919486 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = F50B06F339F9EE4A44CF63CD95C8C52D /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 075474E3DC38C236D328BDF5BF758884 /* FBSDKLiking.h in Headers */ = {isa = PBXBuildFile; fileRef = E6B8BDA5B0686A17608FDD5741AACD14 /* FBSDKLiking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 076BFF5AE8F990F1118BD3B83E5C5978 /* FBSDKKeychainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B56946EA105EBEB1A2A6F0A5AC84BAE /* FBSDKKeychainStore.m */; }; - 0790B89F7D927E8EA37EE8333C3E8F2D /* FBSDKLikeDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B9074F460A1A12301DD810641B6097A /* FBSDKLikeDialog.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 07BD9BB69340EC987E9BD500827372EC /* FBSDKAppEventsStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CA6A1B7E083846C92EA529F4F6C1663 /* FBSDKAppEventsStateManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 08476B503E1633DF0883EC488786E390 /* NSDate_Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0772BD39CED296B17A2C8DEA14E72D1E /* NSDate_Utils-dummy.m */; }; - 0928BA036BA53560549F5D01125205BD /* FBSDKGameRequestContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 930ED3F8FBD102B5D27785CAEE03AC5A /* FBSDKGameRequestContent.m */; }; - 093ADA885823F6616215B90E407BE193 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 0944C3EF6E4E5935423947B9D0CFF1B0 /* FBSDKShareOpenGraphValueContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 81409E4091A8BB319B977C232DA64756 /* FBSDKShareOpenGraphValueContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 09F6E022AD1A40996E3BC400A90093DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9E60F2C387D51A3F34BCE723D17BF4 /* UIKit.framework */; }; - 0A0E468BAEA3F6CB77CC37C6C618B5B8 /* FBSDKSharingButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C5251D4E2944A644061FF4656C1DE07 /* FBSDKSharingButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0A539197F1612A9881DBE93BC55AE9CA /* CocoaSecurity-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C835A128F900B3BBDFD3141151564B10 /* CocoaSecurity-dummy.m */; }; - 0B11B174B2ADC6056A89A3EBE624151D /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */; }; - 0B5A20CFF219A8971C700691E59D2ED7 /* FBSDKLoginCompletion+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F3E2D19E782F4709189F8D67D427BA44 /* FBSDKLoginCompletion+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0CABC146B7AE68D57FFCADE2BE7043A5 /* CocoaSecurity-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 10E8FC6CE4CF40378287BE9DFD02D1EF /* CocoaSecurity-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0CC0EB95B6885B065161D63962F698B1 /* BFCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 6958B7DE781469EB21BC81F0DFCF78EE /* BFCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = C0873AD84D8669AFD01255C198A2EDAC /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0D3FBF37E9E7829108F70F4D5658918A /* EXPMatchers+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 536C23ADA0C6D380428BC6FD94DBB06B /* EXPMatchers+FBSnapshotTest.m */; }; - 0D5BB675E2628E585B3A7D47660D203A /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CCAD480BC0AC8CA507664714A8642256 /* NSArray+PureLayout.m */; }; - 0D7CF91C8CD924F7C0535FEAB93C9DC2 /* FBSDKLikeActionControllerCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F63FADF94F061DE473516A2CAF7FE5EB /* FBSDKLikeActionControllerCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0D88A1E866B5FC21F500DE9B698F4295 /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = D14FB966FA5866E8E9F0E7DB8E86699A /* CodFis+Helper.m */; }; - 0D93094AB01E5FDDA4E50762FF2FEFA4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 0E7BA921031FFB0DC48396C364C835EF /* NAKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = E9EBDB959779FFCC18B7D87B7AB50EDF /* NAKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0E86BBA3A65849769B47995A5E91C881 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9286F282527F68DE4C8A7D20EDBACEF4 /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EC3A09D906AF6398A7FB2CCC92A596D /* UIDevice_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7269980DFC28D4F99B8326C002888699 /* UIDevice_Utils.framework */; }; - 0EC86AD4A19CEE78DA15BB13FD64D7B2 /* BFAppLinkTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 945353F195A02CE031D020E67CD84E4B /* BFAppLinkTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EE37B4F65396E9B7E3FE2D7ACAF4EA6 /* FBSDKLoginTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = CCAA0D0A1E143CF733A210B08127C2F7 /* FBSDKLoginTooltipView.m */; }; - 0F2B4541EEC2608FAC614205B5617705 /* FBSDKMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B2EF43AAF0680C6E4AF0E70279A3429 /* FBSDKMath.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0F31F70A8218D6E5031F94C045549E8D /* KeccakF-1600-32.h in Headers */ = {isa = PBXBuildFile; fileRef = 5672B640956F6D68DAA57B839B52961B /* KeccakF-1600-32.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0F80466DCA26561A8A3646CC9E61809C /* FBSDKSharePhotoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A013F051D2FCF67AAFF27B134C958DC /* FBSDKSharePhotoContent.m */; }; - 0FB6434BA8491ED55C8499B3B360DE5E /* FBSDKAppEventsUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = D4E123B46D0B10682745F630E8895069 /* FBSDKAppEventsUtility.m */; }; - 0FC0C6CDBB7DF49609A69F4EDB22DFE2 /* NATwoFish.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BAEE53309D5126D128429931855124A /* NATwoFish.m */; }; - 1009851D0C0B3FCBC574C414CC4D31B0 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 04DC4A94C4D3ADA1053F1BA8E23BEC63 /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 101EDFA6B8F7C909998E9D5E265200DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 104F7504309459681FFD96618516291F /* FBSDKCloseIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = ABC6E833C09273BA347F3A66D98FABDE /* FBSDKCloseIcon.m */; }; - 10839BE4DCA013D0D5E6DDAAD1B38463 /* BFTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C0D484CCB9A8DEAC4A1AB4DFC73BF7B /* BFTaskCompletionSource.m */; }; - 11770572CFE88E09AEBE3A26FF06CE91 /* FBSDKMonotonicTime.m in Sources */ = {isa = PBXBuildFile; fileRef = F1CC66B259007DA33984C839FF7EBFC1 /* FBSDKMonotonicTime.m */; }; - 125227362C0FFB5F6F19E36A4932CE4C /* FBSDKShareLinkContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B8AB2A6B65B6BE832CB517551658CCF /* FBSDKShareLinkContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1271771DBA7D24BB75422855AB071578 /* FBSDKShareOpenGraphValueContainer+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F9EDDCAF4832D8956A91D1D4BE5F8C00 /* FBSDKShareOpenGraphValueContainer+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 129FFBED713A26B9C69E4DD24AC9FC22 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 12E4D4EF10CAA59DD70271EB9A8EBFCB /* CodFis-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 801F8D7201B1A789D6F6AF3FF3D5E637 /* CodFis-Helper-dummy.m */; }; - 13BCC291714AE5B120BFBA817A668D4A /* FBSDKAccessTokenCacheV4.h in Headers */ = {isa = PBXBuildFile; fileRef = AA6287A2BFFD391C0E946DD927FD9972 /* FBSDKAccessTokenCacheV4.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 13DE89E4C21857D73FCC4D79F5ADF9A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 140E77A506AAB754419DB03526188560 /* FBSDKErrorRecoveryConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C970CDEEFB4AB18968DC8BC54189B8E /* FBSDKErrorRecoveryConfiguration.m */; }; - 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 097DCF1D20A2C03740EFD119040E1095 /* UIActivityIndicatorView+AFNetworking.m */; }; - 146D2FD2E3B98DA591885219099F2A4A /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 162716C38EF78513048FB9216F8B9DA9 /* SPTCallSite.m */; }; - 1492F065F5EFD049EE05C202CDDF78F9 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61C5BFA52AD671087017F84C858A14A6 /* QuartzCore.framework */; }; - 14B8A255B60DC004534AF3308D48233A /* NACrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 4497FEE51180DC29498CAB279818A06E /* NACrypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 14BF023BDEFCE0174FD27A343DAB3D03 /* FBSDKLikeActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = E4DAC54DE381BDEBB514E4E8EDADC9D1 /* FBSDKLikeActionController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 150503B99F77D3D8897EFFC68C09A351 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E023AB2F3C3501F3A47E9E704CD0EB7 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 153ECED5046F5245055EF54247FC0512 /* NAKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 0133FA0017DCCFC33A86B183E30F9DB9 /* NAKeychain.m */; }; - 15711572776291F22B55A6ADE95092BA /* FBSDKErrorConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 60A96753D8688251F745E74ACC0E7854 /* FBSDKErrorConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 15B03CD3D28B4055104A94137E6FF361 /* FBSDKCheckmarkIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 313E248F0A48B6C057461EA05E72F4D8 /* FBSDKCheckmarkIcon.m */; }; - 162ACAEC206A34705BDC7B73BFAED828 /* FBSDKAccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 165185018E842802B16172CAB91D6DB9 /* FBSDKAccessToken.m */; }; - 1780C12E873269455D238406C1480501 /* DJLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = D998D842B939D8480599184B6647E512 /* DJLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 17DF3EC5DF6A47805D6AA114A4C4BD9F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 19300DAA3E2216FC80B1D4DC7A7D358A /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CBAD91529DD8E751CED444A8305B77A /* PureLayout-dummy.m */; }; - 19AE1283982A53A819693D8E0B4F3529 /* FBSDKKeychainStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 7615EEDBD9DDED351AFC82965F4A8A8A /* FBSDKKeychainStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1B7730C43D80C9708F39CB16D69FFA9B /* FBSDKGraphRequestBody.m in Sources */ = {isa = PBXBuildFile; fileRef = 10CA6144EFCC2D447EB645BD078E93FA /* FBSDKGraphRequestBody.m */; }; - 1BCFCA9B004D142FEEBED60F2984159F /* NSUserDefaults-AESEncryptor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9816F872012B4A2693B97728B917ACE1 /* NSUserDefaults-AESEncryptor-dummy.m */; }; - 1BEAFDB50EBC1DF502731B369B797371 /* PEARFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C501E15233B0A20004D6765FEBEC5587 /* PEARFileManager.m */; }; - 1CEBE1C3C77649E972E5CF0E0D5147A9 /* FBSDKLoginError.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD81B55FF19E8990A0336F1F91EC28E /* FBSDKLoginError.m */; }; - 1D676445A1446539D4B722E6EF0C802A /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 738F0DBBDBD7ABC4F48AC4FE5188421B /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 1E0C1C24BB58DC9EAE01F0AC167FD4D2 /* FBSDKProfilePictureView.h in Headers */ = {isa = PBXBuildFile; fileRef = 622255FA7A15F311A1E96F47F740A15C /* FBSDKProfilePictureView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E157747466C9ADBF7A5E2F6D04088E7 /* FBSDKErrorRecoveryConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 93A162C9FFAC6F668C340693AE9C8F6C /* FBSDKErrorRecoveryConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EEC97E4D9DA6D5EC9237DF2250DA26 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1E32F0FAC5350A4EA7444263EC0415D9 /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = B63AC222718E4159E2F01CF58FFA8FE8 /* NSLayoutConstraint+PureLayout.m */; }; - 208503A7F9767147A4C48C9536DC2FAE /* PNAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 80AE03BA26324C8F1456156A7674C94C /* PNAddress.m */; }; - 20A2A483CDC911D6DB2EAD12444D1406 /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = B0DA4D12B8F9B9FA38E71505C31CE1F2 /* SPTTestSuite.m */; }; - 20EF6C21A196BC087854FD24CF7E2A3C /* BFMeasurementEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AE467AD264B56667AAFD7F0B8B1977F /* BFMeasurementEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 214684A07D91C92E10FEC0A77BBA5770 /* FBSDKBoltsMeasurementEventListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB4AA9B383E78A568F74E634C11C59 /* FBSDKBoltsMeasurementEventListener.m */; }; - 214F8D721940BD9AA4BAB0E5AE2E8A1C /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1891B64B1A2F1AD1FC351CF184B878B4 /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 217D24BC7833DDEC7A690444ECAD707E /* FBSDKTimeSpentData.h in Headers */ = {isa = PBXBuildFile; fileRef = DD9E58EB793E10299A8526D5C8C7377C /* FBSDKTimeSpentData.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 22F97C56F6E24837400563B7D0EAFB7E /* BFAppLinkNavigation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1179C0CB305C314C26A1C6CF609F482A /* BFAppLinkNavigation.m */; }; - 2304700F18E593CD7F799740E4D1A263 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 238C9CC2D949C584DE7E086BFF4CABC8 /* FBSDKBridgeAPICrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 02A3D7C33C9E394B868FE582E28CD22D /* FBSDKBridgeAPICrypto.m */; }; - 23B48C221B30598459B9EF801A35232F /* PNObjectUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 83848160E1BBFE8DC9C5A5DC98137AA3 /* PNObjectUtilities.m */; }; - 23EFB184AD12FB1014FFC765CE0D710A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 68972A27C3CF6E198076F82DECBC6DB1 /* Security.framework */; }; - 2414F7CC54A9CD6DEAE3D816D2A3BE72 /* FBSDKLikeObjectType.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DB7C32917C6DC816EE3FB80727E27E1 /* FBSDKLikeObjectType.m */; }; - 2429D5C143D7F35D89795E1F2B3BC3E8 /* FBSDKGraphRequest+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = EBC3851758A666A152FC00F1104EA9FA /* FBSDKGraphRequest+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2433C1EF0CA19F668278082E1927892B /* FBSDKCoreKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D0A78DF22F737ED096473CD1097EB1F /* FBSDKCoreKit-dummy.m */; }; - 245803C463014C4C0A131235C5823BE0 /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F78BBE39183C91646E195FA6EFC0D57 /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 255345DF9F3F6DDC70B0ABAF2775324B /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = FC6560DB4549E256FE485D6C61773E4E /* SPTCompiledExample.m */; }; - 25A9E264C0FD7FC58C783D358AAD0356 /* FBSDKLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = A7ACCFBE1137A0DF73114F0FAFA661EF /* FBSDKLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 26BBC63406C6863BE6DD27C64A70CB42 /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = B3A3A36799B348C06733A7F09079873D /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 279BAFBD6332CEA060B8FCF53B57DF04 /* FBSDKShareDialogMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 39BAA9DC7FFBE4980F899E45EFD3623D /* FBSDKShareDialogMode.m */; }; - 285C6F6BE59E632CB219CD98B4EDC1AA /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E639CE85C661D2400F470B1338A14B0 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2916D75F69E777954F5BF46AE63C52C0 /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CE81DC45D36FB2F6378182866C9F1D2 /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E4E61662505F2FCD990F997D856F653 /* AFURLRequestSerialization.m */; }; - 2A2C66083BE54EDDCF0F4AE37C603020 /* UIDevice-Hardware.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CB3AAF10B30ABA149DEAD770C2AC0B8 /* UIDevice-Hardware.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2A2FC6BA5CD553E94C470C94DDCA3149 /* BFTask+Exceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 25DE62E4DFED9F1A496147DBA9760301 /* BFTask+Exceptions.m */; }; - 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 775FE42F0634B360F63A9D012E7EFE1C /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2BFDC7247E503D15507D8D23B2CBFFDD /* NANSMutableData+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 86DF7AE8C7BBFAE8C370D5A14F891EDC /* NANSMutableData+Utils.m */; }; - 2C56B5D43165AD9B4DD68D80B774E9CC /* FBSDKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = B252555CDA4C12995D564CC15F651C14 /* FBSDKMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C75633ADA03856BC39A9594FB144F70 /* BFAppLinkReturnToRefererController.h in Headers */ = {isa = PBXBuildFile; fileRef = F219B33590245FD6B174A35DA305F9F6 /* BFAppLinkReturnToRefererController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2C7DB0E39CB983C952EEAE7C1DC9AA08 /* BFAppLinkResolving.h in Headers */ = {isa = PBXBuildFile; fileRef = BA92F0D268EE029C6608E79B56F49C48 /* BFAppLinkResolving.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2CC183AE5C5A4EA8EE0E14768F464BBB /* Expecta+Snapshots-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 51C7F2450604283410B7B4253D935DD8 /* Expecta+Snapshots-dummy.m */; }; - 2E81617C064F3E68A7A2A9E6A370E073 /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D1F786C501CA316F8C971CAF37F4FC4 /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2ECBA559A0A5CF2C7208CA1B2652EA56 /* BFMeasurementEvent_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D43E49F254C607D0517B97940EB91EA6 /* BFMeasurementEvent_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2F44C834A6333C017E938A6FFEB95229 /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFC3891042E13ED9AA3C81E6F95338E7 /* CocoaSecurity.framework */; }; - 307208ED0075DC30C68B06C5FA49B907 /* RZDBCoalesce.m in Sources */ = {isa = PBXBuildFile; fileRef = 14775F91AE2B87BDAE8ABD015ECDCC70 /* RZDBCoalesce.m */; }; - 3089511208D63F73F1840F06C5798B87 /* FBSDKCloseIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = F0E3AFDD9099FDF627432ACFABB3B660 /* FBSDKCloseIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 31011DC1DA412EF5B5A9F2C136C2A207 /* FBSDKLikeBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = 572CE80B0D48B24A5005ED91A50A1892 /* FBSDKLikeBoxView.m */; }; - 31328536635BDC034D4E43B11CA846BD /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = D4032F926250CEB18C4A9764E768C6B5 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31F03BD2C1A98AA6CDB364D49CFCF60E /* FBSDKBridgeAPIRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 194D54AE7517DD8883F200EC98B72DD8 /* FBSDKBridgeAPIRequest+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 981B36CBA14D504B164C940222677DC7 /* UIButton+AFNetworking.m */; }; - 322D20FE50D9190D15FCC214039B735F /* FBSDKCoreKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2D8025BAB569BBFCDF3924F89CBEA4 /* FBSDKCoreKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 32703D1676CA94AE1A3D554D6FDAAA9F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 3280169B2A729C560FCD6E5A82CF0683 /* NANSString+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E8196C7952AF52995C1C1295E2AE69 /* NANSString+Utils.m */; }; - 333A1955D01E1E844521ACC7D1BCA28A /* KeccakF-1600-32-rvk.h in Headers */ = {isa = PBXBuildFile; fileRef = 23ECFA20CDB31C880A16DDCE0A3F4F17 /* KeccakF-1600-32-rvk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 334D6F21110FFF8DC10BCAC2C6FFC862 /* FBSDKServerConfigurationManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 42002B3D4EA4C2A0A3488A023D109FBA /* FBSDKServerConfigurationManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3373108A0C58136A0CE322C9A9D09051 /* FBSDKLikeBoxBorderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6823C9F7B4C6D8C06A7E98E592A6C669 /* FBSDKLikeBoxBorderView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B9070BC8E31EBF0EDA1121AD77C6297F /* UIProgressView+AFNetworking.m */; }; - 34DAB55F9E000B6DD29B4C85D84CA8D8 /* FBSDKAppLinkUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F24819F1A5448FF49CDE8ADBFFE7E0F /* FBSDKAppLinkUtility.m */; }; - 356A19EE27B9D168B907607C8117EA86 /* FBSDKShareDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DF3E685EABDC9ECD8426EB76969ADA /* FBSDKShareDefines.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 35969EE736E852B532834F4E6BAD290F /* RZDataBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = CD1BC9FE52338260A645DA1E535D60E9 /* RZDataBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35A4745B547F00556871FBB30BCF16A4 /* FBSDKServerConfigurationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 106F276479A16008EB8924DCA1D97214 /* FBSDKServerConfigurationManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 35A4CA396A4A1BE79CBE920301B32520 /* FBSDKTestUsersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 43FC1616813102032C42F5C6A3C602E0 /* FBSDKTestUsersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = AD2A53DF2B6BCAB906EC72B573214E37 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35CD05A495FF217AC60A5C2E53D34922 /* FBSDKAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D8C8EFC54433C1BBA35F88938E6AE47 /* FBSDKAppLinkResolver.m */; }; - 361B58CE2A28E03CA83A73617ED739F2 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 8031AFFDBD019C44A3B6CBA906CFF43E /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 3698CDC89390E6205A7D7EEF5517621F /* KeccakF-1600-32-s2.h in Headers */ = {isa = PBXBuildFile; fileRef = 879C8AE7CD9D1BBE080C3D5114C7261D /* KeccakF-1600-32-s2.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 372047120D09C7F54436E4E1B521B606 /* PEAR-FileManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EE7AA68499E8F596F53889595385C81 /* PEAR-FileManager-iOS-dummy.m */; }; - 37687F9F3EEF99F4D03AEED2B3A54E13 /* KeccakNISTInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F075B8B40DEE4C748EF4BDB007DB8B1 /* KeccakNISTInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 377481C4A55D124298EDFBD9B24ADB97 /* FBSDKGraphRequestMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 0918108917B0E16C13F44B9C42C02D07 /* FBSDKGraphRequestMetadata.m */; }; - 3849993FDFE7642E4BEF1096B047FB86 /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = B7B824E2CACE0E0262691A6A9329FD3E /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 38601A496DC568827507C636914CD354 /* Pods-PNObject_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E46B7AFFF2CB3F42C731CF9CFA5DFC85 /* Pods-PNObject_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38640F86ABD446506B6C54FBEBEDE7F3 /* FBSDKBridgeAPIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B77AFD5048E8186CAE849D65A9E8CE7 /* FBSDKBridgeAPIRequest.m */; }; - 388535BAC4CD5EB3E9B75C0A051BE5B5 /* FBSDKVideoUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B81B6F6D3AB3015A86086577491C7DD /* FBSDKVideoUploader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 38C63594F5392EEBACB8CE86EACAAD6D /* NASecRandom.m in Sources */ = {isa = PBXBuildFile; fileRef = 75C1BD7D462E54814D753F973BA15CA8 /* NASecRandom.m */; }; - 39461DAB3DE2637F4AE2BA94F19DCF2B /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C39A15782878E81810B5BA366A09FF6 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 396E1F23F96BA6D9CA3E2BF5DF9AEC6F /* RZDataBinding-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 74CECD8FB0884DC1FAB532E2548CC5B6 /* RZDataBinding-dummy.m */; }; - 3A34D865015EC4111D69150C84B19E67 /* FBSDKApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE193317E92BF7209AEAB5D91AC56D8 /* FBSDKApplicationDelegate.m */; }; - 3AE399BC7EEED91335666803DBF27D2F /* FBSDKBridgeAPIProtocolWebV2.h in Headers */ = {isa = PBXBuildFile; fileRef = 29C3B62491E17F65D81ED3CACABDE1AB /* FBSDKBridgeAPIProtocolWebV2.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3AF3566202539B0D4A08E2FFDAC3A0C6 /* UIDevice-Hardware.m in Sources */ = {isa = PBXBuildFile; fileRef = DC89F7F4F9D82AEAD38EF97E3C2A3B15 /* UIDevice-Hardware.m */; }; - 3B3BFE1743E56D8920631C1F28216759 /* AFOAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BE5E7F75FB2F7E5DECAA1350401BEB4 /* AFOAuthCredential.m */; }; - 3B41754212C34819A299F3B4D5978099 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 3B85574BC2C9B9CB35967D2C66F8421B /* twofish.h in Headers */ = {isa = PBXBuildFile; fileRef = A0C24F744098F257137E2CEBD373AD8B /* twofish.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3BCA2F7AC539F1F2AC0B1A2D72913816 /* FBSDKAppEvents+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 55DE6C6BA3D7F88720B2E5B12940A5EC /* FBSDKAppEvents+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3CD2D498CC06C4854E3D49728A6530B4 /* FBSDKContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C6F0E180D0735A8BDD8140E3ED1ECE46 /* FBSDKContainerViewController.m */; }; - 3CD519CC6BB85C1A0EE7D219FA2BFA69 /* Bolts.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1F9B70CE92EA00C4D9073538E8345C /* Bolts.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3CFCFB46364AF0574491286EA0B29B6B /* FBSDKAccessToken.h in Headers */ = {isa = PBXBuildFile; fileRef = CF2491406261008FC218FC09FC1A42D3 /* FBSDKAccessToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D1C615E741E95E2199E36C47AFE618A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 3D6F2C28486F5B85C53E943AEBCCE494 /* FBSDKShareError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F53E2911ECBCF069A36DEE8EC5B6362 /* FBSDKShareError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3DC79943B1DDD329253CF04413FF5372 /* DJLocalizableString.h in Headers */ = {isa = PBXBuildFile; fileRef = C8EC1F1C0A24BFC6EFC6D9FD9AA4580F /* DJLocalizableString.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3ED61D0A47336589F6A2664E29DD30EA /* FBSDKImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = BEC79A91516413A6CB552506C0F67F58 /* FBSDKImageDownloader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3F0B583FF1B1448023BADA22E8910ADA /* FBSDKLikeButton+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1981AED966A8EFAD27622FC7B22EA714 /* FBSDKLikeButton+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3F16C4A1634A914FFB94BF44DF22E20B /* StrongestPasswordValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 169EF9CEB6B169C2CE403B066621F7DA /* StrongestPasswordValidator.framework */; }; - 3F1A5D10778AAD482D977798476727A9 /* FBSDKMaleSilhouetteIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 069FFEE85417877D9F5B43441BB91A70 /* FBSDKMaleSilhouetteIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3FD8A12B4BA580D8ECF810ED7FD9495B /* FBSDKAppEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FC0A1D433AC4ADEF49F70DBB499475E /* FBSDKAppEvents.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4030554E25309FBF6886A5722736668F /* FBSDKCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = C9A54372288EB1A498A507A848165517 /* FBSDKCrypto.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 40623D6DE52CE70B57EC2CCA05C74D91 /* FBSDKCheckmarkIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = D46CE10C85A60FEF4C5C04F7816C4F34 /* FBSDKCheckmarkIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 40E2FFC845C9CFE285E221CF6D4CA27C /* FBSDKShareKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 91891DBB68F6C550B5F91B632DB725ED /* FBSDKShareKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 41CC214541946B82A25CE427BB81ABEA /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FA761348BB94295BB18E8CB7DC857C2 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 425C4DFD1FAB011D70F825631144BC4C /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C34E25317C19EE743E9EBF82BFE32EF /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42A28BA4760C936859C25687297E5815 /* FBSDKShareLinkContent+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 527791C0AC83FBA23B4AE92DF9D6BBF4 /* FBSDKShareLinkContent+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 439E4EE5D36B2E45C67DE812D5135F10 /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = FA02D34EE4E648228B5212EB0D4A987C /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44218F764FD54A83155071741BA4CF06 /* FBSDKGraphRequestMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = D9259F63CE606116679C3E5FCE8E86E1 /* FBSDKGraphRequestMetadata.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E8FC4EDE5FEE97057A1337065B935BD /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 44995983A29BC94B9CC792EDB679232C /* FBSDKSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = D3F49C6D867EA4408AF45B92215A0E5F /* FBSDKSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4499DC9A7038C8D353E2D610EA635074 /* FBSDKKeychainStoreViaBundleID.h in Headers */ = {isa = PBXBuildFile; fileRef = C0E7F0E4D2BE13D786EBF1F6626F25C9 /* FBSDKKeychainStoreViaBundleID.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 44B405215D163C906D607907B8308FAE /* FBSDKLikeActionControllerCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 84AD83C9DB6A765A528EA1C742FD5373 /* FBSDKLikeActionControllerCache.m */; }; - 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 944260FE741F60E05060465C480AAA99 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 466A01758D9BB683D61C1927B10D792C /* FBSDKDynamicFrameworkLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E88BDA81FCFDB3E8B0352C23D46D07 /* FBSDKDynamicFrameworkLoader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 467760A5E599FF4EEFA03868B984F335 /* FBSDKShareVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A8C3DC923577CC64C5DEA21A8FC9132 /* FBSDKShareVideo.m */; }; - 47BA77226056D790A2964605F468D6EA /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD53CCFCFF6B70FEC3AEBA0634EE5F55 /* FBSnapshotTestCase-dummy.m */; }; - 47C37CCF8FD8A44A5034370FD3F2C6F8 /* RZDBMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F23C49D2F5855C626500B165AE54D24C /* RZDBMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47D171E32EAE4FB61A9971B9BC00226D /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D71071E2FBFF9DBF0DEBAE640F805F3 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 47D5420A6BC063E99A5A6BA7E62555BA /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B19653E8D4F25B74BAE1E3F242FA765B /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47EC7BD047C906B92B85399E097E258E /* UIApplication+StrictKeyWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F52B01A559958D6978BE901604F4C9 /* UIApplication+StrictKeyWindow.m */; }; - 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4FB895A7A43B33DD0ACD2AC3EECF3D /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48475C221B5395136656E683E4CA258E /* CodFis-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1244BB0E7E2F0649AAEE6EFB44065C91 /* CodFis-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4861F2FFD5A4306E7B7BD3CD0D8199AC /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 21A0C4187813370C7F56413234E536CA /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4A571204986D316637D43D3F93DCAC77 /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = E937E6C8FAB23254C82C75FCDE1ED8A1 /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4AE3588EE4DC42B00E5C6E3061D0F000 /* FBSDKLikeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A4D85B2C4FD62D7587E844FB69E4AD9 /* FBSDKLikeButton.m */; }; - 4B2D5D94B3CE530A7464E328354FF4F3 /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 58FF555496033DE0A4E381933C7BB476 /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4B5B1630E7C17F0B3122A086FD9E7BB9 /* FBSDKShareKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 73924E5B4BD554AEAA7FBA2F933B4F58 /* FBSDKShareKit-dummy.m */; }; - 4BB25D865AC617D9089CF937FD1A98E8 /* FBSDKCoreKit.h in Headers */ = {isa = PBXBuildFile; fileRef = BBA46B79297081DBFB0341C024FEF404 /* FBSDKCoreKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C90F652C7F43AB6C049AF2A77119222 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9E60F2C387D51A3F34BCE723D17BF4 /* UIKit.framework */; }; - 4CA4F8F64565882DCFA174872749C0EF /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = AB0DCBCC5AD549D2A9FCA2C88D647130 /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4CC2E382704A6A7F44FC84D74F3F06F2 /* FBSDKBridgeAPIProtocolWebV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AE649B21312398B2D6279704A2AEEA0 /* FBSDKBridgeAPIProtocolWebV1.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4D3D77F614FB125C1880982C8FBAB4A1 /* KeccakF-1600-unrolling.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C773246C9AF4570817C21E2986E28F /* KeccakF-1600-unrolling.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D9795A249C3597A9DD2DB71BF51D244 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 4ECECEB5C372BB91D3A66BFD432AD598 /* BFCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = B618FA70916A984C224F4D27D5FD0CC8 /* BFCancellationTokenSource.m */; }; - 5024E3FD6178A8AC27FB1435CC9270F0 /* NAAES.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A94192763F40A477298762E34C81B8A /* NAAES.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 508B6D0572C0C3B4A3E019B814595D4A /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DAF821757C7F4FDD89B8B7E2BE81AEE /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 50FDB4CB4FACEAAD1F45C6CF087338F1 /* FBSDKErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 27DBA9BB9CA97C73B6B6DD451087CA14 /* FBSDKErrorRecoveryAttempter.m */; }; - 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 128B5C528BF447C9EA0F4B5F2A47121F /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5105976EB23D394E3E12CCA8EF38D27A /* NANSData+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CD1DFFCDF0D9D5888306076EA55A055 /* NANSData+Utils.m */; }; - 51162AA8524C4943C5DF8E606A076648 /* FBSDKShareUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 9694FE07BB9391AF5CDC5CA32F3F63CC /* FBSDKShareUtility.m */; }; - 5117F5EDDEA50BC6628068132896F8F0 /* FBSDKMessageDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFFCA91B8B3AFFD06111135CC339728 /* FBSDKMessageDialog.m */; }; - 511D62B87A3543567E66A9416BFC4D6C /* PNObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FF20F427822ADBE16D38081703B59C1 /* PNObject.m */; }; - 5176D4337E6EB5A5D414003464C49F22 /* FBSDKLoginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 828F406C66024E9875DEF502557C212C /* FBSDKLoginManager.m */; }; - 51B51F47C920126B81F02719C368B3FB /* StrongestPasswordValidator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D4EC769DC11500D3A95F2646CC4421 /* StrongestPasswordValidator-dummy.m */; }; - 51E3F8E47A2429857F390CD53E3A1D3C /* UIStoryboard+DJLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = C1B987DCEA2015FE245E18897637FAC2 /* UIStoryboard+DJLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 51E55254E279164D31743ABB2B0F9E35 /* twofish.c in Sources */ = {isa = PBXBuildFile; fileRef = 77C0FF775961C5CF58757D301B38149B /* twofish.c */; }; - 51FCC9EDD6B60BF63B5EF7CAC94CCF23 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F3B29C1E2F0F846F8947A26B1CC56A9 /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 525CE195FC0D4D02B71F72C7A84FB716 /* FBSDKLoginManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4ABA43641CEC76EF64F9845D1869E5 /* FBSDKLoginManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 52CEF537BFEFC9E2C0FFEA0871928065 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 533AAF6F926F155611608F054F3A70D4 /* FBSDKBridgeAPIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F35A9D890E922DFEDFE78AA8507B6E3F /* FBSDKBridgeAPIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5386920B6032F8686000D909CFF26041 /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 5368029F8A6D242D4309CFEEB7624772 /* SPTExampleGroup.m */; }; - 53882E613DA7185E0F29F050B7178E89 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */; }; - 53F11F79B06D22D82302FBCA3D24BDD4 /* NSUserDefaults+AESEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7696CBFF0B75F6198191F3805939C52B /* NSUserDefaults+AESEncryptor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 544721905C7D3AC402939979D447A056 /* NAHMAC.m in Sources */ = {isa = PBXBuildFile; fileRef = ADF18947C132306DC38A9D9CD7250B92 /* NAHMAC.m */; }; - 545CE0749C74F46FF1D61A52CA140901 /* FBSDKShareOpenGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 8085A91B1C2AFCC0DF8CAB9ED5264DA2 /* FBSDKShareOpenGraphObject.m */; }; - 546EB246F070EC71036377DA6C3C5680 /* FBSDKShareVideoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FC89226F1EACF8B7574B667AF7EE4FD /* FBSDKShareVideoContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 54814923B2EB217DB66F36F37B8245DD /* FBSDKShareOpenGraphAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 22308DB2B6086E1E08045E2E9AC4F629 /* FBSDKShareOpenGraphAction.m */; }; - 552A6ABD5890318A206EB9CB490BC0F9 /* FBSDKShareVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = B89D5852A636064D97080799DA54D2BD /* FBSDKShareVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 553C77C3BA656D7F8083C3B56984F521 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 5628CE8BD92ABA97AD73FDB13E7076DB /* nv-ios-http-status-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0461A4EE04990301C6BF4B7C75AF835F /* nv-ios-http-status-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 571EF2BEEAD0CC148168F4D92992610B /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */; }; - 5749EDA604DB957944E74D0D20DA506F /* FBSDKLikeObjectType.h in Headers */ = {isa = PBXBuildFile; fileRef = A640590C35B678CE7CEB1A1284909476 /* FBSDKLikeObjectType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 576E82D018C9BCE5B4F4D79BE724E909 /* DJLocalizationSystem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 771F5DCF0269FECCECD6AF2EE65C1F0E /* DJLocalizationSystem+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 57AA2024F038D2045AC2F8A9A5A50CF8 /* FBSDKDynamicFrameworkLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = F6813729A51BFBD7B2AA78344A099482 /* FBSDKDynamicFrameworkLoader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 57C1DAC24BEE6C12B29AAE68DD3EBEC7 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE915BA82F667F7139674785CFC1184 /* FBSnapshotTestController.m */; }; - 5890149031D7BE39D8F5721F6505E482 /* _FBSDKLoginRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = E7BE4448F8FACE945C026CE416E973BF /* _FBSDKLoginRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5922E3B61E351E2A21095BD92E4FE8AC /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 465A6F2EE0C464C01B77ADA202CB6E70 /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 593FACE5092D783FE41113EB6DDDE053 /* FBSDKErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = 080FD27F98D5EB328E5175D93460C808 /* FBSDKErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 597E5A323FD0306B81C3F7E9C8E5580D /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = D9BF93A09BF1C89C01AAD4E21607CACA /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5993F14F4E48863E136EEF30B581C24B /* FBSDKUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E15425875B0FB2D123BA0E4804E648F /* FBSDKUtility.m */; }; - 59BD06DC8DA9DB8D117C90096451CE81 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 59CFB9754D56BA871E641C7AC2E97C52 /* FBSDKGraphRequestConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB6A7B0C0EE447E5C6AF15003946886 /* FBSDKGraphRequestConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CFDB6D39967F8202C036BC533F95B45 /* AFURLResponseSerialization.m */; }; - 5A54A9178928558C579D201BF7500392 /* BFWebViewAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 150CF00FE6A11516E3A0B96B2A78B54D /* BFWebViewAppLinkResolver.m */; }; - 5AFD94BD9754A09252585B90A913DEE1 /* FBSDKSettings+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A30A88FB9D684CB0B3506513899C7E6 /* FBSDKSettings+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5B1E0217757C60E21362F4D429BB125B /* FBSDKAppEventsState.h in Headers */ = {isa = PBXBuildFile; fileRef = 7ADE08A08F02CDF7D749CF84474E66CD /* FBSDKAppEventsState.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5BF825C7DC7E5001FA21DF40C38736FE /* FBSDKAppInviteContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE029CF72986C651D3C2F0805BCA8C3 /* FBSDKAppInviteContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C64EFEA38EB7B1EB9F72BB7A5A0640E /* FBSDKLikeButtonPopWAV.h in Headers */ = {isa = PBXBuildFile; fileRef = 70FDFFF826A53335C23027859B4FC658 /* FBSDKLikeButtonPopWAV.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5D3A5E9359A70F84E5EC0C4CE701DDE5 /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 910B3617B882F19271B2F976F7AB5B11 /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D4700451D6C9DFC6D5FFB86671EA2AC /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D3085837EAC6A3F3B3F713E6A29127F /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D956692A8CF1B0B338213DF65990FDE /* PEARFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 98512618293EDB25CB0E3E47820B850D /* PEARFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D95DC370FE619787EA993FF91CA51EE /* UIApplication+StrictKeyWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 4936DFF5F014C24A4B927F5A7EB5012A /* UIApplication+StrictKeyWindow.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5E1D27133E2608B60A67383A7825315A /* CodFis_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 107715DA2109DC5443D3C5ADDA388EFD /* CodFis_Helper.framework */; }; - 5E2D97F124DD952AC454855ACBE8837F /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19BB647A58986E23B794017A975F0D83 /* FBSDKCoreKit.framework */; }; - 5E4F55D319FF771D658CCE335E7CB498 /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = C1E5A0A864B7FD0594C30E36F8E301B2 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 5ECC89F6AD60238FC2C45A81A454398E /* CodFis+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 7098787F74DA313F5F0A7EA6B0CF37E6 /* CodFis+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F160713BF583BCBC136CE95E62F9C2F /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A3C62ADDA16E2D20811991CD15EC360 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F175CA5FAF2F1209EBBE9240C06063C /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */; }; - 5F5D6507EB22C93BD14296088151A1F1 /* PNObject+Protected.m in Sources */ = {isa = PBXBuildFile; fileRef = ADEE7E13CC7E07607B280EFDD530AEFA /* PNObject+Protected.m */; }; - 6041105C965934F8A763700154EC1AA6 /* FBSDKUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = DC94B939977AFD1B6578D63D933E3E22 /* FBSDKUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60550CBEF2A1ECB61FAA64CE35685B66 /* FBSDKTriStateBOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = BBE33F43406A82D6606B44E3C7711DFF /* FBSDKTriStateBOOL.m */; }; - 60CD83FA1B2BF6E93B59834C1E0CBEF0 /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7C62815EB907B90A2276235C99F65 /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 610CF3A0227BF99BD5D6EFA7A69A7C04 /* FBSDKTestUsersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E7D33083B472435EC4A8FB478E0F956 /* FBSDKTestUsersManager.m */; }; - 61680D5413DD7EE723783B324EE3BEBA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 619F308ADA1F66BA128318455FC99AA2 /* FBSDKAppLinkUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = FB7AE5C24D94B0FE56E8603086A672AF /* FBSDKAppLinkUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6213D2E044D10181ED0C9503DB0683C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 626B69D3B2CC51013DB5950748098724 /* FBSDKShareKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6672D287D1F7B8F270415F88AACE7F1E /* FBSDKShareKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 63A49532C857D4508B8112C46EB1E501 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19BB647A58986E23B794017A975F0D83 /* FBSDKCoreKit.framework */; }; - 640751498CA9559EC1F88863178934B5 /* FBSDKKeychainStoreViaBundleID.m in Sources */ = {isa = PBXBuildFile; fileRef = E7E780F8055F36B2EB64F6F9F826A1CC /* FBSDKKeychainStoreViaBundleID.m */; }; - 6423252A4839C1345BE5625417BDA674 /* FBSDKShareError.m in Sources */ = {isa = PBXBuildFile; fileRef = BC324F8332AE9E945ABC1A685C3A16FD /* FBSDKShareError.m */; }; - 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6840D39EED7F0BE02879A035AE1A6910 /* AFNetworkActivityIndicatorManager.m */; }; - 64C46AF200F2347115A0DF2799D6E403 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A1DDDAB862816B14DC5257DC8054E22 /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65007B76142FF254119FA359C9694504 /* FBSDKShareOpenGraphAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 415858E3B6F3A4426DCDDF2C9F3EE901 /* FBSDKShareOpenGraphAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4395A027B3CE456B3C4352C887C14A63 /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65776A8016E9BB167855428DAE0198CF /* FBSDKMutableCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 57BEF7F8A63F66C2EEC1715792D47C77 /* FBSDKMutableCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65E02C25572655B649805823CB30D9B6 /* StrongestPasswordValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = 37B7CEE22E13E090816802B7B620D2E0 /* StrongestPasswordValidator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 65FD3CB5E2AD1C317C481C7D89CA9BD3 /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 470F8BAC94E5525E4201E26F04D57F9A /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66064FE057D6E98B6064299F4B819DF1 /* FBSDKWebDialogView.m in Sources */ = {isa = PBXBuildFile; fileRef = FA0AF7ACB30ADDB9FDC8E01D42B8D28B /* FBSDKWebDialogView.m */; }; - 660D3F9F24DBD302A9A6B5A4B0A5F6ED /* BFAppLinkReturnToRefererView.h in Headers */ = {isa = PBXBuildFile; fileRef = D2824474322C3812E6445D06993C4217 /* BFAppLinkReturnToRefererView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6723139B112BF314CB31B2A65B2DFBC2 /* FBSDKMessengerIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 91789F7F85C0BEAC158A81364DB917A1 /* FBSDKMessengerIcon.m */; }; - 677CE4FB5C80359B75D4ACFEBD307AC1 /* PNObject+PNObjectConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0DE27DC31F1AF7C4F57FF9D9242730 /* PNObject+PNObjectConnection.m */; }; - 67F350233BDECA29E91220A6E62A17FA /* BFTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 971E81322ADCCAB5404A2FFE69452EC3 /* BFTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6A02DCD5FCB28EFE76786889F85C371D /* FBSDKUIUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = A637A619C254664BAFA4BE0038EB4CF9 /* FBSDKUIUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6A3D2BF94C8A98AEE130A80DC2D99E4B /* FBSDKLoginManagerLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D1EA21A6B45CD2D06417B55647B75B7 /* FBSDKLoginManagerLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6A725E2BDA6D302C9F30439A6390689C /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = EA48AC73F7E6AE941976055409F8EE02 /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6AFE71483C188C376C7B0F37453FDB24 /* BFAppLink.h in Headers */ = {isa = PBXBuildFile; fileRef = FC4400CAA1906C8AC802221C3B73F548 /* BFAppLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BE01BA63F626BB87ADE5E09888C4883 /* FBSDKURLOpening.h in Headers */ = {isa = PBXBuildFile; fileRef = 516FBF4A64B2838556625012D16474D4 /* FBSDKURLOpening.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6BF7C2E65ECD57330DCF10555DC297D7 /* FBSDKBridgeAPIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6B86ED4A2678DF4F47C97953452426 /* FBSDKBridgeAPIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6BFA8B2B334C5D5D00F77275B4C4A0F2 /* FBSDKTriStateBOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = D540C557B5B74B5C11787B81E3FC144E /* FBSDKTriStateBOOL.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6C88FB17C3AE49E50ABF4C36176B55BB /* ExpectaObject+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 560963BCCEC7A4C877B134897344605A /* ExpectaObject+FBSnapshotTest.m */; }; - 6CF127B24583000E3FFCD707B5D444DE /* FBSDKLoginUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 26E66EEA1EC74635C4E7C981510871A7 /* FBSDKLoginUtility.m */; }; - 6D4A73AA8761FDBB91E51E7405BD6881 /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFC3891042E13ED9AA3C81E6F95338E7 /* CocoaSecurity.framework */; }; - 6E419B15BF5B55CB857A43BA477A1DDD /* UIDevice-Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 601074D15BBB17DE13E6B103DD07669E /* UIDevice-Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6EEC18FF97AB73D902D541D835287D3E /* PEAR_FileManager_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4184C06B684BB4F8446D92BC369E0BF3 /* PEAR_FileManager_iOS.framework */; }; - 6F1C1760FC1CDD7E2E7D2AAE3A8F353F /* BFURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 093866219AEB5A9CDE0A7A405AF3EEE3 /* BFURL.m */; }; - 6F1C8C2851E8B7476992360408E05B40 /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 856EB645B167B456E38B6F4D45A02B5B /* SpectaUtility.m */; }; - 6F6B96EA43D4E6F4BF012686974C658D /* FBSDKProfilePictureView.m in Sources */ = {isa = PBXBuildFile; fileRef = FAB15659B21DB1B9466ADCFE953E2FCC /* FBSDKProfilePictureView.m */; }; - 6FA693F86B8C583ED94F45EC0BDECBD2 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */; }; - 6FED5D168DB043A4C10151308C350E19 /* nv-ios-http-status-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F28DEA1D3C84F92911A885ED4AD7E5D /* nv-ios-http-status-dummy.m */; }; - 7208F7AA05E3AF326027AD5C3CE49C41 /* PNObjcPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 16E7E1A6F946A2D90B322BDEE0559DDD /* PNObjcPassword.m */; }; - 72BE65E696A388D4CC0D75BE461FEF1B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87B96D2768F69B52A41D9A3961BCDAC1 /* MobileCoreServices.framework */; }; - 7357F283046E9E694E441D6895AB0ADA /* FBSDKBridgeAPIProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B615E5CCF71340779660E61D883C92C4 /* FBSDKBridgeAPIProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 74B60B3D5F7834637905C08815B88D1E /* DJLocalization-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7E2E6BFACD8E6C0BA311DEAD667E7B /* DJLocalization-dummy.m */; }; - 7509627C97BE328428F0D1EA18C9C639 /* BFTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD593C7000C5D15DAD37DBF69D8D5BA /* BFTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 752F4F79861843E7BD13DC8A4A2C9916 /* FBSDKProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = FA53EA4FC5C730618B0D1F9FA3D8FFA0 /* FBSDKProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 754197D184C23A19146DB4C9B3B90050 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0911D320B4C730EB3905996AAC8313FC /* SwiftSupport.swift */; }; - 75DF265A4FEC4E42582B8570194CB583 /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CA31C87A8840D1FE9F9D8B319438659 /* UIImage+Diff.m */; }; - 761A6EF3F46041EF7CD18734491A1400 /* ResponseConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 786A4F1CF674C8C4601B3A1E7EE449D5 /* ResponseConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 769609A92489E52DD8C008ADDA912C00 /* BFAppLink.m in Sources */ = {isa = PBXBuildFile; fileRef = A8A76AFFE31CCA1152439BD7D7EFB72E /* BFAppLink.m */; }; - 76D1559D10EE737BC592DDAC5DF970D1 /* NSObject+RZDataBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C01CC6950B105814F11C9D5506B17D4 /* NSObject+RZDataBinding.m */; }; - 7759F03900D1BCD7639F11F69DBBFD52 /* FBSDKAudioResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4260B08A53FC4D6D1A25C4379D696927 /* FBSDKAudioResourceLoader.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 778C9F1A1715E05313578E39AB46726E /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD20ACDB2A48E24461F89676394099D /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 77E842DD77C1CCE9DC49E0A2173D3753 /* StrongestPasswordValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB909C23BE727D7234D629EFF1D3A3 /* StrongestPasswordValidator.m */; }; - 781CC5B0E7B6AA73A1D886A66781B8F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 78CC8D45CE234FB5EA6A4A20E5BF2822 /* Pods-PNObject_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA1CE72928E46C7F70D4BBE1CD90756D /* Pods-PNObject_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7998B292AC279EECC3394679D9F2F982 /* PNObjectConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 104A43325797FEF812D598DB98EE2146 /* PNObjectConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79AFF093369736722F048C6C957507C7 /* KeccakNISTInterface.c in Sources */ = {isa = PBXBuildFile; fileRef = E2C15D0622AA95C1A5DB901F437FE0B8 /* KeccakNISTInterface.c */; }; - 79DE41DBCA81E068AE38EA6E6A4158FC /* NSUserDefaults_AESEncryptor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4759D20AAB336BDBC3B9056107FA257A /* NSUserDefaults_AESEncryptor.framework */; }; - 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A8048FE35CB996870EAFE39A50B713BF /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A27CAFCB586104AA102A9C161AD0978 /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = DB04E78E16500E4E2671352265887345 /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7AD08DD47673203D9923E17C07B518AC /* FBSDKAppGroupAddDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = C5A7186E315B770E902D2173BF2EDEF7 /* FBSDKAppGroupAddDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B44A1B5D049C7099A1DEA2A32E73950 /* PNObjectUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F9CDED6A75D1C0BD1CDAA8DD1683FC6E /* PNObjectUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BC1ACD2505F5D4FB528545275E6E15B /* FBSDKButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 458CD0674A705929FB323E0643A6AC6A /* FBSDKButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = EA34CF7175FA8299F799F279BD373B92 /* UIWebView+AFNetworking.m */; }; - 7CEC22582F227DC8ECAD5986AA0D4DDB /* NSDate+NSDate_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = F24DF231FB88391E68059E1465C4072C /* NSDate+NSDate_Util.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DA0251032C7F0DF4135E7ABBA31D6A4 /* AFOAuth2Manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2320D1F05299B2011F0E4F45CE3B5EF3 /* AFOAuth2Manager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7DF1A51DB30128AE484809A749564D86 /* PNObjectConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 181AAC79AE329BF8A37DC3464EB116A4 /* PNObjectConfig.m */; }; - 7E81176499F06E523CE3039B08AB5051 /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B1A0B544E28B59FBF97283679BCA0B2 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7F1209D2DD89FBCDABDA3CDBB0DDB49D /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = F137F7CD074C7C02A4B2A8634B3715FE /* XCTestCase+Specta.m */; }; - 7F232B364E5D8E00F3A2C6CD3A90BFB5 /* FBSDKViewImpressionTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = DD05377164ED60445432EF6FD120C263 /* FBSDKViewImpressionTracker.m */; }; - 7F3677FD26EB887B876E568DA412A605 /* FBSDKBridgeAPIProtocolWebV2.m in Sources */ = {isa = PBXBuildFile; fileRef = 61880534ED324A24E6D3B163618EA157 /* FBSDKBridgeAPIProtocolWebV2.m */; }; - 80361E5C271B43570A973AC86DAA8EDC /* RZDBTransforms.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A604665CBF19E7F636BAEBD95436928 /* RZDBTransforms.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 803743BA4B05C17BE7C976A565EC66FF /* FBSDKPaymentObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = A84F612C0B213CDE3CF3E84E7EAB1524 /* FBSDKPaymentObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 806EDC86C4328EB13B0205DB3D0B6CB9 /* KeccakF-1600-opt32.c in Sources */ = {isa = PBXBuildFile; fileRef = 6E3FDA3F967CE146E983A26E2ED382CC /* KeccakF-1600-opt32.c */; }; - 80C7C9109EF900E34DDB6360A0D594A4 /* FBSDKShareDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = F0BEBEBF4191F06AEE5219E2AC25055A /* FBSDKShareDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80E746C79B5C3AC9B763ED4A1073F7DF /* nv_ios_http_status.m in Sources */ = {isa = PBXBuildFile; fileRef = 909127C04C9F68369FDDF7AC1768068D /* nv_ios_http_status.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 81B45C084802F06F24CB6B39A2C0D39D /* NATwoFish.h in Headers */ = {isa = PBXBuildFile; fileRef = EE7E996A1EAC1BAC50F20B5A75601A2E /* NATwoFish.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8220368E5F7EA70947BAD2B6F216C61B /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A2077FBA5B08032149AB4EF59FADB3 /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 827762B596901D18DAD29830875E1922 /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = FCC9170AA8E6F08A7A400C27E5CA2B88 /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 82E5A07FA4CEECF136C15FBF6E39250F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 83C94DD9A551CAEBB9000477466F9318 /* Bolts.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A94F9CED8F4DC0246DA87721383B65A /* Bolts.m */; }; - 8436B88A9D95EB840C84022CD613EFB0 /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 36A4BEDFDF420DDD1B237DC4895B48A8 /* Base64.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 84A687CE6E1562A985549A1E45524815 /* FBSDKConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C8823A2D48F6DF6733B040E41B3E8B40 /* FBSDKConstants.m */; }; - 8525046CD925148B361587708346F6F2 /* FBSDKGameRequestDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 357531F2DAD6E914C1BF17F6D9636F4F /* FBSDKGameRequestDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86362204FA92F6A663F363AE705EC71E /* FBSDKInternalUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E2BFE4C9E2428C97C1D668CCCE2E49C /* FBSDKInternalUtility.m */; }; - 86365A8DEDA7C9315120DED5EC7F23DC /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 24C975F36CBBA0A2F98D7E1F70A9F082 /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 868A5E476DDBEC6118FC23B8DEA8AE33 /* NSString-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 96F57B0A99DCBF0A8ECF1CADAD18AF86 /* NSString-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86A40D9CFD9051779B220F53DE991DCA /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 994622D30C0F4F0435DD448329A91A80 /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 870CAAA15357EFF9E1619737DEE56067 /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = AC2834EB5A8A7B8EDF87F6B5592FDD45 /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 879EAFCF990451D8559574C34FC8E567 /* BFURL_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8749BF6B0F4E06472F67FEC9B256FB60 /* BFURL_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 87AE70A44BD8E8676B2A3EDB6E334138 /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = BFC77BC718D7AF083B584BD80E8A0EF7 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87C61FE4EBA517506085582BD4175CCA /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = FC03386EA79B96A8DFFF4083C969E695 /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 87FFE70D58AD1DB646CC7F950888A47A /* FBSDKLoginManagerLoginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = C870D49EA251BCE79DBDDD9BA9C5094D /* FBSDKLoginManagerLoginResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 889FE136349E95DFBE20F050685FB124 /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = DDAB468A8E9108F8F2DAB190091FA177 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8993A2EE29E325936C594E09BF4E3301 /* FBSDKServerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = F89B79FDA318044201231C2CACD641C0 /* FBSDKServerConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 89B2F3F5B0F79FC7AD2C850A005343C1 /* FBSDKCoreKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F1BB16FD92A0240C20CDB1D9D12989F /* FBSDKCoreKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89CE4CEB1524909FD38F5FAABA2D28C8 /* FBSDKProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = C9C08217EB96F8547B4264E5B2B68248 /* FBSDKProfile.m */; }; - 89E45AB89C7ACBF805702F497DF4A20C /* nv_ios_http_status.h in Headers */ = {isa = PBXBuildFile; fileRef = DBD6C94CB1FF71899161DE01DF11861E /* nv_ios_http_status.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 89EA0DB307B82E934E699BF0D051FEF3 /* KeccakF-1600-32-s1.h in Headers */ = {isa = PBXBuildFile; fileRef = 913A46B76A2A3829523A960CC7B7F303 /* KeccakF-1600-32-s1.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A8FA82220ED1C8056D7142C05288F36 /* FBSDKGameRequestFrictionlessRecipientCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 603A8BA299C0A96AC1B38A33FE61C96D /* FBSDKGameRequestFrictionlessRecipientCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8B0A34DADDB56E70CF4A5177E65AA081 /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DC966D63A1DB1F318942C34FC5C5F7D1 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B8C4B3E28E6FC6D26037EFC282BE4C5 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4699E8089BA107F636C4AC11232E99EA /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BDBA8042C5829E782549C11420A899E /* FBSDKColor.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EF1722FBFA1ECDE3A93F12AC92086F /* FBSDKColor.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 8C0C4475FE508AE164781EA2CC81B1DE /* KeccakSponge.c in Sources */ = {isa = PBXBuildFile; fileRef = C042D38A4D79E0EE4B5BAACC087C0097 /* KeccakSponge.c */; }; - 8C14546CF091E0A5B1F0F37F576990B8 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB1160552267C19181DD6FD3FFDE3D5 /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CA05FFDF05D413B78EDD9302CD830A5 /* FBSDKSharingContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 812BFE0DB743F3ADDC7627B46A0CDAC6 /* FBSDKSharingContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D49114979B44DF683A9A964565E0FE6 /* FBSnapshotTestCase-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 447ADF5E7CAC0ED31D301ED4C24ED97B /* FBSnapshotTestCase-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D8436B0829A7EBFB796C8085B36B303 /* NASecRandom.h in Headers */ = {isa = PBXBuildFile; fileRef = BA39B7375F53FB1DD8E65EF133B60D65 /* NASecRandom.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D9845387F4B0C38178FBB6CAFD9DFFA /* AFOAuth2Manager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCE67703CD7B3CC6762F1498BB79A72 /* AFOAuth2Manager.m */; }; - 8DD5ADE2DD9ED7E6707B6AABABA74896 /* FBSDKImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 9340FA12D95D01D87D483BC3D178915C /* FBSDKImageDownloader.m */; }; - 8DFF91EA02FFECDB2445F2EE35F2A696 /* FBSDKShareConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 927F6C1866DF390B5946C4CBAFD617D5 /* FBSDKShareConstants.m */; }; - 8EDC47391C8554AD5C7A91C4D5AFC5F2 /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = AD0A0EB0536968DDAD1A8C542A55C607 /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F990515E868D90C15D2148DD1A22403 /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = DF4A09AF19061401C4BCADEACE57B4A9 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 909F54BCD8936358B5B9F5D20EEF230C /* NANSString+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ADF4ACF3DD91183393472E9B317EA98 /* NANSString+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91797A42C418AF288192FA18EADC4076 /* FBSDKServerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 34659F02D614870E5D89C82F31BB56D2 /* FBSDKServerConfiguration.m */; }; - 91E2A116F2CAC6500A8460B30F7A9458 /* BFTask+Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 05E9E049C8C84905322300773D7518D0 /* BFTask+Exceptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91EB6DB57094D8CBB0CC848CB3894385 /* _FBSDKTemporaryErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = 75DCA554F2929AB42D97D73EA91690BD /* _FBSDKTemporaryErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 91F5D444B364C644F740C5E1009F8D9D /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */; }; - 921FA041D516AA3E215C22346003ED8E /* KeccakF-1600-int-set.h in Headers */ = {isa = PBXBuildFile; fileRef = DC160AEC876314D0BAEB3818A1822DA1 /* KeccakF-1600-int-set.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9223D5D84DF106A4E4B0BE20B717446B /* NSString+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = B221FDA83880FE1D71BFB7C5F307B26E /* NSString+Helper.m */; }; - 9242EFA2F87E7A82ED4009423DA1A942 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 4347FEB7DF63BB3CABEB1E68E19C392D /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92BCDF82B00D61E87D4FA8CAC145A290 /* FBSDKShareKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D71F6B3C392E131E0FC22437A1F7FFCF /* FBSDKShareKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9316D38AC4614B6E2AEF043F917C59E7 /* FBSDKAppGroupAddDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AEEF7D3A0A840DEB859520340D8EB7 /* FBSDKAppGroupAddDialog.m */; }; - 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 53CA3E0151B30FA28F1A6B3A5DA4C53B /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94364282DFC18A23D5ED455D40442FD1 /* FBSDKSystemAccountStoreAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A24E6E21DE49BB3C017DF35F73317BD6 /* FBSDKSystemAccountStoreAdapter.m */; }; - 945EF17F9ADC9D2CB22EBDAEF4D89561 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = A02F8924C375CFA6C35290BAC9A5E558 /* VatNumber+Helper.m */; }; - 9471DCB9C837648942DD73BB25CBB1C4 /* FBSDKLikeButtonPopWAV.m in Sources */ = {isa = PBXBuildFile; fileRef = 2713BE3BF29F0F22CAE0DAC4077456D5 /* FBSDKLikeButtonPopWAV.m */; }; - 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 787BA5BD8C2B7E55A98E206B98E61D22 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9605A166839E5B582E5F4A08E786DF1F /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 4304D8D293EE6B1C29B284658A9DCF4D /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 961E8719BBAFEB0E752A770F706EBDBF /* FBSDKBridgeAPICrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 0215950BA21D88F4B62170F78697D0A3 /* FBSDKBridgeAPICrypto.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 962AE2FFA8C0A057E3586754E7A751B3 /* BFCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = FE861E8218B983DE7AD5428FCF196D52 /* BFCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 966A0C8CE02016ADDBEB15EB17FBA3CC /* PNObject+Protected.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F0944DC787429D7EFD09B2D4302D325 /* PNObject+Protected.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9695B31D33EA0EC9CFB42B9D8ABC447D /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = E87B6FFBB8085DFBAF320159D5F9E48F /* SPTSharedExampleGroups.m */; }; - 96A7D0F1FE874093C9A8C6B7AFB8F0FF /* FBSDKGraphRequestPiggybackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 507D5F118E2F4914BCC8D5518D40E76F /* FBSDKGraphRequestPiggybackManager.m */; }; - 96E38AB85794062A6E3BFF2CD1991FD7 /* FBSDKLoginConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 836EB9ACFDF104FE0A72E1A5AA42AD28 /* FBSDKLoginConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96F942CCDE8A8F09DAFA9DC245C6F671 /* FBSDKAccessTokenCacheV4.m in Sources */ = {isa = PBXBuildFile; fileRef = 21C0C4552AB762275CC7E62C01631E0A /* FBSDKAccessTokenCacheV4.m */; }; - 9830C5925A905F407D61B29355840A2B /* FBSDKTimeSpentData.m in Sources */ = {isa = PBXBuildFile; fileRef = 42AAAEB591D24578388DDAA152CF46AF /* FBSDKTimeSpentData.m */; }; - 983488C730E988A2CF777F011BA66782 /* FBSDKVideoUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = BC67AAF4C7AC01B70745C10C2021B27E /* FBSDKVideoUploader.m */; }; - 98571BE17A46245CA1717CF9157A0807 /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 50A1B0AF487D3AA1EEE6FAF14D79420D /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 987564B5D3CB86520614E00B79404DAC /* FBSDKMonotonicTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 79388ECF91E4197310CE9CFBEB871455 /* FBSDKMonotonicTime.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 989986EC0ACFB2CD119347871B4DE7CC /* FBSDKGameRequestContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 27998AA83106AAE4BE27F27954380103 /* FBSDKGameRequestContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98A185D9461F812F5DA76DD289F3251A /* nv_ios_http_status.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E252617A658E8D7DCEA1A6EF02DE6BA /* nv_ios_http_status.framework */; }; - 98CF4E57A36540E13153A545546A1D11 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEABFE21FFE5A29514AE371D1A40FD1 /* UIImage+Compare.m */; }; - 98D0FD6F634DB222D25B918930B0A3C6 /* BFTask.m in Sources */ = {isa = PBXBuildFile; fileRef = BFE77214B29EB93A54C7B9B7322C49F7 /* BFTask.m */; }; - 99E6D51A8A4E3FFB7601D182D995A3BA /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A6EBA2C61E2087ACD6D67D45CE3938D /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9A0ADF06F5B6BC3A70EDE1285BAF9346 /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B5D225DB40A9AD032D9C8147BD9C133 /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9A4D6DEE8FC1423FB6D05A88690A8920 /* FBSDKLoginKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FDFB7FC3985D1DD9FCD12D68096DF6F /* FBSDKLoginKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9ACC24131A77C72D3CD18DF5B5542AD1 /* FBSDKButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C245D5CD072B47750DE4D08E8DDBD142 /* FBSDKButton.m */; }; - 9B0D54DC78D209CFDB00542C9A7D8895 /* FBSDKGraphErrorRecoveryProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8391BDB35842F2EC28816D9209BBBB65 /* FBSDKGraphErrorRecoveryProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9BCDA5018A81DA38A04BDD58B1F6BEAF /* FBSDKGraphRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 305F512FB14155115EB0E6A7D88A78F8 /* FBSDKGraphRequest.m */; }; - 9C48AAE697ACEFFD9713A6888C477014 /* NSUserDefaults+AESEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = E4811C0E3D643AF36C15726EB48E1F69 /* NSUserDefaults+AESEncryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9C6436BBDE66CC89B982010C55DF8850 /* AFHTTPRequestSerializer+OAuth2.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F45814A2813D037FCCA1A533BD7D25D /* AFHTTPRequestSerializer+OAuth2.m */; }; - 9C7B286020562937791F7EAFFBF61ADC /* KeccakF-1600-opt32-settings.h in Headers */ = {isa = PBXBuildFile; fileRef = AD113893D39C850BB2383A5EC7EC832C /* KeccakF-1600-opt32-settings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CAFC7DAE2E661FC92393E5CC55D1D61 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BCFD8FB72018441F27D846509EC0678 /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9CFF07440060332E5BCB557D40336E55 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81C2DDD36F5EEF22E199CFED43509885 /* FBSnapshotTestCase.framework */; }; - 9D8D1A80E39E27AD8119C5D0770BE26D /* PNObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 922CA8B26AE78116304F7E08030B0C5D /* PNObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DBBBC1A74672EAF296FB93424FD883C /* BFWebViewAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = CCB7C5152C0F6E0434BCC8356E17D908 /* BFWebViewAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DC529E719DB6506138A980F878381CD /* FBSDKCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DDAF41BDDB709F79F3233235A2FE70D /* FBSDKCrypto.m */; }; - 9E4463D68D13C127762B1ACB8249B64C /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 36E65C9D1002817D458F292F4A46C1F3 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9EA076D25036A0F4765FF3FB57CF4A6A /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = C27D1C48B6995DEC8774FCB21C2A73AB /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9EE9A395A1B4766CC31140D47A28921E /* FBSDKHashtag.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D5D159778F4E174968DC771B5425CE8 /* FBSDKHashtag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F51005FE4BF10FA9906B02DAD609C6E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 00B1A180C9686C71A9A7022879F64EBA /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 9F989AB4B4E241B47DD81E964441F85F /* PNObject-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D8A2E50CBFDAE97EEEC7517124C1251D /* PNObject-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9FDCBE4BA669E194CCE7040D92C1F4BA /* FBSDKAppInviteDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = E55A6BE4BD4BD33578BC405838748015 /* FBSDKAppInviteDialog.m */; }; - 9FFEB3C141794C5B8C5B93EBF5EE2AB0 /* FBSDKShareOpenGraphContent.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A4E7CC7152130111E88AA5403EEC75 /* FBSDKShareOpenGraphContent.m */; }; - A037AD9C808583B3EC9F49B3EEDA588A /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4B4921BF62C7F933F80118BFFE8071 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A0612BA825C81CE45266B214DF3A8BCB /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3DE79E1604D4B336DC3F4490A56659 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A0B36C4898CD3A75ED692AE1B945EFED /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 00FF172BE096A6BC5D54A181FE4B6C71 /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A0B54340EB8A02336452DBD2AABE3207 /* FBSDKGraphRequestBody.h in Headers */ = {isa = PBXBuildFile; fileRef = DDBFB6A69F9DA0FCBB0A08A3CA6EC496 /* FBSDKGraphRequestBody.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A130B28B0E7D60AE5EE4F8F059145B79 /* FBSDKDeviceRequestsHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5882C885BB1ED18A7E7318B55B477ADC /* FBSDKDeviceRequestsHelper.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A142BE6A574CECD07C1C2F8755851D60 /* FBSDKMessengerIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 97189A6488255926A630E3D59B27D22A /* FBSDKMessengerIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A1B656071941FEFBC5406974C7BE86B4 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EFF02CCA6DA98BB7CA30BAD30B2A53A /* CodFisResponse.m */; }; - A2060B4F49548721DC0D6ECAFEFA3D90 /* PNAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 121ACF19B67F21B93608B91D7F4ED255 /* PNAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A20AF0C7CC380B5A1A69D95AC1E8DBE5 /* UIDevice-Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD7AE99AD27F9AD19A61E8269260021E /* UIDevice-Utils-dummy.m */; }; - A2474C88093508194AFA348BBEEB3A7A /* BFAppLinkNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0A2092BBB442DC627AA43A934437F0 /* BFAppLinkNavigation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2D3CFFEBD3AEA2164A535192492F3B8 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = BFDA2D5E158848E323798569C7A5B6E6 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A2FDAB824A7F85ED1C1DF4F925EF8D86 /* FBSDKAppEventsStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 786B2B9BF7A9888B67A35D12335025D7 /* FBSDKAppEventsStateManager.m */; }; - A34EF6B27E97A4DE26E881420B4E95A2 /* FBSDKShareConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E2CF9887B5075F1F83873B876D6347D /* FBSDKShareConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 01DBBB8F3DFF89730ACC9DB20206D678 /* AFAutoPurgingImageCache.m */; }; - A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = AB7407F595EBA89BD793F7997B082CD8 /* AFImageDownloader.m */; }; - A41034714C779552383D238C48FC4FDA /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECD2A5B6C0CB704F507A381D4E3BA62 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A47C2D572FB1FE197886B1CC00023A0A /* FBSDKSharePhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E7659564E6E4F80E2981B232B6C273 /* FBSDKSharePhoto.m */; }; - A4AB0EFDCFFF8B00A2A84D15903EC9F2 /* FBSDKShareAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C984590194050CD48FFD25231BFB21 /* FBSDKShareAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A4D708563D06FCC4791D002723CBA985 /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A60ACB773CC7B01EA2F485AE2D581E5 /* Specta-dummy.m */; }; - A4E2881F30B359C55F13057DB3121C7E /* PNLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C3FC33160159ED1C28434F1CF8BA03D /* PNLocation.m */; }; - A5098DA5D31C4C0C42F3AA75C49219F1 /* BFAppLinkReturnToRefererView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A7BB9A736BF390C36A28FA07BE5AB40 /* BFAppLinkReturnToRefererView.m */; }; - A52BCF4E72B2DF16B17514F60A8A8FEE /* FBSDKIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 104BF806705637F884759149971F7811 /* FBSDKIcon.m */; }; - A5BC08E8A9629CE48ACA2C7C9050CA1D /* CocoaSecurity.h in Headers */ = {isa = PBXBuildFile; fileRef = 879F56CD26C124E39FBBB6BA88E861DC /* CocoaSecurity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5E626CB76B3213CE6181D5E7C28BD2A /* FBSDKInternalUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 76507678F8A3FDBA670E58C243483C9E /* FBSDKInternalUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A614491277D447B0BA73F694F4F53C32 /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B62B98E443A7D9503937CC28976ABBC0 /* AFNetworking.framework */; }; - A67450A89A68DA97F5EFB7D8F1718835 /* NSDate_Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F34C1BC19AD317FC6984E7F1D0309C1 /* NSDate_Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A6CC81FC886EE8FF27EF4DD48D6F8F56 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD5FDB9292F631F1D1BE91251D43CFE /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A6FDDEC98D4B8B4274E3B62249D443F9 /* FBSDKAccessTokenCacheV3_21.h in Headers */ = {isa = PBXBuildFile; fileRef = BB74C2E006965DAA53EDFA689D6320DE /* FBSDKAccessTokenCacheV3_21.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A75E40CA89805C928130C4B8EDBC867D /* BFExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = D32985C8ACB11F4059F7AFB93FADF3B4 /* BFExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A7C2B3E88618E43B5DA3DD8F46640209 /* NSDate+NSDate_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 067AB9BD71C9ECF5DFF844EB8533AC24 /* NSDate+NSDate_Util.m */; }; - A810DC30B45012B7DFE9A890517DDF93 /* NADigest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C3B754855A1FA85A7BD34077A835E2A /* NADigest.m */; }; - A8446D8224F103BE7F4A5237A60F0EFB /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = AC89DA4A92615B2550A089D82C0C4D60 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A84ED188345C2D0004CC4FF19091701B /* FBSDKGameRequestFrictionlessRecipientCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 55335B437B11074030382412CD588BFC /* FBSDKGameRequestFrictionlessRecipientCache.m */; }; - A857CA86EC4FAA349221F7BECFE2C96B /* FBSDKLoginManagerLoginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A584931C1759D3FBA1FDB7A66EFA0E9D /* FBSDKLoginManagerLoginResult.m */; }; - A865ED53C00E5A1D38A115F0FEEB9945 /* FBSDKCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = FC3E43D78F174A5EE2B892F1B0D3EB69 /* FBSDKCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A8B9DF26E3F071AB70238E9EAF6D18C0 /* FBSDKGraphErrorRecoveryProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = F027893C675C45491E04C9EAB1A68D72 /* FBSDKGraphErrorRecoveryProcessor.m */; }; - A9C2B803BFDDADE42F647E7FDB4FCA0A /* FBSDKLoginTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = E0F9435AEE04F49F0D08B086163E98DC /* FBSDKLoginTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA0283267E8DA7A4F516A18CAE3152B6 /* Bolts-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60CB1F9499817DB3B81C5063CC8C7D8B /* Bolts-dummy.m */; }; - AA1889F2FE6337B2F593B9E46C271A59 /* PNLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = ECBD47C2A5CAB0FC2435599C1844C402 /* PNLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AA5060419F1307F5F03ECBEA70DB186C /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 56FEFB1C9EE71FF0FDB37F5C27961D66 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AB4EE60E94C31FC9AB44138BD394F6D0 /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D7A982D5CB73D2064151B38F7E0193C /* FBSDKLoginKit.framework */; }; - AB859DD367036A83C6C5BAB558EC7929 /* FBSDKGraphRequestDataAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3540CD01E6ACC57C53E613DB542A3954 /* FBSDKGraphRequestDataAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABBDD0372C687211E68EDCE0166F3632 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B4715469963951B3FCE250030A0F6A2 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC0AB78F3A7629ED1C7F3F82BBB3F471 /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 27D42BAABB01D0D2784F158FFDF5B79D /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - ACFF7D46B812B83F872A308006022C32 /* FBSDKBoltsMeasurementEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 24900F22E83266C9099A4C4FC9CFAD97 /* FBSDKBoltsMeasurementEventListener.h */; settings = {ATTRIBUTES = (Project, ); }; }; - AD86AE990383376EFB048699F93F7855 /* FBSDKShareOpenGraphObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C672335BCBA6BC43669D8B58C67BF95 /* FBSDKShareOpenGraphObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE42B2756CD5B1CA699141D44F073848 /* NANSData+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A6C2F41EBFD35D1F096887040DF6079 /* NANSData+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE7BBD46BA00A9AC69249ADA56402162 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 00730E0614414B541C5C462C05237ABF /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 19165B04181A6DDCFE66C457ADDBC79D /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AEC80848C5DDA36B1B26938743A70B95 /* PNInstallation.m in Sources */ = {isa = PBXBuildFile; fileRef = 019FCAEDB4298587CE7DF987376060FB /* PNInstallation.m */; }; - AEE04DBACF7955F515F27E8EAE9C4323 /* FBSDKLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2E77C069913412B05CD80E94443DF4 /* FBSDKLogger.m */; }; - AF4FD9E1F3963745FEB3E9B631CC687E /* FBSDKLoginKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EF1222282167A053457802ABF4F9C67 /* FBSDKLoginKit-dummy.m */; }; - AF574F9900C07227D36AF4129E31953F /* BFExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = FAB0381156F3F4AD217D1D3DCE2F0AEF /* BFExecutor.m */; }; - AFA40B485860556BA25C9391769548B0 /* PNObjcPassword.h in Headers */ = {isa = PBXBuildFile; fileRef = 77DEA3968F74B6EB7EEB5EE36107C6D1 /* PNObjcPassword.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AFC2C2597C05F97B4C5A0167DE6AF710 /* FBSDKTypeUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = B7E3572207F064E3A811BA3090370116 /* FBSDKTypeUtility.m */; }; - AFD1DD86904CF8D49DAC28EEF38E75DA /* FBSDKLoginButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 0795708CB58982B0C93FCCCD6EB4CF2E /* FBSDKLoginButton.m */; }; - AFF5DB694ACBB9E3DC930C1E89020C42 /* AFHTTPRequestSerializer+OAuth2.h in Headers */ = {isa = PBXBuildFile; fileRef = ABD56AD995873D9480E181B6857BE821 /* AFHTTPRequestSerializer+OAuth2.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B022A54FD2423E7FED70CFE6B8FF5E43 /* FBSDKViewImpressionTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = DA82E1E9468954A2A533C71F6002EB7C /* FBSDKViewImpressionTracker.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B03DE4204DD68123A30A75BD8E8BDA09 /* Pods-PNObject_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B530196848B62AA6D54AEEB46A06D8 /* Pods-PNObject_Example-dummy.m */; }; - B069C81446361C2082B0C01D4E5520AC /* FBSDKLikeBoxBorderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 02011E4D3311F5D1CD4C0D6EE1C5280F /* FBSDKLikeBoxBorderView.m */; }; - B08D712824D531736588654F4ABF7F12 /* FBSDKShareOpenGraphValueContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = FE35BEF9234DBF69605AFD5904F34B87 /* FBSDKShareOpenGraphValueContainer.m */; }; - B0E477FD3669D1B2C743725B6572F00F /* FBSDKURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AAC0A1490CFFD33DEAA693698CF8D2 /* FBSDKURLConnection.m */; }; - B12E34BF9032C23F6E00182698097E59 /* FBSDKAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 5209CD5C349A2E27BEA614B424AA9C4D /* FBSDKAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B1487AC2DD502CCE46631C123E047D28 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E305BB7A4F4C097D78DAE6F4B0A3FD /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = E62BBBC79022B09D0A1DF6E9480AFD0F /* UIRefreshControl+AFNetworking.m */; }; - B1FB214C8508C15E0A07DA4F56E8C259 /* DJLocalizableString.m in Sources */ = {isa = PBXBuildFile; fileRef = 97D6165FE9CF21FC9480D57AAFD9E908 /* DJLocalizableString.m */; }; - B2851D041D2627490F2A6BDB0635E624 /* PNObjectConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 77D4F41BA622C03540C90387B263EC49 /* PNObjectConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B2AD4D098642F111DC1DDB0550BA9EDF /* FBSDKURLSessionTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 672F1E403935415898FBF93433CBD9BC /* FBSDKURLSessionTask.m */; }; - B2CA7FC41622904417A5382B4B2478C8 /* FBSDKBridgeAPIProtocolWebV1.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F5A08ECCF3E8236CD79DE43F4FDD49E /* FBSDKBridgeAPIProtocolWebV1.m */; }; - B31ABD84B44F996BCE924A06ECFD76EF /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F6DC211ED62B6CF3ED8B3CFE443DD5 /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B373B975F8DBE6A437AF20EBA4686EA3 /* Pods-PNObject_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A838922082CBB903238CF0302A9F06FC /* Pods-PNObject_Tests-dummy.m */; }; - B376B4A777F62028AF0965D93658413E /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E6C7B1E996F870E53918D95077DC471F /* SPTExample.m */; }; - B3F189747A7A3CEDA9200CB2749AC7D8 /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = E576A0244F9F3D0C9C066FD17648E1B4 /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B4A58B2ECFE7BDD6EE1E8B1C66EA92EE /* FBSDKButton+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = D45201CC85EC0906B87134A4C0AFF935 /* FBSDKButton+Subclass.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B5B8DB6F10916DDBDF55AFCB9A74AE10 /* AFJSONResponseSerializerWithData.m in Sources */ = {isa = PBXBuildFile; fileRef = CC93CFD25F266E66CB1545F7DA0C1BF8 /* AFJSONResponseSerializerWithData.m */; }; - B5E0BE9919A447BCA76370EE3B5A140C /* NSObject+RZDataBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3259BB6241878EF7B126BF7A7C0D59 /* NSObject+RZDataBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B60EC99709BE6821834A445EC1B39877 /* FBSDKLoginManagerLoginResult+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB42A88D855CC3B21719F896DE2A9CF /* FBSDKLoginManagerLoginResult+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B63A4599EF43CD7D1851337F76C83B18 /* FBSDKSharing.h in Headers */ = {isa = PBXBuildFile; fileRef = FC54010CF6299B4A635C7F3EE6CE08F1 /* FBSDKSharing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6686EAAD516E60852A7703E6B9A1B80 /* FBSDKAppInviteDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = A1276C46ED3D6CA0186911127544A546 /* FBSDKAppInviteDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B6CF73E710F5A135F4FBED41AA5B5ADD /* BFAppLinkTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = C2E7CE04867D093945660E9CB348043D /* BFAppLinkTarget.m */; }; - B7748501FC74B26C8198A3D4D8653A72 /* FBSDKMaleSilhouetteIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 34740110B04A35092351B28FFE5F5870 /* FBSDKMaleSilhouetteIcon.m */; }; - B83B015B5F0143A1D2FED54771A4B68E /* DJLocalizationSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = C3FB663C9A2AB4829043EFF16AA8E2E6 /* DJLocalizationSystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B83E822E44260B3A7958F63DD3F781CA /* FBSDKSystemAccountStoreAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = BE6F3D176C5592D27B3B9012B256D37F /* FBSDKSystemAccountStoreAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B89A19FA40C5F590F0AAD91908FD9DDB /* Specta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C41F4C3E30B9FEDB797BABEC7387D6F2 /* Specta.framework */; }; - B935FD0CA92A857C96293AB1DBD18DFE /* AFJSONResponseSerializerWithData.h in Headers */ = {isa = PBXBuildFile; fileRef = 08BD77CD4E65007F1A6E6E8908AE9D16 /* AFJSONResponseSerializerWithData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B9CFA012246ABDC04F9DF182F893A736 /* FBSDKTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = BEF4EE5118CC202ED720B6E3340E10C0 /* FBSDKTooltipView.m */; }; - B9E1B0043139A8675B4CC0F58DD4CDF6 /* FBSDKLikeActionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BE3F5C955AE5AD01ACA9DAB5BF3EADD /* FBSDKLikeActionController.m */; }; - BA2D29D9265012FAC7A88D9A8CCD9989 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D598515A3D05D2746CE121F66FE86FC /* CoreGraphics.framework */; }; - BAC05D6621087E5D3F421C8A62B4991E /* FBSDKShareButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 61E4A59C8C8510725A4FF3F8E8DE7B1B /* FBSDKShareButton.m */; }; - BB5408BD9BCE631A449422EE78EBA9E2 /* RZDBCoalesce.h in Headers */ = {isa = PBXBuildFile; fileRef = A2FD059892C1D6494634AC41C4B1E506 /* RZDBCoalesce.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB6CEDCCA5DC3CC721AFAC496718D38D /* FBSDKLoginKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 801F333E9B7F58F909FD9A1E9CA771B8 /* FBSDKLoginKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBC331E01AEE3C5F33BB84C6600A9698 /* FBSDKAudioResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D02942A80190ABCBB54B18FF63C4C2C /* FBSDKAudioResourceLoader.m */; }; - BBC7D292529B7E5DB953171190E321AF /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 072E85085499A44D55B4253829F7140F /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC22E83FBE012D2A1B6B72B886832AF4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - BC4A3F392D78ABB11CD4381E94C90889 /* DJLocalization-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D5D753224259A552DF778BC3BFC9095B /* DJLocalization-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC530A8234C398F9F3AD1A1D41670B65 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 873200BCA826EE8CEC931F5D380A50ED /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - BD06C0D07F903149B765D1477DC4CEB4 /* RZDBTransforms.m in Sources */ = {isa = PBXBuildFile; fileRef = 3459CA1C90104634EAB50E76E15FD80C /* RZDBTransforms.m */; }; - BD31D1A3BCF5CA41283017F1FB137472 /* FBSDKErrorConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 7976C894230E0E9EBFADCB410B06B963 /* FBSDKErrorConfiguration.m */; }; - BDA816C8923AFFC9D52056D6FC5D919F /* FBSDKLikeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E244A8BBFD6CDA87EA43C8365D67623 /* FBSDKLikeDialog.m */; }; - BDBCC6DFC2F72B5131B6930F54FC3721 /* FBSDKLoginUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = CC11C9459EAF6A8C590F20CF1AD21DA5 /* FBSDKLoginUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BE6DEBB84782808DEFB20C4BCA6E030E /* NASHA3.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FFF971122AFA7A8C9221549A02A712C /* NASHA3.m */; }; - BF041E409908C172B805888F932436C2 /* FBSDKAccessTokenCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 42AA1AFF246A7217D4E96626E31F0992 /* FBSDKAccessTokenCaching.h */; settings = {ATTRIBUTES = (Project, ); }; }; - BFA3C4B54938817031F61A996A6C0CCC /* PNObject-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ADB5A8D408033C40D9295B6983F2F7ED /* PNObject-dummy.m */; }; - BFC7D32CFE8200730837306AFF61E5AD /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = DDA78FA86CA495DB732A88EDEEA333CA /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C0AF552CC217EF2EF5D688DEDAFCF8FF /* FBSDKContainerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 00D33B459FD63FE7CA7B68FE523F1C7F /* FBSDKContainerViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C14CD98EE4DDC0B7689F058D5B79CC47 /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5177854A5C1459E073476F2610497897 /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C16DEC09C2896F2146D04643ECA8EE75 /* FBSDKAccessTokenCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F5ACA80F1F3E869D5F14B38E2FDADB6 /* FBSDKAccessTokenCache.m */; }; - C1B5669B1DD471B6B6F317FC8CCE37A3 /* FBSDKAppInviteContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F02BEE05C6B2C9F6FF5083FDB74182E /* FBSDKAppInviteContent.m */; }; - C1DF1378F608A031627FBF81B6A9C6E5 /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C589FA9F49C6F5F391E4F2E5DE3D695 /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1F412EB57F0921E1E887CE615AB6F5C /* Bolts-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EED51664952A2448051EFDF412DCA673 /* Bolts-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C207E8642630FBA72B589AF13CB477CF /* NSDate_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A38B57CA99C5DF5C8BA685471F3A311A /* NSDate_Utils.framework */; }; - C212AF67B0957A4692ABAB7369C77B35 /* KeccakF-1600-interface.h in Headers */ = {isa = PBXBuildFile; fileRef = 30CFDDCFCE6E9C815967ADA1592A5C0F /* KeccakF-1600-interface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C308C48E9C57707306F8580AE37248B2 /* CocoaSecurity.m in Sources */ = {isa = PBXBuildFile; fileRef = 278FF38A4475A850D38535B74C801D43 /* CocoaSecurity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C314F53A9BF937A1B62814D0ACE69234 /* PNObjectFormData.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E2A78BC79D2D952EA296F970905DFB /* PNObjectFormData.m */; }; - C48681A94F73D9A48F2BD53DC884D098 /* FBSDKAppGroupContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AA220C912F76137815A6ECC0F00BA4B /* FBSDKAppGroupContent.m */; }; - C49FA290256E683C5E1E22F59365E782 /* DJLocalizationSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 270A6B567F2C8D415803E708D5BB6446 /* DJLocalizationSystem.m */; }; - C516B672FFC9DB635E0E53DA8FC9CF88 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A5A8FB22A33F31F84E0DFE2BB5D04E4 /* FBSnapshotTestCase.m */; }; - C676818DADAC76EE2FDC5533CBF3648A /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AADC5F17369A380BDB4D76D93CC71CD /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C69E9F7B31ED72C66009492A0A2D3E37 /* FBSDKServerConfigurationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C116C33CC92B0135B96F2986DEB0088C /* FBSDKServerConfigurationManager.m */; }; - C78677F071A77282A40CEF00B4EF751B /* FBSDKSendButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 617F95AF1E901768B752A7512E79ABF7 /* FBSDKSendButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C8291FF9EB9DFF1D78EDDF416F1A5325 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - C84A327959F7C0E461870B153DB56129 /* FBSDKLikeBoxView.h in Headers */ = {isa = PBXBuildFile; fileRef = B3DA3718110DAD367B50AB0FEBC60C52 /* FBSDKLikeBoxView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C86E7000C472FD9C319549DFFAC1D2F5 /* FBSDKGraphRequestConnection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E61048C7E6C5A56CD0B95D8CFB42FA8F /* FBSDKGraphRequestConnection+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - C9F373703DBF8B7425618F5D883CF15D /* FBSDKLoginCompletion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8177932A2A11DB0D5F62ACD40A7D7BEC /* FBSDKLoginCompletion.m */; }; - C9F7A6F5165954F06D391440B7A35F7E /* FBSDKBridgeAPIProtocolType.h in Headers */ = {isa = PBXBuildFile; fileRef = C18DE21763A46FE06148CD4E475FDCED /* FBSDKBridgeAPIProtocolType.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CA12FB380E35F806A03D6094BC278F1B /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A0DAFE7EAA74CDA4509C819F622D904 /* Expecta.framework */; }; - CA17AA223F7AD52108093F7FB0F48CB6 /* FBSDKWebDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 993770F71FC9E2E310C33E2A3419CE49 /* FBSDKWebDialog.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CA86598BD226C0311FF47E1FF0026FC9 /* FBSDKLikeControl+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 07931E20B487E137409C1CCD7559E36D /* FBSDKLikeControl+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CABACAB1C400EA205C14DA5B059BD0BE /* FBSDKLoginKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E15E9E148585ED91F10326DCCE5596A8 /* FBSDKLoginKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CAC99914CCEB0192CAA228766E537BF0 /* FBSDKHashtag.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C58278E7A9DD226B3CF5DE1578F5D66 /* FBSDKHashtag.m */; }; - CB04742481BF8ABECD0596F2EFF4F675 /* FBSDKTypeUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 306B16E51E5C868B88861E0EFA71C0CD /* FBSDKTypeUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CB0CA0C3EF2349D1842379874513F870 /* FBSDKApplicationDelegate+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 514DAD23FF33C1676055C6CA7CBA9534 /* FBSDKApplicationDelegate+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CB2416FCF99E61625C582F954CF88378 /* FBSDKAccessTokenCacheV3_17.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E50A05585BC2F565D8CD1877EADB09 /* FBSDKAccessTokenCacheV3_17.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CB99A2D7D003745153A564346DF8ABA8 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 41621C3BBA0BC3ACD36EC707A19430F2 /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CD22121B77F0F8E2B6A58AF6226038C2 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = BC7F6010D92DEF7CCF4527D38FCC69B4 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CD66900813CFE317343F5A4053AE73EC /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 676B4C88C734DD4F1508DE14CECD8182 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CDBF7F2D23165CAB8B3819A256A49F0A /* ExpectaObject+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = C43F59E2A3FD4E0B586873A944225859 /* ExpectaObject+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CE2EB8CE3176F8A1FAA78CC8786292CC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 382047A728757CE3FA00E5771BCD49A7 /* SystemConfiguration.framework */; }; - CE7E4C141657D23213C7FAE616D7FA75 /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = A34C570C556CECB69A5AA05A5E06E41F /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 902A293B4E31AE244167F6393A171793 /* AFSecurityPolicy.m */; }; - CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CCA3E88C46F7A5F1A3D0F25203E45792 /* AFNetworking-dummy.m */; }; - CF3367EFD9C853279C0EA9226A2F98F4 /* FBSDKAppGroupJoinDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = F5F2EAFAFFB31693C6EA28955EA226B6 /* FBSDKAppGroupJoinDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D004B61FD43E695EA514E9E1C7481461 /* BFAppLinkReturnToRefererController.m in Sources */ = {isa = PBXBuildFile; fileRef = 64146C7F3745CDB1C7EE61EEBDB1A0C7 /* BFAppLinkReturnToRefererController.m */; }; - D071BDFEE2D52BF728891AD0F28651F7 /* NSString+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = A061A64AFE09C31424D0C2B989C7B995 /* NSString+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D09627F6419B41FF42D89103525DC72D /* FBSDKConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CA5462D9BF7BD17F9FD35872A8841727 /* FBSDKConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D1768C977F0CD5B420D1A1D2375CDBD4 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 78914A27A449106521CA676217F10F04 /* Expecta-dummy.m */; }; - D180489445C2C507332A6EE964ADA1E5 /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = E13118B37383E2CA9D1F6D865F9AB962 /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; }; - D280F7E8CFC879DA71B989376BB2607E /* DJLocalization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1F7B3C80D29036D327C6191D8F66FDD7 /* DJLocalization.framework */; }; - D34926DFF95BCEAE62FB2CF9CEF97103 /* FBSDKBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 474CD421250945A8F6E2893D592972A6 /* FBSDKBase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D34B37841D3A136E6D5507D4E842C9EA /* FBSDKLoginConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = C79A52426AE71E70F9F3EC9663C174BB /* FBSDKLoginConstants.m */; }; - D490834AA1304BF36991A257F3366648 /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 829DAA5DEC03DCF4093AC592D1550EBB /* SpectaDSL.m */; }; - D4AC5FC0ABFC4D645A1825AF89CA9315 /* FBSDKMessageDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = EF2578FEB12E7A832A6473BA0151D48A /* FBSDKMessageDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4705E496368280532425B75E481C0162 /* AFURLSessionManager.m */; }; - D52FF876AB77B647490D45A519CC800C /* NACrypto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A7E143F23E02AF74374543168136FF1 /* NACrypto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5D06480DBB02B40CAA25AECB0D76A8A /* FBSDKShareAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 78BEC84F9D384942976C98EA632AD1B1 /* FBSDKShareAPI.m */; }; - D730D35D086259696CA7525BB701FA2C /* NADigest.h in Headers */ = {isa = PBXBuildFile; fileRef = BA1D94797373650E47CEC08F5EEF7213 /* NADigest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D733DD84BB35E854E467485BC53D6C4C /* FBSDKLoginManagerLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6B96CCB79F4437B61300B74A6C0459 /* FBSDKLoginManagerLogger.m */; }; - D7BF9558E071FDF8643CE2B50276B777 /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = E63E6E692F9A570123AB25B842C8A31A /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D95CF9BFC10B34C31005894EE482F346 /* FBSDKBridgeAPIProtocolNativeV1.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F5D272957C8E06087C1513E206FBB55 /* FBSDKBridgeAPIProtocolNativeV1.m */; }; - D991D69B3AF74E44CF852B3D1C6B5300 /* FBSDKError.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3CD62A5C48A3A345FB5FC9CC1D38BD /* FBSDKError.m */; }; - DAE0CD2585F1E98E291C8F3641BD5B7D /* NACounter.h in Headers */ = {isa = PBXBuildFile; fileRef = 14DDAE726CE99DDD44587D9CEF5EDD14 /* NACounter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DB8F3665E9E382DF52E0DCB4DECE5EAE /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = F9F4CA01E5A2D46A31DF5DB924A7057B /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DC07AD9CF4D40744B0E24587710133AC /* FBSDKPaymentObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = C00C3DB69C342A27FEA5BFAC83FC2DA7 /* FBSDKPaymentObserver.m */; }; - DC423A980C991970F4D637AC4C47D863 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6124ABECEA4AAB91B87B8E26E51100E5 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD3A309FA23349B5C8C84AA6F9D24CF9 /* FBSDKGraphRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 097F6EB29A09CCC60F44A4D435BE5A39 /* FBSDKGraphRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD4C4DFAB8FDE70DA054BC5708B1EC4A /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DB960A119FF63D4696D63B3619C0E3 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D067086759355C60A5EDCF21F45A6B1 /* AFNetworkReachabilityManager.m */; }; - DD999BB80DAFD6BB7D28B8AB56AE9D94 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - DE356A743F29233491039F89451F519F /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 946B452218B157D0E2067CF5618843AB /* PNUser.m */; }; - DE4EF1ED618D31CA16938565A1CA0607 /* Expecta+Snapshots-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DE8F3A888CB4EC705336BA0FCDB5229D /* Expecta+Snapshots-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE9DB3EA650AD3D95B2794279B9E2318 /* FBSDKLikeControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CCA8311D8FFE6D9B23D0A0B8A880D41 /* FBSDKLikeControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DED9AE33B24B462D4B44FE94383B35F4 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 86831BC7382D6363AB0CF1719C149ACF /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DF883524C3F35145D74166C01BCFCFC3 /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E24E9800D562CA08C615F0C9AEDD892 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - DFABF9629FE4EC01A824A1BA5BA000E3 /* FBSDKURLConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C0D6AA38A3B6A004EDE3844830FA46AC /* FBSDKURLConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DFC76352895716FB6DCF5E0FB1B1F6E2 /* FBSDKBridgeAPIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B322C23D6B9699614544F1CE743D1558 /* FBSDKBridgeAPIResponse.m */; }; - DFEBBA1D08A99327E1992FF319C1683E /* PNObjectFormData.h in Headers */ = {isa = PBXBuildFile; fileRef = 362F96FA0485DE23220220D1792F4980 /* PNObjectFormData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E01CA22744FB7F69CF328791EC8E795F /* BFCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DB64CE127D492DE60FD7189DCB40744 /* BFCancellationToken.m */; }; - E1186B3C650921006F44DA05CCE4320E /* PNObject+PNObjectConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = E95C694DEDD7BC969FBDF044A915974B /* PNObject+PNObjectConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E17FC6C2C7A76B443D4536DA6D7FAC3E /* _FBSDKLoginRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = C7D430E79ACC118F36FF35360543F7F2 /* _FBSDKLoginRecoveryAttempter.m */; }; - E21963D87FC07A78AD814ADFDB43D42E /* FBSDKDialogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 16751E46A70C97CD21B505BAF15B177E /* FBSDKDialogConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E233F5CF4BF16CFB539804C4E995C355 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 1131F3EDE53DDAF7AA9C85C166CA9933 /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D92D59022480B09D139F149CA9B0B5D8 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3355DB3F63F6FE79FD8DD6188B0B3A4 /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 860B9C8679CB11994418AE18E87CCD7B /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E351CF7E8BFC1FB26020B401EF92EF4C /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BFD9908703965E4230F2F29C4149C622 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E3BC9504A5DFD6534AF33B6517CFEF41 /* FBSDKLoginCompletion.h in Headers */ = {isa = PBXBuildFile; fileRef = 306EBE60A6BE923DD3B2D182D56BF5A1 /* FBSDKLoginCompletion.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E42196772B68CF9B302CA341FECEB35E /* FBSDKShareLinkContent.m in Sources */ = {isa = PBXBuildFile; fileRef = C8DBA571A61A22A7774750CCA5474022 /* FBSDKShareLinkContent.m */; }; - E48E16AADC089590EFD5AE99AB25153C /* FBSDKColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 51B411D0CD70D2B238514A0417E6A258 /* FBSDKColor.m */; }; - E4B762ACAEFFEE3996B0C5699E1C0555 /* FBSDKShareDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 802311C5E6123108467A5C84F2679AC0 /* FBSDKShareDialog.m */; }; - E544A6C45B4583F612DF819F4F148943 /* NASHA3.h in Headers */ = {isa = PBXBuildFile; fileRef = 49D6C9FEEE6E9D2DBD7CA66A82900AE7 /* NASHA3.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E550C2AD10B47AE5E2DE1E1533953499 /* FBSDKLoginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 65FF525DCD3D1A77C649951BD06DF38C /* FBSDKLoginManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E597253EBA83E36D0EE5599B7C6364A4 /* FBSDKSharePhotoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E402391E5A2514D3D175F4BAB9F47263 /* FBSDKSharePhotoContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E5C53685B50C1CA14800A6E501FB5BDB /* NACounter.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FB61492CE0E1665DB213DD0E7089156 /* NACounter.m */; }; - E61E28B50602F353D95914765667969F /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E4AC8E876920C074195E1CD721D8AD /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6347EBE9793308C6BDDAB2980CC29F9 /* StrongestPasswordValidator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF616BC64AEF26F093DBCB286FC6C42 /* StrongestPasswordValidator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E6D59CAA2A6E134A4643254406ED11F2 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = E865C7E015BD25633AB6F4A38F7D70D6 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - E74AB4D86DCCA99E23EB4E03A41C43F5 /* CodFisResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD0BC36A8CE73D3725E8C14B7366C3E /* CodFisResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7630CD45AB4E7D370E1A03C39D225FE /* NSUserDefaults-AESEncryptor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FA8981277E4034B0B70BFF9FB108D51D /* NSUserDefaults-AESEncryptor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E7D4FF5C6C7DAECDEC0797D31C5A3F5D /* FBSDKError.h in Headers */ = {isa = PBXBuildFile; fileRef = D05CBAE789EBAB568F05389DB2C540B6 /* FBSDKError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7F41030EB32D2A40D942073E167E59A /* FacebookSDKStrings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8D92603F43B0B56B64BAD2D822D21D20 /* FacebookSDKStrings.bundle */; }; - E8066AFBD1403E46CE9C921B2AB41631 /* FBSDKDeviceRequestsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB2B9DD4F09E4C6882DF5135FAE91A5 /* FBSDKDeviceRequestsHelper.m */; }; - E806D100C661330F1B9D82819337EB78 /* FBSDKApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C32A1C0DE34D73433B17932DB862D53 /* FBSDKApplicationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E81C138F473CF3DD39FC7BE760803A50 /* _FBSDKTemporaryErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1554BD691B777E09A134FA09A645E944 /* _FBSDKTemporaryErrorRecoveryAttempter.m */; }; - E84B11315C96AB8A8D3F3A49BBFA5783 /* FBSDKShareKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F63C21A34E6100377F8BBBCEB5796306 /* FBSDKShareKit.framework */; }; - E84D89E20D13E13C7D3ECE521E7D2363 /* FBSDKGraphRequestConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 24AD868D6DB4B71CE04202CF15FA22A4 /* FBSDKGraphRequestConnection.m */; }; - E8EB854CDCB7C2B5DD9A155A51874C69 /* AFOAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = B32CDBFFDD02BA6B9E6B850FC67515E7 /* AFOAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9633664E1453DCB73DFB406C208FB59 /* FBSDKSendButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F138DAD8DA4095C12D3C35ADC87DCE57 /* FBSDKSendButton.m */; }; - E972E6647713D21A0F21BDAD1816AA29 /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = FF3D098509B976E6D87BAD725A263284 /* UIImage+Snapshot.m */; }; - EA06C3F77DFE7082756541F14946FA59 /* BFAppLink_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 43EEB5B512F0019685A2FAF5EF453CE3 /* BFAppLink_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EA079E85775D25B50D258050E09EB7A1 /* HTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F24275E6B98CE5911FF22E25D7F8D21 /* HTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA5294C319F94E8A4032A59807673349 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */; }; - EA81D72FB8A568C95A3A2FE6F41615DF /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19BB647A58986E23B794017A975F0D83 /* FBSDKCoreKit.framework */; }; - EACA9E8B5DFE8AE17E8B0AF128EBD818 /* FBSDKGraphRequestPiggybackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 21B10138AACD9DB8F13C677A5DB0629D /* FBSDKGraphRequestPiggybackManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EACDCFD44476CC617B068814D5D38321 /* FBSDKShareMediaContent.m in Sources */ = {isa = PBXBuildFile; fileRef = DB6735EEF981FABAE9241A830755595D /* FBSDKShareMediaContent.m */; }; - EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CC10C3FBD06C3303FD79287F2B41FAE /* AFHTTPSessionManager.m */; }; - EB2CF17870BB89A3EB473DBFE8C3D249 /* FBSDKDialogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = D8477035C18A6500D1A24DAAD12548AE /* FBSDKDialogConfiguration.m */; }; - EB3A1F80062D4348929C3BC801E8B4F2 /* FBSDKShareUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BBBA062C6A0303A4C94256A449341E1 /* FBSDKShareUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ED1C9BC00EE3DF1ECE108BDD7BD86350 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - EDC1FB5265AA5A065B8159DB61968E69 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9E60F2C387D51A3F34BCE723D17BF4 /* UIKit.framework */; }; - EDEF0E4FC0C9F00D3265ED2C10D98419 /* BFAppLinkReturnToRefererView_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD76347F245B54693BB52DDFEE489A8 /* BFAppLinkReturnToRefererView_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EDF3CEAAF7922F570A5AD95B005C84F8 /* EXPMatchers+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = E9A410A65C04B8BA3E8216E572498291 /* EXPMatchers+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE0EECF23E214900C0D675CAEB98C376 /* FBSDKAppEventsState.m in Sources */ = {isa = PBXBuildFile; fileRef = D5C27CC1EFBAA1FEB0C13C47FF3A8458 /* FBSDKAppEventsState.m */; }; - EF614F8F70A1909FFB6C0A7E4A329606 /* NAHMAC.h in Headers */ = {isa = PBXBuildFile; fileRef = F61FE06E763FEA83D7E54FC692A15B1F /* NAHMAC.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F052ECCD91D2A3EE96DDCD0A1F428B84 /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 49C44EE3CC547E21809656CAD4388943 /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0625FAA490E1DA82841249EB039C2E6 /* KeccakSponge.h in Headers */ = {isa = PBXBuildFile; fileRef = 61FDF2526FEB3566B2DCA751829C06B2 /* KeccakSponge.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0873AA02837D34381D156267B9EB005 /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = C462F435F525F193329733FE1B663B02 /* FBSnapshotTestCasePlatform.m */; }; - F0D1B92F8C875FFC51D5597848BF8273 /* brg_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = 9032207099C8461EB2B877B11E9B57CB /* brg_endian.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 3303C18CB5C5CB2407FBCECBF4C44181 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F1E5C5DDB9BAEFA384ECE0E8EB59A03E /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */; }; - F24897C32CD63A5813F1A49C5722CC03 /* FBSDKAppEventsUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = B44A781A102582BEC03C6D753F285E2A /* FBSDKAppEventsUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F255830C94C00E4FA4DAD37403E891E8 /* UIStoryboard+DJLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = 3369291A7DBB6C0FFEFD5BFAE95CD0A5 /* UIStoryboard+DJLocalization.m */; }; - F25795894095DFCE72BF9EDABB668CE0 /* NSString-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD44E7BC5A68440AB9E6A558934880B5 /* NSString-Helper-dummy.m */; }; - F275D2BC730A21CDE42121FB1340DAAC /* FBSDKAppEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = 346B162C3AFB290C218F88EE772AD768 /* FBSDKAppEvents.m */; }; - F2C7932465662C25B5C3E35A215CEFB1 /* BFMeasurementEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 724D066E2AF02260F43D82C7E343961E /* BFMeasurementEvent.m */; }; - F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = D9849C0756C63FEB0D7F3F9ED0D08AF6 /* UIImageView+AFNetworking.m */; }; - F35CD32759F8CA5E3F28558D54A13AED /* PNInstallation.h in Headers */ = {isa = PBXBuildFile; fileRef = D92CB883B04257D215FC458F58810952 /* PNInstallation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F35D8A24E5B844EA5CA83B1AA98D0237 /* FBSDKShareButton.h in Headers */ = {isa = PBXBuildFile; fileRef = F0D192D2A9DAFCF2CDBEC29F7E7DB4A5 /* FBSDKShareButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F38EB00E64ECFE774ED745F608B503DF /* VatNumber+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5923ED2E0F83E6A85F380B20B407523E /* VatNumber+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F405ED8C76BC3868F6811C002090B872 /* PNObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 62B787FDFE46F8CBF92C1BFAF264100A /* PNObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F49FAA3B52950277559F24E9B0897027 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - F4B07E33E1033643EA1D8032FA001CFC /* FBSDKAccessTokenCacheV3.h in Headers */ = {isa = PBXBuildFile; fileRef = 341E15F2F303A83A09A6DFBB17A50E47 /* FBSDKAccessTokenCacheV3.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F4F0D951B819A9B0AF9DF3DDDF05C16D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */; }; - F634EED5307CCF842DCA91665D3E772D /* RZDataBinding-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B23435F88C902169A799BF19874C955A /* RZDataBinding-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F64BD635A9D17FD0EB40A446FAC1B01E /* FBSDKMath.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DD923C02CB66F769B4B961BA9888988 /* FBSDKMath.m */; }; - F65B8CD3FF025A4EDBEF549552DBD1DF /* FBSDKWebDialogView.h in Headers */ = {isa = PBXBuildFile; fileRef = B1147994BCE8F44DC977AFA3A2B72243 /* FBSDKWebDialogView.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F74F0174B426B7EAB501A3788E5D381F /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F4AD13E172B2AC3095FFF847709143A /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F78DFDED34D92625B14D755A01E13B9E /* FBSDKLikeControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 57AF277DA5E703D362EE18AC42F3561D /* FBSDKLikeControl.m */; }; - F7B1E69C2DB56E8F263E1395F5568132 /* NANSMutableData+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 481BC150396B27F83B61C0049CB56A1E /* NANSMutableData+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F7B1EB4EEC9F4EFDE2D1321CC0EB6338 /* FBSDKBridgeAPIProtocolNativeV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 73C91B73698DFA8728F001C27023BC0C /* FBSDKBridgeAPIProtocolNativeV1.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F7F20C9FB354CF94931E67E15BF98292 /* FBSDKSharePhoto.h in Headers */ = {isa = PBXBuildFile; fileRef = 36DBFB5A274AC2D1D08CE955C70698AA /* FBSDKSharePhoto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F810131FF5AE4D2352915AB611FD2BC1 /* FBSDKWebDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = C40125DE9C9327D703157ACD83124364 /* FBSDKWebDialog.m */; }; - F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F0542301A6557EB6F84047650498D38 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F8C04FEE6F772FB216B373A1A58FA201 /* PNObjectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A2F057BCFFB56AB1A75E59F06F1C00E /* PNObjectModel.m */; }; - F8D53DEB3E020F15631F87DC3772A297 /* FBSDKLogo.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE1E090C7CAD8F180B2208A61B9153D /* FBSDKLogo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F8F6B707D53E1F0748D24A4252FE4BEE /* FBSDKAppEventsDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = B238FF9EA8201441992BA959402B8855 /* FBSDKAppEventsDeviceInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F8FEB81AEADD05E9CF1EB9CAA7152D8D /* FBSDKAccessTokenCacheV3.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C3E4EB97135367CE1E5E5DEB5789D40 /* FBSDKAccessTokenCacheV3.m */; }; - F98F9A32C528DF55CE3902FC2295694C /* Base64.h in Headers */ = {isa = PBXBuildFile; fileRef = 945D81D88DDEDF07E296B9C59D534F9F /* Base64.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9B80C23C2F0CA1BFE19226BF92B7AE6 /* FBSDKBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 21C7032B6F00370608B1C7D1B1405F9F /* FBSDKBase64.m */; }; - FA2AD358723292198D6E7F40C4705A22 /* FBSDKLikeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 25FFBAAD0FA9EC9F04F0BAC29F946F0D /* FBSDKLikeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA44B6EC7D440F2086F4D301C2438C8A /* NSString_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C98AAD19E29CEDC56E1C5FC401EEBD3 /* NSString_Helper.framework */; }; - FA5348476D45C434C16E77A9F5306F6F /* FBSDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 80EFE4278F2342602F1EA7C9A04469CB /* FBSDKSettings.m */; }; - FA5880D0879746E17CD8C33ABC326FAF /* RZDataBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A1966363F904E7B4765D654759B77F9 /* RZDataBinding.framework */; }; - FA76475EE5F044D6AAB7FE7B925268DF /* BFURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 12E3BB0E92B051BAECFE53336063F53E /* BFURL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FB1389C400AB472674812F0CDD75B486 /* NACrypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA5075111E45B54376A836D368B06BEA /* NACrypto.framework */; }; - FC223395BCEE46EB920CECD38AFD4402 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 959DD0E72C23B7B4B9875E54B5841EDC /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC55B9778AE136ADEA196BAC7017C913 /* FBSDKAppGroupContent.h in Headers */ = {isa = PBXBuildFile; fileRef = ECB032F342C59B081372642930085A73 /* FBSDKAppGroupContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FC6474103AA989EBD5368772037BE0BB /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 85A1EC824DD3CBFE789CBDE0F3D32AF3 /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCDA06700D1989687F2471414453A57A /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C51BF51057D8952C72DEE94D98351AE8 /* SPTSpec.m */; }; - FCE76C65A14CE78ADD1F46C4BDB079C7 /* FBSDKLoginError.h in Headers */ = {isa = PBXBuildFile; fileRef = BC07DBDEC936E81E24DDB422A5A1BF76 /* FBSDKLoginError.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FD02DCA90372D1EE876A0002DF781002 /* FBSDKAccessTokenCacheV3_17.m in Sources */ = {isa = PBXBuildFile; fileRef = F4930717279413DD1C795946CFD22A9E /* FBSDKAccessTokenCacheV3_17.m */; }; - FD39ACDEA6F0B6D6DBB730547CE18BA6 /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = D97AAA09519DE2B1F4640491EB732DC6 /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FDC31C0F89EFD44C20711F0CA659AC25 /* FBSDKShareVideoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = ADF0DEE2B77805B9861F3543BC0D221C /* FBSDKShareVideoContent.m */; }; - FE7DE0A8DAC3272EBACE9996C6509F83 /* FBSDKServerConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 90A1434730D000C85D3A2265AFF568A1 /* FBSDKServerConfiguration+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FE9DB5BAFC083D19C098460F7423A3BD /* FBSDKIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CC1F22206C478E6AF5C96F84ADC72A3 /* FBSDKIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = AC245A7654AEE19119535DD40643EFBA /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FF394D6FEA84206182301180AE4CB957 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 595A86264A6A665BF717BE5ADE515F51 /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - FF8EE0A88D978F442B93D9983EE466D1 /* FBSDKTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB3D1BEB0973C2D3FFF36BD53494F08 /* FBSDKTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FFE1F3924D982513CA0EC14D4B637EA3 /* FBSDKAppGroupJoinDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C1AB0A078484B6729ECEE8D94DA8FD /* FBSDKAppGroupJoinDialog.m */; }; + 0044008BF25599E4701DC05D7143A57D /* FBSDKShareDialogMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AFC2C6C97F98F163995F220D76F3BF1 /* FBSDKShareDialogMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 00769B190D2C39FCAA09DC0004A5EA76 /* FBSDKGraphRequestDataAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = C0C20A9E034F281110537225962CA16A /* FBSDKGraphRequestDataAttachment.m */; }; + 00C05031BBA5BA48A00FE41348F41BDA /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 70068A980A0F37775CE656DAE88C5892 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01304EC2A48EABC7055A27832BC39814 /* randombytes_nativeclient.c in Sources */ = {isa = PBXBuildFile; fileRef = 05E0F4E09D09D6C5B584983A1D362DE7 /* randombytes_nativeclient.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 0193B71F4C41EB0453BA95484719BE1E /* FBSDKShareOpenGraphContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 66771F47EC0E59C86E0DC08683788D5A /* FBSDKShareOpenGraphContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 01F278A54C85C2C865DDAD4090C559B6 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 93251333E469AABA25C69AB93212E346 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 0216678A3BD0FDEC6B0435E8EAF83324 /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E890C001F0081B29016D9B688EFA09F /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 02414528B6D50F6551A4C2B83D3B5EDD /* FBSDKGameRequestDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = D4DD7EBA78838126B1017FEB89F9DEA1 /* FBSDKGameRequestDialog.m */; }; + 034F4F061EE00447F6D8EC6EB23F0BEA /* FBSDKAccessTokenCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F232C6D9C5F7DDE94B4923C0715FF0CC /* FBSDKAccessTokenCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 03674AF1F02ABBDF3871B6D5116CC362 /* BFCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = 546C644E4CB472B8918C158D266B9BDE /* BFCancellationTokenRegistration.m */; }; + 038E6D83DAC1ADB12A3A24F043850DD4 /* PEAR-FileManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 50FEEC598B728E92965D17F238B3D2CB /* PEAR-FileManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03974DBFA76336D78A71143892141761 /* FBSDKAccessTokenCacheV3_21.m in Sources */ = {isa = PBXBuildFile; fileRef = C6B8074838CAE72BDC1D39854D15F494 /* FBSDKAccessTokenCacheV3_21.m */; }; + 039854EF33A78AB7BCF40EF412207E03 /* FBSDKLogo.m in Sources */ = {isa = PBXBuildFile; fileRef = 14290AB795B71FC7BDCD4D24E122E455 /* FBSDKLogo.m */; }; + 042CD3EF017770BB04B03CC181E14CF8 /* BFCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A9CB77E9AEE3CC25EBF13E70B9DC096 /* BFCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 047D9502E026F29B032174C0709C888C /* pwhash_scryptsalsa208sha256_nosse.c in Sources */ = {isa = PBXBuildFile; fileRef = 5459CF8273BEDF198F053FB8F61A1034 /* pwhash_scryptsalsa208sha256_nosse.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 04E9E07F3816EA0C3DFBD7B7A221AED4 /* FBSDKShareMediaContent.h in Headers */ = {isa = PBXBuildFile; fileRef = F12AE894B9A21D1C99A5E1D59C4C1C2A /* FBSDKShareMediaContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0526E02C4AA867933C5A40D7AFCDD97F /* FBSDKProfile+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = ED786925606C722F5431516E12294E89 /* FBSDKProfile+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 056A88B801658B31B0F50449E0C26D6A /* FBSDKURLSessionTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 4601C088CCD5D719C4C3B7F8646FD718 /* FBSDKURLSessionTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 05E3437C51FFC76A7E985D0F47155B5A /* FBSDKAppEventsDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = DDC6B48357BE62D6F9FBE13E28D578D2 /* FBSDKAppEventsDeviceInfo.m */; }; + 06577217F4423C33142FBFF301CC52ED /* FBSDKLoginButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CDE350823A635A6C7448FF65E86F494 /* FBSDKLoginButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 075474E3DC38C236D328BDF5BF758884 /* FBSDKLiking.h in Headers */ = {isa = PBXBuildFile; fileRef = 64D9AE6B3C48BE5C69528CE23CD4A1A2 /* FBSDKLiking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 076BFF5AE8F990F1118BD3B83E5C5978 /* FBSDKKeychainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = 00CBF6C37943185F06BB5B0B1B97E044 /* FBSDKKeychainStore.m */; }; + 0790B89F7D927E8EA37EE8333C3E8F2D /* FBSDKLikeDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7134D818B8FBA2F1E8259FB5E9AE3E3F /* FBSDKLikeDialog.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 07BD9BB69340EC987E9BD500827372EC /* FBSDKAppEventsStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CA91BB9CC65155774C0FFD150FF49853 /* FBSDKAppEventsStateManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 080CE28FA2E511DD434E1A60C23A836D /* hmac_hmacsha512.c in Sources */ = {isa = PBXBuildFile; fileRef = 75A7CC666FC7B6987C9D5BB30528D75B /* hmac_hmacsha512.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 08476B503E1633DF0883EC488786E390 /* NSDate_Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BFB0E88573CE8BB8D61E5611304A7F89 /* NSDate_Utils-dummy.m */; }; + 08792B810EEFCFD0CE75F30A261E5989 /* box_curve25519xsalsa20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 9BE341DCFEC9AD1C1B9A7CA1753F9D21 /* box_curve25519xsalsa20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 08AD7D66E61EF717519C52BFACA95DA5 /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 88ECBDF9BB58C69664E83C5D092F1DCC /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0918BC3B513AE3D4E3ACBCEC0D88BF51 /* AFOAuth2Manager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2250FBDC9CCAD24D78DC214DB698C072 /* AFOAuth2Manager.m */; }; + 0928BA036BA53560549F5D01125205BD /* FBSDKGameRequestContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9525100D5D188FBD3AFFC44374EBD5A5 /* FBSDKGameRequestContent.m */; }; + 0944C3EF6E4E5935423947B9D0CFF1B0 /* FBSDKShareOpenGraphValueContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 838A5783F9B9D0893CDD9451EDD31397 /* FBSDKShareOpenGraphValueContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0963537253F0FF424C54493870812E16 /* scrypt_platform.c in Sources */ = {isa = PBXBuildFile; fileRef = 0A849045544A8CE8F15A83B8F6D2BB04 /* scrypt_platform.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 09F6E022AD1A40996E3BC400A90093DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25E2957C098A975DDD956F4030322CDB /* UIKit.framework */; }; + 0A0E468BAEA3F6CB77CC37C6C618B5B8 /* FBSDKSharingButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CF106BBE0C8EF0576727B11F7FE3B96 /* FBSDKSharingButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0A539197F1612A9881DBE93BC55AE9CA /* CocoaSecurity-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CCDF04306B298BE185666BE0459685C /* CocoaSecurity-dummy.m */; }; + 0A9D70F4BEA0DD98346336FBE737150B /* crypto_auth_hmacsha512256.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BE611DC80CB9540FB5C597F196F84F /* crypto_auth_hmacsha512256.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AB894CCD2F8C1F0E679FD9464EAFC42 /* crypto_aead_aes256gcm.h in Headers */ = {isa = PBXBuildFile; fileRef = A2F10B150ECF113CC56C93A323CCFBEC /* crypto_aead_aes256gcm.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0AC2AA0476EF58104776BE25F7C3AC8E /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 51E5DF983237E671D607EA92EC6456F9 /* SPTTestSuite.m */; }; + 0B11B174B2ADC6056A89A3EBE624151D /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 044012B17A5A48E36B81569A4004FE53 /* XCTest.framework */; }; + 0B51AAC501B335841F0F712BC2645191 /* verify_64_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 8FD8B8DC39C64F6B50D43CDA15D39E02 /* verify_64_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 0B5A20CFF219A8971C700691E59D2ED7 /* FBSDKLoginCompletion+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 640713517262FD28DA01C41B9B647DBE /* FBSDKLoginCompletion+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0BC678CA584905BA4BB95DF3E5D5E480 /* PNObject-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 99FA268896DA1B5393BE0448C850EAD5 /* PNObject-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0C3297B801FD05A3C295712D763D46CD /* verify_32_api.c in Sources */ = {isa = PBXBuildFile; fileRef = DD848075E1397A84030DB379FC8D48FD /* verify_32_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 0CABC146B7AE68D57FFCADE2BE7043A5 /* CocoaSecurity-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 110A6D6AAAC4948F51C7CCF7E1466605 /* CocoaSecurity-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0CC0EB95B6885B065161D63962F698B1 /* BFCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 8202D40B52BC9C084C6F38E708EA0AAB /* BFCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D1FFD30267C0776FD3E88EFF51E312F /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BB8A19EE49EC9656B0DEEECAC3D7F70F /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D7CF91C8CD924F7C0535FEAB93C9DC2 /* FBSDKLikeActionControllerCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 791CBD618EB17C3A22A3E0D7306DF8B3 /* FBSDKLikeActionControllerCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0D88A1E866B5FC21F500DE9B698F4295 /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 285B548BB29D488569633F3D082BC1DB /* CodFis+Helper.m */; }; + 0DE833FF7E092C1556E0F8B2BA616F8B /* pwhash_scryptsalsa208sha256.c in Sources */ = {isa = PBXBuildFile; fileRef = B61568E383DA567FF5DC64991D8FFB3A /* pwhash_scryptsalsa208sha256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 0E49AF4F0466CB23725A6B374F6738EE /* mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F2D79206185068B562331187225F683 /* mutex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E86BBA3A65849769B47995A5E91C881 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CBBA584B111EBC2230E0F4C9DFA1A91 /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EC3265073123D191837C9C50E300048 /* crypto_sign_ed25519.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A6593883D83EF983DB219C3D1F76C0 /* crypto_sign_ed25519.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EC86AD4A19CEE78DA15BB13FD64D7B2 /* BFAppLinkTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 37374CF0B2B7D65C1E5DE50067ADC278 /* BFAppLinkTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0ED813054137D3E0B171696A657109F7 /* Pods-PNObject_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B530196848B62AA6D54AEEB46A06D8 /* Pods-PNObject_Example-dummy.m */; }; + 0EE37B4F65396E9B7E3FE2D7ACAF4EA6 /* FBSDKLoginTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = B425C32D8332F4ED7743B235428401E4 /* FBSDKLoginTooltipView.m */; }; + 0F2B4541EEC2608FAC614205B5617705 /* FBSDKMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 4994CAACD23B9FA15759B106DCDBC455 /* FBSDKMath.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0F80466DCA26561A8A3646CC9E61809C /* FBSDKSharePhotoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = A7DF549436CBBC1BF579D1131D662C54 /* FBSDKSharePhotoContent.m */; }; + 0FB6434BA8491ED55C8499B3B360DE5E /* FBSDKAppEventsUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = F5B19896930D38CF7CAB078AB2C0764F /* FBSDKAppEventsUtility.m */; }; + 1009851D0C0B3FCBC574C414CC4D31B0 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = ACD9CAEDA237A25C5415BB6D52BAD5FE /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 100B51675E4899BBE6CF4D6863693CF2 /* curve25519_sandy2x.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B8FEC69FC0232C0ACCEA1AABF983C73 /* curve25519_sandy2x.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 101EDFA6B8F7C909998E9D5E265200DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 104F7504309459681FFD96618516291F /* FBSDKCloseIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DBCF2EC01FB92EA925C9D2536A04A8C /* FBSDKCloseIcon.m */; }; + 10839BE4DCA013D0D5E6DDAAD1B38463 /* BFTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D162E66974CF03C0FBEB1757881F4AF /* BFTaskCompletionSource.m */; }; + 10B01DCAB22376C02EC417B7FBFDDF68 /* crypto_uint32.h in Headers */ = {isa = PBXBuildFile; fileRef = CE343EFBEBEDEB4231E374D12FBE124A /* crypto_uint32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 11770572CFE88E09AEBE3A26FF06CE91 /* FBSDKMonotonicTime.m in Sources */ = {isa = PBXBuildFile; fileRef = BE02F102BA1C5F2D863D30020E7B1487 /* FBSDKMonotonicTime.m */; }; + 125227362C0FFB5F6F19E36A4932CE4C /* FBSDKShareLinkContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A54B74C6A812591CD05DB598DFA0CE7 /* FBSDKShareLinkContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1271771DBA7D24BB75422855AB071578 /* FBSDKShareOpenGraphValueContainer+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 26E4139BF26073C2C3389F61DFCDB889 /* FBSDKShareOpenGraphValueContainer+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1276973517303300272FF11F72580A32 /* open.c in Sources */ = {isa = PBXBuildFile; fileRef = CA67AF4FDC4C269F4CD6362224C40D41 /* open.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 128904EF04A983CFEF249874D2DD3A7F /* NAAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2953ABF1275ED9C01D4667290FA19C /* NAAuth.m */; }; + 12E4D4EF10CAA59DD70271EB9A8EBFCB /* CodFis-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B3DA95A0FEBCE12F7B709FBC601A445D /* CodFis-Helper-dummy.m */; }; + 12F937C67D5CEFEF3B8D87E9E765010C /* consts_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 18BF72D4C69FD7E83F85B15C53E29820 /* consts_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 13BCC291714AE5B120BFBA817A668D4A /* FBSDKAccessTokenCacheV4.h in Headers */ = {isa = PBXBuildFile; fileRef = 342ACF52EA33E87F02845038E7051B4C /* FBSDKAccessTokenCacheV4.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 13DE89E4C21857D73FCC4D79F5ADF9A0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 140E77A506AAB754419DB03526188560 /* FBSDKErrorRecoveryConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DDE8752BF514297AE83C0677970EF48 /* FBSDKErrorRecoveryConfiguration.m */; }; + 140F458AB7312414FC423FEED70A3733 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 167917C0F2904C539C5D5140977A04D7 /* UIActivityIndicatorView+AFNetworking.m */; }; + 14BF023BDEFCE0174FD27A343DAB3D03 /* FBSDKLikeActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = C4DAB3E359D00B4D1FAE65B7A4C19109 /* FBSDKLikeActionController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 150503B99F77D3D8897EFFC68C09A351 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C17FB21000EE0AF4A79D79765E2F9E /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 15711572776291F22B55A6ADE95092BA /* FBSDKErrorConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = CA98E7EFDA36D71B2A18AF808B42FA27 /* FBSDKErrorConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 15B03CD3D28B4055104A94137E6FF361 /* FBSDKCheckmarkIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E853DF8A5A7EA4D97E9ED6A296222A /* FBSDKCheckmarkIcon.m */; }; + 162ACAEC206A34705BDC7B73BFAED828 /* FBSDKAccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 45FB5EA76EA3DD47B7A69162B47CFBE7 /* FBSDKAccessToken.m */; }; + 16A9BCC67D7BDFEAC35D744237688960 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B6E46044099029F650EED7F64C0D020 /* utils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 16F9BF77D856863FDE2AFEF9519FD434 /* FBSDKShareKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7451C9C8418B43743459FE26BB5DC160 /* FBSDKShareKit.framework */; }; + 17486AF6BF5959ADD03EBBF4F2F7DA01 /* crypto_int32.h in Headers */ = {isa = PBXBuildFile; fileRef = 514B539AFFD475BB369A73AB852B806F /* crypto_int32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1780C12E873269455D238406C1480501 /* DJLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = ACC5CE5D98FE7E895D3040E4429B1079 /* DJLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 17DF3EC5DF6A47805D6AA114A4C4BD9F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 18F73FEE63B844EC95FE36E3F7A09FDB /* crypto_auth_hmacsha512.h in Headers */ = {isa = PBXBuildFile; fileRef = 56CFA1A1AD0B6A6E7F05164C92B3962F /* crypto_auth_hmacsha512.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 19424717C1436CE69DEA985A8198D929 /* AFJSONResponseSerializerWithData.h in Headers */ = {isa = PBXBuildFile; fileRef = 92797950E9688E3C05EDFD8E5908819B /* AFJSONResponseSerializerWithData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 198E495E8479F7C265AA53446874AD7F /* consts.h in Headers */ = {isa = PBXBuildFile; fileRef = 83AF711E04B61906FB63D077DE8337BF /* consts.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 19AE1283982A53A819693D8E0B4F3529 /* FBSDKKeychainStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 1568AB9194F5C0A88651091D0B001930 /* FBSDKKeychainStore.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 19DC6D479123C767BC5687BC53F574C2 /* aead_chacha20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = B04967A1795DAF6F76BAAD59C9A9FDF8 /* aead_chacha20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 1AEECD97DD2D0B6E0C6A177FBFEA64FE /* AFHTTPRequestSerializer+OAuth2.m in Sources */ = {isa = PBXBuildFile; fileRef = BC2A9EED5978C249AA6B834A62256C5F /* AFHTTPRequestSerializer+OAuth2.m */; }; + 1B221CA4D60E450B4A5FEF859374E82E /* crypto_box_easy.c in Sources */ = {isa = PBXBuildFile; fileRef = DA68F7807531167018EEB8798896E3EF /* crypto_box_easy.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 1B270891CA7F081687C618CF075C6568 /* stream_salsa2012_api.c in Sources */ = {isa = PBXBuildFile; fileRef = E78B9D8ECEE416EF8A4A67CFD51CA357 /* stream_salsa2012_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 1B7730C43D80C9708F39CB16D69FFA9B /* FBSDKGraphRequestBody.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F042AE48A642312D374D24AB3942CB /* FBSDKGraphRequestBody.m */; }; + 1B8CF3966D6F9CB4C08C8B3CF45F56FD /* NABox.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F44875167BD5D9C535B8363C3526C69 /* NABox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BCFCA9B004D142FEEBED60F2984159F /* NSUserDefaults-AESEncryptor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 68CA002B4D1B706B67FC9B27FA070715 /* NSUserDefaults-AESEncryptor-dummy.m */; }; + 1BEAFDB50EBC1DF502731B369B797371 /* PEARFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D15E0F86C11063FA7A39BC2F95D73F4 /* PEARFileManager.m */; }; + 1C478D38840E22CE63BD8CF388189C0B /* argon2-encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 57681418D92C93CC771883C2322802A1 /* argon2-encoding.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1CB1545FD88A6129CDAD44F906528521 /* blake2b-load-avx2.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AC2BE163C37468F22BA5BEEF8B6C789 /* blake2b-load-avx2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1CEBE1C3C77649E972E5CF0E0D5147A9 /* FBSDKLoginError.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A3EBC1D179AEB87055057ED6C97F1B /* FBSDKLoginError.m */; }; + 1CF82D57A79EC85BEF1BC056D655EB00 /* PNObject+Protected.m in Sources */ = {isa = PBXBuildFile; fileRef = 30EC7545AB73154DEEF61A6F98894D7B /* PNObject+Protected.m */; }; + 1D676445A1446539D4B722E6EF0C802A /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B2B492557BE08718B64068604605E7 /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 1E0C1C24BB58DC9EAE01F0AC167FD4D2 /* FBSDKProfilePictureView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3577A20EA78B5BE31C50161AC624B89C /* FBSDKProfilePictureView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E157747466C9ADBF7A5E2F6D04088E7 /* FBSDKErrorRecoveryConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E24B8503EFBB5AD30804D306AA486A3 /* FBSDKErrorRecoveryConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1E2A6D057E20BE8F5ED3E594F7B8C286 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F470A31D2B704B9242F3495680919A9D /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E6206841E8F8910E03CA7C071911FFF /* DDDKeychainWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = EBE51C47C472E53476EADAB9902AD9E2 /* DDDKeychainWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EAC80856DD5443C8147FFAF7C00DF13 /* crypto_stream_salsa20.h in Headers */ = {isa = PBXBuildFile; fileRef = D2CB4472710833D722621420637BC5C6 /* crypto_stream_salsa20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1F26AB65193FD89D4295779CEBFFBBA1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 1F77AC3523524C98DE314AEC02D8A475 /* hmac_hmacsha256.c in Sources */ = {isa = PBXBuildFile; fileRef = 205AA1333D7DC8B31CFA7945F8C3DE87 /* hmac_hmacsha256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 1FAA48ED512371889397595019CEDE58 /* crypto_secretbox.c in Sources */ = {isa = PBXBuildFile; fileRef = BC91A1BFACF53402D243EC088AE18769 /* crypto_secretbox.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 203891FC83D370DAAE936770858F24AE /* StrongestPasswordValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F393D2B9738327F3496431A5C4D6A1 /* StrongestPasswordValidator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 203933F779EFC8A6D36A4E950FEDC882 /* blake2b-load-sse2.h in Headers */ = {isa = PBXBuildFile; fileRef = A852BC8B4776918EEB4824ED482BCEF9 /* blake2b-load-sse2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 20C4A16BBDB29AA7B0DE80912A26D9D2 /* PNAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 677C58FBC556BDAFA69409AD1C8E2ABC /* PNAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20EF6C21A196BC087854FD24CF7E2A3C /* BFMeasurementEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AC13B3A4AE39E13484D337C71A232 /* BFMeasurementEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 21099602C001A0990D4A9FFCE822607D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 214684A07D91C92E10FEC0A77BBA5770 /* FBSDKBoltsMeasurementEventListener.m in Sources */ = {isa = PBXBuildFile; fileRef = B736AD34BB3DD24B35FA6768548AAB57 /* FBSDKBoltsMeasurementEventListener.m */; }; + 214F8D721940BD9AA4BAB0E5AE2E8A1C /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = FE118A1C9908DC05AFE7971571C376A9 /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 215E38F2533C3DDC2A9F5AEC0B72166F /* crypto_hash_sha256.h in Headers */ = {isa = PBXBuildFile; fileRef = F57235CC6EF29FD3FAA03BF4A0CABF94 /* crypto_hash_sha256.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 217D24BC7833DDEC7A690444ECAD707E /* FBSDKTimeSpentData.h in Headers */ = {isa = PBXBuildFile; fileRef = 6834627757B423E59BA0F9351269A1D7 /* FBSDKTimeSpentData.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 21C496893F6149A469C2F5807E4CA36A /* PNObjectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BFC05B7D5009D4910049FD1FDC93E80C /* PNObjectModel.m */; }; + 22ADFEA49087F31DBEA1DD658A35C408 /* randombytes_sysrandom.c in Sources */ = {isa = PBXBuildFile; fileRef = 8971A16ACA6C4BC1A5ED20A04E205105 /* randombytes_sysrandom.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 22DC8D493C031D02DC82D5785E2ED077 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 22EF5E092CDAB6E485E642BFB4C5188D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 22F97C56F6E24837400563B7D0EAFB7E /* BFAppLinkNavigation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A4DE543FE524CDF635DC2C7AB234CCB /* BFAppLinkNavigation.m */; }; + 2304700F18E593CD7F799740E4D1A263 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 237F57CE7454CBEB3AB863CCAD42EE51 /* nv_ios_http_status.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED35D50290EA0861437F28E69D66AFB2 /* nv_ios_http_status.framework */; }; + 238C9CC2D949C584DE7E086BFF4CABC8 /* FBSDKBridgeAPICrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A2A23E1989BBECE68491AF336644687 /* FBSDKBridgeAPICrypto.m */; }; + 23EFB184AD12FB1014FFC765CE0D710A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3255EC41C0D19A0EBFA08A3A87006FFA /* Security.framework */; }; + 2414F7CC54A9CD6DEAE3D816D2A3BE72 /* FBSDKLikeObjectType.m in Sources */ = {isa = PBXBuildFile; fileRef = 6977DC3A0BAA31F6C91BC7468BBCC3BA /* FBSDKLikeObjectType.m */; }; + 2429D5C143D7F35D89795E1F2B3BC3E8 /* FBSDKGraphRequest+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D4FE601A26E9D5FA726EF7D680DEFFCD /* FBSDKGraphRequest+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2433C1EF0CA19F668278082E1927892B /* FBSDKCoreKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA56633D5AD6012A78744444993C8A0A /* FBSDKCoreKit-dummy.m */; }; + 249BB8D215A2A9E638C45A6A6C0F1EC5 /* NAAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = F3AC63FD2F96FDBC633CACFB69EBAA6F /* NAAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 25A9E264C0FD7FC58C783D358AAD0356 /* FBSDKLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D705C0439C1DBECD8C8B3FD6891DFDF /* FBSDKLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 270035A1112D4ADDFF9CDD551408154C /* NASecretBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 99FF86924CF6A745BA2665FB22EA5983 /* NASecretBox.m */; }; + 2766A7C054F420818AACA2281A5595EF /* stream_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5FF73C120486B256A84743F63F673833 /* stream_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 2786A2A12B3E9FB8B01016565714147E /* crypto_stream_chacha20.h in Headers */ = {isa = PBXBuildFile; fileRef = D288699BE618D14F3FE74F21F00EF3F9 /* crypto_stream_chacha20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 279BAFBD6332CEA060B8FCF53B57DF04 /* FBSDKShareDialogMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 3101435CD727095B4350AA3D3D056608 /* FBSDKShareDialogMode.m */; }; + 285C6F6BE59E632CB219CD98B4EDC1AA /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CD177A6281B2C0C3E95B9468BC598C3 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 2860348DB79BBF2616600CAA7F6C5149 /* RZDBCoalesce.h in Headers */ = {isa = PBXBuildFile; fileRef = 802C412C36630617E4BC385C2B5B25F9 /* RZDBCoalesce.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2916D75F69E777954F5BF46AE63C52C0 /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 247BE21FAAB715A40E7D29503841478D /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 29476636EA86BEFC4CB833D3BB7A52D7 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EC71A5BD904A05D44358B3646692FA /* AFURLRequestSerialization.m */; }; + 2A2FC6BA5CD553E94C470C94DDCA3149 /* BFTask+Exceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EAFABAC6E87A56D674EFBCB99EC932 /* BFTask+Exceptions.m */; }; + 2B0705CC26A4CBEE32A5A60284AED35B /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 44542F0DE0EFAB6797C919B75EFF7542 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C56B5D43165AD9B4DD68D80B774E9CC /* FBSDKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 47F8EDBC2CBA79C3806D586607A29E04 /* FBSDKMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C75633ADA03856BC39A9594FB144F70 /* BFAppLinkReturnToRefererController.h in Headers */ = {isa = PBXBuildFile; fileRef = EEE7AB36FDA58D26A6BF8BE42982DE6B /* BFAppLinkReturnToRefererController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C7DB0E39CB983C952EEAE7C1DC9AA08 /* BFAppLinkResolving.h in Headers */ = {isa = PBXBuildFile; fileRef = B4AFBF0A1E4C54FD7C53251B22AC2008 /* BFAppLinkResolving.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2C8E2492BD30EC71E9E0A55A5D9443D7 /* blake2b-compress-sse41.c in Sources */ = {isa = PBXBuildFile; fileRef = 01A1CFEF78B99D2EB2C0D0C547470F33 /* blake2b-compress-sse41.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 2CA24B051D7E49E50D7F3BCC04E944E5 /* PNInstallation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4632BA4F017A5E24A2F05BC2273F21A2 /* PNInstallation.m */; }; + 2CC3C763F8D558BA96F0AE55933D833D /* libsodium-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FD16F709A023F07A9B9095C1C494E78E /* libsodium-dummy.m */; }; + 2D01BFD69F263864878CA193EEB7867B /* blake2b-compress-ssse3.c in Sources */ = {isa = PBXBuildFile; fileRef = 7768E001D2BDE051D82C4CEFFBB25F66 /* blake2b-compress-ssse3.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 2D0474EEC703CCB702FFDE4E0FB8071C /* crypto_uint8.h in Headers */ = {isa = PBXBuildFile; fileRef = D424368B8DFE2095A056373A9B5D30B8 /* crypto_uint8.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2E23401D467EF69E94ED8B67E33F991F /* ladder.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DA5C7A39F26C8BADA43C1CF311E4A4 /* ladder.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2ECBA559A0A5CF2C7208CA1B2652EA56 /* BFMeasurementEvent_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 32DB6B66A7EAF834F56439019295E63B /* BFMeasurementEvent_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2F727BF64864D6593364730464E2ECA8 /* int128.h in Headers */ = {isa = PBXBuildFile; fileRef = F6441029547DA66B05FBD8C65ACAEA4E /* int128.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2FB61F710A4D1E16360A0433BFA84157 /* PNObject+PNObjectConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FA1D1D9C748E3D8D6949BBD809B5617 /* PNObject+PNObjectConnection.m */; }; + 2FDDDCA95F3BCFCB00B309EAD2D3C595 /* stream_xsalsa20_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 2980EA326687D838F2615DC7B45482FE /* stream_xsalsa20_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 3048C4D7898F4C1E649FD6523912E7B3 /* crypto_box.c in Sources */ = {isa = PBXBuildFile; fileRef = 07E536E16F98D9B2ED08C94CED9AFD14 /* crypto_box.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 3089511208D63F73F1840F06C5798B87 /* FBSDKCloseIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = E13100723F6B92A6FB5F218510F7F7BD /* FBSDKCloseIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 31011DC1DA412EF5B5A9F2C136C2A207 /* FBSDKLikeBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C47C253F72B48CB919963954E600E31 /* FBSDKLikeBoxView.m */; }; + 31623D59C6FED3C195911FD2D00244A3 /* curve25519_ref10.c in Sources */ = {isa = PBXBuildFile; fileRef = B594EB619E659F243A8E562D53B2A3BE /* curve25519_ref10.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 31F03BD2C1A98AA6CDB364D49CFCF60E /* FBSDKBridgeAPIRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = B92338364B8A38DEC8121D096F48D52B /* FBSDKBridgeAPIRequest+Private.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 32076D3DD644045CF79DFFEBB6BFF3F2 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 271550736E646EA7B48E5C220354E164 /* UIButton+AFNetworking.m */; }; + 322D20FE50D9190D15FCC214039B735F /* FBSDKCoreKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 93F1671BDA2BD54338899738A49727BB /* FBSDKCoreKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 334D6F21110FFF8DC10BCAC2C6FFC862 /* FBSDKServerConfigurationManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 53306921A83FB1DEC9165BF254712B01 /* FBSDKServerConfigurationManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3373108A0C58136A0CE322C9A9D09051 /* FBSDKLikeBoxBorderView.h in Headers */ = {isa = PBXBuildFile; fileRef = C0B2D3F99F089677EBFCBBD3BCC68B38 /* FBSDKLikeBoxBorderView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 33848F8815536372A3D7858FFBD2DF1D /* core_salsa2012.c in Sources */ = {isa = PBXBuildFile; fileRef = 91E33493F7A80F9D7F4813B8D0B88829 /* core_salsa2012.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 344C0212E68A80E99350A9FCFC12BFE2 /* blake2b-compress-ssse3.h in Headers */ = {isa = PBXBuildFile; fileRef = 579B8A077A2DF5BBCB58EC0AA044E585 /* blake2b-compress-ssse3.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 34C88657FE7ABE9F833623F94952D253 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A833DD466AE11FD446A7169367F67CD /* UIProgressView+AFNetworking.m */; }; + 34DAB55F9E000B6DD29B4C85D84CA8D8 /* FBSDKAppLinkUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 2705151E1C4CF4680560CA9B2540C1A1 /* FBSDKAppLinkUtility.m */; }; + 35577274E05CF0534BE7ECBD39304709 /* PNObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F053212722F80C0D67E774DAF857B3E /* PNObject.m */; }; + 356A19EE27B9D168B907607C8117EA86 /* FBSDKShareDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = A5C5CB69C1BB4CBD7471203E4F343C12 /* FBSDKShareDefines.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 35A4745B547F00556871FBB30BCF16A4 /* FBSDKServerConfigurationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 753FF2308D33FF5D9B4C2851BA0EC0DE /* FBSDKServerConfigurationManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 35A4CA396A4A1BE79CBE920301B32520 /* FBSDKTestUsersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 06820D6F4B907D5BF19FD02F956D9B2D /* FBSDKTestUsersManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35CBB7B255FD8D412AFCECBC4311A847 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 75F08A85B92B0AFF89431B6F69813EFC /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35CD05A495FF217AC60A5C2E53D34922 /* FBSDKAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = A38EAC29F9FF8FEDBFD9E146C5464CC4 /* FBSDKAppLinkResolver.m */; }; + 361B58CE2A28E03CA83A73617ED739F2 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 602FE5778CD81D3CE44910029986427C /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 36D3EC5B0C989F7E7AFFB00CB6F387D0 /* PNObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E6D7667B68CA00BFCEC31F95535910F4 /* PNObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 36DEAFAB77861F8ACF89880FD66084EF /* NASecureData.m in Sources */ = {isa = PBXBuildFile; fileRef = 53EF7FCCCB4826E256F4AB3BA520787F /* NASecureData.m */; }; + 372047120D09C7F54436E4E1B521B606 /* PEAR-FileManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 26741157FED22D78E9A43EC6CF51DE74 /* PEAR-FileManager-iOS-dummy.m */; }; + 376B2F8499F4F7FCE963C368A563521C /* x25519_ref10.h in Headers */ = {isa = PBXBuildFile; fileRef = 73641C52ECB7669B837CCFBB3842524F /* x25519_ref10.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 377481C4A55D124298EDFBD9B24ADB97 /* FBSDKGraphRequestMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = C3486EF0B8923350E11F8599313D4932 /* FBSDKGraphRequestMetadata.m */; }; + 377B78EAB42616FCEAA3E62F20437D07 /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9E292E8119060322CF92EDAC054DFA4 /* FBSDKLoginKit.framework */; }; + 38640F86ABD446506B6C54FBEBEDE7F3 /* FBSDKBridgeAPIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 2469FAA4A168CC5BA482B02B15C83D60 /* FBSDKBridgeAPIRequest.m */; }; + 388535BAC4CD5EB3E9B75C0A051BE5B5 /* FBSDKVideoUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = B813514AA2954C9C2FFB8CB179FFC9A4 /* FBSDKVideoUploader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 38CDE5627FA14CA712CA8D7F73C9D960 /* argon2.h in Headers */ = {isa = PBXBuildFile; fileRef = 86FA6874012C45DE02E304D0DE5D1520 /* argon2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 38CDF229C06C5A3740C09283FD7F37A7 /* argon2-encoding.c in Sources */ = {isa = PBXBuildFile; fileRef = 41A1C8EACC834BF09C5C71CC2771EE38 /* argon2-encoding.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 392E24093325DC0E64EF67B16C505D2E /* blake2b-load-sse41.h in Headers */ = {isa = PBXBuildFile; fileRef = 3966AA9EBFD5A1105002E282CE232C4E /* blake2b-load-sse41.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 39461DAB3DE2637F4AE2BA94F19DCF2B /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = ED4E9A1A529FD876E38112ED9002F541 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 395F93DE9120969383500187361FBA80 /* crypto_auth.c in Sources */ = {isa = PBXBuildFile; fileRef = E2C380E1A916CAF35DD010FD9E203391 /* crypto_auth.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 39FDD53C05A89D4BA8FD9DCD1DAD378F /* blamka-round-ssse3.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F68D5873918BD79E19645103A563A0F /* blamka-round-ssse3.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3A34D865015EC4111D69150C84B19E67 /* FBSDKApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 073C2A6F0C8C28E0BD7AAE82DE855FF2 /* FBSDKApplicationDelegate.m */; }; + 3A8B8F21EA7DEDE0064AED4AD9E8B703 /* StrongestPasswordValidator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F34C21C304DB8ED506C34BB5E58BA0CD /* StrongestPasswordValidator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AC116D56F804B1DF934A242553DE0AA /* PNObjcPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F36A66486C813755A43D2D61E3DB1CA /* PNObjcPassword.m */; }; + 3AD0BDB2903FD67722218FF7D48E43C5 /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 66B219743D55E3128190F98CC4C3A29E /* SpectaDSL.m */; }; + 3AE399BC7EEED91335666803DBF27D2F /* FBSDKBridgeAPIProtocolWebV2.h in Headers */ = {isa = PBXBuildFile; fileRef = 4143E609D6291527258197A50CD89EF2 /* FBSDKBridgeAPIProtocolWebV2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3B41754212C34819A299F3B4D5978099 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 3BCA2F7AC539F1F2AC0B1A2D72913816 /* FBSDKAppEvents+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B52A920C9350CE3F445D2E566CBFA13F /* FBSDKAppEvents+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3C93A117B26558000001586D3C5653D0 /* stream_chacha20_ref.h in Headers */ = {isa = PBXBuildFile; fileRef = F762F13D9D73B3347C92B3395E21ED97 /* stream_chacha20_ref.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3CD2D498CC06C4854E3D49728A6530B4 /* FBSDKContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E791F77AAC47B9FF8E27371A5412060 /* FBSDKContainerViewController.m */; }; + 3CD344891EBAFEFED158DB3E4E346CE5 /* pbkdf2-sha256.c in Sources */ = {isa = PBXBuildFile; fileRef = E78122EE1C4756D3354453266132CF53 /* pbkdf2-sha256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 3CD519CC6BB85C1A0EE7D219FA2BFA69 /* Bolts.h in Headers */ = {isa = PBXBuildFile; fileRef = 750D54F69E9FCD9C87442C4B2B2C7D77 /* Bolts.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3CFCFB46364AF0574491286EA0B29B6B /* FBSDKAccessToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 0574891ECF4192644D445E30923EF71F /* FBSDKAccessToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3D1C615E741E95E2199E36C47AFE618A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 3D6F2C28486F5B85C53E943AEBCCE494 /* FBSDKShareError.h in Headers */ = {isa = PBXBuildFile; fileRef = EA3D4BC01DCD0EDBCF8DE37C726C0D40 /* FBSDKShareError.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3DC79943B1DDD329253CF04413FF5372 /* DJLocalizableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AF4FA08F4D20FE318B70FE34ECD7010 /* DJLocalizableString.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E6A84E1F986CAB24F26EF6299FDE8D6 /* hmac_hmacsha512256.c in Sources */ = {isa = PBXBuildFile; fileRef = 6F915570C0840CA77B7CB9DD1C12E6F3 /* hmac_hmacsha512256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 3EA99FF6C0ACBFF20447DEA94036E115 /* crypto_shorthash.h in Headers */ = {isa = PBXBuildFile; fileRef = 562203D2D17EF8600EE10FC44583B09A /* crypto_shorthash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3EC56E1235286FB4E1A7E10779E98073 /* generichash_blake2b.c in Sources */ = {isa = PBXBuildFile; fileRef = 880AAA8A39FEA50A716D0BB6C54E9B99 /* generichash_blake2b.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 3ECCB1B2CEEB5D941357B97BC2423CD6 /* fe51_namespace.h in Headers */ = {isa = PBXBuildFile; fileRef = 1593AFA04EE3C0974D16A06F2D543696 /* fe51_namespace.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3ED61D0A47336589F6A2664E29DD30EA /* FBSDKImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = D1371448C3EDB39F5FDD9CDBE745C03F /* FBSDKImageDownloader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3F0B583FF1B1448023BADA22E8910ADA /* FBSDKLikeButton+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 800052B20025694891AD11620505516D /* FBSDKLikeButton+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3F1A5D10778AAD482D977798476727A9 /* FBSDKMaleSilhouetteIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 530E79C87B5E59CC6E99610FD88FE796 /* FBSDKMaleSilhouetteIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3F65E1CAB6DAA9E940E2D5142E30D21B /* DJLocalization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8926F7A556C2546186F334DEFEC6EAFF /* DJLocalization.framework */; }; + 3FD8A12B4BA580D8ECF810ED7FD9495B /* FBSDKAppEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C499CBEE6CD7AA4E995D6AF57CCA748 /* FBSDKAppEvents.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4030554E25309FBF6886A5722736668F /* FBSDKCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = FA0CE039477A72FBF76C40D47A40430A /* FBSDKCrypto.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 40623D6DE52CE70B57EC2CCA05C74D91 /* FBSDKCheckmarkIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = D3B1F7CD4DB6B3BCA49267B697A1EDFB /* FBSDKCheckmarkIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 40E2FFC845C9CFE285E221CF6D4CA27C /* FBSDKShareKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 89F1FD17E7380F8F55D5612BE743BE1D /* FBSDKShareKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 414BFB0BFCA72016984BF639624E4A4D /* blake2b-compress-sse41.h in Headers */ = {isa = PBXBuildFile; fileRef = 875E6B03CD79A3425F08E9DB93C945B3 /* blake2b-compress-sse41.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4178542929955F808F39AB6A1601E182 /* PNLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = D989005B56633AB16408AA566CBEA034 /* PNLocation.m */; }; + 41CC214541946B82A25CE427BB81ABEA /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 62710B7A271C692F907BC3695309255C /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42461DB888EE0DCB80C2129F353EDD3B /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 4754ADEA38BAD33AB1E0EF17E34BBA56 /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 425C4DFD1FAB011D70F825631144BC4C /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 36F20AB5D57102833B1AEB6565FF72E1 /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42A28BA4760C936859C25687297E5815 /* FBSDKShareLinkContent+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 23927B6E2E2799F100959B5DB7797F1F /* FBSDKShareLinkContent+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 44218F764FD54A83155071741BA4CF06 /* FBSDKGraphRequestMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 46A504768546F50D6357816DDE8B6D12 /* FBSDKGraphRequestMetadata.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 443456148F240299BCF3CBF292ECE97B /* types.h in Headers */ = {isa = PBXBuildFile; fileRef = 82EC68F64F30FC40DE6C17C9D12F0C2F /* types.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4442D8453D210EFC13CFE2CAF862ED1D /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F8CF61C95BB205DC996672B249B6A0A /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 444FF6009CC1C98C44BF05447ACE1D9D /* crypto_uint64.h in Headers */ = {isa = PBXBuildFile; fileRef = BC69655BA41C0CCFDD1E607682AB9425 /* crypto_uint64.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 448118329FC2AAA2D652E230DA98914D /* crypto_pwhash.h in Headers */ = {isa = PBXBuildFile; fileRef = 15015DFCC29B25D638AD04E1301BC210 /* crypto_pwhash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44995983A29BC94B9CC792EDB679232C /* FBSDKSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 7095BF3AE4223BEC5F231097AA97B0F4 /* FBSDKSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4499DC9A7038C8D353E2D610EA635074 /* FBSDKKeychainStoreViaBundleID.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AEF2092B75CE68A237EB342BF465D99 /* FBSDKKeychainStoreViaBundleID.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 44B405215D163C906D607907B8308FAE /* FBSDKLikeActionControllerCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A6145C99ABE2C2404EF5E87DBFD667A /* FBSDKLikeActionControllerCache.m */; }; + 45F802D04B3BE0CAEC586C2F3016027B /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D9BDDFF0B85CF62C2D4FD8D4A2F2095 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 466A01758D9BB683D61C1927B10D792C /* FBSDKDynamicFrameworkLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 716C02D5A9AAE1E9FF623CABAED47DE5 /* FBSDKDynamicFrameworkLoader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 467760A5E599FF4EEFA03868B984F335 /* FBSDKShareVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A30F8D5345C024B7F0DC129DAB158D8D /* FBSDKShareVideo.m */; }; + 47CB3BBD10D8E003BCAC111762E789B5 /* crypto_box_curve25519xsalsa20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = E452665D670719ACA0C800A2F811FBF6 /* crypto_box_curve25519xsalsa20poly1305.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47D171E32EAE4FB61A9971B9BC00226D /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3B6768441828F0024205FAEBCF3042 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 47F04CBDF6C54B220F6AEECEF15264D5 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 164517FBD6E78CA646A58671F949574E /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48475C221B5395136656E683E4CA258E /* CodFis-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD9E43CD7AA5C658295245EF8F2399B /* CodFis-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4861F2FFD5A4306E7B7BD3CD0D8199AC /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A6F7F939DBABDF993FA40E0B6518D0B /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 48D5E595F400C91D05BFEFE9E47F8E34 /* stream_chacha20.h in Headers */ = {isa = PBXBuildFile; fileRef = 264198F97557502B32A396FE41B08E07 /* stream_chacha20.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4ADCC90AB0C0247C231EBEF70D644CB0 /* crypto_int64.h in Headers */ = {isa = PBXBuildFile; fileRef = 0415454567E46D343D3B4C4040FEC1CA /* crypto_int64.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4AE3588EE4DC42B00E5C6E3061D0F000 /* FBSDKLikeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 555428BFE41981FBE1244DA9685ED649 /* FBSDKLikeButton.m */; }; + 4B5B1630E7C17F0B3122A086FD9E7BB9 /* FBSDKShareKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D55F993B370322A81BA874F9CB423F0 /* FBSDKShareKit-dummy.m */; }; + 4B5B2D1A1E039B88B50865B2039C1AA5 /* argon2-core.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E38C4A8D9227857B26406C451512BF7 /* argon2-core.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4BB25D865AC617D9089CF937FD1A98E8 /* FBSDKCoreKit.h in Headers */ = {isa = PBXBuildFile; fileRef = BEC43B91DCAFFEDF161330D7CD3A09C4 /* FBSDKCoreKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4BE64F77D42A9CC42254A613B619883B /* blamka-round-ref.h in Headers */ = {isa = PBXBuildFile; fileRef = C6262856C7A81BFF7E5225BDA0B4909A /* blamka-round-ref.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4C96EE9391CC1616EB80928370D18086 /* onetimeauth_poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 48E228BBADAA843F8B59EC2DA33EB927 /* onetimeauth_poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 4CA4F8F64565882DCFA174872749C0EF /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 26FD9AE7B8392B7EDDC75876BB51DFC2 /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CC2E382704A6A7F44FC84D74F3F06F2 /* FBSDKBridgeAPIProtocolWebV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 257731D7042A09BE698D2C11BAA35D4D /* FBSDKBridgeAPIProtocolWebV1.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4CDBF07A29530EF910370339692C41C4 /* base.h in Headers */ = {isa = PBXBuildFile; fileRef = BE13A11A01BA8100F362170CE0D8700D /* base.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4D9795A249C3597A9DD2DB71BF51D244 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 4DF65C42EBF3789EDBD6FCF4ED3F6842 /* NAScrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = C32B779663734F03432FCBF7052F4FFA /* NAScrypt.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4E2A4FD2A24B056550B94FA576419765 /* hash_sha256.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D6D3ADE4C608E25DF2C86A7CABC254E /* hash_sha256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 4EC759EE301F6A979662B7D6FD34D4BA /* crypto_secretbox_easy.c in Sources */ = {isa = PBXBuildFile; fileRef = C7AAF546572A0FA3177DDC72549ABA4E /* crypto_secretbox_easy.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 4ECECEB5C372BB91D3A66BFD432AD598 /* BFCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = A905FDF0A7C5EE673BCF2B6A922F1BDC /* BFCancellationTokenSource.m */; }; + 4F91C2837962A25FFADF2A08C09B481E /* crypto_scalarmult_curve25519.h in Headers */ = {isa = PBXBuildFile; fileRef = F017C6B032BF9A5C5324CD4B2EB02982 /* crypto_scalarmult_curve25519.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 502D9247A59C07DC82F47264A30520A7 /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D98077EAEA246AEC38BC50D7DF29596 /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50428091C14E94BF1F5B0C597A762A78 /* NASecretBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C7F3FF504FBB117DA99505A5139E169 /* NASecretBox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 508B6D0572C0C3B4A3E019B814595D4A /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 726FE0B669953010969FDAA49AE98511 /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 50AB8A0A4D09B52F466393199E8D741F /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C70075099F8A35F121E621E93974F4F /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 50FDB4CB4FACEAAD1F45C6CF087338F1 /* FBSDKErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAF28E0868C7338239326A333830979 /* FBSDKErrorRecoveryAttempter.m */; }; + 51047C1945103943F70BEADE83725630 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F8B90BB50DFEBE3D5358863A758A011 /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51162AA8524C4943C5DF8E606A076648 /* FBSDKShareUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A3A6728006EC2ED0E4677490083314B /* FBSDKShareUtility.m */; }; + 5117F5EDDEA50BC6628068132896F8F0 /* FBSDKMessageDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FB5448CAA965EAACA4E07AA5247A2E4 /* FBSDKMessageDialog.m */; }; + 5176D4337E6EB5A5D414003464C49F22 /* FBSDKLoginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 50DEBE524C73841D765F8F4E9E16F669 /* FBSDKLoginManager.m */; }; + 51836A78E777042F06CF844AFB6DDBB9 /* AFHTTPRequestSerializer+OAuth2.h in Headers */ = {isa = PBXBuildFile; fileRef = 76CEF9E6C887FF2B700003EFAFB08F62 /* AFHTTPRequestSerializer+OAuth2.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51E3F8E47A2429857F390CD53E3A1D3C /* UIStoryboard+DJLocalization.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DB409BB76FA02D2D18C069F3794E368 /* UIStoryboard+DJLocalization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51FCC9EDD6B60BF63B5EF7CAC94CCF23 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = E339BB540711AA23CE0A4C4E583B419D /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 525CE195FC0D4D02B71F72C7A84FB716 /* FBSDKLoginManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = AA2B2F56C1557B89E51AAB67C1627856 /* FBSDKLoginManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 52FA4CA1C1D36FD873C0DB95C7485ED1 /* core_hsalsa20.c in Sources */ = {isa = PBXBuildFile; fileRef = D92CD4E014F6D1A89C84F39A9C80EA72 /* core_hsalsa20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 5316512DE0482114DA2DE19BE2F53FC9 /* hash_sha512.c in Sources */ = {isa = PBXBuildFile; fileRef = 0AA59EF62A51AFA9A1DB0349C80A5272 /* hash_sha512.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 533AAF6F926F155611608F054F3A70D4 /* FBSDKBridgeAPIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 66D6B0058C76C46A48C1B6B62EA484BB /* FBSDKBridgeAPIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 53882E613DA7185E0F29F050B7178E89 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */; }; + 53E394F7C4453909027ECCD278E3F461 /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = 316FE2EC4081AA66E778A8FEFD766937 /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 53F11F79B06D22D82302FBCA3D24BDD4 /* NSUserDefaults+AESEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = E24F40FE80C225EB5752C57E665BD1EC /* NSUserDefaults+AESEncryptor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5402442E03F342F6101B18C8C3D609AA /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AEA58A825C8937CD7417ADA494BC681 /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 545CE0749C74F46FF1D61A52CA140901 /* FBSDKShareOpenGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C0E7934A146E935107C6DB71DE2D202 /* FBSDKShareOpenGraphObject.m */; }; + 546EB246F070EC71036377DA6C3C5680 /* FBSDKShareVideoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 48FF773660157C72D2948659A43FCDB0 /* FBSDKShareVideoContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 54814923B2EB217DB66F36F37B8245DD /* FBSDKShareOpenGraphAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 882D75E57826C680B000D531DD4101FB /* FBSDKShareOpenGraphAction.m */; }; + 552A6ABD5890318A206EB9CB490BC0F9 /* FBSDKShareVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 50622BB6317A23A9C92E54BFB8A6C955 /* FBSDKShareVideo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 553C77C3BA656D7F8083C3B56984F521 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 55CB59E1B79D5341A3B085351EEC6837 /* onetimeauth_poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = C524BEBA402E93543088F15203B4B0C2 /* onetimeauth_poly1305.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5606AD180BC3784508DFDB63D2636B2A /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = ADDA5C849898EA5976AA808E33538AB8 /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5628CE8BD92ABA97AD73FDB13E7076DB /* nv-ios-http-status-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DEC7F41066EEBD8288548485F0B2A2F3 /* nv-ios-http-status-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 56AFFC2BD3F3B3F6C7140D6F3ED92A7C /* DDDKeychainWrapper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 512A96CFB549C537BE0C1FC1D8AEEE87 /* DDDKeychainWrapper-dummy.m */; }; + 57086DAC2D80B6E22296F8794674A5B6 /* crypto_core_hchacha20.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AAA897EBC8E9C3DE05ED335B04D9DD9 /* crypto_core_hchacha20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 571EF2BEEAD0CC148168F4D92992610B /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */; }; + 5749EDA604DB957944E74D0D20DA506F /* FBSDKLikeObjectType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D9A732CA19FE04150C7E449AE44EDCD /* FBSDKLikeObjectType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 576E82D018C9BCE5B4F4D79BE724E909 /* DJLocalizationSystem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5AAE775A1FEB13F35478BEC77EDB5F4A /* DJLocalizationSystem+Private.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 57AA2024F038D2045AC2F8A9A5A50CF8 /* FBSDKDynamicFrameworkLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = EEFBE25E9FC2047180A2D56EA883EE3E /* FBSDKDynamicFrameworkLoader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 5890149031D7BE39D8F5721F6505E482 /* _FBSDKLoginRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = 936649A2CF2D268DA1824BB355390627 /* _FBSDKLoginRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 58B890DED147641DE47750D57CADBFC3 /* hash_sha256_api.c in Sources */ = {isa = PBXBuildFile; fileRef = F3D06BEEEAC3C56BCAE6C2C139107AA1 /* hash_sha256_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 5906163B49AC536040A671D3DCC928F1 /* verify_16_api.c in Sources */ = {isa = PBXBuildFile; fileRef = DD383E36BC4E87A21294B79DF951B288 /* verify_16_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 591B5B18E93D2CAEDD105BA0515798CD /* sign.c in Sources */ = {isa = PBXBuildFile; fileRef = 7C0D317A4C2BE99DB2820482D1EAA9D7 /* sign.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 5922E3B61E351E2A21095BD92E4FE8AC /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 84245A920A8C2BFCCBC1BBAAAF5222FE /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 59286F43792B899D971F6175C878B763 /* RZDBTransforms.h in Headers */ = {isa = PBXBuildFile; fileRef = 71985A0B67ADCA8ADF73DCE79B242C58 /* RZDBTransforms.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 593FACE5092D783FE41113EB6DDDE053 /* FBSDKErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = BD425F0503FFA7A39156EBCDE485B65C /* FBSDKErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 597E5A323FD0306B81C3F7E9C8E5580D /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = EE129661D274DA863ADEC97F33B8897A /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5993F14F4E48863E136EEF30B581C24B /* FBSDKUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = D57F21B98EB913110B9BF61B0FC3CFF0 /* FBSDKUtility.m */; }; + 59A52741FFE000568EFF7C0421AE60A5 /* keypair_curve25519xsalsa20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 0C90D8DAA5DFE6742A10654897C1EF4F /* keypair_curve25519xsalsa20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 59CFB9754D56BA871E641C7AC2E97C52 /* FBSDKGraphRequestConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 10DBB880BE793CC3C7A741EB9C0B3907 /* FBSDKGraphRequestConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5A1D34D104D42B1EE399E23BCD7935A0 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F2995946412A33EC6A25165DA7B6173 /* AFURLResponseSerialization.m */; }; + 5A54A9178928558C579D201BF7500392 /* BFWebViewAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 71322ED299C79A318C08A7CFEEECB31D /* BFWebViewAppLinkResolver.m */; }; + 5AA51741E02FB0280FDD20DD984FE455 /* crypto_generichash.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB60BF55A07EC800EF01404CD5FE4EF /* crypto_generichash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5AB42719B628D139D033B748582E7C30 /* NARandom.m in Sources */ = {isa = PBXBuildFile; fileRef = 322E3C08D1ED51FFFADA391F1169C519 /* NARandom.m */; }; + 5AFD42B6ADC93B83047D13E3961611DA /* secretbox_xsalsa20poly1305_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D8A5F5C709DC303EA1FF3575EED2894 /* secretbox_xsalsa20poly1305_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 5AFD94BD9754A09252585B90A913DEE1 /* FBSDKSettings+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = CE267A67FA2FA598B9D2B4C0ACBED9CD /* FBSDKSettings+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5B1E0217757C60E21362F4D429BB125B /* FBSDKAppEventsState.h in Headers */ = {isa = PBXBuildFile; fileRef = DC94754211BCE7082DF3B14161B5EAAB /* FBSDKAppEventsState.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5BF825C7DC7E5001FA21DF40C38736FE /* FBSDKAppInviteContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A14A9053EADFD30565D90F227B1270E /* FBSDKAppInviteContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5C64EFEA38EB7B1EB9F72BB7A5A0640E /* FBSDKLikeButtonPopWAV.h in Headers */ = {isa = PBXBuildFile; fileRef = 56393CABDB541B464B5BA3AA0CFE6C5E /* FBSDKLikeButtonPopWAV.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5CB8169B231A566BC462BDF5E2FAFC46 /* box_curve25519xsalsa20poly1305_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 3E01992BBE68FFAE711A7E6FD169757D /* box_curve25519xsalsa20poly1305_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 5D1ECC137A24FB143EBFBE55C6843F8A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 044012B17A5A48E36B81569A4004FE53 /* XCTest.framework */; }; + 5D27A36CE393AC2E486B2D6B1DFAACA2 /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCD928C8165C1C6590EB58BB103FDE5 /* SPTExample.m */; }; + 5D28DF36DCB7BA650BDF526EAB179212 /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A48D53680E9CAF8086B45CEB4234203 /* Specta-dummy.m */; }; + 5D4700451D6C9DFC6D5FFB86671EA2AC /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 37C77961C7AE1A6230D00C5A64F39CD5 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D956692A8CF1B0B338213DF65990FDE /* PEARFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D250A1D4365D29A396763858FEE7067E /* PEARFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5E13A84FF7AFEF3A88BFF2735C307CF9 /* NAStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 86350ACB81DF788369780EEDB87FF820 /* NAStream.m */; }; + 5E2D97F124DD952AC454855ACBE8837F /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91C39CE9C2CEBA193716F145A218C946 /* FBSDKCoreKit.framework */; }; + 5E470D2CB5EF37EA4AA26C958EFD3EA9 /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 49C77CFBC5353DB1E263E176CB6AE291 /* SPTSpec.m */; }; + 5E4F55D319FF771D658CCE335E7CB498 /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A67F041C397356C2E363CF59F224759 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 5ECC89F6AD60238FC2C45A81A454398E /* CodFis+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 02592C9CD83FCFC7BD780FC236FF0CFB /* CodFis+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F160713BF583BCBC136CE95E62F9C2F /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = E443BF8A0EDB302428867D645B0D1E93 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6038E163CD2F497BE7F5DC2D9A55DB2A /* NAScrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F091FFA116412CDC8EDF3E546A8D11 /* NAScrypt.m */; }; + 6041105C965934F8A763700154EC1AA6 /* FBSDKUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F68E047D9B8C0D5EECA37A6FAA632F5 /* FBSDKUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60550CBEF2A1ECB61FAA64CE35685B66 /* FBSDKTriStateBOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = 725AA96FCCBB4195983782A63C7C1E5C /* FBSDKTriStateBOOL.m */; }; + 60C4556E0AFB4CDB3A6BE72039FA8611 /* curve25519_sandy2x.c in Sources */ = {isa = PBXBuildFile; fileRef = 03838017D67C45A63FE6B9D17435810B /* curve25519_sandy2x.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 60CD83FA1B2BF6E93B59834C1E0CBEF0 /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DF3AAB1393DFE66F6EC89A7EBE5375C /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60FB033AE36DC1310A35558F71E764DD /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 62E1587312189DD098CB834985C379B5 /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 610CF3A0227BF99BD5D6EFA7A69A7C04 /* FBSDKTestUsersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BA41975142E387704B6973F9EE1A5AEC /* FBSDKTestUsersManager.m */; }; + 61680D5413DD7EE723783B324EE3BEBA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 6177B48556D75295F611578C7CE067A2 /* PNInstallation.h in Headers */ = {isa = PBXBuildFile; fileRef = BF8D24041914F365184C23C25E789F44 /* PNInstallation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 619F308ADA1F66BA128318455FC99AA2 /* FBSDKAppLinkUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = C0315EA376F76903D58AA6E4E95940FD /* FBSDKAppLinkUtility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B7210F6AD454A37571840FCFD10083 /* RZDataBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = A8508A663B95FE29B0DBF5FF60B57224 /* RZDataBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 626B69D3B2CC51013DB5950748098724 /* FBSDKShareKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FD176DEDB8BC5240FC603162963D8A3E /* FBSDKShareKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 628D0BFEF8F3C607E01BDF6C1E49485D /* crypto_scrypt-common.c in Sources */ = {isa = PBXBuildFile; fileRef = DDEBF8D1605DA7E944CFCF9976E362EA /* crypto_scrypt-common.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 62E38BC172C49C3A5B26E89605AAE0F8 /* libsodium-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 21BCE168B59CA38CFCEAC641303CC4CB /* libsodium-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6371635BB041B10624539BB2C3E68D84 /* NASecureData.h in Headers */ = {isa = PBXBuildFile; fileRef = 74EDC2C54B0AB83D05F601BEF00FFDCC /* NASecureData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 63A2DA954ECA595EB48E9B91DC144747 /* core_salsa208.c in Sources */ = {isa = PBXBuildFile; fileRef = 55077EA82B4A4601E54DA49E11BC3F60 /* core_salsa208.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 63A49532C857D4508B8112C46EB1E501 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91C39CE9C2CEBA193716F145A218C946 /* FBSDKCoreKit.framework */; }; + 640751498CA9559EC1F88863178934B5 /* FBSDKKeychainStoreViaBundleID.m in Sources */ = {isa = PBXBuildFile; fileRef = 60AFBF7DD3257FE12798A1808A0B1062 /* FBSDKKeychainStoreViaBundleID.m */; }; + 6423252A4839C1345BE5625417BDA674 /* FBSDKShareError.m in Sources */ = {isa = PBXBuildFile; fileRef = F81AEC1683D42FBE542B95392B7B1B9C /* FBSDKShareError.m */; }; + 6439A11FA941EC33BB94889B833EA350 /* pbkdf2-sha256.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F6E80DAEC9AC48215F95437485AC6B9 /* pbkdf2-sha256.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 643BEF7F2ABB10B5B8D3C15C164616FD /* NABoxKeypair.m in Sources */ = {isa = PBXBuildFile; fileRef = 448F29344CA8014335723031F87D27D2 /* NABoxKeypair.m */; }; + 649E78B5EA450FABDF5201E31F265FAB /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA09D1052E3988D61774DDC54A7C7C5 /* AFNetworkActivityIndicatorManager.m */; }; + 64C46AF200F2347115A0DF2799D6E403 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 010E7F85443AB3C86AD24F0E99B650FD /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65007B76142FF254119FA359C9694504 /* FBSDKShareOpenGraphAction.h in Headers */ = {isa = PBXBuildFile; fileRef = EE553BED152D758D536EF13374FE48DE /* FBSDKShareOpenGraphAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 652E7E32BCCE8AE4898DEBA7B37A3DF3 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 7813CDF0C3EC4F003101BCB96365A2ED /* common.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 653DCB63E923B69279CA1A724A77FD13 /* NAOneTimeAuth.h in Headers */ = {isa = PBXBuildFile; fileRef = 0168059C2E70ABB3157CD5BA485D79D5 /* NAOneTimeAuth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65635C02CB6C86B5F38D492517C4C72F /* NAInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 6564C9AC99EA9682F89286F94CA0061C /* NAInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6573AF9ABA59AC8D1F52B07088197F71 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A550324C03EF2E3C99BE6100CBACFAD /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 65776A8016E9BB167855428DAE0198CF /* FBSDKMutableCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 941ACFDABEB4B91AD30E14BEEF76D66F /* FBSDKMutableCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6589476EA9FB997A6204F122A53CE36C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3255EC41C0D19A0EBFA08A3A87006FFA /* Security.framework */; }; + 65BB0F15EF53C55699DB2BF0B3A5D992 /* randombytes.c in Sources */ = {isa = PBXBuildFile; fileRef = E0B4ADCE34E51C8556C26F16935097CC /* randombytes.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 66064FE057D6E98B6064299F4B819DF1 /* FBSDKWebDialogView.m in Sources */ = {isa = PBXBuildFile; fileRef = A3BC085B42975ADAF8E66E9D5E1471F4 /* FBSDKWebDialogView.m */; }; + 660D3F9F24DBD302A9A6B5A4B0A5F6ED /* BFAppLinkReturnToRefererView.h in Headers */ = {isa = PBXBuildFile; fileRef = ABD8D96E4F004588AA24A0CE2DA10111 /* BFAppLinkReturnToRefererView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6723139B112BF314CB31B2A65B2DFBC2 /* FBSDKMessengerIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 2936908F010D40A6524387BEF29087C2 /* FBSDKMessengerIcon.m */; }; + 67F350233BDECA29E91220A6E62A17FA /* BFTask.h in Headers */ = {isa = PBXBuildFile; fileRef = AB33F2F102D07A3BBF16CEC3C818F3EF /* BFTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 688C32E284EA02BFF70C48D07D79AEEE /* crypto_secretbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 68A4C2B0532AE666074ADF1C47DB678D /* crypto_secretbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6943508215AFE40C751DCF4BDA8B9D7F /* auth_hmacsha512256_api.c in Sources */ = {isa = PBXBuildFile; fileRef = B950AABBC801567158D2BF8D31E92210 /* auth_hmacsha512256_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 6A02DCD5FCB28EFE76786889F85C371D /* FBSDKUIUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A63B61A8AAD3568638CF60B32253560 /* FBSDKUIUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6A3D2BF94C8A98AEE130A80DC2D99E4B /* FBSDKLoginManagerLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B0204BF071B3C49E0C236B2583886D9 /* FBSDKLoginManagerLogger.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6AB838B91AB57E1B4E7E4BF909FBDF7B /* consts_namespace.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F7B22AA36B3BD9F17C4C0705CF12357 /* consts_namespace.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6AEA1711572AC9AF954195C13519F8C7 /* shorthash_siphash24.c in Sources */ = {isa = PBXBuildFile; fileRef = 2498AF84711C2401D7D008A9132B7AB3 /* shorthash_siphash24.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 6AFE71483C188C376C7B0F37453FDB24 /* BFAppLink.h in Headers */ = {isa = PBXBuildFile; fileRef = ABBCCA040755639A59FF284C851A90DD /* BFAppLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B92DE5FA269D537256D731B5CC4353A /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 4737A21F569AB5366F03050B6F159299 /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BE01BA63F626BB87ADE5E09888C4883 /* FBSDKURLOpening.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CFA848E9F436535706EA35CF131941E /* FBSDKURLOpening.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6BF7C2E65ECD57330DCF10555DC297D7 /* FBSDKBridgeAPIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F22DD14C66B71A9DE3E5854A5880482B /* FBSDKBridgeAPIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6BFA8B2B334C5D5D00F77275B4C4A0F2 /* FBSDKTriStateBOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D718BA0E87E4A07E3BE1827F0BC2158 /* FBSDKTriStateBOOL.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6C1653E7EFB9414633F008B80659070B /* crypto_scalarmult.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B8AD6EEC3134E59723A3D25848F7EAC /* crypto_scalarmult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C3B42E5261D59F3324893635DCA4A9C /* NABoxKeypair.h in Headers */ = {isa = PBXBuildFile; fileRef = 0976134FF7D4EC74D3348C57A4AEB623 /* NABoxKeypair.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6C3EC990F4A249D8958579DE3DF0E5B4 /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EDCDB5295B914DFA07AC571A5CEDDB5 /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CD5E8C5004B24475F1641361D480EB2 /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A5BE442D2316C7AB6911990E5D07BC87 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CF127B24583000E3FFCD707B5D444DE /* FBSDKLoginUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = DEEF19824CE840F624BE0A1C9BCC272B /* FBSDKLoginUtility.m */; }; + 6D024C2EE1C5E6E72B6CD28199B5DB28 /* scalarmult_curve25519.c in Sources */ = {isa = PBXBuildFile; fileRef = B1D815ACD30E35E02664182C9441A0B2 /* scalarmult_curve25519.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 6D4A73AA8761FDBB91E51E7405BD6881 /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9530FCD7B93F0B744402DB6E22ED3029 /* CocoaSecurity.framework */; }; + 6E07C5BF951B70B4433031BE376E3AF2 /* AFOAuth2Manager.h in Headers */ = {isa = PBXBuildFile; fileRef = D1F93850CC40845EBA866BCB99712372 /* AFOAuth2Manager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6F10A90FC5600BADFDCE7119DF2C97B5 /* RZDataBinding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCFC84397A97D780DB8E33FBD0A40C87 /* RZDataBinding.framework */; }; + 6F1C1760FC1CDD7E2E7D2AAE3A8F353F /* BFURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DAD3029A0FD42251CB37AC25A55D548 /* BFURL.m */; }; + 6F6B96EA43D4E6F4BF012686974C658D /* FBSDKProfilePictureView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A734DE7CBD23BC300C46C12007ADDBE /* FBSDKProfilePictureView.m */; }; + 6FED5D168DB043A4C10151308C350E19 /* nv-ios-http-status-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BBF4DD9406D051FA74A1D9D9C2341919 /* nv-ios-http-status-dummy.m */; }; + 70F3252B4EAFDF0E0B2A7EFABBFA2488 /* ladder_base.h in Headers */ = {isa = PBXBuildFile; fileRef = 54EE9E442BB6CE39737ABDC46A0A48DD /* ladder_base.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 71F7447117FE57ADDB4B657FDDBB5A0E /* randombytes_salsa20_random.h in Headers */ = {isa = PBXBuildFile; fileRef = 83756E5976593FF714A08D78FBBF0AF8 /* randombytes_salsa20_random.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7212822ACA1BA68E18A3AECC857CB750 /* curve25519_donna_c64.c in Sources */ = {isa = PBXBuildFile; fileRef = E5B371E06ACD7EC85EEDE466C6CC3655 /* curve25519_donna_c64.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 72290ADD3DAA26E7607690DB3360E242 /* AFOAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 639C868FD9013F7A62F9C843C244DC61 /* AFOAuthCredential.m */; }; + 725AD98652A16599353FAC79FA1BFC4C /* core_hchacha20.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D14FE4FBE1078C1FA7F126EA698B90 /* core_hchacha20.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 72AAE7C46F67FAC5D4EB067DFCC37A9B /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 993A772CC4CAD822337C9EE18EBAACF0 /* PNUser.m */; }; + 72BE65E696A388D4CC0D75BE461FEF1B /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9A9B9B7CDEB799A052887677D38F5A7 /* MobileCoreServices.framework */; }; + 72DABB746661E9400131D12D2A3B5474 /* NARandom.h in Headers */ = {isa = PBXBuildFile; fileRef = 4890D40E53B5BD047D91E9BBC3F99DE4 /* NARandom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 72EADEA332F717460AF33960CDDEEB26 /* AFJSONResponseSerializerWithData.m in Sources */ = {isa = PBXBuildFile; fileRef = A3BEFDF6D6A4AF274BE2EE0E461203E7 /* AFJSONResponseSerializerWithData.m */; }; + 7357F283046E9E694E441D6895AB0ADA /* FBSDKBridgeAPIProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C47746B6F6369F0689571CB0BF2528 /* FBSDKBridgeAPIProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 737A2937D9B02670182E26396F188DAC /* UIDevice_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F160CEFDA9EF67D91C0D0BB870F6B710 /* UIDevice_Utils.framework */; }; + 73FFAC414EA4AD5BA7E080F9E3681A20 /* core_hchacha20.c in Sources */ = {isa = PBXBuildFile; fileRef = 479DB5A36B858CCA9817F1E3583FF345 /* core_hchacha20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7472D009C5DEFA1615F44E876C025821 /* PNObject-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CA78B797EC3D20CC47BEA320C1A350A6 /* PNObject-dummy.m */; }; + 74B60B3D5F7834637905C08815B88D1E /* DJLocalization-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 36B37C0D96D2D1C3237740984553CD29 /* DJLocalization-dummy.m */; }; + 7509627C97BE328428F0D1EA18C9C639 /* BFTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = D5D4192C44A8BE2ECD10FE76321BCD37 /* BFTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 752F4F79861843E7BD13DC8A4A2C9916 /* FBSDKProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F82996142DDC8BD8C0855A772155884 /* FBSDKProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 757473795FDC41106A1746830D9542F7 /* crypto_sign.h in Headers */ = {isa = PBXBuildFile; fileRef = E1544F5B77AE1E696AE2BB5CBDA317B8 /* crypto_sign.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 761A6EF3F46041EF7CD18734491A1400 /* ResponseConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 228536A01037E8312423922F7766D0E0 /* ResponseConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 764F70D806B5A72D0080E79C706A4B8E /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CEFAF55FBF5F462F3D2FB4F0586021E /* ALView+PureLayout.m */; }; + 768D11BD318566BEDAAC355098CAC82C /* verify_32.c in Sources */ = {isa = PBXBuildFile; fileRef = D1C98B0BB1E433A8BB66493688B7DB6B /* verify_32.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 769609A92489E52DD8C008ADDA912C00 /* BFAppLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 08353F091306F0B89FFCF6698DF16350 /* BFAppLink.m */; }; + 7703B4E88AFADD6F1D9F887C78C8DBF3 /* argon2-impl.h in Headers */ = {isa = PBXBuildFile; fileRef = C77BB3D1C64B4417F32A2358D49ADDC1 /* argon2-impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 773E93BE1F2F6C0C3F1B4D78D0EA4555 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 25E2957C098A975DDD956F4030322CDB /* UIKit.framework */; }; + 7759F03900D1BCD7639F11F69DBBFD52 /* FBSDKAudioResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = F2EEF54D12D186B8663C8DCB3F695C1D /* FBSDKAudioResourceLoader.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 778C9F1A1715E05313578E39AB46726E /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 64ADF90C947E2969DF4749656F340AE0 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 781CC5B0E7B6AA73A1D886A66781B8F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 79770622DD40F89CB403652628DF876E /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = 87C29DD6E1B3CCA4D972DF688D8AD147 /* SPTSharedExampleGroups.m */; }; + 79B185266265A589AF9817B5443A37CB /* NABox.m in Sources */ = {isa = PBXBuildFile; fileRef = 966EDA7A7132FFBFEA09C7B9137C953C /* NABox.m */; }; + 79BCF4F261CC0C909A26D95D1E3F9586 /* shorthash_siphash24_api.c in Sources */ = {isa = PBXBuildFile; fileRef = AF4FFBF733CC2851795F347E39E6FC8F /* shorthash_siphash24_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7A112C0F21A62CB6F1AA8D917A6EEA6C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CE91B19C0BA5712E59C8296629B1B6E8 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A35D22072A728F18A3E8D1BD1401BE6 /* NSObject+RZDataBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AB29F6BE93103430522C601D8D63A1F /* NSObject+RZDataBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A9FAB5A8B82733B046CC4ED1992E118 /* UIDevice-Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D713F1F0AA94178EC9405D76B713811 /* UIDevice-Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7AD08DD47673203D9923E17C07B518AC /* FBSDKAppGroupAddDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 649E34AE8EBE9910AD68640B7CA993CE /* FBSDKAppGroupAddDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B1A6207E64F8521DE5F8F9EF062E297 /* keypair.c in Sources */ = {isa = PBXBuildFile; fileRef = F0F9FE3CFA1726202D8CFD6C418E960D /* keypair.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7BC01D94BFEA87F24C8E6A917C6DCA40 /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A208D5B035A30529CDE23C4225ED836 /* SPTCallSite.m */; }; + 7BC1ACD2505F5D4FB528545275E6E15B /* FBSDKButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 256C0C7CF985DC6B56CAE2E9BBB98111 /* FBSDKButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BF61A7F199C061FFD97B5DFC0093E76 /* crypto_box_seal.c in Sources */ = {isa = PBXBuildFile; fileRef = D6F58E2F408071102057A748726C6E2A /* crypto_box_seal.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7C06193D80EF69FAF4D0B9F6ADEBC5D3 /* auth_hmacsha256_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 2BE054E830EA34B346DAE1C3E6AA8F25 /* auth_hmacsha256_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7CE16B1BF75DF396768A0A3CFD968DB1 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = B40EB31D310BAD3F8F0DD2CC557AC30B /* UIWebView+AFNetworking.m */; }; + 7CEC22582F227DC8ECAD5986AA0D4DDB /* NSDate+NSDate_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = D686C5FEAFDF6A76263400F68D766B82 /* NSDate+NSDate_Util.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D1D52A1C8A0C47359679929B76E059C /* crypto_auth_hmacsha256.h in Headers */ = {isa = PBXBuildFile; fileRef = CB8CFC655A2BF7C580D22DC02AB6A409 /* crypto_auth_hmacsha256.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7D80F47C27700D80ABA56F33E8BC74EB /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */; }; + 7E2C83BADC1E5B4D5EAB8C984685C1C2 /* verify_16.c in Sources */ = {isa = PBXBuildFile; fileRef = A222E367C792B4F40ED1E1104136B1D4 /* verify_16.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 7E81176499F06E523CE3039B08AB5051 /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AD44711F47E37A188D1512E034C1369 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7E8CA38FB27CF2A5ECD991DFE719355E /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BF1B2D14FA284C93B9CCEE9846AE8A82 /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F232B364E5D8E00F3A2C6CD3A90BFB5 /* FBSDKViewImpressionTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F702F3A87D871886FB2AEEEEC4CB9B /* FBSDKViewImpressionTracker.m */; }; + 7F3677FD26EB887B876E568DA412A605 /* FBSDKBridgeAPIProtocolWebV2.m in Sources */ = {isa = PBXBuildFile; fileRef = 679AB703FB11238BBBD14EE5E0D2C2DB /* FBSDKBridgeAPIProtocolWebV2.m */; }; + 803743BA4B05C17BE7C976A565EC66FF /* FBSDKPaymentObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = FC00522169EA3F6C5E5801CC14B282F7 /* FBSDKPaymentObserver.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 80C7C9109EF900E34DDB6360A0D594A4 /* FBSDKShareDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = B12ACEF13E9287924CB679C6413C5B53 /* FBSDKShareDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80E746C79B5C3AC9B763ED4A1073F7DF /* nv_ios_http_status.m in Sources */ = {isa = PBXBuildFile; fileRef = F9F74C1674BC531B7F40EDB8F1210703 /* nv_ios_http_status.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 81BDDD2D9491DFA620509A2B43B5506B /* crypto_stream_xsalsa20.h in Headers */ = {isa = PBXBuildFile; fileRef = 463CE79B4901A3CF1976C41C0CA3EBF5 /* crypto_stream_xsalsa20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 81BF62E416774FF5A8CA79046D6EA40D /* crypto_core_salsa208.h in Headers */ = {isa = PBXBuildFile; fileRef = CDB887D162DC856B1CD35351698FF94B /* crypto_core_salsa208.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 820D0CDFABA6DAB43BEA945BA2C11B0D /* blake2b-ref.c in Sources */ = {isa = PBXBuildFile; fileRef = 60F1C64996C747E664DB8EBD3235192A /* blake2b-ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 8220368E5F7EA70947BAD2B6F216C61B /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1943990C83F05DC3EFA51415E3FC91AB /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 827AD46CB6902B960915E12AE921DD80 /* after_curve25519xsalsa20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 57B74DD83697A809FE906046BF527C02 /* after_curve25519xsalsa20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 8282E5426515096837229BB9E0D8A18F /* NAChloride-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDD269CEF3F675EF033519A6531722F /* NAChloride-dummy.m */; }; + 82EC19458B1A3C9BCDB1DA6181979818 /* PEAR_FileManager_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AC1FF556F86F99D984DCB1081EBF937 /* PEAR_FileManager_iOS.framework */; }; + 83C94DD9A551CAEBB9000477466F9318 /* Bolts.m in Sources */ = {isa = PBXBuildFile; fileRef = 72BF5B4410DC3DB627E15DEC38D11D20 /* Bolts.m */; }; + 8436B88A9D95EB840C84022CD613EFB0 /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BC16524B4E354454F2D7D088EBEA22 /* Base64.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 84A687CE6E1562A985549A1E45524815 /* FBSDKConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 95812E463C1CC47D16F5FC56077AF5C0 /* FBSDKConstants.m */; }; + 84F3F6FF80506F035E1B80DD75AB4A46 /* blake2.h in Headers */ = {isa = PBXBuildFile; fileRef = 99C9577C00F0AE4A3D5AA53F4881D43F /* blake2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8516EABCDBFFD6EAF92B6B1FA76B6256 /* UIDevice-Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F2349867BCCE97BD15CD0C2FADEF5D6 /* UIDevice-Utils-dummy.m */; }; + 8525046CD925148B361587708346F6F2 /* FBSDKGameRequestDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 69BDFF9EEFCC3A7780727631960224EF /* FBSDKGameRequestDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85385D664963B071E79CDDDBCDBF5CAF /* afternm_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 50F150B1464EB72E6AA842B3A75027D3 /* afternm_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 85DC0B27C52F2D2BD079512FCA1420F6 /* PNObjectConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EA7B07CAFCD14E7C1D5C579D3F188B1 /* PNObjectConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 85E5D7145002A73DE080B01999B7603C /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D0C809583C072A7C8E5D2875BCF7821 /* AFNetworking.framework */; }; + 862158B45A31285D4B911020B93145D7 /* Pods-PNObject_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA1CE72928E46C7F70D4BBE1CD90756D /* Pods-PNObject_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86362204FA92F6A663F363AE705EC71E /* FBSDKInternalUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 499F954FAC2B6CD629B8707719DA741B /* FBSDKInternalUtility.m */; }; + 868A5E476DDBEC6118FC23B8DEA8AE33 /* NSString-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B405C887B463B57319E82990FDC78E4F /* NSString-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 86EFD95B8C6BC8EF4E08F15A9EA25B48 /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 4292D57EE74911B3D2FE3686AD4B570A /* NSLayoutConstraint+PureLayout.m */; }; + 870CAAA15357EFF9E1619737DEE56067 /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 25737F1C52755777D19B8AE7262D3B1E /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 879EAFCF990451D8559574C34FC8E567 /* BFURL_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D11C5BD426E41A54B8D4CAAB5ACE078B /* BFURL_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 87AE70A44BD8E8676B2A3EDB6E334138 /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = A6FE7BF80394A99EA2695EA1907814F1 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 87CCA7307FF2003B18744C5AF03F7509 /* NAOneTimeAuth.m in Sources */ = {isa = PBXBuildFile; fileRef = 2732CBCA195BA4EDAC9ECB49EFD76009 /* NAOneTimeAuth.m */; }; + 87FFE70D58AD1DB646CC7F950888A47A /* FBSDKLoginManagerLoginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0926D9D5CE11A5DD20D250E57D248618 /* FBSDKLoginManagerLoginResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8819374CADB6E858A5899212A40C26A2 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = D63EEB322DB349FAB90669ECB3F0B3A6 /* version.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 885936C1D598DFB427B277AABEFC9184 /* verify_hmacsha512.c in Sources */ = {isa = PBXBuildFile; fileRef = 00285799494E3216269F32661CE5FB56 /* verify_hmacsha512.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 886B41A85178E6EB682B96A76D909819 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 898C927EB45DAB1F967CB239402C6221 /* PNObjectUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A1328A189405DE4B449924ECD32352FA /* PNObjectUtilities.m */; }; + 8993A2EE29E325936C594E09BF4E3301 /* FBSDKServerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = F00AB3576B568C1B01645D155BD9D989 /* FBSDKServerConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 89AC86361C93DFBD926D2E56666E7624 /* PNObject+PNObjectConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 0152FE63F4F86AD36C49C5D7CEFD1568 /* PNObject+PNObjectConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89B2F3F5B0F79FC7AD2C850A005343C1 /* FBSDKCoreKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BB3FA6F13A252401AFF53CFAE8CB4BE9 /* FBSDKCoreKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 89CE4CEB1524909FD38F5FAABA2D28C8 /* FBSDKProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C76D7F12BF1AC4B05069FC9D7193F31 /* FBSDKProfile.m */; }; + 89E45AB89C7ACBF805702F497DF4A20C /* nv_ios_http_status.h in Headers */ = {isa = PBXBuildFile; fileRef = 705BB4C68B3714CFB89096DC1529E726 /* nv_ios_http_status.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A8FA82220ED1C8056D7142C05288F36 /* FBSDKGameRequestFrictionlessRecipientCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 1302914AC21A11EAAE954194A659B9E3 /* FBSDKGameRequestFrictionlessRecipientCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8B0A34DADDB56E70CF4A5177E65AA081 /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 22609D1349DCD01DB4461C52D79D8DF6 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B8C4B3E28E6FC6D26037EFC282BE4C5 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 035082FAAFB14B16A9C05CC79CE603DE /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B9FE87997561C27D61580D2973B04EA /* crypto_stream_salsa2012.h in Headers */ = {isa = PBXBuildFile; fileRef = A4BFC4C5BC7C871BB31C63247EE3C3BB /* crypto_stream_salsa2012.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BDB790BF8A351EA807251DD514DDF0E /* aead_aes256gcm_aesni.c in Sources */ = {isa = PBXBuildFile; fileRef = 518EEF13F00BD7DE3313C5C837C1518B /* aead_aes256gcm_aesni.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 8BDBA8042C5829E782549C11420A899E /* FBSDKColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 74B2F5BC1B9AF1AFE004359B6BE26156 /* FBSDKColor.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8C14546CF091E0A5B1F0F37F576990B8 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 80764F1057E2E1DA2B9BFF972B3D4A9D /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CA05FFDF05D413B78EDD9302CD830A5 /* FBSDKSharingContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E0172A9E9DB2BC11ECDA9D492BFD0099 /* FBSDKSharingContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DD2FB47A3CDBC8A4139481FDED5E251 /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9530FCD7B93F0B744402DB6E22ED3029 /* CocoaSecurity.framework */; }; + 8DD57CE98A36AB9731388125FEA0E41A /* crypto_stream.c in Sources */ = {isa = PBXBuildFile; fileRef = F487F498EE80708E94B387091EB01B08 /* crypto_stream.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 8DD5ADE2DD9ED7E6707B6AABABA74896 /* FBSDKImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7594CD7CB21067D8AFF52592FCC663E4 /* FBSDKImageDownloader.m */; }; + 8DFF91EA02FFECDB2445F2EE35F2A696 /* FBSDKShareConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F5014DC3A76B6226E7BEBDD90CDC66 /* FBSDKShareConstants.m */; }; + 8EBD509ADD51F3F826FA0B04EB19F69B /* NAChloride.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8CF01417105E1AD7199ECFA09396D46 /* NAChloride.framework */; }; + 8F990515E868D90C15D2148DD1A22403 /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = C37ABA3C221DECD38F4B7F678B9E8DAB /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 914C959474B2DE95B7EFC69710A1A5FA /* stream_salsa208_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 3757C2C7E056EEA34BA4575F3DA0B50B /* stream_salsa208_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 91797A42C418AF288192FA18EADC4076 /* FBSDKServerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = AE43ACD5173438191937C9D3D4570752 /* FBSDKServerConfiguration.m */; }; + 91E2A116F2CAC6500A8460B30F7A9458 /* BFTask+Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C970EEAB10CA98E5716D16FD3ACFEE0D /* BFTask+Exceptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 91EB6DB57094D8CBB0CC848CB3894385 /* _FBSDKTemporaryErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = B441C5D2BC7C920385A5F2D8E921E43E /* _FBSDKTemporaryErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9223D5D84DF106A4E4B0BE20B717446B /* NSString+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = D5BBF74E7895BC2435DD1F7DF9A6B48D /* NSString+Helper.m */; }; + 9264BD69AFA8EE74F0D7F0EBD74F762F /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 44DB34B5125735E4E5EF6D363C5F1D0E /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92888243A36A746D04F338DD298DB60C /* verify_hmacsha256.c in Sources */ = {isa = PBXBuildFile; fileRef = 90E7E4DBAC5032500459D5F1C75668C2 /* verify_hmacsha256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 92BCDF82B00D61E87D4FA8CAC145A290 /* FBSDKShareKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 370E77BE84691847FBD7D99FB5929BF8 /* FBSDKShareKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92C499C5A1B20ED1150219163C6F9F7F /* core_hsalsa20_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 1DCD7E7D07B9D120D371FEA3626C686C /* core_hsalsa20_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 9316D38AC4614B6E2AEF043F917C59E7 /* FBSDKAppGroupAddDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 67287FD4AE8EB6DB4DD734E3D7B793D8 /* FBSDKAppGroupAddDialog.m */; }; + 932BE1B7694CF24408C0E938A2E07D3C /* crypto_scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E71BC8489DA5D9723A0A66434AA24C9 /* crypto_scrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 93DFC0CC12E763AE770017349EE009D1 /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DD4FCDBDB5884B02FC6B1A432E890F0D /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94364282DFC18A23D5ED455D40442FD1 /* FBSDKSystemAccountStoreAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = E09303466CBE1882C00E5CEF9E7CEB7E /* FBSDKSystemAccountStoreAdapter.m */; }; + 94523C40B57B4394D2C0FD3DAB6AC872 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 945EF17F9ADC9D2CB22EBDAEF4D89561 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 7103AABA737EFCB6D7B9C4B172135CD4 /* VatNumber+Helper.m */; }; + 9471DCB9C837648942DD73BB25CBB1C4 /* FBSDKLikeButtonPopWAV.m in Sources */ = {isa = PBXBuildFile; fileRef = 010A8BF899C568F1CE828C1A448114E8 /* FBSDKLikeButtonPopWAV.m */; }; + 948458DC0A9308A2D8C018C37FB7BBDD /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4696FF898A7108B34D96420A6C436E96 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 94FDD52DF46B1EA228CAA79600201081 /* randombytes_nativeclient.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D0A3FBC5B749830D429C33651EC4115 /* randombytes_nativeclient.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9504DE7871C6048F0CCC877288386F05 /* crypto_sign.c in Sources */ = {isa = PBXBuildFile; fileRef = 733E47ACEF2C887832A7511468104B53 /* crypto_sign.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 9578E33B76962389D5FF9C6608FE7F64 /* crypto_aead_chacha20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = 60E922997ED6631762CAEEBA661DF914 /* crypto_aead_chacha20poly1305.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 958BDECA75E9ED89E7F737D02D191317 /* crypto_auth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D285934B6DBD43A00EDE3503B8399A1 /* crypto_auth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 95A57001E8DFE60CC3FD37BC4FA29D8A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + 961E8719BBAFEB0E752A770F706EBDBF /* FBSDKBridgeAPICrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 3052AA772DE2CAD719E5EE652DF37812 /* FBSDKBridgeAPICrypto.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9622D76F6002CA7351447396533D7C96 /* fe_frombytes_sandy2x.c in Sources */ = {isa = PBXBuildFile; fileRef = E24E3A028164647B83733F1BFF7B4265 /* fe_frombytes_sandy2x.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 962AE2FFA8C0A057E3586754E7A751B3 /* BFCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 331FB4814B73F02148C0A9AD40292447 /* BFCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96A7D0F1FE874093C9A8C6B7AFB8F0FF /* FBSDKGraphRequestPiggybackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F47D26FA005F61989CC1BBDE4422C2F /* FBSDKGraphRequestPiggybackManager.m */; }; + 96E38AB85794062A6E3BFF2CD1991FD7 /* FBSDKLoginConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = BB8437B77E38DBAF1E258778EAB53260 /* FBSDKLoginConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96F942CCDE8A8F09DAFA9DC245C6F671 /* FBSDKAccessTokenCacheV4.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FEF639D510D91524F2E1EE1273801B6 /* FBSDKAccessTokenCacheV4.m */; }; + 9749F3A8FE2A18BE92D3AAC72353F632 /* RZDataBinding-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 85BD0368B84322484C341F260413D647 /* RZDataBinding-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 97848DC5138CE530DA9F0A26131AB96F /* NSUserDefaults_AESEncryptor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B873500D5E5AC54899F883F7DCCE9FBD /* NSUserDefaults_AESEncryptor.framework */; }; + 97FEF428DA2CFF0B3C555C833A686DD4 /* poly1305_sse2.c in Sources */ = {isa = PBXBuildFile; fileRef = 7AEAEC8AD3A0619B37F02EA43D0FEDBF /* poly1305_sse2.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 98050006DF0936E8D464F2BC2B5FFFFF /* runtime.h in Headers */ = {isa = PBXBuildFile; fileRef = C22CD714CA3834D585CF9E37B6718597 /* runtime.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9830C5925A905F407D61B29355840A2B /* FBSDKTimeSpentData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C6BCA5A4C55C7593B40201923903F9 /* FBSDKTimeSpentData.m */; }; + 983488C730E988A2CF777F011BA66782 /* FBSDKVideoUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 483DFE460F7A1A3870F597F3B4F737B8 /* FBSDKVideoUploader.m */; }; + 98571BE17A46245CA1717CF9157A0807 /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0776CF7F35F7516406C855C37FB5846F /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 987564B5D3CB86520614E00B79404DAC /* FBSDKMonotonicTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 797CFC86F2178FBC66EFEF4C177667A2 /* FBSDKMonotonicTime.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 989986EC0ACFB2CD119347871B4DE7CC /* FBSDKGameRequestContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 72B51D2440AF39DC0C277F37CA64267B /* FBSDKGameRequestContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98B8F6209CF0A620364E83E7CC85B870 /* core.h in Headers */ = {isa = PBXBuildFile; fileRef = CB057F45FF206F5D26F30060813FC87D /* core.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98D0FD6F634DB222D25B918930B0A3C6 /* BFTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 81EF083B3508EDB9EDFB7BD8B7E8D2BA /* BFTask.m */; }; + 9979644FD3A3B93B8B2D5E5203049E8C /* core_salsa20_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 85B10CA326FF2FD35EF5A602B9AEAEB4 /* core_salsa20_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 99E6D51A8A4E3FFB7601D182D995A3BA /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = A3680E8DD8B3D1B0476A8EB3F0CE1724 /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 99E7564C6BEC3AAF0717885C163EB467 /* scalarmult_curve25519.h in Headers */ = {isa = PBXBuildFile; fileRef = 3486B8C549C079B63B47C4C44CC78231 /* scalarmult_curve25519.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9A0ADF06F5B6BC3A70EDE1285BAF9346 /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = EF20A073E86580764945858998422C1C /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9A4D6DEE8FC1423FB6D05A88690A8920 /* FBSDKLoginKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D712E7A35F43F13206A163DEF34CD275 /* FBSDKLoginKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9ACC24131A77C72D3CD18DF5B5542AD1 /* FBSDKButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EB514DC6115D3270FBC7FFCBC820D8E /* FBSDKButton.m */; }; + 9B0D54DC78D209CFDB00542C9A7D8895 /* FBSDKGraphErrorRecoveryProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D8948F5AAC58DFC072B713F078728B2 /* FBSDKGraphErrorRecoveryProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B28D7983A989D60D00634DAAC58F042 /* NAStream.h in Headers */ = {isa = PBXBuildFile; fileRef = B674627806B34691DE49FA8285597F50 /* NAStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9BCDA5018A81DA38A04BDD58B1F6BEAF /* FBSDKGraphRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FBB05B50549253728E1CE2F50312890E /* FBSDKGraphRequest.m */; }; + 9C31FC3DCB6A9E66BC8DA5A58964521E /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 82B794CE2AB329B9119C1ABAAF912896 /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9C48AAE697ACEFFD9713A6888C477014 /* NSUserDefaults+AESEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 388D415744984E3D384F5B3D3EF63E33 /* NSUserDefaults+AESEncryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CAFC7DAE2E661FC92393E5CC55D1D61 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 01CCA93CB3F71CC4459D9C834B3AF6FE /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9CECD5F6A3F290FEC0DE6680F256DEFC /* stream_salsa2012.c in Sources */ = {isa = PBXBuildFile; fileRef = A57D1CCDA0A24B3A8E6B45A79C761CB9 /* stream_salsa2012.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 9CF40ED0DDD9B869CA96769F69B6A2B8 /* StrongestPasswordValidator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DAAAC718136D395F8584F59ADB867E7 /* StrongestPasswordValidator-dummy.m */; }; + 9D4B3A155F316BEFDBC7037538CA9178 /* StrongestPasswordValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DE1E29CF49E37D57A2CF310F0B50412 /* StrongestPasswordValidator.m */; }; + 9DBBBC1A74672EAF296FB93424FD883C /* BFWebViewAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 60D406D32EC6C330A7304059BF4C7DF8 /* BFWebViewAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9DC529E719DB6506138A980F878381CD /* FBSDKCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A5FEB186DF76B10901176F89C05329 /* FBSDKCrypto.m */; }; + 9DEE98791840C3F526C73E4BDDA89A8F /* argon2-fill-block-ref.c in Sources */ = {isa = PBXBuildFile; fileRef = E687CA9B351072625E2328E9146EDE77 /* argon2-fill-block-ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + 9E4463D68D13C127762B1ACB8249B64C /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 76786BF7DB256AFFF205FBEF36C0F9BC /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9E5DD12541A0FA2DA7E846B462D87A15 /* crypto_stream_salsa208.h in Headers */ = {isa = PBXBuildFile; fileRef = 714A00D3913DDB7143F1BBE6DDF8A19F /* crypto_stream_salsa208.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9EA076D25036A0F4765FF3FB57CF4A6A /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = C3A030D5EC248EC76F0AC4BEB7CDD220 /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9EE9A395A1B4766CC31140D47A28921E /* FBSDKHashtag.h in Headers */ = {isa = PBXBuildFile; fileRef = 9098E27BBB9B777852DA38E13F669F03 /* FBSDKHashtag.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F51005FE4BF10FA9906B02DAD609C6E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B6E8BFF82863AE4839C35BC411C185D /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 9F799AEE096324726157CE538785FC9A /* libsodium.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A87D6483AD7A11EE46A6D4C67F1888 /* libsodium.framework */; }; + 9FDCBE4BA669E194CCE7040D92C1F4BA /* FBSDKAppInviteDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 693C99BD262178C7AEA55EBD75D0B815 /* FBSDKAppInviteDialog.m */; }; + 9FFEB3C141794C5B8C5B93EBF5EE2AB0 /* FBSDKShareOpenGraphContent.m in Sources */ = {isa = PBXBuildFile; fileRef = F6FD391F81EC536082DF1F22081788BD /* FBSDKShareOpenGraphContent.m */; }; + A037AD9C808583B3EC9F49B3EEDA588A /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ED5CE3CE7421D52E5A9B610F7DFACC8 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A0612BA825C81CE45266B214DF3A8BCB /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 941DCE153E15017AC618ADB05AC3D959 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A0B36C4898CD3A75ED692AE1B945EFED /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 309E7F4A693ED8B334F212BAB0212AC2 /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0B54340EB8A02336452DBD2AABE3207 /* FBSDKGraphRequestBody.h in Headers */ = {isa = PBXBuildFile; fileRef = 33C03EDE823F17000C5735D1CE99E3CC /* FBSDKGraphRequestBody.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A0F9F33A70919F2F0A1679C948B10C29 /* crypto_scalarmult.c in Sources */ = {isa = PBXBuildFile; fileRef = 0559D8AB166E5B03F733FD6251BDDC10 /* crypto_scalarmult.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + A130B28B0E7D60AE5EE4F8F059145B79 /* FBSDKDeviceRequestsHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 68BF983600702C2982CF0BFFC5193965 /* FBSDKDeviceRequestsHelper.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A142BE6A574CECD07C1C2F8755851D60 /* FBSDKMessengerIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 99A321DA9208AA28B6FF7F824AEBABE7 /* FBSDKMessengerIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A16BCF5772198D71EB23326F3E7D0C98 /* AFOAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A085B948AB13EA2AA87027B5C636FFB /* AFOAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1887699BF0A1E639A85BD9EB6C4B308 /* crypto_hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C33EA17F7DCD61230EE604FC58195C3 /* crypto_hash.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1B656071941FEFBC5406974C7BE86B4 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5372DF5CC5195112E6CD914D05D9264D /* CodFisResponse.m */; }; + A1C44A11AEEF8EEF6105C073F366C971 /* sign_ed25519_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 4202D15E1D6BD57DA2119EB5A76FC3D6 /* sign_ed25519_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + A20622235A266412E5F8CCF07B5CD346 /* NSDate_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F7A345BEBEF983B25B627146148BA34 /* NSDate_Utils.framework */; }; + A219BF06D6CEF27ECDCE8C20F3BCF515 /* ladder_base_namespace.h in Headers */ = {isa = PBXBuildFile; fileRef = CAF3D682324C46426C322587B746DE60 /* ladder_base_namespace.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A2474C88093508194AFA348BBEEB3A7A /* BFAppLinkNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A61B0C85FD6D3BE3781D948DB759AE4 /* BFAppLinkNavigation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2D3CFFEBD3AEA2164A535192492F3B8 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 6739F81474B1EBAC489F75AEDAF63880 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A2FDAB824A7F85ED1C1DF4F925EF8D86 /* FBSDKAppEventsStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C147EC9E68DE849AB4D39F962053B81 /* FBSDKAppEventsStateManager.m */; }; + A33E04BD2B8C3500368345484EC30923 /* poly1305_sse2.h in Headers */ = {isa = PBXBuildFile; fileRef = 90C1E909B14A6BB87A697D58CFF0FD9A /* poly1305_sse2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A34EF6B27E97A4DE26E881420B4E95A2 /* FBSDKShareConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EF89A06BABC6C142A1DD1EA088FB7A5 /* FBSDKShareConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A3591DEDA776B48C026E7F9144981E58 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = A3B7D6B693F46B262654A48CDEF102D2 /* AFAutoPurgingImageCache.m */; }; + A3784F9AA9439781C490D5C42CA855E4 /* randombytes.h in Headers */ = {isa = PBXBuildFile; fileRef = 5351CBCD639F6914F19C9558AACD2F49 /* randombytes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A398D63C8DED664D99A864D79881A13C /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B685AAACA18433E899748B3A199151E /* AFImageDownloader.m */; }; + A42AC0057CDE350BF59D08C1B5D97DAF /* poly1305_donna.h in Headers */ = {isa = PBXBuildFile; fileRef = 63BEEFCC32CEF5691C53AB392C34894E /* poly1305_donna.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A47C2D572FB1FE197886B1CC00023A0A /* FBSDKSharePhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = 24FF0A63CFA405437A9BA0476F86489B /* FBSDKSharePhoto.m */; }; + A498DE5EA4DBE579B8A0615A28D270B8 /* NAAEAD.h in Headers */ = {isa = PBXBuildFile; fileRef = D423E5FDC99AF9CEC6661C5281C8863E /* NAAEAD.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A4AB0EFDCFFF8B00A2A84D15903EC9F2 /* FBSDKShareAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 809DA9DC752F10C030AA2D9C18E9DAF8 /* FBSDKShareAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5098DA5D31C4C0C42F3AA75C49219F1 /* BFAppLinkReturnToRefererView.m in Sources */ = {isa = PBXBuildFile; fileRef = 59F50AE399A8D6957F9F128C990B8801 /* BFAppLinkReturnToRefererView.m */; }; + A52BCF4E72B2DF16B17514F60A8A8FEE /* FBSDKIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 81E1D2CF5F0762B5F7E34A0ED3AA6EB7 /* FBSDKIcon.m */; }; + A5BC08E8A9629CE48ACA2C7C9050CA1D /* CocoaSecurity.h in Headers */ = {isa = PBXBuildFile; fileRef = F5080E28EF7CDF4535196CE13B7F76AA /* CocoaSecurity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A5E626CB76B3213CE6181D5E7C28BD2A /* FBSDKInternalUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B7F74FD608163590C6CDF3333809A02 /* FBSDKInternalUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A67450A89A68DA97F5EFB7D8F1718835 /* NSDate_Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 294B3C66073AFFF539451B056447852A /* NSDate_Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A696065B3DD64DFE1AC4DA86D3C74E59 /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 455672BB920BDD0C92D257A7B55C290A /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A6C07BF730F368B78B586F6B94B6377F /* core_salsa20.c in Sources */ = {isa = PBXBuildFile; fileRef = 47B88A29488F570668211F90DCBE5FA6 /* core_salsa20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + A6CC81FC886EE8FF27EF4DD48D6F8F56 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D84AA692ADC14A1062783DAFB478FEF /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A6ECB4EEBEE15EFE9F34C6572150B7F9 /* core_salsa2012_api.c in Sources */ = {isa = PBXBuildFile; fileRef = EB7A6B14D5BDD7E1AAD3F21B0457CC03 /* core_salsa2012_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + A6FDDEC98D4B8B4274E3B62249D443F9 /* FBSDKAccessTokenCacheV3_21.h in Headers */ = {isa = PBXBuildFile; fileRef = 04612680A3F4F437CAD3F2AD9AA8EBF7 /* FBSDKAccessTokenCacheV3_21.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A75E40CA89805C928130C4B8EDBC867D /* BFExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E6F4BB7CCD22D4D38338EDACF42359F /* BFExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7C2B3E88618E43B5DA3DD8F46640209 /* NSDate+NSDate_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = BEC8D38A9AFD295C5D5EBE678441B4AC /* NSDate+NSDate_Util.m */; }; + A824F7880FA89F7F632C96003C2C8F47 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 60B1CCDA270E221FD14BEFB412C23BCF /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8446D8224F103BE7F4A5237A60F0EFB /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = 04B045CA0FBBD9BE0BC869401C62EACB /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A84ED188345C2D0004CC4FF19091701B /* FBSDKGameRequestFrictionlessRecipientCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEFC9A54083DB4689831608688191A8 /* FBSDKGameRequestFrictionlessRecipientCache.m */; }; + A857CA86EC4FAA349221F7BECFE2C96B /* FBSDKLoginManagerLoginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F50E22DE9EBCCAA4E5718B3900E7FF /* FBSDKLoginManagerLoginResult.m */; }; + A865ED53C00E5A1D38A115F0FEEB9945 /* FBSDKCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = AB4FEE2DB5548DAE4AA4FFB7FC3D245E /* FBSDKCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A8B9DF26E3F071AB70238E9EAF6D18C0 /* FBSDKGraphErrorRecoveryProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 088D812A6C4C036B2AB1970550975CB6 /* FBSDKGraphErrorRecoveryProcessor.m */; }; + A90113DBD495FDAE5473A456D36AA74E /* RZDBTransforms.m in Sources */ = {isa = PBXBuildFile; fileRef = CCBB9FB1446D48FC189D8A6046459E40 /* RZDBTransforms.m */; }; + A94C68CE9ADAA2FCF7645A5CB191E98E /* stream_salsa208.c in Sources */ = {isa = PBXBuildFile; fileRef = 54D46559E281440FAB67996E24BBDF07 /* stream_salsa208.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + A95B049F650B770607B3724EC0E863A1 /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = DF30221AF965033A7E6D37B0105398D3 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9A0BD6EAD3EB76AA4D2881229C7F3C7 /* RZDBMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C69CBC0D7F9D935EB4759A24F6C3380C /* RZDBMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A9C2B803BFDDADE42F647E7FDB4FCA0A /* FBSDKLoginTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = D02ECCEACBBA02EE3FD0601E0A1BE123 /* FBSDKLoginTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AA0283267E8DA7A4F516A18CAE3152B6 /* Bolts-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 830E96E5853904057A5E639721BB20A9 /* Bolts-dummy.m */; }; + AA1CF895E4F98195DD4B025F05AD96B9 /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 55EA69A40943F629F212D1456DC9D1F4 /* SPTExampleGroup.m */; }; + AA5060419F1307F5F03ECBEA70DB186C /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 69B0EB1E741D7D2708F51BFEF8E61398 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAD2AF091971100EBDC335F637E27872 /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E91EBD3063708040C7596C9420F9E6E /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AAD2EAC07B1D925527961A43060AA27A /* crypto_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 0B47AF550B5FAB96AAFAF54DC988934B /* crypto_hash.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + AAD837463B8D2DB4A870738B7C2E6F0D /* blake2b-long.h in Headers */ = {isa = PBXBuildFile; fileRef = 6207E3A4EF0E019A960B705D0942B165 /* blake2b-long.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AB859DD367036A83C6C5BAB558EC7929 /* FBSDKGraphRequestDataAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F3EDA2FD8A07BBCE753D23FBC30C3BA /* FBSDKGraphRequestDataAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ABBDD0372C687211E68EDCE0166F3632 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D58E7AEA72DB809978988C5EF00C622 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AC0AB78F3A7629ED1C7F3F82BBB3F471 /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C27E72560C3001B02464B7B13AFDCE8 /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + ACF0D647B71FA802D6C3ECC6E198628E /* obsolete.c in Sources */ = {isa = PBXBuildFile; fileRef = FB332713BC2F79FDE8DD50F3EFE636DC /* obsolete.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + ACFF7D46B812B83F872A308006022C32 /* FBSDKBoltsMeasurementEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = A46BA18CE1F5DAD4BD40817224226BBB /* FBSDKBoltsMeasurementEventListener.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AD86AE990383376EFB048699F93F7855 /* FBSDKShareOpenGraphObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 411D8610D1CF78ADD94DE70C1D7C62DB /* FBSDKShareOpenGraphObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AE3CBD0DCE13ED8858937A646FB9ED7C /* box_xsalsa20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D7205E65B96CF46A23004AB1C5B5100 /* box_xsalsa20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + AE7BBD46BA00A9AC69249ADA56402162 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 5623D207D86EB179DF524C6167E09D0F /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + AE976B0E8E3DD81E4F49DBEF19D3C0AD /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C3F11C6E75C187FB0A636B3EE214008E /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AEE04DBACF7955F515F27E8EAE9C4323 /* FBSDKLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = E5743347810C1DA05B42D301BCE9EC9E /* FBSDKLogger.m */; }; + AEF3F8A87DBCEDD46B543B3495D2289E /* NSString_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C910B59269C90111D7C3C767D2FEA7AF /* NSString_Helper.framework */; }; + AF4FD9E1F3963745FEB3E9B631CC687E /* FBSDKLoginKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 33B7BCFD91EFA3D6052DD78F8B8F06A9 /* FBSDKLoginKit-dummy.m */; }; + AF574F9900C07227D36AF4129E31953F /* BFExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = A22B1409D1983A06CC598312132181B5 /* BFExecutor.m */; }; + AFC2C2597C05F97B4C5A0167DE6AF710 /* FBSDKTypeUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 43BD52F4F4F6D3F1E30F01B71E971F6C /* FBSDKTypeUtility.m */; }; + AFD1DD86904CF8D49DAC28EEF38E75DA /* FBSDKLoginButton.m in Sources */ = {isa = PBXBuildFile; fileRef = DC15D7D2570F77C4D7DBBE860EA58932 /* FBSDKLoginButton.m */; }; + B022A54FD2423E7FED70CFE6B8FF5E43 /* FBSDKViewImpressionTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = A52C9B79FF9C19CAA5979B77BB66548C /* FBSDKViewImpressionTracker.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B069C81446361C2082B0C01D4E5520AC /* FBSDKLikeBoxBorderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 343149EB2DDA012EF482E643E2F090E1 /* FBSDKLikeBoxBorderView.m */; }; + B07F595AE8832CB65837D4360F0EE7D5 /* stream_aes128ctr_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 1A59CDA296ABAF40D873FD10F4DC8C99 /* stream_aes128ctr_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + B08D712824D531736588654F4ABF7F12 /* FBSDKShareOpenGraphValueContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C60224763E3C2A87236B7822581C2E3 /* FBSDKShareOpenGraphValueContainer.m */; }; + B0949097FABBE169E0C3F52B02603192 /* stream_chacha20_vec.c in Sources */ = {isa = PBXBuildFile; fileRef = 3A79257FA928887697AF40D77207387E /* stream_chacha20_vec.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + B0E477FD3669D1B2C743725B6572F00F /* FBSDKURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = CF1462F41CA7C27CE59126ED18B95DBC /* FBSDKURLConnection.m */; }; + B12E34BF9032C23F6E00182698097E59 /* FBSDKAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = BC964214B402C2C21D846C7DEC607639 /* FBSDKAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B14728E66C39CAAB8A9E179805561337 /* StrongestPasswordValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32631AB4AD346D596FBEB16E9CC6227B /* StrongestPasswordValidator.framework */; }; + B1487AC2DD502CCE46631C123E047D28 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = EB378E0803B0F9961EE8405100B70FEE /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B16A078FC7FBC172A266A336AEF7F673 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = FA8B30719BFE9296CB5B2BBA226E76F5 /* UIRefreshControl+AFNetworking.m */; }; + B1FB214C8508C15E0A07DA4F56E8C259 /* DJLocalizableString.m in Sources */ = {isa = PBXBuildFile; fileRef = 70E4006CC48E435E36F051EBADAFE22B /* DJLocalizableString.m */; }; + B2AD4D098642F111DC1DDB0550BA9EDF /* FBSDKURLSessionTask.m in Sources */ = {isa = PBXBuildFile; fileRef = A6F9A6BCF07C3BC7628FA39D14BE7C98 /* FBSDKURLSessionTask.m */; }; + B2CA7FC41622904417A5382B4B2478C8 /* FBSDKBridgeAPIProtocolWebV1.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A864C62CA0BADF6CCAC9570785752EC /* FBSDKBridgeAPIProtocolWebV1.m */; }; + B38F34D27D0A5DE7A91BAEB9C78196A7 /* stream_chacha20_ref.c in Sources */ = {isa = PBXBuildFile; fileRef = 5F806B5C30B750914483A6CC8C775060 /* stream_chacha20_ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + B3F189747A7A3CEDA9200CB2749AC7D8 /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ABED39B84E11067030F2A03C89756FA /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B47AA9F7C41752EB123F338F782C88FD /* poly1305_donna32.h in Headers */ = {isa = PBXBuildFile; fileRef = 3915C75350E3544A6F43EC67B34DEBA0 /* poly1305_donna32.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B4A58B2ECFE7BDD6EE1E8B1C66EA92EE /* FBSDKButton+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = BF95EA3E8D98E6E69A327A023AD85489 /* FBSDKButton+Subclass.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B4B63A09AF7634806C5AC1474761389E /* PNObjectUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 38C9940BB9C1C127DCF1EAD73C320D23 /* PNObjectUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B4C54BE58D55544C9C2B26781C7D6FF5 /* PNLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 106C36F381B4489F0CF7820798040205 /* PNLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B58E2916775011DAEA54AD8F38BA359D /* auth_hmacsha512_api.c in Sources */ = {isa = PBXBuildFile; fileRef = DCED4701EEE821E673E8C958CB5CC3BE /* auth_hmacsha512_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + B60EC99709BE6821834A445EC1B39877 /* FBSDKLoginManagerLoginResult+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CD430CD93D81C75BCD5DC1CC99F13D /* FBSDKLoginManagerLoginResult+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B63A4599EF43CD7D1851337F76C83B18 /* FBSDKSharing.h in Headers */ = {isa = PBXBuildFile; fileRef = F366E022DF0315DA5F4EEFF342684D89 /* FBSDKSharing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6686EAAD516E60852A7703E6B9A1B80 /* FBSDKAppInviteDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = DA283BCCBEEB8C2217AF20F99733E0C7 /* FBSDKAppInviteDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B69CB35CA92843396DC968B037CCA04A /* crypto_core_hsalsa20.h in Headers */ = {isa = PBXBuildFile; fileRef = B907D2C356BBE8843BECAD51F193AB90 /* crypto_core_hsalsa20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6CF73E710F5A135F4FBED41AA5B5ADD /* BFAppLinkTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = 530A75C9CCCB1A8DC2D52BA689806A6E /* BFAppLinkTarget.m */; }; + B6F52801FBB70A73BBF6A735507E04B0 /* export.h in Headers */ = {isa = PBXBuildFile; fileRef = DF059528FD36234089AD978F643ACC24 /* export.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B7748501FC74B26C8198A3D4D8653A72 /* FBSDKMaleSilhouetteIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DCA25EB306C6619796460267330D4D0 /* FBSDKMaleSilhouetteIcon.m */; }; + B8058BD66E76715BCD6B458ED736A6D3 /* crypto_verify_32.h in Headers */ = {isa = PBXBuildFile; fileRef = 2864B8DF1592839220AAA73682A09796 /* crypto_verify_32.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B83B015B5F0143A1D2FED54771A4B68E /* DJLocalizationSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = FDB01B701C5BAF1454D0A80D6C040BA9 /* DJLocalizationSystem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B83E822E44260B3A7958F63DD3F781CA /* FBSDKSystemAccountStoreAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = A70141ECBAF9C85DAFB9334D2B28C6A4 /* FBSDKSystemAccountStoreAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B85322ED6BD5FEABB361B2A7C228AF5F /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = EAB8CB3F8F97841E61D3DD1709B8E7C9 /* SpectaUtility.m */; }; + B9713C47FB3CF2DC4E98F082EC768EDC /* Pods-PNObject_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E46B7AFFF2CB3F42C731CF9CFA5DFC85 /* Pods-PNObject_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B9CFA012246ABDC04F9DF182F893A736 /* FBSDKTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EBE7B9C2FD4C227315A843BB56C47ED /* FBSDKTooltipView.m */; }; + B9E1B0043139A8675B4CC0F58DD4CDF6 /* FBSDKLikeActionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 322C425C635D5323EAFC2B48375505CD /* FBSDKLikeActionController.m */; }; + BA2D29D9265012FAC7A88D9A8CCD9989 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C6AAE154B8D7E43C9FF852C027B2D0F /* CoreGraphics.framework */; }; + BAC05D6621087E5D3F421C8A62B4991E /* FBSDKShareButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 27ADCF1FD5D3FC071A5AD1BD863BA0A0 /* FBSDKShareButton.m */; }; + BAC3E2DE0E72FB6301978AC022ED29A1 /* DDDKeychainWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = F33B08AF89C2771A8BABAAF23B19607B /* DDDKeychainWrapper.m */; }; + BAE94900F3BE8D58995FC57A6D32D76A /* UIDevice-Hardware.h in Headers */ = {isa = PBXBuildFile; fileRef = 79B5AF79A16C6512D133D05AAA690713 /* UIDevice-Hardware.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BB6CEDCCA5DC3CC721AFAC496718D38D /* FBSDKLoginKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DACCD32EAF0D71EFADDE0FCEDD91A363 /* FBSDKLoginKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBC331E01AEE3C5F33BB84C6600A9698 /* FBSDKAudioResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 5594840934B43867F0C3FBEFD6C80431 /* FBSDKAudioResourceLoader.m */; }; + BBC7D292529B7E5DB953171190E321AF /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = B028158A09E21ACBEEED97F13AACDA7E /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC22E83FBE012D2A1B6B72B886832AF4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + BC4A3F392D78ABB11CD4381E94C90889 /* DJLocalization-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 03AC9FFBD8C06E070FCB79E7C9F4118D /* DJLocalization-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC530A8234C398F9F3AD1A1D41670B65 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E996F5611B931670A31534732BD5C97 /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BCDF52E78690D4B30C7E834E629A542E /* argon2-core.c in Sources */ = {isa = PBXBuildFile; fileRef = 3734EA88DD8E8BA31CF93221C5070660 /* argon2-core.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + BD176ECD79B65ED5C5657F449E7F85C3 /* stream_chacha20.c in Sources */ = {isa = PBXBuildFile; fileRef = 54349C2A111801AD356A28301D985701 /* stream_chacha20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + BD31D1A3BCF5CA41283017F1FB137472 /* FBSDKErrorConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A10D777F0C7B5738A2089B0DF6403022 /* FBSDKErrorConfiguration.m */; }; + BD92326E70E0C50065E3D88AB30DCB22 /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C45857AE11D8D57F100DFDCD0AC368C /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BDA816C8923AFFC9D52056D6FC5D919F /* FBSDKLikeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 2926D628713CC43FD149C423F394EC75 /* FBSDKLikeDialog.m */; }; + BDAB54E79210E9DAE74C9C3CAD6E4417 /* curve25519_donna_c64.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B4B48B1DE8F28D11E7A265EE21D1E4B /* curve25519_donna_c64.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BDBCC6DFC2F72B5131B6930F54FC3721 /* FBSDKLoginUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = C9D05B8A1D0BC45ADCA5F2E0A7595D65 /* FBSDKLoginUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BDD551B2094E29784C13A974CCC3ACF5 /* crypto_pwhash_argon2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 72E136993C21623328373DE0D20F2FF5 /* crypto_pwhash_argon2i.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE3CADA8FA7A64B8C57EFEA8DD9703C3 /* RZDataBinding-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E08500D05A12AD4957773BFF5615305 /* RZDataBinding-dummy.m */; }; + BEB2B03B7CA54EDD807FCA7838CB93F3 /* crypto_stream_aes128ctr.h in Headers */ = {isa = PBXBuildFile; fileRef = B17BB7DB1FA922C37659BE122B47517E /* crypto_stream_aes128ctr.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF041E409908C172B805888F932436C2 /* FBSDKAccessTokenCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A57AF6905B0A3803B0448EC6710C4DC /* FBSDKAccessTokenCaching.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF0FBC3463A1E0B9A26C78DFF2C23F53 /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 83619F2BAD107A8280C7B6916BCA0A8E /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BF25674C639D470FB89FE5B2F19754E1 /* CodFis_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8227379172D82E2E67B10BE220E5767D /* CodFis_Helper.framework */; }; + BFC7D32CFE8200730837306AFF61E5AD /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 67882C99F476C761CE40EE1830E3BCDF /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C0AF552CC217EF2EF5D688DEDAFCF8FF /* FBSDKContainerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCBBF305D6E1315443B9AA0C9D9BA93 /* FBSDKContainerViewController.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C14CD98EE4DDC0B7689F058D5B79CC47 /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = B5C0E39FD49B17202810280292B39AFF /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C16DEC09C2896F2146D04643ECA8EE75 /* FBSDKAccessTokenCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0950481F201D8E52B74922E8EB620B32 /* FBSDKAccessTokenCache.m */; }; + C1B5669B1DD471B6B6F317FC8CCE37A3 /* FBSDKAppInviteContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 71124AC898CB36B9E1735C5C92CC7F07 /* FBSDKAppInviteContent.m */; }; + C1C4CC96F5BE9301B4A95AED36420388 /* crypto_shorthash.c in Sources */ = {isa = PBXBuildFile; fileRef = 3A911FC4DF132AFEEB56163CF834B2F1 /* crypto_shorthash.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + C1F412EB57F0921E1E887CE615AB6F5C /* Bolts-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F5C0E666F6401BC4BF95AC282AFCCE /* Bolts-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C238C7C635F23436B8B84A21F1E8BBE9 /* version.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B34526A707280B8801960DD95AC0490 /* version.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + C2444EB446432BF7927F585EFAC97637 /* crypto_shorthash_siphash24.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C0DFFF83F4507D170E981C64A6184A3 /* crypto_shorthash_siphash24.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3084C37CC2E5A6ACB3A15A1730A533B /* NAAEAD.m in Sources */ = {isa = PBXBuildFile; fileRef = E6A0859B3D0028CC45CD1FBC732C4BDC /* NAAEAD.m */; }; + C308C48E9C57707306F8580AE37248B2 /* CocoaSecurity.m in Sources */ = {isa = PBXBuildFile; fileRef = E93BC746D287711BB34D59C217FD8F3B /* CocoaSecurity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C370BCB9203634890E5BF63349361CA5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + C3C9531CCFE473B3E118AB37D1865A59 /* int128_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 94F76EE92291F93F1DA6A6B5ADBCB191 /* int128_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + C40140A5CD4034131864B077258748D0 /* Pods-PNObject_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A838922082CBB903238CF0302A9F06FC /* Pods-PNObject_Tests-dummy.m */; }; + C48681A94F73D9A48F2BD53DC884D098 /* FBSDKAppGroupContent.m in Sources */ = {isa = PBXBuildFile; fileRef = C443ACD15D2555148AB82AB3FF1E2680 /* FBSDKAppGroupContent.m */; }; + C49FA290256E683C5E1E22F59365E782 /* DJLocalizationSystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E3A71D77CDDA16F738B018E4CD35755 /* DJLocalizationSystem.m */; }; + C676818DADAC76EE2FDC5533CBF3648A /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5798BB58E5A4C272EB00DF02670DFDF4 /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C69E9F7B31ED72C66009492A0A2D3E37 /* FBSDKServerConfigurationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 78423B10534D234EE3C8159D294BC421 /* FBSDKServerConfigurationManager.m */; }; + C6E06B8CCB77518A045B021F6D8A4D62 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91C39CE9C2CEBA193716F145A218C946 /* FBSDKCoreKit.framework */; }; + C70F49937651EC89DF42492276D8A040 /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 75599B3B925DFD0D75E3C7548BF58B3E /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C78677F071A77282A40CEF00B4EF751B /* FBSDKSendButton.h in Headers */ = {isa = PBXBuildFile; fileRef = FE56FC35592AC5DDAFAE91B7A886C0E8 /* FBSDKSendButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7B502680154D5055ACA7A3059E5080E /* crypto_core_salsa20.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CA83F51E429C86BEBF46D452DEB410D /* crypto_core_salsa20.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C7D70D4E08E187CB71DEDCC067145A9B /* crypto_onetimeauth.h in Headers */ = {isa = PBXBuildFile; fileRef = 99210DD3D3B66A3805451B1DD1AA1B72 /* crypto_onetimeauth.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C84A327959F7C0E461870B153DB56129 /* FBSDKLikeBoxView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5073E7257F054EA1AF23D1B1BA2F0488 /* FBSDKLikeBoxView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C8552FD03155106BA7E33DF1397D9EF2 /* crypto_pwhash.c in Sources */ = {isa = PBXBuildFile; fileRef = 11451432C5B71747DA2ECF3901BA2D5D /* crypto_pwhash.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + C86E7000C472FD9C319549DFFAC1D2F5 /* FBSDKGraphRequestConnection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = DD92C584CC1189A24C6EA66FB359D616 /* FBSDKGraphRequestConnection+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C8AAD8724E27CC52CC112D67734E921A /* PNObjectConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DC8F7247FA00CA3E9E5112C42B533B /* PNObjectConfig.m */; }; + C9F085F9FC1BBE4B1280FA99056F2604 /* stream_chacha20_vec.h in Headers */ = {isa = PBXBuildFile; fileRef = 544AEB5510BE2FDE2C6681C0DED40B2D /* stream_chacha20_vec.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C9F373703DBF8B7425618F5D883CF15D /* FBSDKLoginCompletion.m in Sources */ = {isa = PBXBuildFile; fileRef = 8252E429DA13E6981633AE2EA2D3229B /* FBSDKLoginCompletion.m */; }; + C9F7A6F5165954F06D391440B7A35F7E /* FBSDKBridgeAPIProtocolType.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FD67541CEE09D3C2271ED7AA056EA66 /* FBSDKBridgeAPIProtocolType.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CA17AA223F7AD52108093F7FB0F48CB6 /* FBSDKWebDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BF1239645FA23DBD972C46B3C41D95F /* FBSDKWebDialog.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CA72AC2ACBC8AB62839653DDCDCF2703 /* blake2b-long.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D794E6D638C16A75FDA67F290D0D109 /* blake2b-long.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + CA86598BD226C0311FF47E1FF0026FC9 /* FBSDKLikeControl+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD9077DC747F9732E094A2F04237833 /* FBSDKLikeControl+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CAA7D2CB3EFCFF80B228DE4966759E0E /* crypto_onetimeauth_poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = C9EEEBD186B60B1BD450BAF71912A5E3 /* crypto_onetimeauth_poly1305.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CABACAB1C400EA205C14DA5B059BD0BE /* FBSDKLoginKit.h in Headers */ = {isa = PBXBuildFile; fileRef = A52E6AFC4F640F41A9A4ECCB0954578C /* FBSDKLoginKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAC99914CCEB0192CAA228766E537BF0 /* FBSDKHashtag.m in Sources */ = {isa = PBXBuildFile; fileRef = 59C11F1659AF449855CE1E5B73182628 /* FBSDKHashtag.m */; }; + CB04742481BF8ABECD0596F2EFF4F675 /* FBSDKTypeUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = F6CF3E644A2FFB78A49F2DC9DD3C6FB1 /* FBSDKTypeUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB0CA0C3EF2349D1842379874513F870 /* FBSDKApplicationDelegate+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EE357BF90C7F13D9AB1AAA11AE1B1A8 /* FBSDKApplicationDelegate+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB2416FCF99E61625C582F954CF88378 /* FBSDKAccessTokenCacheV3_17.h in Headers */ = {isa = PBXBuildFile; fileRef = E1CF3DF9CB977E42067DFC325D98A83A /* FBSDKAccessTokenCacheV3_17.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB35E213CBC79B65AF00E895B3A8330A /* fe51.h in Headers */ = {isa = PBXBuildFile; fileRef = 6355AD462745330D2A6CAA690F0250A4 /* fe51.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CB99A2D7D003745153A564346DF8ABA8 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C8635E06AAD0C290626CB0D3C8CE75B /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CC5A6E6AB0050167A4047CB81A791B5A /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 862603D7628EF0325A22C2AA7EBAB3B3 /* NSArray+PureLayout.m */; }; + CC782EB8C554CE07C9C047AFF3A12D02 /* stream_salsa20_ref.c in Sources */ = {isa = PBXBuildFile; fileRef = 99F825781FC1217AF478A27A6EBD535D /* stream_salsa20_ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + CD22121B77F0F8E2B6A58AF6226038C2 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = FBB7F64DEE6FC0FF9780708F49CF7DE6 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + CD66900813CFE317343F5A4053AE73EC /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CF4B7C0962891B50E78765E6AF0F206 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + CE2EB8CE3176F8A1FAA78CC8786292CC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D7A21AB105706E93C66C01CA7EB92473 /* SystemConfiguration.framework */; }; + CE53BB38C51993001F2A5D0962BA78AE /* core.c in Sources */ = {isa = PBXBuildFile; fileRef = 1BE8AB908E463F31752FBBD60DD76E63 /* core.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + CE7E4C141657D23213C7FAE616D7FA75 /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = D22A983170E008382663F9F5F7ADCFFA /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + CE839798397718C2A1AD54273EC6196F /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = 7942B71650C88A861E964F90A5BDC008 /* XCTestCase+Specta.m */; }; + CEB2F0E229EF841D92C780C3FFDF1BEA /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5056E005BD9F6529BC54EE2CB3D3D7FC /* AFSecurityPolicy.m */; }; + CF287829627F26B2EB4382B897D06A0E /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A1636A3203860367BBF3E9F9AB99654E /* AFNetworking-dummy.m */; }; + CF3367EFD9C853279C0EA9226A2F98F4 /* FBSDKAppGroupJoinDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB7CD599A5F5DA2CF920EB72E3B061A /* FBSDKAppGroupJoinDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF52995EE5C6983F3F91C4947E646D7F /* NSObject+RZDataBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E62A237D09F9F807045978E75362330 /* NSObject+RZDataBinding.m */; }; + CFAF9B83B841F4A6B9424F4198447B48 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + D004B61FD43E695EA514E9E1C7481461 /* BFAppLinkReturnToRefererController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34952B767AECD9AB6CA9BFC233D02164 /* BFAppLinkReturnToRefererController.m */; }; + D071BDFEE2D52BF728891AD0F28651F7 /* NSString+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3DA2A818CF81E09EBF8859E8CA828FF2 /* NSString+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D09627F6419B41FF42D89103525DC72D /* FBSDKConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 109EEECCF2EC277F4F7A8CEC2E4F5183 /* FBSDKConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D1768C977F0CD5B420D1A1D2375CDBD4 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A81D29954260D0402254CE173E4A53C0 /* Expecta-dummy.m */; }; + D2264B0D4CEFD45DB60C274F685133A0 /* sodium.h in Headers */ = {isa = PBXBuildFile; fileRef = 2357906017436F5C51009A722490396B /* sodium.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D2D4DA00239782D6BE375EF7FCAD105E /* NAInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = 620F92555BEFA121DFCEF4F87F918CAB /* NAInterface.m */; }; + D30E23FDF011190AA47E937765563CA3 /* crypto_uint16.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FF8EB2108DC766DB0E4D3EFB013CB99 /* crypto_uint16.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D329CFAA6D9841DB61D1B2925E0D7711 /* xor_salsa20_ref.c in Sources */ = {isa = PBXBuildFile; fileRef = 55FA2DCCC07A15D1CCC42A68194C13D6 /* xor_salsa20_ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + D34926DFF95BCEAE62FB2CF9CEF97103 /* FBSDKBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0B8BE595A069C712E8C0BF200642F /* FBSDKBase64.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D34B37841D3A136E6D5507D4E842C9EA /* FBSDKLoginConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = F4B0930C8CF4D4F690777C077AB2FF86 /* FBSDKLoginConstants.m */; }; + D3ADE7721F2C989789CE1D0827CD7EFC /* hash_sha512_api.c in Sources */ = {isa = PBXBuildFile; fileRef = B684987C2C3EC3FA8B28FAE91CF0AB7E /* hash_sha512_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + D3B22F377EB13A7F1062B214B8B159EB /* poly1305_donna64.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE739A668DE7EFEE7F99596E8DF54CD /* poly1305_donna64.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D4AC5FC0ABFC4D645A1825AF89CA9315 /* FBSDKMessageDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = F09422620497769D0A106A4C1744ED7E /* FBSDKMessageDialog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D4C5CB0E76A5FD2E4A028A2B72BFAA62 /* PNObjectFormData.m in Sources */ = {isa = PBXBuildFile; fileRef = F50B815B81700631FEAFF4599E17F1C4 /* PNObjectFormData.m */; }; + D4E80BD7EAAB83200183110578A80591 /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 02A1375B683574A687A4E6A8F9325241 /* AFURLSessionManager.m */; }; + D503F1EFDDB8AF07A5FE1D1FB191BC6C /* poly1305_donna.c in Sources */ = {isa = PBXBuildFile; fileRef = B0D3D1906790496F89ED4761B2880803 /* poly1305_donna.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + D549B06597C91A43BE2CC0219D27D6A0 /* PNAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = E1711CAEF44B98A3548F278FB3220AE0 /* PNAddress.m */; }; + D579D784945CEA3B31F7F17F98FD3E35 /* crypto_sign_edwards25519sha512batch.h in Headers */ = {isa = PBXBuildFile; fileRef = DF828634962B891FB4C392E83A135B99 /* crypto_sign_edwards25519sha512batch.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5D06480DBB02B40CAA25AECB0D76A8A /* FBSDKShareAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B1479571E3F21D2D72CA535A3F0B19 /* FBSDKShareAPI.m */; }; + D70B20D6E3579BAA9B4EDCBB9080037C /* blake2b-compress-avx2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE46C7BBAABCF157AF36E0405422FA8 /* blake2b-compress-avx2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D72BE2A629485C1BE6F7A244A1E5116B /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = F2CA1DA39E7A1F8F613D955D31898642 /* common.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D733DD84BB35E854E467485BC53D6C4C /* FBSDKLoginManagerLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A8322955259FD28FFBBA43FFC3A9C66 /* FBSDKLoginManagerLogger.m */; }; + D90891BFD658E7054A9315E1ED042AFD /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 52EFE125A976D9D12C89B892163BDC76 /* utils.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + D95CF9BFC10B34C31005894EE482F346 /* FBSDKBridgeAPIProtocolNativeV1.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E3A8903F8F0E1E07A9EFA287ED7EF8 /* FBSDKBridgeAPIProtocolNativeV1.m */; }; + D991D69B3AF74E44CF852B3D1C6B5300 /* FBSDKError.m in Sources */ = {isa = PBXBuildFile; fileRef = 5478E1941918AFFA7F218468D0BD9BA1 /* FBSDKError.m */; }; + D9E92BE573F06922C7F2A4A8F9CF0F5B /* crypto_secretbox_xsalsa20poly1305.h in Headers */ = {isa = PBXBuildFile; fileRef = 73D71496E8F98C7EB11F9DE085BEF59C /* crypto_secretbox_xsalsa20poly1305.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA6DACBB47545AE0CAD72AFBA81C159E /* crypto_box.h in Headers */ = {isa = PBXBuildFile; fileRef = 957AFDB8BD8EA616C31739F4B1A9B1EB /* crypto_box.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA8129140A7E810F59EC73958097F95E /* argon2-fill-block-ssse3.c in Sources */ = {isa = PBXBuildFile; fileRef = 23A1847135F88B680E64B7DDFC545D5E /* argon2-fill-block-ssse3.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + DAA835E0CC5546CCA0D36BEA0F5E6BAA /* RZDBCoalesce.m in Sources */ = {isa = PBXBuildFile; fileRef = E720842117D9D8061E6C4C9EA3EAD20D /* RZDBCoalesce.m */; }; + DAF50794FBD2964582896842C248BF53 /* crypto_verify_16.h in Headers */ = {isa = PBXBuildFile; fileRef = CEF481FB7D66D3823A91486DB2D7B7A9 /* crypto_verify_16.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB0D5C8BB653F26D7F40DE6EA0209038 /* blake2b-compress-ref.c in Sources */ = {isa = PBXBuildFile; fileRef = A6AC0451F8C86129CB34B2F89194768E /* blake2b-compress-ref.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + DB8F3665E9E382DF52E0DCB4DECE5EAE /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = BE571316983BCC33E49AD67C50D7627F /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DC07AD9CF4D40744B0E24587710133AC /* FBSDKPaymentObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = A81E2C176749C2E13C9E932DB1AB44AF /* FBSDKPaymentObserver.m */; }; + DC423A980C991970F4D637AC4C47D863 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 99741AD0D1EF19772220C2DE52A62739 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD0EB7745A0423D85E68526E011B6D59 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + DD3A309FA23349B5C8C84AA6F9D24CF9 /* FBSDKGraphRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F7C26C15DB5BEEE9BBAF8EB0CE92C89 /* FBSDKGraphRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DD887A93A200A87A51B3D00BD1B80D20 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EC78B0BAC08A6DB7AC8A052DA693677F /* AFNetworkReachabilityManager.m */; }; + DD999BB80DAFD6BB7D28B8AB56AE9D94 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + DE3E46A0568C26D09882D878F700FB77 /* generichash_blake2_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 14C763B80EE6F2DF8962FA6B9DD21A1A /* generichash_blake2_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + DE4C257D27525AF8AD1FB09D2ADC9B70 /* UIDevice-Hardware.m in Sources */ = {isa = PBXBuildFile; fileRef = 4EB71EDF21A46CBC44A08A5D19EF6AFB /* UIDevice-Hardware.m */; }; + DE531499ABBCB73B8CDFFEB1E29FB248 /* PNObjcPassword.h in Headers */ = {isa = PBXBuildFile; fileRef = 69A757F877675D69E1FE682D461BDE96 /* PNObjcPassword.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DE9DB3EA650AD3D95B2794279B9E2318 /* FBSDKLikeControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B1B9361785FB1D9E5B83B8A98FAF2AF /* FBSDKLikeControl.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DED9AE33B24B462D4B44FE94383B35F4 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = A9AFB89DD4451710312AB5D14EE90F69 /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DF13E9C5A80740EAAB0C8B8CAE20B822 /* xor_xsalsa20.c in Sources */ = {isa = PBXBuildFile; fileRef = BC1A6EC680CBC644F8357B73BDFA5D93 /* xor_xsalsa20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + DF883524C3F35145D74166C01BCFCFC3 /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B0C5A09DBDDE888FC5CCD7B81EF820F /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + DFABF9629FE4EC01A824A1BA5BA000E3 /* FBSDKURLConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 067FCEC8661F4753AE6FC887FFCA8C6C /* FBSDKURLConnection.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DFC76352895716FB6DCF5E0FB1B1F6E2 /* FBSDKBridgeAPIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A3AD48E69EB1AF4D9F9724F7373A1E7 /* FBSDKBridgeAPIResponse.m */; }; + E01CA22744FB7F69CF328791EC8E795F /* BFCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 52984D482E13C4BEAED254A02E3EAE4E /* BFCancellationToken.m */; }; + E17FC6C2C7A76B443D4536DA6D7FAC3E /* _FBSDKLoginRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 94C27912D5396959C83DE85EB2A1EC41 /* _FBSDKLoginRecoveryAttempter.m */; }; + E21963D87FC07A78AD814ADFDB43D42E /* FBSDKDialogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 9396F394C9C70EF54D23AD2DCDF40B37 /* FBSDKDialogConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E219C1CC15444E500491A4117982F057 /* ladder_namespace.h in Headers */ = {isa = PBXBuildFile; fileRef = 04DA0ADC65744037A51E4D519D3A4C3B /* ladder_namespace.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E233F5CF4BF16CFB539804C4E995C355 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = FC5CBA8379481929584E70A5F043C93C /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E23B9A6F533461CB33C0FA6FB59E3AB2 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6BC252ABCF01D2AB0CDC08D7FC9A11 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E27D51AD0B460AEE7053FB3ADA8A1363 /* xor_salsa2012.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C8F33738B0CC4C3EFB3054384516158 /* xor_salsa2012.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E2D4D5F568BC593707A02AA72DE29DAE /* crypto_hash_sha512.h in Headers */ = {isa = PBXBuildFile; fileRef = A6E4D42384B53C711693938C29427659 /* crypto_hash_sha512.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3355DB3F63F6FE79FD8DD6188B0B3A4 /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D84ABED5A7EA2FFC9E7A52086571B66 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E3B0A2E9D4719BDA2A6B8180CD159430 /* base2.h in Headers */ = {isa = PBXBuildFile; fileRef = 341F4CDBE15560352E1D0D5A086EFE0E /* base2.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E3B2D6EFD0238BD517A49AEED04ECAA3 /* verify_hmacsha512256.c in Sources */ = {isa = PBXBuildFile; fileRef = C78F32BE23AC499328301A516CBAA98B /* verify_hmacsha512256.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E3BC9504A5DFD6534AF33B6517CFEF41 /* FBSDKLoginCompletion.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C4AA79EF438877E9393B31F74C008EF /* FBSDKLoginCompletion.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E42196772B68CF9B302CA341FECEB35E /* FBSDKShareLinkContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB4C3AE95BC006396C052A019053136 /* FBSDKShareLinkContent.m */; }; + E44123E789FAA66AEDEA8F9277D962CD /* xor_salsa208.c in Sources */ = {isa = PBXBuildFile; fileRef = 44E5999687853598145768A78C16B2A5 /* xor_salsa208.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E4677743A63D7B53DED69CB4D59BB2BE /* fe51_invert.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B0201EEF902280B29393B8FCDE974E5 /* fe51_invert.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E473649E9A24A32F9D9A14A6765C47DD /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9357BC23B2BD1E2DB4256D1932322A2A /* PureLayout-dummy.m */; }; + E48E16AADC089590EFD5AE99AB25153C /* FBSDKColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E91E2B5BE5C7F0E5DC4FECF40DF4ED5 /* FBSDKColor.m */; }; + E4B762ACAEFFEE3996B0C5699E1C0555 /* FBSDKShareDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 8902ADF31F47E5D6B2B913047592A5FB /* FBSDKShareDialog.m */; }; + E52FEDCBAF17A9BC78AB4811F58C5011 /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FB5781FE8FFC1D3DE59FEE8F523557 /* SPTCompiledExample.m */; }; + E550C2AD10B47AE5E2DE1E1533953499 /* FBSDKLoginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA09EFC44D48DB98477A3A65934BCB7D /* FBSDKLoginManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E597253EBA83E36D0EE5599B7C6364A4 /* FBSDKSharePhotoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B0A9291DC8444DE10CB9E94265194B7 /* FBSDKSharePhotoContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5C8848C9BFCF14FCAC240F87A541B19 /* x25519_ref10.c in Sources */ = {isa = PBXBuildFile; fileRef = 768517928C277175CC9CA99633F2B602 /* x25519_ref10.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E61E28B50602F353D95914765667969F /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FA14301BED9F5D0CA1A4D31098C0CF2 /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6D59CAA2A6E134A4643254406ED11F2 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = E5B3329C97AE62266DBF4BECACAA7B60 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + E74AB4D86DCCA99E23EB4E03A41C43F5 /* CodFisResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F7948B4533BB9E4DFA58430415073AF9 /* CodFisResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E7630CD45AB4E7D370E1A03C39D225FE /* NSUserDefaults-AESEncryptor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F5CC57C416C6AB5FA053E016F6973A5 /* NSUserDefaults-AESEncryptor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E77284673829B2D8EA41CE159DBD2DE3 /* pwhash_scryptsalsa208sha256_sse.c in Sources */ = {isa = PBXBuildFile; fileRef = 6CB859B5742059E180407E1494613CA7 /* pwhash_scryptsalsa208sha256_sse.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E7D4FF5C6C7DAECDEC0797D31C5A3F5D /* FBSDKError.h in Headers */ = {isa = PBXBuildFile; fileRef = E51ABFFAF0259B9D3D69665A8C926F84 /* FBSDKError.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E7F41030EB32D2A40D942073E167E59A /* FacebookSDKStrings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 641CC6CE77D1549A8CCA31A259F9C523 /* FacebookSDKStrings.bundle */; }; + E8066AFBD1403E46CE9C921B2AB41631 /* FBSDKDeviceRequestsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 11394A721234F5169C61869D072F5DB6 /* FBSDKDeviceRequestsHelper.m */; }; + E806D100C661330F1B9D82819337EB78 /* FBSDKApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 82D8CB87E6417B53E27EF2824A51B1AE /* FBSDKApplicationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E81C138F473CF3DD39FC7BE760803A50 /* _FBSDKTemporaryErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 79339DBB2505D42E17AE17D6B521630C /* _FBSDKTemporaryErrorRecoveryAttempter.m */; }; + E82EEC19CA6E5FABC41ACD8339EF753A /* PNObjectConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = CF092C5177F386FFE41BEA073ED1B8A0 /* PNObjectConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E84D89E20D13E13C7D3ECE521E7D2363 /* FBSDKGraphRequestConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 76AF76B374A871F29F6BD5776DDC8665 /* FBSDKGraphRequestConnection.m */; }; + E911ECAD838930A098AA17BF8F407105 /* crypto_generichash.c in Sources */ = {isa = PBXBuildFile; fileRef = 5A789B5A178E915A14CD7CBDF208E48D /* crypto_generichash.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + E9633664E1453DCB73DFB406C208FB59 /* FBSDKSendButton.m in Sources */ = {isa = PBXBuildFile; fileRef = EFD2B35CEC438EDEF2977DF10C7B8B25 /* FBSDKSendButton.m */; }; + E9C81B07213E38767D80DA7693C2B346 /* runtime.c in Sources */ = {isa = PBXBuildFile; fileRef = 110D409C286ED83CACC871BFDDAEB683 /* runtime.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + EA06C3F77DFE7082756541F14946FA59 /* BFAppLink_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85803A6D0373D42EFE8AD34075DFCCF0 /* BFAppLink_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EA079E85775D25B50D258050E09EB7A1 /* HTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA38EECEC2E0E1C649F30B76E10C231 /* HTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EACA9E8B5DFE8AE17E8B0AF128EBD818 /* FBSDKGraphRequestPiggybackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DD6E71862C9A29D843128A3DD9093CB /* FBSDKGraphRequestPiggybackManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EACDCFD44476CC617B068814D5D38321 /* FBSDKShareMediaContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 52C6CD323254C863EF6EB99FB259C48C /* FBSDKShareMediaContent.m */; }; + EAF16633DB3C992CF975BE4A2932D41C /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD5C3DB264E89F21FB96C78C64528B9 /* AFHTTPSessionManager.m */; }; + EB2C1F8C9F275AAEBF357189A1471713 /* crypto_onetimeauth.c in Sources */ = {isa = PBXBuildFile; fileRef = 2B2979A34E7C7951279CDA5F0B958884 /* crypto_onetimeauth.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + EB2CF17870BB89A3EB473DBFE8C3D249 /* FBSDKDialogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 98419A69A25EA4E4358DE27B49FB0401 /* FBSDKDialogConfiguration.m */; }; + EB3A1F80062D4348929C3BC801E8B4F2 /* FBSDKShareUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FEAAFDAB2DF9359E13E0FFDBED277AC /* FBSDKShareUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EBC3BC3A9CDD0A2B899097FC112A4890 /* beforenm_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 1185DC05EC18189F1BABAC4CC887CC6D /* beforenm_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + EC8328F391F8353A2B2E2C9111F5241F /* crypto_pwhash_scryptsalsa208sha256.h in Headers */ = {isa = PBXBuildFile; fileRef = 85AC055C944A995991C9C5989AEBA735 /* crypto_pwhash_scryptsalsa208sha256.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ECE24B47FCE7EC45244D8A355A4E24F7 /* PNObjectFormData.h in Headers */ = {isa = PBXBuildFile; fileRef = 24145E51A9C65F93CC898795A8F17DA6 /* PNObjectFormData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + ED1C9BC00EE3DF1ECE108BDD7BD86350 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + EDEF0E4FC0C9F00D3265ED2C10D98419 /* BFAppLinkReturnToRefererView_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C93F55A825F7A4577852957372E04F3 /* BFAppLinkReturnToRefererView_Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EDF15EBBA9E0860F43EB503ECD4023B7 /* blake2-impl.h in Headers */ = {isa = PBXBuildFile; fileRef = E89F32A732B2D0C5F41C8AD2FA48C285 /* blake2-impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EE0EECF23E214900C0D675CAEB98C376 /* FBSDKAppEventsState.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD3327B70185DBCAEF1C6457CFC0EB5 /* FBSDKAppEventsState.m */; }; + EE1089259E76867C8CAC8D2FA2764DD9 /* crypto_core_salsa2012.h in Headers */ = {isa = PBXBuildFile; fileRef = C7180E7B46429FF03953610E1600E40C /* crypto_core_salsa2012.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EF97B4FD49EAE89FDCF8B81F6903F6CA /* NAChloride-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A833C87170F9EA398E82E63AD041E8C4 /* NAChloride-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1125F9164D94B13D584BAD41A28BDC3 /* randombytes_salsa20_random.c in Sources */ = {isa = PBXBuildFile; fileRef = 71D92E5C63ACC17FE083CA3C46A6515B /* randombytes_salsa20_random.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F1CAA2EBDDFF558DEF98684F2479A7AF /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = FB70AE3207592925A4CC92B198CB1A42 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F1D68ED29AD7FF9E23985D8C761F0698 /* libsodium.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A87D6483AD7A11EE46A6D4C67F1888 /* libsodium.framework */; }; + F1E5C5DDB9BAEFA384ECE0E8EB59A03E /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */; }; + F24897C32CD63A5813F1A49C5722CC03 /* FBSDKAppEventsUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 11EC0AE1EDB0E45B78BDBFC5FA4FC0EE /* FBSDKAppEventsUtility.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F255830C94C00E4FA4DAD37403E891E8 /* UIStoryboard+DJLocalization.m in Sources */ = {isa = PBXBuildFile; fileRef = A6849595FD3572B8D686BFDF4B599544 /* UIStoryboard+DJLocalization.m */; }; + F25795894095DFCE72BF9EDABB668CE0 /* NSString-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EBDC5A6C9070070F368D4A68A47A99EC /* NSString-Helper-dummy.m */; }; + F275D2BC730A21CDE42121FB1340DAAC /* FBSDKAppEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = A31697E2B9D8E445B3466DD113C08D09 /* FBSDKAppEvents.m */; }; + F2C07CC1FC83401DC87EBB1D8EDB45A0 /* DDDKeychainWrapper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D328046A00DA89F3C3823C5CB70AE20A /* DDDKeychainWrapper.framework */; }; + F2C7932465662C25B5C3E35A215CEFB1 /* BFMeasurementEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 80DFF4B97667CC44E1B4A0737B3DAC32 /* BFMeasurementEvent.m */; }; + F2D19F833A1F4150E543CA38B89B66E8 /* before_curve25519xsalsa20poly1305.c in Sources */ = {isa = PBXBuildFile; fileRef = 49C98BB1DC3F7EEF31077D3F8D6DB1C3 /* before_curve25519xsalsa20poly1305.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F2D899C7AA0D7FC20160091BB9D31CF3 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 25664B1ED6000C66C7CF9D349E0A53AA /* UIImageView+AFNetworking.m */; }; + F30105280AEF62C926D796C2E5C50510 /* crypto_generichash_blake2b.h in Headers */ = {isa = PBXBuildFile; fileRef = 35A0CF602ECBAEC1A59095AAE8EC925F /* crypto_generichash_blake2b.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F34CC027BD8B91646C5D60E46AAFBD15 /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BFC94CE6DFF55093E997578440A0F74 /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F35D8A24E5B844EA5CA83B1AA98D0237 /* FBSDKShareButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 09A0BA8A78FB9CF083FE7EF167AEAA6E /* FBSDKShareButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F387B9F18647DD537EE643579AFBA80A /* fe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D5E00F20284CA0832166DE7BE826067 /* fe.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F38EB00E64ECFE774ED745F608B503DF /* VatNumber+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D4AB82587E4AC77457C4D746391B27B /* VatNumber+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F49FAA3B52950277559F24E9B0897027 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + F4B07E33E1033643EA1D8032FA001CFC /* FBSDKAccessTokenCacheV3.h in Headers */ = {isa = PBXBuildFile; fileRef = C2D4A6BD121E25559675F0FC43315A63 /* FBSDKAccessTokenCacheV3.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F5255475CE28597B0BC582DD134D73D8 /* blake2b-compress-avx2.c in Sources */ = {isa = PBXBuildFile; fileRef = 41C95340DBD76DAED311D9F5863C3DCC /* blake2b-compress-avx2.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F548DEC49DAA3645CBC54AEF30CF6E76 /* DDDKeychainWrapper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B02EECFE53B0F2B0172DFB1A40C4E227 /* DDDKeychainWrapper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F5B22E73D3517B9CEC9068840090A741 /* crypto_stream.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A7D3A501D3FC2037F8B254E6E62AB45 /* crypto_stream.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F64BD635A9D17FD0EB40A446FAC1B01E /* FBSDKMath.m in Sources */ = {isa = PBXBuildFile; fileRef = 0774549743834722051D585A4B7A3C73 /* FBSDKMath.m */; }; + F65B8CD3FF025A4EDBEF549552DBD1DF /* FBSDKWebDialogView.h in Headers */ = {isa = PBXBuildFile; fileRef = F2673047EEC37743C83D56200D29ED44 /* FBSDKWebDialogView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F67AA4F363093BCE97696670054A40FD /* pwhash_argon2i.c in Sources */ = {isa = PBXBuildFile; fileRef = 06B953075F96D49A5E46739DE9C4718A /* pwhash_argon2i.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F695E09572FD3A292ED854FFF2E9EC94 /* PNObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = BA9FD10F3C3FD5BAC00E2B6DE68CD263 /* PNObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F71DFE0CC286A5F9E0ABA31AA873A097 /* NAChloride.h in Headers */ = {isa = PBXBuildFile; fileRef = 28BEEE9095A35619F4C50695926D947A /* NAChloride.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F74F0174B426B7EAB501A3788E5D381F /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 54A7B433BEDEDE11B47AA50D5C940463 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F78DFDED34D92625B14D755A01E13B9E /* FBSDKLikeControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BF1B6793C01C3E0F0647C6A9F5CE0B5 /* FBSDKLikeControl.m */; }; + F7B1EB4EEC9F4EFDE2D1321CC0EB6338 /* FBSDKBridgeAPIProtocolNativeV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 62944AA2B65726638EB632ACB42A2E8F /* FBSDKBridgeAPIProtocolNativeV1.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F7C5B10D3DC1FA3E7F940A8498946EFD /* curve25519_ref10.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AE298916ECA941BC918CCCCA61E27CE /* curve25519_ref10.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F7F20C9FB354CF94931E67E15BF98292 /* FBSDKSharePhoto.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3FC4F2EC4483F6F484D6DB8CF3B599 /* FBSDKSharePhoto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F810131FF5AE4D2352915AB611FD2BC1 /* FBSDKWebDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D1D6C52F36ACD4D059EF95D774D1089 /* FBSDKWebDialog.m */; }; + F8212911EB928E3209B097F4F121C133 /* argon2.c in Sources */ = {isa = PBXBuildFile; fileRef = E4D922852E7575407D9228623D78CA31 /* argon2.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F84DD74BB7F612DE372F8C051420DF72 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 5858E50039DDC6F15B8516B46EA070A1 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F8D53DEB3E020F15631F87DC3772A297 /* FBSDKLogo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5762845029182E805500700F526FB58B /* FBSDKLogo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F8F6B707D53E1F0748D24A4252FE4BEE /* FBSDKAppEventsDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = F8F179947C0C0E96B116971735C8A938 /* FBSDKAppEventsDeviceInfo.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F8FEB81AEADD05E9CF1EB9CAA7152D8D /* FBSDKAccessTokenCacheV3.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E90299D265808F8BDBED4305372DBC5 /* FBSDKAccessTokenCacheV3.m */; }; + F923DFF4BB21AE81C4E721B1E16D35D5 /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 19671BC05C829FD1C72DF41F017AB587 /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F94B4C7D119EFFD3709FACA09FC29DD4 /* core_salsa208_api.c in Sources */ = {isa = PBXBuildFile; fileRef = C602CADC3496B7A2E5875BAC88F6BD3B /* core_salsa208_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F964BCA653FACE35339A0F3C252D02A7 /* stream_salsa20_api.c in Sources */ = {isa = PBXBuildFile; fileRef = AD7F63152F12115E68C396CA45BDA0F2 /* stream_salsa20_api.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + F98F9A32C528DF55CE3902FC2295694C /* Base64.h in Headers */ = {isa = PBXBuildFile; fileRef = 520BC3C3AEE86D7AC21F89C1DD8A1F76 /* Base64.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9B80C23C2F0CA1BFE19226BF92B7AE6 /* FBSDKBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 375D8718E072A3D224649ECF3F501B83 /* FBSDKBase64.m */; }; + F9CF674675D2FAA870A391F7B8704FCE /* PNObject+Protected.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF0374EE1B643C8AC457809FE4628BD /* PNObject+Protected.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA15FBFC4295E564A07E25D9D646C87E /* stream_xsalsa20.c in Sources */ = {isa = PBXBuildFile; fileRef = 11F02217724E5D7412C3C03E2022170D /* stream_xsalsa20.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + FA2AD358723292198D6E7F40C4705A22 /* FBSDKLikeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 255EE07D2E033F49953DD397D9EAE8AE /* FBSDKLikeButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FA2C6F99E67A6B9EEBBCED5482CE477A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */; }; + FA5348476D45C434C16E77A9F5306F6F /* FBSDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = E44A36A9E9B6EFD8389E5F40C5A7CE08 /* FBSDKSettings.m */; }; + FA76475EE5F044D6AAB7FE7B925268DF /* BFURL.h in Headers */ = {isa = PBXBuildFile; fileRef = DE79F82403F009B5D3A31BEB6368F7B3 /* BFURL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB2B5411D7ECF755E1FA197C1F378A6F /* crypto_verify_64.h in Headers */ = {isa = PBXBuildFile; fileRef = A6A153905DBD3FA069D9E52DEB08824A /* crypto_verify_64.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC223395BCEE46EB920CECD38AFD4402 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 6779442080735F69CF642D39E9C3C3A0 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC55B9778AE136ADEA196BAC7017C913 /* FBSDKAppGroupContent.h in Headers */ = {isa = PBXBuildFile; fileRef = FA5E261EAF9F70EE6419FBF7F4EB81BA /* FBSDKAppGroupContent.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FC6474103AA989EBD5368772037BE0BB /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BC009F4FBC70B0C3A66D4EDD57CB225 /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FCE76C65A14CE78ADD1F46C4BDB079C7 /* FBSDKLoginError.h in Headers */ = {isa = PBXBuildFile; fileRef = B029183DC576E43682E1243527D44483 /* FBSDKLoginError.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FD02DCA90372D1EE876A0002DF781002 /* FBSDKAccessTokenCacheV3_17.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D45529C2E6A80485A29A66DE5473F3C /* FBSDKAccessTokenCacheV3_17.m */; }; + FD39ACDEA6F0B6D6DBB730547CE18BA6 /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BFCB42ED2965D95D67B6E928ABA4C8C /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FDC31C0F89EFD44C20711F0CA659AC25 /* FBSDKShareVideoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E2B65A9EDC94C1380C89D9FC141F56 /* FBSDKShareVideoContent.m */; }; + FDFC224221565B539AE0EA9345584C74 /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = 62BD05B60E354F152B315A1F1AACB114 /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FE7DE0A8DAC3272EBACE9996C6509F83 /* FBSDKServerConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 53AEDDB830582CEBF44836F984666BA7 /* FBSDKServerConfiguration+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FE9DB5BAFC083D19C098460F7423A3BD /* FBSDKIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = AB10A898CDEE9683D0CC9F1694A09835 /* FBSDKIcon.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FEF6EACE962EAE70E2EAC5F3C83EF7C8 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E209882DA89E5530D27E76996158939 /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FEF80304DCC690B918EF6E434B2C3F34 /* xor_afternm_aes128ctr.c in Sources */ = {isa = PBXBuildFile; fileRef = 843CD17C791739DFCA383A8632114309 /* xor_afternm_aes128ctr.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + FF394D6FEA84206182301180AE4CB957 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBD3492DB6AE32163870E96389C1148 /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + FF595EA70192F514606CCCCFBF8FACFF /* randombytes_sysrandom.h in Headers */ = {isa = PBXBuildFile; fileRef = 839E691140CC97139C568B1EA3F69E1D /* randombytes_sysrandom.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FF8EE0A88D978F442B93D9983EE466D1 /* FBSDKTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = B524C3DB6F2427BC418535EC09D402EE /* FBSDKTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FFB45FD353BEFEEADF9A5D9300158971 /* verify_64.c in Sources */ = {isa = PBXBuildFile; fileRef = 7594C78ABCFD5028C7180FE29A00C7F0 /* verify_64.c */; settings = {COMPILER_FLAGS = "-DNATIVE_LITTLE_ENDIAN=1 -DHAVE_MADVISE -DHAVE_MMAP -DHAVE_MPROTECT -DHAVE_POSIX_MEMALIGN -DHAVE_WEAK_SYMBOLS -fno-objc-arc"; }; }; + FFE1F3924D982513CA0EC14D4B637EA3 /* FBSDKAppGroupJoinDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 8586C570A9EFBD4151C309EE8386019E /* FBSDKAppGroupJoinDialog.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -721,118 +908,83 @@ remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; remoteInfo = Bolts; }; - 057B031226EFACD46B5C38B6BA0968D6 /* PBXContainerItemProxy */ = { + 023E76DD5772E8B13EF91369986E6311 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; - remoteInfo = AFNetworking; + remoteGlobalIDString = DA1F8E23559FAD774CD5CF9A3E065B72; + remoteInfo = RZDataBinding; }; - 0745BAC22C2C3BA3B8178ED9B70D5FF4 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E427C6DCA153E01C52C89563011E9C39; - remoteInfo = "Expecta+Snapshots"; - }; - 142F4E9BE1CCFD8089A38BF9819F2AE7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3E8E8C1AA879E4E3A20A8E6F67001A6E; - remoteInfo = DJLocalization; - }; - 148D5BEB792ECB90202B5DD24B4F2266 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = CDB2777810BCABC5108E560EC16B253D; - remoteInfo = "nv-ios-http-status"; - }; - 1506F7BA6FCBF4ADA6B96D3775020A51 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BCA035D59C91538BFAE500F02854C1FB; - remoteInfo = StrongestPasswordValidator; - }; - 299D9BC3D8F67498B663A00B11BFC41B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = C83C2EC452686E750D4A006EB041E2B6; - remoteInfo = PureLayout; - }; - 2C548178E4B4CB38BD0C99F9670DA5C5 /* PBXContainerItemProxy */ = { + 04753596E78B8DA0A85100C21B362371 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 1CE15060B0E33F7AE0A78865CFACF946; remoteInfo = CocoaSecurity; }; - 2E7EAB2101603827D735C00172AE71C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3E8E8C1AA879E4E3A20A8E6F67001A6E; - remoteInfo = DJLocalization; - }; - 2FA1765D544196180B61F6A08A2042B0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 77E55BAE3ACAFE326F83E5E8FB571A26; - remoteInfo = "NSString-Helper"; - }; - 340F58D445049B4BCA37C6B10EC52A09 /* PBXContainerItemProxy */ = { + 0539A0E17E8F7F9F39A0D5DCD3115B60 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; remoteInfo = Bolts; }; - 342FE6EBF9609E8941ADA04282504CBD /* PBXContainerItemProxy */ = { + 0E6C9FB1C81033A6D9BD017EB34DAF4B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = CDB2777810BCABC5108E560EC16B253D; - remoteInfo = "nv-ios-http-status"; + remoteGlobalIDString = EEBC4E1DFCDB52A45CE942CFFAFC61D9; + remoteInfo = libsodium; }; - 34E1B227C19884E70AD7483725238783 /* PBXContainerItemProxy */ = { + 123C92CE41767F59AD6838CD0509754F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E396A93E4C79B22B7816E9F02F62ECED; + remoteInfo = FBSDKShareKit; + }; + 12DC69F15A345255CFF3C8D97AD69A39 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6B98E239EBD69980B948DAA20E9B44D9; + remoteInfo = NAChloride; + }; + 19CF8F67D76D95521C11B6A43166961D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 3E8E8C1AA879E4E3A20A8E6F67001A6E; remoteInfo = DJLocalization; }; - 3536C0C0EB0F6EE3D8691F902C8FF798 /* PBXContainerItemProxy */ = { + 2B99B745C8BCAD520FB426743DEECDFE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5FCB5354989B74C071469E597A5D0D16; + remoteGlobalIDString = 573215601C9E10AC9E657F27845334AF; + remoteInfo = DDDKeychainWrapper; + }; + 2EC9C281AA6010F153E913425445B66B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = EEBC4E1DFCDB52A45CE942CFFAFC61D9; + remoteInfo = libsodium; + }; + 2F7AFA5E46E5A2DD35AC460007A87173 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E396A93E4C79B22B7816E9F02F62ECED; + remoteInfo = FBSDKShareKit; + }; + 3F15215373F6937DF355A48C18B48455 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = DA1F8E23559FAD774CD5CF9A3E065B72; remoteInfo = RZDataBinding; }; - 39F5D09CB2C48D6482642A178D80B105 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5D161BA711701D7E41E02A5702FD024E; - remoteInfo = Expecta; - }; - 3AAF0FB14DD145789F1A155ADD3ED2EE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5D86F7E44A8244120F51D6681616221C; - remoteInfo = "UIDevice-Utils"; - }; - 3BD06F65443CEB71BD8DF48A49DCBF6C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E06987A0FFCBD5F76493BFED35F38C6B; - remoteInfo = "PEAR-FileManager-iOS"; - }; 40FC4CD83BD73CBE0A48CA5DCF45A470 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -840,159 +992,89 @@ remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; remoteInfo = FBSDKCoreKit; }; - 41DA6C1BDB55F8BF634B5E4B63D84E0B /* PBXContainerItemProxy */ = { + 43B333719627187BF56F814E64273BC5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = BC5000D645EEAF961C85907CDC796FE1; - remoteInfo = FBSDKLoginKit; + remoteGlobalIDString = EEBC4E1DFCDB52A45CE942CFFAFC61D9; + remoteInfo = libsodium; }; - 445E45BB42E8E8F263EC32D680215EFB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BC5000D645EEAF961C85907CDC796FE1; - remoteInfo = FBSDKLoginKit; - }; - 4BBA788BC9F4D21783A346C1D9C86E71 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE017605B0E1B9BB24E440AEDBC2F8B7; - remoteInfo = "CodFis-Helper"; - }; - 4DDF989F04D3E1DCF12BBAA7836E70A9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = D3054FB7F84727519F50B6AD1E49531E; - remoteInfo = FBSnapshotTestCase; - }; - 4F6110115A0917765C2F0ED259629895 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; - remoteInfo = FBSDKCoreKit; - }; - 53792A034F4D79D26AC72B2FCEC73319 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 32CBAEFEAE7C8801A62A7AD246E7C824; - remoteInfo = "NSUserDefaults-AESEncryptor"; - }; - 58AE8BCDC554A2A4F69866C38FF369CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BCA035D59C91538BFAE500F02854C1FB; - remoteInfo = StrongestPasswordValidator; - }; - 596979A9D6EC1432599A801BEDA47F31 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E06987A0FFCBD5F76493BFED35F38C6B; - remoteInfo = "PEAR-FileManager-iOS"; - }; - 5B4773139CD6721A37B32F37856D4794 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5FCB5354989B74C071469E597A5D0D16; - remoteInfo = RZDataBinding; - }; - 5C6D7B5A976F2A92FE24BD14BCB09413 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5D161BA711701D7E41E02A5702FD024E; - remoteInfo = Expecta; - }; - 61FC49E91C39F165CA991ABDF2A44A8C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 77E55BAE3ACAFE326F83E5E8FB571A26; - remoteInfo = "NSString-Helper"; - }; - 633A05C638D24573403A7DCE6A66706D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; - remoteInfo = FBSDKCoreKit; - }; - 63743AB176933E9E4B132470222E5C80 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 32CBAEFEAE7C8801A62A7AD246E7C824; - remoteInfo = "NSUserDefaults-AESEncryptor"; - }; - 68D86DBD027206337165492BDE3876AA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 21B910E0FB008FE15458D3D9B59BED16; - remoteInfo = Specta; - }; - 692414909CEEF3783C24A3F9DF2C7FD6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BAD270B3B7D157B2C75600E5F76E05BB; - remoteInfo = PNObject; - }; - 742567CAE96E4D5569AE83745E70000B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BCA035D59C91538BFAE500F02854C1FB; - remoteInfo = StrongestPasswordValidator; - }; - 75BB2F1AAD4ECB509E971E0AF12ACA2D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 77E55BAE3ACAFE326F83E5E8FB571A26; - remoteInfo = "NSString-Helper"; - }; - 75EA1D259C0EDC97ADE295C462B9A8DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE017605B0E1B9BB24E440AEDBC2F8B7; - remoteInfo = "CodFis-Helper"; - }; - 76798A234950252E7269AC7CC8EDDF6E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = EADE3189AA04F58364455EDF9084A5D6; - remoteInfo = NACrypto; - }; - 76E4B248FC79DA7150EDFD81A8B7596B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = EADE3189AA04F58364455EDF9084A5D6; - remoteInfo = NACrypto; - }; - 77080258FC101463A3398B44E36B30C5 /* PBXContainerItemProxy */ = { + 4A5891C206029E4D79EC10E7E57C5C68 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 68E501DEBC19E7D6794DEBEE8FCF317A; remoteInfo = NSDate_Utils; }; - 7897A0DD208FA87EC8BEBCB6B506D6F2 /* PBXContainerItemProxy */ = { + 50A136E4921EDE16130017C0B1C0F5D7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = BAD270B3B7D157B2C75600E5F76E05BB; - remoteInfo = PNObject; + remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; + remoteInfo = AFNetworking; + }; + 512711759FAAB45EBEB3F716D5A8A4F1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = FE017605B0E1B9BB24E440AEDBC2F8B7; + remoteInfo = "CodFis-Helper"; + }; + 563C888AE091CA130B73998229DCB5AA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E06987A0FFCBD5F76493BFED35F38C6B; + remoteInfo = "PEAR-FileManager-iOS"; + }; + 57BE02D9CBAFA5A6821831D151E92CE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1CE15060B0E33F7AE0A78865CFACF946; + remoteInfo = CocoaSecurity; + }; + 67AF4C326005631738C7AB33794F8AFB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BC5000D645EEAF961C85907CDC796FE1; + remoteInfo = FBSDKLoginKit; + }; + 71945E5C1DC0A5B516A1A3ECDF84C3CF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; + remoteInfo = FBSDKCoreKit; + }; + 8199EE514193F64C41E62B43A61E1170 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 68E501DEBC19E7D6794DEBEE8FCF317A; + remoteInfo = NSDate_Utils; + }; + 864CAA6007ED3721AA60C41D51AFE3DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6B98E239EBD69980B948DAA20E9B44D9; + remoteInfo = NAChloride; + }; + 86D2603E2663CA4576EDBFCE3AAEA91C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 32CBAEFEAE7C8801A62A7AD246E7C824; + remoteInfo = "NSUserDefaults-AESEncryptor"; + }; + 8C0B52FF290AA7C7E56578EAF29B670F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 32CBAEFEAE7C8801A62A7AD246E7C824; + remoteInfo = "NSUserDefaults-AESEncryptor"; }; 9F6E9621C6955D7EF1483415D4B839FA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1001,33 +1083,54 @@ remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; remoteInfo = Bolts; }; - A59DEF5E3A15B21BBF5A77955B8DD6DC /* PBXContainerItemProxy */ = { + A0B3036FD307F4898D2F2E477E322372 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E06987A0FFCBD5F76493BFED35F38C6B; - remoteInfo = "PEAR-FileManager-iOS"; + remoteGlobalIDString = FE017605B0E1B9BB24E440AEDBC2F8B7; + remoteInfo = "CodFis-Helper"; }; - A94C5C259C358C0335E6A9C01770B0A4 /* PBXContainerItemProxy */ = { + A0EE3B0A283732C12E536526233AD6C6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; - remoteInfo = AFNetworking; + remoteGlobalIDString = 4BAA466F838AFFE707700A6CDE8B6AB4; + remoteInfo = PNObject; }; - AC6FBBC01C6C034E801276E4AF800594 /* PBXContainerItemProxy */ = { + A39A21C9A91228ED1E565C6F19AABEBC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5FCB5354989B74C071469E597A5D0D16; - remoteInfo = RZDataBinding; + remoteGlobalIDString = 35F82346315E32388BD362BF670661F2; + remoteInfo = "UIDevice-Utils"; }; - BF2A3702A12916838B0CC723D5FB53AC /* PBXContainerItemProxy */ = { + A4E98BC22C75173201D834D066FA5D80 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E396A93E4C79B22B7816E9F02F62ECED; - remoteInfo = FBSDKShareKit; + remoteGlobalIDString = 424BE1CAFEB96DECBF440D6FBF04E993; + remoteInfo = PureLayout; + }; + B02A4AB364FFA653133B1537D21559A8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BC5000D645EEAF961C85907CDC796FE1; + remoteInfo = FBSDKLoginKit; + }; + B0A7489E4DC991C349CD28033239D6C3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 71C5D65B12960B6E3EB92983E936DAAE; + remoteInfo = Specta; + }; + B410404D4264114F4052DA95AD7759EE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; + remoteInfo = FBSDKCoreKit; }; C119156AD6383002279AD66EA6628773 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1036,138 +1139,96 @@ remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; remoteInfo = Bolts; }; - C2140700397E9CCD9E9B6488664E9604 /* PBXContainerItemProxy */ = { + C2879BBDB02516417F0DAC8725ED8F42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 573215601C9E10AC9E657F27845334AF; + remoteInfo = DDDKeychainWrapper; + }; + C604E4CB23D8EF4095584703900CF72B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 839A00176009DB84BA0E2185B198E40F; + remoteInfo = StrongestPasswordValidator; + }; + CA6ADA9824A817BDE7F0621E9CFDF284 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 77E55BAE3ACAFE326F83E5E8FB571A26; + remoteInfo = "NSString-Helper"; + }; + CC8910A58F1D86DE97F19675E5609461 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = CDB2777810BCABC5108E560EC16B253D; remoteInfo = "nv-ios-http-status"; }; - C25B57079723B15260BF52C20D9B8864 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 32CBAEFEAE7C8801A62A7AD246E7C824; - remoteInfo = "NSUserDefaults-AESEncryptor"; - }; - C5062FC75AFD02C5B02D93147D441478 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1CE15060B0E33F7AE0A78865CFACF946; - remoteInfo = CocoaSecurity; - }; - C5E34F45CB82C067125A0A865B66ED6E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BEF7E6E85DB5CDE5D7A18F4F2EB8494B; - remoteInfo = FBSDKCoreKit; - }; - C8D3FC5EF5787B7ACFEC5770A3A718AF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 21B910E0FB008FE15458D3D9B59BED16; - remoteInfo = Specta; - }; - CABE21FE6B7E8F131FB38FEA204A4BEE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = FE017605B0E1B9BB24E440AEDBC2F8B7; - remoteInfo = "CodFis-Helper"; - }; - CCBD49CED791909A33C2331FA9616658 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 5D86F7E44A8244120F51D6681616221C; - remoteInfo = "UIDevice-Utils"; - }; - CE30A364CC0AD939D7E8E290FA279CC0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E396A93E4C79B22B7816E9F02F62ECED; - remoteInfo = FBSDKShareKit; - }; - DC9FE0F07001D2911FB7E6EF15F99303 /* PBXContainerItemProxy */ = { + CF1D200DACDBBF1B5491D876C858C7FF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; remoteInfo = Bolts; }; - DCC55C2964201D4D46BDAE33B79E25F1 /* PBXContainerItemProxy */ = { + D4C3CBA0CF8D504333F9CC933DEF43D7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 1CE15060B0E33F7AE0A78865CFACF946; - remoteInfo = CocoaSecurity; + remoteGlobalIDString = 77E55BAE3ACAFE326F83E5E8FB571A26; + remoteInfo = "NSString-Helper"; }; - E2A9F5FFE481FBD17043AF1F5447597B /* PBXContainerItemProxy */ = { + DBBB9D631E658376C7FEBF9B77C6B169 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5D86F7E44A8244120F51D6681616221C; + remoteGlobalIDString = 35F82346315E32388BD362BF670661F2; remoteInfo = "UIDevice-Utils"; }; - E2CBE1FED000B16374A902BC969018EB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 44CAD6CE523055ED339E87154473A254; - remoteInfo = Bolts; - }; - E2D73F2189DFE7BAB9FC810025CB8ABB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = EADE3189AA04F58364455EDF9084A5D6; - remoteInfo = NACrypto; - }; - ED9061F6A250707291BE99110D5287AA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 68E501DEBC19E7D6794DEBEE8FCF317A; - remoteInfo = NSDate_Utils; - }; - EE697D57C767CC94F061FDD5CEA49D00 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = BC5000D645EEAF961C85907CDC796FE1; - remoteInfo = FBSDKLoginKit; - }; - EEA090877EABC9DD496DB8EB6034CA4C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 68E501DEBC19E7D6794DEBEE8FCF317A; - remoteInfo = NSDate_Utils; - }; - F19EF54C7EEE9476313D27212F4E8AA3 /* PBXContainerItemProxy */ = { + E01683371309F15F251AAD893960DA4A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = CF671F7E57B92905F1CC91D036D6B4A7; remoteInfo = AFNetworking; }; - F6A4EBBA91F9A11856F0A0A297B3797C /* PBXContainerItemProxy */ = { + E427BF14EE3A68E55012EFA33C10F8E2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E396A93E4C79B22B7816E9F02F62ECED; - remoteInfo = FBSDKShareKit; + remoteGlobalIDString = 839A00176009DB84BA0E2185B198E40F; + remoteInfo = StrongestPasswordValidator; }; - F7BCC7114EC9498AC6F3D50726AE28DC /* PBXContainerItemProxy */ = { + E7CEEDDD7799F39620AEA2BE213DDC37 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = D3054FB7F84727519F50B6AD1E49531E; - remoteInfo = FBSnapshotTestCase; + remoteGlobalIDString = 3E8E8C1AA879E4E3A20A8E6F67001A6E; + remoteInfo = DJLocalization; + }; + E855C946488672653FB8F2EF22912A26 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = CDB2777810BCABC5108E560EC16B253D; + remoteInfo = "nv-ios-http-status"; + }; + EDCAA2AB5AEAD106FC0FBF3CA92285EC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5D161BA711701D7E41E02A5702FD024E; + remoteInfo = Expecta; + }; + F95742E0AFEC2175572022582A628564 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E06987A0FFCBD5F76493BFED35F38C6B; + remoteInfo = "PEAR-FileManager-iOS"; }; FF2A083AAC9EBE60D2B1225F2C88116A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -1186,832 +1247,1000 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 000FB51692CFF88C4D503A9917CFF3C5 /* FBSDKShareKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKShareKit.modulemap; sourceTree = ""; }; - 00730E0614414B541C5C462C05237ABF /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; - 00B1A180C9686C71A9A7022879F64EBA /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; - 00D33B459FD63FE7CA7B68FE523F1C7F /* FBSDKContainerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKContainerViewController.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.h; sourceTree = ""; }; - 00FF172BE096A6BC5D54A181FE4B6C71 /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; - 0133FA0017DCCFC33A86B183E30F9DB9 /* NAKeychain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAKeychain.m; path = NACrypto/NAKeychain.m; sourceTree = ""; }; - 019FCAEDB4298587CE7DF987376060FB /* PNInstallation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNInstallation.m; sourceTree = ""; }; - 01DBBB8F3DFF89730ACC9DB20206D678 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; - 02011E4D3311F5D1CD4C0D6EE1C5280F /* FBSDKLikeBoxBorderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeBoxBorderView.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxBorderView.m; sourceTree = ""; }; - 0215950BA21D88F4B62170F78697D0A3 /* FBSDKBridgeAPICrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPICrypto.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPICrypto.h; sourceTree = ""; }; - 02A3D7C33C9E394B868FE582E28CD22D /* FBSDKBridgeAPICrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPICrypto.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPICrypto.m; sourceTree = ""; }; - 03D4EC769DC11500D3A95F2646CC4421 /* StrongestPasswordValidator-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "StrongestPasswordValidator-dummy.m"; sourceTree = ""; }; - 0461A4EE04990301C6BF4B7C75AF835F /* nv-ios-http-status-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nv-ios-http-status-umbrella.h"; sourceTree = ""; }; - 047A9C694427927405A698622169F66D /* FBSDKCoreKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKCoreKit.modulemap; sourceTree = ""; }; - 04DC4A94C4D3ADA1053F1BA8E23BEC63 /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; - 04F7C62815EB907B90A2276235C99F65 /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; - 05CE7387BB466D39C35745F918D2D9B0 /* FBSDKCoreKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKCoreKit.xcconfig; sourceTree = ""; }; - 05E9E049C8C84905322300773D7518D0 /* BFTask+Exceptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BFTask+Exceptions.h"; path = "Bolts/Common/BFTask+Exceptions.h"; sourceTree = ""; }; - 067AB9BD71C9ECF5DFF844EB8533AC24 /* NSDate+NSDate_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+NSDate_Util.m"; path = "Pod/Classes/NSDate+NSDate_Util.m"; sourceTree = ""; }; - 069FFEE85417877D9F5B43441BB91A70 /* FBSDKMaleSilhouetteIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMaleSilhouetteIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKMaleSilhouetteIcon.h; sourceTree = ""; }; - 072E85085499A44D55B4253829F7140F /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; - 0772BD39CED296B17A2C8DEA14E72D1E /* NSDate_Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDate_Utils-dummy.m"; sourceTree = ""; }; - 07931E20B487E137409C1CCD7559E36D /* FBSDKLikeControl+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLikeControl+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeControl+Internal.h"; sourceTree = ""; }; - 0795708CB58982B0C93FCCCD6EB4CF2E /* FBSDKLoginButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginButton.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginButton.m; sourceTree = ""; }; - 080FD27F98D5EB328E5175D93460C808 /* FBSDKErrorRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorRecoveryAttempter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/FBSDKErrorRecoveryAttempter.h; sourceTree = ""; }; - 08BD77CD4E65007F1A6E6E8908AE9D16 /* AFJSONResponseSerializerWithData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFJSONResponseSerializerWithData.h; sourceTree = ""; }; - 0911D320B4C730EB3905996AAC8313FC /* SwiftSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SwiftSupport.swift; path = FBSnapshotTestCase/SwiftSupport.swift; sourceTree = ""; }; - 0918108917B0E16C13F44B9C42C02D07 /* FBSDKGraphRequestMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestMetadata.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.m; sourceTree = ""; }; - 093866219AEB5A9CDE0A7A405AF3EEE3 /* BFURL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFURL.m; path = Bolts/iOS/BFURL.m; sourceTree = ""; }; - 097DCF1D20A2C03740EFD119040E1095 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - 097F6EB29A09CCC60F44A4D435BE5A39 /* FBSDKGraphRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequest.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequest.h; sourceTree = ""; }; - 0A1DDDAB862816B14DC5257DC8054E22 /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; - 0A5855DA2A036FE0DA398D3DECE6B252 /* FBSDKGraphRequestDataAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestDataAttachment.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestDataAttachment.m; sourceTree = ""; }; - 0A6C2F41EBFD35D1F096887040DF6079 /* NANSData+Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NANSData+Utils.h"; path = "NACrypto/NANSData+Utils.h"; sourceTree = ""; }; - 0A94F9CED8F4DC0246DA87721383B65A /* Bolts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Bolts.m; path = Bolts/Common/Bolts.m; sourceTree = ""; }; - 0AE1F07FC4D81F50F7CAE26E7CC395E1 /* NSDate_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSDate_Utils.framework; path = NSDate_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0AE467AD264B56667AAFD7F0B8B1977F /* BFMeasurementEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFMeasurementEvent.h; path = Bolts/iOS/BFMeasurementEvent.h; sourceTree = ""; }; - 0B77AFD5048E8186CAE849D65A9E8CE7 /* FBSDKBridgeAPIRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIRequest.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest.m; sourceTree = ""; }; - 0B9074F460A1A12301DD810641B6097A /* FBSDKLikeDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeDialog.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeDialog.h; sourceTree = ""; }; - 0BE3F5C955AE5AD01ACA9DAB5BF3EADD /* FBSDKLikeActionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeActionController.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionController.m; sourceTree = ""; }; - 0CBAD91529DD8E751CED444A8305B77A /* PureLayout-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PureLayout-dummy.m"; sourceTree = ""; }; - 0CC10C3FBD06C3303FD79287F2B41FAE /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - 0D1F786C501CA316F8C971CAF37F4FC4 /* SPTTestSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTTestSuite.h; path = Specta/Specta/SPTTestSuite.h; sourceTree = ""; }; - 0F075B8B40DEE4C748EF4BDB007DB8B1 /* KeccakNISTInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KeccakNISTInterface.h; path = NACrypto/keccak/KeccakNISTInterface.h; sourceTree = ""; }; - 0F0944DC787429D7EFD09B2D4302D325 /* PNObject+Protected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject+Protected.h"; sourceTree = ""; }; - 0F5EA38A857B03DB84D60B4BA44837C4 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; }; - 104A43325797FEF812D598DB98EE2146 /* PNObjectConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectConfig.h; sourceTree = ""; }; - 104BF806705637F884759149971F7811 /* FBSDKIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKIcon.m; sourceTree = ""; }; - 106F276479A16008EB8924DCA1D97214 /* FBSDKServerConfigurationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKServerConfigurationManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.h; sourceTree = ""; }; - 107715DA2109DC5443D3C5ADDA388EFD /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CodFis_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 10CA6144EFCC2D447EB645BD078E93FA /* FBSDKGraphRequestBody.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestBody.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestBody.m; sourceTree = ""; }; - 10E8FC6CE4CF40378287BE9DFD02D1EF /* CocoaSecurity-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaSecurity-umbrella.h"; sourceTree = ""; }; - 1131F3EDE53DDAF7AA9C85C166CA9933 /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; - 1179C0CB305C314C26A1C6CF609F482A /* BFAppLinkNavigation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkNavigation.m; path = Bolts/iOS/BFAppLinkNavigation.m; sourceTree = ""; }; - 11EAAA9B975169F72CF7D9C091F53D8E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 121ACF19B67F21B93608B91D7F4ED255 /* PNAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNAddress.h; sourceTree = ""; }; - 1244BB0E7E2F0649AAEE6EFB44065C91 /* CodFis-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-umbrella.h"; sourceTree = ""; }; - 128B5C528BF447C9EA0F4B5F2A47121F /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; - 12E3BB0E92B051BAECFE53336063F53E /* BFURL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFURL.h; path = Bolts/iOS/BFURL.h; sourceTree = ""; }; - 14775F91AE2B87BDAE8ABD015ECDCC70 /* RZDBCoalesce.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RZDBCoalesce.m; path = RZDataBinding/RZDBCoalesce.m; sourceTree = ""; }; - 14DDAE726CE99DDD44587D9CEF5EDD14 /* NACounter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NACounter.h; path = NACrypto/NACounter.h; sourceTree = ""; }; - 150CF00FE6A11516E3A0B96B2A78B54D /* BFWebViewAppLinkResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFWebViewAppLinkResolver.m; path = Bolts/iOS/BFWebViewAppLinkResolver.m; sourceTree = ""; }; - 1554BD691B777E09A134FA09A645E944 /* _FBSDKTemporaryErrorRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _FBSDKTemporaryErrorRecoveryAttempter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/_FBSDKTemporaryErrorRecoveryAttempter.m; sourceTree = ""; }; - 1599782BA1B2F33B3538CA19A571A942 /* PEAR-FileManager-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-umbrella.h"; sourceTree = ""; }; - 162716C38EF78513048FB9216F8B9DA9 /* SPTCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCallSite.m; path = Specta/Specta/SPTCallSite.m; sourceTree = ""; }; - 165185018E842802B16172CAB91D6DB9 /* FBSDKAccessToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessToken.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAccessToken.m; sourceTree = ""; }; - 16751E46A70C97CD21B505BAF15B177E /* FBSDKDialogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDialogConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.h; sourceTree = ""; }; - 169EF9CEB6B169C2CE403B066621F7DA /* StrongestPasswordValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StrongestPasswordValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 16E7E1A6F946A2D90B322BDEE0559DDD /* PNObjcPassword.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjcPassword.m; sourceTree = ""; }; - 181AAC79AE329BF8A37DC3464EB116A4 /* PNObjectConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectConfig.m; sourceTree = ""; }; - 1891B64B1A2F1AD1FC351CF184B878B4 /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; - 18DC99D6D4F2A0A85149B43763A38701 /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = UIDevice_Utils.framework; path = "UIDevice-Utils.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 19165B04181A6DDCFE66C457ADDBC79D /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 194D54AE7517DD8883F200EC98B72DD8 /* FBSDKBridgeAPIRequest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKBridgeAPIRequest+Private.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest+Private.h"; sourceTree = ""; }; - 1981AED966A8EFAD27622FC7B22EA714 /* FBSDKLikeButton+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLikeButton+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButton+Internal.h"; sourceTree = ""; }; - 19A290D4124DBB9ED53D935CA5E95EF3 /* FBSDKLoginButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginButton.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginButton.h; sourceTree = ""; }; - 19BB647A58986E23B794017A975F0D83 /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKCoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 19C984590194050CD48FFD25231BFB21 /* FBSDKShareAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareAPI.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareAPI.h; sourceTree = ""; }; - 1A013F051D2FCF67AAFF27B134C958DC /* FBSDKSharePhotoContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSharePhotoContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhotoContent.m; sourceTree = ""; }; - 1A30A88FB9D684CB0B3506513899C7E6 /* FBSDKSettings+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKSettings+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSettings+Internal.h"; sourceTree = ""; }; - 1A4D85B2C4FD62D7587E844FB69E4AD9 /* FBSDKLikeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeButton.m; sourceTree = ""; }; - 1A5A8FB22A33F31F84E0DFE2BB5D04E4 /* FBSnapshotTestCase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCase.m; path = FBSnapshotTestCase/FBSnapshotTestCase.m; sourceTree = ""; }; - 1A60ACB773CC7B01EA2F485AE2D581E5 /* Specta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Specta-dummy.m"; sourceTree = ""; }; - 1AB6A7B0C0EE447E5C6AF15003946886 /* FBSDKGraphRequestConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestConnection.h; sourceTree = ""; }; - 1ADBD6FA61239D16800C6797C7F6AFB8 /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = nv_ios_http_status.framework; path = "nv-ios-http-status.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1BBBA062C6A0303A4C94256A449341E1 /* FBSDKShareUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareUtility.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareUtility.h; sourceTree = ""; }; - 1BBD5DC88968C05E6C30E4AC3AECB770 /* Specta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Specta.xcconfig; sourceTree = ""; }; - 1C27D8C9E1AEF410593CCBD29D5ACD56 /* NAAES.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAAES.m; path = NACrypto/NAAES.m; sourceTree = ""; }; - 1C32A1C0DE34D73433B17932DB862D53 /* FBSDKApplicationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKApplicationDelegate.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.h; sourceTree = ""; }; - 1C3B754855A1FA85A7BD34077A835E2A /* NADigest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NADigest.m; path = NACrypto/NADigest.m; sourceTree = ""; }; - 1CB3AAF10B30ABA149DEAD770C2AC0B8 /* UIDevice-Hardware.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice-Hardware.h"; path = "Pod/Classes/UIDevice-Hardware.h"; sourceTree = ""; }; - 1DB7C32917C6DC816EE3FB80727E27E1 /* FBSDKLikeObjectType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeObjectType.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeObjectType.m; sourceTree = ""; }; - 1DFEE023C1812D2A21356E8492D857BE /* ALView+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ALView+PureLayout.m"; path = "PureLayout/PureLayout/ALView+PureLayout.m"; sourceTree = ""; }; - 1E0DE27DC31F1AF7C4F57FF9D9242730 /* PNObject+PNObjectConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject+PNObjectConnection.m"; sourceTree = ""; }; - 1E4E61662505F2FCD990F997D856F653 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - 1ECD2A5B6C0CB704F507A381D4E3BA62 /* SPTCompiledExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCompiledExample.h; path = Specta/Specta/SPTCompiledExample.h; sourceTree = ""; }; - 1F24275E6B98CE5911FF22E25D7F8D21 /* HTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPStatusCodes.h; path = "nv-ios-http-status/HTTPStatusCodes.h"; sourceTree = ""; }; - 1F34C1BC19AD317FC6984E7F1D0309C1 /* NSDate_Utils-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate_Utils-umbrella.h"; sourceTree = ""; }; - 1F5A08ECCF3E8236CD79DE43F4FDD49E /* FBSDKBridgeAPIProtocolWebV1.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolWebV1.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV1.m; sourceTree = ""; }; - 1F7B3C80D29036D327C6191D8F66FDD7 /* DJLocalization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DJLocalization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 201196E76C82C5A78FC16C11B3D341F6 /* NACrypto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NACrypto-prefix.pch"; sourceTree = ""; }; - 21A0C4187813370C7F56413234E536CA /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; - 21B10138AACD9DB8F13C677A5DB0629D /* FBSDKGraphRequestPiggybackManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestPiggybackManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestPiggybackManager.h; sourceTree = ""; }; - 21C0C4552AB762275CC7E62C01631E0A /* FBSDKAccessTokenCacheV4.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV4.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV4.m; sourceTree = ""; }; - 21C7032B6F00370608B1C7D1B1405F9F /* FBSDKBase64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBase64.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Base64/FBSDKBase64.m; sourceTree = ""; }; - 22308DB2B6086E1E08045E2E9AC4F629 /* FBSDKShareOpenGraphAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphAction.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphAction.m; sourceTree = ""; }; - 22C1AB0A078484B6729ECEE8D94DA8FD /* FBSDKAppGroupJoinDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupJoinDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupJoinDialog.m; sourceTree = ""; }; - 22E4AC8E876920C074195E1CD721D8AD /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; - 2320D1F05299B2011F0E4F45CE3B5EF3 /* AFOAuth2Manager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFOAuth2Manager.h; sourceTree = ""; }; - 23ECFA20CDB31C880A16DDCE0A3F4F17 /* KeccakF-1600-32-rvk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-32-rvk.h"; path = "NACrypto/keccak/KeccakF-1600-32-rvk.h"; sourceTree = ""; }; - 24900F22E83266C9099A4C4FC9CFAD97 /* FBSDKBoltsMeasurementEventListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBoltsMeasurementEventListener.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppLink/FBSDKBoltsMeasurementEventListener.h; sourceTree = ""; }; - 24AD868D6DB4B71CE04202CF15FA22A4 /* FBSDKGraphRequestConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestConnection.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestConnection.m; sourceTree = ""; }; - 24C975F36CBBA0A2F98D7E1F70A9F082 /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; }; - 24DB960A119FF63D4696D63B3619C0E3 /* PNUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNUser.h; sourceTree = ""; }; - 25DE62E4DFED9F1A496147DBA9760301 /* BFTask+Exceptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BFTask+Exceptions.m"; path = "Bolts/Common/BFTask+Exceptions.m"; sourceTree = ""; }; - 25FFBAAD0FA9EC9F04F0BAC29F946F0D /* FBSDKLikeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeButton.h; sourceTree = ""; }; - 26E66EEA1EC74635C4E7C981510871A7 /* FBSDKLoginUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginUtility.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginUtility.m; sourceTree = ""; }; + 00285799494E3216269F32661CE5FB56 /* verify_hmacsha512.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_hmacsha512.c; path = src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c; sourceTree = ""; }; + 00984089303CC269B60FB2B41C605561 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 00CBF6C37943185F06BB5B0B1B97E044 /* FBSDKKeychainStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKKeychainStore.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStore.m; sourceTree = ""; }; + 010A8BF899C568F1CE828C1A448114E8 /* FBSDKLikeButtonPopWAV.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeButtonPopWAV.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButtonPopWAV.m; sourceTree = ""; }; + 010E7F85443AB3C86AD24F0E99B650FD /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; }; + 0152FE63F4F86AD36C49C5D7CEFD1568 /* PNObject+PNObjectConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject+PNObjectConnection.h"; sourceTree = ""; }; + 0168059C2E70ABB3157CD5BA485D79D5 /* NAOneTimeAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAOneTimeAuth.h; path = NAChloride/NAOneTimeAuth.h; sourceTree = ""; }; + 01A1CFEF78B99D2EB2C0D0C547470F33 /* blake2b-compress-sse41.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-compress-sse41.c"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c"; sourceTree = ""; }; + 01CCA93CB3F71CC4459D9C834B3AF6FE /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; + 020977FBAF80C502FC21F9A4E451F80E /* Pods_PNObject_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PNObject_Example.framework; path = "Pods-PNObject_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 024B6E436E3E38943DE2E659DEA97D41 /* RZDataBinding-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RZDataBinding-prefix.pch"; sourceTree = ""; }; + 02592C9CD83FCFC7BD780FC236FF0CFB /* CodFis+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CodFis+Helper.h"; path = "CodFis-Helper/CodFis+Helper.h"; sourceTree = ""; }; + 02A1375B683574A687A4E6A8F9325241 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + 03093BE1CD954DEA79969DCBA595E38E /* FBSDKLoginKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKLoginKit.modulemap; sourceTree = ""; }; + 035082FAAFB14B16A9C05CC79CE603DE /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; + 03838017D67C45A63FE6B9D17435810B /* curve25519_sandy2x.c */ = {isa = PBXFileReference; includeInIndex = 1; name = curve25519_sandy2x.c; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c; sourceTree = ""; }; + 03AC9FFBD8C06E070FCB79E7C9F4118D /* DJLocalization-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DJLocalization-umbrella.h"; sourceTree = ""; }; + 0415454567E46D343D3B4C4040FEC1CA /* crypto_int64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_int64.h; path = src/libsodium/include/sodium/crypto_int64.h; sourceTree = ""; }; + 044012B17A5A48E36B81569A4004FE53 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 04612680A3F4F437CAD3F2AD9AA8EBF7 /* FBSDKAccessTokenCacheV3_21.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_21.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_21.h; sourceTree = ""; }; + 04B045CA0FBBD9BE0BC869401C62EACB /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; + 04DA0ADC65744037A51E4D519D3A4C3B /* ladder_namespace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ladder_namespace.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h; sourceTree = ""; }; + 04FC06B7DD9F7773327496FF1ABBA969 /* FBSDKLoginKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKLoginKit-prefix.pch"; sourceTree = ""; }; + 0559D8AB166E5B03F733FD6251BDDC10 /* crypto_scalarmult.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_scalarmult.c; path = src/libsodium/crypto_scalarmult/crypto_scalarmult.c; sourceTree = ""; }; + 0574891ECF4192644D445E30923EF71F /* FBSDKAccessToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessToken.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAccessToken.h; sourceTree = ""; }; + 05E0F4E09D09D6C5B584983A1D362DE7 /* randombytes_nativeclient.c */ = {isa = PBXFileReference; includeInIndex = 1; name = randombytes_nativeclient.c; path = src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c; sourceTree = ""; }; + 067FCEC8661F4753AE6FC887FFCA8C6C /* FBSDKURLConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLConnection.h; sourceTree = ""; }; + 06820D6F4B907D5BF19FD02F956D9B2D /* FBSDKTestUsersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTestUsersManager.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.h; sourceTree = ""; }; + 06B953075F96D49A5E46739DE9C4718A /* pwhash_argon2i.c */ = {isa = PBXFileReference; includeInIndex = 1; name = pwhash_argon2i.c; path = src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c; sourceTree = ""; }; + 06F8ADBD9C3E333CACF1A0E845D8DE28 /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; + 073C2A6F0C8C28E0BD7AAE82DE855FF2 /* FBSDKApplicationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKApplicationDelegate.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.m; sourceTree = ""; }; + 0774549743834722051D585A4B7A3C73 /* FBSDKMath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMath.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMath.m; sourceTree = ""; }; + 0776CF7F35F7516406C855C37FB5846F /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; + 07E536E16F98D9B2ED08C94CED9AFD14 /* crypto_box.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_box.c; path = src/libsodium/crypto_box/crypto_box.c; sourceTree = ""; }; + 08353F091306F0B89FFCF6698DF16350 /* BFAppLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLink.m; path = Bolts/iOS/BFAppLink.m; sourceTree = ""; }; + 088D812A6C4C036B2AB1970550975CB6 /* FBSDKGraphErrorRecoveryProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphErrorRecoveryProcessor.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.m; sourceTree = ""; }; + 0926D9D5CE11A5DD20D250E57D248618 /* FBSDKLoginManagerLoginResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManagerLoginResult.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManagerLoginResult.h; sourceTree = ""; }; + 0950481F201D8E52B74922E8EB620B32 /* FBSDKAccessTokenCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCache.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCache.m; sourceTree = ""; }; + 0976134FF7D4EC74D3348C57A4AEB623 /* NABoxKeypair.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NABoxKeypair.h; path = NAChloride/NABoxKeypair.h; sourceTree = ""; }; + 09A0BA8A78FB9CF083FE7EF167AEAA6E /* FBSDKShareButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareButton.h; sourceTree = ""; }; + 09B4A7CF30945090E124BC7FD73BFC9D /* libsodium.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = libsodium.xcconfig; sourceTree = ""; }; + 0A280CF4D573184E8DE4571FD57B258E /* libsodium.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = libsodium.modulemap; sourceTree = ""; }; + 0A3A6728006EC2ED0E4677490083314B /* FBSDKShareUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareUtility.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareUtility.m; sourceTree = ""; }; + 0A833DD466AE11FD446A7169367F67CD /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + 0A849045544A8CE8F15A83B8F6D2BB04 /* scrypt_platform.c */ = {isa = PBXFileReference; includeInIndex = 1; name = scrypt_platform.c; path = src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c; sourceTree = ""; }; + 0A864C62CA0BADF6CCAC9570785752EC /* FBSDKBridgeAPIProtocolWebV1.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolWebV1.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV1.m; sourceTree = ""; }; + 0AA59EF62A51AFA9A1DB0349C80A5272 /* hash_sha512.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hash_sha512.c; path = src/libsodium/crypto_hash/sha512/cp/hash_sha512.c; sourceTree = ""; }; + 0AAA897EBC8E9C3DE05ED335B04D9DD9 /* crypto_core_hchacha20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_core_hchacha20.h; path = src/libsodium/include/sodium/crypto_core_hchacha20.h; sourceTree = ""; }; + 0AEA58A825C8937CD7417ADA494BC681 /* ALView+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ALView+PureLayout.h"; path = "PureLayout/PureLayout/ALView+PureLayout.h"; sourceTree = ""; }; + 0AF4FA08F4D20FE318B70FE34ECD7010 /* DJLocalizableString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalizableString.h; path = DJLocalization/DJLocalizableString.h; sourceTree = ""; }; + 0AFC2C6C97F98F163995F220D76F3BF1 /* FBSDKShareDialogMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDialogMode.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialogMode.h; sourceTree = ""; }; + 0B47AF550B5FAB96AAFAF54DC988934B /* crypto_hash.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_hash.c; path = src/libsodium/crypto_hash/crypto_hash.c; sourceTree = ""; }; + 0B4B48B1DE8F28D11E7A265EE21D1E4B /* curve25519_donna_c64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = curve25519_donna_c64.h; path = src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h; sourceTree = ""; }; + 0C90D8DAA5DFE6742A10654897C1EF4F /* keypair_curve25519xsalsa20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = keypair_curve25519xsalsa20poly1305.c; path = src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c; sourceTree = ""; }; + 0CBBA584B111EBC2230E0F4C9DFA1A91 /* Expecta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-umbrella.h"; sourceTree = ""; }; + 0CDE350823A635A6C7448FF65E86F494 /* FBSDKLoginButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginButton.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginButton.h; sourceTree = ""; }; + 0CFA848E9F436535706EA35CF131941E /* FBSDKURLOpening.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLOpening.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKURLOpening.h; sourceTree = ""; }; + 0D55F993B370322A81BA874F9CB423F0 /* FBSDKShareKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKShareKit-dummy.m"; sourceTree = ""; }; + 0D718BA0E87E4A07E3BE1827F0BC2158 /* FBSDKTriStateBOOL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTriStateBOOL.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTriStateBOOL.h; sourceTree = ""; }; + 0D794E6D638C16A75FDA67F290D0D109 /* blake2b-long.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-long.c"; path = "src/libsodium/crypto_pwhash/argon2/blake2b-long.c"; sourceTree = ""; }; + 0D98077EAEA246AEC38BC50D7DF29596 /* PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayout.h; path = PureLayout/PureLayout/PureLayout.h; sourceTree = ""; }; + 0E38C4A8D9227857B26406C451512BF7 /* argon2-core.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "argon2-core.h"; path = "src/libsodium/crypto_pwhash/argon2/argon2-core.h"; sourceTree = ""; }; + 0E6F4BB7CCD22D4D38338EDACF42359F /* BFExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFExecutor.h; path = Bolts/Common/BFExecutor.h; sourceTree = ""; }; + 0E91EBD3063708040C7596C9420F9E6E /* SPTSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSpec.h; path = Specta/Specta/SPTSpec.h; sourceTree = ""; }; + 0EDCDB5295B914DFA07AC571A5CEDDB5 /* SPTExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExample.h; path = Specta/Specta/SPTExample.h; sourceTree = ""; }; + 0F8B90BB50DFEBE3D5358863A758A011 /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; + 0F8CF61C95BB205DC996672B249B6A0A /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + 106C36F381B4489F0CF7820798040205 /* PNLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNLocation.h; sourceTree = ""; }; + 109EEECCF2EC277F4F7A8CEC2E4F5183 /* FBSDKConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKConstants.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKConstants.h; sourceTree = ""; }; + 10AD3878230C74997527DBCA6BDF83A1 /* PEAR-FileManager-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "PEAR-FileManager-iOS.modulemap"; sourceTree = ""; }; + 10DBB880BE793CC3C7A741EB9C0B3907 /* FBSDKGraphRequestConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestConnection.h; sourceTree = ""; }; + 110A6D6AAAC4948F51C7CCF7E1466605 /* CocoaSecurity-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaSecurity-umbrella.h"; sourceTree = ""; }; + 110D409C286ED83CACC871BFDDAEB683 /* runtime.c */ = {isa = PBXFileReference; includeInIndex = 1; name = runtime.c; path = src/libsodium/sodium/runtime.c; sourceTree = ""; }; + 11394A721234F5169C61869D072F5DB6 /* FBSDKDeviceRequestsHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDeviceRequestsHelper.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDeviceRequestsHelper.m; sourceTree = ""; }; + 11451432C5B71747DA2ECF3901BA2D5D /* crypto_pwhash.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_pwhash.c; path = src/libsodium/crypto_pwhash/crypto_pwhash.c; sourceTree = ""; }; + 1185DC05EC18189F1BABAC4CC887CC6D /* beforenm_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = beforenm_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c; sourceTree = ""; }; + 11EC0AE1EDB0E45B78BDBFC5FA4FC0EE /* FBSDKAppEventsUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsUtility.h; sourceTree = ""; }; + 11F02217724E5D7412C3C03E2022170D /* stream_xsalsa20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_xsalsa20.c; path = src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c; sourceTree = ""; }; + 1302914AC21A11EAAE954194A659B9E3 /* FBSDKGameRequestFrictionlessRecipientCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestFrictionlessRecipientCache.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKGameRequestFrictionlessRecipientCache.h; sourceTree = ""; }; + 13A3EBC1D179AEB87055057ED6C97F1B /* FBSDKLoginError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginError.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.m; sourceTree = ""; }; + 13E853DF8A5A7EA4D97E9ED6A296222A /* FBSDKCheckmarkIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCheckmarkIcon.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKCheckmarkIcon.m; sourceTree = ""; }; + 13F9DB4B3070FBF062D4DE6C9D51BB30 /* CocoaSecurity.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaSecurity.xcconfig; sourceTree = ""; }; + 14113E669F3052E11E75350ADEE28170 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 14290AB795B71FC7BDCD4D24E122E455 /* FBSDKLogo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLogo.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKLogo.m; sourceTree = ""; }; + 14C763B80EE6F2DF8962FA6B9DD21A1A /* generichash_blake2_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = generichash_blake2_api.c; path = src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c; sourceTree = ""; }; + 15015DFCC29B25D638AD04E1301BC210 /* crypto_pwhash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_pwhash.h; path = src/libsodium/include/sodium/crypto_pwhash.h; sourceTree = ""; }; + 150C7D1FB6EB633FE7BB3E18E045EE77 /* Bolts.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bolts.xcconfig; sourceTree = ""; }; + 1568AB9194F5C0A88651091D0B001930 /* FBSDKKeychainStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKKeychainStore.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStore.h; sourceTree = ""; }; + 1593AFA04EE3C0974D16A06F2D543696 /* fe51_namespace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fe51_namespace.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h; sourceTree = ""; }; + 164517FBD6E78CA646A58671F949574E /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; + 167917C0F2904C539C5D5140977A04D7 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + 16EBF9DBE0B2A42768505BDBD7EE0398 /* PureLayout-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-prefix.pch"; sourceTree = ""; }; + 174BF6A0CAF2D617973586345A029AD0 /* CodFis-Helper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-prefix.pch"; sourceTree = ""; }; + 18BF72D4C69FD7E83F85B15C53E29820 /* consts_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = consts_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c; sourceTree = ""; }; + 18EC71A5BD904A05D44358B3646692FA /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + 1943990C83F05DC3EFA51415E3FC91AB /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; + 19671BC05C829FD1C72DF41F017AB587 /* SPTTestSuite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTTestSuite.h; path = Specta/Specta/SPTTestSuite.h; sourceTree = ""; }; + 19BAD71E8D6CC3CFA642EE95EA1E1FB2 /* StrongestPasswordValidator.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = StrongestPasswordValidator.modulemap; sourceTree = ""; }; + 1A3FC4F2EC4483F6F484D6DB8CF3B599 /* FBSDKSharePhoto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharePhoto.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhoto.h; sourceTree = ""; }; + 1A59CDA296ABAF40D873FD10F4DC8C99 /* stream_aes128ctr_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_aes128ctr_api.c; path = src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c; sourceTree = ""; }; + 1A63B61A8AAD3568638CF60B32253560 /* FBSDKUIUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKUIUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKUIUtility.h; sourceTree = ""; }; + 1A6BC252ABCF01D2AB0CDC08D7FC9A11 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + 1AC1FF556F86F99D984DCB1081EBF937 /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PEAR_FileManager_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1AD9E43CD7AA5C658295245EF8F2399B /* CodFis-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-umbrella.h"; sourceTree = ""; }; + 1B0204BF071B3C49E0C236B2583886D9 /* FBSDKLoginManagerLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManagerLogger.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.h; sourceTree = ""; }; + 1B1B9361785FB1D9E5B83B8A98FAF2AF /* FBSDKLikeControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeControl.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeControl.h; sourceTree = ""; }; + 1B7F74FD608163590C6CDF3333809A02 /* FBSDKInternalUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKInternalUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.h; sourceTree = ""; }; + 1BE8AB908E463F31752FBBD60DD76E63 /* core.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core.c; path = src/libsodium/sodium/core.c; sourceTree = ""; }; + 1BFB5BEE395148A27B4AD31E288C4DB4 /* NAChloride-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NAChloride-prefix.pch"; sourceTree = ""; }; + 1C0DFFF83F4507D170E981C64A6184A3 /* crypto_shorthash_siphash24.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_shorthash_siphash24.h; path = src/libsodium/include/sodium/crypto_shorthash_siphash24.h; sourceTree = ""; }; + 1C60224763E3C2A87236B7822581C2E3 /* FBSDKShareOpenGraphValueContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphValueContainer.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphValueContainer.m; sourceTree = ""; }; + 1C70075099F8A35F121E621E93974F4F /* SpectaTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaTypes.h; path = Specta/Specta/SpectaTypes.h; sourceTree = ""; }; + 1CCDF04306B298BE185666BE0459685C /* CocoaSecurity-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaSecurity-dummy.m"; sourceTree = ""; }; + 1CF4B7C0962891B50E78765E6AF0F206 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; + 1DCD7E7D07B9D120D371FEA3626C686C /* core_hsalsa20_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_hsalsa20_api.c; path = src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c; sourceTree = ""; }; + 1DD6E71862C9A29D843128A3DD9093CB /* FBSDKGraphRequestPiggybackManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestPiggybackManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestPiggybackManager.h; sourceTree = ""; }; + 1E0F4D981DD7358329A0E64C5B729369 /* Pods_PNObject_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PNObject_Tests.framework; path = "Pods-PNObject_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E791F77AAC47B9FF8E27371A5412060 /* FBSDKContainerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKContainerViewController.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.m; sourceTree = ""; }; + 1F45D5D58187C5416F99C449F96DE05F /* UIDevice-Utils-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDevice-Utils-prefix.pch"; sourceTree = ""; }; + 1F68D5873918BD79E19645103A563A0F /* blamka-round-ssse3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blamka-round-ssse3.h"; path = "src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h"; sourceTree = ""; }; + 1FEAAFDAB2DF9359E13E0FFDBED277AC /* FBSDKShareUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareUtility.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareUtility.h; sourceTree = ""; }; + 202419D9F9007A055ED4BAB5C869107D /* DJLocalization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DJLocalization.framework; path = DJLocalization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 205AA1333D7DC8B31CFA7945F8C3DE87 /* hmac_hmacsha256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hmac_hmacsha256.c; path = src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c; sourceTree = ""; }; + 2142FB71AC0808A433461EEA4C89D349 /* NSDate_Utils-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate_Utils-prefix.pch"; sourceTree = ""; }; + 218667BA06E2365E1D0C7ECB545EC40C /* DJLocalization.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = DJLocalization.modulemap; sourceTree = ""; }; + 21BCE168B59CA38CFCEAC641303CC4CB /* libsodium-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libsodium-umbrella.h"; sourceTree = ""; }; + 2250FBDC9CCAD24D78DC214DB698C072 /* AFOAuth2Manager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFOAuth2Manager.m; sourceTree = ""; }; + 22609D1349DCD01DB4461C52D79D8DF6 /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; + 228536A01037E8312423922F7766D0E0 /* ResponseConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ResponseConstants.h; path = "CodFis-Helper/ResponseConstants.h"; sourceTree = ""; }; + 22E3A8903F8F0E1E07A9EFA287ED7EF8 /* FBSDKBridgeAPIProtocolNativeV1.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolNativeV1.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolNativeV1.m; sourceTree = ""; }; + 2357906017436F5C51009A722490396B /* sodium.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = sodium.h; path = src/libsodium/include/sodium.h; sourceTree = ""; }; + 23927B6E2E2799F100959B5DB7797F1F /* FBSDKShareLinkContent+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareLinkContent+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareLinkContent+Internal.h"; sourceTree = ""; }; + 23A1847135F88B680E64B7DDFC545D5E /* argon2-fill-block-ssse3.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "argon2-fill-block-ssse3.c"; path = "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c"; sourceTree = ""; }; + 24145E51A9C65F93CC898795A8F17DA6 /* PNObjectFormData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectFormData.h; sourceTree = ""; }; + 2469FAA4A168CC5BA482B02B15C83D60 /* FBSDKBridgeAPIRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIRequest.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest.m; sourceTree = ""; }; + 247BE21FAAB715A40E7D29503841478D /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; + 2498AF84711C2401D7D008A9132B7AB3 /* shorthash_siphash24.c */ = {isa = PBXFileReference; includeInIndex = 1; name = shorthash_siphash24.c; path = src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c; sourceTree = ""; }; + 24FF0A63CFA405437A9BA0476F86489B /* FBSDKSharePhoto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSharePhoto.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhoto.m; sourceTree = ""; }; + 255EE07D2E033F49953DD397D9EAE8AE /* FBSDKLikeButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeButton.h; sourceTree = ""; }; + 25664B1ED6000C66C7CF9D349E0A53AA /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + 256C0C7CF985DC6B56CAE2E9BBB98111 /* FBSDKButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKButton.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKButton.h; sourceTree = ""; }; + 25737F1C52755777D19B8AE7262D3B1E /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; + 257731D7042A09BE698D2C11BAA35D4D /* FBSDKBridgeAPIProtocolWebV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolWebV1.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV1.h; sourceTree = ""; }; + 25E2957C098A975DDD956F4030322CDB /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + 264198F97557502B32A396FE41B08E07 /* stream_chacha20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stream_chacha20.h; path = src/libsodium/crypto_stream/chacha20/stream_chacha20.h; sourceTree = ""; }; + 26741157FED22D78E9A43EC6CF51DE74 /* PEAR-FileManager-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PEAR-FileManager-iOS-dummy.m"; sourceTree = ""; }; + 26E4139BF26073C2C3389F61DFCDB889 /* FBSDKShareOpenGraphValueContainer+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareOpenGraphValueContainer+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareOpenGraphValueContainer+Internal.h"; sourceTree = ""; }; + 26F2BA4B0869E6A31997B2AECD8837EE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 26FD9AE7B8392B7EDDC75876BB51DFC2 /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; 2701DCB1C4CA2591F34532CBFE0BC596 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 270A6B567F2C8D415803E708D5BB6446 /* DJLocalizationSystem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DJLocalizationSystem.m; path = DJLocalization/DJLocalizationSystem.m; sourceTree = ""; }; - 2713BE3BF29F0F22CAE0DAC4077456D5 /* FBSDKLikeButtonPopWAV.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeButtonPopWAV.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButtonPopWAV.m; sourceTree = ""; }; - 278FF38A4475A850D38535B74C801D43 /* CocoaSecurity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CocoaSecurity.m; path = CocoaSecurity/CocoaSecurity.m; sourceTree = ""; }; - 27998AA83106AAE4BE27F27954380103 /* FBSDKGameRequestContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestContent.h; sourceTree = ""; }; - 27D42BAABB01D0D2784F158FFDF5B79D /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; - 27DBA9BB9CA97C73B6B6DD451087CA14 /* FBSDKErrorRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorRecoveryAttempter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/FBSDKErrorRecoveryAttempter.m; sourceTree = ""; }; - 2873A6B1C1550496756DBEDB264DD6FF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 288333A1A32F0B6A4B0A5E8AA9DC1012 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Expecta.framework; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 297910462FC13A9F86F44DDC54C72D23 /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; }; - 29C3B62491E17F65D81ED3CACABDE1AB /* FBSDKBridgeAPIProtocolWebV2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolWebV2.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV2.h; sourceTree = ""; }; - 2A0DAFE7EAA74CDA4509C819F622D904 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2A94192763F40A477298762E34C81B8A /* NAAES.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAAES.h; path = NACrypto/NAAES.h; sourceTree = ""; }; - 2C589FA9F49C6F5F391E4F2E5DE3D695 /* SpectaTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaTypes.h; path = Specta/Specta/SpectaTypes.h; sourceTree = ""; }; - 2E252617A658E8D7DCEA1A6EF02DE6BA /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nv_ios_http_status.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2EFF02CCA6DA98BB7CA30BAD30B2A53A /* CodFisResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CodFisResponse.m; path = "CodFis-Helper/CodFisResponse.m"; sourceTree = ""; }; - 2F02BEE05C6B2C9F6FF5083FDB74182E /* FBSDKAppInviteContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppInviteContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteContent.m; sourceTree = ""; }; - 2F78BBE39183C91646E195FA6EFC0D57 /* NSLayoutConstraint+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PureLayout.h"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h"; sourceTree = ""; }; - 2FFF971122AFA7A8C9221549A02A712C /* NASHA3.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NASHA3.m; path = NACrypto/NASHA3.m; sourceTree = ""; }; - 300E8F2949B94235B1A764B0DF2F8D31 /* Bolts-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Bolts-prefix.pch"; sourceTree = ""; }; - 305A1EFFBF67EF774F43DDC908F191C3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 305F512FB14155115EB0E6A7D88A78F8 /* FBSDKGraphRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequest.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequest.m; sourceTree = ""; }; - 306B16E51E5C868B88861E0EFA71C0CD /* FBSDKTypeUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTypeUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTypeUtility.h; sourceTree = ""; }; - 306EBE60A6BE923DD3B2D182D56BF5A1 /* FBSDKLoginCompletion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginCompletion.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion.h; sourceTree = ""; }; - 30CFDDCFCE6E9C815967ADA1592A5C0F /* KeccakF-1600-interface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-interface.h"; path = "NACrypto/keccak/KeccakF-1600-interface.h"; sourceTree = ""; }; - 313E248F0A48B6C057461EA05E72F4D8 /* FBSDKCheckmarkIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCheckmarkIcon.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKCheckmarkIcon.m; sourceTree = ""; }; - 32E50A05585BC2F565D8CD1877EADB09 /* FBSDKAccessTokenCacheV3_17.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_17.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_17.h; sourceTree = ""; }; - 3303C18CB5C5CB2407FBCECBF4C44181 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - 3369291A7DBB6C0FFEFD5BFAE95CD0A5 /* UIStoryboard+DJLocalization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStoryboard+DJLocalization.m"; path = "DJLocalization/UIStoryboard+DJLocalization.m"; sourceTree = ""; }; - 341E15F2F303A83A09A6DFBB17A50E47 /* FBSDKAccessTokenCacheV3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3.h; sourceTree = ""; }; - 3459CA1C90104634EAB50E76E15FD80C /* RZDBTransforms.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RZDBTransforms.m; path = RZDataBinding/RZDBTransforms.m; sourceTree = ""; }; - 34659F02D614870E5D89C82F31BB56D2 /* FBSDKServerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKServerConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration.m; sourceTree = ""; }; - 346B162C3AFB290C218F88EE772AD768 /* FBSDKAppEvents.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEvents.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppEvents.m; sourceTree = ""; }; - 34740110B04A35092351B28FFE5F5870 /* FBSDKMaleSilhouetteIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMaleSilhouetteIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKMaleSilhouetteIcon.m; sourceTree = ""; }; - 34F52B01A559958D6978BE901604F4C9 /* UIApplication+StrictKeyWindow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+StrictKeyWindow.m"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.m"; sourceTree = ""; }; - 3540CD01E6ACC57C53E613DB542A3954 /* FBSDKGraphRequestDataAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestDataAttachment.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestDataAttachment.h; sourceTree = ""; }; - 357531F2DAD6E914C1BF17F6D9636F4F /* FBSDKGameRequestDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestDialog.h; sourceTree = ""; }; - 362F96FA0485DE23220220D1792F4980 /* PNObjectFormData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectFormData.h; sourceTree = ""; }; - 36A4BEDFDF420DDD1B237DC4895B48A8 /* Base64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Base64.m; path = submodules/Base64/Base64/Base64.m; sourceTree = ""; }; - 36DBFB5A274AC2D1D08CE955C70698AA /* FBSDKSharePhoto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharePhoto.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhoto.h; sourceTree = ""; }; - 36E65C9D1002817D458F292F4A46C1F3 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; - 37A2077FBA5B08032149AB4EF59FADB3 /* EXPMatchers+beFalsy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beFalsy.m"; path = "Expecta/Matchers/EXPMatchers+beFalsy.m"; sourceTree = ""; }; - 37B7CEE22E13E090816802B7B620D2E0 /* StrongestPasswordValidator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = StrongestPasswordValidator.h; path = Pod/Classes/StrongestPasswordValidator.h; sourceTree = ""; }; - 37C773246C9AF4570817C21E2986E28F /* KeccakF-1600-unrolling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-unrolling.h"; path = "NACrypto/keccak/KeccakF-1600-unrolling.h"; sourceTree = ""; }; - 382047A728757CE3FA00E5771BCD49A7 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 2705151E1C4CF4680560CA9B2540C1A1 /* FBSDKAppLinkUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppLinkUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkUtility.m; sourceTree = ""; }; + 271550736E646EA7B48E5C220354E164 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + 2732CBCA195BA4EDAC9ECB49EFD76009 /* NAOneTimeAuth.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAOneTimeAuth.m; path = NAChloride/NAOneTimeAuth.m; sourceTree = ""; }; + 27A61EBBAC53EABE74ACEBD1498ACCBF /* PNObject.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNObject.xcconfig; sourceTree = ""; }; + 27ADCF1FD5D3FC071A5AD1BD863BA0A0 /* FBSDKShareButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareButton.m; sourceTree = ""; }; + 285B548BB29D488569633F3D082BC1DB /* CodFis+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CodFis+Helper.m"; path = "CodFis-Helper/CodFis+Helper.m"; sourceTree = ""; }; + 2864B8DF1592839220AAA73682A09796 /* crypto_verify_32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_verify_32.h; path = src/libsodium/include/sodium/crypto_verify_32.h; sourceTree = ""; }; + 28BEEE9095A35619F4C50695926D947A /* NAChloride.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAChloride.h; path = NAChloride/NAChloride.h; sourceTree = ""; }; + 2926D628713CC43FD149C423F394EC75 /* FBSDKLikeDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeDialog.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeDialog.m; sourceTree = ""; }; + 2936908F010D40A6524387BEF29087C2 /* FBSDKMessengerIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMessengerIcon.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.m; sourceTree = ""; }; + 294B3C66073AFFF539451B056447852A /* NSDate_Utils-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate_Utils-umbrella.h"; sourceTree = ""; }; + 2980EA326687D838F2615DC7B45482FE /* stream_xsalsa20_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_xsalsa20_api.c; path = src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c; sourceTree = ""; }; + 2A4DE543FE524CDF635DC2C7AB234CCB /* BFAppLinkNavigation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkNavigation.m; path = Bolts/iOS/BFAppLinkNavigation.m; sourceTree = ""; }; + 2A54B74C6A812591CD05DB598DFA0CE7 /* FBSDKShareLinkContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareLinkContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareLinkContent.h; sourceTree = ""; }; + 2A7D3A501D3FC2037F8B254E6E62AB45 /* crypto_stream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream.h; path = src/libsodium/include/sodium/crypto_stream.h; sourceTree = ""; }; + 2A8322955259FD28FFBBA43FFC3A9C66 /* FBSDKLoginManagerLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManagerLogger.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.m; sourceTree = ""; }; + 2AEF2092B75CE68A237EB342BF465D99 /* FBSDKKeychainStoreViaBundleID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKKeychainStoreViaBundleID.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStoreViaBundleID.h; sourceTree = ""; }; + 2B2979A34E7C7951279CDA5F0B958884 /* crypto_onetimeauth.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_onetimeauth.c; path = src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c; sourceTree = ""; }; + 2B685AAACA18433E899748B3A199151E /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; + 2B6E8BFF82863AE4839C35BC411C185D /* EXPMatchers+postNotification.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+postNotification.m"; path = "Expecta/Matchers/EXPMatchers+postNotification.m"; sourceTree = ""; }; + 2B8FEC69FC0232C0ACCEA1AABF983C73 /* curve25519_sandy2x.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = curve25519_sandy2x.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h; sourceTree = ""; }; + 2BCD928C8165C1C6590EB58BB103FDE5 /* SPTExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExample.m; path = Specta/Specta/SPTExample.m; sourceTree = ""; }; + 2BE054E830EA34B346DAE1C3E6AA8F25 /* auth_hmacsha256_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = auth_hmacsha256_api.c; path = src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c; sourceTree = ""; }; + 2C0E7934A146E935107C6DB71DE2D202 /* FBSDKShareOpenGraphObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphObject.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.m; sourceTree = ""; }; + 2C499CBEE6CD7AA4E995D6AF57CCA748 /* FBSDKAppEvents.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEvents.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppEvents.h; sourceTree = ""; }; + 2C93F55A825F7A4577852957372E04F3 /* BFAppLinkReturnToRefererView_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererView_Internal.h; path = Bolts/iOS/Internal/BFAppLinkReturnToRefererView_Internal.h; sourceTree = ""; }; + 2D0A3FBC5B749830D429C33651EC4115 /* randombytes_nativeclient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = randombytes_nativeclient.h; path = src/libsodium/include/sodium/randombytes_nativeclient.h; sourceTree = ""; }; + 2D713F1F0AA94178EC9405D76B713811 /* UIDevice-Utils-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDevice-Utils-umbrella.h"; sourceTree = ""; }; + 2D8948F5AAC58DFC072B713F078728B2 /* FBSDKGraphErrorRecoveryProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphErrorRecoveryProcessor.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.h; sourceTree = ""; }; + 2E08500D05A12AD4957773BFF5615305 /* RZDataBinding-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RZDataBinding-dummy.m"; sourceTree = ""; }; + 2E24B8503EFBB5AD30804D306AA486A3 /* FBSDKErrorRecoveryConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorRecoveryConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorRecoveryConfiguration.h; sourceTree = ""; }; + 2E88585A06FE223B6A526015327303FB /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = UIDevice_Utils.framework; path = "UIDevice-Utils.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E90299D265808F8BDBED4305372DBC5 /* FBSDKAccessTokenCacheV3.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3.m; sourceTree = ""; }; + 2EBE7B9C2FD4C227315A843BB56C47ED /* FBSDKTooltipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTooltipView.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKTooltipView.m; sourceTree = ""; }; + 2ED5CE3CE7421D52E5A9B610F7DFACC8 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; + 2EF89A06BABC6C142A1DD1EA088FB7A5 /* FBSDKShareConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareConstants.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareConstants.h; sourceTree = ""; }; + 2F5CC57C416C6AB5FA053E016F6973A5 /* NSUserDefaults-AESEncryptor-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSUserDefaults-AESEncryptor-umbrella.h"; sourceTree = ""; }; + 2FD67541CEE09D3C2271ED7AA056EA66 /* FBSDKBridgeAPIProtocolType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolType.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIProtocolType.h; sourceTree = ""; }; + 302C7F8B1D9823AF2C4EE96924FCC61E /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PEAR_FileManager_iOS.framework; path = "PEAR-FileManager-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3052AA772DE2CAD719E5EE652DF37812 /* FBSDKBridgeAPICrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPICrypto.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPICrypto.h; sourceTree = ""; }; + 309E7F4A693ED8B334F212BAB0212AC2 /* Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Expecta.h; path = Expecta/Expecta.h; sourceTree = ""; }; + 30EC7545AB73154DEEF61A6F98894D7B /* PNObject+Protected.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject+Protected.m"; sourceTree = ""; }; + 30F702F3A87D871886FB2AEEEEC4CB9B /* FBSDKViewImpressionTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKViewImpressionTracker.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKViewImpressionTracker.m; sourceTree = ""; }; + 30F98C69E5EFFB6CA9BFD08B2C2CEFE4 /* libsodium.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = libsodium.framework; path = libsodium.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 30FB5781FE8FFC1D3DE59FEE8F523557 /* SPTCompiledExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCompiledExample.m; path = Specta/Specta/SPTCompiledExample.m; sourceTree = ""; }; + 3101435CD727095B4350AA3D3D056608 /* FBSDKShareDialogMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareDialogMode.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialogMode.m; sourceTree = ""; }; + 316FE2EC4081AA66E778A8FEFD766937 /* SPTCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCallSite.h; path = Specta/Specta/SPTCallSite.h; sourceTree = ""; }; + 322C425C635D5323EAFC2B48375505CD /* FBSDKLikeActionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeActionController.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionController.m; sourceTree = ""; }; + 322E3C08D1ED51FFFADA391F1169C519 /* NARandom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NARandom.m; path = NAChloride/NARandom.m; sourceTree = ""; }; + 3255EC41C0D19A0EBFA08A3A87006FFA /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 32631AB4AD346D596FBEB16E9CC6227B /* StrongestPasswordValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StrongestPasswordValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 32DB6B66A7EAF834F56439019295E63B /* BFMeasurementEvent_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFMeasurementEvent_Internal.h; path = Bolts/iOS/Internal/BFMeasurementEvent_Internal.h; sourceTree = ""; }; + 331FB4814B73F02148C0A9AD40292447 /* BFCancellationTokenSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationTokenSource.h; path = Bolts/Common/BFCancellationTokenSource.h; sourceTree = ""; }; + 33B7BCFD91EFA3D6052DD78F8B8F06A9 /* FBSDKLoginKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKLoginKit-dummy.m"; sourceTree = ""; }; + 33C03EDE823F17000C5735D1CE99E3CC /* FBSDKGraphRequestBody.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestBody.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestBody.h; sourceTree = ""; }; + 341F4CDBE15560352E1D0D5A086EFE0E /* base2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = base2.h; path = src/libsodium/crypto_core/curve25519/ref10/base2.h; sourceTree = ""; }; + 342ACF52EA33E87F02845038E7051B4C /* FBSDKAccessTokenCacheV4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV4.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV4.h; sourceTree = ""; }; + 343149EB2DDA012EF482E643E2F090E1 /* FBSDKLikeBoxBorderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeBoxBorderView.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxBorderView.m; sourceTree = ""; }; + 3486B8C549C079B63B47C4C44CC78231 /* scalarmult_curve25519.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalarmult_curve25519.h; path = src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h; sourceTree = ""; }; + 34952B767AECD9AB6CA9BFC233D02164 /* BFAppLinkReturnToRefererController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkReturnToRefererController.m; path = Bolts/iOS/BFAppLinkReturnToRefererController.m; sourceTree = ""; }; + 34E3727766BA4CB752B84495564C319D /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKCoreKit.framework; path = FBSDKCoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 34F5014DC3A76B6226E7BEBDD90CDC66 /* FBSDKShareConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareConstants.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareConstants.m; sourceTree = ""; }; + 34F50E22DE9EBCCAA4E5718B3900E7FF /* FBSDKLoginManagerLoginResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManagerLoginResult.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManagerLoginResult.m; sourceTree = ""; }; + 35099D2D494A2AE9175A4E3C99A68FDC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3577A20EA78B5BE31C50161AC624B89C /* FBSDKProfilePictureView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKProfilePictureView.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.h; sourceTree = ""; }; + 35A0CF602ECBAEC1A59095AAE8EC925F /* crypto_generichash_blake2b.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_generichash_blake2b.h; path = src/libsodium/include/sodium/crypto_generichash_blake2b.h; sourceTree = ""; }; + 35A87D6483AD7A11EE46A6D4C67F1888 /* libsodium.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libsodium.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 36B37C0D96D2D1C3237740984553CD29 /* DJLocalization-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DJLocalization-dummy.m"; sourceTree = ""; }; + 36F20AB5D57102833B1AEB6565FF72E1 /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; + 370E77BE84691847FBD7D99FB5929BF8 /* FBSDKShareKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKShareKit-umbrella.h"; sourceTree = ""; }; + 3734EA88DD8E8BA31CF93221C5070660 /* argon2-core.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "argon2-core.c"; path = "src/libsodium/crypto_pwhash/argon2/argon2-core.c"; sourceTree = ""; }; + 37374CF0B2B7D65C1E5DE50067ADC278 /* BFAppLinkTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkTarget.h; path = Bolts/iOS/BFAppLinkTarget.h; sourceTree = ""; }; + 3757C2C7E056EEA34BA4575F3DA0B50B /* stream_salsa208_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa208_api.c; path = src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c; sourceTree = ""; }; + 375D8718E072A3D224649ECF3F501B83 /* FBSDKBase64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBase64.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Base64/FBSDKBase64.m; sourceTree = ""; }; + 37C77961C7AE1A6230D00C5A64F39CD5 /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; + 388D415744984E3D384F5B3D3EF63E33 /* NSUserDefaults+AESEncryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+AESEncryptor.h"; path = "NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.h"; sourceTree = ""; }; 389952D5D54C67E70501B09516F08587 /* Pods-PNObject_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-PNObject_Tests.modulemap"; sourceTree = ""; }; - 38A4F5A03D5976C1DBB3F87F56646AAE /* Expecta+Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-prefix.pch"; sourceTree = ""; }; - 39BAA9DC7FFBE4980F899E45EFD3623D /* FBSDKShareDialogMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareDialogMode.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialogMode.m; sourceTree = ""; }; - 3AA9A6A64349C16EE3565915678E22B1 /* nv-ios-http-status-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nv-ios-http-status-prefix.pch"; sourceTree = ""; }; - 3ADF4ACF3DD91183393472E9B317EA98 /* NANSString+Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NANSString+Utils.h"; path = "NACrypto/NANSString+Utils.h"; sourceTree = ""; }; - 3B56946EA105EBEB1A2A6F0A5AC84BAE /* FBSDKKeychainStore.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKKeychainStore.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStore.m; sourceTree = ""; }; - 3B81B6F6D3AB3015A86086577491C7DD /* FBSDKVideoUploader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKVideoUploader.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKVideoUploader.h; sourceTree = ""; }; - 3B8AB2A6B65B6BE832CB517551658CCF /* FBSDKShareLinkContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareLinkContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareLinkContent.h; sourceTree = ""; }; - 3C39A15782878E81810B5BA366A09FF6 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; - 3C3E4EB97135367CE1E5E5DEB5789D40 /* FBSDKAccessTokenCacheV3.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3.m; sourceTree = ""; }; - 3C672335BCBA6BC43669D8B58C67BF95 /* FBSDKShareOpenGraphObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphObject.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.h; sourceTree = ""; }; - 3D0A2092BBB442DC627AA43A934437F0 /* BFAppLinkNavigation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkNavigation.h; path = Bolts/iOS/BFAppLinkNavigation.h; sourceTree = ""; }; - 3D5D159778F4E174968DC771B5425CE8 /* FBSDKHashtag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKHashtag.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKHashtag.h; sourceTree = ""; }; - 3DD923C02CB66F769B4B961BA9888988 /* FBSDKMath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMath.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMath.m; sourceTree = ""; }; - 3E15425875B0FB2D123BA0E4804E648F /* FBSDKUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKUtility.m; sourceTree = ""; }; - 3EC0171C0ECBD86001C43CE86413DBFD /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PEAR_FileManager_iOS.framework; path = "PEAR-FileManager-iOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3ED4218FD3CAE0D01A7CC6A8C4B0048F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3F4AD13E172B2AC3095FFF847709143A /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; - 3F53E2911ECBCF069A36DEE8EC5B6362 /* FBSDKShareError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareError.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareError.h; sourceTree = ""; }; - 3FB61492CE0E1665DB213DD0E7089156 /* NACounter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NACounter.m; path = NACrypto/NACounter.m; sourceTree = ""; }; - 3FCA01355D4AFDEF435F982210BC27E7 /* NSString_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSString_Helper.framework; path = "NSString-Helper.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4151A59A353EA4CFBC1A0EB436FECBB2 /* FBSDKURLSessionTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLSessionTask.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLSessionTask.h; sourceTree = ""; }; - 415858E3B6F3A4426DCDDF2C9F3EE901 /* FBSDKShareOpenGraphAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphAction.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphAction.h; sourceTree = ""; }; - 41621C3BBA0BC3ACD36EC707A19430F2 /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; - 4184C06B684BB4F8446D92BC369E0BF3 /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PEAR_FileManager_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 42002B3D4EA4C2A0A3488A023D109FBA /* FBSDKServerConfigurationManager+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKServerConfigurationManager+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager+Internal.h"; sourceTree = ""; }; - 4206F36137803A80E0484EF7F632C376 /* FBSDKAccessTokenCacheV3_21.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3_21.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_21.m; sourceTree = ""; }; - 4260B08A53FC4D6D1A25C4379D696927 /* FBSDKAudioResourceLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAudioResourceLoader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAudioResourceLoader.h; sourceTree = ""; }; - 428F9DAC75F4F0DE132AA5D2B92CF51F /* NSString-Helper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString-Helper-prefix.pch"; sourceTree = ""; }; - 42AA1AFF246A7217D4E96626E31F0992 /* FBSDKAccessTokenCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCaching.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCaching.h; sourceTree = ""; }; - 42AAAEB591D24578388DDAA152CF46AF /* FBSDKTimeSpentData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTimeSpentData.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.m; sourceTree = ""; }; - 4304D8D293EE6B1C29B284658A9DCF4D /* Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Specta.h; path = Specta/Specta/Specta.h; sourceTree = ""; }; - 4347FEB7DF63BB3CABEB1E68E19C392D /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; - 4395A027B3CE456B3C4352C887C14A63 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - 43EEB5B512F0019685A2FAF5EF453CE3 /* BFAppLink_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLink_Internal.h; path = Bolts/iOS/Internal/BFAppLink_Internal.h; sourceTree = ""; }; - 43FC1616813102032C42F5C6A3C602E0 /* FBSDKTestUsersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTestUsersManager.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.h; sourceTree = ""; }; - 447ADF5E7CAC0ED31D301ED4C24ED97B /* FBSnapshotTestCase-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-umbrella.h"; sourceTree = ""; }; - 4497FEE51180DC29498CAB279818A06E /* NACrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NACrypto.h; path = NACrypto/NACrypto.h; sourceTree = ""; }; - 458CD0674A705929FB323E0643A6AC6A /* FBSDKButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKButton.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKButton.h; sourceTree = ""; }; - 4609AE892A163DC4A0C82B777A4A81A9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 465A6F2EE0C464C01B77ADA202CB6E70 /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; - 4699E8089BA107F636C4AC11232E99EA /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; }; - 4705E496368280532425B75E481C0162 /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - 470F8BAC94E5525E4201E26F04D57F9A /* NSArray+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+PureLayout.h"; path = "PureLayout/PureLayout/NSArray+PureLayout.h"; sourceTree = ""; }; - 474CD421250945A8F6E2893D592972A6 /* FBSDKBase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBase64.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Base64/FBSDKBase64.h; sourceTree = ""; }; - 4759D20AAB336BDBC3B9056107FA257A /* NSUserDefaults_AESEncryptor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSUserDefaults_AESEncryptor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 47E7659564E6E4F80E2981B232B6C273 /* FBSDKSharePhoto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSharePhoto.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhoto.m; sourceTree = ""; }; - 481BC150396B27F83B61C0049CB56A1E /* NANSMutableData+Utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NANSMutableData+Utils.h"; path = "NACrypto/NANSMutableData+Utils.h"; sourceTree = ""; }; - 4936DFF5F014C24A4B927F5A7EB5012A /* UIApplication+StrictKeyWindow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+StrictKeyWindow.h"; path = "FBSnapshotTestCase/Categories/UIApplication+StrictKeyWindow.h"; sourceTree = ""; }; - 49C44EE3CC547E21809656CAD4388943 /* Specta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-umbrella.h"; sourceTree = ""; }; - 49D6C9FEEE6E9D2DBD7CA66A82900AE7 /* NASHA3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NASHA3.h; path = NACrypto/NASHA3.h; sourceTree = ""; }; - 4A7BB9A736BF390C36A28FA07BE5AB40 /* BFAppLinkReturnToRefererView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkReturnToRefererView.m; path = Bolts/iOS/BFAppLinkReturnToRefererView.m; sourceTree = ""; }; - 4AE193317E92BF7209AEAB5D91AC56D8 /* FBSDKApplicationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKApplicationDelegate.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.m; sourceTree = ""; }; - 4BD0BC36A8CE73D3725E8C14B7366C3E /* CodFisResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CodFisResponse.h; path = "CodFis-Helper/CodFisResponse.h"; sourceTree = ""; }; - 4BE029CF72986C651D3C2F0805BCA8C3 /* FBSDKAppInviteContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppInviteContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteContent.h; sourceTree = ""; }; - 4C0EA23BBC862E723D7512958E303D0C /* FBSDKShareKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKShareKit-prefix.pch"; sourceTree = ""; }; - 4C58278E7A9DD226B3CF5DE1578F5D66 /* FBSDKHashtag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKHashtag.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKHashtag.m; sourceTree = ""; }; - 4CA6A1B7E083846C92EA529F4F6C1663 /* FBSDKAppEventsStateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsStateManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.h; sourceTree = ""; }; - 4D067086759355C60A5EDCF21F45A6B1 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - 4D1EA21A6B45CD2D06417B55647B75B7 /* FBSDKLoginManagerLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManagerLogger.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.h; sourceTree = ""; }; - 4D7E2E6BFACD8E6C0BA311DEAD667E7B /* DJLocalization-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DJLocalization-dummy.m"; sourceTree = ""; }; - 4E244A8BBFD6CDA87EA43C8365D67623 /* FBSDKLikeDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeDialog.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeDialog.m; sourceTree = ""; }; - 4E639CE85C661D2400F470B1338A14B0 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; - 4E8FC4EDE5FEE97057A1337065B935BD /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; - 4ECC878388EF2166736E14B5F4A0C820 /* CocoaSecurity.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CocoaSecurity.xcconfig; sourceTree = ""; }; - 4F47309E9EEF9C78B5D444F294EBE640 /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PureLayout.framework; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4FA761348BB94295BB18E8CB7DC857C2 /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; - 4FC0A1D433AC4ADEF49F70DBB499475E /* FBSDKAppEvents.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEvents.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppEvents.h; sourceTree = ""; }; - 4FF20F427822ADBE16D38081703B59C1 /* PNObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObject.m; sourceTree = ""; }; + 38C9940BB9C1C127DCF1EAD73C320D23 /* PNObjectUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectUtilities.h; sourceTree = ""; }; + 3915C75350E3544A6F43EC67B34DEBA0 /* poly1305_donna32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = poly1305_donna32.h; path = src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h; sourceTree = ""; }; + 3966AA9EBFD5A1105002E282CE232C4E /* blake2b-load-sse41.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-load-sse41.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h"; sourceTree = ""; }; + 39CFAB085189080C8BCF3E62E932AA4C /* DDDKeychainWrapper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DDDKeychainWrapper.xcconfig; sourceTree = ""; }; + 3A085B948AB13EA2AA87027B5C636FFB /* AFOAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFOAuthCredential.h; sourceTree = ""; }; + 3A79257FA928887697AF40D77207387E /* stream_chacha20_vec.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_chacha20_vec.c; path = src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c; sourceTree = ""; }; + 3A911FC4DF132AFEEB56163CF834B2F1 /* crypto_shorthash.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_shorthash.c; path = src/libsodium/crypto_shorthash/crypto_shorthash.c; sourceTree = ""; }; + 3B0201EEF902280B29393B8FCDE974E5 /* fe51_invert.c */ = {isa = PBXFileReference; includeInIndex = 1; name = fe51_invert.c; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c; sourceTree = ""; }; + 3BE1B5CF1F3221906E61F33145FFFF28 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3BFCB42ED2965D95D67B6E928ABA4C8C /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; + 3C47C253F72B48CB919963954E600E31 /* FBSDKLikeBoxView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeBoxView.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxView.m; sourceTree = ""; }; + 3C4AA79EF438877E9393B31F74C008EF /* FBSDKLoginCompletion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginCompletion.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion.h; sourceTree = ""; }; + 3C8635E06AAD0C290626CB0D3C8CE75B /* EXPMatchers+beSubclassOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSubclassOf.h"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.h"; sourceTree = ""; }; + 3C8F33738B0CC4C3EFB3054384516158 /* xor_salsa2012.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xor_salsa2012.c; path = src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c; sourceTree = ""; }; + 3CD177A6281B2C0C3E95B9468BC598C3 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; }; + 3D285934B6DBD43A00EDE3503B8399A1 /* crypto_auth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_auth.h; path = src/libsodium/include/sodium/crypto_auth.h; sourceTree = ""; }; + 3D5E00F20284CA0832166DE7BE826067 /* fe.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fe.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h; sourceTree = ""; }; + 3D984886C2F35C331C2D3F8911E94DD3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3D9BDDFF0B85CF62C2D4FD8D4A2F2095 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + 3DA2A818CF81E09EBF8859E8CA828FF2 /* NSString+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Helper.h"; path = "NSString-Helper/NSString+Helper.h"; sourceTree = ""; }; + 3DAD3029A0FD42251CB37AC25A55D548 /* BFURL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFURL.m; path = Bolts/iOS/BFURL.m; sourceTree = ""; }; + 3DBCF2EC01FB92EA925C9D2536A04A8C /* FBSDKCloseIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCloseIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKCloseIcon.m; sourceTree = ""; }; + 3E01992BBE68FFAE711A7E6FD169757D /* box_curve25519xsalsa20poly1305_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = box_curve25519xsalsa20poly1305_api.c; path = src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c; sourceTree = ""; }; + 3EE357BF90C7F13D9AB1AAA11AE1B1A8 /* FBSDKApplicationDelegate+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKApplicationDelegate+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKApplicationDelegate+Internal.h"; sourceTree = ""; }; + 3F053212722F80C0D67E774DAF857B3E /* PNObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObject.m; sourceTree = ""; }; + 3F47D26FA005F61989CC1BBDE4422C2F /* FBSDKGraphRequestPiggybackManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestPiggybackManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestPiggybackManager.m; sourceTree = ""; }; + 3FEF639D510D91524F2E1EE1273801B6 /* FBSDKAccessTokenCacheV4.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV4.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV4.m; sourceTree = ""; }; + 3FF8EB2108DC766DB0E4D3EFB013CB99 /* crypto_uint16.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_uint16.h; path = src/libsodium/include/sodium/crypto_uint16.h; sourceTree = ""; }; + 411D8610D1CF78ADD94DE70C1D7C62DB /* FBSDKShareOpenGraphObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphObject.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.h; sourceTree = ""; }; + 4134326CBBAC62847306B034A837ACCE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4143E609D6291527258197A50CD89EF2 /* FBSDKBridgeAPIProtocolWebV2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolWebV2.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV2.h; sourceTree = ""; }; + 41A1C8EACC834BF09C5C71CC2771EE38 /* argon2-encoding.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "argon2-encoding.c"; path = "src/libsodium/crypto_pwhash/argon2/argon2-encoding.c"; sourceTree = ""; }; + 41C95340DBD76DAED311D9F5863C3DCC /* blake2b-compress-avx2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-compress-avx2.c"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.c"; sourceTree = ""; }; + 4202D15E1D6BD57DA2119EB5A76FC3D6 /* sign_ed25519_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sign_ed25519_api.c; path = src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c; sourceTree = ""; }; + 4292D57EE74911B3D2FE3686AD4B570A /* NSLayoutConstraint+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PureLayout.m"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.m"; sourceTree = ""; }; + 42AF1460F8B1FB4AB6B14E14E17CB391 /* StrongestPasswordValidator-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "StrongestPasswordValidator-prefix.pch"; sourceTree = ""; }; + 43240865F73425343A86482BFDE8200F /* PNObject-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject-prefix.pch"; sourceTree = ""; }; + 43BD52F4F4F6D3F1E30F01B71E971F6C /* FBSDKTypeUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTypeUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTypeUtility.m; sourceTree = ""; }; + 44295DFCD56D216D9612F89E237FD362 /* FBSDKCoreKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKCoreKit.xcconfig; sourceTree = ""; }; + 442D0B9D30C124A47432E266E187A1F0 /* CodFis-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "CodFis-Helper.xcconfig"; sourceTree = ""; }; + 44542F0DE0EFAB6797C919B75EFF7542 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + 448F29344CA8014335723031F87D27D2 /* NABoxKeypair.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NABoxKeypair.m; path = NAChloride/NABoxKeypair.m; sourceTree = ""; }; + 44DB34B5125735E4E5EF6D363C5F1D0E /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "UIKit+AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + 44E5999687853598145768A78C16B2A5 /* xor_salsa208.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xor_salsa208.c; path = src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c; sourceTree = ""; }; + 455672BB920BDD0C92D257A7B55C290A /* SPTExampleGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExampleGroup.h; path = Specta/Specta/SPTExampleGroup.h; sourceTree = ""; }; + 45FB5EA76EA3DD47B7A69162B47CFBE7 /* FBSDKAccessToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessToken.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAccessToken.m; sourceTree = ""; }; + 4601C088CCD5D719C4C3B7F8646FD718 /* FBSDKURLSessionTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLSessionTask.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLSessionTask.h; sourceTree = ""; }; + 4632BA4F017A5E24A2F05BC2273F21A2 /* PNInstallation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNInstallation.m; sourceTree = ""; }; + 463CE79B4901A3CF1976C41C0CA3EBF5 /* crypto_stream_xsalsa20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_xsalsa20.h; path = src/libsodium/include/sodium/crypto_stream_xsalsa20.h; sourceTree = ""; }; + 4696FF898A7108B34D96420A6C436E96 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + 46A504768546F50D6357816DDE8B6D12 /* FBSDKGraphRequestMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestMetadata.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.h; sourceTree = ""; }; + 4737A21F569AB5366F03050B6F159299 /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; }; + 4754ADEA38BAD33AB1E0EF17E34BBA56 /* PureLayoutDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayoutDefines.h; path = PureLayout/PureLayout/PureLayoutDefines.h; sourceTree = ""; }; + 479DB5A36B858CCA9817F1E3583FF345 /* core_hchacha20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_hchacha20.c; path = src/libsodium/crypto_core/hchacha20/core_hchacha20.c; sourceTree = ""; }; + 47B88A29488F570668211F90DCBE5FA6 /* core_salsa20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa20.c; path = src/libsodium/crypto_core/salsa20/ref/core_salsa20.c; sourceTree = ""; }; + 47F8EDBC2CBA79C3806D586607A29E04 /* FBSDKMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMacros.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMacros.h; sourceTree = ""; }; + 483DFE460F7A1A3870F597F3B4F737B8 /* FBSDKVideoUploader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKVideoUploader.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKVideoUploader.m; sourceTree = ""; }; + 4890D40E53B5BD047D91E9BBC3F99DE4 /* NARandom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NARandom.h; path = NAChloride/NARandom.h; sourceTree = ""; }; + 48E228BBADAA843F8B59EC2DA33EB927 /* onetimeauth_poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = onetimeauth_poly1305.c; path = src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c; sourceTree = ""; }; + 48FF773660157C72D2948659A43FCDB0 /* FBSDKShareVideoContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareVideoContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideoContent.h; sourceTree = ""; }; + 4966B0CE5DD9FDDE83C3AE15089135AC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4994CAACD23B9FA15759B106DCDBC455 /* FBSDKMath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMath.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMath.h; sourceTree = ""; }; + 499F954FAC2B6CD629B8707719DA741B /* FBSDKInternalUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKInternalUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m; sourceTree = ""; }; + 49C77CFBC5353DB1E263E176CB6AE291 /* SPTSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSpec.m; path = Specta/Specta/SPTSpec.m; sourceTree = ""; }; + 49C98BB1DC3F7EEF31077D3F8D6DB1C3 /* before_curve25519xsalsa20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = before_curve25519xsalsa20poly1305.c; path = src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c; sourceTree = ""; }; + 4A208D5B035A30529CDE23C4225ED836 /* SPTCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCallSite.m; path = Specta/Specta/SPTCallSite.m; sourceTree = ""; }; + 4A2A23E1989BBECE68491AF336644687 /* FBSDKBridgeAPICrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPICrypto.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPICrypto.m; sourceTree = ""; }; + 4A57AF6905B0A3803B0448EC6710C4DC /* FBSDKAccessTokenCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCaching.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCaching.h; sourceTree = ""; }; + 4A6F7F939DBABDF993FA40E0B6518D0B /* EXPMatchers+beCloseTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beCloseTo.h"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.h"; sourceTree = ""; }; + 4A734DE7CBD23BC300C46C12007ADDBE /* FBSDKProfilePictureView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKProfilePictureView.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.m; sourceTree = ""; }; + 4A9CB77E9AEE3CC25EBF13E70B9DC096 /* BFCancellationTokenRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationTokenRegistration.h; path = Bolts/Common/BFCancellationTokenRegistration.h; sourceTree = ""; }; + 4AD44711F47E37A188D1512E034C1369 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; + 4B0A9291DC8444DE10CB9E94265194B7 /* FBSDKSharePhotoContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharePhotoContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhotoContent.h; sourceTree = ""; }; + 4B7A7D9F88C44A4C80AB79F137A5D533 /* NAChloride.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NAChloride.framework; path = NAChloride.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4BF1B6793C01C3E0F0647C6A9F5CE0B5 /* FBSDKLikeControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeControl.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeControl.m; sourceTree = ""; }; + 4C27E72560C3001B02464B7B13AFDCE8 /* EXPMatchers+beSupersetOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSupersetOf.m"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.m"; sourceTree = ""; }; + 4C76D7F12BF1AC4B05069FC9D7193F31 /* FBSDKProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKProfile.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfile.m; sourceTree = ""; }; + 4CF106BBE0C8EF0576727B11F7FE3B96 /* FBSDKSharingButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharingButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharingButton.h; sourceTree = ""; }; + 4D15E0F86C11063FA7A39BC2F95D73F4 /* PEARFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PEARFileManager.m; path = "PEAR-FileManager-iOS/PEARFileManager.m"; sourceTree = ""; }; + 4D6D3ADE4C608E25DF2C86A7CABC254E /* hash_sha256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hash_sha256.c; path = src/libsodium/crypto_hash/sha256/cp/hash_sha256.c; sourceTree = ""; }; + 4D7205E65B96CF46A23004AB1C5B5100 /* box_xsalsa20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = box_xsalsa20poly1305.c; path = src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c; sourceTree = ""; }; + 4EB71EDF21A46CBC44A08A5D19EF6AFB /* UIDevice-Hardware.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice-Hardware.m"; path = "Pod/Classes/UIDevice-Hardware.m"; sourceTree = ""; }; + 4EB7CD599A5F5DA2CF920EB72E3B061A /* FBSDKAppGroupJoinDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupJoinDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupJoinDialog.h; sourceTree = ""; }; + 4F36A66486C813755A43D2D61E3DB1CA /* PNObjcPassword.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjcPassword.m; sourceTree = ""; }; + 4F82996142DDC8BD8C0855A772155884 /* FBSDKProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKProfile.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfile.h; sourceTree = ""; }; 5041E2A91C7A8740358698C67EC25A89 /* Pods-PNObject_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNObject_Example-acknowledgements.plist"; sourceTree = ""; }; - 506805DEEDDE08004B6C60B624ADA2FE /* XCTestCase+Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTestCase+Specta.h"; path = "Specta/Specta/XCTestCase+Specta.h"; sourceTree = ""; }; - 507D5F118E2F4914BCC8D5518D40E76F /* FBSDKGraphRequestPiggybackManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestPiggybackManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestPiggybackManager.m; sourceTree = ""; }; - 50A1B0AF487D3AA1EEE6FAF14D79420D /* EXPMatchers+beTruthy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beTruthy.m"; path = "Expecta/Matchers/EXPMatchers+beTruthy.m"; sourceTree = ""; }; - 50B56FF6826C1313E3459183EBD53AEA /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; - 514DAD23FF33C1676055C6CA7CBA9534 /* FBSDKApplicationDelegate+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKApplicationDelegate+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKApplicationDelegate+Internal.h"; sourceTree = ""; }; - 516FBF4A64B2838556625012D16474D4 /* FBSDKURLOpening.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLOpening.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKURLOpening.h; sourceTree = ""; }; - 5177854A5C1459E073476F2610497897 /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; - 51B411D0CD70D2B238514A0417E6A258 /* FBSDKColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKColor.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.m; sourceTree = ""; }; - 51C7F2450604283410B7B4253D935DD8 /* Expecta+Snapshots-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta+Snapshots-dummy.m"; sourceTree = ""; }; - 51E305BB7A4F4C097D78DAE6F4B0A3FD /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; - 5209CD5C349A2E27BEA614B424AA9C4D /* FBSDKAppLinkResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppLinkResolver.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkResolver.h; sourceTree = ""; }; - 527791C0AC83FBA23B4AE92DF9D6BBF4 /* FBSDKShareLinkContent+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareLinkContent+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareLinkContent+Internal.h"; sourceTree = ""; }; - 5368029F8A6D242D4309CFEEB7624772 /* SPTExampleGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExampleGroup.m; path = Specta/Specta/SPTExampleGroup.m; sourceTree = ""; }; - 536C23ADA0C6D380428BC6FD94DBB06B /* EXPMatchers+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+FBSnapshotTest.m"; sourceTree = ""; }; - 53860B6F9EB37047AED55A1CA8341C72 /* NSDate_Utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = NSDate_Utils.modulemap; sourceTree = ""; }; - 53CA3E0151B30FA28F1A6B3A5DA4C53B /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - 541AA24AAB5A60B6A523BD8A58C8E53D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 54FEF1C88AC14BE6ABC0C4EA760C0534 /* PNObject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PNObject.framework; path = PNObject.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 55088D0601CF9A073F06D51206D4E8C8 /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; - 55335B437B11074030382412CD588BFC /* FBSDKGameRequestFrictionlessRecipientCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestFrictionlessRecipientCache.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKGameRequestFrictionlessRecipientCache.m; sourceTree = ""; }; - 55DE6C6BA3D7F88720B2E5B12940A5EC /* FBSDKAppEvents+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKAppEvents+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEvents+Internal.h"; sourceTree = ""; }; - 560963BCCEC7A4C877B134897344605A /* ExpectaObject+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ExpectaObject+FBSnapshotTest.m"; sourceTree = ""; }; - 5672B640956F6D68DAA57B839B52961B /* KeccakF-1600-32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-32.h"; path = "NACrypto/keccak/KeccakF-1600-32.h"; sourceTree = ""; }; - 5699427E1DA4485996D9ED960B20C757 /* RZDataBinding.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RZDataBinding.modulemap; sourceTree = ""; }; - 56FEFB1C9EE71FF0FDB37F5C27961D66 /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; - 572CE80B0D48B24A5005ED91A50A1892 /* FBSDKLikeBoxView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeBoxView.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxView.m; sourceTree = ""; }; - 57AF277DA5E703D362EE18AC42F3561D /* FBSDKLikeControl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeControl.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeControl.m; sourceTree = ""; }; - 57BEF7F8A63F66C2EEC1715792D47C77 /* FBSDKMutableCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMutableCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMutableCopying.h; sourceTree = ""; }; - 58725A1EBBD5FE567830D8C6114DD6F5 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5882C885BB1ED18A7E7318B55B477ADC /* FBSDKDeviceRequestsHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDeviceRequestsHelper.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDeviceRequestsHelper.h; sourceTree = ""; }; - 58FF555496033DE0A4E381933C7BB476 /* PureLayout-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-umbrella.h"; sourceTree = ""; }; - 5923ED2E0F83E6A85F380B20B407523E /* VatNumber+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VatNumber+Helper.h"; path = "CodFis-Helper/VatNumber+Helper.h"; sourceTree = ""; }; - 595A86264A6A665BF717BE5ADE515F51 /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; - 5992AEA8692665BE5B3873BF97E96538 /* DJLocalization.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DJLocalization.xcconfig; sourceTree = ""; }; - 5A1966363F904E7B4765D654759B77F9 /* RZDataBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RZDataBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5A2F057BCFFB56AB1A75E59F06F1C00E /* PNObjectModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectModel.m; sourceTree = ""; }; - 5A6BA2E2C6684138F55A37C03F478DD6 /* FBSDKLoginKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKLoginKit-prefix.pch"; sourceTree = ""; }; - 5AADC5F17369A380BDB4D76D93CC71CD /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; - 5B1A0B544E28B59FBF97283679BCA0B2 /* EXPMatchers+beGreaterThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThan.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.h"; sourceTree = ""; }; - 5BAEE53309D5126D128429931855124A /* NATwoFish.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NATwoFish.m; path = NACrypto/NATwoFish.m; sourceTree = ""; }; - 5BCFD8FB72018441F27D846509EC0678 /* EXPMatchers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatchers.h; path = Expecta/Matchers/EXPMatchers.h; sourceTree = ""; }; - 5C01CC6950B105814F11C9D5506B17D4 /* NSObject+RZDataBinding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RZDataBinding.m"; path = "RZDataBinding/NSObject+RZDataBinding.m"; sourceTree = ""; }; - 5C5251D4E2944A644061FF4656C1DE07 /* FBSDKSharingButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharingButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharingButton.h; sourceTree = ""; }; - 5C6DFABB2B0F7A47BD48232CB84CBFD6 /* NSUserDefaults-AESEncryptor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "NSUserDefaults-AESEncryptor.modulemap"; sourceTree = ""; }; - 5D02942A80190ABCBB54B18FF63C4C2C /* FBSDKAudioResourceLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAudioResourceLoader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAudioResourceLoader.m; sourceTree = ""; }; - 5E24E9800D562CA08C615F0C9AEDD892 /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; - 5F88DF088FA82BF589AEAB9B984573D5 /* FBSDKAppEventsDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsDeviceInfo.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsDeviceInfo.m; sourceTree = ""; }; - 6000156BBC8ED8E6CF3508A762B71750 /* CocoaSecurity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CocoaSecurity.framework; path = CocoaSecurity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 601074D15BBB17DE13E6B103DD07669E /* UIDevice-Utils-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDevice-Utils-umbrella.h"; sourceTree = ""; }; - 603A8BA299C0A96AC1B38A33FE61C96D /* FBSDKGameRequestFrictionlessRecipientCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestFrictionlessRecipientCache.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKGameRequestFrictionlessRecipientCache.h; sourceTree = ""; }; - 60A96753D8688251F745E74ACC0E7854 /* FBSDKErrorConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorConfiguration.h; sourceTree = ""; }; + 5056E005BD9F6529BC54EE2CB3D3D7FC /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; + 50622BB6317A23A9C92E54BFB8A6C955 /* FBSDKShareVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareVideo.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideo.h; sourceTree = ""; }; + 5073E7257F054EA1AF23D1B1BA2F0488 /* FBSDKLikeBoxView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeBoxView.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxView.h; sourceTree = ""; }; + 50DEBE524C73841D765F8F4E9E16F669 /* FBSDKLoginManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManager.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.m; sourceTree = ""; }; + 50F150B1464EB72E6AA842B3A75027D3 /* afternm_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = afternm_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c; sourceTree = ""; }; + 50FEEC598B728E92965D17F238B3D2CB /* PEAR-FileManager-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-umbrella.h"; sourceTree = ""; }; + 512A96CFB549C537BE0C1FC1D8AEEE87 /* DDDKeychainWrapper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DDDKeychainWrapper-dummy.m"; sourceTree = ""; }; + 514B539AFFD475BB369A73AB852B806F /* crypto_int32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_int32.h; path = src/libsodium/include/sodium/crypto_int32.h; sourceTree = ""; }; + 518EEF13F00BD7DE3313C5C837C1518B /* aead_aes256gcm_aesni.c */ = {isa = PBXFileReference; includeInIndex = 1; name = aead_aes256gcm_aesni.c; path = src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c; sourceTree = ""; }; + 51E5DF983237E671D607EA92EC6456F9 /* SPTTestSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTTestSuite.m; path = Specta/Specta/SPTTestSuite.m; sourceTree = ""; }; + 520BC3C3AEE86D7AC21F89C1DD8A1F76 /* Base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Base64.h; path = submodules/Base64/Base64/Base64.h; sourceTree = ""; }; + 52984D482E13C4BEAED254A02E3EAE4E /* BFCancellationToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationToken.m; path = Bolts/Common/BFCancellationToken.m; sourceTree = ""; }; + 52C6CD323254C863EF6EB99FB259C48C /* FBSDKShareMediaContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareMediaContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareMediaContent.m; sourceTree = ""; }; + 52EFE125A976D9D12C89B892163BDC76 /* utils.c */ = {isa = PBXFileReference; includeInIndex = 1; name = utils.c; path = src/libsodium/sodium/utils.c; sourceTree = ""; }; + 530A75C9CCCB1A8DC2D52BA689806A6E /* BFAppLinkTarget.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkTarget.m; path = Bolts/iOS/BFAppLinkTarget.m; sourceTree = ""; }; + 530E79C87B5E59CC6E99610FD88FE796 /* FBSDKMaleSilhouetteIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMaleSilhouetteIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKMaleSilhouetteIcon.h; sourceTree = ""; }; + 53306921A83FB1DEC9165BF254712B01 /* FBSDKServerConfigurationManager+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKServerConfigurationManager+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager+Internal.h"; sourceTree = ""; }; + 5351CBCD639F6914F19C9558AACD2F49 /* randombytes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = randombytes.h; path = src/libsodium/include/sodium/randombytes.h; sourceTree = ""; }; + 5372DF5CC5195112E6CD914D05D9264D /* CodFisResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CodFisResponse.m; path = "CodFis-Helper/CodFisResponse.m"; sourceTree = ""; }; + 53AEDDB830582CEBF44836F984666BA7 /* FBSDKServerConfiguration+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKServerConfiguration+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration+Internal.h"; sourceTree = ""; }; + 53EF7FCCCB4826E256F4AB3BA520787F /* NASecureData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NASecureData.m; path = NAChloride/NASecureData.m; sourceTree = ""; }; + 54349C2A111801AD356A28301D985701 /* stream_chacha20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_chacha20.c; path = src/libsodium/crypto_stream/chacha20/stream_chacha20.c; sourceTree = ""; }; + 544AEB5510BE2FDE2C6681C0DED40B2D /* stream_chacha20_vec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stream_chacha20_vec.h; path = src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h; sourceTree = ""; }; + 5459CF8273BEDF198F053FB8F61A1034 /* pwhash_scryptsalsa208sha256_nosse.c */ = {isa = PBXFileReference; includeInIndex = 1; name = pwhash_scryptsalsa208sha256_nosse.c; path = src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c; sourceTree = ""; }; + 546C644E4CB472B8918C158D266B9BDE /* BFCancellationTokenRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationTokenRegistration.m; path = Bolts/Common/BFCancellationTokenRegistration.m; sourceTree = ""; }; + 5478E1941918AFFA7F218468D0BD9BA1 /* FBSDKError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKError.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKError.m; sourceTree = ""; }; + 54A7B433BEDEDE11B47AA50D5C940463 /* EXPMatchers+beTruthy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beTruthy.h"; path = "Expecta/Matchers/EXPMatchers+beTruthy.h"; sourceTree = ""; }; + 54D46559E281440FAB67996E24BBDF07 /* stream_salsa208.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa208.c; path = src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c; sourceTree = ""; }; + 54EE9E442BB6CE39737ABDC46A0A48DD /* ladder_base.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ladder_base.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h; sourceTree = ""; }; + 55077EA82B4A4601E54DA49E11BC3F60 /* core_salsa208.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa208.c; path = src/libsodium/crypto_core/salsa208/ref/core_salsa208.c; sourceTree = ""; }; + 551594B34EF6F1866BDE9A98A54DF271 /* NSUserDefaults-AESEncryptor.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "NSUserDefaults-AESEncryptor.xcconfig"; sourceTree = ""; }; + 555428BFE41981FBE1244DA9685ED649 /* FBSDKLikeButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeButton.m; sourceTree = ""; }; + 5594840934B43867F0C3FBEFD6C80431 /* FBSDKAudioResourceLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAudioResourceLoader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAudioResourceLoader.m; sourceTree = ""; }; + 55EA69A40943F629F212D1456DC9D1F4 /* SPTExampleGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExampleGroup.m; path = Specta/Specta/SPTExampleGroup.m; sourceTree = ""; }; + 55FA2DCCC07A15D1CCC42A68194C13D6 /* xor_salsa20_ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xor_salsa20_ref.c; path = src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c; sourceTree = ""; }; + 562203D2D17EF8600EE10FC44583B09A /* crypto_shorthash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_shorthash.h; path = src/libsodium/include/sodium/crypto_shorthash.h; sourceTree = ""; }; + 5623D207D86EB179DF524C6167E09D0F /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; }; + 562E2177DEC8B77BCD35381F5293B99E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 56393CABDB541B464B5BA3AA0CFE6C5E /* FBSDKLikeButtonPopWAV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeButtonPopWAV.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButtonPopWAV.h; sourceTree = ""; }; + 5645B53E676DEDD3792D46771FA9D3FA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 56CFA1A1AD0B6A6E7F05164C92B3962F /* crypto_auth_hmacsha512.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_auth_hmacsha512.h; path = src/libsodium/include/sodium/crypto_auth_hmacsha512.h; sourceTree = ""; }; + 573782436DAD7DB436E7070E94D0C79A /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CodFis_Helper.framework; path = "CodFis-Helper.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5762845029182E805500700F526FB58B /* FBSDKLogo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLogo.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKLogo.h; sourceTree = ""; }; + 57681418D92C93CC771883C2322802A1 /* argon2-encoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "argon2-encoding.h"; path = "src/libsodium/crypto_pwhash/argon2/argon2-encoding.h"; sourceTree = ""; }; + 5798BB58E5A4C272EB00DF02670DFDF4 /* EXPMatchers+haveCountOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+haveCountOf.m"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.m"; sourceTree = ""; }; + 579B8A077A2DF5BBCB58EC0AA044E585 /* blake2b-compress-ssse3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-compress-ssse3.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.h"; sourceTree = ""; }; + 57B74DD83697A809FE906046BF527C02 /* after_curve25519xsalsa20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = after_curve25519xsalsa20poly1305.c; path = src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c; sourceTree = ""; }; + 57C295097BAC010F26E71FF8AD0495BE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 57DA5C7A39F26C8BADA43C1CF311E4A4 /* ladder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ladder.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h; sourceTree = ""; }; + 5858E50039DDC6F15B8516B46EA070A1 /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + 58FFFC4A75B598DA0E8A753CF5013877 /* RZDataBinding.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = RZDataBinding.modulemap; sourceTree = ""; }; + 598AC13B3A4AE39E13484D337C71A232 /* BFMeasurementEvent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFMeasurementEvent.h; path = Bolts/iOS/BFMeasurementEvent.h; sourceTree = ""; }; + 59C11F1659AF449855CE1E5B73182628 /* FBSDKHashtag.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKHashtag.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKHashtag.m; sourceTree = ""; }; + 59F50AE399A8D6957F9F128C990B8801 /* BFAppLinkReturnToRefererView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkReturnToRefererView.m; path = Bolts/iOS/BFAppLinkReturnToRefererView.m; sourceTree = ""; }; + 5A789B5A178E915A14CD7CBDF208E48D /* crypto_generichash.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_generichash.c; path = src/libsodium/crypto_generichash/crypto_generichash.c; sourceTree = ""; }; + 5AAE775A1FEB13F35478BEC77EDB5F4A /* DJLocalizationSystem+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DJLocalizationSystem+Private.h"; path = "DJLocalization/DJLocalizationSystem+Private.h"; sourceTree = ""; }; + 5B8AD6EEC3134E59723A3D25848F7EAC /* crypto_scalarmult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_scalarmult.h; path = src/libsodium/include/sodium/crypto_scalarmult.h; sourceTree = ""; }; + 5CCBBF305D6E1315443B9AA0C9D9BA93 /* FBSDKContainerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKContainerViewController.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.h; sourceTree = ""; }; + 5DB4C3AE95BC006396C052A019053136 /* FBSDKShareLinkContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareLinkContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareLinkContent.m; sourceTree = ""; }; + 5DD9077DC747F9732E094A2F04237833 /* FBSDKLikeControl+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLikeControl+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeControl+Internal.h"; sourceTree = ""; }; + 5DF3AAB1393DFE66F6EC89A7EBE5375C /* EXPUnsupportedObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPUnsupportedObject.h; path = Expecta/EXPUnsupportedObject.h; sourceTree = ""; }; + 5EB514DC6115D3270FBC7FFCBC820D8E /* FBSDKButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKButton.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKButton.m; sourceTree = ""; }; + 5F084ECAF840E2E9F8D00547580C4A9B /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; + 5F3EDA2FD8A07BBCE753D23FBC30C3BA /* FBSDKGraphRequestDataAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestDataAttachment.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestDataAttachment.h; sourceTree = ""; }; + 5F6E80DAEC9AC48215F95437485AC6B9 /* pbkdf2-sha256.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "pbkdf2-sha256.h"; path = "src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h"; sourceTree = ""; }; + 5F806B5C30B750914483A6CC8C775060 /* stream_chacha20_ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_chacha20_ref.c; path = src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c; sourceTree = ""; }; + 5FA14301BED9F5D0CA1A4D31098C0CF2 /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = ""; }; + 5FEA5B6192F7B2A7AF470AB672490632 /* CocoaSecurity.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = CocoaSecurity.modulemap; sourceTree = ""; }; + 5FF73C120486B256A84743F63F673833 /* stream_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c; sourceTree = ""; }; + 601777A55214AB3AB35DE65CAC520B77 /* StrongestPasswordValidator.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = StrongestPasswordValidator.xcconfig; sourceTree = ""; }; + 602FE5778CD81D3CE44910029986427C /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; + 60AFBF7DD3257FE12798A1808A0B1062 /* FBSDKKeychainStoreViaBundleID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKKeychainStoreViaBundleID.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStoreViaBundleID.m; sourceTree = ""; }; + 60B1CCDA270E221FD14BEFB412C23BCF /* PNUser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNUser.h; sourceTree = ""; }; 60B530196848B62AA6D54AEEB46A06D8 /* Pods-PNObject_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNObject_Example-dummy.m"; sourceTree = ""; }; - 60CB1F9499817DB3B81C5063CC8C7D8B /* Bolts-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Bolts-dummy.m"; sourceTree = ""; }; - 6124ABECEA4AAB91B87B8E26E51100E5 /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; - 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 617F95AF1E901768B752A7512E79ABF7 /* FBSDKSendButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSendButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSendButton.h; sourceTree = ""; }; - 61880534ED324A24E6D3B163618EA157 /* FBSDKBridgeAPIProtocolWebV2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolWebV2.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV2.m; sourceTree = ""; }; - 61C5BFA52AD671087017F84C858A14A6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 61E4A59C8C8510725A4FF3F8E8DE7B1B /* FBSDKShareButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareButton.m; sourceTree = ""; }; - 61FDF2526FEB3566B2DCA751829C06B2 /* KeccakSponge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KeccakSponge.h; path = NACrypto/keccak/KeccakSponge.h; sourceTree = ""; }; - 622255FA7A15F311A1E96F47F740A15C /* FBSDKProfilePictureView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKProfilePictureView.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.h; sourceTree = ""; }; - 62B787FDFE46F8CBF92C1BFAF264100A /* PNObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObject.h; sourceTree = ""; }; - 63567449BD9137631A2221AE7BFA3913 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 64146C7F3745CDB1C7EE61EEBDB1A0C7 /* BFAppLinkReturnToRefererController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkReturnToRefererController.m; path = Bolts/iOS/BFAppLinkReturnToRefererController.m; sourceTree = ""; }; - 6524845A5C3F57EB6CBAB30F02118D9A /* Expecta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-prefix.pch"; sourceTree = ""; }; - 65FF525DCD3D1A77C649951BD06DF38C /* FBSDKLoginManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManager.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.h; sourceTree = ""; }; - 6672D287D1F7B8F270415F88AACE7F1E /* FBSDKShareKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareKit+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareKit+Internal.h"; sourceTree = ""; }; - 672F1E403935415898FBF93433CBD9BC /* FBSDKURLSessionTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKURLSessionTask.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLSessionTask.m; sourceTree = ""; }; - 676B4C88C734DD4F1508DE14CECD8182 /* EXPMatchers+beNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beNil.m"; path = "Expecta/Matchers/EXPMatchers+beNil.m"; sourceTree = ""; }; - 6823C9F7B4C6D8C06A7E98E592A6C669 /* FBSDKLikeBoxBorderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeBoxBorderView.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxBorderView.h; sourceTree = ""; }; - 6840D39EED7F0BE02879A035AE1A6910 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; - 68972A27C3CF6E198076F82DECBC6DB1 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - 6958B7DE781469EB21BC81F0DFCF78EE /* BFCancellationToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationToken.h; path = Bolts/Common/BFCancellationToken.h; sourceTree = ""; }; - 697684E440C5DD4889849A82003BCF8E /* Specta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Specta.framework; path = Specta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 699550909E4F2C0236230D4D0EC0A2E0 /* PNObject.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = PNObject.modulemap; sourceTree = ""; }; - 69F61504322C791CBFABA0E03BB5BD64 /* FBSDKShareDialogMode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDialogMode.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialogMode.h; sourceTree = ""; }; - 6A7E143F23E02AF74374543168136FF1 /* NACrypto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NACrypto-umbrella.h"; sourceTree = ""; }; - 6AE649B21312398B2D6279704A2AEEA0 /* FBSDKBridgeAPIProtocolWebV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolWebV1.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV1.h; sourceTree = ""; }; - 6B4715469963951B3FCE250030A0F6A2 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; - 6B5D225DB40A9AD032D9C8147BD9C133 /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; - 6BE5E7F75FB2F7E5DECAA1350401BEB4 /* AFOAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFOAuthCredential.m; sourceTree = ""; }; - 6C98AAD19E29CEDC56E1C5FC401EEBD3 /* NSString_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSString_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6CA31C87A8840D1FE9F9D8B319438659 /* UIImage+Diff.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Diff.m"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.m"; sourceTree = ""; }; - 6D2E77C069913412B05CD80E94443DF4 /* FBSDKLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLogger.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKLogger.m; sourceTree = ""; }; - 6D3085837EAC6A3F3B3F713E6A29127F /* EXPDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDefines.h; path = Expecta/EXPDefines.h; sourceTree = ""; }; - 6D598515A3D05D2746CE121F66FE86FC /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 6D8C8EFC54433C1BBA35F88938E6AE47 /* FBSDKAppLinkResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppLinkResolver.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkResolver.m; sourceTree = ""; }; - 6DB64CE127D492DE60FD7189DCB40744 /* BFCancellationToken.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationToken.m; path = Bolts/Common/BFCancellationToken.m; sourceTree = ""; }; - 6E3FDA3F967CE146E983A26E2ED382CC /* KeccakF-1600-opt32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "KeccakF-1600-opt32.c"; path = "NACrypto/keccak/KeccakF-1600-opt32.c"; sourceTree = ""; }; - 6EB1160552267C19181DD6FD3FFDE3D5 /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; - 6EBAB20C09497C22C81A8FF6BB165D07 /* NACrypto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = NACrypto.modulemap; sourceTree = ""; }; - 6EF1222282167A053457802ABF4F9C67 /* FBSDKLoginKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKLoginKit-dummy.m"; sourceTree = ""; }; - 6F1BB16FD92A0240C20CDB1D9D12989F /* FBSDKCoreKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKCoreKit-umbrella.h"; sourceTree = ""; }; - 6F24819F1A5448FF49CDE8ADBFFE7E0F /* FBSDKAppLinkUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppLinkUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkUtility.m; sourceTree = ""; }; - 6F28DEA1D3C84F92911A885ED4AD7E5D /* nv-ios-http-status-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nv-ios-http-status-dummy.m"; sourceTree = ""; }; - 7098787F74DA313F5F0A7EA6B0CF37E6 /* CodFis+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CodFis+Helper.h"; path = "CodFis-Helper/CodFis+Helper.h"; sourceTree = ""; }; - 70FDFFF826A53335C23027859B4FC658 /* FBSDKLikeButtonPopWAV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeButtonPopWAV.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButtonPopWAV.h; sourceTree = ""; }; - 724D066E2AF02260F43D82C7E343961E /* BFMeasurementEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFMeasurementEvent.m; path = Bolts/iOS/BFMeasurementEvent.m; sourceTree = ""; }; - 7269980DFC28D4F99B8326C002888699 /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIDevice_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 738F0DBBDBD7ABC4F48AC4FE5188421B /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; - 73924E5B4BD554AEAA7FBA2F933B4F58 /* FBSDKShareKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKShareKit-dummy.m"; sourceTree = ""; }; - 7395C63B98701722FEB09543DCCC60EE /* RZDataBinding.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RZDataBinding.xcconfig; sourceTree = ""; }; - 73C91B73698DFA8728F001C27023BC0C /* FBSDKBridgeAPIProtocolNativeV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolNativeV1.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolNativeV1.h; sourceTree = ""; }; - 73EAEB2ACC28947EFDE3D15CB3DD5E27 /* FBSDKShareOpenGraphContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphContent.h; sourceTree = ""; }; + 60B8D0343245B55677461157E5711662 /* PureLayout.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PureLayout.xcconfig; sourceTree = ""; }; + 60D406D32EC6C330A7304059BF4C7DF8 /* BFWebViewAppLinkResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFWebViewAppLinkResolver.h; path = Bolts/iOS/BFWebViewAppLinkResolver.h; sourceTree = ""; }; + 60E922997ED6631762CAEEBA661DF914 /* crypto_aead_chacha20poly1305.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_aead_chacha20poly1305.h; path = src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h; sourceTree = ""; }; + 60F1C64996C747E664DB8EBD3235192A /* blake2b-ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-ref.c"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c"; sourceTree = ""; }; + 6207E3A4EF0E019A960B705D0942B165 /* blake2b-long.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-long.h"; path = "src/libsodium/crypto_pwhash/argon2/blake2b-long.h"; sourceTree = ""; }; + 620F92555BEFA121DFCEF4F87F918CAB /* NAInterface.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAInterface.m; path = NAChloride/NAInterface.m; sourceTree = ""; }; + 62710B7A271C692F907BC3695309255C /* EXPMatchers+beKindOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beKindOf.h"; path = "Expecta/Matchers/EXPMatchers+beKindOf.h"; sourceTree = ""; }; + 62944AA2B65726638EB632ACB42A2E8F /* FBSDKBridgeAPIProtocolNativeV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolNativeV1.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolNativeV1.h; sourceTree = ""; }; + 62BD05B60E354F152B315A1F1AACB114 /* SPTSharedExampleGroups.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSharedExampleGroups.h; path = Specta/Specta/SPTSharedExampleGroups.h; sourceTree = ""; }; + 62E1587312189DD098CB834985C379B5 /* SpectaUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaUtility.h; path = Specta/Specta/SpectaUtility.h; sourceTree = ""; }; + 6355AD462745330D2A6CAA690F0250A4 /* fe51.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fe51.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h; sourceTree = ""; }; + 639C868FD9013F7A62F9C843C244DC61 /* AFOAuthCredential.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFOAuthCredential.m; sourceTree = ""; }; + 63BEEFCC32CEF5691C53AB392C34894E /* poly1305_donna.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = poly1305_donna.h; path = src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h; sourceTree = ""; }; + 63CD430CD93D81C75BCD5DC1CC99F13D /* FBSDKLoginManagerLoginResult+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginManagerLoginResult+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLoginResult+Internal.h"; sourceTree = ""; }; + 63F178BA57C0915C8B56DE3970CFD95F /* FBSDKShareKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKShareKit.modulemap; sourceTree = ""; }; + 640713517262FD28DA01C41B9B647DBE /* FBSDKLoginCompletion+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginCompletion+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion+Internal.h"; sourceTree = ""; }; + 641CC6CE77D1549A8CCA31A259F9C523 /* FacebookSDKStrings.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; path = FacebookSDKStrings.bundle; sourceTree = ""; }; + 649E34AE8EBE9910AD68640B7CA993CE /* FBSDKAppGroupAddDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupAddDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupAddDialog.h; sourceTree = ""; }; + 64ADF90C947E2969DF4749656F340AE0 /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; + 64D9AE6B3C48BE5C69528CE23CD4A1A2 /* FBSDKLiking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLiking.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLiking.h; sourceTree = ""; }; + 6564C9AC99EA9682F89286F94CA0061C /* NAInterface.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAInterface.h; path = NAChloride/NAInterface.h; sourceTree = ""; }; + 6589C0581A8D81459860DB0F58DE06F6 /* FBSDKLoginKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKLoginKit.xcconfig; sourceTree = ""; }; + 66771F47EC0E59C86E0DC08683788D5A /* FBSDKShareOpenGraphContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphContent.h; sourceTree = ""; }; + 66B219743D55E3128190F98CC4C3A29E /* SpectaDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaDSL.m; path = Specta/Specta/SpectaDSL.m; sourceTree = ""; }; + 66D6B0058C76C46A48C1B6B62EA484BB /* FBSDKBridgeAPIResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIResponse.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIResponse.h; sourceTree = ""; }; + 67287FD4AE8EB6DB4DD734E3D7B793D8 /* FBSDKAppGroupAddDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupAddDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupAddDialog.m; sourceTree = ""; }; + 6739F81474B1EBAC489F75AEDAF63880 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; + 6779442080735F69CF642D39E9C3C3A0 /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; + 677C58FBC556BDAFA69409AD1C8E2ABC /* PNAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNAddress.h; sourceTree = ""; }; + 67882C99F476C761CE40EE1830E3BCDF /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; + 679AB703FB11238BBBD14EE5E0D2C2DB /* FBSDKBridgeAPIProtocolWebV2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolWebV2.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV2.m; sourceTree = ""; }; + 6834627757B423E59BA0F9351269A1D7 /* FBSDKTimeSpentData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTimeSpentData.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.h; sourceTree = ""; }; + 6867FB5320732E3691A7151351DF10B1 /* DDDKeychainWrapper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = DDDKeychainWrapper.modulemap; sourceTree = ""; }; + 68A4C2B0532AE666074ADF1C47DB678D /* crypto_secretbox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_secretbox.h; path = src/libsodium/include/sodium/crypto_secretbox.h; sourceTree = ""; }; + 68BF983600702C2982CF0BFFC5193965 /* FBSDKDeviceRequestsHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDeviceRequestsHelper.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDeviceRequestsHelper.h; sourceTree = ""; }; + 68CA002B4D1B706B67FC9B27FA070715 /* NSUserDefaults-AESEncryptor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSUserDefaults-AESEncryptor-dummy.m"; sourceTree = ""; }; + 693C99BD262178C7AEA55EBD75D0B815 /* FBSDKAppInviteDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppInviteDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.m; sourceTree = ""; }; + 6977DC3A0BAA31F6C91BC7468BBCC3BA /* FBSDKLikeObjectType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeObjectType.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeObjectType.m; sourceTree = ""; }; + 69A757F877675D69E1FE682D461BDE96 /* PNObjcPassword.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjcPassword.h; sourceTree = ""; }; + 69B0EB1E741D7D2708F51BFEF8E61398 /* EXPMatchers+beLessThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.h"; sourceTree = ""; }; + 69BDFF9EEFCC3A7780727631960224EF /* FBSDKGameRequestDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestDialog.h; sourceTree = ""; }; + 6A48D53680E9CAF8086B45CEB4234203 /* Specta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Specta-dummy.m"; sourceTree = ""; }; + 6ABED39B84E11067030F2A03C89756FA /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; + 6AC2BE163C37468F22BA5BEEF8B6C789 /* blake2b-load-avx2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-load-avx2.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-load-avx2.h"; sourceTree = ""; }; + 6AD58CCB4D738D8982747C7CA9BB8E92 /* nv-ios-http-status.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "nv-ios-http-status.xcconfig"; sourceTree = ""; }; + 6B0C5A09DBDDE888FC5CCD7B81EF820F /* EXPMatchers+beKindOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beKindOf.m"; path = "Expecta/Matchers/EXPMatchers+beKindOf.m"; sourceTree = ""; }; + 6BFC94CE6DFF55093E997578440A0F74 /* SPTGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTGlobalBeforeAfterEach.h; path = Specta/Specta/SPTGlobalBeforeAfterEach.h; sourceTree = ""; }; + 6C33EA17F7DCD61230EE604FC58195C3 /* crypto_hash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_hash.h; path = src/libsodium/include/sodium/crypto_hash.h; sourceTree = ""; }; + 6C45857AE11D8D57F100DFDCD0AC368C /* Specta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-umbrella.h"; sourceTree = ""; }; + 6CB859B5742059E180407E1494613CA7 /* pwhash_scryptsalsa208sha256_sse.c */ = {isa = PBXFileReference; includeInIndex = 1; name = pwhash_scryptsalsa208sha256_sse.c; path = src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c; sourceTree = ""; }; + 6D0C809583C072A7C8E5D2875BCF7821 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6D1D6C52F36ACD4D059EF95D774D1089 /* FBSDKWebDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKWebDialog.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialog.m; sourceTree = ""; }; + 6D58E7AEA72DB809978988C5EF00C622 /* ExpectaSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaSupport.h; path = Expecta/ExpectaSupport.h; sourceTree = ""; }; + 6D705C0439C1DBECD8C8B3FD6891DFDF /* FBSDKLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLogger.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKLogger.h; sourceTree = ""; }; + 6D84AA692ADC14A1062783DAFB478FEF /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; + 6E209882DA89E5530D27E76996158939 /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; + 6E71BC8489DA5D9723A0A66434AA24C9 /* crypto_scrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_scrypt.h; path = src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h; sourceTree = ""; }; + 6F2995946412A33EC6A25165DA7B6173 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + 6F68E047D9B8C0D5EECA37A6FAA632F5 /* FBSDKUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKUtility.h; sourceTree = ""; }; + 6F7C26C15DB5BEEE9BBAF8EB0CE92C89 /* FBSDKGraphRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequest.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequest.h; sourceTree = ""; }; + 6F915570C0840CA77B7CB9DD1C12E6F3 /* hmac_hmacsha512256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hmac_hmacsha512256.c; path = src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c; sourceTree = ""; }; + 6FB5448CAA965EAACA4E07AA5247A2E4 /* FBSDKMessageDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMessageDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKMessageDialog.m; sourceTree = ""; }; + 70068A980A0F37775CE656DAE88C5892 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; + 705BB4C68B3714CFB89096DC1529E726 /* nv_ios_http_status.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = nv_ios_http_status.h; path = "nv-ios-http-status/nv_ios_http_status.h"; sourceTree = ""; }; + 7095BF3AE4223BEC5F231097AA97B0F4 /* FBSDKSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSettings.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKSettings.h; sourceTree = ""; }; + 70E4006CC48E435E36F051EBADAFE22B /* DJLocalizableString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DJLocalizableString.m; path = DJLocalization/DJLocalizableString.m; sourceTree = ""; }; + 7103AABA737EFCB6D7B9C4B172135CD4 /* VatNumber+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VatNumber+Helper.m"; path = "CodFis-Helper/VatNumber+Helper.m"; sourceTree = ""; }; + 71124AC898CB36B9E1735C5C92CC7F07 /* FBSDKAppInviteContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppInviteContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteContent.m; sourceTree = ""; }; + 71322ED299C79A318C08A7CFEEECB31D /* BFWebViewAppLinkResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFWebViewAppLinkResolver.m; path = Bolts/iOS/BFWebViewAppLinkResolver.m; sourceTree = ""; }; + 7134D818B8FBA2F1E8259FB5E9AE3E3F /* FBSDKLikeDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeDialog.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeDialog.h; sourceTree = ""; }; + 714A00D3913DDB7143F1BBE6DDF8A19F /* crypto_stream_salsa208.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_salsa208.h; path = src/libsodium/include/sodium/crypto_stream_salsa208.h; sourceTree = ""; }; + 716C02D5A9AAE1E9FF623CABAED47DE5 /* FBSDKDynamicFrameworkLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDynamicFrameworkLoader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDynamicFrameworkLoader.h; sourceTree = ""; }; + 71985A0B67ADCA8ADF73DCE79B242C58 /* RZDBTransforms.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBTransforms.h; path = RZDataBinding/RZDBTransforms.h; sourceTree = ""; }; + 71B2B492557BE08718B64068604605E7 /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; }; + 71D92E5C63ACC17FE083CA3C46A6515B /* randombytes_salsa20_random.c */ = {isa = PBXFileReference; includeInIndex = 1; name = randombytes_salsa20_random.c; path = src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c; sourceTree = ""; }; + 71F393D2B9738327F3496431A5C4D6A1 /* StrongestPasswordValidator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = StrongestPasswordValidator.h; path = Pod/Classes/StrongestPasswordValidator.h; sourceTree = ""; }; + 725AA96FCCBB4195983782A63C7C1E5C /* FBSDKTriStateBOOL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTriStateBOOL.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTriStateBOOL.m; sourceTree = ""; }; + 726FE0B669953010969FDAA49AE98511 /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; + 72B51D2440AF39DC0C277F37CA64267B /* FBSDKGameRequestContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestContent.h; sourceTree = ""; }; + 72BF5B4410DC3DB627E15DEC38D11D20 /* Bolts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Bolts.m; path = Bolts/Common/Bolts.m; sourceTree = ""; }; + 72E136993C21623328373DE0D20F2FF5 /* crypto_pwhash_argon2i.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_pwhash_argon2i.h; path = src/libsodium/include/sodium/crypto_pwhash_argon2i.h; sourceTree = ""; }; + 733E47ACEF2C887832A7511468104B53 /* crypto_sign.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_sign.c; path = src/libsodium/crypto_sign/crypto_sign.c; sourceTree = ""; }; + 73641C52ECB7669B837CCFBB3842524F /* x25519_ref10.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = x25519_ref10.h; path = src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h; sourceTree = ""; }; + 73D71496E8F98C7EB11F9DE085BEF59C /* crypto_secretbox_xsalsa20poly1305.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_secretbox_xsalsa20poly1305.h; path = src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h; sourceTree = ""; }; + 7451C9C8418B43743459FE26BB5DC160 /* FBSDKShareKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKShareKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 745723BA68A03FD9E5D2F12F251DB11D /* FBSDKShareKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKShareKit-prefix.pch"; sourceTree = ""; }; + 74700A970C9FC75D18D27A4F46958509 /* PureLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PureLayout.framework; path = PureLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 748E0B295CE6475615F29850C6CD4B0A /* Pods-PNObject_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PNObject_Tests-acknowledgements.plist"; sourceTree = ""; }; - 74CECD8FB0884DC1FAB532E2548CC5B6 /* RZDataBinding-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RZDataBinding-dummy.m"; sourceTree = ""; }; - 752A4F33FDBCE314B01265F228AE9FC2 /* FBSDKGameRequestDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestDialog.m; sourceTree = ""; }; - 7569791A6348BC689D4E469B75812D5D /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKLoginKit.framework; path = FBSDKLoginKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 758B45423011FC5DC1ECFB012F211FA6 /* Expecta_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Expecta_Snapshots.framework; path = "Expecta+Snapshots.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 75C1BD7D462E54814D753F973BA15CA8 /* NASecRandom.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NASecRandom.m; path = NACrypto/NASecRandom.m; sourceTree = ""; }; - 75DCA554F2929AB42D97D73EA91690BD /* _FBSDKTemporaryErrorRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _FBSDKTemporaryErrorRecoveryAttempter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/_FBSDKTemporaryErrorRecoveryAttempter.h; sourceTree = ""; }; - 7615EEDBD9DDED351AFC82965F4A8A8A /* FBSDKKeychainStore.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKKeychainStore.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStore.h; sourceTree = ""; }; - 76507678F8A3FDBA670E58C243483C9E /* FBSDKInternalUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKInternalUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.h; sourceTree = ""; }; - 7696CBFF0B75F6198191F3805939C52B /* NSUserDefaults+AESEncryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+AESEncryptor.m"; path = "NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.m"; sourceTree = ""; }; - 76DBD23A9EAB4D01DE837008B2944E29 /* CocoaSecurity-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaSecurity-prefix.pch"; sourceTree = ""; }; - 771F5DCF0269FECCECD6AF2EE65C1F0E /* DJLocalizationSystem+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DJLocalizationSystem+Private.h"; path = "DJLocalization/DJLocalizationSystem+Private.h"; sourceTree = ""; }; - 775FE42F0634B360F63A9D012E7EFE1C /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; - 77C0FF775961C5CF58757D301B38149B /* twofish.c */ = {isa = PBXFileReference; includeInIndex = 1; name = twofish.c; path = NACrypto/TwoFish/twofish.c; sourceTree = ""; }; - 77D4F41BA622C03540C90387B263EC49 /* PNObjectConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectConstants.h; sourceTree = ""; }; - 77DEA3968F74B6EB7EEB5EE36107C6D1 /* PNObjcPassword.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjcPassword.h; sourceTree = ""; }; - 786A4F1CF674C8C4601B3A1E7EE449D5 /* ResponseConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ResponseConstants.h; path = "CodFis-Helper/ResponseConstants.h"; sourceTree = ""; }; - 786B2B9BF7A9888B67A35D12335025D7 /* FBSDKAppEventsStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsStateManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.m; sourceTree = ""; }; - 787BA5BD8C2B7E55A98E206B98E61D22 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; - 78843FEA5980B4D12ACFC8B8A3EEF74D /* DJLocalization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DJLocalization.framework; path = DJLocalization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 78914A27A449106521CA676217F10F04 /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; - 78BEC84F9D384942976C98EA632AD1B1 /* FBSDKShareAPI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareAPI.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareAPI.m; sourceTree = ""; }; - 79388ECF91E4197310CE9CFBEB871455 /* FBSDKMonotonicTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMonotonicTime.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMonotonicTime.h; sourceTree = ""; }; - 7976C894230E0E9EBFADCB410B06B963 /* FBSDKErrorConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorConfiguration.m; sourceTree = ""; }; - 7A152276A978CA969988ECB14241F7F8 /* StrongestPasswordValidator-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "StrongestPasswordValidator-prefix.pch"; sourceTree = ""; }; - 7A3C62ADDA16E2D20811991CD15EC360 /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; - 7A6EBA2C61E2087ACD6D67D45CE3938D /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; - 7ADE08A08F02CDF7D749CF84474E66CD /* FBSDKAppEventsState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsState.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsState.h; sourceTree = ""; }; - 7AE1E090C7CAD8F180B2208A61B9153D /* FBSDKLogo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLogo.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKLogo.h; sourceTree = ""; }; - 7B2EF43AAF0680C6E4AF0E70279A3429 /* FBSDKMath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMath.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMath.h; sourceTree = ""; }; - 7B3CD62A5C48A3A345FB5FC9CC1D38BD /* FBSDKError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKError.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKError.m; sourceTree = ""; }; - 7B78FA75188FA3D3B0FB07D7CACDC060 /* NSDate_Utils-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDate_Utils-prefix.pch"; sourceTree = ""; }; - 7B956A37BE42C921B7B5B418A1CFF9FD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 7BDB4AA9B383E78A568F74E634C11C59 /* FBSDKBoltsMeasurementEventListener.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBoltsMeasurementEventListener.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppLink/FBSDKBoltsMeasurementEventListener.m; sourceTree = ""; }; - 7C34E25317C19EE743E9EBF82BFE32EF /* EXPMatchers+equal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+equal.h"; path = "Expecta/Matchers/EXPMatchers+equal.h"; sourceTree = ""; }; - 7C3FC33160159ED1C28434F1CF8BA03D /* PNLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNLocation.m; sourceTree = ""; }; - 7CC080483CF13D4D5131303C05D1D231 /* Bolts.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bolts.xcconfig; sourceTree = ""; }; - 7CCA8311D8FFE6D9B23D0A0B8A880D41 /* FBSDKLikeControl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeControl.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeControl.h; sourceTree = ""; }; - 7CD1DFFCDF0D9D5888306076EA55A055 /* NANSData+Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NANSData+Utils.m"; path = "NACrypto/NANSData+Utils.m"; sourceTree = ""; }; - 7D2E1FFD9FA3D20EEB3C8F5197F5AC13 /* UIDevice-Utils-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIDevice-Utils-prefix.pch"; sourceTree = ""; }; - 7D4FB895A7A43B33DD0ACD2AC3EECF3D /* AFAutoPurgingImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFAutoPurgingImageCache.h; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.h"; sourceTree = ""; }; - 7D6B86ED4A2678DF4F47C97953452426 /* FBSDKBridgeAPIRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIRequest.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest.h; sourceTree = ""; }; - 7D71071E2FBFF9DBF0DEBAE640F805F3 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; - 7D7A982D5CB73D2064151B38F7E0193C /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKLoginKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7D9973058360ECD5D21CEC595A24C74F /* NACrypto.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NACrypto.xcconfig; sourceTree = ""; }; - 7DB42A88D855CC3B21719F896DE2A9CF /* FBSDKLoginManagerLoginResult+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginManagerLoginResult+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLoginResult+Internal.h"; sourceTree = ""; }; - 7E023AB2F3C3501F3A47E9E704CD0EB7 /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; - 7E2BFE4C9E2428C97C1D668CCCE2E49C /* FBSDKInternalUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKInternalUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m; sourceTree = ""; }; - 7E7D33083B472435EC4A8FB478E0F956 /* FBSDKTestUsersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTestUsersManager.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.m; sourceTree = ""; }; - 7E8F81F87A7525AACDE8A9C669B9B477 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSnapshotTestCase.framework; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7F0542301A6557EB6F84047650498D38 /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - 7FB2B9DD4F09E4C6882DF5135FAE91A5 /* FBSDKDeviceRequestsHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDeviceRequestsHelper.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDeviceRequestsHelper.m; sourceTree = ""; }; - 7FDFB7FC3985D1DD9FCD12D68096DF6F /* FBSDKLoginKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginKit+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginKit+Internal.h"; sourceTree = ""; }; - 801F333E9B7F58F909FD9A1E9CA771B8 /* FBSDKLoginKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKLoginKit-umbrella.h"; sourceTree = ""; }; - 801F8D7201B1A789D6F6AF3FF3D5E637 /* CodFis-Helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CodFis-Helper-dummy.m"; sourceTree = ""; }; - 802311C5E6123108467A5C84F2679AC0 /* FBSDKShareDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.m; sourceTree = ""; }; - 8031AFFDBD019C44A3B6CBA906CFF43E /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; }; - 8085A91B1C2AFCC0DF8CAB9ED5264DA2 /* FBSDKShareOpenGraphObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphObject.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.m; sourceTree = ""; }; - 80AE03BA26324C8F1456156A7674C94C /* PNAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNAddress.m; sourceTree = ""; }; - 80EFE4278F2342602F1EA7C9A04469CB /* FBSDKSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSettings.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKSettings.m; sourceTree = ""; }; - 812BFE0DB743F3ADDC7627B46A0CDAC6 /* FBSDKSharingContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharingContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharingContent.h; sourceTree = ""; }; - 81409E4091A8BB319B977C232DA64756 /* FBSDKShareOpenGraphValueContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphValueContainer.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphValueContainer.h; sourceTree = ""; }; - 8177932A2A11DB0D5F62ACD40A7D7BEC /* FBSDKLoginCompletion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginCompletion.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion.m; sourceTree = ""; }; - 81C2DDD36F5EEF22E199CFED43509885 /* FBSnapshotTestCase.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSnapshotTestCase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74B2F5BC1B9AF1AFE004359B6BE26156 /* FBSDKColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKColor.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.h; sourceTree = ""; }; + 74EDC2C54B0AB83D05F601BEF00FFDCC /* NASecureData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NASecureData.h; path = NAChloride/NASecureData.h; sourceTree = ""; }; + 750D54F69E9FCD9C87442C4B2B2C7D77 /* Bolts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Bolts.h; path = Bolts/Common/Bolts.h; sourceTree = ""; }; + 753FF2308D33FF5D9B4C2851BA0EC0DE /* FBSDKServerConfigurationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKServerConfigurationManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.h; sourceTree = ""; }; + 75599B3B925DFD0D75E3C7548BF58B3E /* Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Specta.h; path = Specta/Specta/Specta.h; sourceTree = ""; }; + 7594C78ABCFD5028C7180FE29A00C7F0 /* verify_64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_64.c; path = src/libsodium/crypto_verify/64/ref/verify_64.c; sourceTree = ""; }; + 7594CD7CB21067D8AFF52592FCC663E4 /* FBSDKImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKImageDownloader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKImageDownloader.m; sourceTree = ""; }; + 75A7CC666FC7B6987C9D5BB30528D75B /* hmac_hmacsha512.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hmac_hmacsha512.c; path = src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c; sourceTree = ""; }; + 75F08A85B92B0AFF89431B6F69813EFC /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 76786BF7DB256AFFF205FBEF36C0F9BC /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; }; + 768517928C277175CC9CA99633F2B602 /* x25519_ref10.c */ = {isa = PBXFileReference; includeInIndex = 1; name = x25519_ref10.c; path = src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c; sourceTree = ""; }; + 76AF76B374A871F29F6BD5776DDC8665 /* FBSDKGraphRequestConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestConnection.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestConnection.m; sourceTree = ""; }; + 76CEF9E6C887FF2B700003EFAFB08F62 /* AFHTTPRequestSerializer+OAuth2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFHTTPRequestSerializer+OAuth2.h"; sourceTree = ""; }; + 7768E001D2BDE051D82C4CEFFBB25F66 /* blake2b-compress-ssse3.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-compress-ssse3.c"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c"; sourceTree = ""; }; + 77E2B65A9EDC94C1380C89D9FC141F56 /* FBSDKShareVideoContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareVideoContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideoContent.m; sourceTree = ""; }; + 7813CDF0C3EC4F003101BCB96365A2ED /* common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common.h; path = src/libsodium/include/sodium/private/common.h; sourceTree = ""; }; + 78423B10534D234EE3C8159D294BC421 /* FBSDKServerConfigurationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKServerConfigurationManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.m; sourceTree = ""; }; + 791CBD618EB17C3A22A3E0D7306DF8B3 /* FBSDKLikeActionControllerCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeActionControllerCache.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionControllerCache.h; sourceTree = ""; }; + 79339DBB2505D42E17AE17D6B521630C /* _FBSDKTemporaryErrorRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _FBSDKTemporaryErrorRecoveryAttempter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/_FBSDKTemporaryErrorRecoveryAttempter.m; sourceTree = ""; }; + 7942B71650C88A861E964F90A5BDC008 /* XCTestCase+Specta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestCase+Specta.m"; path = "Specta/Specta/XCTestCase+Specta.m"; sourceTree = ""; }; + 797CFC86F2178FBC66EFEF4C177667A2 /* FBSDKMonotonicTime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMonotonicTime.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMonotonicTime.h; sourceTree = ""; }; + 79B5AF79A16C6512D133D05AAA690713 /* UIDevice-Hardware.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice-Hardware.h"; path = "Pod/Classes/UIDevice-Hardware.h"; sourceTree = ""; }; + 79BB43B94B29807A1320F71A2C110DEC /* AFNetworking.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = AFNetworking.modulemap; sourceTree = ""; }; + 79EAFABAC6E87A56D674EFBCB99EC932 /* BFTask+Exceptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BFTask+Exceptions.m"; path = "Bolts/Common/BFTask+Exceptions.m"; sourceTree = ""; }; + 7AB6A1DF5177C7B13774DAC19420C1B1 /* Expecta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.xcconfig; sourceTree = ""; }; + 7AEAEC8AD3A0619B37F02EA43D0FEDBF /* poly1305_sse2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = poly1305_sse2.c; path = src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c; sourceTree = ""; }; + 7AEB2A7CF00A95726DE561E306F8346D /* DJLocalization.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DJLocalization.xcconfig; sourceTree = ""; }; + 7B34526A707280B8801960DD95AC0490 /* version.c */ = {isa = PBXFileReference; includeInIndex = 1; name = version.c; path = src/libsodium/sodium/version.c; sourceTree = ""; }; + 7B6E46044099029F650EED7F64C0D020 /* utils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = utils.h; path = src/libsodium/include/sodium/utils.h; sourceTree = ""; }; + 7BCE386E43C80439878A947A32D7AA0B /* Bolts-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Bolts-prefix.pch"; sourceTree = ""; }; + 7BD3327B70185DBCAEF1C6457CFC0EB5 /* FBSDKAppEventsState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsState.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsState.m; sourceTree = ""; }; + 7BF1239645FA23DBD972C46B3C41D95F /* FBSDKWebDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKWebDialog.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialog.h; sourceTree = ""; }; + 7C0D317A4C2BE99DB2820482D1EAA9D7 /* sign.c */ = {isa = PBXFileReference; includeInIndex = 1; name = sign.c; path = src/libsodium/crypto_sign/ed25519/ref10/sign.c; sourceTree = ""; }; + 7C6AAE154B8D7E43C9FF852C027B2D0F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + 7C785FD36A7D3E9987ABC55B0B3F5429 /* Specta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Specta.xcconfig; sourceTree = ""; }; + 7CA09D1052E3988D61774DDC54A7C7C5 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 7CA83F51E429C86BEBF46D452DEB410D /* crypto_core_salsa20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_core_salsa20.h; path = src/libsodium/include/sodium/crypto_core_salsa20.h; sourceTree = ""; }; + 7CEFAF55FBF5F462F3D2FB4F0586021E /* ALView+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ALView+PureLayout.m"; path = "PureLayout/PureLayout/ALView+PureLayout.m"; sourceTree = ""; }; + 7D162E66974CF03C0FBEB1757881F4AF /* BFTaskCompletionSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFTaskCompletionSource.m; path = Bolts/Common/BFTaskCompletionSource.m; sourceTree = ""; }; + 7D3B6768441828F0024205FAEBCF3042 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; }; + 7D4AB82587E4AC77457C4D746391B27B /* VatNumber+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "VatNumber+Helper.h"; path = "CodFis-Helper/VatNumber+Helper.h"; sourceTree = ""; }; + 7DAAAC718136D395F8584F59ADB867E7 /* StrongestPasswordValidator-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "StrongestPasswordValidator-dummy.m"; sourceTree = ""; }; + 7DDE8752BF514297AE83C0677970EF48 /* FBSDKErrorRecoveryConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorRecoveryConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorRecoveryConfiguration.m; sourceTree = ""; }; + 7E3A71D77CDDA16F738B018E4CD35755 /* DJLocalizationSystem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DJLocalizationSystem.m; path = DJLocalization/DJLocalizationSystem.m; sourceTree = ""; }; + 7E91E2B5BE5C7F0E5DC4FECF40DF4ED5 /* FBSDKColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKColor.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.m; sourceTree = ""; }; + 7F2D79206185068B562331187225F683 /* mutex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mutex.h; path = src/libsodium/include/sodium/private/mutex.h; sourceTree = ""; }; + 7F7B22AA36B3BD9F17C4C0705CF12357 /* consts_namespace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = consts_namespace.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h; sourceTree = ""; }; + 800052B20025694891AD11620505516D /* FBSDKLikeButton+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLikeButton+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButton+Internal.h"; sourceTree = ""; }; + 802C412C36630617E4BC385C2B5B25F9 /* RZDBCoalesce.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBCoalesce.h; path = RZDataBinding/RZDBCoalesce.h; sourceTree = ""; }; + 80764F1057E2E1DA2B9BFF972B3D4A9D /* EXPMatchers+beginWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beginWith.h"; path = "Expecta/Matchers/EXPMatchers+beginWith.h"; sourceTree = ""; }; + 809DA9DC752F10C030AA2D9C18E9DAF8 /* FBSDKShareAPI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareAPI.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareAPI.h; sourceTree = ""; }; + 80DFF4B97667CC44E1B4A0737B3DAC32 /* BFMeasurementEvent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFMeasurementEvent.m; path = Bolts/iOS/BFMeasurementEvent.m; sourceTree = ""; }; + 80FA80CE8E4C4A774B387F58ED33FC5F /* NSString_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSString_Helper.framework; path = "NSString-Helper.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 81E1D2CF5F0762B5F7E34A0ED3AA6EB7 /* FBSDKIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKIcon.m; sourceTree = ""; }; + 81EF083B3508EDB9EDFB7BD8B7E8D2BA /* BFTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFTask.m; path = Bolts/Common/BFTask.m; sourceTree = ""; }; + 8202D40B52BC9C084C6F38E708EA0AAB /* BFCancellationToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationToken.h; path = Bolts/Common/BFCancellationToken.h; sourceTree = ""; }; 821A5C557963A679894335F2C12F9FC9 /* Pods-PNObject_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNObject_Tests-resources.sh"; sourceTree = ""; }; - 828F406C66024E9875DEF502557C212C /* FBSDKLoginManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManager.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.m; sourceTree = ""; }; - 829DAA5DEC03DCF4093AC592D1550EBB /* SpectaDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaDSL.m; path = Specta/Specta/SpectaDSL.m; sourceTree = ""; }; - 836EB9ACFDF104FE0A72E1A5AA42AD28 /* FBSDKLoginConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginConstants.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginConstants.h; sourceTree = ""; }; - 83848160E1BBFE8DC9C5A5DC98137AA3 /* PNObjectUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectUtilities.m; sourceTree = ""; }; - 8391BDB35842F2EC28816D9209BBBB65 /* FBSDKGraphErrorRecoveryProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphErrorRecoveryProcessor.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.h; sourceTree = ""; }; - 84AD83C9DB6A765A528EA1C742FD5373 /* FBSDKLikeActionControllerCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeActionControllerCache.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionControllerCache.m; sourceTree = ""; }; - 856EB645B167B456E38B6F4D45A02B5B /* SpectaUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaUtility.m; path = Specta/Specta/SpectaUtility.m; sourceTree = ""; }; - 85A1EC824DD3CBFE789CBDE0F3D32AF3 /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; - 860B9C8679CB11994418AE18E87CCD7B /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; - 8657A2E48D2A442BE7863B1883F23BD3 /* NSDate_Utils.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NSDate_Utils.xcconfig; sourceTree = ""; }; - 86831BC7382D6363AB0CF1719C149ACF /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; - 86DF7AE8C7BBFAE8C370D5A14F891EDC /* NANSMutableData+Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NANSMutableData+Utils.m"; path = "NACrypto/NANSMutableData+Utils.m"; sourceTree = ""; }; - 873200BCA826EE8CEC931F5D380A50ED /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; - 8749BF6B0F4E06472F67FEC9B256FB60 /* BFURL_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFURL_Internal.h; path = Bolts/iOS/Internal/BFURL_Internal.h; sourceTree = ""; }; - 879C8AE7CD9D1BBE080C3D5114C7261D /* KeccakF-1600-32-s2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-32-s2.h"; path = "NACrypto/keccak/KeccakF-1600-32-s2.h"; sourceTree = ""; }; - 879F56CD26C124E39FBBB6BA88E861DC /* CocoaSecurity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CocoaSecurity.h; path = CocoaSecurity/CocoaSecurity.h; sourceTree = ""; }; - 87B96D2768F69B52A41D9A3961BCDAC1 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - 88AEEF7D3A0A840DEB859520340D8EB7 /* FBSDKAppGroupAddDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupAddDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupAddDialog.m; sourceTree = ""; }; - 8AA220C912F76137815A6ECC0F00BA4B /* FBSDKAppGroupContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupContent.m; sourceTree = ""; }; - 8AAB909C23BE727D7234D629EFF1D3A3 /* StrongestPasswordValidator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = StrongestPasswordValidator.m; path = Pod/Classes/StrongestPasswordValidator.m; sourceTree = ""; }; - 8AF616BC64AEF26F093DBCB286FC6C42 /* StrongestPasswordValidator-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "StrongestPasswordValidator-umbrella.h"; sourceTree = ""; }; - 8B7CD3DF3B8E322019F4AF7C5A9B8945 /* Bolts.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Bolts.modulemap; sourceTree = ""; }; - 8BD593C7000C5D15DAD37DBF69D8D5BA /* BFTaskCompletionSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFTaskCompletionSource.h; path = Bolts/Common/BFTaskCompletionSource.h; sourceTree = ""; }; - 8C6B96CCB79F4437B61300B74A6C0459 /* FBSDKLoginManagerLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManagerLogger.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.m; sourceTree = ""; }; - 8CC825D59CAE2D0EF90062FC446133EF /* nv-ios-http-status.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "nv-ios-http-status.modulemap"; sourceTree = ""; }; - 8CE81DC45D36FB2F6378182866C9F1D2 /* EXPMatchers+beSubclassOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beSubclassOf.m"; path = "Expecta/Matchers/EXPMatchers+beSubclassOf.m"; sourceTree = ""; }; - 8CFDB6D39967F8202C036BC533F95B45 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - 8D0A78DF22F737ED096473CD1097EB1F /* FBSDKCoreKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKCoreKit-dummy.m"; sourceTree = ""; }; - 8D92603F43B0B56B64BAD2D822D21D20 /* FacebookSDKStrings.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; path = FacebookSDKStrings.bundle; sourceTree = ""; }; - 8E2CF9887B5075F1F83873B876D6347D /* FBSDKShareConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareConstants.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareConstants.h; sourceTree = ""; }; - 8EA955A3E5C9EB4AE8AFB1B85579AB8B /* Bolts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Bolts.framework; path = Bolts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8F3B29C1E2F0F846F8947A26B1CC56A9 /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; - 8F4ABA43641CEC76EF64F9845D1869E5 /* FBSDKLoginManager+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginManager+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManager+Internal.h"; sourceTree = ""; }; - 8F5ACA80F1F3E869D5F14B38E2FDADB6 /* FBSDKAccessTokenCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCache.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCache.m; sourceTree = ""; }; - 8FB3D1BEB0973C2D3FFF36BD53494F08 /* FBSDKTooltipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTooltipView.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKTooltipView.h; sourceTree = ""; }; - 901599C4789F0E6D8E493650B6B5EAFC /* Pods_PNObject_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PNObject_Tests.framework; path = "Pods-PNObject_Tests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - 902A293B4E31AE244167F6393A171793 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 9032207099C8461EB2B877B11E9B57CB /* brg_endian.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = brg_endian.h; path = NACrypto/keccak/brg_endian.h; sourceTree = ""; }; + 8227379172D82E2E67B10BE220E5767D /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CodFis_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8252E429DA13E6981633AE2EA2D3229B /* FBSDKLoginCompletion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginCompletion.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion.m; sourceTree = ""; }; + 82B794CE2AB329B9119C1ABAAF912896 /* SPTExcludeGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExcludeGlobalBeforeAfterEach.h; path = Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h; sourceTree = ""; }; + 82D8CB87E6417B53E27EF2824A51B1AE /* FBSDKApplicationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKApplicationDelegate.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKApplicationDelegate.h; sourceTree = ""; }; + 82EC68F64F30FC40DE6C17C9D12F0C2F /* types.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = types.h; path = src/libsodium/crypto_stream/aes128ctr/portable/types.h; sourceTree = ""; }; + 830E96E5853904057A5E639721BB20A9 /* Bolts-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Bolts-dummy.m"; sourceTree = ""; }; + 83619F2BAD107A8280C7B6916BCA0A8E /* SpectaDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaDSL.h; path = Specta/Specta/SpectaDSL.h; sourceTree = ""; }; + 83756E5976593FF714A08D78FBBF0AF8 /* randombytes_salsa20_random.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = randombytes_salsa20_random.h; path = src/libsodium/include/sodium/randombytes_salsa20_random.h; sourceTree = ""; }; + 838A5783F9B9D0893CDD9451EDD31397 /* FBSDKShareOpenGraphValueContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphValueContainer.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphValueContainer.h; sourceTree = ""; }; + 839E691140CC97139C568B1EA3F69E1D /* randombytes_sysrandom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = randombytes_sysrandom.h; path = src/libsodium/include/sodium/randombytes_sysrandom.h; sourceTree = ""; }; + 83AF711E04B61906FB63D077DE8337BF /* consts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = consts.h; path = src/libsodium/crypto_stream/aes128ctr/portable/consts.h; sourceTree = ""; }; + 84245A920A8C2BFCCBC1BBAAAF5222FE /* NSValue+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValue+Expecta.h"; path = "Expecta/NSValue+Expecta.h"; sourceTree = ""; }; + 843CD17C791739DFCA383A8632114309 /* xor_afternm_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xor_afternm_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c; sourceTree = ""; }; + 85803A6D0373D42EFE8AD34075DFCCF0 /* BFAppLink_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLink_Internal.h; path = Bolts/iOS/Internal/BFAppLink_Internal.h; sourceTree = ""; }; + 8586C570A9EFBD4151C309EE8386019E /* FBSDKAppGroupJoinDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupJoinDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupJoinDialog.m; sourceTree = ""; }; + 85AC055C944A995991C9C5989AEBA735 /* crypto_pwhash_scryptsalsa208sha256.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_pwhash_scryptsalsa208sha256.h; path = src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h; sourceTree = ""; }; + 85B10CA326FF2FD35EF5A602B9AEAEB4 /* core_salsa20_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa20_api.c; path = src/libsodium/crypto_core/salsa20/core_salsa20_api.c; sourceTree = ""; }; + 85BD0368B84322484C341F260413D647 /* RZDataBinding-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RZDataBinding-umbrella.h"; sourceTree = ""; }; + 862603D7628EF0325A22C2AA7EBAB3B3 /* NSArray+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+PureLayout.m"; path = "PureLayout/PureLayout/NSArray+PureLayout.m"; sourceTree = ""; }; + 86350ACB81DF788369780EEDB87FF820 /* NAStream.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAStream.m; path = NAChloride/NAStream.m; sourceTree = ""; }; + 867D6781367AB4E2A3EA72FADA84F92C /* FBSDKCoreKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKCoreKit.modulemap; sourceTree = ""; }; + 86FA6874012C45DE02E304D0DE5D1520 /* argon2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = argon2.h; path = src/libsodium/crypto_pwhash/argon2/argon2.h; sourceTree = ""; }; + 875E6B03CD79A3425F08E9DB93C945B3 /* blake2b-compress-sse41.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-compress-sse41.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.h"; sourceTree = ""; }; + 87C29DD6E1B3CCA4D972DF688D8AD147 /* SPTSharedExampleGroups.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSharedExampleGroups.m; path = Specta/Specta/SPTSharedExampleGroups.m; sourceTree = ""; }; + 880AAA8A39FEA50A716D0BB6C54E9B99 /* generichash_blake2b.c */ = {isa = PBXFileReference; includeInIndex = 1; name = generichash_blake2b.c; path = src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c; sourceTree = ""; }; + 882D75E57826C680B000D531DD4101FB /* FBSDKShareOpenGraphAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphAction.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphAction.m; sourceTree = ""; }; + 88ECBDF9BB58C69664E83C5D092F1DCC /* NSLayoutConstraint+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSLayoutConstraint+PureLayout.h"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.h"; sourceTree = ""; }; + 8902ADF31F47E5D6B2B913047592A5FB /* FBSDKShareDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.m; sourceTree = ""; }; + 8926F7A556C2546186F334DEFEC6EAFF /* DJLocalization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DJLocalization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8971A16ACA6C4BC1A5ED20A04E205105 /* randombytes_sysrandom.c */ = {isa = PBXFileReference; includeInIndex = 1; name = randombytes_sysrandom.c; path = src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c; sourceTree = ""; }; + 89F1FD17E7380F8F55D5612BE743BE1D /* FBSDKShareKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareKit.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareKit.h; sourceTree = ""; }; + 8A2B8B269A7D421E8B2D86C7EEB70A6C /* libsodium-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "libsodium-prefix.pch"; sourceTree = ""; }; + 8A3AD48E69EB1AF4D9F9724F7373A1E7 /* FBSDKBridgeAPIResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIResponse.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIResponse.m; sourceTree = ""; }; + 8A550324C03EF2E3C99BE6100CBACFAD /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; + 8A6145C99ABE2C2404EF5E87DBFD667A /* FBSDKLikeActionControllerCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeActionControllerCache.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionControllerCache.m; sourceTree = ""; }; + 8A61B0C85FD6D3BE3781D948DB759AE4 /* BFAppLinkNavigation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkNavigation.h; path = Bolts/iOS/BFAppLinkNavigation.h; sourceTree = ""; }; + 8A67F041C397356C2E363CF59F224759 /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; + 8AA96AEE9F3D16C7D5E640A4C7AE300D /* NSString-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "NSString-Helper.xcconfig"; sourceTree = ""; }; + 8AB29F6BE93103430522C601D8D63A1F /* NSObject+RZDataBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RZDataBinding.h"; path = "RZDataBinding/NSObject+RZDataBinding.h"; sourceTree = ""; }; + 8BA38EECEC2E0E1C649F30B76E10C231 /* HTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPStatusCodes.h; path = "nv-ios-http-status/HTTPStatusCodes.h"; sourceTree = ""; }; + 8BEFC9A54083DB4689831608688191A8 /* FBSDKGameRequestFrictionlessRecipientCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestFrictionlessRecipientCache.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKGameRequestFrictionlessRecipientCache.m; sourceTree = ""; }; + 8C147EC9E68DE849AB4D39F962053B81 /* FBSDKAppEventsStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsStateManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.m; sourceTree = ""; }; + 8C7F3FF504FBB117DA99505A5139E169 /* NASecretBox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NASecretBox.h; path = NAChloride/NASecretBox.h; sourceTree = ""; }; + 8D84ABED5A7EA2FFC9E7A52086571B66 /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; }; + 8D9A732CA19FE04150C7E449AE44EDCD /* FBSDKLikeObjectType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeObjectType.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeObjectType.h; sourceTree = ""; }; + 8DB409BB76FA02D2D18C069F3794E368 /* UIStoryboard+DJLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIStoryboard+DJLocalization.h"; path = "DJLocalization/UIStoryboard+DJLocalization.h"; sourceTree = ""; }; + 8DE1E29CF49E37D57A2CF310F0B50412 /* StrongestPasswordValidator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = StrongestPasswordValidator.m; path = Pod/Classes/StrongestPasswordValidator.m; sourceTree = ""; }; + 8E57C25CF5CE443F1295ADD4BC091B22 /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = nv_ios_http_status.framework; path = "nv-ios-http-status.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8E62A237D09F9F807045978E75362330 /* NSObject+RZDataBinding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+RZDataBinding.m"; path = "RZDataBinding/NSObject+RZDataBinding.m"; sourceTree = ""; }; + 8E890C001F0081B29016D9B688EFA09F /* NSArray+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+PureLayout.h"; path = "PureLayout/PureLayout/NSArray+PureLayout.h"; sourceTree = ""; }; + 8E996F5611B931670A31534732BD5C97 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; }; + 8EA7B07CAFCD14E7C1D5C579D3F188B1 /* PNObjectConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectConstants.h; sourceTree = ""; }; + 8F44875167BD5D9C535B8363C3526C69 /* NABox.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NABox.h; path = NAChloride/NABox.h; sourceTree = ""; }; + 8F7A345BEBEF983B25B627146148BA34 /* NSDate_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSDate_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8FA1D1D9C748E3D8D6949BBD809B5617 /* PNObject+PNObjectConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject+PNObjectConnection.m"; sourceTree = ""; }; + 8FAF28E0868C7338239326A333830979 /* FBSDKErrorRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorRecoveryAttempter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/FBSDKErrorRecoveryAttempter.m; sourceTree = ""; }; + 8FD8B8DC39C64F6B50D43CDA15D39E02 /* verify_64_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_64_api.c; path = src/libsodium/crypto_verify/64/verify_64_api.c; sourceTree = ""; }; + 8FE46C7BBAABCF157AF36E0405422FA8 /* blake2b-compress-avx2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-compress-avx2.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.h"; sourceTree = ""; }; 90604A87BB7538C11C8A79A3023FC482 /* Pods-PNObject_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNObject_Example-acknowledgements.markdown"; sourceTree = ""; }; - 909127C04C9F68369FDDF7AC1768068D /* nv_ios_http_status.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = nv_ios_http_status.m; path = "nv-ios-http-status/nv_ios_http_status.m"; sourceTree = ""; }; - 90A1434730D000C85D3A2265AFF568A1 /* FBSDKServerConfiguration+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKServerConfiguration+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration+Internal.h"; sourceTree = ""; }; - 910B3617B882F19271B2F976F7AB5B11 /* SPTGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTGlobalBeforeAfterEach.h; path = Specta/Specta/SPTGlobalBeforeAfterEach.h; sourceTree = ""; }; - 913A46B76A2A3829523A960CC7B7F303 /* KeccakF-1600-32-s1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-32-s1.h"; path = "NACrypto/keccak/KeccakF-1600-32-s1.h"; sourceTree = ""; }; - 91789F7F85C0BEAC158A81364DB917A1 /* FBSDKMessengerIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMessengerIcon.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.m; sourceTree = ""; }; - 91891DBB68F6C550B5F91B632DB725ED /* FBSDKShareKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareKit.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareKit.h; sourceTree = ""; }; - 922CA8B26AE78116304F7E08030B0C5D /* PNObjectModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectModel.h; sourceTree = ""; }; - 927F6C1866DF390B5946C4CBAFD617D5 /* FBSDKShareConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareConstants.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareConstants.m; sourceTree = ""; }; - 9286F282527F68DE4C8A7D20EDBACEF4 /* Expecta-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta-umbrella.h"; sourceTree = ""; }; - 930ED3F8FBD102B5D27785CAEE03AC5A /* FBSDKGameRequestContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestContent.m; sourceTree = ""; }; - 9340FA12D95D01D87D483BC3D178915C /* FBSDKImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKImageDownloader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKImageDownloader.m; sourceTree = ""; }; - 93A162C9FFAC6F668C340693AE9C8F6C /* FBSDKErrorRecoveryConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorRecoveryConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorRecoveryConfiguration.h; sourceTree = ""; }; + 9098E27BBB9B777852DA38E13F669F03 /* FBSDKHashtag.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKHashtag.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKHashtag.h; sourceTree = ""; }; + 90C1E909B14A6BB87A697D58CFF0FD9A /* poly1305_sse2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = poly1305_sse2.h; path = src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h; sourceTree = ""; }; + 90E7E4DBAC5032500459D5F1C75668C2 /* verify_hmacsha256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_hmacsha256.c; path = src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c; sourceTree = ""; }; + 91C39CE9C2CEBA193716F145A218C946 /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKCoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 91E33493F7A80F9D7F4813B8D0B88829 /* core_salsa2012.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa2012.c; path = src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c; sourceTree = ""; }; + 920A67854406C95D0115F3D77BCEAC35 /* Specta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Specta.modulemap; sourceTree = ""; }; + 92797950E9688E3C05EDFD8E5908819B /* AFJSONResponseSerializerWithData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFJSONResponseSerializerWithData.h; sourceTree = ""; }; + 93251333E469AABA25C69AB93212E346 /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; + 9357BC23B2BD1E2DB4256D1932322A2A /* PureLayout-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PureLayout-dummy.m"; sourceTree = ""; }; + 936649A2CF2D268DA1824BB355390627 /* _FBSDKLoginRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _FBSDKLoginRecoveryAttempter.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/_FBSDKLoginRecoveryAttempter.h; sourceTree = ""; }; + 9396F394C9C70EF54D23AD2DCDF40B37 /* FBSDKDialogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDialogConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.h; sourceTree = ""; }; + 939DA93760C976BA9619304DE31FC1F5 /* DDDKeychainWrapper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DDDKeychainWrapper.framework; path = DDDKeychainWrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 939FD1D7A4776591866B15624D1BBF47 /* NSString-Helper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString-Helper-prefix.pch"; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 944260FE741F60E05060465C480AAA99 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; - 9451C69F151E68CAB8179FE70EA21605 /* FBSDKLoginKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKLoginKit.xcconfig; sourceTree = ""; }; - 945353F195A02CE031D020E67CD84E4B /* BFAppLinkTarget.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkTarget.h; path = Bolts/iOS/BFAppLinkTarget.h; sourceTree = ""; }; - 945D81D88DDEDF07E296B9C59D534F9F /* Base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Base64.h; path = submodules/Base64/Base64/Base64.h; sourceTree = ""; }; - 946B452218B157D0E2067CF5618843AB /* PNUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNUser.m; sourceTree = ""; }; - 959DD0E72C23B7B4B9875E54B5841EDC /* EXPMatchers+beInTheRangeOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInTheRangeOf.h"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.h"; sourceTree = ""; }; - 9694FE07BB9391AF5CDC5CA32F3F63CC /* FBSDKShareUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareUtility.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareUtility.m; sourceTree = ""; }; - 96F57B0A99DCBF0A8ECF1CADAD18AF86 /* NSString-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString-Helper-umbrella.h"; sourceTree = ""; }; - 97189A6488255926A630E3D59B27D22A /* FBSDKMessengerIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMessengerIcon.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.h; sourceTree = ""; }; - 971E81322ADCCAB5404A2FFE69452EC3 /* BFTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFTask.h; path = Bolts/Common/BFTask.h; sourceTree = ""; }; - 976445002047578D8EA72D058B6354F2 /* RZDataBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RZDataBinding.framework; path = RZDataBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 97D6165FE9CF21FC9480D57AAFD9E908 /* DJLocalizableString.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DJLocalizableString.m; path = DJLocalization/DJLocalizableString.m; sourceTree = ""; }; - 9816F872012B4A2693B97728B917ACE1 /* NSUserDefaults-AESEncryptor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSUserDefaults-AESEncryptor-dummy.m"; sourceTree = ""; }; - 981B36CBA14D504B164C940222677DC7 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - 98512618293EDB25CB0E3E47820B850D /* PEARFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PEARFileManager.h; path = "PEAR-FileManager-iOS/PEARFileManager.h"; sourceTree = ""; }; - 993770F71FC9E2E310C33E2A3419CE49 /* FBSDKWebDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKWebDialog.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialog.h; sourceTree = ""; }; - 994622D30C0F4F0435DD448329A91A80 /* SPTExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExample.h; path = Specta/Specta/SPTExample.h; sourceTree = ""; }; - 9A604665CBF19E7F636BAEBD95436928 /* RZDBTransforms.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBTransforms.h; path = RZDataBinding/RZDBTransforms.h; sourceTree = ""; }; - 9A8C3DC923577CC64C5DEA21A8FC9132 /* FBSDKShareVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareVideo.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideo.m; sourceTree = ""; }; - 9BCE67703CD7B3CC6762F1498BB79A72 /* AFOAuth2Manager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFOAuth2Manager.m; sourceTree = ""; }; - 9BFFCA91B8B3AFFD06111135CC339728 /* FBSDKMessageDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMessageDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKMessageDialog.m; sourceTree = ""; }; - 9C0D484CCB9A8DEAC4A1AB4DFC73BF7B /* BFTaskCompletionSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFTaskCompletionSource.m; path = Bolts/Common/BFTaskCompletionSource.m; sourceTree = ""; }; - 9C970CDEEFB4AB18968DC8BC54189B8E /* FBSDKErrorRecoveryConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorRecoveryConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorRecoveryConfiguration.m; sourceTree = ""; }; - 9CC1F22206C478E6AF5C96F84ADC72A3 /* FBSDKIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKIcon.h; sourceTree = ""; }; - 9DAF821757C7F4FDD89B8B7E2BE81AEE /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; }; - 9DDAF41BDDB709F79F3233235A2FE70D /* FBSDKCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCrypto.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Cryptography/FBSDKCrypto.m; sourceTree = ""; }; - 9ED5E6CD01288270601A826CF1CEFDF9 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9EE7AA68499E8F596F53889595385C81 /* PEAR-FileManager-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PEAR-FileManager-iOS-dummy.m"; sourceTree = ""; }; - 9F45814A2813D037FCCA1A533BD7D25D /* AFHTTPRequestSerializer+OAuth2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFHTTPRequestSerializer+OAuth2.m"; sourceTree = ""; }; - 9F5D272957C8E06087C1513E206FBB55 /* FBSDKBridgeAPIProtocolNativeV1.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolNativeV1.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolNativeV1.m; sourceTree = ""; }; - 9F5F32A6D215C6B3EE4E9CC81EE092FD /* FBSDKLogo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLogo.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKLogo.m; sourceTree = ""; }; - 9FC89226F1EACF8B7574B667AF7EE4FD /* FBSDKShareVideoContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareVideoContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideoContent.h; sourceTree = ""; }; - A02F8924C375CFA6C35290BAC9A5E558 /* VatNumber+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VatNumber+Helper.m"; path = "CodFis-Helper/VatNumber+Helper.m"; sourceTree = ""; }; - A061A64AFE09C31424D0C2B989C7B995 /* NSString+Helper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Helper.h"; path = "NSString-Helper/NSString+Helper.h"; sourceTree = ""; }; - A0C24F744098F257137E2CEBD373AD8B /* twofish.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = twofish.h; path = NACrypto/TwoFish/twofish.h; sourceTree = ""; }; - A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Bolts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A1276C46ED3D6CA0186911127544A546 /* FBSDKAppInviteDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppInviteDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.h; sourceTree = ""; }; - A24E6E21DE49BB3C017DF35F73317BD6 /* FBSDKSystemAccountStoreAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSystemAccountStoreAdapter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.m; sourceTree = ""; }; - A2FD059892C1D6494634AC41C4B1E506 /* RZDBCoalesce.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBCoalesce.h; path = RZDataBinding/RZDBCoalesce.h; sourceTree = ""; }; - A34C570C556CECB69A5AA05A5E06E41F /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; - A372D5DC5C403E1FC1F5D8364A67400B /* Expecta+Snapshots.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Expecta+Snapshots.xcconfig"; sourceTree = ""; }; - A38B57CA99C5DF5C8BA685471F3A311A /* NSDate_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSDate_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A3F6DC211ED62B6CF3ED8B3CFE443DD5 /* ALView+PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ALView+PureLayout.h"; path = "PureLayout/PureLayout/ALView+PureLayout.h"; sourceTree = ""; }; - A4E2A78BC79D2D952EA296F970905DFB /* PNObjectFormData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectFormData.m; sourceTree = ""; }; - A4E8196C7952AF52995C1C1295E2AE69 /* NANSString+Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NANSString+Utils.m"; path = "NACrypto/NANSString+Utils.m"; sourceTree = ""; }; - A536E514CD1C869388B4E93C76473A28 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A584931C1759D3FBA1FDB7A66EFA0E9D /* FBSDKLoginManagerLoginResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginManagerLoginResult.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManagerLoginResult.m; sourceTree = ""; }; - A5A4E7CC7152130111E88AA5403EEC75 /* FBSDKShareOpenGraphContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphContent.m; sourceTree = ""; }; - A637A619C254664BAFA4BE0038EB4CF9 /* FBSDKUIUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKUIUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKUIUtility.h; sourceTree = ""; }; - A640590C35B678CE7CEB1A1284909476 /* FBSDKLikeObjectType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeObjectType.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLikeObjectType.h; sourceTree = ""; }; - A6470565DD0CEB5C7FE7B84237196DB8 /* FBSDKLoginKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSDKLoginKit.modulemap; sourceTree = ""; }; - A7ACCFBE1137A0DF73114F0FAFA661EF /* FBSDKLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLogger.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKLogger.h; sourceTree = ""; }; - A7E88BDA81FCFDB3E8B0352C23D46D07 /* FBSDKDynamicFrameworkLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDynamicFrameworkLoader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDynamicFrameworkLoader.h; sourceTree = ""; }; - A8048FE35CB996870EAFE39A50B713BF /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + 93F1671BDA2BD54338899738A49727BB /* FBSDKCoreKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKCoreKit+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h"; sourceTree = ""; }; + 941ACFDABEB4B91AD30E14BEEF76D66F /* FBSDKMutableCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMutableCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMutableCopying.h; sourceTree = ""; }; + 941DCE153E15017AC618ADB05AC3D959 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; + 94C27912D5396959C83DE85EB2A1EC41 /* _FBSDKLoginRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _FBSDKLoginRecoveryAttempter.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/_FBSDKLoginRecoveryAttempter.m; sourceTree = ""; }; + 94F76EE92291F93F1DA6A6B5ADBCB191 /* int128_aes128ctr.c */ = {isa = PBXFileReference; includeInIndex = 1; name = int128_aes128ctr.c; path = src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c; sourceTree = ""; }; + 9525100D5D188FBD3AFFC44374EBD5A5 /* FBSDKGameRequestContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestContent.m; sourceTree = ""; }; + 9530FCD7B93F0B744402DB6E22ED3029 /* CocoaSecurity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaSecurity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 957AFDB8BD8EA616C31739F4B1A9B1EB /* crypto_box.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_box.h; path = src/libsodium/include/sodium/crypto_box.h; sourceTree = ""; }; + 95812E463C1CC47D16F5FC56077AF5C0 /* FBSDKConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKConstants.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKConstants.m; sourceTree = ""; }; + 9667DCA4B44D1886B9DA6DAC71B997A5 /* NAChloride.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = NAChloride.modulemap; sourceTree = ""; }; + 966EDA7A7132FFBFEA09C7B9137C953C /* NABox.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NABox.m; path = NAChloride/NABox.m; sourceTree = ""; }; + 96DA52E8B58E7749A40E7993C6B0F93C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9792039D74295CBC42DFBB07F87291F8 /* Bolts.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Bolts.modulemap; sourceTree = ""; }; + 98419A69A25EA4E4358DE27B49FB0401 /* FBSDKDialogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDialogConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.m; sourceTree = ""; }; + 99210DD3D3B66A3805451B1DD1AA1B72 /* crypto_onetimeauth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_onetimeauth.h; path = src/libsodium/include/sodium/crypto_onetimeauth.h; sourceTree = ""; }; + 993A772CC4CAD822337C9EE18EBAACF0 /* PNUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNUser.m; sourceTree = ""; }; + 99741AD0D1EF19772220C2DE52A62739 /* EXPMatchers+conformTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+conformTo.h"; path = "Expecta/Matchers/EXPMatchers+conformTo.h"; sourceTree = ""; }; + 99A321DA9208AA28B6FF7F824AEBABE7 /* FBSDKMessengerIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMessengerIcon.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKMessengerIcon.h; sourceTree = ""; }; + 99C9577C00F0AE4A3D5AA53F4881D43F /* blake2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = blake2.h; path = src/libsodium/crypto_generichash/blake2/ref/blake2.h; sourceTree = ""; }; + 99F825781FC1217AF478A27A6EBD535D /* stream_salsa20_ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa20_ref.c; path = src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c; sourceTree = ""; }; + 99FA268896DA1B5393BE0448C850EAD5 /* PNObject-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject-umbrella.h"; sourceTree = ""; }; + 99FF86924CF6A745BA2665FB22EA5983 /* NASecretBox.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NASecretBox.m; path = NAChloride/NASecretBox.m; sourceTree = ""; }; + 9A14A9053EADFD30565D90F227B1270E /* FBSDKAppInviteContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppInviteContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteContent.h; sourceTree = ""; }; + 9AE298916ECA941BC918CCCCA61E27CE /* curve25519_ref10.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = curve25519_ref10.h; path = src/libsodium/include/sodium/private/curve25519_ref10.h; sourceTree = ""; }; + 9BB60BF55A07EC800EF01404CD5FE4EF /* crypto_generichash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_generichash.h; path = src/libsodium/include/sodium/crypto_generichash.h; sourceTree = ""; }; + 9BBD3492DB6AE32163870E96389C1148 /* EXPMatchers+beGreaterThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThan.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThan.m"; sourceTree = ""; }; + 9BC009F4FBC70B0C3A66D4EDD57CB225 /* EXPMatchers+beSupersetOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beSupersetOf.h"; path = "Expecta/Matchers/EXPMatchers+beSupersetOf.h"; sourceTree = ""; }; + 9BDD269CEF3F675EF033519A6531722F /* NAChloride-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NAChloride-dummy.m"; sourceTree = ""; }; + 9BE341DCFEC9AD1C1B9A7CA1753F9D21 /* box_curve25519xsalsa20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = box_curve25519xsalsa20poly1305.c; path = src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c; sourceTree = ""; }; + 9D45529C2E6A80485A29A66DE5473F3C /* FBSDKAccessTokenCacheV3_17.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3_17.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_17.m; sourceTree = ""; }; + 9D8A5F5C709DC303EA1FF3575EED2894 /* secretbox_xsalsa20poly1305_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = secretbox_xsalsa20poly1305_api.c; path = src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c; sourceTree = ""; }; + 9DCA25EB306C6619796460267330D4D0 /* FBSDKMaleSilhouetteIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMaleSilhouetteIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKMaleSilhouetteIcon.m; sourceTree = ""; }; + 9EC65DB8E5ADE560BF642DFE290971EE /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9F2349867BCCE97BD15CD0C2FADEF5D6 /* UIDevice-Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIDevice-Utils-dummy.m"; sourceTree = ""; }; + A10D777F0C7B5738A2089B0DF6403022 /* FBSDKErrorConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKErrorConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorConfiguration.m; sourceTree = ""; }; + A1328A189405DE4B449924ECD32352FA /* PNObjectUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectUtilities.m; sourceTree = ""; }; + A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Bolts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A1636A3203860367BBF3E9F9AB99654E /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; + A222E367C792B4F40ED1E1104136B1D4 /* verify_16.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_16.c; path = src/libsodium/crypto_verify/16/ref/verify_16.c; sourceTree = ""; }; + A22B1409D1983A06CC598312132181B5 /* BFExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFExecutor.m; path = Bolts/Common/BFExecutor.m; sourceTree = ""; }; + A2D14FE4FBE1078C1FA7F126EA698B90 /* core_hchacha20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = core_hchacha20.h; path = src/libsodium/crypto_core/hchacha20/core_hchacha20.h; sourceTree = ""; }; + A2F10B150ECF113CC56C93A323CCFBEC /* crypto_aead_aes256gcm.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_aead_aes256gcm.h; path = src/libsodium/include/sodium/crypto_aead_aes256gcm.h; sourceTree = ""; }; + A30F8D5345C024B7F0DC129DAB158D8D /* FBSDKShareVideo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareVideo.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideo.m; sourceTree = ""; }; + A31697E2B9D8E445B3466DD113C08D09 /* FBSDKAppEvents.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEvents.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppEvents.m; sourceTree = ""; }; + A3680E8DD8B3D1B0476A8EB3F0CE1724 /* ExpectaObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaObject.m; path = Expecta/ExpectaObject.m; sourceTree = ""; }; + A38EAC29F9FF8FEDBFD9E146C5464CC4 /* FBSDKAppLinkResolver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppLinkResolver.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkResolver.m; sourceTree = ""; }; + A3B7D6B693F46B262654A48CDEF102D2 /* AFAutoPurgingImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFAutoPurgingImageCache.m; path = "UIKit+AFNetworking/AFAutoPurgingImageCache.m"; sourceTree = ""; }; + A3BC085B42975ADAF8E66E9D5E1471F4 /* FBSDKWebDialogView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKWebDialogView.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialogView.m; sourceTree = ""; }; + A3BEFDF6D6A4AF274BE2EE0E461203E7 /* AFJSONResponseSerializerWithData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFJSONResponseSerializerWithData.m; sourceTree = ""; }; + A46BA18CE1F5DAD4BD40817224226BBB /* FBSDKBoltsMeasurementEventListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBoltsMeasurementEventListener.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppLink/FBSDKBoltsMeasurementEventListener.h; sourceTree = ""; }; + A4BFC4C5BC7C871BB31C63247EE3C3BB /* crypto_stream_salsa2012.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_salsa2012.h; path = src/libsodium/include/sodium/crypto_stream_salsa2012.h; sourceTree = ""; }; + A52C9B79FF9C19CAA5979B77BB66548C /* FBSDKViewImpressionTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKViewImpressionTracker.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKViewImpressionTracker.h; sourceTree = ""; }; + A52E6AFC4F640F41A9A4ECCB0954578C /* FBSDKLoginKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginKit.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginKit.h; sourceTree = ""; }; + A57D1CCDA0A24B3A8E6B45A79C761CB9 /* stream_salsa2012.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa2012.c; path = src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c; sourceTree = ""; }; + A5BE442D2316C7AB6911990E5D07BC87 /* PureLayout+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PureLayout+Internal.h"; path = "PureLayout/PureLayout/PureLayout+Internal.h"; sourceTree = ""; }; + A5C5CB69C1BB4CBD7471203E4F343C12 /* FBSDKShareDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDefines.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareDefines.h; sourceTree = ""; }; + A5DC8F7247FA00CA3E9E5112C42B533B /* PNObjectConfig.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectConfig.m; sourceTree = ""; }; + A6629142D178BC550B5EB0EE2A813C58 /* FBSDKShareKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKShareKit.xcconfig; sourceTree = ""; }; + A6849595FD3572B8D686BFDF4B599544 /* UIStoryboard+DJLocalization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStoryboard+DJLocalization.m"; path = "DJLocalization/UIStoryboard+DJLocalization.m"; sourceTree = ""; }; + A6A153905DBD3FA069D9E52DEB08824A /* crypto_verify_64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_verify_64.h; path = src/libsodium/include/sodium/crypto_verify_64.h; sourceTree = ""; }; + A6AC0451F8C86129CB34B2F89194768E /* blake2b-compress-ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "blake2b-compress-ref.c"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c"; sourceTree = ""; }; + A6E4D42384B53C711693938C29427659 /* crypto_hash_sha512.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_hash_sha512.h; path = src/libsodium/include/sodium/crypto_hash_sha512.h; sourceTree = ""; }; + A6F9A6BCF07C3BC7628FA39D14BE7C98 /* FBSDKURLSessionTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKURLSessionTask.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLSessionTask.m; sourceTree = ""; }; + A6FE7BF80394A99EA2695EA1907814F1 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; + A70141ECBAF9C85DAFB9334D2B28C6A4 /* FBSDKSystemAccountStoreAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSystemAccountStoreAdapter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.h; sourceTree = ""; }; + A73683986518393D96155AF12602348E /* PNObject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = PNObject.framework; path = PNObject.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A7DF549436CBBC1BF579D1131D662C54 /* FBSDKSharePhotoContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSharePhotoContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhotoContent.m; sourceTree = ""; }; + A8111BDDE02BF2870D7BF8B97269F051 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A81D29954260D0402254CE173E4A53C0 /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; }; + A81E2C176749C2E13C9E932DB1AB44AF /* FBSDKPaymentObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKPaymentObserver.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKPaymentObserver.m; sourceTree = ""; }; + A833C87170F9EA398E82E63AD041E8C4 /* NAChloride-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NAChloride-umbrella.h"; sourceTree = ""; }; A838922082CBB903238CF0302A9F06FC /* Pods-PNObject_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PNObject_Tests-dummy.m"; sourceTree = ""; }; - A84F612C0B213CDE3CF3E84E7EAB1524 /* FBSDKPaymentObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKPaymentObserver.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKPaymentObserver.h; sourceTree = ""; }; - A8A4CDE1706D993214A2E87792FCA9DA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A8A76AFFE31CCA1152439BD7D7EFB72E /* BFAppLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLink.m; path = Bolts/iOS/BFAppLink.m; sourceTree = ""; }; + A8508A663B95FE29B0DBF5FF60B57224 /* RZDataBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDataBinding.h; path = RZDataBinding/RZDataBinding.h; sourceTree = ""; }; + A852BC8B4776918EEB4824ED482BCEF9 /* blake2b-load-sse2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2b-load-sse2.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h"; sourceTree = ""; }; + A905FDF0A7C5EE673BCF2B6A922F1BDC /* BFCancellationTokenSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationTokenSource.m; path = Bolts/Common/BFCancellationTokenSource.m; sourceTree = ""; }; + A9AFB89DD4451710312AB5D14EE90F69 /* EXPMatchers+respondTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+respondTo.h"; path = "Expecta/Matchers/EXPMatchers+respondTo.h"; sourceTree = ""; }; + A9F042AE48A642312D374D24AB3942CB /* FBSDKGraphRequestBody.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestBody.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestBody.m; sourceTree = ""; }; + A9F5C0E666F6401BC4BF95AC282AFCCE /* Bolts-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Bolts-umbrella.h"; sourceTree = ""; }; AA1CE72928E46C7F70D4BBE1CD90756D /* Pods-PNObject_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNObject_Example-umbrella.h"; sourceTree = ""; }; - AA6287A2BFFD391C0E946DD927FD9972 /* FBSDKAccessTokenCacheV4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV4.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV4.h; sourceTree = ""; }; - AB0DCBCC5AD549D2A9FCA2C88D647130 /* EXPFloatTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPFloatTuple.h; path = Expecta/EXPFloatTuple.h; sourceTree = ""; }; - AB4B4921BF62C7F933F80118BFFE8071 /* EXPMatchers+beginWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beginWith.m"; path = "Expecta/Matchers/EXPMatchers+beginWith.m"; sourceTree = ""; }; - AB7407F595EBA89BD793F7997B082CD8 /* AFImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFImageDownloader.m; path = "UIKit+AFNetworking/AFImageDownloader.m"; sourceTree = ""; }; - ABB89100579ACA9017065F49F37A8B5B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - ABC6E833C09273BA347F3A66D98FABDE /* FBSDKCloseIcon.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCloseIcon.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKCloseIcon.m; sourceTree = ""; }; - ABD56AD995873D9480E181B6857BE821 /* AFHTTPRequestSerializer+OAuth2.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFHTTPRequestSerializer+OAuth2.h"; sourceTree = ""; }; - ABE5332F1BA9386C4A6D0C8FDE87829B /* PureLayout.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = PureLayout.modulemap; sourceTree = ""; }; + AA2B2F56C1557B89E51AAB67C1627856 /* FBSDKLoginManager+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginManager+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManager+Internal.h"; sourceTree = ""; }; + AA98CF0D4AF4C7D4E17C8E8CEF9B040B /* UIDevice-Utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "UIDevice-Utils.modulemap"; sourceTree = ""; }; + AAF0374EE1B643C8AC457809FE4628BD /* PNObject+Protected.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject+Protected.h"; sourceTree = ""; }; + AB10A898CDEE9683D0CC9F1694A09835 /* FBSDKIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKIcon.h; sourceTree = ""; }; + AB33F2F102D07A3BBF16CEC3C818F3EF /* BFTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFTask.h; path = Bolts/Common/BFTask.h; sourceTree = ""; }; + AB4FEE2DB5548DAE4AA4FFB7FC3D245E /* FBSDKCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKCopying.h; sourceTree = ""; }; + ABA3BDFD795AFE8107ED04211947A86B /* nv-ios-http-status.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "nv-ios-http-status.modulemap"; sourceTree = ""; }; + ABBCCA040755639A59FF284C851A90DD /* BFAppLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLink.h; path = Bolts/iOS/BFAppLink.h; sourceTree = ""; }; + ABD8D96E4F004588AA24A0CE2DA10111 /* BFAppLinkReturnToRefererView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererView.h; path = Bolts/iOS/BFAppLinkReturnToRefererView.h; sourceTree = ""; }; AC21CDE2049E2BAD2A2390F2EC6056A1 /* Pods-PNObject_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-PNObject_Example.modulemap"; sourceTree = ""; }; - AC245A7654AEE19119535DD40643EFBA /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; }; - AC2834EB5A8A7B8EDF87F6B5592FDD45 /* EXPMatchers+raiseWithReason.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raiseWithReason.m"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.m"; sourceTree = ""; }; - AC89DA4A92615B2550A089D82C0C4D60 /* EXPMatchers+raise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raise.h"; path = "Expecta/Matchers/EXPMatchers+raise.h"; sourceTree = ""; }; - ACE24F4C2CEF0BE6389EFD03D1C5E76C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AD0A0EB0536968DDAD1A8C542A55C607 /* SPTExampleGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExampleGroup.h; path = Specta/Specta/SPTExampleGroup.h; sourceTree = ""; }; - AD113893D39C850BB2383A5EC7EC832C /* KeccakF-1600-opt32-settings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-opt32-settings.h"; path = "NACrypto/keccak/KeccakF-1600-opt32-settings.h"; sourceTree = ""; }; - AD1557A0706C193DACDA20ABC84DA976 /* PNObject.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNObject.xcconfig; sourceTree = ""; }; - AD2A53DF2B6BCAB906EC72B573214E37 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; - ADB5A8D408033C40D9295B6983F2F7ED /* PNObject-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject-dummy.m"; sourceTree = ""; }; - ADD8B6E65E8897BE7EE950418226325C /* CodFis-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "CodFis-Helper.xcconfig"; sourceTree = ""; }; - ADEE7E13CC7E07607B280EFDD530AEFA /* PNObject+Protected.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject+Protected.m"; sourceTree = ""; }; - ADF0DEE2B77805B9861F3543BC0D221C /* FBSDKShareVideoContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareVideoContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideoContent.m; sourceTree = ""; }; - ADF18947C132306DC38A9D9CD7250B92 /* NAHMAC.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAHMAC.m; path = NACrypto/NAHMAC.m; sourceTree = ""; }; - AFC3891042E13ED9AA3C81E6F95338E7 /* CocoaSecurity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaSecurity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B056B9C12B456A7D1726FD32E13DCE05 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B0DA4D12B8F9B9FA38E71505C31CE1F2 /* SPTTestSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTTestSuite.m; path = Specta/Specta/SPTTestSuite.m; sourceTree = ""; }; - B1147994BCE8F44DC977AFA3A2B72243 /* FBSDKWebDialogView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKWebDialogView.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialogView.h; sourceTree = ""; }; - B19653E8D4F25B74BAE1E3F242FA765B /* PureLayoutDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayoutDefines.h; path = PureLayout/PureLayout/PureLayoutDefines.h; sourceTree = ""; }; - B221FDA83880FE1D71BFB7C5F307B26E /* NSString+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Helper.m"; path = "NSString-Helper/NSString+Helper.m"; sourceTree = ""; }; - B23435F88C902169A799BF19874C955A /* RZDataBinding-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RZDataBinding-umbrella.h"; sourceTree = ""; }; - B238FF9EA8201441992BA959402B8855 /* FBSDKAppEventsDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsDeviceInfo.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsDeviceInfo.h; sourceTree = ""; }; - B252555CDA4C12995D564CC15F651C14 /* FBSDKMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMacros.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMacros.h; sourceTree = ""; }; - B322C23D6B9699614544F1CE743D1558 /* FBSDKBridgeAPIResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIResponse.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIResponse.m; sourceTree = ""; }; - B32CDBFFDD02BA6B9E6B850FC67515E7 /* AFOAuthCredential.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFOAuthCredential.h; sourceTree = ""; }; - B3A3A36799B348C06733A7F09079873D /* UIImage+Diff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Diff.h"; path = "FBSnapshotTestCase/Categories/UIImage+Diff.h"; sourceTree = ""; }; - B3DA3718110DAD367B50AB0FEBC60C52 /* FBSDKLikeBoxView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeBoxView.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxView.h; sourceTree = ""; }; - B42983F65301E6FC33FB5E0B8D7D7075 /* FBSDKAccessTokenCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCache.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCache.h; sourceTree = ""; }; - B44A781A102582BEC03C6D753F285E2A /* FBSDKAppEventsUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsUtility.h; sourceTree = ""; }; - B5DF3E685EABDC9ECD8426EB76969ADA /* FBSDKShareDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDefines.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareDefines.h; sourceTree = ""; }; - B5EEC97E4D9DA6D5EC9237DF2250DA26 /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; - B615E5CCF71340779660E61D883C92C4 /* FBSDKBridgeAPIProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocol.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIProtocol.h; sourceTree = ""; }; - B618FA70916A984C224F4D27D5FD0CC8 /* BFCancellationTokenSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationTokenSource.m; path = Bolts/Common/BFCancellationTokenSource.m; sourceTree = ""; }; - B62B98E443A7D9503937CC28976ABBC0 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B63AC222718E4159E2F01CF58FFA8FE8 /* NSLayoutConstraint+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSLayoutConstraint+PureLayout.m"; path = "PureLayout/PureLayout/NSLayoutConstraint+PureLayout.m"; sourceTree = ""; }; - B6B1D5A61701A33E46121FEFE9AAEAFD /* FBSDKShareKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSDKShareKit.xcconfig; sourceTree = ""; }; - B7057520591F0ACC2BE5226ADFF4CD33 /* StrongestPasswordValidator.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = StrongestPasswordValidator.modulemap; sourceTree = ""; }; - B7B824E2CACE0E0262691A6A9329FD3E /* UIImage+Compare.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Compare.h"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.h"; sourceTree = ""; }; - B7E3572207F064E3A811BA3090370116 /* FBSDKTypeUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTypeUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTypeUtility.m; sourceTree = ""; }; - B880FF526A19C1F401F5B11DD2682065 /* PureLayout-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-prefix.pch"; sourceTree = ""; }; - B89D5852A636064D97080799DA54D2BD /* FBSDKShareVideo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareVideo.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareVideo.h; sourceTree = ""; }; + ACC5CE5D98FE7E895D3040E4429B1079 /* DJLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalization.h; path = DJLocalization/DJLocalization.h; sourceTree = ""; }; + ACC73415F5B06BA830EE250790DB885D /* AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-prefix.pch"; sourceTree = ""; }; + ACD9CAEDA237A25C5415BB6D52BAD5FE /* EXPMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcher.h; path = Expecta/EXPMatcher.h; sourceTree = ""; }; + AD7F63152F12115E68C396CA45BDA0F2 /* stream_salsa20_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa20_api.c; path = src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c; sourceTree = ""; }; + ADD5C3DB264E89F21FB96C78C64528B9 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + ADDA5C849898EA5976AA808E33538AB8 /* XCTestCase+Specta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTestCase+Specta.h"; path = "Specta/Specta/XCTestCase+Specta.h"; sourceTree = ""; }; + AE43ACD5173438191937C9D3D4570752 /* FBSDKServerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKServerConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration.m; sourceTree = ""; }; + AF26ABF0354D711CB3728359DFD82ADD /* Specta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Specta.framework; path = Specta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AF4FFBF733CC2851795F347E39E6FC8F /* shorthash_siphash24_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = shorthash_siphash24_api.c; path = src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c; sourceTree = ""; }; + B028158A09E21ACBEEED97F13AACDA7E /* EXPMatchers+beGreaterThanOrEqualTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beGreaterThanOrEqualTo.h"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.h"; sourceTree = ""; }; + B029183DC576E43682E1243527D44483 /* FBSDKLoginError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginError.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.h; sourceTree = ""; }; + B02EECFE53B0F2B0172DFB1A40C4E227 /* DDDKeychainWrapper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DDDKeychainWrapper-umbrella.h"; sourceTree = ""; }; + B04967A1795DAF6F76BAAD59C9A9FDF8 /* aead_chacha20poly1305.c */ = {isa = PBXFileReference; includeInIndex = 1; name = aead_chacha20poly1305.c; path = src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c; sourceTree = ""; }; + B0D3D1906790496F89ED4761B2880803 /* poly1305_donna.c */ = {isa = PBXFileReference; includeInIndex = 1; name = poly1305_donna.c; path = src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c; sourceTree = ""; }; + B12ACEF13E9287924CB679C6413C5B53 /* FBSDKShareDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.h; sourceTree = ""; }; + B17BB7DB1FA922C37659BE122B47517E /* crypto_stream_aes128ctr.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_aes128ctr.h; path = src/libsodium/include/sodium/crypto_stream_aes128ctr.h; sourceTree = ""; }; + B1D815ACD30E35E02664182C9441A0B2 /* scalarmult_curve25519.c */ = {isa = PBXFileReference; includeInIndex = 1; name = scalarmult_curve25519.c; path = src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c; sourceTree = ""; }; + B2A6593883D83EF983DB219C3D1F76C0 /* crypto_sign_ed25519.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_sign_ed25519.h; path = src/libsodium/include/sodium/crypto_sign_ed25519.h; sourceTree = ""; }; + B2B1479571E3F21D2D72CA535A3F0B19 /* FBSDKShareAPI.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareAPI.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareAPI.m; sourceTree = ""; }; + B2C47746B6F6369F0689571CB0BF2528 /* FBSDKBridgeAPIProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocol.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIProtocol.h; sourceTree = ""; }; + B3DA95A0FEBCE12F7B709FBC601A445D /* CodFis-Helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CodFis-Helper-dummy.m"; sourceTree = ""; }; + B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + B405C887B463B57319E82990FDC78E4F /* NSString-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString-Helper-umbrella.h"; sourceTree = ""; }; + B40EB31D310BAD3F8F0DD2CC557AC30B /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; + B425C32D8332F4ED7743B235428401E4 /* FBSDKLoginTooltipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginTooltipView.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginTooltipView.m; sourceTree = ""; }; + B441C5D2BC7C920385A5F2D8E921E43E /* _FBSDKTemporaryErrorRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _FBSDKTemporaryErrorRecoveryAttempter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/_FBSDKTemporaryErrorRecoveryAttempter.h; sourceTree = ""; }; + B4874B07FDBEF9FCB54B07E01ACFCEA0 /* UIDevice-Utils.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "UIDevice-Utils.xcconfig"; sourceTree = ""; }; + B4AFBF0A1E4C54FD7C53251B22AC2008 /* BFAppLinkResolving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkResolving.h; path = Bolts/iOS/BFAppLinkResolving.h; sourceTree = ""; }; + B524C3DB6F2427BC418535EC09D402EE /* FBSDKTooltipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTooltipView.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKTooltipView.h; sourceTree = ""; }; + B52A920C9350CE3F445D2E566CBFA13F /* FBSDKAppEvents+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKAppEvents+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEvents+Internal.h"; sourceTree = ""; }; + B594EB619E659F243A8E562D53B2A3BE /* curve25519_ref10.c */ = {isa = PBXFileReference; includeInIndex = 1; name = curve25519_ref10.c; path = src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c; sourceTree = ""; }; + B5B20683747C1CA3AEC777791E7A9AF4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B5C0E39FD49B17202810280292B39AFF /* EXPMatchers+beGreaterThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beGreaterThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beGreaterThanOrEqualTo.m"; sourceTree = ""; }; + B61568E383DA567FF5DC64991D8FFB3A /* pwhash_scryptsalsa208sha256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = pwhash_scryptsalsa208sha256.c; path = src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c; sourceTree = ""; }; + B65E53D5223314EB74989BE8E13BEA53 /* FBSDKShareKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKShareKit.framework; path = FBSDKShareKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B665577F72504FDFE53A0063ACC03660 /* Bolts.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Bolts.framework; path = Bolts.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B674627806B34691DE49FA8285597F50 /* NAStream.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAStream.h; path = NAChloride/NAStream.h; sourceTree = ""; }; + B67C0A63B2CE7171F8532EFADD49A2D5 /* NSUserDefaults-AESEncryptor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSUserDefaults-AESEncryptor-prefix.pch"; sourceTree = ""; }; + B684987C2C3EC3FA8B28FAE91CF0AB7E /* hash_sha512_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hash_sha512_api.c; path = src/libsodium/crypto_hash/sha512/hash_sha512_api.c; sourceTree = ""; }; + B6B38852D48526E9C3CABB5612761E41 /* StrongestPasswordValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = StrongestPasswordValidator.framework; path = StrongestPasswordValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B736AD34BB3DD24B35FA6768548AAB57 /* FBSDKBoltsMeasurementEventListener.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBoltsMeasurementEventListener.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppLink/FBSDKBoltsMeasurementEventListener.m; sourceTree = ""; }; + B7F597699D5D4F500FEE8C551EDD3EC3 /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Expecta.framework; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B813514AA2954C9C2FFB8CB179FFC9A4 /* FBSDKVideoUploader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKVideoUploader.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKVideoUploader.h; sourceTree = ""; }; + B837348DEBA13FAD39913F413866C21E /* NSDate_Utils.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NSDate_Utils.xcconfig; sourceTree = ""; }; + B873500D5E5AC54899F883F7DCCE9FBD /* NSUserDefaults_AESEncryptor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSUserDefaults_AESEncryptor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B8F890AACB551F53A3EF64D661F0A11D /* Pods-PNObject_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNObject_Tests-frameworks.sh"; sourceTree = ""; }; - B9070BC8E31EBF0EDA1121AD77C6297F /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - B9D18FDBCFE49F1D93A355C228E14565 /* PEAR-FileManager-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "PEAR-FileManager-iOS.xcconfig"; sourceTree = ""; }; - BA1D94797373650E47CEC08F5EEF7213 /* NADigest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NADigest.h; path = NACrypto/NADigest.h; sourceTree = ""; }; - BA39B7375F53FB1DD8E65EF133B60D65 /* NASecRandom.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NASecRandom.h; path = NACrypto/NASecRandom.h; sourceTree = ""; }; - BA6BA3D44B988A0B1260AD9AD35E6433 /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKCoreKit.framework; path = FBSDKCoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BA92F0D268EE029C6608E79B56F49C48 /* BFAppLinkResolving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkResolving.h; path = Bolts/iOS/BFAppLinkResolving.h; sourceTree = ""; }; - BB1E76A7FC292CF74CBBF09225BB812A /* NSString-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "NSString-Helper.modulemap"; sourceTree = ""; }; - BB74C2E006965DAA53EDFA689D6320DE /* FBSDKAccessTokenCacheV3_21.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_21.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_21.h; sourceTree = ""; }; - BBA46B79297081DBFB0341C024FEF404 /* FBSDKCoreKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCoreKit.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit.h; sourceTree = ""; }; - BBE33F43406A82D6606B44E3C7711DFF /* FBSDKTriStateBOOL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTriStateBOOL.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTriStateBOOL.m; sourceTree = ""; }; - BC07DBDEC936E81E24DDB422A5A1BF76 /* FBSDKLoginError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginError.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.h; sourceTree = ""; }; - BC324F8332AE9E945ABC1A685C3A16FD /* FBSDKShareError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareError.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareError.m; sourceTree = ""; }; - BC67AAF4C7AC01B70745C10C2021B27E /* FBSDKVideoUploader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKVideoUploader.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKVideoUploader.m; sourceTree = ""; }; - BC7F6010D92DEF7CCF4527D38FCC69B4 /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; - BCD81B55FF19E8990A0336F1F91EC28E /* FBSDKLoginError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginError.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.m; sourceTree = ""; }; - BE1F9B70CE92EA00C4D9073538E8345C /* Bolts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Bolts.h; path = Bolts/Common/Bolts.h; sourceTree = ""; }; - BE6F3D176C5592D27B3B9012B256D37F /* FBSDKSystemAccountStoreAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSystemAccountStoreAdapter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.h; sourceTree = ""; }; - BE88D3C6E20A2F8CA7B91A377A0C84ED /* FBSDKProfile+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKProfile+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKProfile+Internal.h"; sourceTree = ""; }; - BEC79A91516413A6CB552506C0F67F58 /* FBSDKImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKImageDownloader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKImageDownloader.h; sourceTree = ""; }; - BEF4EE5118CC202ED720B6E3340E10C0 /* FBSDKTooltipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTooltipView.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKTooltipView.m; sourceTree = ""; }; - BFC77BC718D7AF083B584BD80E8A0EF7 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; }; - BFCE8AB4C82B1CC3657B16381CD07DE0 /* AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = AFNetworking.xcconfig; sourceTree = ""; }; - BFD9908703965E4230F2F29C4149C622 /* PureLayout+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PureLayout+Internal.h"; path = "PureLayout/PureLayout/PureLayout+Internal.h"; sourceTree = ""; }; - BFDA2D5E158848E323798569C7A5B6E6 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; }; - BFE77214B29EB93A54C7B9B7322C49F7 /* BFTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFTask.m; path = Bolts/Common/BFTask.m; sourceTree = ""; }; - C00C3DB69C342A27FEA5BFAC83FC2DA7 /* FBSDKPaymentObserver.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKPaymentObserver.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKPaymentObserver.m; sourceTree = ""; }; - C042D38A4D79E0EE4B5BAACC087C0097 /* KeccakSponge.c */ = {isa = PBXFileReference; includeInIndex = 1; name = KeccakSponge.c; path = NACrypto/keccak/KeccakSponge.c; sourceTree = ""; }; - C0873AD84D8669AFD01255C198A2EDAC /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - C0D6AA38A3B6A004EDE3844830FA46AC /* FBSDKURLConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLConnection.h; sourceTree = ""; }; - C0E7F0E4D2BE13D786EBF1F6626F25C9 /* FBSDKKeychainStoreViaBundleID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKKeychainStoreViaBundleID.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStoreViaBundleID.h; sourceTree = ""; }; - C0EC5BCCD69B9AC0DB656AD3E0ED09E9 /* Expecta+Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Expecta+Snapshots.modulemap"; sourceTree = ""; }; - C0F0C246A358693DDC306F1B90514EC8 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - C116C33CC92B0135B96F2986DEB0088C /* FBSDKServerConfigurationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKServerConfigurationManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfigurationManager.m; sourceTree = ""; }; - C18DE21763A46FE06148CD4E475FDCED /* FBSDKBridgeAPIProtocolType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolType.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIProtocolType.h; sourceTree = ""; }; - C1B987DCEA2015FE245E18897637FAC2 /* UIStoryboard+DJLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIStoryboard+DJLocalization.h"; path = "DJLocalization/UIStoryboard+DJLocalization.h"; sourceTree = ""; }; - C1E5A0A864B7FD0594C30E36F8E301B2 /* EXPFloatTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPFloatTuple.m; path = Expecta/EXPFloatTuple.m; sourceTree = ""; }; - C2392FC029A1A994002C8ADEF511B8F1 /* EXPDoubleTuple.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPDoubleTuple.m; path = Expecta/EXPDoubleTuple.m; sourceTree = ""; }; - C23F1F96D04F6E8E84A87A6CA3D92FBD /* StrongestPasswordValidator.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = StrongestPasswordValidator.xcconfig; sourceTree = ""; }; - C245D5CD072B47750DE4D08E8DDBD142 /* FBSDKButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKButton.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKButton.m; sourceTree = ""; }; - C27D1C48B6995DEC8774FCB21C2A73AB /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; - C2E7CE04867D093945660E9CB348043D /* BFAppLinkTarget.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLinkTarget.m; path = Bolts/iOS/BFAppLinkTarget.m; sourceTree = ""; }; - C3FB663C9A2AB4829043EFF16AA8E2E6 /* DJLocalizationSystem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalizationSystem.h; path = DJLocalization/DJLocalizationSystem.h; sourceTree = ""; }; - C40125DE9C9327D703157ACD83124364 /* FBSDKWebDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKWebDialog.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialog.m; sourceTree = ""; }; - C41F4C3E30B9FEDB797BABEC7387D6F2 /* Specta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Specta.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C43F59E2A3FD4E0B586873A944225859 /* ExpectaObject+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ExpectaObject+FBSnapshotTest.h"; sourceTree = ""; }; - C462F435F525F193329733FE1B663B02 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; }; - C4DE62C372896960655DF4F4AE79F293 /* Expecta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Expecta.xcconfig; sourceTree = ""; }; - C501E15233B0A20004D6765FEBEC5587 /* PEARFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PEARFileManager.m; path = "PEAR-FileManager-iOS/PEARFileManager.m"; sourceTree = ""; }; - C51BF51057D8952C72DEE94D98351AE8 /* SPTSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSpec.m; path = Specta/Specta/SPTSpec.m; sourceTree = ""; }; - C5A7186E315B770E902D2173BF2EDEF7 /* FBSDKAppGroupAddDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupAddDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupAddDialog.h; sourceTree = ""; }; - C6F0E180D0735A8BDD8140E3ED1ECE46 /* FBSDKContainerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKContainerViewController.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.m; sourceTree = ""; }; - C79A52426AE71E70F9F3EC9663C174BB /* FBSDKLoginConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginConstants.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginConstants.m; sourceTree = ""; }; - C7D430E79ACC118F36FF35360543F7F2 /* _FBSDKLoginRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _FBSDKLoginRecoveryAttempter.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/_FBSDKLoginRecoveryAttempter.m; sourceTree = ""; }; - C835A128F900B3BBDFD3141151564B10 /* CocoaSecurity-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CocoaSecurity-dummy.m"; sourceTree = ""; }; - C870D49EA251BCE79DBDDD9BA9C5094D /* FBSDKLoginManagerLoginResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManagerLoginResult.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManagerLoginResult.h; sourceTree = ""; }; - C8823A2D48F6DF6733B040E41B3E8B40 /* FBSDKConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKConstants.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKConstants.m; sourceTree = ""; }; - C8C3DA1B6C329756303D88D21DBA86B5 /* DJLocalization.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = DJLocalization.modulemap; sourceTree = ""; }; - C8DBA571A61A22A7774750CCA5474022 /* FBSDKShareLinkContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareLinkContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareLinkContent.m; sourceTree = ""; }; - C8EC1F1C0A24BFC6EFC6D9FD9AA4580F /* DJLocalizableString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalizableString.h; path = DJLocalization/DJLocalizableString.h; sourceTree = ""; }; - C9514264351D3948749D1EE2573621E8 /* CodFis-Helper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-prefix.pch"; sourceTree = ""; }; - C9A54372288EB1A498A507A848165517 /* FBSDKCrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCrypto.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Cryptography/FBSDKCrypto.h; sourceTree = ""; }; - C9C08217EB96F8547B4264E5B2B68248 /* FBSDKProfile.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKProfile.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfile.m; sourceTree = ""; }; - CA5462D9BF7BD17F9FD35872A8841727 /* FBSDKConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKConstants.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKConstants.h; sourceTree = ""; }; - CAD20ACDB2A48E24461F89676394099D /* EXPMatchers+beInstanceOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInstanceOf.m"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.m"; sourceTree = ""; }; - CAF918641A37914DAA46F52FF3A55CDD /* NSUserDefaults_AESEncryptor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSUserDefaults_AESEncryptor.framework; path = "NSUserDefaults-AESEncryptor.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - CC11C9459EAF6A8C590F20CF1AD21DA5 /* FBSDKLoginUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginUtility.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginUtility.h; sourceTree = ""; }; - CC93CFD25F266E66CB1545F7DA0C1BF8 /* AFJSONResponseSerializerWithData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AFJSONResponseSerializerWithData.m; sourceTree = ""; }; - CCA3E88C46F7A5F1A3D0F25203E45792 /* AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFNetworking-dummy.m"; sourceTree = ""; }; - CCAA0D0A1E143CF733A210B08127C2F7 /* FBSDKLoginTooltipView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginTooltipView.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginTooltipView.m; sourceTree = ""; }; - CCAD480BC0AC8CA507664714A8642256 /* NSArray+PureLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+PureLayout.m"; path = "PureLayout/PureLayout/NSArray+PureLayout.m"; sourceTree = ""; }; - CCB7C5152C0F6E0434BCC8356E17D908 /* BFWebViewAppLinkResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFWebViewAppLinkResolver.h; path = Bolts/iOS/BFWebViewAppLinkResolver.h; sourceTree = ""; }; - CCC54232BAEC9B0999223A5B2CD90DA1 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CD1BC9FE52338260A645DA1E535D60E9 /* RZDataBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDataBinding.h; path = RZDataBinding/RZDataBinding.h; sourceTree = ""; }; - CD3DE79E1604D4B336DC3F4490A56659 /* EXPMatchers+respondTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+respondTo.m"; path = "Expecta/Matchers/EXPMatchers+respondTo.m"; sourceTree = ""; }; - CD7387F2620E99BB63242B2C8C13C51E /* StrongestPasswordValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = StrongestPasswordValidator.framework; path = StrongestPasswordValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CD7AE99AD27F9AD19A61E8269260021E /* UIDevice-Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIDevice-Utils-dummy.m"; sourceTree = ""; }; - CDD5FDB9292F631F1D1BE91251D43CFE /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; }; - CE8F4F0D3D4122A214CCAA23AAA3E5F6 /* UIDevice-Utils.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "UIDevice-Utils.xcconfig"; sourceTree = ""; }; - CE9E60F2C387D51A3F34BCE723D17BF4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - CEE915BA82F667F7139674785CFC1184 /* FBSnapshotTestController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestController.m; path = FBSnapshotTestCase/FBSnapshotTestController.m; sourceTree = ""; }; - CF2491406261008FC218FC09FC1A42D3 /* FBSDKAccessToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessToken.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAccessToken.h; sourceTree = ""; }; - CF281F299410792E0A98ACC70BA05C60 /* NSUserDefaults-AESEncryptor.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "NSUserDefaults-AESEncryptor.xcconfig"; sourceTree = ""; }; - D05CBAE789EBAB568F05389DB2C540B6 /* FBSDKError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKError.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKError.h; sourceTree = ""; }; + B907D2C356BBE8843BECAD51F193AB90 /* crypto_core_hsalsa20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_core_hsalsa20.h; path = src/libsodium/include/sodium/crypto_core_hsalsa20.h; sourceTree = ""; }; + B92338364B8A38DEC8121D096F48D52B /* FBSDKBridgeAPIRequest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKBridgeAPIRequest+Private.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest+Private.h"; sourceTree = ""; }; + B950AABBC801567158D2BF8D31E92210 /* auth_hmacsha512256_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = auth_hmacsha512256_api.c; path = src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c; sourceTree = ""; }; + B9A9B9B7CDEB799A052887677D38F5A7 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; + B9F889647450F92E17E94B94A7FF9C5C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BA41975142E387704B6973F9EE1A5AEC /* FBSDKTestUsersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTestUsersManager.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.m; sourceTree = ""; }; + BA56633D5AD6012A78744444993C8A0A /* FBSDKCoreKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKCoreKit-dummy.m"; sourceTree = ""; }; + BA689C178FD310B7120E649A524E3592 /* PEAR-FileManager-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-prefix.pch"; sourceTree = ""; }; + BA9FD10F3C3FD5BAC00E2B6DE68CD263 /* PNObjectModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectModel.h; sourceTree = ""; }; + BB3FA6F13A252401AFF53CFAE8CB4BE9 /* FBSDKCoreKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKCoreKit-umbrella.h"; sourceTree = ""; }; + BB8437B77E38DBAF1E258778EAB53260 /* FBSDKLoginConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginConstants.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginConstants.h; sourceTree = ""; }; + BB8A19EE49EC9656B0DEEECAC3D7F70F /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + BBF4DD9406D051FA74A1D9D9C2341919 /* nv-ios-http-status-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nv-ios-http-status-dummy.m"; sourceTree = ""; }; + BC1A6EC680CBC644F8357B73BDFA5D93 /* xor_xsalsa20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xor_xsalsa20.c; path = src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c; sourceTree = ""; }; + BC2A9EED5978C249AA6B834A62256C5F /* AFHTTPRequestSerializer+OAuth2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "AFHTTPRequestSerializer+OAuth2.m"; sourceTree = ""; }; + BC69655BA41C0CCFDD1E607682AB9425 /* crypto_uint64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_uint64.h; path = src/libsodium/include/sodium/crypto_uint64.h; sourceTree = ""; }; + BC91A1BFACF53402D243EC088AE18769 /* crypto_secretbox.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_secretbox.c; path = src/libsodium/crypto_secretbox/crypto_secretbox.c; sourceTree = ""; }; + BC964214B402C2C21D846C7DEC607639 /* FBSDKAppLinkResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppLinkResolver.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkResolver.h; sourceTree = ""; }; + BCFC84397A97D780DB8E33FBD0A40C87 /* RZDataBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = RZDataBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BD425F0503FFA7A39156EBCDE485B65C /* FBSDKErrorRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorRecoveryAttempter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/FBSDKErrorRecoveryAttempter.h; sourceTree = ""; }; + BE02F102BA1C5F2D863D30020E7B1487 /* FBSDKMonotonicTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMonotonicTime.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMonotonicTime.m; sourceTree = ""; }; + BE13A11A01BA8100F362170CE0D8700D /* base.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = base.h; path = src/libsodium/crypto_core/curve25519/ref10/base.h; sourceTree = ""; }; + BE571316983BCC33E49AD67C50D7627F /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; + BEC43B91DCAFFEDF161330D7CD3A09C4 /* FBSDKCoreKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCoreKit.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit.h; sourceTree = ""; }; + BEC8D38A9AFD295C5D5EBE678441B4AC /* NSDate+NSDate_Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDate+NSDate_Util.m"; path = "Pod/Classes/NSDate+NSDate_Util.m"; sourceTree = ""; }; + BF10239140B3C37C00D7E4948F165184 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BF1B2D14FA284C93B9CCEE9846AE8A82 /* PureLayout-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PureLayout-umbrella.h"; sourceTree = ""; }; + BF8D24041914F365184C23C25E789F44 /* PNInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNInstallation.h; sourceTree = ""; }; + BF95EA3E8D98E6E69A327A023AD85489 /* FBSDKButton+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKButton+Subclass.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKButton+Subclass.h"; sourceTree = ""; }; + BFB0E88573CE8BB8D61E5611304A7F89 /* NSDate_Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDate_Utils-dummy.m"; sourceTree = ""; }; + BFC05B7D5009D4910049FD1FDC93E80C /* PNObjectModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectModel.m; sourceTree = ""; }; + C0315EA376F76903D58AA6E4E95940FD /* FBSDKAppLinkUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppLinkUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkUtility.h; sourceTree = ""; }; + C032298971C4C4C93DCD56F97A41CDFB /* Specta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-prefix.pch"; sourceTree = ""; }; + C0B2D3F99F089677EBFCBBD3BCC68B38 /* FBSDKLikeBoxBorderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeBoxBorderView.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxBorderView.h; sourceTree = ""; }; + C0C20A9E034F281110537225962CA16A /* FBSDKGraphRequestDataAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestDataAttachment.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestDataAttachment.m; sourceTree = ""; }; + C22CD714CA3834D585CF9E37B6718597 /* runtime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = runtime.h; path = src/libsodium/include/sodium/runtime.h; sourceTree = ""; }; + C2D4A6BD121E25559675F0FC43315A63 /* FBSDKAccessTokenCacheV3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3.h; sourceTree = ""; }; + C32B779663734F03432FCBF7052F4FFA /* NAScrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAScrypt.h; path = NAChloride/NAScrypt.h; sourceTree = ""; }; + C3486EF0B8923350E11F8599313D4932 /* FBSDKGraphRequestMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestMetadata.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.m; sourceTree = ""; }; + C37ABA3C221DECD38F4B7F678B9E8DAB /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; + C3A030D5EC248EC76F0AC4BEB7CDD220 /* EXPMatchers+contain.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+contain.m"; path = "Expecta/Matchers/EXPMatchers+contain.m"; sourceTree = ""; }; + C3C0B8BE595A069C712E8C0BF200642F /* FBSDKBase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBase64.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Base64/FBSDKBase64.h; sourceTree = ""; }; + C3F11C6E75C187FB0A636B3EE214008E /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + C443ACD15D2555148AB82AB3FF1E2680 /* FBSDKAppGroupContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupContent.m; sourceTree = ""; }; + C452F357EE5E749A54A0546D30BF1C7F /* Expecta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Expecta.modulemap; sourceTree = ""; }; + C4DAB3E359D00B4D1FAE65B7A4C19109 /* FBSDKLikeActionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeActionController.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionController.h; sourceTree = ""; }; + C5117D2723602C1811FA7E8786504167 /* NSDate_Utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = NSDate_Utils.modulemap; sourceTree = ""; }; + C524BEBA402E93543088F15203B4B0C2 /* onetimeauth_poly1305.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = onetimeauth_poly1305.h; path = src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h; sourceTree = ""; }; + C57FB08ED63E4419E1C1DF45090D7810 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C602CADC3496B7A2E5875BAC88F6BD3B /* core_salsa208_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa208_api.c; path = src/libsodium/crypto_core/salsa208/core_salsa208_api.c; sourceTree = ""; }; + C6262856C7A81BFF7E5225BDA0B4909A /* blamka-round-ref.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blamka-round-ref.h"; path = "src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h"; sourceTree = ""; }; + C69CBC0D7F9D935EB4759A24F6C3380C /* RZDBMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBMacros.h; path = RZDataBinding/RZDBMacros.h; sourceTree = ""; }; + C6B8074838CAE72BDC1D39854D15F494 /* FBSDKAccessTokenCacheV3_21.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3_21.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_21.m; sourceTree = ""; }; + C7180E7B46429FF03953610E1600E40C /* crypto_core_salsa2012.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_core_salsa2012.h; path = src/libsodium/include/sodium/crypto_core_salsa2012.h; sourceTree = ""; }; + C77BB3D1C64B4417F32A2358D49ADDC1 /* argon2-impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "argon2-impl.h"; path = "src/libsodium/crypto_pwhash/argon2/argon2-impl.h"; sourceTree = ""; }; + C78F32BE23AC499328301A516CBAA98B /* verify_hmacsha512256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_hmacsha512256.c; path = src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c; sourceTree = ""; }; + C7AAF546572A0FA3177DDC72549ABA4E /* crypto_secretbox_easy.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_secretbox_easy.c; path = src/libsodium/crypto_secretbox/crypto_secretbox_easy.c; sourceTree = ""; }; + C8CF01417105E1AD7199ECFA09396D46 /* NAChloride.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NAChloride.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C910B59269C90111D7C3C767D2FEA7AF /* NSString_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSString_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C970EEAB10CA98E5716D16FD3ACFEE0D /* BFTask+Exceptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BFTask+Exceptions.h"; path = "Bolts/Common/BFTask+Exceptions.h"; sourceTree = ""; }; + C9D05B8A1D0BC45ADCA5F2E0A7595D65 /* FBSDKLoginUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginUtility.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginUtility.h; sourceTree = ""; }; + C9EEEBD186B60B1BD450BAF71912A5E3 /* crypto_onetimeauth_poly1305.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_onetimeauth_poly1305.h; path = src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h; sourceTree = ""; }; + CA67AF4FDC4C269F4CD6362224C40D41 /* open.c */ = {isa = PBXFileReference; includeInIndex = 1; name = open.c; path = src/libsodium/crypto_sign/ed25519/ref10/open.c; sourceTree = ""; }; + CA78B797EC3D20CC47BEA320C1A350A6 /* PNObject-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PNObject-dummy.m"; sourceTree = ""; }; + CA91BB9CC65155774C0FFD150FF49853 /* FBSDKAppEventsStateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsStateManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.h; sourceTree = ""; }; + CA98E7EFDA36D71B2A18AF808B42FA27 /* FBSDKErrorConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKErrorConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKErrorConfiguration.h; sourceTree = ""; }; + CAF3D682324C46426C322587B746DE60 /* ladder_base_namespace.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ladder_base_namespace.h; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h; sourceTree = ""; }; + CB057F45FF206F5D26F30060813FC87D /* core.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = core.h; path = src/libsodium/include/sodium/core.h; sourceTree = ""; }; + CB8CFC655A2BF7C580D22DC02AB6A409 /* crypto_auth_hmacsha256.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_auth_hmacsha256.h; path = src/libsodium/include/sodium/crypto_auth_hmacsha256.h; sourceTree = ""; }; + CCBB9FB1446D48FC189D8A6046459E40 /* RZDBTransforms.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RZDBTransforms.m; path = RZDataBinding/RZDBTransforms.m; sourceTree = ""; }; + CDB3FEF8F50540DE8CD861FA479E9285 /* FBSDKCoreKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKCoreKit-prefix.pch"; sourceTree = ""; }; + CDB887D162DC856B1CD35351698FF94B /* crypto_core_salsa208.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_core_salsa208.h; path = src/libsodium/include/sodium/crypto_core_salsa208.h; sourceTree = ""; }; + CDE739A668DE7EFEE7F99596E8DF54CD /* poly1305_donna64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = poly1305_donna64.h; path = src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h; sourceTree = ""; }; + CE267A67FA2FA598B9D2B4C0ACBED9CD /* FBSDKSettings+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKSettings+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSettings+Internal.h"; sourceTree = ""; }; + CE2953ABF1275ED9C01D4667290FA19C /* NAAuth.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAAuth.m; path = NAChloride/NAAuth.m; sourceTree = ""; }; + CE343EFBEBEDEB4231E374D12FBE124A /* crypto_uint32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_uint32.h; path = src/libsodium/include/sodium/crypto_uint32.h; sourceTree = ""; }; + CE91B19C0BA5712E59C8296629B1B6E8 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + CED9173C4F1792DE5DEC00189A6D253A /* CocoaSecurity.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CocoaSecurity.framework; path = CocoaSecurity.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEF481FB7D66D3823A91486DB2D7B7A9 /* crypto_verify_16.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_verify_16.h; path = src/libsodium/include/sodium/crypto_verify_16.h; sourceTree = ""; }; + CF092C5177F386FFE41BEA073ED1B8A0 /* PNObjectConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectConfig.h; sourceTree = ""; }; + CF1462F41CA7C27CE59126ED18B95DBC /* FBSDKURLConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKURLConnection.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLConnection.m; sourceTree = ""; }; + CF8B07A228A8A2D3E6BD80F48A51BD04 /* NSDate_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSDate_Utils.framework; path = NSDate_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D02ECCEACBBA02EE3FD0601E0A1BE123 /* FBSDKLoginTooltipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginTooltipView.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginTooltipView.h; sourceTree = ""; }; + D0BE611DC80CB9540FB5C597F196F84F /* crypto_auth_hmacsha512256.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_auth_hmacsha512256.h; path = src/libsodium/include/sodium/crypto_auth_hmacsha512256.h; sourceTree = ""; }; + D0C6BCA5A4C55C7593B40201923903F9 /* FBSDKTimeSpentData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTimeSpentData.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.m; sourceTree = ""; }; D11A9BD0CFE1E520AE71DC4403614790 /* Pods-PNObject_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNObject_Example.debug.xcconfig"; sourceTree = ""; }; - D14FB966FA5866E8E9F0E7DB8E86699A /* CodFis+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CodFis+Helper.m"; path = "CodFis-Helper/CodFis+Helper.m"; sourceTree = ""; }; - D1D25BE326C5F0754BB5250894DF05A1 /* BFCancellationTokenRegistration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationTokenRegistration.h; path = Bolts/Common/BFCancellationTokenRegistration.h; sourceTree = ""; }; - D261B87926546252BA6C8EC40A0CACD7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D2824474322C3812E6445D06993C4217 /* BFAppLinkReturnToRefererView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererView.h; path = Bolts/iOS/BFAppLinkReturnToRefererView.h; sourceTree = ""; }; - D32985C8ACB11F4059F7AFB93FADF3B4 /* BFExecutor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFExecutor.h; path = Bolts/Common/BFExecutor.h; sourceTree = ""; }; - D3F49C6D867EA4408AF45B92215A0E5F /* FBSDKSettings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSettings.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKSettings.h; sourceTree = ""; }; - D4032F926250CEB18C4A9764E768C6B5 /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; }; - D431727C463B929D9BB241252552A6D3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D43E49F254C607D0517B97940EB91EA6 /* BFMeasurementEvent_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFMeasurementEvent_Internal.h; path = Bolts/iOS/Internal/BFMeasurementEvent_Internal.h; sourceTree = ""; }; - D45201CC85EC0906B87134A4C0AFF935 /* FBSDKButton+Subclass.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKButton+Subclass.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKButton+Subclass.h"; sourceTree = ""; }; - D46CE10C85A60FEF4C5C04F7816C4F34 /* FBSDKCheckmarkIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCheckmarkIcon.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKCheckmarkIcon.h; sourceTree = ""; }; - D4A66E287528F834A9C37F5966EAEFF8 /* PureLayout.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PureLayout.xcconfig; sourceTree = ""; }; - D4E123B46D0B10682745F630E8895069 /* FBSDKAppEventsUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsUtility.m; sourceTree = ""; }; - D4F84A16DD3A90DDDED7470D01F8DF4D /* PNObject-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject-prefix.pch"; sourceTree = ""; }; - D540C557B5B74B5C11787B81E3FC144E /* FBSDKTriStateBOOL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTriStateBOOL.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTriStateBOOL.h; sourceTree = ""; }; - D5429064F4CC216EEE559EB09920B161 /* Specta-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Specta-prefix.pch"; sourceTree = ""; }; - D5C27CC1EFBAA1FEB0C13C47FF3A8458 /* FBSDKAppEventsState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsState.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsState.m; sourceTree = ""; }; - D5D753224259A552DF778BC3BFC9095B /* DJLocalization-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DJLocalization-umbrella.h"; sourceTree = ""; }; - D71C1DC0A53B68D93DED2B100192C879 /* RZDataBinding-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RZDataBinding-prefix.pch"; sourceTree = ""; }; - D71F6B3C392E131E0FC22437A1F7FFCF /* FBSDKShareKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKShareKit-umbrella.h"; sourceTree = ""; }; - D8113DC9EAC2B89E93E63A27A3DC3124 /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking.framework; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D8477035C18A6500D1A24DAAD12548AE /* FBSDKDialogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDialogConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.m; sourceTree = ""; }; - D884498DAE38ED9E68E5921E2E7A7CF7 /* NACrypto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NACrypto-dummy.m"; sourceTree = ""; }; - D8A2E50CBFDAE97EEEC7517124C1251D /* PNObject-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject-umbrella.h"; sourceTree = ""; }; - D9259F63CE606116679C3E5FCE8E86E1 /* FBSDKGraphRequestMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestMetadata.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.h; sourceTree = ""; }; - D92CB883B04257D215FC458F58810952 /* PNInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNInstallation.h; sourceTree = ""; }; - D92D59022480B09D139F149CA9B0B5D8 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - D97AAA09519DE2B1F4640491EB732DC6 /* EXPExpect.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPExpect.h; path = Expecta/EXPExpect.h; sourceTree = ""; }; - D980428C7C73159F3AC124E7470D2EBE /* CodFis-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "CodFis-Helper.modulemap"; sourceTree = ""; }; - D9849C0756C63FEB0D7F3F9ED0D08AF6 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - D998D842B939D8480599184B6647E512 /* DJLocalization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalization.h; path = DJLocalization/DJLocalization.h; sourceTree = ""; }; - D9BF93A09BF1C89C01AAD4E21607CACA /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; - D9E43B24730459546569B6505ABD314C /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CodFis_Helper.framework; path = "CodFis-Helper.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA2B85632EEB6DD3F931B1AF1B0B208D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DA799E4B8F2F3D9E7F5DB27574EC711D /* NSString-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "NSString-Helper.xcconfig"; sourceTree = ""; }; - DA82E1E9468954A2A533C71F6002EB7C /* FBSDKViewImpressionTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKViewImpressionTracker.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKViewImpressionTracker.h; sourceTree = ""; }; - DB04E78E16500E4E2671352265887345 /* SpectaDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaDSL.h; path = Specta/Specta/SpectaDSL.h; sourceTree = ""; }; - DB6735EEF981FABAE9241A830755595D /* FBSDKShareMediaContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareMediaContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareMediaContent.m; sourceTree = ""; }; - DBD6C94CB1FF71899161DE01DF11861E /* nv_ios_http_status.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = nv_ios_http_status.h; path = "nv-ios-http-status/nv_ios_http_status.h"; sourceTree = ""; }; - DC160AEC876314D0BAEB3818A1822DA1 /* KeccakF-1600-int-set.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "KeccakF-1600-int-set.h"; path = "NACrypto/keccak/KeccakF-1600-int-set.h"; sourceTree = ""; }; - DC2BBB3D663A14526E479E36730243FD /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DC3259BB6241878EF7B126BF7A7C0D59 /* NSObject+RZDataBinding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+RZDataBinding.h"; path = "RZDataBinding/NSObject+RZDataBinding.h"; sourceTree = ""; }; + D11C5BD426E41A54B8D4CAAB5ACE078B /* BFURL_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFURL_Internal.h; path = Bolts/iOS/Internal/BFURL_Internal.h; sourceTree = ""; }; + D1371448C3EDB39F5FDD9CDBE745C03F /* FBSDKImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKImageDownloader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKImageDownloader.h; sourceTree = ""; }; + D17047CF053906FC5A19A855E7C17753 /* RZDataBinding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RZDataBinding.framework; path = RZDataBinding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D1C98B0BB1E433A8BB66493688B7DB6B /* verify_32.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_32.c; path = src/libsodium/crypto_verify/32/ref/verify_32.c; sourceTree = ""; }; + D1F93850CC40845EBA866BCB99712372 /* AFOAuth2Manager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AFOAuth2Manager.h; sourceTree = ""; }; + D22A983170E008382663F9F5F7ADCFFA /* EXPMatchers+beLessThanOrEqualTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThanOrEqualTo.m"; path = "Expecta/Matchers/EXPMatchers+beLessThanOrEqualTo.m"; sourceTree = ""; }; + D250A1D4365D29A396763858FEE7067E /* PEARFileManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PEARFileManager.h; path = "PEAR-FileManager-iOS/PEARFileManager.h"; sourceTree = ""; }; + D288699BE618D14F3FE74F21F00EF3F9 /* crypto_stream_chacha20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_chacha20.h; path = src/libsodium/include/sodium/crypto_stream_chacha20.h; sourceTree = ""; }; + D2CB4472710833D722621420637BC5C6 /* crypto_stream_salsa20.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_stream_salsa20.h; path = src/libsodium/include/sodium/crypto_stream_salsa20.h; sourceTree = ""; }; + D328046A00DA89F3C3823C5CB70AE20A /* DDDKeychainWrapper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DDDKeychainWrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D3944B59DFF6B8068D9A8AED5F0A48BA /* AFNetworking.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = AFNetworking.framework; path = AFNetworking.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D3B1F7CD4DB6B3BCA49267B697A1EDFB /* FBSDKCheckmarkIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCheckmarkIcon.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKCheckmarkIcon.h; sourceTree = ""; }; + D423E5FDC99AF9CEC6661C5281C8863E /* NAAEAD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAAEAD.h; path = NAChloride/NAAEAD.h; sourceTree = ""; }; + D424368B8DFE2095A056373A9B5D30B8 /* crypto_uint8.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_uint8.h; path = src/libsodium/include/sodium/crypto_uint8.h; sourceTree = ""; }; + D4DD7EBA78838126B1017FEB89F9DEA1 /* FBSDKGameRequestDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGameRequestDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestDialog.m; sourceTree = ""; }; + D4E4421B432A06479C9D135F55197980 /* CodFis-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "CodFis-Helper.modulemap"; sourceTree = ""; }; + D4FE601A26E9D5FA726EF7D680DEFFCD /* FBSDKGraphRequest+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKGraphRequest+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequest+Internal.h"; sourceTree = ""; }; + D547832A9870117BB4A4193A1FC32365 /* NSUserDefaults_AESEncryptor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NSUserDefaults_AESEncryptor.framework; path = "NSUserDefaults-AESEncryptor.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D57F21B98EB913110B9BF61B0FC3CFF0 /* FBSDKUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKUtility.m; sourceTree = ""; }; + D5BBF74E7895BC2435DD1F7DF9A6B48D /* NSString+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Helper.m"; path = "NSString-Helper/NSString+Helper.m"; sourceTree = ""; }; + D5D4192C44A8BE2ECD10FE76321BCD37 /* BFTaskCompletionSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFTaskCompletionSource.h; path = Bolts/Common/BFTaskCompletionSource.h; sourceTree = ""; }; + D63EEB322DB349FAB90669ECB3F0B3A6 /* version.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = version.h; path = src/libsodium/include/sodium/version.h; sourceTree = ""; }; + D686C5FEAFDF6A76263400F68D766B82 /* NSDate+NSDate_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+NSDate_Util.h"; path = "Pod/Classes/NSDate+NSDate_Util.h"; sourceTree = ""; }; + D6F58E2F408071102057A748726C6E2A /* crypto_box_seal.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_box_seal.c; path = src/libsodium/crypto_box/crypto_box_seal.c; sourceTree = ""; }; + D712E7A35F43F13206A163DEF34CD275 /* FBSDKLoginKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginKit+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginKit+Internal.h"; sourceTree = ""; }; + D7A21AB105706E93C66C01CA7EB92473 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + D92CD4E014F6D1A89C84F39A9C80EA72 /* core_hsalsa20.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_hsalsa20.c; path = src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c; sourceTree = ""; }; + D989005B56633AB16408AA566CBEA034 /* PNLocation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNLocation.m; sourceTree = ""; }; + D9C17FB21000EE0AF4A79D79765E2F9E /* EXPMatcherHelpers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPMatcherHelpers.m; path = Expecta/Matchers/EXPMatcherHelpers.m; sourceTree = ""; }; + DA283BCCBEEB8C2217AF20F99733E0C7 /* FBSDKAppInviteDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppInviteDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.h; sourceTree = ""; }; + DA68F7807531167018EEB8798896E3EF /* crypto_box_easy.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_box_easy.c; path = src/libsodium/crypto_box/crypto_box_easy.c; sourceTree = ""; }; + DACCD32EAF0D71EFADDE0FCEDD91A363 /* FBSDKLoginKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKLoginKit-umbrella.h"; sourceTree = ""; }; + DC15D7D2570F77C4D7DBBE860EA58932 /* FBSDKLoginButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginButton.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginButton.m; sourceTree = ""; }; DC358092608E035811817A25786F40A6 /* Pods-PNObject_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNObject_Example.release.xcconfig"; sourceTree = ""; }; - DC89F7F4F9D82AEAD38EF97E3C2A3B15 /* UIDevice-Hardware.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIDevice-Hardware.m"; path = "Pod/Classes/UIDevice-Hardware.m"; sourceTree = ""; }; - DC94B939977AFD1B6578D63D933E3E22 /* FBSDKUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKUtility.h; sourceTree = ""; }; - DC966D63A1DB1F318942C34FC5C5F7D1 /* ExpectaObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ExpectaObject.h; path = Expecta/ExpectaObject.h; sourceTree = ""; }; - DCFF92FD958FE84E689F2C56E67A5E99 /* Pods_PNObject_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_PNObject_Example.framework; path = "Pods-PNObject_Example.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - DD05377164ED60445432EF6FD120C263 /* FBSDKViewImpressionTracker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKViewImpressionTracker.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKViewImpressionTracker.m; sourceTree = ""; }; - DD2D8025BAB569BBFCDF3924F89CBEA4 /* FBSDKCoreKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKCoreKit+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h"; sourceTree = ""; }; - DD9E58EB793E10299A8526D5C8C7377C /* FBSDKTimeSpentData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTimeSpentData.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.h; sourceTree = ""; }; - DDA78FA86CA495DB732A88EDEEA333CA /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; }; - DDAB468A8E9108F8F2DAB190091FA177 /* FBSnapshotTestController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestController.h; path = FBSnapshotTestCase/FBSnapshotTestController.h; sourceTree = ""; }; - DDBFB6A69F9DA0FCBB0A08A3CA6EC496 /* FBSDKGraphRequestBody.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestBody.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestBody.h; sourceTree = ""; }; - DE2556534C4D71C3848E4F153137A8DE /* CocoaSecurity.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = CocoaSecurity.modulemap; sourceTree = ""; }; - DE546A1DA34E7FB04608CEC3F6C77D75 /* DJLocalization-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DJLocalization-prefix.pch"; sourceTree = ""; }; - DE8F3A888CB4EC705336BA0FCDB5229D /* Expecta+Snapshots-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-umbrella.h"; sourceTree = ""; }; - DEEABFE21FFE5A29514AE371D1A40FD1 /* UIImage+Compare.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Compare.m"; path = "FBSnapshotTestCase/Categories/UIImage+Compare.m"; sourceTree = ""; }; - DF4A09AF19061401C4BCADEACE57B4A9 /* EXPMatchers+haveCountOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+haveCountOf.h"; path = "Expecta/Matchers/EXPMatchers+haveCountOf.h"; sourceTree = ""; }; - E013E09DD01AAE40BDAA3F0BBD6C9A46 /* FBSDKShareKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKShareKit.framework; path = FBSDKShareKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E0F9435AEE04F49F0D08B086163E98DC /* FBSDKLoginTooltipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginTooltipView.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginTooltipView.h; sourceTree = ""; }; - E112AC3EA34B2B154521E022B33CC513 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E13118B37383E2CA9D1F6D865F9AB962 /* UIImage+Snapshot.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+Snapshot.h"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.h"; sourceTree = ""; }; - E15E9E148585ED91F10326DCCE5596A8 /* FBSDKLoginKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginKit.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginKit.h; sourceTree = ""; }; + DC94754211BCE7082DF3B14161B5EAAB /* FBSDKAppEventsState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsState.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsState.h; sourceTree = ""; }; + DCD907DFF906B024ADA5596941A1BD0E /* DDDKeychainWrapper-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DDDKeychainWrapper-prefix.pch"; sourceTree = ""; }; + DCED4701EEE821E673E8C958CB5CC3BE /* auth_hmacsha512_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = auth_hmacsha512_api.c; path = src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c; sourceTree = ""; }; + DD383E36BC4E87A21294B79DF951B288 /* verify_16_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_16_api.c; path = src/libsodium/crypto_verify/16/verify_16_api.c; sourceTree = ""; }; + DD4FCDBDB5884B02FC6B1A432E890F0D /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + DD848075E1397A84030DB379FC8D48FD /* verify_32_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = verify_32_api.c; path = src/libsodium/crypto_verify/32/verify_32_api.c; sourceTree = ""; }; + DD92C584CC1189A24C6EA66FB359D616 /* FBSDKGraphRequestConnection+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKGraphRequestConnection+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestConnection+Internal.h"; sourceTree = ""; }; + DDC6B48357BE62D6F9FBE13E28D578D2 /* FBSDKAppEventsDeviceInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsDeviceInfo.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsDeviceInfo.m; sourceTree = ""; }; + DDDDD00FB86E06B78479955568AA986F /* nv-ios-http-status-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nv-ios-http-status-prefix.pch"; sourceTree = ""; }; + DDEBF8D1605DA7E944CFCF9976E362EA /* crypto_scrypt-common.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "crypto_scrypt-common.c"; path = "src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c"; sourceTree = ""; }; + DE79F82403F009B5D3A31BEB6368F7B3 /* BFURL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFURL.h; path = Bolts/iOS/BFURL.h; sourceTree = ""; }; + DEC7F41066EEBD8288548485F0B2A2F3 /* nv-ios-http-status-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "nv-ios-http-status-umbrella.h"; sourceTree = ""; }; + DEEF19824CE840F624BE0A1C9BCC272B /* FBSDKLoginUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginUtility.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginUtility.m; sourceTree = ""; }; + DEF5952A6129F344B6403DEDC6626668 /* DJLocalization-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DJLocalization-prefix.pch"; sourceTree = ""; }; + DF059528FD36234089AD978F643ACC24 /* export.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = export.h; path = src/libsodium/include/sodium/export.h; sourceTree = ""; }; + DF2C3A14DAFA851B775C785523415D35 /* NAChloride.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NAChloride.xcconfig; sourceTree = ""; }; + DF30221AF965033A7E6D37B0105398D3 /* SPTCompiledExample.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCompiledExample.h; path = Specta/Specta/SPTCompiledExample.h; sourceTree = ""; }; + DF5FB7372D5866A763994C43A10006D6 /* RZDataBinding.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RZDataBinding.xcconfig; sourceTree = ""; }; + DF828634962B891FB4C392E83A135B99 /* crypto_sign_edwards25519sha512batch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_sign_edwards25519sha512batch.h; path = src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h; sourceTree = ""; }; + E0172A9E9DB2BC11ECDA9D492BFD0099 /* FBSDKSharingContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharingContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharingContent.h; sourceTree = ""; }; + E09303466CBE1882C00E5CEF9E7CEB7E /* FBSDKSystemAccountStoreAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSystemAccountStoreAdapter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.m; sourceTree = ""; }; + E0B4ADCE34E51C8556C26F16935097CC /* randombytes.c */ = {isa = PBXFileReference; includeInIndex = 1; name = randombytes.c; path = src/libsodium/randombytes/randombytes.c; sourceTree = ""; }; + E13100723F6B92A6FB5F218510F7F7BD /* FBSDKCloseIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCloseIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKCloseIcon.h; sourceTree = ""; }; + E1544F5B77AE1E696AE2BB5CBDA317B8 /* crypto_sign.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_sign.h; path = src/libsodium/include/sodium/crypto_sign.h; sourceTree = ""; }; E16AE17E2B35A7123F90844256259B9D /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E2C15D0622AA95C1A5DB901F437FE0B8 /* KeccakNISTInterface.c */ = {isa = PBXFileReference; includeInIndex = 1; name = KeccakNISTInterface.c; path = NACrypto/keccak/KeccakNISTInterface.c; sourceTree = ""; }; - E402391E5A2514D3D175F4BAB9F47263 /* FBSDKSharePhotoContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharePhotoContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharePhotoContent.h; sourceTree = ""; }; - E41B4DB2B3154C1F8370682035C9D46E /* FBSDKShareMediaContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareMediaContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareMediaContent.h; sourceTree = ""; }; + E1711CAEF44B98A3548F278FB3220AE0 /* PNAddress.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNAddress.m; sourceTree = ""; }; + E1CF3DF9CB977E42067DFC325D98A83A /* FBSDKAccessTokenCacheV3_17.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_17.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_17.h; sourceTree = ""; }; + E1F091FFA116412CDC8EDF3E546A8D11 /* NAScrypt.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAScrypt.m; path = NAChloride/NAScrypt.m; sourceTree = ""; }; + E24E3A028164647B83733F1BFF7B4265 /* fe_frombytes_sandy2x.c */ = {isa = PBXFileReference; includeInIndex = 1; name = fe_frombytes_sandy2x.c; path = src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c; sourceTree = ""; }; + E24F40FE80C225EB5752C57E665BD1EC /* NSUserDefaults+AESEncryptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSUserDefaults+AESEncryptor.m"; path = "NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.m"; sourceTree = ""; }; + E2C380E1A916CAF35DD010FD9E203391 /* crypto_auth.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_auth.c; path = src/libsodium/crypto_auth/crypto_auth.c; sourceTree = ""; }; + E339BB540711AA23CE0A4C4E583B419D /* EXPMatchers+conformTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+conformTo.m"; path = "Expecta/Matchers/EXPMatchers+conformTo.m"; sourceTree = ""; }; + E3C8128D30B65BB8D4922BA88EA4FB13 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E443BF8A0EDB302428867D645B0D1E93 /* EXPMatchers+beInstanceOf.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beInstanceOf.h"; path = "Expecta/Matchers/EXPMatchers+beInstanceOf.h"; sourceTree = ""; }; + E44A36A9E9B6EFD8389E5F40C5A7CE08 /* FBSDKSettings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSettings.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKSettings.m; sourceTree = ""; }; + E452665D670719ACA0C800A2F811FBF6 /* crypto_box_curve25519xsalsa20poly1305.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_box_curve25519xsalsa20poly1305.h; path = src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h; sourceTree = ""; }; E46B7AFFF2CB3F42C731CF9CFA5DFC85 /* Pods-PNObject_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PNObject_Tests-umbrella.h"; sourceTree = ""; }; E47CDA8C196A62B78FACDBFE34E3F5AD /* Pods-PNObject_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNObject_Example-resources.sh"; sourceTree = ""; }; - E4811C0E3D643AF36C15726EB48E1F69 /* NSUserDefaults+AESEncryptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSUserDefaults+AESEncryptor.h"; path = "NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.h"; sourceTree = ""; }; - E4DAC54DE381BDEBB514E4E8EDADC9D1 /* FBSDKLikeActionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeActionController.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionController.h; sourceTree = ""; }; - E55A6BE4BD4BD33578BC405838748015 /* FBSDKAppInviteDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppInviteDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.m; sourceTree = ""; }; - E576A0244F9F3D0C9C066FD17648E1B4 /* EXPMatchers+raiseWithReason.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+raiseWithReason.h"; path = "Expecta/Matchers/EXPMatchers+raiseWithReason.h"; sourceTree = ""; }; - E61048C7E6C5A56CD0B95D8CFB42FA8F /* FBSDKGraphRequestConnection+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKGraphRequestConnection+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestConnection+Internal.h"; sourceTree = ""; }; - E62BBBC79022B09D0A1DF6E9480AFD0F /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; - E63E6E692F9A570123AB25B842C8A31A /* SPTExcludeGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTExcludeGlobalBeforeAfterEach.h; path = Specta/Specta/SPTExcludeGlobalBeforeAfterEach.h; sourceTree = ""; }; - E6B8BDA5B0686A17608FDD5741AACD14 /* FBSDKLiking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLiking.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKLiking.h; sourceTree = ""; }; - E6C7B1E996F870E53918D95077DC471F /* SPTExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExample.m; path = Specta/Specta/SPTExample.m; sourceTree = ""; }; - E7BE4448F8FACE945C026CE416E973BF /* _FBSDKLoginRecoveryAttempter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = _FBSDKLoginRecoveryAttempter.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/_FBSDKLoginRecoveryAttempter.h; sourceTree = ""; }; - E7DF91A4306A923413DD07D3BB7AA436 /* PEAR-FileManager-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "PEAR-FileManager-iOS.modulemap"; sourceTree = ""; }; - E7E780F8055F36B2EB64F6F9F826A1CC /* FBSDKKeychainStoreViaBundleID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKKeychainStoreViaBundleID.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStoreViaBundleID.m; sourceTree = ""; }; - E865C7E015BD25633AB6F4A38F7D70D6 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; - E87B6FFBB8085DFBAF320159D5F9E48F /* SPTSharedExampleGroups.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTSharedExampleGroups.m; path = Specta/Specta/SPTSharedExampleGroups.m; sourceTree = ""; }; - E937E6C8FAB23254C82C75FCDE1ED8A1 /* SpectaUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaUtility.h; path = Specta/Specta/SpectaUtility.h; sourceTree = ""; }; - E94421AC64BD5825CDBF4934A388D319 /* FBSDKCoreKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKCoreKit-prefix.pch"; sourceTree = ""; }; - E95C694DEDD7BC969FBDF044A915974B /* PNObject+PNObjectConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PNObject+PNObjectConnection.h"; sourceTree = ""; }; - E9A410A65C04B8BA3E8216E572498291 /* EXPMatchers+FBSnapshotTest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+FBSnapshotTest.h"; sourceTree = ""; }; - E9EBDB959779FFCC18B7D87B7AB50EDF /* NAKeychain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAKeychain.h; path = NACrypto/NAKeychain.h; sourceTree = ""; }; - EA34CF7175FA8299F799F279BD373B92 /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; - EA48AC73F7E6AE941976055409F8EE02 /* SPTCallSite.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTCallSite.h; path = Specta/Specta/SPTCallSite.h; sourceTree = ""; }; - EA5075111E45B54376A836D368B06BEA /* NACrypto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NACrypto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EA97F61F21184A02A52A53544568F5BC /* Expecta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Expecta.modulemap; sourceTree = ""; }; + E4BC16524B4E354454F2D7D088EBEA22 /* Base64.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Base64.m; path = submodules/Base64/Base64/Base64.m; sourceTree = ""; }; + E4D922852E7575407D9228623D78CA31 /* argon2.c */ = {isa = PBXFileReference; includeInIndex = 1; name = argon2.c; path = src/libsodium/crypto_pwhash/argon2/argon2.c; sourceTree = ""; }; + E51ABFFAF0259B9D3D69665A8C926F84 /* FBSDKError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKError.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKError.h; sourceTree = ""; }; + E52FFC846CEE823EB42E923E07B4A01F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E5743347810C1DA05B42D301BCE9EC9E /* FBSDKLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLogger.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKLogger.m; sourceTree = ""; }; + E5B3329C97AE62266DBF4BECACAA7B60 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; }; + E5B371E06ACD7EC85EEDE466C6CC3655 /* curve25519_donna_c64.c */ = {isa = PBXFileReference; includeInIndex = 1; name = curve25519_donna_c64.c; path = src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c; sourceTree = ""; }; + E687CA9B351072625E2328E9146EDE77 /* argon2-fill-block-ref.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "argon2-fill-block-ref.c"; path = "src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c"; sourceTree = ""; }; + E6A0859B3D0028CC45CD1FBC732C4BDC /* NAAEAD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NAAEAD.m; path = NAChloride/NAAEAD.m; sourceTree = ""; }; + E6D7667B68CA00BFCEC31F95535910F4 /* PNObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObject.h; sourceTree = ""; }; + E720842117D9D8061E6C4C9EA3EAD20D /* RZDBCoalesce.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RZDBCoalesce.m; path = RZDataBinding/RZDBCoalesce.m; sourceTree = ""; }; + E78122EE1C4756D3354453266132CF53 /* pbkdf2-sha256.c */ = {isa = PBXFileReference; includeInIndex = 1; name = "pbkdf2-sha256.c"; path = "src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c"; sourceTree = ""; }; + E78B9D8ECEE416EF8A4A67CFD51CA357 /* stream_salsa2012_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = stream_salsa2012_api.c; path = src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c; sourceTree = ""; }; + E89F32A732B2D0C5F41C8AD2FA48C285 /* blake2-impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "blake2-impl.h"; path = "src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h"; sourceTree = ""; }; + E93BC746D287711BB34D59C217FD8F3B /* CocoaSecurity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CocoaSecurity.m; path = CocoaSecurity/CocoaSecurity.m; sourceTree = ""; }; + EA09EFC44D48DB98477A3A65934BCB7D /* FBSDKLoginManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManager.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.h; sourceTree = ""; }; + EA3D4BC01DCD0EDBCF8DE37C726C0D40 /* FBSDKShareError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareError.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareError.h; sourceTree = ""; }; + EAB8CB3F8F97841E61D3DD1709B8E7C9 /* SpectaUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SpectaUtility.m; path = Specta/Specta/SpectaUtility.m; sourceTree = ""; }; + EB09C04D89AF841729600B23D620620C /* PEAR-FileManager-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "PEAR-FileManager-iOS.xcconfig"; sourceTree = ""; }; + EB378E0803B0F9961EE8405100B70FEE /* EXPMatchers+beFalsy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beFalsy.h"; path = "Expecta/Matchers/EXPMatchers+beFalsy.h"; sourceTree = ""; }; + EB7A6B14D5BDD7E1AAD3F21B0457CC03 /* core_salsa2012_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = core_salsa2012_api.c; path = src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c; sourceTree = ""; }; EB8B84E4432E9D6D4914A7EB79C467FA /* Pods-PNObject_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNObject_Tests.debug.xcconfig"; sourceTree = ""; }; - EB9B61EF322197E5D966BE5F84EBE1CD /* nv-ios-http-status.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "nv-ios-http-status.xcconfig"; sourceTree = ""; }; - EBC3851758A666A152FC00F1104EA9FA /* FBSDKGraphRequest+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKGraphRequest+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequest+Internal.h"; sourceTree = ""; }; - EC93E1D6BE0B85FDCAA8DAA266F03543 /* NACrypto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = NACrypto.framework; path = NACrypto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - ECB032F342C59B081372642930085A73 /* FBSDKAppGroupContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupContent.h; sourceTree = ""; }; - ECB20CDC4CA7F410B36F30B02CA1916B /* Specta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = Specta.modulemap; sourceTree = ""; }; - ECBD47C2A5CAB0FC2435599C1844C402 /* PNLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNLocation.h; sourceTree = ""; }; - EE7E996A1EAC1BAC50F20B5A75601A2E /* NATwoFish.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NATwoFish.h; path = NACrypto/NATwoFish.h; sourceTree = ""; }; - EED51664952A2448051EFDF412DCA673 /* Bolts-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Bolts-umbrella.h"; sourceTree = ""; }; - EF2578FEB12E7A832A6473BA0151D48A /* FBSDKMessageDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMessageDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKMessageDialog.h; sourceTree = ""; }; - F027893C675C45491E04C9EAB1A68D72 /* FBSDKGraphErrorRecoveryProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphErrorRecoveryProcessor.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.m; sourceTree = ""; }; - F0BEBEBF4191F06AEE5219E2AC25055A /* FBSDKShareDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.h; sourceTree = ""; }; - F0D192D2A9DAFCF2CDBEC29F7E7DB4A5 /* FBSDKShareButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareButton.h; sourceTree = ""; }; - F0E3AFDD9099FDF627432ACFABB3B660 /* FBSDKCloseIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCloseIcon.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKCloseIcon.h; sourceTree = ""; }; - F137F7CD074C7C02A4B2A8634B3715FE /* XCTestCase+Specta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestCase+Specta.m"; path = "Specta/Specta/XCTestCase+Specta.m"; sourceTree = ""; }; - F138DAD8DA4095C12D3C35ADC87DCE57 /* FBSDKSendButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSendButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSendButton.m; sourceTree = ""; }; - F160D8D33CE81082CC46F1CDA840C8EB /* UIDevice-Utils.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "UIDevice-Utils.modulemap"; sourceTree = ""; }; + EBDC5A6C9070070F368D4A68A47A99EC /* NSString-Helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString-Helper-dummy.m"; sourceTree = ""; }; + EBE51C47C472E53476EADAB9902AD9E2 /* DDDKeychainWrapper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDKeychainWrapper.h; path = Pod/Classes/DDDKeychainWrapper.h; sourceTree = ""; }; + EC78B0BAC08A6DB7AC8A052DA693677F /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + ED35D50290EA0861437F28E69D66AFB2 /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nv_ios_http_status.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ED4E9A1A529FD876E38112ED9002F541 /* EXPDoubleTuple.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPDoubleTuple.h; path = Expecta/EXPDoubleTuple.h; sourceTree = ""; }; + ED55120F07DACF4E9F73D2796D538086 /* NSString-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "NSString-Helper.modulemap"; sourceTree = ""; }; + ED786925606C722F5431516E12294E89 /* FBSDKProfile+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKProfile+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKProfile+Internal.h"; sourceTree = ""; }; + EE129661D274DA863ADEC97F33B8897A /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; }; + EE553BED152D758D536EF13374FE48DE /* FBSDKShareOpenGraphAction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphAction.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphAction.h; sourceTree = ""; }; + EEE7AB36FDA58D26A6BF8BE42982DE6B /* BFAppLinkReturnToRefererController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererController.h; path = Bolts/iOS/BFAppLinkReturnToRefererController.h; sourceTree = ""; }; + EEFBE25E9FC2047180A2D56EA883EE3E /* FBSDKDynamicFrameworkLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDynamicFrameworkLoader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal_NoARC/FBSDKDynamicFrameworkLoader.m; sourceTree = ""; }; + EF20A073E86580764945858998422C1C /* EXPMatchers+beCloseTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beCloseTo.m"; path = "Expecta/Matchers/EXPMatchers+beCloseTo.m"; sourceTree = ""; }; + EFB1D7FCE00818F1BBDA36B839AEFB18 /* NSUserDefaults-AESEncryptor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "NSUserDefaults-AESEncryptor.modulemap"; sourceTree = ""; }; + EFD2B35CEC438EDEF2977DF10C7B8B25 /* FBSDKSendButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSendButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSendButton.m; sourceTree = ""; }; + F00AB3576B568C1B01645D155BD9D989 /* FBSDKServerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKServerConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration.h; sourceTree = ""; }; + F017C6B032BF9A5C5324CD4B2EB02982 /* crypto_scalarmult_curve25519.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_scalarmult_curve25519.h; path = src/libsodium/include/sodium/crypto_scalarmult_curve25519.h; sourceTree = ""; }; + F09422620497769D0A106A4C1744ED7E /* FBSDKMessageDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMessageDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKMessageDialog.h; sourceTree = ""; }; + F0F9FE3CFA1726202D8CFD6C418E960D /* keypair.c */ = {isa = PBXFileReference; includeInIndex = 1; name = keypair.c; path = src/libsodium/crypto_sign/ed25519/ref10/keypair.c; sourceTree = ""; }; + F1244EAE09D92D4EE9A54E2EE465C291 /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = FBSDKLoginKit.framework; path = FBSDKLoginKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F12AE894B9A21D1C99A5E1D59C4C1C2A /* FBSDKShareMediaContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareMediaContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareMediaContent.h; sourceTree = ""; }; + F160CEFDA9EF67D91C0D0BB870F6B710 /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIDevice_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; }; F18435C7355DA51EDB57E2BC9552B2FC /* Pods-PNObject_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PNObject_Tests-acknowledgements.markdown"; sourceTree = ""; }; - F1CC66B259007DA33984C839FF7EBFC1 /* FBSDKMonotonicTime.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMonotonicTime.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMonotonicTime.m; sourceTree = ""; }; - F219B33590245FD6B174A35DA305F9F6 /* BFAppLinkReturnToRefererController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererController.h; path = Bolts/iOS/BFAppLinkReturnToRefererController.h; sourceTree = ""; }; - F23C49D2F5855C626500B165AE54D24C /* RZDBMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = RZDBMacros.h; path = RZDataBinding/RZDBMacros.h; sourceTree = ""; }; - F24DF231FB88391E68059E1465C4072C /* NSDate+NSDate_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+NSDate_Util.h"; path = "Pod/Classes/NSDate+NSDate_Util.h"; sourceTree = ""; }; - F25A949AFF77FDE22119B8314F9B4BD3 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F2C9DEA5C695193273F53A1DFEE3CD46 /* NSUserDefaults-AESEncryptor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSUserDefaults-AESEncryptor-prefix.pch"; sourceTree = ""; }; - F35A9D890E922DFEDFE78AA8507B6E3F /* FBSDKBridgeAPIResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIResponse.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIResponse.h; sourceTree = ""; }; - F3E2D19E782F4709189F8D67D427BA44 /* FBSDKLoginCompletion+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginCompletion+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginCompletion+Internal.h"; sourceTree = ""; }; - F4930717279413DD1C795946CFD22A9E /* FBSDKAccessTokenCacheV3_17.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAccessTokenCacheV3_17.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_17.m; sourceTree = ""; }; - F4AAC0A1490CFFD33DEAA693698CF8D2 /* FBSDKURLConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKURLConnection.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLConnection.m; sourceTree = ""; }; - F4EF1722FBFA1ECDE3A93F12AC92086F /* FBSDKColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKColor.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.h; sourceTree = ""; }; - F506431B86469BF9550E7E848C3059E2 /* BFCancellationTokenRegistration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationTokenRegistration.m; path = Bolts/Common/BFCancellationTokenRegistration.m; sourceTree = ""; }; - F50B06F339F9EE4A44CF63CD95C8C52D /* FBSnapshotTestCasePlatform.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCasePlatform.h; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.h; sourceTree = ""; }; - F52783F78B13E880458E627E937872DF /* PEAR-FileManager-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-prefix.pch"; sourceTree = ""; }; - F5F2EAFAFFB31693C6EA28955EA226B6 /* FBSDKAppGroupJoinDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupJoinDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupJoinDialog.h; sourceTree = ""; }; - F61FE06E763FEA83D7E54FC692A15B1F /* NAHMAC.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAHMAC.h; path = NACrypto/NAHMAC.h; sourceTree = ""; }; - F63C21A34E6100377F8BBBCEB5796306 /* FBSDKShareKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKShareKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F63FADF94F061DE473516A2CAF7FE5EB /* FBSDKLikeActionControllerCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeActionControllerCache.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionControllerCache.h; sourceTree = ""; }; - F6813729A51BFBD7B2AA78344A099482 /* FBSDKDynamicFrameworkLoader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDynamicFrameworkLoader.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal_NoARC/FBSDKDynamicFrameworkLoader.m; sourceTree = ""; }; - F7BFFCBA93010EDE4663EFBFE0B1C62A /* FBSnapshotTestCase.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = FBSnapshotTestCase.modulemap; sourceTree = ""; }; + F22DD14C66B71A9DE3E5854A5880482B /* FBSDKBridgeAPIRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIRequest.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest.h; sourceTree = ""; }; + F232C6D9C5F7DDE94B4923C0715FF0CC /* FBSDKAccessTokenCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCache.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCache.h; sourceTree = ""; }; + F2673047EEC37743C83D56200D29ED44 /* FBSDKWebDialogView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKWebDialogView.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialogView.h; sourceTree = ""; }; + F2AC73086EDE3F07B5C841BC4EE260AF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F2CA1DA39E7A1F8F613D955D31898642 /* common.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = common.h; path = src/libsodium/crypto_stream/aes128ctr/portable/common.h; sourceTree = ""; }; + F2EEF54D12D186B8663C8DCB3F695C1D /* FBSDKAudioResourceLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAudioResourceLoader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAudioResourceLoader.h; sourceTree = ""; }; + F33B08AF89C2771A8BABAAF23B19607B /* DDDKeychainWrapper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDKeychainWrapper.m; path = Pod/Classes/DDDKeychainWrapper.m; sourceTree = ""; }; + F34C21C304DB8ED506C34BB5E58BA0CD /* StrongestPasswordValidator-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "StrongestPasswordValidator-umbrella.h"; sourceTree = ""; }; + F366E022DF0315DA5F4EEFF342684D89 /* FBSDKSharing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharing.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharing.h; sourceTree = ""; }; + F3AC63FD2F96FDBC633CACFB69EBAA6F /* NAAuth.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NAAuth.h; path = NAChloride/NAAuth.h; sourceTree = ""; }; + F3D06BEEEAC3C56BCAE6C2C139107AA1 /* hash_sha256_api.c */ = {isa = PBXFileReference; includeInIndex = 1; name = hash_sha256_api.c; path = src/libsodium/crypto_hash/sha256/hash_sha256_api.c; sourceTree = ""; }; + F470A31D2B704B9242F3495680919A9D /* AFNetworking-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "AFNetworking-umbrella.h"; sourceTree = ""; }; + F487F498EE80708E94B387091EB01B08 /* crypto_stream.c */ = {isa = PBXFileReference; includeInIndex = 1; name = crypto_stream.c; path = src/libsodium/crypto_stream/crypto_stream.c; sourceTree = ""; }; + F4B0930C8CF4D4F690777C077AB2FF86 /* FBSDKLoginConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginConstants.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginConstants.m; sourceTree = ""; }; + F5080E28EF7CDF4535196CE13B7F76AA /* CocoaSecurity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CocoaSecurity.h; path = CocoaSecurity/CocoaSecurity.h; sourceTree = ""; }; + F50B815B81700631FEAFF4599E17F1C4 /* PNObjectFormData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectFormData.m; sourceTree = ""; }; + F532435A8A005EAE555E5D3FAB6D6482 /* PureLayout.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = PureLayout.modulemap; sourceTree = ""; }; + F57235CC6EF29FD3FAA03BF4A0CABF94 /* crypto_hash_sha256.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = crypto_hash_sha256.h; path = src/libsodium/include/sodium/crypto_hash_sha256.h; sourceTree = ""; }; + F5B19896930D38CF7CAB078AB2C0764F /* FBSDKAppEventsUtility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsUtility.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsUtility.m; sourceTree = ""; }; + F6441029547DA66B05FBD8C65ACAEA4E /* int128.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = int128.h; path = src/libsodium/crypto_stream/aes128ctr/portable/int128.h; sourceTree = ""; }; + F6CF3E644A2FFB78A49F2DC9DD3C6FB1 /* FBSDKTypeUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTypeUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTypeUtility.h; sourceTree = ""; }; + F6F1222F573DA4C0D3A25994D0726836 /* PNObject.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = PNObject.modulemap; sourceTree = ""; }; + F6FD391F81EC536082DF1F22081788BD /* FBSDKShareOpenGraphContent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphContent.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphContent.m; sourceTree = ""; }; + F762F13D9D73B3347C92B3395E21ED97 /* stream_chacha20_ref.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = stream_chacha20_ref.h; path = src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h; sourceTree = ""; }; + F7948B4533BB9E4DFA58430415073AF9 /* CodFisResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CodFisResponse.h; path = "CodFis-Helper/CodFisResponse.h"; sourceTree = ""; }; + F81AEC1683D42FBE542B95392B7B1B9C /* FBSDKShareError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareError.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareError.m; sourceTree = ""; }; F872FBD57D98CFC3DE47AD9A270264B9 /* Pods-PNObject_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PNObject_Tests.release.xcconfig"; sourceTree = ""; }; - F89542F61D56F4F96E97BC66A2523B63 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - F89B79FDA318044201231C2CACD641C0 /* FBSDKServerConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKServerConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration.h; sourceTree = ""; }; + F8F179947C0C0E96B116971735C8A938 /* FBSDKAppEventsDeviceInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsDeviceInfo.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsDeviceInfo.h; sourceTree = ""; }; F924BAFD8984753A0E19859F0D994689 /* Pods-PNObject_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PNObject_Example-frameworks.sh"; sourceTree = ""; }; - F9CDED6A75D1C0BD1CDAA8DD1683FC6E /* PNObjectUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNObjectUtilities.h; sourceTree = ""; }; - F9EDDCAF4832D8956A91D1D4BE5F8C00 /* FBSDKShareOpenGraphValueContainer+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareOpenGraphValueContainer+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareOpenGraphValueContainer+Internal.h"; sourceTree = ""; }; - F9F4CA01E5A2D46A31DF5DB924A7057B /* NSObject+Expecta.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+Expecta.h"; path = "Expecta/NSObject+Expecta.h"; sourceTree = ""; }; - FA02D34EE4E648228B5212EB0D4A987C /* PureLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayout.h; path = PureLayout/PureLayout/PureLayout.h; sourceTree = ""; }; - FA0AF7ACB30ADDB9FDC8E01D42B8D28B /* FBSDKWebDialogView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKWebDialogView.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/FBSDKWebDialogView.m; sourceTree = ""; }; - FA53EA4FC5C730618B0D1F9FA3D8FFA0 /* FBSDKProfile.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKProfile.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfile.h; sourceTree = ""; }; - FA8981277E4034B0B70BFF9FB108D51D /* NSUserDefaults-AESEncryptor-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSUserDefaults-AESEncryptor-umbrella.h"; sourceTree = ""; }; - FAB0381156F3F4AD217D1D3DCE2F0AEF /* BFExecutor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFExecutor.m; path = Bolts/Common/BFExecutor.m; sourceTree = ""; }; - FAB15659B21DB1B9466ADCFE953E2FCC /* FBSDKProfilePictureView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKProfilePictureView.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.m; sourceTree = ""; }; - FAD76347F245B54693BB52DDFEE489A8 /* BFAppLinkReturnToRefererView_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererView_Internal.h; path = Bolts/iOS/Internal/BFAppLinkReturnToRefererView_Internal.h; sourceTree = ""; }; - FB7AE5C24D94B0FE56E8603086A672AF /* FBSDKAppLinkUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppLinkUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkUtility.h; sourceTree = ""; }; - FC03386EA79B96A8DFFF4083C969E695 /* SPTSharedExampleGroups.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSharedExampleGroups.h; path = Specta/Specta/SPTSharedExampleGroups.h; sourceTree = ""; }; - FC3E43D78F174A5EE2B892F1B0D3EB69 /* FBSDKCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKCopying.h; sourceTree = ""; }; - FC4400CAA1906C8AC802221C3B73F548 /* BFAppLink.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLink.h; path = Bolts/iOS/BFAppLink.h; sourceTree = ""; }; - FC54010CF6299B4A635C7F3EE6CE08F1 /* FBSDKSharing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharing.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharing.h; sourceTree = ""; }; - FC6560DB4549E256FE485D6C61773E4E /* SPTCompiledExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCompiledExample.m; path = Specta/Specta/SPTCompiledExample.m; sourceTree = ""; }; - FCC9170AA8E6F08A7A400C27E5CA2B88 /* SPTSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTSpec.h; path = Specta/Specta/SPTSpec.h; sourceTree = ""; }; - FD44E7BC5A68440AB9E6A558934880B5 /* NSString-Helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString-Helper-dummy.m"; sourceTree = ""; }; - FD53CCFCFF6B70FEC3AEBA0634EE5F55 /* FBSnapshotTestCase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSnapshotTestCase-dummy.m"; sourceTree = ""; }; - FE35BEF9234DBF69605AFD5904F34B87 /* FBSDKShareOpenGraphValueContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphValueContainer.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphValueContainer.m; sourceTree = ""; }; - FE861E8218B983DE7AD5428FCF196D52 /* BFCancellationTokenSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationTokenSource.h; path = Bolts/Common/BFCancellationTokenSource.h; sourceTree = ""; }; - FF3D098509B976E6D87BAD725A263284 /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; }; + F9A5FEB186DF76B10901176F89C05329 /* FBSDKCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCrypto.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Cryptography/FBSDKCrypto.m; sourceTree = ""; }; + F9E292E8119060322CF92EDAC054DFA4 /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKLoginKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9F74C1674BC531B7F40EDB8F1210703 /* nv_ios_http_status.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = nv_ios_http_status.m; path = "nv-ios-http-status/nv_ios_http_status.m"; sourceTree = ""; }; + FA0CE039477A72FBF76C40D47A40430A /* FBSDKCrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCrypto.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Cryptography/FBSDKCrypto.h; sourceTree = ""; }; + FA5E261EAF9F70EE6419FBF7F4EB81BA /* FBSDKAppGroupContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupContent.h; sourceTree = ""; }; + FA8B30719BFE9296CB5B2BBA226E76F5 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + FB332713BC2F79FDE8DD50F3EFE636DC /* obsolete.c */ = {isa = PBXFileReference; includeInIndex = 1; name = obsolete.c; path = src/libsodium/crypto_sign/ed25519/ref10/obsolete.c; sourceTree = ""; }; + FB70AE3207592925A4CC92B198CB1A42 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + FBB05B50549253728E1CE2F50312890E /* FBSDKGraphRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequest.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequest.m; sourceTree = ""; }; + FBB7F64DEE6FC0FF9780708F49CF7DE6 /* EXPMatchers+beIdenticalTo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beIdenticalTo.m"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.m"; sourceTree = ""; }; + FBCA00299EE704BFDB9298417ED8F906 /* CocoaSecurity-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CocoaSecurity-prefix.pch"; sourceTree = ""; }; + FC00522169EA3F6C5E5801CC14B282F7 /* FBSDKPaymentObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKPaymentObserver.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKPaymentObserver.h; sourceTree = ""; }; + FC5CBA8379481929584E70A5F043C93C /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; }; + FCB73412FAAF35B3C9A5681174FC3086 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FD16F709A023F07A9B9095C1C494E78E /* libsodium-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "libsodium-dummy.m"; sourceTree = ""; }; + FD176DEDB8BC5240FC603162963D8A3E /* FBSDKShareKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareKit+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareKit+Internal.h"; sourceTree = ""; }; + FDB01B701C5BAF1454D0A80D6C040BA9 /* DJLocalizationSystem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DJLocalizationSystem.h; path = DJLocalization/DJLocalizationSystem.h; sourceTree = ""; }; + FE118A1C9908DC05AFE7971571C376A9 /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; }; + FE314B741DE6AD14499CCFD7FF92FE54 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + FE56FC35592AC5DDAFAE91B7A886C0E8 /* FBSDKSendButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSendButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSendButton.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 087BA4DD11F2AEAF05B3D19E8214C05A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 32703D1676CA94AE1A3D554D6FDAAA9F /* Foundation.framework in Frameworks */, - EDC1FB5265AA5A065B8159DB61968E69 /* UIKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0C767A33954929B3DA39B1724C2855BB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 82E5A07FA4CEECF136C15FBF6E39250F /* Foundation.framework in Frameworks */, - 1492F065F5EFD049EE05C202CDDF78F9 /* QuartzCore.framework in Frameworks */, - 4C90F652C7F43AB6C049AF2A77119222 /* UIKit.framework in Frameworks */, - 6FA693F86B8C583ED94F45EC0BDECBD2 /* XCTest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 24D7B60789379030948D1EA58802DD97 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2030,15 +2259,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2933D507F1FD5C5C05AD1ABBB28D34A9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C8291FF9EB9DFF1D78EDDF416F1A5325 /* Foundation.framework in Frameworks */, - 5F175CA5FAF2F1209EBBE9240C06063C /* XCTest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 2BAF96285454775929F4A6BD82CEFD41 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2085,31 +2305,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7060B7683CB0B25514C609ABFD33DC07 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A614491277D447B0BA73F694F4F53C32 /* AFNetworking.framework in Frameworks */, - 91F5D444B364C644F740C5E1009F8D9D /* Bolts.framework in Frameworks */, - 2F44C834A6333C017E938A6FFEB95229 /* CocoaSecurity.framework in Frameworks */, - 5E1D27133E2608B60A67383A7825315A /* CodFis_Helper.framework in Frameworks */, - D280F7E8CFC879DA71B989376BB2607E /* DJLocalization.framework in Frameworks */, - EA81D72FB8A568C95A3A2FE6F41615DF /* FBSDKCoreKit.framework in Frameworks */, - AB4EE60E94C31FC9AB44138BD394F6D0 /* FBSDKLoginKit.framework in Frameworks */, - E84B11315C96AB8A8D3F3A49BBFA5783 /* FBSDKShareKit.framework in Frameworks */, - 52CEF537BFEFC9E2C0FFEA0871928065 /* Foundation.framework in Frameworks */, - FB1389C400AB472674812F0CDD75B486 /* NACrypto.framework in Frameworks */, - C207E8642630FBA72B589AF13CB477CF /* NSDate_Utils.framework in Frameworks */, - FA44B6EC7D440F2086F4D301C2438C8A /* NSString_Helper.framework in Frameworks */, - 79DE41DBCA81E068AE38EA6E6A4158FC /* NSUserDefaults_AESEncryptor.framework in Frameworks */, - 98A185D9461F812F5DA76DD289F3251A /* nv_ios_http_status.framework in Frameworks */, - 6EEC18FF97AB73D902D541D835287D3E /* PEAR_FileManager_iOS.framework in Frameworks */, - FA5880D0879746E17CD8C33ABC326FAF /* RZDataBinding.framework in Frameworks */, - 3F16C4A1634A914FFB94BF44DF22E20B /* StrongestPasswordValidator.framework in Frameworks */, - 0EC3A09D906AF6398A7FB2CCC92A596D /* UIDevice_Utils.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 708F207D6FAEED008089DD5B2DE7BC9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2120,6 +2315,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 73F30CA6A85D9D481850CFE484B5C824 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FA2C6F99E67A6B9EEBBCED5482CE477A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 75D29B867FB55AE0E5D4C85A3D763B9C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 94523C40B57B4394D2C0FD3DAB6AC872 /* Foundation.framework in Frameworks */, + 773E93BE1F2F6C0C3F1B4D78D0EA4555 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7971F0E5BB24B850A9F4C91873EAE1AD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2128,19 +2340,46 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9B2EE6C318B786ACF4C6FA2427425A09 /* Frameworks */ = { + 88F156E9D97A3934D684806C1CE66CDB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 093ADA885823F6616215B90E407BE193 /* Foundation.framework in Frameworks */, + 22EF5E092CDAB6E485E642BFB4C5188D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9DE08C24E2B4C2A4140BD46AAB27D027 /* Frameworks */ = { + 990C427E7F539BE644FF19414A4B35B8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 129FFBED713A26B9C69E4DD24AC9FC22 /* Foundation.framework in Frameworks */, + CFAF9B83B841F4A6B9424F4198447B48 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B17B0F68B9C55F094605E014EEE9DF68 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 85E5D7145002A73DE080B01999B7603C /* AFNetworking.framework in Frameworks */, + 7D80F47C27700D80ABA56F33E8BC74EB /* Bolts.framework in Frameworks */, + 8DD2FB47A3CDBC8A4139481FDED5E251 /* CocoaSecurity.framework in Frameworks */, + BF25674C639D470FB89FE5B2F19754E1 /* CodFis_Helper.framework in Frameworks */, + F2C07CC1FC83401DC87EBB1D8EDB45A0 /* DDDKeychainWrapper.framework in Frameworks */, + 3F65E1CAB6DAA9E940E2D5142E30D21B /* DJLocalization.framework in Frameworks */, + C6E06B8CCB77518A045B021F6D8A4D62 /* FBSDKCoreKit.framework in Frameworks */, + 377B78EAB42616FCEAA3E62F20437D07 /* FBSDKLoginKit.framework in Frameworks */, + 16F9BF77D856863FDE2AFEF9519FD434 /* FBSDKShareKit.framework in Frameworks */, + 22DC8D493C031D02DC82D5785E2ED077 /* Foundation.framework in Frameworks */, + F1D68ED29AD7FF9E23985D8C761F0698 /* libsodium.framework in Frameworks */, + 8EBD509ADD51F3F826FA0B04EB19F69B /* NAChloride.framework in Frameworks */, + A20622235A266412E5F8CCF07B5CD346 /* NSDate_Utils.framework in Frameworks */, + AEF3F8A87DBCEDD46B543B3495D2289E /* NSString_Helper.framework in Frameworks */, + 97848DC5138CE530DA9F0A26131AB96F /* NSUserDefaults_AESEncryptor.framework in Frameworks */, + 237F57CE7454CBEB3AB863CCAD42EE51 /* nv_ios_http_status.framework in Frameworks */, + 82EC19458B1A3C9BCDB1DA6181979818 /* PEAR_FileManager_iOS.framework in Frameworks */, + 6F10A90FC5600BADFDCE7119DF2C97B5 /* RZDataBinding.framework in Frameworks */, + B14728E66C39CAAB8A9E179805561337 /* StrongestPasswordValidator.framework in Frameworks */, + 737A2937D9B02670182E26396F188DAC /* UIDevice_Utils.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2153,6 +2392,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + BC9FA8769C32566FC5F74B0B5F9D7538 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C370BCB9203634890E5BF63349361CA5 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; C09C03FBAEB07051028360FC0F0DA966 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2161,19 +2408,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C9E6D67E76961D7478167EA81184CCA7 /* Frameworks */ = { + C4DEF7A8CFDF75E2709962DF2E8474EB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6213D2E044D10181ED0C9503DB0683C8 /* Foundation.framework in Frameworks */, + DD0EB7745A0423D85E68526E011B6D59 /* Foundation.framework in Frameworks */, + 9F799AEE096324726157CE538785FC9A /* libsodium.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E3E8F8A6F26D40782847CFBB211B77D6 /* Frameworks */ = { + DA1197D158BA95BD5EB8F1501AA01E86 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0D93094AB01E5FDDA4E50762FF2FEFA4 /* Foundation.framework in Frameworks */, + 21099602C001A0990D4A9FFCE822607D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2186,31 +2434,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E734C00B7E01BD170B0B70882535F050 /* Frameworks */ = { + F258DB448588D76A9888D03410AC89C2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 59BD06DC8DA9DB8D117C90096451CE81 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EA7419253261239D5483B3966111A1FC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CA12FB380E35F806A03D6094BC278F1B /* Expecta.framework in Frameworks */, - 9CFF07440060332E5BCB557D40336E55 /* FBSnapshotTestCase.framework in Frameworks */, - 9242EFA2F87E7A82ED4009423DA1A942 /* Foundation.framework in Frameworks */, - B89A19FA40C5F590F0AAD91908FD9DDB /* Specta.framework in Frameworks */, - EA5294C319F94E8A4032A59807673349 /* XCTest.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F2113B5E93FEF8BA50CB64CB4D4D4AFA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F4F0D951B819A9B0AF9DF3DDDF05C16D /* Foundation.framework in Frameworks */, + 1F26AB65193FD89D4295779CEBFFBBA1 /* Foundation.framework in Frameworks */, + 5D1ECC137A24FB143EBFBE55C6843F8A /* XCTest.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2222,6 +2451,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + F8E9A420EEDA0E146FA5C19A96D18DBB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 95A57001E8DFE60CC3FD37BC4FA29D8A /* Foundation.framework in Frameworks */, + 6589476EA9FB997A6204F122A53CE36C /* Security.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F959241AD43585BC2E3804C81025B725 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 886B41A85178E6EB682B96A76D909819 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; FDFB3E95303601FD845E1B8EC09C0E42 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2233,110 +2479,105 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03D39DF1D6C50A1D76AB5D3FA111C29B /* Bolts */ = { + 02DBA1999175EFEE81E2ECE1583E5F9B /* Support Files */ = { isa = PBXGroup; children = ( - 6A1CC3AC4B11B671130DE737B61E6EB3 /* AppLinks */, - C48831B34051D140CA1CA64E208777CF /* Support Files */, - E946B8E6BD0D67EFDCAF16208296601E /* Tasks */, + 4134326CBBAC62847306B034A837ACCE /* Info.plist */, + 19BAD71E8D6CC3CFA642EE95EA1E1FB2 /* StrongestPasswordValidator.modulemap */, + 601777A55214AB3AB35DE65CAC520B77 /* StrongestPasswordValidator.xcconfig */, + 7DAAAC718136D395F8584F59ADB867E7 /* StrongestPasswordValidator-dummy.m */, + 42AF1460F8B1FB4AB6B14E14E17CB391 /* StrongestPasswordValidator-prefix.pch */, + F34C21C304DB8ED506C34BB5E58BA0CD /* StrongestPasswordValidator-umbrella.h */, ); - name = Bolts; - path = Bolts; + name = "Support Files"; + path = "../Target Support Files/StrongestPasswordValidator"; sourceTree = ""; }; - 040BECB388FC0810D2BD1E1CD587F894 /* NACrypto */ = { + 02FA3E6E404E302550F54118EF9C9C76 /* Support Files */ = { isa = PBXGroup; children = ( - 9032207099C8461EB2B877B11E9B57CB /* brg_endian.h */, - 5672B640956F6D68DAA57B839B52961B /* KeccakF-1600-32.h */, - 23ECFA20CDB31C880A16DDCE0A3F4F17 /* KeccakF-1600-32-rvk.h */, - 913A46B76A2A3829523A960CC7B7F303 /* KeccakF-1600-32-s1.h */, - 879C8AE7CD9D1BBE080C3D5114C7261D /* KeccakF-1600-32-s2.h */, - DC160AEC876314D0BAEB3818A1822DA1 /* KeccakF-1600-int-set.h */, - 30CFDDCFCE6E9C815967ADA1592A5C0F /* KeccakF-1600-interface.h */, - 6E3FDA3F967CE146E983A26E2ED382CC /* KeccakF-1600-opt32.c */, - AD113893D39C850BB2383A5EC7EC832C /* KeccakF-1600-opt32-settings.h */, - 37C773246C9AF4570817C21E2986E28F /* KeccakF-1600-unrolling.h */, - E2C15D0622AA95C1A5DB901F437FE0B8 /* KeccakNISTInterface.c */, - 0F075B8B40DEE4C748EF4BDB007DB8B1 /* KeccakNISTInterface.h */, - C042D38A4D79E0EE4B5BAACC087C0097 /* KeccakSponge.c */, - 61FDF2526FEB3566B2DCA751829C06B2 /* KeccakSponge.h */, - 2A94192763F40A477298762E34C81B8A /* NAAES.h */, - 1C27D8C9E1AEF410593CCBD29D5ACD56 /* NAAES.m */, - 14DDAE726CE99DDD44587D9CEF5EDD14 /* NACounter.h */, - 3FB61492CE0E1665DB213DD0E7089156 /* NACounter.m */, - 4497FEE51180DC29498CAB279818A06E /* NACrypto.h */, - BA1D94797373650E47CEC08F5EEF7213 /* NADigest.h */, - 1C3B754855A1FA85A7BD34077A835E2A /* NADigest.m */, - F61FE06E763FEA83D7E54FC692A15B1F /* NAHMAC.h */, - ADF18947C132306DC38A9D9CD7250B92 /* NAHMAC.m */, - E9EBDB959779FFCC18B7D87B7AB50EDF /* NAKeychain.h */, - 0133FA0017DCCFC33A86B183E30F9DB9 /* NAKeychain.m */, - 0A6C2F41EBFD35D1F096887040DF6079 /* NANSData+Utils.h */, - 7CD1DFFCDF0D9D5888306076EA55A055 /* NANSData+Utils.m */, - 481BC150396B27F83B61C0049CB56A1E /* NANSMutableData+Utils.h */, - 86DF7AE8C7BBFAE8C370D5A14F891EDC /* NANSMutableData+Utils.m */, - 3ADF4ACF3DD91183393472E9B317EA98 /* NANSString+Utils.h */, - A4E8196C7952AF52995C1C1295E2AE69 /* NANSString+Utils.m */, - BA39B7375F53FB1DD8E65EF133B60D65 /* NASecRandom.h */, - 75C1BD7D462E54814D753F973BA15CA8 /* NASecRandom.m */, - 49D6C9FEEE6E9D2DBD7CA66A82900AE7 /* NASHA3.h */, - 2FFF971122AFA7A8C9221549A02A712C /* NASHA3.m */, - EE7E996A1EAC1BAC50F20B5A75601A2E /* NATwoFish.h */, - 5BAEE53309D5126D128429931855124A /* NATwoFish.m */, - 77C0FF775961C5CF58757D301B38149B /* twofish.c */, - A0C24F744098F257137E2CEBD373AD8B /* twofish.h */, - AE40EDA7CA5C0BC60505D2F18ABD8D8A /* Support Files */, + 9792039D74295CBC42DFBB07F87291F8 /* Bolts.modulemap */, + 150C7D1FB6EB633FE7BB3E18E045EE77 /* Bolts.xcconfig */, + 830E96E5853904057A5E639721BB20A9 /* Bolts-dummy.m */, + 7BCE386E43C80439878A947A32D7AA0B /* Bolts-prefix.pch */, + A9F5C0E666F6401BC4BF95AC282AFCCE /* Bolts-umbrella.h */, + BF10239140B3C37C00D7E4948F165184 /* Info.plist */, ); - name = NACrypto; - path = NACrypto; + name = "Support Files"; + path = "../Target Support Files/Bolts"; sourceTree = ""; }; - 0F8536E7A531088D03BCC6553E50DC13 /* NSUserDefaults-AESEncryptor */ = { + 035D0E08A1F3E4FAC46E57685F56FECA /* NSURLSession */ = { isa = PBXGroup; children = ( - E4811C0E3D643AF36C15726EB48E1F69 /* NSUserDefaults+AESEncryptor.h */, - 7696CBFF0B75F6198191F3805939C52B /* NSUserDefaults+AESEncryptor.m */, - FBED3FE4784FDE4FC9AC4BBFD70CEA9F /* Support Files */, + 0F8CF61C95BB205DC996672B249B6A0A /* AFHTTPSessionManager.h */, + ADD5C3DB264E89F21FB96C78C64528B9 /* AFHTTPSessionManager.m */, + C3F11C6E75C187FB0A636B3EE214008E /* AFURLSessionManager.h */, + 02A1375B683574A687A4E6A8F9325241 /* AFURLSessionManager.m */, ); - name = "NSUserDefaults-AESEncryptor"; - path = "NSUserDefaults-AESEncryptor"; + name = NSURLSession; sourceTree = ""; }; - 141D3F5873072E21E9572E240A089CE6 /* FBSDKLoginKit */ = { + 0440EA135D7FE37E58ED4309282F68DA /* Support Files */ = { isa = PBXGroup; children = ( - E7BE4448F8FACE945C026CE416E973BF /* _FBSDKLoginRecoveryAttempter.h */, - C7D430E79ACC118F36FF35360543F7F2 /* _FBSDKLoginRecoveryAttempter.m */, - 19A290D4124DBB9ED53D935CA5E95EF3 /* FBSDKLoginButton.h */, - 0795708CB58982B0C93FCCCD6EB4CF2E /* FBSDKLoginButton.m */, - 306EBE60A6BE923DD3B2D182D56BF5A1 /* FBSDKLoginCompletion.h */, - 8177932A2A11DB0D5F62ACD40A7D7BEC /* FBSDKLoginCompletion.m */, - F3E2D19E782F4709189F8D67D427BA44 /* FBSDKLoginCompletion+Internal.h */, - 836EB9ACFDF104FE0A72E1A5AA42AD28 /* FBSDKLoginConstants.h */, - C79A52426AE71E70F9F3EC9663C174BB /* FBSDKLoginConstants.m */, - BC07DBDEC936E81E24DDB422A5A1BF76 /* FBSDKLoginError.h */, - BCD81B55FF19E8990A0336F1F91EC28E /* FBSDKLoginError.m */, - E15E9E148585ED91F10326DCCE5596A8 /* FBSDKLoginKit.h */, - 7FDFB7FC3985D1DD9FCD12D68096DF6F /* FBSDKLoginKit+Internal.h */, - 65FF525DCD3D1A77C649951BD06DF38C /* FBSDKLoginManager.h */, - 828F406C66024E9875DEF502557C212C /* FBSDKLoginManager.m */, - 8F4ABA43641CEC76EF64F9845D1869E5 /* FBSDKLoginManager+Internal.h */, - 4D1EA21A6B45CD2D06417B55647B75B7 /* FBSDKLoginManagerLogger.h */, - 8C6B96CCB79F4437B61300B74A6C0459 /* FBSDKLoginManagerLogger.m */, - C870D49EA251BCE79DBDDD9BA9C5094D /* FBSDKLoginManagerLoginResult.h */, - A584931C1759D3FBA1FDB7A66EFA0E9D /* FBSDKLoginManagerLoginResult.m */, - 7DB42A88D855CC3B21719F896DE2A9CF /* FBSDKLoginManagerLoginResult+Internal.h */, - E0F9435AEE04F49F0D08B086163E98DC /* FBSDKLoginTooltipView.h */, - CCAA0D0A1E143CF733A210B08127C2F7 /* FBSDKLoginTooltipView.m */, - CC11C9459EAF6A8C590F20CF1AD21DA5 /* FBSDKLoginUtility.h */, - 26E66EEA1EC74635C4E7C981510871A7 /* FBSDKLoginUtility.m */, - 8FB3D1BEB0973C2D3FFF36BD53494F08 /* FBSDKTooltipView.h */, - BEF4EE5118CC202ED720B6E3340E10C0 /* FBSDKTooltipView.m */, - 3A1FE4784287D5CC61B2B15CE5D20AD4 /* Support Files */, + 57C295097BAC010F26E71FF8AD0495BE /* Info.plist */, + C5117D2723602C1811FA7E8786504167 /* NSDate_Utils.modulemap */, + B837348DEBA13FAD39913F413866C21E /* NSDate_Utils.xcconfig */, + BFB0E88573CE8BB8D61E5611304A7F89 /* NSDate_Utils-dummy.m */, + 2142FB71AC0808A433461EEA4C89D349 /* NSDate_Utils-prefix.pch */, + 294B3C66073AFFF539451B056447852A /* NSDate_Utils-umbrella.h */, ); - name = FBSDKLoginKit; - path = FBSDKLoginKit; + name = "Support Files"; + path = "../Target Support Files/NSDate_Utils"; + sourceTree = ""; + }; + 048FBFDF89CEDC030D74A80CC1D4FE8C /* Support Files */ = { + isa = PBXGroup; + children = ( + 867D6781367AB4E2A3EA72FADA84F92C /* FBSDKCoreKit.modulemap */, + 44295DFCD56D216D9612F89E237FD362 /* FBSDKCoreKit.xcconfig */, + BA56633D5AD6012A78744444993C8A0A /* FBSDKCoreKit-dummy.m */, + CDB3FEF8F50540DE8CD861FA479E9285 /* FBSDKCoreKit-prefix.pch */, + BB3FA6F13A252401AFF53CFAE8CB4BE9 /* FBSDKCoreKit-umbrella.h */, + 562E2177DEC8B77BCD35381F5293B99E /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/FBSDKCoreKit"; + sourceTree = ""; + }; + 051C4EFAF5F57C58CC8006CDFF0C9569 /* Support Files */ = { + isa = PBXGroup; + children = ( + A8111BDDE02BF2870D7BF8B97269F051 /* Info.plist */, + ED55120F07DACF4E9F73D2796D538086 /* NSString-Helper.modulemap */, + 8AA96AEE9F3D16C7D5E640A4C7AE300D /* NSString-Helper.xcconfig */, + EBDC5A6C9070070F368D4A68A47A99EC /* NSString-Helper-dummy.m */, + 939FD1D7A4776591866B15624D1BBF47 /* NSString-Helper-prefix.pch */, + B405C887B463B57319E82990FDC78E4F /* NSString-Helper-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/NSString-Helper"; + sourceTree = ""; + }; + 076B1DB455E855B5414E8B76B06DB492 /* PNObject */ = { + isa = PBXGroup; + children = ( + B299EAFD24482971C440F7004865E366 /* Classes */, + ); + name = PNObject; + path = PNObject; + sourceTree = ""; + }; + 0902CFAD22BA0F9FD7ACDCC525338DE7 /* Serialization */ = { + isa = PBXGroup; + children = ( + FB70AE3207592925A4CC92B198CB1A42 /* AFURLRequestSerialization.h */, + 18EC71A5BD904A05D44358B3646692FA /* AFURLRequestSerialization.m */, + 4696FF898A7108B34D96420A6C436E96 /* AFURLResponseSerialization.h */, + 6F2995946412A33EC6A25165DA7B6173 /* AFURLResponseSerialization.m */, + ); + name = Serialization; sourceTree = ""; }; 168A3B8397ECA5C7750BACB8764D0C36 /* Pods-PNObject_Tests */ = { @@ -2357,794 +2598,502 @@ path = "Target Support Files/Pods-PNObject_Tests"; sourceTree = ""; }; - 198DDE8E0E4B3A9DEDFD2C4FBD84F6FA /* Support Files */ = { + 18B6F1EC577BFF724206F0F633CCCB46 /* Support Files */ = { isa = PBXGroup; children = ( - 9ED5E6CD01288270601A826CF1CEFDF9 /* Info.plist */, - ECB20CDC4CA7F410B36F30B02CA1916B /* Specta.modulemap */, - 1BBD5DC88968C05E6C30E4AC3AECB770 /* Specta.xcconfig */, - 1A60ACB773CC7B01EA2F485AE2D581E5 /* Specta-dummy.m */, - D5429064F4CC216EEE559EB09920B161 /* Specta-prefix.pch */, - 49C44EE3CC547E21809656CAD4388943 /* Specta-umbrella.h */, + C452F357EE5E749A54A0546D30BF1C7F /* Expecta.modulemap */, + 7AB6A1DF5177C7B13774DAC19420C1B1 /* Expecta.xcconfig */, + A81D29954260D0402254CE173E4A53C0 /* Expecta-dummy.m */, + 06F8ADBD9C3E333CACF1A0E845D8DE28 /* Expecta-prefix.pch */, + 0CBBA584B111EBC2230E0F4C9DFA1A91 /* Expecta-umbrella.h */, + FCB73412FAAF35B3C9A5681174FC3086 /* Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/Specta"; + path = "../Target Support Files/Expecta"; sourceTree = ""; }; - 1D6C2586C3CDBD7231433BA7DE7CA5C7 /* FBSDKShareKit */ = { + 1AAD3FABF6E9FEAB84E511636CA98983 /* NAChloride */ = { isa = PBXGroup; children = ( - C5A7186E315B770E902D2173BF2EDEF7 /* FBSDKAppGroupAddDialog.h */, - 88AEEF7D3A0A840DEB859520340D8EB7 /* FBSDKAppGroupAddDialog.m */, - ECB032F342C59B081372642930085A73 /* FBSDKAppGroupContent.h */, - 8AA220C912F76137815A6ECC0F00BA4B /* FBSDKAppGroupContent.m */, - F5F2EAFAFFB31693C6EA28955EA226B6 /* FBSDKAppGroupJoinDialog.h */, - 22C1AB0A078484B6729ECEE8D94DA8FD /* FBSDKAppGroupJoinDialog.m */, - 4BE029CF72986C651D3C2F0805BCA8C3 /* FBSDKAppInviteContent.h */, - 2F02BEE05C6B2C9F6FF5083FDB74182E /* FBSDKAppInviteContent.m */, - A1276C46ED3D6CA0186911127544A546 /* FBSDKAppInviteDialog.h */, - E55A6BE4BD4BD33578BC405838748015 /* FBSDKAppInviteDialog.m */, - D46CE10C85A60FEF4C5C04F7816C4F34 /* FBSDKCheckmarkIcon.h */, - 313E248F0A48B6C057461EA05E72F4D8 /* FBSDKCheckmarkIcon.m */, - 27998AA83106AAE4BE27F27954380103 /* FBSDKGameRequestContent.h */, - 930ED3F8FBD102B5D27785CAEE03AC5A /* FBSDKGameRequestContent.m */, - 357531F2DAD6E914C1BF17F6D9636F4F /* FBSDKGameRequestDialog.h */, - 752A4F33FDBCE314B01265F228AE9FC2 /* FBSDKGameRequestDialog.m */, - 603A8BA299C0A96AC1B38A33FE61C96D /* FBSDKGameRequestFrictionlessRecipientCache.h */, - 55335B437B11074030382412CD588BFC /* FBSDKGameRequestFrictionlessRecipientCache.m */, - 3D5D159778F4E174968DC771B5425CE8 /* FBSDKHashtag.h */, - 4C58278E7A9DD226B3CF5DE1578F5D66 /* FBSDKHashtag.m */, - E4DAC54DE381BDEBB514E4E8EDADC9D1 /* FBSDKLikeActionController.h */, - 0BE3F5C955AE5AD01ACA9DAB5BF3EADD /* FBSDKLikeActionController.m */, - F63FADF94F061DE473516A2CAF7FE5EB /* FBSDKLikeActionControllerCache.h */, - 84AD83C9DB6A765A528EA1C742FD5373 /* FBSDKLikeActionControllerCache.m */, - 6823C9F7B4C6D8C06A7E98E592A6C669 /* FBSDKLikeBoxBorderView.h */, - 02011E4D3311F5D1CD4C0D6EE1C5280F /* FBSDKLikeBoxBorderView.m */, - B3DA3718110DAD367B50AB0FEBC60C52 /* FBSDKLikeBoxView.h */, - 572CE80B0D48B24A5005ED91A50A1892 /* FBSDKLikeBoxView.m */, - 25FFBAAD0FA9EC9F04F0BAC29F946F0D /* FBSDKLikeButton.h */, - 1A4D85B2C4FD62D7587E844FB69E4AD9 /* FBSDKLikeButton.m */, - 1981AED966A8EFAD27622FC7B22EA714 /* FBSDKLikeButton+Internal.h */, - 70FDFFF826A53335C23027859B4FC658 /* FBSDKLikeButtonPopWAV.h */, - 2713BE3BF29F0F22CAE0DAC4077456D5 /* FBSDKLikeButtonPopWAV.m */, - 7CCA8311D8FFE6D9B23D0A0B8A880D41 /* FBSDKLikeControl.h */, - 57AF277DA5E703D362EE18AC42F3561D /* FBSDKLikeControl.m */, - 07931E20B487E137409C1CCD7559E36D /* FBSDKLikeControl+Internal.h */, - 0B9074F460A1A12301DD810641B6097A /* FBSDKLikeDialog.h */, - 4E244A8BBFD6CDA87EA43C8365D67623 /* FBSDKLikeDialog.m */, - A640590C35B678CE7CEB1A1284909476 /* FBSDKLikeObjectType.h */, - 1DB7C32917C6DC816EE3FB80727E27E1 /* FBSDKLikeObjectType.m */, - E6B8BDA5B0686A17608FDD5741AACD14 /* FBSDKLiking.h */, - EF2578FEB12E7A832A6473BA0151D48A /* FBSDKMessageDialog.h */, - 9BFFCA91B8B3AFFD06111135CC339728 /* FBSDKMessageDialog.m */, - 97189A6488255926A630E3D59B27D22A /* FBSDKMessengerIcon.h */, - 91789F7F85C0BEAC158A81364DB917A1 /* FBSDKMessengerIcon.m */, - 617F95AF1E901768B752A7512E79ABF7 /* FBSDKSendButton.h */, - F138DAD8DA4095C12D3C35ADC87DCE57 /* FBSDKSendButton.m */, - 19C984590194050CD48FFD25231BFB21 /* FBSDKShareAPI.h */, - 78BEC84F9D384942976C98EA632AD1B1 /* FBSDKShareAPI.m */, - F0D192D2A9DAFCF2CDBEC29F7E7DB4A5 /* FBSDKShareButton.h */, - 61E4A59C8C8510725A4FF3F8E8DE7B1B /* FBSDKShareButton.m */, - 8E2CF9887B5075F1F83873B876D6347D /* FBSDKShareConstants.h */, - 927F6C1866DF390B5946C4CBAFD617D5 /* FBSDKShareConstants.m */, - B5DF3E685EABDC9ECD8426EB76969ADA /* FBSDKShareDefines.h */, - F0BEBEBF4191F06AEE5219E2AC25055A /* FBSDKShareDialog.h */, - 802311C5E6123108467A5C84F2679AC0 /* FBSDKShareDialog.m */, - 69F61504322C791CBFABA0E03BB5BD64 /* FBSDKShareDialogMode.h */, - 39BAA9DC7FFBE4980F899E45EFD3623D /* FBSDKShareDialogMode.m */, - 3F53E2911ECBCF069A36DEE8EC5B6362 /* FBSDKShareError.h */, - BC324F8332AE9E945ABC1A685C3A16FD /* FBSDKShareError.m */, - 91891DBB68F6C550B5F91B632DB725ED /* FBSDKShareKit.h */, - 6672D287D1F7B8F270415F88AACE7F1E /* FBSDKShareKit+Internal.h */, - 3B8AB2A6B65B6BE832CB517551658CCF /* FBSDKShareLinkContent.h */, - C8DBA571A61A22A7774750CCA5474022 /* FBSDKShareLinkContent.m */, - 527791C0AC83FBA23B4AE92DF9D6BBF4 /* FBSDKShareLinkContent+Internal.h */, - E41B4DB2B3154C1F8370682035C9D46E /* FBSDKShareMediaContent.h */, - DB6735EEF981FABAE9241A830755595D /* FBSDKShareMediaContent.m */, - 415858E3B6F3A4426DCDDF2C9F3EE901 /* FBSDKShareOpenGraphAction.h */, - 22308DB2B6086E1E08045E2E9AC4F629 /* FBSDKShareOpenGraphAction.m */, - 73EAEB2ACC28947EFDE3D15CB3DD5E27 /* FBSDKShareOpenGraphContent.h */, - A5A4E7CC7152130111E88AA5403EEC75 /* FBSDKShareOpenGraphContent.m */, - 3C672335BCBA6BC43669D8B58C67BF95 /* FBSDKShareOpenGraphObject.h */, - 8085A91B1C2AFCC0DF8CAB9ED5264DA2 /* FBSDKShareOpenGraphObject.m */, - 81409E4091A8BB319B977C232DA64756 /* FBSDKShareOpenGraphValueContainer.h */, - FE35BEF9234DBF69605AFD5904F34B87 /* FBSDKShareOpenGraphValueContainer.m */, - F9EDDCAF4832D8956A91D1D4BE5F8C00 /* FBSDKShareOpenGraphValueContainer+Internal.h */, - 36DBFB5A274AC2D1D08CE955C70698AA /* FBSDKSharePhoto.h */, - 47E7659564E6E4F80E2981B232B6C273 /* FBSDKSharePhoto.m */, - E402391E5A2514D3D175F4BAB9F47263 /* FBSDKSharePhotoContent.h */, - 1A013F051D2FCF67AAFF27B134C958DC /* FBSDKSharePhotoContent.m */, - 1BBBA062C6A0303A4C94256A449341E1 /* FBSDKShareUtility.h */, - 9694FE07BB9391AF5CDC5CA32F3F63CC /* FBSDKShareUtility.m */, - B89D5852A636064D97080799DA54D2BD /* FBSDKShareVideo.h */, - 9A8C3DC923577CC64C5DEA21A8FC9132 /* FBSDKShareVideo.m */, - 9FC89226F1EACF8B7574B667AF7EE4FD /* FBSDKShareVideoContent.h */, - ADF0DEE2B77805B9861F3543BC0D221C /* FBSDKShareVideoContent.m */, - FC54010CF6299B4A635C7F3EE6CE08F1 /* FBSDKSharing.h */, - 5C5251D4E2944A644061FF4656C1DE07 /* FBSDKSharingButton.h */, - 812BFE0DB743F3ADDC7627B46A0CDAC6 /* FBSDKSharingContent.h */, - 3B81B6F6D3AB3015A86086577491C7DD /* FBSDKVideoUploader.h */, - BC67AAF4C7AC01B70745C10C2021B27E /* FBSDKVideoUploader.m */, - EF3FF2225C92187BB1FD177AB097400C /* Support Files */, + D423E5FDC99AF9CEC6661C5281C8863E /* NAAEAD.h */, + E6A0859B3D0028CC45CD1FBC732C4BDC /* NAAEAD.m */, + F3AC63FD2F96FDBC633CACFB69EBAA6F /* NAAuth.h */, + CE2953ABF1275ED9C01D4667290FA19C /* NAAuth.m */, + 8F44875167BD5D9C535B8363C3526C69 /* NABox.h */, + 966EDA7A7132FFBFEA09C7B9137C953C /* NABox.m */, + 0976134FF7D4EC74D3348C57A4AEB623 /* NABoxKeypair.h */, + 448F29344CA8014335723031F87D27D2 /* NABoxKeypair.m */, + 28BEEE9095A35619F4C50695926D947A /* NAChloride.h */, + 6564C9AC99EA9682F89286F94CA0061C /* NAInterface.h */, + 620F92555BEFA121DFCEF4F87F918CAB /* NAInterface.m */, + 0168059C2E70ABB3157CD5BA485D79D5 /* NAOneTimeAuth.h */, + 2732CBCA195BA4EDAC9ECB49EFD76009 /* NAOneTimeAuth.m */, + 4890D40E53B5BD047D91E9BBC3F99DE4 /* NARandom.h */, + 322E3C08D1ED51FFFADA391F1169C519 /* NARandom.m */, + C32B779663734F03432FCBF7052F4FFA /* NAScrypt.h */, + E1F091FFA116412CDC8EDF3E546A8D11 /* NAScrypt.m */, + 8C7F3FF504FBB117DA99505A5139E169 /* NASecretBox.h */, + 99FF86924CF6A745BA2665FB22EA5983 /* NASecretBox.m */, + 74EDC2C54B0AB83D05F601BEF00FFDCC /* NASecureData.h */, + 53EF7FCCCB4826E256F4AB3BA520787F /* NASecureData.m */, + B674627806B34691DE49FA8285597F50 /* NAStream.h */, + 86350ACB81DF788369780EEDB87FF820 /* NAStream.m */, + 727CA703645BF86276746F9DC3F4394D /* Support Files */, ); - name = FBSDKShareKit; - path = FBSDKShareKit; + name = NAChloride; + path = NAChloride; sourceTree = ""; }; - 1D779F4C4F14873352019DC02FBDF8A6 /* UIKit */ = { + 1AC492ACBBC73547D108EF31A3333B47 /* Support Files */ = { isa = PBXGroup; children = ( - 7D4FB895A7A43B33DD0ACD2AC3EECF3D /* AFAutoPurgingImageCache.h */, - 01DBBB8F3DFF89730ACC9DB20206D678 /* AFAutoPurgingImageCache.m */, - AC245A7654AEE19119535DD40643EFBA /* AFImageDownloader.h */, - AB7407F595EBA89BD793F7997B082CD8 /* AFImageDownloader.m */, - A8048FE35CB996870EAFE39A50B713BF /* AFNetworkActivityIndicatorManager.h */, - 6840D39EED7F0BE02879A035AE1A6910 /* AFNetworkActivityIndicatorManager.m */, - 944260FE741F60E05060465C480AAA99 /* UIActivityIndicatorView+AFNetworking.h */, - 097DCF1D20A2C03740EFD119040E1095 /* UIActivityIndicatorView+AFNetworking.m */, - 775FE42F0634B360F63A9D012E7EFE1C /* UIButton+AFNetworking.h */, - 981B36CBA14D504B164C940222677DC7 /* UIButton+AFNetworking.m */, - 4347FEB7DF63BB3CABEB1E68E19C392D /* UIImage+AFNetworking.h */, - C0873AD84D8669AFD01255C198A2EDAC /* UIImageView+AFNetworking.h */, - D9849C0756C63FEB0D7F3F9ED0D08AF6 /* UIImageView+AFNetworking.m */, - D92D59022480B09D139F149CA9B0B5D8 /* UIKit+AFNetworking.h */, - 7F0542301A6557EB6F84047650498D38 /* UIProgressView+AFNetworking.h */, - B9070BC8E31EBF0EDA1121AD77C6297F /* UIProgressView+AFNetworking.m */, - C0F0C246A358693DDC306F1B90514EC8 /* UIRefreshControl+AFNetworking.h */, - E62BBBC79022B09D0A1DF6E9480AFD0F /* UIRefreshControl+AFNetworking.m */, - 128B5C528BF447C9EA0F4B5F2A47121F /* UIWebView+AFNetworking.h */, - EA34CF7175FA8299F799F279BD373B92 /* UIWebView+AFNetworking.m */, + 26F2BA4B0869E6A31997B2AECD8837EE /* Info.plist */, + 10AD3878230C74997527DBCA6BDF83A1 /* PEAR-FileManager-iOS.modulemap */, + EB09C04D89AF841729600B23D620620C /* PEAR-FileManager-iOS.xcconfig */, + 26741157FED22D78E9A43EC6CF51DE74 /* PEAR-FileManager-iOS-dummy.m */, + BA689C178FD310B7120E649A524E3592 /* PEAR-FileManager-iOS-prefix.pch */, + 50FEEC598B728E92965D17F238B3D2CB /* PEAR-FileManager-iOS-umbrella.h */, ); - name = UIKit; + name = "Support Files"; + path = "../Target Support Files/PEAR-FileManager-iOS"; sourceTree = ""; }; - 210E17050AFC1657514DF79542915481 /* FBSnapshotTestCase */ = { + 1F9823E52F3EC8809C52DE543C8F5282 /* AFJSONResponseSerializerWithData */ = { isa = PBXGroup; children = ( - E182179A0D4C411202D54AE68ED3A587 /* Core */, - 5906CBD93E6C07A971075D5154B60D0C /* Support Files */, - 70B79F4D234EB342928CA1F527B3EF0B /* SwiftSupport */, + 92797950E9688E3C05EDFD8E5908819B /* AFJSONResponseSerializerWithData.h */, + A3BEFDF6D6A4AF274BE2EE0E461203E7 /* AFJSONResponseSerializerWithData.m */, ); - name = FBSnapshotTestCase; - path = FBSnapshotTestCase; + name = AFJSONResponseSerializerWithData; + path = AFJSONResponseSerializerWithData; sourceTree = ""; }; - 21A08E079840181F817984994DC01E9B /* Classes */ = { + 1FE1C971B623ABBC47502D2EDFACA4B5 /* Products */ = { isa = PBXGroup; children = ( - 62B787FDFE46F8CBF92C1BFAF264100A /* PNObject.h */, - 4FF20F427822ADBE16D38081703B59C1 /* PNObject.m */, - E95C694DEDD7BC969FBDF044A915974B /* PNObject+PNObjectConnection.h */, - 1E0DE27DC31F1AF7C4F57FF9D9242730 /* PNObject+PNObjectConnection.m */, - 0F0944DC787429D7EFD09B2D4302D325 /* PNObject+Protected.h */, - ADEE7E13CC7E07607B280EFDD530AEFA /* PNObject+Protected.m */, - 104A43325797FEF812D598DB98EE2146 /* PNObjectConfig.h */, - 181AAC79AE329BF8A37DC3464EB116A4 /* PNObjectConfig.m */, - 77D4F41BA622C03540C90387B263EC49 /* PNObjectConstants.h */, - 362F96FA0485DE23220220D1792F4980 /* PNObjectFormData.h */, - A4E2A78BC79D2D952EA296F970905DFB /* PNObjectFormData.m */, - 922CA8B26AE78116304F7E08030B0C5D /* PNObjectModel.h */, - 5A2F057BCFFB56AB1A75E59F06F1C00E /* PNObjectModel.m */, - F9CDED6A75D1C0BD1CDAA8DD1683FC6E /* PNObjectUtilities.h */, - 83848160E1BBFE8DC9C5A5DC98137AA3 /* PNObjectUtilities.m */, - 42AA5F06F3B52DD37B5533D10B372831 /* PNClasses */, - 2C8A1ED62AC45A79718C2A24CDA713B8 /* Vendors */, + D3944B59DFF6B8068D9A8AED5F0A48BA /* AFNetworking.framework */, + B665577F72504FDFE53A0063ACC03660 /* Bolts.framework */, + CED9173C4F1792DE5DEC00189A6D253A /* CocoaSecurity.framework */, + 573782436DAD7DB436E7070E94D0C79A /* CodFis_Helper.framework */, + 939DA93760C976BA9619304DE31FC1F5 /* DDDKeychainWrapper.framework */, + 202419D9F9007A055ED4BAB5C869107D /* DJLocalization.framework */, + B7F597699D5D4F500FEE8C551EDD3EC3 /* Expecta.framework */, + 34E3727766BA4CB752B84495564C319D /* FBSDKCoreKit.framework */, + F1244EAE09D92D4EE9A54E2EE465C291 /* FBSDKLoginKit.framework */, + B65E53D5223314EB74989BE8E13BEA53 /* FBSDKShareKit.framework */, + 30F98C69E5EFFB6CA9BFD08B2C2CEFE4 /* libsodium.framework */, + 4B7A7D9F88C44A4C80AB79F137A5D533 /* NAChloride.framework */, + CF8B07A228A8A2D3E6BD80F48A51BD04 /* NSDate_Utils.framework */, + 80FA80CE8E4C4A774B387F58ED33FC5F /* NSString_Helper.framework */, + D547832A9870117BB4A4193A1FC32365 /* NSUserDefaults_AESEncryptor.framework */, + 8E57C25CF5CE443F1295ADD4BC091B22 /* nv_ios_http_status.framework */, + 302C7F8B1D9823AF2C4EE96924FCC61E /* PEAR_FileManager_iOS.framework */, + A73683986518393D96155AF12602348E /* PNObject.framework */, + 020977FBAF80C502FC21F9A4E451F80E /* Pods_PNObject_Example.framework */, + 1E0F4D981DD7358329A0E64C5B729369 /* Pods_PNObject_Tests.framework */, + 74700A970C9FC75D18D27A4F46958509 /* PureLayout.framework */, + D17047CF053906FC5A19A855E7C17753 /* RZDataBinding.framework */, + AF26ABF0354D711CB3728359DFD82ADD /* Specta.framework */, + B6B38852D48526E9C3CABB5612761E41 /* StrongestPasswordValidator.framework */, + 2E88585A06FE223B6A526015327303FB /* UIDevice_Utils.framework */, ); - name = Classes; - path = Classes; + name = Products; sourceTree = ""; }; - 281C79B30A14A464EBE9C3FC4E58A4C7 /* DJLocalization */ = { + 273CC9A4FEB3FA67E834F838A90693B9 /* DJLocalization */ = { isa = PBXGroup; children = ( - 2C70CF6F2A858B4959C992A2A59E3FEA /* Core */, - A2CE5C41228C2E034623208FCE37C7A0 /* Support Files */, + 9079E25AA0A6787344EE07A109DA0B7F /* Core */, + 59475B175190CAA1C0601942E51E219C /* Support Files */, ); name = DJLocalization; path = DJLocalization; sourceTree = ""; }; - 2ACEE0BE91AE00ABBDD591A284CCF639 /* CocoaSecurity */ = { + 290FE6F0B25E3A2BAAE7736C9C2CF694 /* FBSDKLoginKit */ = { isa = PBXGroup; children = ( - 945D81D88DDEDF07E296B9C59D534F9F /* Base64.h */, - 36A4BEDFDF420DDD1B237DC4895B48A8 /* Base64.m */, - 879F56CD26C124E39FBBB6BA88E861DC /* CocoaSecurity.h */, - 278FF38A4475A850D38535B74C801D43 /* CocoaSecurity.m */, - 49217717D44E67B777977825BA7B3A1A /* Support Files */, + 936649A2CF2D268DA1824BB355390627 /* _FBSDKLoginRecoveryAttempter.h */, + 94C27912D5396959C83DE85EB2A1EC41 /* _FBSDKLoginRecoveryAttempter.m */, + 0CDE350823A635A6C7448FF65E86F494 /* FBSDKLoginButton.h */, + DC15D7D2570F77C4D7DBBE860EA58932 /* FBSDKLoginButton.m */, + 3C4AA79EF438877E9393B31F74C008EF /* FBSDKLoginCompletion.h */, + 8252E429DA13E6981633AE2EA2D3229B /* FBSDKLoginCompletion.m */, + 640713517262FD28DA01C41B9B647DBE /* FBSDKLoginCompletion+Internal.h */, + BB8437B77E38DBAF1E258778EAB53260 /* FBSDKLoginConstants.h */, + F4B0930C8CF4D4F690777C077AB2FF86 /* FBSDKLoginConstants.m */, + B029183DC576E43682E1243527D44483 /* FBSDKLoginError.h */, + 13A3EBC1D179AEB87055057ED6C97F1B /* FBSDKLoginError.m */, + A52E6AFC4F640F41A9A4ECCB0954578C /* FBSDKLoginKit.h */, + D712E7A35F43F13206A163DEF34CD275 /* FBSDKLoginKit+Internal.h */, + EA09EFC44D48DB98477A3A65934BCB7D /* FBSDKLoginManager.h */, + 50DEBE524C73841D765F8F4E9E16F669 /* FBSDKLoginManager.m */, + AA2B2F56C1557B89E51AAB67C1627856 /* FBSDKLoginManager+Internal.h */, + 1B0204BF071B3C49E0C236B2583886D9 /* FBSDKLoginManagerLogger.h */, + 2A8322955259FD28FFBBA43FFC3A9C66 /* FBSDKLoginManagerLogger.m */, + 0926D9D5CE11A5DD20D250E57D248618 /* FBSDKLoginManagerLoginResult.h */, + 34F50E22DE9EBCCAA4E5718B3900E7FF /* FBSDKLoginManagerLoginResult.m */, + 63CD430CD93D81C75BCD5DC1CC99F13D /* FBSDKLoginManagerLoginResult+Internal.h */, + D02ECCEACBBA02EE3FD0601E0A1BE123 /* FBSDKLoginTooltipView.h */, + B425C32D8332F4ED7743B235428401E4 /* FBSDKLoginTooltipView.m */, + C9D05B8A1D0BC45ADCA5F2E0A7595D65 /* FBSDKLoginUtility.h */, + DEEF19824CE840F624BE0A1C9BCC272B /* FBSDKLoginUtility.m */, + B524C3DB6F2427BC418535EC09D402EE /* FBSDKTooltipView.h */, + 2EBE7B9C2FD4C227315A843BB56C47ED /* FBSDKTooltipView.m */, + 9BFB1BFEBE6F32C1A864E172D1131295 /* Support Files */, ); - name = CocoaSecurity; - path = CocoaSecurity; + name = FBSDKLoginKit; + path = FBSDKLoginKit; sourceTree = ""; }; - 2C70CF6F2A858B4959C992A2A59E3FEA /* Core */ = { + 293B938FD3727E064B6F0645FB42EEDA /* PEAR-FileManager-iOS */ = { isa = PBXGroup; children = ( - C8EC1F1C0A24BFC6EFC6D9FD9AA4580F /* DJLocalizableString.h */, - 97D6165FE9CF21FC9480D57AAFD9E908 /* DJLocalizableString.m */, - D998D842B939D8480599184B6647E512 /* DJLocalization.h */, - C3FB663C9A2AB4829043EFF16AA8E2E6 /* DJLocalizationSystem.h */, - 270A6B567F2C8D415803E708D5BB6446 /* DJLocalizationSystem.m */, - 771F5DCF0269FECCECD6AF2EE65C1F0E /* DJLocalizationSystem+Private.h */, - C1B987DCEA2015FE245E18897637FAC2 /* UIStoryboard+DJLocalization.h */, - 3369291A7DBB6C0FFEFD5BFAE95CD0A5 /* UIStoryboard+DJLocalization.m */, + D250A1D4365D29A396763858FEE7067E /* PEARFileManager.h */, + 4D15E0F86C11063FA7A39BC2F95D73F4 /* PEARFileManager.m */, + 1AC492ACBBC73547D108EF31A3333B47 /* Support Files */, ); - name = Core; + name = "PEAR-FileManager-iOS"; + path = "PEAR-FileManager-iOS"; sourceTree = ""; }; - 2C8A1ED62AC45A79718C2A24CDA713B8 /* Vendors */ = { + 343B1292703A3D954B2A6213D5E0F1E5 /* AppLinks */ = { isa = PBXGroup; children = ( - BD8AB5DD8D475C491684DC2663D2BAC5 /* AFJSONResponseSerializerWithData */, - 9A22F8CF5DC6D3D97853D43823D8430E /* AFOAuth2Manager */, - ); - name = Vendors; - path = Vendors; - sourceTree = ""; - }; - 313DD122E78067035D9FB9C72E65682E /* Support Files */ = { - isa = PBXGroup; - children = ( - C0EC5BCCD69B9AC0DB656AD3E0ED09E9 /* Expecta+Snapshots.modulemap */, - A372D5DC5C403E1FC1F5D8364A67400B /* Expecta+Snapshots.xcconfig */, - 51C7F2450604283410B7B4253D935DD8 /* Expecta+Snapshots-dummy.m */, - 38A4F5A03D5976C1DBB3F87F56646AAE /* Expecta+Snapshots-prefix.pch */, - DE8F3A888CB4EC705336BA0FCDB5229D /* Expecta+Snapshots-umbrella.h */, - 541AA24AAB5A60B6A523BD8A58C8E53D /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/Expecta+Snapshots"; - sourceTree = ""; - }; - 3157DFA3FAB92B7190F165F60FFCDC45 /* Support Files */ = { - isa = PBXGroup; - children = ( - D431727C463B929D9BB241252552A6D3 /* Info.plist */, - B7057520591F0ACC2BE5226ADFF4CD33 /* StrongestPasswordValidator.modulemap */, - C23F1F96D04F6E8E84A87A6CA3D92FBD /* StrongestPasswordValidator.xcconfig */, - 03D4EC769DC11500D3A95F2646CC4421 /* StrongestPasswordValidator-dummy.m */, - 7A152276A978CA969988ECB14241F7F8 /* StrongestPasswordValidator-prefix.pch */, - 8AF616BC64AEF26F093DBCB286FC6C42 /* StrongestPasswordValidator-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/StrongestPasswordValidator"; - sourceTree = ""; - }; - 34984184FBD8176E64AC42C602851637 /* Products */ = { - isa = PBXGroup; - children = ( - D8113DC9EAC2B89E93E63A27A3DC3124 /* AFNetworking.framework */, - 8EA955A3E5C9EB4AE8AFB1B85579AB8B /* Bolts.framework */, - 6000156BBC8ED8E6CF3508A762B71750 /* CocoaSecurity.framework */, - D9E43B24730459546569B6505ABD314C /* CodFis_Helper.framework */, - 78843FEA5980B4D12ACFC8B8A3EEF74D /* DJLocalization.framework */, - 288333A1A32F0B6A4B0A5E8AA9DC1012 /* Expecta.framework */, - 758B45423011FC5DC1ECFB012F211FA6 /* Expecta_Snapshots.framework */, - BA6BA3D44B988A0B1260AD9AD35E6433 /* FBSDKCoreKit.framework */, - 7569791A6348BC689D4E469B75812D5D /* FBSDKLoginKit.framework */, - E013E09DD01AAE40BDAA3F0BBD6C9A46 /* FBSDKShareKit.framework */, - 7E8F81F87A7525AACDE8A9C669B9B477 /* FBSnapshotTestCase.framework */, - EC93E1D6BE0B85FDCAA8DAA266F03543 /* NACrypto.framework */, - 0AE1F07FC4D81F50F7CAE26E7CC395E1 /* NSDate_Utils.framework */, - 3FCA01355D4AFDEF435F982210BC27E7 /* NSString_Helper.framework */, - CAF918641A37914DAA46F52FF3A55CDD /* NSUserDefaults_AESEncryptor.framework */, - 1ADBD6FA61239D16800C6797C7F6AFB8 /* nv_ios_http_status.framework */, - 3EC0171C0ECBD86001C43CE86413DBFD /* PEAR_FileManager_iOS.framework */, - 54FEF1C88AC14BE6ABC0C4EA760C0534 /* PNObject.framework */, - DCFF92FD958FE84E689F2C56E67A5E99 /* Pods_PNObject_Example.framework */, - 901599C4789F0E6D8E493650B6B5EAFC /* Pods_PNObject_Tests.framework */, - 4F47309E9EEF9C78B5D444F294EBE640 /* PureLayout.framework */, - 976445002047578D8EA72D058B6354F2 /* RZDataBinding.framework */, - 697684E440C5DD4889849A82003BCF8E /* Specta.framework */, - CD7387F2620E99BB63242B2C8C13C51E /* StrongestPasswordValidator.framework */, - 18DC99D6D4F2A0A85149B43763A38701 /* UIDevice_Utils.framework */, - ); - name = Products; - sourceTree = ""; - }; - 3584F3AC17CA7EE33DC993D4E40CE095 /* Pods */ = { - isa = PBXGroup; - children = ( - C80F31A6118DDA2AC6F9A5EEF01FF822 /* AFNetworking */, - 03D39DF1D6C50A1D76AB5D3FA111C29B /* Bolts */, - 2ACEE0BE91AE00ABBDD591A284CCF639 /* CocoaSecurity */, - EDE012E75AEC3F516C398772E3BC8D82 /* CodFis-Helper */, - 281C79B30A14A464EBE9C3FC4E58A4C7 /* DJLocalization */, - 5D84AC088B3A3F98C264DC2770EEC342 /* Expecta */, - C9E834FCDE3FC6C4A024ED8E4FB23501 /* Expecta+Snapshots */, - 75958F0816D31B7EF64F71AB16F57761 /* FBSDKCoreKit */, - 141D3F5873072E21E9572E240A089CE6 /* FBSDKLoginKit */, - 1D6C2586C3CDBD7231433BA7DE7CA5C7 /* FBSDKShareKit */, - 210E17050AFC1657514DF79542915481 /* FBSnapshotTestCase */, - 040BECB388FC0810D2BD1E1CD587F894 /* NACrypto */, - DE2AB3C9AA918012D0B8465FA993F2C2 /* NSDate_Utils */, - 403D64AEDF65FE0CF76D1AB08510DA93 /* NSString-Helper */, - 0F8536E7A531088D03BCC6553E50DC13 /* NSUserDefaults-AESEncryptor */, - B4651ED87E95272E96862474E4EF54EF /* nv-ios-http-status */, - 96C661CC4E60891C05CD91D1702A0EEA /* PEAR-FileManager-iOS */, - A4804DFF5E7B684E7D0E9DF2157A1805 /* PureLayout */, - 99B1149AFF6CDC4849C95F2898CDC24F /* RZDataBinding */, - 59AF878B805B3D7A91031D9BA7146672 /* Specta */, - 6D6712E25AF9A35CEABE60E619207AA6 /* StrongestPasswordValidator */, - FED11A697BDD59D2033AB41FC3F385B7 /* UIDevice-Utils */, - ); - name = Pods; - sourceTree = ""; - }; - 3A1FE4784287D5CC61B2B15CE5D20AD4 /* Support Files */ = { - isa = PBXGroup; - children = ( - A6470565DD0CEB5C7FE7B84237196DB8 /* FBSDKLoginKit.modulemap */, - 9451C69F151E68CAB8179FE70EA21605 /* FBSDKLoginKit.xcconfig */, - 6EF1222282167A053457802ABF4F9C67 /* FBSDKLoginKit-dummy.m */, - 5A6BA2E2C6684138F55A37C03F478DD6 /* FBSDKLoginKit-prefix.pch */, - 801F333E9B7F58F909FD9A1E9CA771B8 /* FBSDKLoginKit-umbrella.h */, - 2873A6B1C1550496756DBEDB264DD6FF /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/FBSDKLoginKit"; - sourceTree = ""; - }; - 3A69339E5BA01332D4E90ABC740C6C43 /* Support Files */ = { - isa = PBXGroup; - children = ( - D980428C7C73159F3AC124E7470D2EBE /* CodFis-Helper.modulemap */, - ADD8B6E65E8897BE7EE950418226325C /* CodFis-Helper.xcconfig */, - 801F8D7201B1A789D6F6AF3FF3D5E637 /* CodFis-Helper-dummy.m */, - C9514264351D3948749D1EE2573621E8 /* CodFis-Helper-prefix.pch */, - 1244BB0E7E2F0649AAEE6EFB44065C91 /* CodFis-Helper-umbrella.h */, - 305A1EFFBF67EF774F43DDC908F191C3 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/CodFis-Helper"; - sourceTree = ""; - }; - 403D64AEDF65FE0CF76D1AB08510DA93 /* NSString-Helper */ = { - isa = PBXGroup; - children = ( - A061A64AFE09C31424D0C2B989C7B995 /* NSString+Helper.h */, - B221FDA83880FE1D71BFB7C5F307B26E /* NSString+Helper.m */, - E3A0A674EA66B0EFC9C29A8B1428DF28 /* Support Files */, - ); - name = "NSString-Helper"; - path = "NSString-Helper"; - sourceTree = ""; - }; - 42AA5F06F3B52DD37B5533D10B372831 /* PNClasses */ = { - isa = PBXGroup; - children = ( - 121ACF19B67F21B93608B91D7F4ED255 /* PNAddress.h */, - 80AE03BA26324C8F1456156A7674C94C /* PNAddress.m */, - D92CB883B04257D215FC458F58810952 /* PNInstallation.h */, - 019FCAEDB4298587CE7DF987376060FB /* PNInstallation.m */, - ECBD47C2A5CAB0FC2435599C1844C402 /* PNLocation.h */, - 7C3FC33160159ED1C28434F1CF8BA03D /* PNLocation.m */, - 77DEA3968F74B6EB7EEB5EE36107C6D1 /* PNObjcPassword.h */, - 16E7E1A6F946A2D90B322BDEE0559DDD /* PNObjcPassword.m */, - 24DB960A119FF63D4696D63B3619C0E3 /* PNUser.h */, - 946B452218B157D0E2067CF5618843AB /* PNUser.m */, - ); - name = PNClasses; - path = PNClasses; - sourceTree = ""; - }; - 49217717D44E67B777977825BA7B3A1A /* Support Files */ = { - isa = PBXGroup; - children = ( - DE2556534C4D71C3848E4F153137A8DE /* CocoaSecurity.modulemap */, - 4ECC878388EF2166736E14B5F4A0C820 /* CocoaSecurity.xcconfig */, - C835A128F900B3BBDFD3141151564B10 /* CocoaSecurity-dummy.m */, - 76DBD23A9EAB4D01DE837008B2944E29 /* CocoaSecurity-prefix.pch */, - 10E8FC6CE4CF40378287BE9DFD02D1EF /* CocoaSecurity-umbrella.h */, - DC2BBB3D663A14526E479E36730243FD /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/CocoaSecurity"; - sourceTree = ""; - }; - 5906CBD93E6C07A971075D5154B60D0C /* Support Files */ = { - isa = PBXGroup; - children = ( - F7BFFCBA93010EDE4663EFBFE0B1C62A /* FBSnapshotTestCase.modulemap */, - 297910462FC13A9F86F44DDC54C72D23 /* FBSnapshotTestCase.xcconfig */, - FD53CCFCFF6B70FEC3AEBA0634EE5F55 /* FBSnapshotTestCase-dummy.m */, - 0F5EA38A857B03DB84D60B4BA44837C4 /* FBSnapshotTestCase-prefix.pch */, - 447ADF5E7CAC0ED31D301ED4C24ED97B /* FBSnapshotTestCase-umbrella.h */, - 63567449BD9137631A2221AE7BFA3913 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/FBSnapshotTestCase"; - sourceTree = ""; - }; - 59A0209752E95753A38DF1E9F2119A8A /* Support Files */ = { - isa = PBXGroup; - children = ( - CCC54232BAEC9B0999223A5B2CD90DA1 /* Info.plist */, - 699550909E4F2C0236230D4D0EC0A2E0 /* PNObject.modulemap */, - AD1557A0706C193DACDA20ABC84DA976 /* PNObject.xcconfig */, - ADB5A8D408033C40D9295B6983F2F7ED /* PNObject-dummy.m */, - D4F84A16DD3A90DDDED7470D01F8DF4D /* PNObject-prefix.pch */, - D8A2E50CBFDAE97EEEC7517124C1251D /* PNObject-umbrella.h */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/PNObject"; - sourceTree = ""; - }; - 59AF878B805B3D7A91031D9BA7146672 /* Specta */ = { - isa = PBXGroup; - children = ( - 4304D8D293EE6B1C29B284658A9DCF4D /* Specta.h */, - DB04E78E16500E4E2671352265887345 /* SpectaDSL.h */, - 829DAA5DEC03DCF4093AC592D1550EBB /* SpectaDSL.m */, - 2C589FA9F49C6F5F391E4F2E5DE3D695 /* SpectaTypes.h */, - E937E6C8FAB23254C82C75FCDE1ED8A1 /* SpectaUtility.h */, - 856EB645B167B456E38B6F4D45A02B5B /* SpectaUtility.m */, - EA48AC73F7E6AE941976055409F8EE02 /* SPTCallSite.h */, - 162716C38EF78513048FB9216F8B9DA9 /* SPTCallSite.m */, - 1ECD2A5B6C0CB704F507A381D4E3BA62 /* SPTCompiledExample.h */, - FC6560DB4549E256FE485D6C61773E4E /* SPTCompiledExample.m */, - 994622D30C0F4F0435DD448329A91A80 /* SPTExample.h */, - E6C7B1E996F870E53918D95077DC471F /* SPTExample.m */, - AD0A0EB0536968DDAD1A8C542A55C607 /* SPTExampleGroup.h */, - 5368029F8A6D242D4309CFEEB7624772 /* SPTExampleGroup.m */, - E63E6E692F9A570123AB25B842C8A31A /* SPTExcludeGlobalBeforeAfterEach.h */, - 910B3617B882F19271B2F976F7AB5B11 /* SPTGlobalBeforeAfterEach.h */, - FC03386EA79B96A8DFFF4083C969E695 /* SPTSharedExampleGroups.h */, - E87B6FFBB8085DFBAF320159D5F9E48F /* SPTSharedExampleGroups.m */, - FCC9170AA8E6F08A7A400C27E5CA2B88 /* SPTSpec.h */, - C51BF51057D8952C72DEE94D98351AE8 /* SPTSpec.m */, - 0D1F786C501CA316F8C971CAF37F4FC4 /* SPTTestSuite.h */, - B0DA4D12B8F9B9FA38E71505C31CE1F2 /* SPTTestSuite.m */, - 24C975F36CBBA0A2F98D7E1F70A9F082 /* XCTest+Private.h */, - 506805DEEDDE08004B6C60B624ADA2FE /* XCTestCase+Specta.h */, - F137F7CD074C7C02A4B2A8634B3715FE /* XCTestCase+Specta.m */, - 198DDE8E0E4B3A9DEDFD2C4FBD84F6FA /* Support Files */, - ); - name = Specta; - path = Specta; - sourceTree = ""; - }; - 5D84AC088B3A3F98C264DC2770EEC342 /* Expecta */ = { - isa = PBXGroup; - children = ( - 1891B64B1A2F1AD1FC351CF184B878B4 /* EXPBlockDefinedMatcher.h */, - 36E65C9D1002817D458F292F4A46C1F3 /* EXPBlockDefinedMatcher.m */, - 6D3085837EAC6A3F3B3F713E6A29127F /* EXPDefines.h */, - 3C39A15782878E81810B5BA366A09FF6 /* EXPDoubleTuple.h */, - C2392FC029A1A994002C8ADEF511B8F1 /* EXPDoubleTuple.m */, - 00FF172BE096A6BC5D54A181FE4B6C71 /* Expecta.h */, - DC966D63A1DB1F318942C34FC5C5F7D1 /* ExpectaObject.h */, - 7A6EBA2C61E2087ACD6D67D45CE3938D /* ExpectaObject.m */, - 6B4715469963951B3FCE250030A0F6A2 /* ExpectaSupport.h */, - 738F0DBBDBD7ABC4F48AC4FE5188421B /* ExpectaSupport.m */, - D97AAA09519DE2B1F4640491EB732DC6 /* EXPExpect.h */, - DDA78FA86CA495DB732A88EDEEA333CA /* EXPExpect.m */, - AB0DCBCC5AD549D2A9FCA2C88D647130 /* EXPFloatTuple.h */, - C1E5A0A864B7FD0594C30E36F8E301B2 /* EXPFloatTuple.m */, - 04DC4A94C4D3ADA1053F1BA8E23BEC63 /* EXPMatcher.h */, - 22E4AC8E876920C074195E1CD721D8AD /* EXPMatcherHelpers.h */, - 7E023AB2F3C3501F3A47E9E704CD0EB7 /* EXPMatcherHelpers.m */, - 5BCFD8FB72018441F27D846509EC0678 /* EXPMatchers.h */, - 21A0C4187813370C7F56413234E536CA /* EXPMatchers+beCloseTo.h */, - 6B5D225DB40A9AD032D9C8147BD9C133 /* EXPMatchers+beCloseTo.m */, - 51E305BB7A4F4C097D78DAE6F4B0A3FD /* EXPMatchers+beFalsy.h */, - 37A2077FBA5B08032149AB4EF59FADB3 /* EXPMatchers+beFalsy.m */, - 6EB1160552267C19181DD6FD3FFDE3D5 /* EXPMatchers+beginWith.h */, - AB4B4921BF62C7F933F80118BFFE8071 /* EXPMatchers+beginWith.m */, - 5B1A0B544E28B59FBF97283679BCA0B2 /* EXPMatchers+beGreaterThan.h */, - 595A86264A6A665BF717BE5ADE515F51 /* EXPMatchers+beGreaterThan.m */, - 072E85085499A44D55B4253829F7140F /* EXPMatchers+beGreaterThanOrEqualTo.h */, - 5177854A5C1459E073476F2610497897 /* EXPMatchers+beGreaterThanOrEqualTo.m */, - 4699E8089BA107F636C4AC11232E99EA /* EXPMatchers+beIdenticalTo.h */, - BC7F6010D92DEF7CCF4527D38FCC69B4 /* EXPMatchers+beIdenticalTo.m */, - 7A3C62ADDA16E2D20811991CD15EC360 /* EXPMatchers+beInstanceOf.h */, - CAD20ACDB2A48E24461F89676394099D /* EXPMatchers+beInstanceOf.m */, - 959DD0E72C23B7B4B9875E54B5841EDC /* EXPMatchers+beInTheRangeOf.h */, - 9DAF821757C7F4FDD89B8B7E2BE81AEE /* EXPMatchers+beInTheRangeOf.m */, - 4FA761348BB94295BB18E8CB7DC857C2 /* EXPMatchers+beKindOf.h */, - 5E24E9800D562CA08C615F0C9AEDD892 /* EXPMatchers+beKindOf.m */, - 1131F3EDE53DDAF7AA9C85C166CA9933 /* EXPMatchers+beLessThan.h */, - 7D71071E2FBFF9DBF0DEBAE640F805F3 /* EXPMatchers+beLessThan.m */, - 56FEFB1C9EE71FF0FDB37F5C27961D66 /* EXPMatchers+beLessThanOrEqualTo.h */, - A34C570C556CECB69A5AA05A5E06E41F /* EXPMatchers+beLessThanOrEqualTo.m */, - 0A1DDDAB862816B14DC5257DC8054E22 /* EXPMatchers+beNil.h */, - 676B4C88C734DD4F1508DE14CECD8182 /* EXPMatchers+beNil.m */, - 41621C3BBA0BC3ACD36EC707A19430F2 /* EXPMatchers+beSubclassOf.h */, - 8CE81DC45D36FB2F6378182866C9F1D2 /* EXPMatchers+beSubclassOf.m */, - 85A1EC824DD3CBFE789CBDE0F3D32AF3 /* EXPMatchers+beSupersetOf.h */, - 27D42BAABB01D0D2784F158FFDF5B79D /* EXPMatchers+beSupersetOf.m */, - 3F4AD13E172B2AC3095FFF847709143A /* EXPMatchers+beTruthy.h */, - 50A1B0AF487D3AA1EEE6FAF14D79420D /* EXPMatchers+beTruthy.m */, - 6124ABECEA4AAB91B87B8E26E51100E5 /* EXPMatchers+conformTo.h */, - 8F3B29C1E2F0F846F8947A26B1CC56A9 /* EXPMatchers+conformTo.m */, - 860B9C8679CB11994418AE18E87CCD7B /* EXPMatchers+contain.h */, - C27D1C48B6995DEC8774FCB21C2A73AB /* EXPMatchers+contain.m */, - BFC77BC718D7AF083B584BD80E8A0EF7 /* EXPMatchers+endWith.h */, - 4E639CE85C661D2400F470B1338A14B0 /* EXPMatchers+endWith.m */, - 7C34E25317C19EE743E9EBF82BFE32EF /* EXPMatchers+equal.h */, - E865C7E015BD25633AB6F4A38F7D70D6 /* EXPMatchers+equal.m */, - DF4A09AF19061401C4BCADEACE57B4A9 /* EXPMatchers+haveCountOf.h */, - 5AADC5F17369A380BDB4D76D93CC71CD /* EXPMatchers+haveCountOf.m */, - D9BF93A09BF1C89C01AAD4E21607CACA /* EXPMatchers+match.h */, - 873200BCA826EE8CEC931F5D380A50ED /* EXPMatchers+match.m */, - BFDA2D5E158848E323798569C7A5B6E6 /* EXPMatchers+postNotification.h */, - 00B1A180C9686C71A9A7022879F64EBA /* EXPMatchers+postNotification.m */, - AC89DA4A92615B2550A089D82C0C4D60 /* EXPMatchers+raise.h */, - 8031AFFDBD019C44A3B6CBA906CFF43E /* EXPMatchers+raise.m */, - E576A0244F9F3D0C9C066FD17648E1B4 /* EXPMatchers+raiseWithReason.h */, - AC2834EB5A8A7B8EDF87F6B5592FDD45 /* EXPMatchers+raiseWithReason.m */, - 86831BC7382D6363AB0CF1719C149ACF /* EXPMatchers+respondTo.h */, - CD3DE79E1604D4B336DC3F4490A56659 /* EXPMatchers+respondTo.m */, - 04F7C62815EB907B90A2276235C99F65 /* EXPUnsupportedObject.h */, - 00730E0614414B541C5C462C05237ABF /* EXPUnsupportedObject.m */, - F9F4CA01E5A2D46A31DF5DB924A7057B /* NSObject+Expecta.h */, - 465A6F2EE0C464C01B77ADA202CB6E70 /* NSValue+Expecta.h */, - CDD5FDB9292F631F1D1BE91251D43CFE /* NSValue+Expecta.m */, - EAD7F0EFEAA447E20C1A1BFFD40683E6 /* Support Files */, - ); - name = Expecta; - path = Expecta; - sourceTree = ""; - }; - 6A1CC3AC4B11B671130DE737B61E6EB3 /* AppLinks */ = { - isa = PBXGroup; - children = ( - FC4400CAA1906C8AC802221C3B73F548 /* BFAppLink.h */, - A8A76AFFE31CCA1152439BD7D7EFB72E /* BFAppLink.m */, - 43EEB5B512F0019685A2FAF5EF453CE3 /* BFAppLink_Internal.h */, - 3D0A2092BBB442DC627AA43A934437F0 /* BFAppLinkNavigation.h */, - 1179C0CB305C314C26A1C6CF609F482A /* BFAppLinkNavigation.m */, - BA92F0D268EE029C6608E79B56F49C48 /* BFAppLinkResolving.h */, - F219B33590245FD6B174A35DA305F9F6 /* BFAppLinkReturnToRefererController.h */, - 64146C7F3745CDB1C7EE61EEBDB1A0C7 /* BFAppLinkReturnToRefererController.m */, - D2824474322C3812E6445D06993C4217 /* BFAppLinkReturnToRefererView.h */, - 4A7BB9A736BF390C36A28FA07BE5AB40 /* BFAppLinkReturnToRefererView.m */, - FAD76347F245B54693BB52DDFEE489A8 /* BFAppLinkReturnToRefererView_Internal.h */, - 945353F195A02CE031D020E67CD84E4B /* BFAppLinkTarget.h */, - C2E7CE04867D093945660E9CB348043D /* BFAppLinkTarget.m */, - 0AE467AD264B56667AAFD7F0B8B1977F /* BFMeasurementEvent.h */, - 724D066E2AF02260F43D82C7E343961E /* BFMeasurementEvent.m */, - D43E49F254C607D0517B97940EB91EA6 /* BFMeasurementEvent_Internal.h */, - 12E3BB0E92B051BAECFE53336063F53E /* BFURL.h */, - 093866219AEB5A9CDE0A7A405AF3EEE3 /* BFURL.m */, - 8749BF6B0F4E06472F67FEC9B256FB60 /* BFURL_Internal.h */, - CCB7C5152C0F6E0434BCC8356E17D908 /* BFWebViewAppLinkResolver.h */, - 150CF00FE6A11516E3A0B96B2A78B54D /* BFWebViewAppLinkResolver.m */, + ABBCCA040755639A59FF284C851A90DD /* BFAppLink.h */, + 08353F091306F0B89FFCF6698DF16350 /* BFAppLink.m */, + 85803A6D0373D42EFE8AD34075DFCCF0 /* BFAppLink_Internal.h */, + 8A61B0C85FD6D3BE3781D948DB759AE4 /* BFAppLinkNavigation.h */, + 2A4DE543FE524CDF635DC2C7AB234CCB /* BFAppLinkNavigation.m */, + B4AFBF0A1E4C54FD7C53251B22AC2008 /* BFAppLinkResolving.h */, + EEE7AB36FDA58D26A6BF8BE42982DE6B /* BFAppLinkReturnToRefererController.h */, + 34952B767AECD9AB6CA9BFC233D02164 /* BFAppLinkReturnToRefererController.m */, + ABD8D96E4F004588AA24A0CE2DA10111 /* BFAppLinkReturnToRefererView.h */, + 59F50AE399A8D6957F9F128C990B8801 /* BFAppLinkReturnToRefererView.m */, + 2C93F55A825F7A4577852957372E04F3 /* BFAppLinkReturnToRefererView_Internal.h */, + 37374CF0B2B7D65C1E5DE50067ADC278 /* BFAppLinkTarget.h */, + 530A75C9CCCB1A8DC2D52BA689806A6E /* BFAppLinkTarget.m */, + 598AC13B3A4AE39E13484D337C71A232 /* BFMeasurementEvent.h */, + 80DFF4B97667CC44E1B4A0737B3DAC32 /* BFMeasurementEvent.m */, + 32DB6B66A7EAF834F56439019295E63B /* BFMeasurementEvent_Internal.h */, + DE79F82403F009B5D3A31BEB6368F7B3 /* BFURL.h */, + 3DAD3029A0FD42251CB37AC25A55D548 /* BFURL.m */, + D11C5BD426E41A54B8D4CAAB5ACE078B /* BFURL_Internal.h */, + 60D406D32EC6C330A7304059BF4C7DF8 /* BFWebViewAppLinkResolver.h */, + 71322ED299C79A318C08A7CFEEECB31D /* BFWebViewAppLinkResolver.m */, ); name = AppLinks; sourceTree = ""; }; - 6B1B02B8EE6CC0A6547547EBB09CEFA7 /* Support Files */ = { + 3FC452191885AFBB5C0CE3D2154D72A8 /* FBSDKCoreKit */ = { isa = PBXGroup; children = ( - 58725A1EBBD5FE567830D8C6114DD6F5 /* Info.plist */, - ABE5332F1BA9386C4A6D0C8FDE87829B /* PureLayout.modulemap */, - D4A66E287528F834A9C37F5966EAEFF8 /* PureLayout.xcconfig */, - 0CBAD91529DD8E751CED444A8305B77A /* PureLayout-dummy.m */, - B880FF526A19C1F401F5B11DD2682065 /* PureLayout-prefix.pch */, - 58FF555496033DE0A4E381933C7BB476 /* PureLayout-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/PureLayout"; - sourceTree = ""; - }; - 6D6712E25AF9A35CEABE60E619207AA6 /* StrongestPasswordValidator */ = { - isa = PBXGroup; - children = ( - 37B7CEE22E13E090816802B7B620D2E0 /* StrongestPasswordValidator.h */, - 8AAB909C23BE727D7234D629EFF1D3A3 /* StrongestPasswordValidator.m */, - 3157DFA3FAB92B7190F165F60FFCDC45 /* Support Files */, - ); - name = StrongestPasswordValidator; - path = StrongestPasswordValidator; - sourceTree = ""; - }; - 70B79F4D234EB342928CA1F527B3EF0B /* SwiftSupport */ = { - isa = PBXGroup; - children = ( - 0911D320B4C730EB3905996AAC8313FC /* SwiftSupport.swift */, - ); - name = SwiftSupport; - sourceTree = ""; - }; - 75958F0816D31B7EF64F71AB16F57761 /* FBSDKCoreKit */ = { - isa = PBXGroup; - children = ( - 75DCA554F2929AB42D97D73EA91690BD /* _FBSDKTemporaryErrorRecoveryAttempter.h */, - 1554BD691B777E09A134FA09A645E944 /* _FBSDKTemporaryErrorRecoveryAttempter.m */, - CF2491406261008FC218FC09FC1A42D3 /* FBSDKAccessToken.h */, - 165185018E842802B16172CAB91D6DB9 /* FBSDKAccessToken.m */, - B42983F65301E6FC33FB5E0B8D7D7075 /* FBSDKAccessTokenCache.h */, - 8F5ACA80F1F3E869D5F14B38E2FDADB6 /* FBSDKAccessTokenCache.m */, - 341E15F2F303A83A09A6DFBB17A50E47 /* FBSDKAccessTokenCacheV3.h */, - 3C3E4EB97135367CE1E5E5DEB5789D40 /* FBSDKAccessTokenCacheV3.m */, - 32E50A05585BC2F565D8CD1877EADB09 /* FBSDKAccessTokenCacheV3_17.h */, - F4930717279413DD1C795946CFD22A9E /* FBSDKAccessTokenCacheV3_17.m */, - BB74C2E006965DAA53EDFA689D6320DE /* FBSDKAccessTokenCacheV3_21.h */, - 4206F36137803A80E0484EF7F632C376 /* FBSDKAccessTokenCacheV3_21.m */, - AA6287A2BFFD391C0E946DD927FD9972 /* FBSDKAccessTokenCacheV4.h */, - 21C0C4552AB762275CC7E62C01631E0A /* FBSDKAccessTokenCacheV4.m */, - 42AA1AFF246A7217D4E96626E31F0992 /* FBSDKAccessTokenCaching.h */, - 4FC0A1D433AC4ADEF49F70DBB499475E /* FBSDKAppEvents.h */, - 346B162C3AFB290C218F88EE772AD768 /* FBSDKAppEvents.m */, - 55DE6C6BA3D7F88720B2E5B12940A5EC /* FBSDKAppEvents+Internal.h */, - B238FF9EA8201441992BA959402B8855 /* FBSDKAppEventsDeviceInfo.h */, - 5F88DF088FA82BF589AEAB9B984573D5 /* FBSDKAppEventsDeviceInfo.m */, - 7ADE08A08F02CDF7D749CF84474E66CD /* FBSDKAppEventsState.h */, - D5C27CC1EFBAA1FEB0C13C47FF3A8458 /* FBSDKAppEventsState.m */, - 4CA6A1B7E083846C92EA529F4F6C1663 /* FBSDKAppEventsStateManager.h */, - 786B2B9BF7A9888B67A35D12335025D7 /* FBSDKAppEventsStateManager.m */, - B44A781A102582BEC03C6D753F285E2A /* FBSDKAppEventsUtility.h */, - D4E123B46D0B10682745F630E8895069 /* FBSDKAppEventsUtility.m */, - 1C32A1C0DE34D73433B17932DB862D53 /* FBSDKApplicationDelegate.h */, - 4AE193317E92BF7209AEAB5D91AC56D8 /* FBSDKApplicationDelegate.m */, - 514DAD23FF33C1676055C6CA7CBA9534 /* FBSDKApplicationDelegate+Internal.h */, - 5209CD5C349A2E27BEA614B424AA9C4D /* FBSDKAppLinkResolver.h */, - 6D8C8EFC54433C1BBA35F88938E6AE47 /* FBSDKAppLinkResolver.m */, - FB7AE5C24D94B0FE56E8603086A672AF /* FBSDKAppLinkUtility.h */, - 6F24819F1A5448FF49CDE8ADBFFE7E0F /* FBSDKAppLinkUtility.m */, - 4260B08A53FC4D6D1A25C4379D696927 /* FBSDKAudioResourceLoader.h */, - 5D02942A80190ABCBB54B18FF63C4C2C /* FBSDKAudioResourceLoader.m */, - 474CD421250945A8F6E2893D592972A6 /* FBSDKBase64.h */, - 21C7032B6F00370608B1C7D1B1405F9F /* FBSDKBase64.m */, - 24900F22E83266C9099A4C4FC9CFAD97 /* FBSDKBoltsMeasurementEventListener.h */, - 7BDB4AA9B383E78A568F74E634C11C59 /* FBSDKBoltsMeasurementEventListener.m */, - 0215950BA21D88F4B62170F78697D0A3 /* FBSDKBridgeAPICrypto.h */, - 02A3D7C33C9E394B868FE582E28CD22D /* FBSDKBridgeAPICrypto.m */, - B615E5CCF71340779660E61D883C92C4 /* FBSDKBridgeAPIProtocol.h */, - 73C91B73698DFA8728F001C27023BC0C /* FBSDKBridgeAPIProtocolNativeV1.h */, - 9F5D272957C8E06087C1513E206FBB55 /* FBSDKBridgeAPIProtocolNativeV1.m */, - C18DE21763A46FE06148CD4E475FDCED /* FBSDKBridgeAPIProtocolType.h */, - 6AE649B21312398B2D6279704A2AEEA0 /* FBSDKBridgeAPIProtocolWebV1.h */, - 1F5A08ECCF3E8236CD79DE43F4FDD49E /* FBSDKBridgeAPIProtocolWebV1.m */, - 29C3B62491E17F65D81ED3CACABDE1AB /* FBSDKBridgeAPIProtocolWebV2.h */, - 61880534ED324A24E6D3B163618EA157 /* FBSDKBridgeAPIProtocolWebV2.m */, - 7D6B86ED4A2678DF4F47C97953452426 /* FBSDKBridgeAPIRequest.h */, - 0B77AFD5048E8186CAE849D65A9E8CE7 /* FBSDKBridgeAPIRequest.m */, - 194D54AE7517DD8883F200EC98B72DD8 /* FBSDKBridgeAPIRequest+Private.h */, - F35A9D890E922DFEDFE78AA8507B6E3F /* FBSDKBridgeAPIResponse.h */, - B322C23D6B9699614544F1CE743D1558 /* FBSDKBridgeAPIResponse.m */, - 458CD0674A705929FB323E0643A6AC6A /* FBSDKButton.h */, - C245D5CD072B47750DE4D08E8DDBD142 /* FBSDKButton.m */, - D45201CC85EC0906B87134A4C0AFF935 /* FBSDKButton+Subclass.h */, - F0E3AFDD9099FDF627432ACFABB3B660 /* FBSDKCloseIcon.h */, - ABC6E833C09273BA347F3A66D98FABDE /* FBSDKCloseIcon.m */, - F4EF1722FBFA1ECDE3A93F12AC92086F /* FBSDKColor.h */, - 51B411D0CD70D2B238514A0417E6A258 /* FBSDKColor.m */, - CA5462D9BF7BD17F9FD35872A8841727 /* FBSDKConstants.h */, - C8823A2D48F6DF6733B040E41B3E8B40 /* FBSDKConstants.m */, - 00D33B459FD63FE7CA7B68FE523F1C7F /* FBSDKContainerViewController.h */, - C6F0E180D0735A8BDD8140E3ED1ECE46 /* FBSDKContainerViewController.m */, - FC3E43D78F174A5EE2B892F1B0D3EB69 /* FBSDKCopying.h */, - BBA46B79297081DBFB0341C024FEF404 /* FBSDKCoreKit.h */, - DD2D8025BAB569BBFCDF3924F89CBEA4 /* FBSDKCoreKit+Internal.h */, - C9A54372288EB1A498A507A848165517 /* FBSDKCrypto.h */, - 9DDAF41BDDB709F79F3233235A2FE70D /* FBSDKCrypto.m */, - 5882C885BB1ED18A7E7318B55B477ADC /* FBSDKDeviceRequestsHelper.h */, - 7FB2B9DD4F09E4C6882DF5135FAE91A5 /* FBSDKDeviceRequestsHelper.m */, - 16751E46A70C97CD21B505BAF15B177E /* FBSDKDialogConfiguration.h */, - D8477035C18A6500D1A24DAAD12548AE /* FBSDKDialogConfiguration.m */, - A7E88BDA81FCFDB3E8B0352C23D46D07 /* FBSDKDynamicFrameworkLoader.h */, - F6813729A51BFBD7B2AA78344A099482 /* FBSDKDynamicFrameworkLoader.m */, - D05CBAE789EBAB568F05389DB2C540B6 /* FBSDKError.h */, - 7B3CD62A5C48A3A345FB5FC9CC1D38BD /* FBSDKError.m */, - 60A96753D8688251F745E74ACC0E7854 /* FBSDKErrorConfiguration.h */, - 7976C894230E0E9EBFADCB410B06B963 /* FBSDKErrorConfiguration.m */, - 080FD27F98D5EB328E5175D93460C808 /* FBSDKErrorRecoveryAttempter.h */, - 27DBA9BB9CA97C73B6B6DD451087CA14 /* FBSDKErrorRecoveryAttempter.m */, - 93A162C9FFAC6F668C340693AE9C8F6C /* FBSDKErrorRecoveryConfiguration.h */, - 9C970CDEEFB4AB18968DC8BC54189B8E /* FBSDKErrorRecoveryConfiguration.m */, - 8391BDB35842F2EC28816D9209BBBB65 /* FBSDKGraphErrorRecoveryProcessor.h */, - F027893C675C45491E04C9EAB1A68D72 /* FBSDKGraphErrorRecoveryProcessor.m */, - 097F6EB29A09CCC60F44A4D435BE5A39 /* FBSDKGraphRequest.h */, - 305F512FB14155115EB0E6A7D88A78F8 /* FBSDKGraphRequest.m */, - EBC3851758A666A152FC00F1104EA9FA /* FBSDKGraphRequest+Internal.h */, - DDBFB6A69F9DA0FCBB0A08A3CA6EC496 /* FBSDKGraphRequestBody.h */, - 10CA6144EFCC2D447EB645BD078E93FA /* FBSDKGraphRequestBody.m */, - 1AB6A7B0C0EE447E5C6AF15003946886 /* FBSDKGraphRequestConnection.h */, - 24AD868D6DB4B71CE04202CF15FA22A4 /* FBSDKGraphRequestConnection.m */, - E61048C7E6C5A56CD0B95D8CFB42FA8F /* FBSDKGraphRequestConnection+Internal.h */, - 3540CD01E6ACC57C53E613DB542A3954 /* FBSDKGraphRequestDataAttachment.h */, - 0A5855DA2A036FE0DA398D3DECE6B252 /* FBSDKGraphRequestDataAttachment.m */, - D9259F63CE606116679C3E5FCE8E86E1 /* FBSDKGraphRequestMetadata.h */, - 0918108917B0E16C13F44B9C42C02D07 /* FBSDKGraphRequestMetadata.m */, - 21B10138AACD9DB8F13C677A5DB0629D /* FBSDKGraphRequestPiggybackManager.h */, - 507D5F118E2F4914BCC8D5518D40E76F /* FBSDKGraphRequestPiggybackManager.m */, - 9CC1F22206C478E6AF5C96F84ADC72A3 /* FBSDKIcon.h */, - 104BF806705637F884759149971F7811 /* FBSDKIcon.m */, - BEC79A91516413A6CB552506C0F67F58 /* FBSDKImageDownloader.h */, - 9340FA12D95D01D87D483BC3D178915C /* FBSDKImageDownloader.m */, - 76507678F8A3FDBA670E58C243483C9E /* FBSDKInternalUtility.h */, - 7E2BFE4C9E2428C97C1D668CCCE2E49C /* FBSDKInternalUtility.m */, - 7615EEDBD9DDED351AFC82965F4A8A8A /* FBSDKKeychainStore.h */, - 3B56946EA105EBEB1A2A6F0A5AC84BAE /* FBSDKKeychainStore.m */, - C0E7F0E4D2BE13D786EBF1F6626F25C9 /* FBSDKKeychainStoreViaBundleID.h */, - E7E780F8055F36B2EB64F6F9F826A1CC /* FBSDKKeychainStoreViaBundleID.m */, - A7ACCFBE1137A0DF73114F0FAFA661EF /* FBSDKLogger.h */, - 6D2E77C069913412B05CD80E94443DF4 /* FBSDKLogger.m */, - 7AE1E090C7CAD8F180B2208A61B9153D /* FBSDKLogo.h */, - 9F5F32A6D215C6B3EE4E9CC81EE092FD /* FBSDKLogo.m */, - B252555CDA4C12995D564CC15F651C14 /* FBSDKMacros.h */, - 069FFEE85417877D9F5B43441BB91A70 /* FBSDKMaleSilhouetteIcon.h */, - 34740110B04A35092351B28FFE5F5870 /* FBSDKMaleSilhouetteIcon.m */, - 7B2EF43AAF0680C6E4AF0E70279A3429 /* FBSDKMath.h */, - 3DD923C02CB66F769B4B961BA9888988 /* FBSDKMath.m */, - 79388ECF91E4197310CE9CFBEB871455 /* FBSDKMonotonicTime.h */, - F1CC66B259007DA33984C839FF7EBFC1 /* FBSDKMonotonicTime.m */, - 57BEF7F8A63F66C2EEC1715792D47C77 /* FBSDKMutableCopying.h */, - A84F612C0B213CDE3CF3E84E7EAB1524 /* FBSDKPaymentObserver.h */, - C00C3DB69C342A27FEA5BFAC83FC2DA7 /* FBSDKPaymentObserver.m */, - FA53EA4FC5C730618B0D1F9FA3D8FFA0 /* FBSDKProfile.h */, - C9C08217EB96F8547B4264E5B2B68248 /* FBSDKProfile.m */, - BE88D3C6E20A2F8CA7B91A377A0C84ED /* FBSDKProfile+Internal.h */, - 622255FA7A15F311A1E96F47F740A15C /* FBSDKProfilePictureView.h */, - FAB15659B21DB1B9466ADCFE953E2FCC /* FBSDKProfilePictureView.m */, - F89B79FDA318044201231C2CACD641C0 /* FBSDKServerConfiguration.h */, - 34659F02D614870E5D89C82F31BB56D2 /* FBSDKServerConfiguration.m */, - 90A1434730D000C85D3A2265AFF568A1 /* FBSDKServerConfiguration+Internal.h */, - 106F276479A16008EB8924DCA1D97214 /* FBSDKServerConfigurationManager.h */, - C116C33CC92B0135B96F2986DEB0088C /* FBSDKServerConfigurationManager.m */, - 42002B3D4EA4C2A0A3488A023D109FBA /* FBSDKServerConfigurationManager+Internal.h */, - D3F49C6D867EA4408AF45B92215A0E5F /* FBSDKSettings.h */, - 80EFE4278F2342602F1EA7C9A04469CB /* FBSDKSettings.m */, - 1A30A88FB9D684CB0B3506513899C7E6 /* FBSDKSettings+Internal.h */, - BE6F3D176C5592D27B3B9012B256D37F /* FBSDKSystemAccountStoreAdapter.h */, - A24E6E21DE49BB3C017DF35F73317BD6 /* FBSDKSystemAccountStoreAdapter.m */, - 43FC1616813102032C42F5C6A3C602E0 /* FBSDKTestUsersManager.h */, - 7E7D33083B472435EC4A8FB478E0F956 /* FBSDKTestUsersManager.m */, - DD9E58EB793E10299A8526D5C8C7377C /* FBSDKTimeSpentData.h */, - 42AAAEB591D24578388DDAA152CF46AF /* FBSDKTimeSpentData.m */, - D540C557B5B74B5C11787B81E3FC144E /* FBSDKTriStateBOOL.h */, - BBE33F43406A82D6606B44E3C7711DFF /* FBSDKTriStateBOOL.m */, - 306B16E51E5C868B88861E0EFA71C0CD /* FBSDKTypeUtility.h */, - B7E3572207F064E3A811BA3090370116 /* FBSDKTypeUtility.m */, - A637A619C254664BAFA4BE0038EB4CF9 /* FBSDKUIUtility.h */, - C0D6AA38A3B6A004EDE3844830FA46AC /* FBSDKURLConnection.h */, - F4AAC0A1490CFFD33DEAA693698CF8D2 /* FBSDKURLConnection.m */, - 516FBF4A64B2838556625012D16474D4 /* FBSDKURLOpening.h */, - 4151A59A353EA4CFBC1A0EB436FECBB2 /* FBSDKURLSessionTask.h */, - 672F1E403935415898FBF93433CBD9BC /* FBSDKURLSessionTask.m */, - DC94B939977AFD1B6578D63D933E3E22 /* FBSDKUtility.h */, - 3E15425875B0FB2D123BA0E4804E648F /* FBSDKUtility.m */, - DA82E1E9468954A2A533C71F6002EB7C /* FBSDKViewImpressionTracker.h */, - DD05377164ED60445432EF6FD120C263 /* FBSDKViewImpressionTracker.m */, - 993770F71FC9E2E310C33E2A3419CE49 /* FBSDKWebDialog.h */, - C40125DE9C9327D703157ACD83124364 /* FBSDKWebDialog.m */, - B1147994BCE8F44DC977AFA3A2B72243 /* FBSDKWebDialogView.h */, - FA0AF7ACB30ADDB9FDC8E01D42B8D28B /* FBSDKWebDialogView.m */, - 9DB70720C025C739160B0840E686FA5C /* Resources */, - 76D3F925276C5049E2648DA62EEBB661 /* Support Files */, + B441C5D2BC7C920385A5F2D8E921E43E /* _FBSDKTemporaryErrorRecoveryAttempter.h */, + 79339DBB2505D42E17AE17D6B521630C /* _FBSDKTemporaryErrorRecoveryAttempter.m */, + 0574891ECF4192644D445E30923EF71F /* FBSDKAccessToken.h */, + 45FB5EA76EA3DD47B7A69162B47CFBE7 /* FBSDKAccessToken.m */, + F232C6D9C5F7DDE94B4923C0715FF0CC /* FBSDKAccessTokenCache.h */, + 0950481F201D8E52B74922E8EB620B32 /* FBSDKAccessTokenCache.m */, + C2D4A6BD121E25559675F0FC43315A63 /* FBSDKAccessTokenCacheV3.h */, + 2E90299D265808F8BDBED4305372DBC5 /* FBSDKAccessTokenCacheV3.m */, + E1CF3DF9CB977E42067DFC325D98A83A /* FBSDKAccessTokenCacheV3_17.h */, + 9D45529C2E6A80485A29A66DE5473F3C /* FBSDKAccessTokenCacheV3_17.m */, + 04612680A3F4F437CAD3F2AD9AA8EBF7 /* FBSDKAccessTokenCacheV3_21.h */, + C6B8074838CAE72BDC1D39854D15F494 /* FBSDKAccessTokenCacheV3_21.m */, + 342ACF52EA33E87F02845038E7051B4C /* FBSDKAccessTokenCacheV4.h */, + 3FEF639D510D91524F2E1EE1273801B6 /* FBSDKAccessTokenCacheV4.m */, + 4A57AF6905B0A3803B0448EC6710C4DC /* FBSDKAccessTokenCaching.h */, + 2C499CBEE6CD7AA4E995D6AF57CCA748 /* FBSDKAppEvents.h */, + A31697E2B9D8E445B3466DD113C08D09 /* FBSDKAppEvents.m */, + B52A920C9350CE3F445D2E566CBFA13F /* FBSDKAppEvents+Internal.h */, + F8F179947C0C0E96B116971735C8A938 /* FBSDKAppEventsDeviceInfo.h */, + DDC6B48357BE62D6F9FBE13E28D578D2 /* FBSDKAppEventsDeviceInfo.m */, + DC94754211BCE7082DF3B14161B5EAAB /* FBSDKAppEventsState.h */, + 7BD3327B70185DBCAEF1C6457CFC0EB5 /* FBSDKAppEventsState.m */, + CA91BB9CC65155774C0FFD150FF49853 /* FBSDKAppEventsStateManager.h */, + 8C147EC9E68DE849AB4D39F962053B81 /* FBSDKAppEventsStateManager.m */, + 11EC0AE1EDB0E45B78BDBFC5FA4FC0EE /* FBSDKAppEventsUtility.h */, + F5B19896930D38CF7CAB078AB2C0764F /* FBSDKAppEventsUtility.m */, + 82D8CB87E6417B53E27EF2824A51B1AE /* FBSDKApplicationDelegate.h */, + 073C2A6F0C8C28E0BD7AAE82DE855FF2 /* FBSDKApplicationDelegate.m */, + 3EE357BF90C7F13D9AB1AAA11AE1B1A8 /* FBSDKApplicationDelegate+Internal.h */, + BC964214B402C2C21D846C7DEC607639 /* FBSDKAppLinkResolver.h */, + A38EAC29F9FF8FEDBFD9E146C5464CC4 /* FBSDKAppLinkResolver.m */, + C0315EA376F76903D58AA6E4E95940FD /* FBSDKAppLinkUtility.h */, + 2705151E1C4CF4680560CA9B2540C1A1 /* FBSDKAppLinkUtility.m */, + F2EEF54D12D186B8663C8DCB3F695C1D /* FBSDKAudioResourceLoader.h */, + 5594840934B43867F0C3FBEFD6C80431 /* FBSDKAudioResourceLoader.m */, + C3C0B8BE595A069C712E8C0BF200642F /* FBSDKBase64.h */, + 375D8718E072A3D224649ECF3F501B83 /* FBSDKBase64.m */, + A46BA18CE1F5DAD4BD40817224226BBB /* FBSDKBoltsMeasurementEventListener.h */, + B736AD34BB3DD24B35FA6768548AAB57 /* FBSDKBoltsMeasurementEventListener.m */, + 3052AA772DE2CAD719E5EE652DF37812 /* FBSDKBridgeAPICrypto.h */, + 4A2A23E1989BBECE68491AF336644687 /* FBSDKBridgeAPICrypto.m */, + B2C47746B6F6369F0689571CB0BF2528 /* FBSDKBridgeAPIProtocol.h */, + 62944AA2B65726638EB632ACB42A2E8F /* FBSDKBridgeAPIProtocolNativeV1.h */, + 22E3A8903F8F0E1E07A9EFA287ED7EF8 /* FBSDKBridgeAPIProtocolNativeV1.m */, + 2FD67541CEE09D3C2271ED7AA056EA66 /* FBSDKBridgeAPIProtocolType.h */, + 257731D7042A09BE698D2C11BAA35D4D /* FBSDKBridgeAPIProtocolWebV1.h */, + 0A864C62CA0BADF6CCAC9570785752EC /* FBSDKBridgeAPIProtocolWebV1.m */, + 4143E609D6291527258197A50CD89EF2 /* FBSDKBridgeAPIProtocolWebV2.h */, + 679AB703FB11238BBBD14EE5E0D2C2DB /* FBSDKBridgeAPIProtocolWebV2.m */, + F22DD14C66B71A9DE3E5854A5880482B /* FBSDKBridgeAPIRequest.h */, + 2469FAA4A168CC5BA482B02B15C83D60 /* FBSDKBridgeAPIRequest.m */, + B92338364B8A38DEC8121D096F48D52B /* FBSDKBridgeAPIRequest+Private.h */, + 66D6B0058C76C46A48C1B6B62EA484BB /* FBSDKBridgeAPIResponse.h */, + 8A3AD48E69EB1AF4D9F9724F7373A1E7 /* FBSDKBridgeAPIResponse.m */, + 256C0C7CF985DC6B56CAE2E9BBB98111 /* FBSDKButton.h */, + 5EB514DC6115D3270FBC7FFCBC820D8E /* FBSDKButton.m */, + BF95EA3E8D98E6E69A327A023AD85489 /* FBSDKButton+Subclass.h */, + E13100723F6B92A6FB5F218510F7F7BD /* FBSDKCloseIcon.h */, + 3DBCF2EC01FB92EA925C9D2536A04A8C /* FBSDKCloseIcon.m */, + 74B2F5BC1B9AF1AFE004359B6BE26156 /* FBSDKColor.h */, + 7E91E2B5BE5C7F0E5DC4FECF40DF4ED5 /* FBSDKColor.m */, + 109EEECCF2EC277F4F7A8CEC2E4F5183 /* FBSDKConstants.h */, + 95812E463C1CC47D16F5FC56077AF5C0 /* FBSDKConstants.m */, + 5CCBBF305D6E1315443B9AA0C9D9BA93 /* FBSDKContainerViewController.h */, + 1E791F77AAC47B9FF8E27371A5412060 /* FBSDKContainerViewController.m */, + AB4FEE2DB5548DAE4AA4FFB7FC3D245E /* FBSDKCopying.h */, + BEC43B91DCAFFEDF161330D7CD3A09C4 /* FBSDKCoreKit.h */, + 93F1671BDA2BD54338899738A49727BB /* FBSDKCoreKit+Internal.h */, + FA0CE039477A72FBF76C40D47A40430A /* FBSDKCrypto.h */, + F9A5FEB186DF76B10901176F89C05329 /* FBSDKCrypto.m */, + 68BF983600702C2982CF0BFFC5193965 /* FBSDKDeviceRequestsHelper.h */, + 11394A721234F5169C61869D072F5DB6 /* FBSDKDeviceRequestsHelper.m */, + 9396F394C9C70EF54D23AD2DCDF40B37 /* FBSDKDialogConfiguration.h */, + 98419A69A25EA4E4358DE27B49FB0401 /* FBSDKDialogConfiguration.m */, + 716C02D5A9AAE1E9FF623CABAED47DE5 /* FBSDKDynamicFrameworkLoader.h */, + EEFBE25E9FC2047180A2D56EA883EE3E /* FBSDKDynamicFrameworkLoader.m */, + E51ABFFAF0259B9D3D69665A8C926F84 /* FBSDKError.h */, + 5478E1941918AFFA7F218468D0BD9BA1 /* FBSDKError.m */, + CA98E7EFDA36D71B2A18AF808B42FA27 /* FBSDKErrorConfiguration.h */, + A10D777F0C7B5738A2089B0DF6403022 /* FBSDKErrorConfiguration.m */, + BD425F0503FFA7A39156EBCDE485B65C /* FBSDKErrorRecoveryAttempter.h */, + 8FAF28E0868C7338239326A333830979 /* FBSDKErrorRecoveryAttempter.m */, + 2E24B8503EFBB5AD30804D306AA486A3 /* FBSDKErrorRecoveryConfiguration.h */, + 7DDE8752BF514297AE83C0677970EF48 /* FBSDKErrorRecoveryConfiguration.m */, + 2D8948F5AAC58DFC072B713F078728B2 /* FBSDKGraphErrorRecoveryProcessor.h */, + 088D812A6C4C036B2AB1970550975CB6 /* FBSDKGraphErrorRecoveryProcessor.m */, + 6F7C26C15DB5BEEE9BBAF8EB0CE92C89 /* FBSDKGraphRequest.h */, + FBB05B50549253728E1CE2F50312890E /* FBSDKGraphRequest.m */, + D4FE601A26E9D5FA726EF7D680DEFFCD /* FBSDKGraphRequest+Internal.h */, + 33C03EDE823F17000C5735D1CE99E3CC /* FBSDKGraphRequestBody.h */, + A9F042AE48A642312D374D24AB3942CB /* FBSDKGraphRequestBody.m */, + 10DBB880BE793CC3C7A741EB9C0B3907 /* FBSDKGraphRequestConnection.h */, + 76AF76B374A871F29F6BD5776DDC8665 /* FBSDKGraphRequestConnection.m */, + DD92C584CC1189A24C6EA66FB359D616 /* FBSDKGraphRequestConnection+Internal.h */, + 5F3EDA2FD8A07BBCE753D23FBC30C3BA /* FBSDKGraphRequestDataAttachment.h */, + C0C20A9E034F281110537225962CA16A /* FBSDKGraphRequestDataAttachment.m */, + 46A504768546F50D6357816DDE8B6D12 /* FBSDKGraphRequestMetadata.h */, + C3486EF0B8923350E11F8599313D4932 /* FBSDKGraphRequestMetadata.m */, + 1DD6E71862C9A29D843128A3DD9093CB /* FBSDKGraphRequestPiggybackManager.h */, + 3F47D26FA005F61989CC1BBDE4422C2F /* FBSDKGraphRequestPiggybackManager.m */, + AB10A898CDEE9683D0CC9F1694A09835 /* FBSDKIcon.h */, + 81E1D2CF5F0762B5F7E34A0ED3AA6EB7 /* FBSDKIcon.m */, + D1371448C3EDB39F5FDD9CDBE745C03F /* FBSDKImageDownloader.h */, + 7594CD7CB21067D8AFF52592FCC663E4 /* FBSDKImageDownloader.m */, + 1B7F74FD608163590C6CDF3333809A02 /* FBSDKInternalUtility.h */, + 499F954FAC2B6CD629B8707719DA741B /* FBSDKInternalUtility.m */, + 1568AB9194F5C0A88651091D0B001930 /* FBSDKKeychainStore.h */, + 00CBF6C37943185F06BB5B0B1B97E044 /* FBSDKKeychainStore.m */, + 2AEF2092B75CE68A237EB342BF465D99 /* FBSDKKeychainStoreViaBundleID.h */, + 60AFBF7DD3257FE12798A1808A0B1062 /* FBSDKKeychainStoreViaBundleID.m */, + 6D705C0439C1DBECD8C8B3FD6891DFDF /* FBSDKLogger.h */, + E5743347810C1DA05B42D301BCE9EC9E /* FBSDKLogger.m */, + 5762845029182E805500700F526FB58B /* FBSDKLogo.h */, + 14290AB795B71FC7BDCD4D24E122E455 /* FBSDKLogo.m */, + 47F8EDBC2CBA79C3806D586607A29E04 /* FBSDKMacros.h */, + 530E79C87B5E59CC6E99610FD88FE796 /* FBSDKMaleSilhouetteIcon.h */, + 9DCA25EB306C6619796460267330D4D0 /* FBSDKMaleSilhouetteIcon.m */, + 4994CAACD23B9FA15759B106DCDBC455 /* FBSDKMath.h */, + 0774549743834722051D585A4B7A3C73 /* FBSDKMath.m */, + 797CFC86F2178FBC66EFEF4C177667A2 /* FBSDKMonotonicTime.h */, + BE02F102BA1C5F2D863D30020E7B1487 /* FBSDKMonotonicTime.m */, + 941ACFDABEB4B91AD30E14BEEF76D66F /* FBSDKMutableCopying.h */, + FC00522169EA3F6C5E5801CC14B282F7 /* FBSDKPaymentObserver.h */, + A81E2C176749C2E13C9E932DB1AB44AF /* FBSDKPaymentObserver.m */, + 4F82996142DDC8BD8C0855A772155884 /* FBSDKProfile.h */, + 4C76D7F12BF1AC4B05069FC9D7193F31 /* FBSDKProfile.m */, + ED786925606C722F5431516E12294E89 /* FBSDKProfile+Internal.h */, + 3577A20EA78B5BE31C50161AC624B89C /* FBSDKProfilePictureView.h */, + 4A734DE7CBD23BC300C46C12007ADDBE /* FBSDKProfilePictureView.m */, + F00AB3576B568C1B01645D155BD9D989 /* FBSDKServerConfiguration.h */, + AE43ACD5173438191937C9D3D4570752 /* FBSDKServerConfiguration.m */, + 53AEDDB830582CEBF44836F984666BA7 /* FBSDKServerConfiguration+Internal.h */, + 753FF2308D33FF5D9B4C2851BA0EC0DE /* FBSDKServerConfigurationManager.h */, + 78423B10534D234EE3C8159D294BC421 /* FBSDKServerConfigurationManager.m */, + 53306921A83FB1DEC9165BF254712B01 /* FBSDKServerConfigurationManager+Internal.h */, + 7095BF3AE4223BEC5F231097AA97B0F4 /* FBSDKSettings.h */, + E44A36A9E9B6EFD8389E5F40C5A7CE08 /* FBSDKSettings.m */, + CE267A67FA2FA598B9D2B4C0ACBED9CD /* FBSDKSettings+Internal.h */, + A70141ECBAF9C85DAFB9334D2B28C6A4 /* FBSDKSystemAccountStoreAdapter.h */, + E09303466CBE1882C00E5CEF9E7CEB7E /* FBSDKSystemAccountStoreAdapter.m */, + 06820D6F4B907D5BF19FD02F956D9B2D /* FBSDKTestUsersManager.h */, + BA41975142E387704B6973F9EE1A5AEC /* FBSDKTestUsersManager.m */, + 6834627757B423E59BA0F9351269A1D7 /* FBSDKTimeSpentData.h */, + D0C6BCA5A4C55C7593B40201923903F9 /* FBSDKTimeSpentData.m */, + 0D718BA0E87E4A07E3BE1827F0BC2158 /* FBSDKTriStateBOOL.h */, + 725AA96FCCBB4195983782A63C7C1E5C /* FBSDKTriStateBOOL.m */, + F6CF3E644A2FFB78A49F2DC9DD3C6FB1 /* FBSDKTypeUtility.h */, + 43BD52F4F4F6D3F1E30F01B71E971F6C /* FBSDKTypeUtility.m */, + 1A63B61A8AAD3568638CF60B32253560 /* FBSDKUIUtility.h */, + 067FCEC8661F4753AE6FC887FFCA8C6C /* FBSDKURLConnection.h */, + CF1462F41CA7C27CE59126ED18B95DBC /* FBSDKURLConnection.m */, + 0CFA848E9F436535706EA35CF131941E /* FBSDKURLOpening.h */, + 4601C088CCD5D719C4C3B7F8646FD718 /* FBSDKURLSessionTask.h */, + A6F9A6BCF07C3BC7628FA39D14BE7C98 /* FBSDKURLSessionTask.m */, + 6F68E047D9B8C0D5EECA37A6FAA632F5 /* FBSDKUtility.h */, + D57F21B98EB913110B9BF61B0FC3CFF0 /* FBSDKUtility.m */, + A52C9B79FF9C19CAA5979B77BB66548C /* FBSDKViewImpressionTracker.h */, + 30F702F3A87D871886FB2AEEEEC4CB9B /* FBSDKViewImpressionTracker.m */, + 7BF1239645FA23DBD972C46B3C41D95F /* FBSDKWebDialog.h */, + 6D1D6C52F36ACD4D059EF95D774D1089 /* FBSDKWebDialog.m */, + F2673047EEC37743C83D56200D29ED44 /* FBSDKWebDialogView.h */, + A3BC085B42975ADAF8E66E9D5E1471F4 /* FBSDKWebDialogView.m */, + D7F3C8905F2519801F3BE987FB8A3A59 /* Resources */, + 048FBFDF89CEDC030D74A80CC1D4FE8C /* Support Files */, ); name = FBSDKCoreKit; path = FBSDKCoreKit; sourceTree = ""; }; - 76D3F925276C5049E2648DA62EEBB661 /* Support Files */ = { + 49517BE3F70361C1DB4D1C983DFCE924 /* Support Files */ = { isa = PBXGroup; children = ( - 047A9C694427927405A698622169F66D /* FBSDKCoreKit.modulemap */, - 05CE7387BB466D39C35745F918D2D9B0 /* FBSDKCoreKit.xcconfig */, - 8D0A78DF22F737ED096473CD1097EB1F /* FBSDKCoreKit-dummy.m */, - E94421AC64BD5825CDBF4934A388D319 /* FBSDKCoreKit-prefix.pch */, - 6F1BB16FD92A0240C20CDB1D9D12989F /* FBSDKCoreKit-umbrella.h */, - A8A4CDE1706D993214A2E87792FCA9DA /* Info.plist */, + 6867FB5320732E3691A7151351DF10B1 /* DDDKeychainWrapper.modulemap */, + 39CFAB085189080C8BCF3E62E932AA4C /* DDDKeychainWrapper.xcconfig */, + 512A96CFB549C537BE0C1FC1D8AEEE87 /* DDDKeychainWrapper-dummy.m */, + DCD907DFF906B024ADA5596941A1BD0E /* DDDKeychainWrapper-prefix.pch */, + B02EECFE53B0F2B0172DFB1A40C4E227 /* DDDKeychainWrapper-umbrella.h */, + C57FB08ED63E4419E1C1DF45090D7810 /* Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/FBSDKCoreKit"; + path = "../Target Support Files/DDDKeychainWrapper"; sourceTree = ""; }; - 7710E9352C8EF150F67C2A8037B7DDB3 /* Support Files */ = { + 4CC17719B21BF5129D3FCD86E9C3C5C3 /* Support Files */ = { isa = PBXGroup; children = ( - 3ED4218FD3CAE0D01A7CC6A8C4B0048F /* Info.plist */, - 53860B6F9EB37047AED55A1CA8341C72 /* NSDate_Utils.modulemap */, - 8657A2E48D2A442BE7863B1883F23BD3 /* NSDate_Utils.xcconfig */, - 0772BD39CED296B17A2C8DEA14E72D1E /* NSDate_Utils-dummy.m */, - 7B78FA75188FA3D3B0FB07D7CACDC060 /* NSDate_Utils-prefix.pch */, - 1F34C1BC19AD317FC6984E7F1D0309C1 /* NSDate_Utils-umbrella.h */, + D4E4421B432A06479C9D135F55197980 /* CodFis-Helper.modulemap */, + 442D0B9D30C124A47432E266E187A1F0 /* CodFis-Helper.xcconfig */, + B3DA95A0FEBCE12F7B709FBC601A445D /* CodFis-Helper-dummy.m */, + 174BF6A0CAF2D617973586345A029AD0 /* CodFis-Helper-prefix.pch */, + 1AD9E43CD7AA5C658295245EF8F2399B /* CodFis-Helper-umbrella.h */, + F2AC73086EDE3F07B5C841BC4EE260AF /* Info.plist */, ); name = "Support Files"; - path = "../Target Support Files/NSDate_Utils"; + path = "../Target Support Files/CodFis-Helper"; + sourceTree = ""; + }; + 59475B175190CAA1C0601942E51E219C /* Support Files */ = { + isa = PBXGroup; + children = ( + 218667BA06E2365E1D0C7ECB545EC40C /* DJLocalization.modulemap */, + 7AEB2A7CF00A95726DE561E306F8346D /* DJLocalization.xcconfig */, + 36B37C0D96D2D1C3237740984553CD29 /* DJLocalization-dummy.m */, + DEF5952A6129F344B6403DEDC6626668 /* DJLocalization-prefix.pch */, + 03AC9FFBD8C06E070FCB79E7C9F4118D /* DJLocalization-umbrella.h */, + 3D984886C2F35C331C2D3F8911E94DD3 /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/DJLocalization"; + sourceTree = ""; + }; + 65A1E1FA1293B464D8CCB1A38F78B6E8 /* Support Files */ = { + isa = PBXGroup; + children = ( + E52FFC846CEE823EB42E923E07B4A01F /* Info.plist */, + F532435A8A005EAE555E5D3FAB6D6482 /* PureLayout.modulemap */, + 60B8D0343245B55677461157E5711662 /* PureLayout.xcconfig */, + 9357BC23B2BD1E2DB4256D1932322A2A /* PureLayout-dummy.m */, + 16EBF9DBE0B2A42768505BDBD7EE0398 /* PureLayout-prefix.pch */, + BF1B2D14FA284C93B9CCEE9846AE8A82 /* PureLayout-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/PureLayout"; + sourceTree = ""; + }; + 65F191037D08D83859D752DD6C02D5A2 /* Support Files */ = { + isa = PBXGroup; + children = ( + 00984089303CC269B60FB2B41C605561 /* Info.plist */, + AA98CF0D4AF4C7D4E17C8E8CEF9B040B /* UIDevice-Utils.modulemap */, + B4874B07FDBEF9FCB54B07E01ACFCEA0 /* UIDevice-Utils.xcconfig */, + 9F2349867BCCE97BD15CD0C2FADEF5D6 /* UIDevice-Utils-dummy.m */, + 1F45D5D58187C5416F99C449F96DE05F /* UIDevice-Utils-prefix.pch */, + 2D713F1F0AA94178EC9405D76B713811 /* UIDevice-Utils-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/UIDevice-Utils"; + sourceTree = ""; + }; + 69DBDA900AC2A5287730799C6C8853A6 /* AFNetworking */ = { + isa = PBXGroup; + children = ( + 75F08A85B92B0AFF89431B6F69813EFC /* AFNetworking.h */, + 035D0E08A1F3E4FAC46E57685F56FECA /* NSURLSession */, + 9841FA67C738B5E042556DF4DE6F8FE9 /* Reachability */, + CFF770E7B7A3A62E4882ED75FDE8CDCA /* Security */, + 0902CFAD22BA0F9FD7ACDCC525338DE7 /* Serialization */, + 9A578F938FB50B0C3D8E84DBCE1DF8B0 /* Support Files */, + E6AF9CCA2A494420934DF59579318952 /* UIKit */, + ); + name = AFNetworking; + path = AFNetworking; + sourceTree = ""; + }; + 6A57E61832BE8CA9C18F21623A7C0F76 /* PNClasses */ = { + isa = PBXGroup; + children = ( + 677C58FBC556BDAFA69409AD1C8E2ABC /* PNAddress.h */, + E1711CAEF44B98A3548F278FB3220AE0 /* PNAddress.m */, + BF8D24041914F365184C23C25E789F44 /* PNInstallation.h */, + 4632BA4F017A5E24A2F05BC2273F21A2 /* PNInstallation.m */, + 106C36F381B4489F0CF7820798040205 /* PNLocation.h */, + D989005B56633AB16408AA566CBEA034 /* PNLocation.m */, + 69A757F877675D69E1FE682D461BDE96 /* PNObjcPassword.h */, + 4F36A66486C813755A43D2D61E3DB1CA /* PNObjcPassword.m */, + 60B1CCDA270E221FD14BEFB412C23BCF /* PNUser.h */, + 993A772CC4CAD822337C9EE18EBAACF0 /* PNUser.m */, + ); + name = PNClasses; + path = PNClasses; + sourceTree = ""; + }; + 6B335504183EB30B86168E239F21DB9B /* Bolts */ = { + isa = PBXGroup; + children = ( + 343B1292703A3D954B2A6213D5E0F1E5 /* AppLinks */, + 02FA3E6E404E302550F54118EF9C9C76 /* Support Files */, + 9B6D75D00CC752C92055FDBAF66CA458 /* Tasks */, + ); + name = Bolts; + path = Bolts; + sourceTree = ""; + }; + 727CA703645BF86276746F9DC3F4394D /* Support Files */ = { + isa = PBXGroup; + children = ( + 4966B0CE5DD9FDDE83C3AE15089135AC /* Info.plist */, + 9667DCA4B44D1886B9DA6DAC71B997A5 /* NAChloride.modulemap */, + DF2C3A14DAFA851B775C785523415D35 /* NAChloride.xcconfig */, + 9BDD269CEF3F675EF033519A6531722F /* NAChloride-dummy.m */, + 1BFB5BEE395148A27B4AD31E288C4DB4 /* NAChloride-prefix.pch */, + A833C87170F9EA398E82E63AD041E8C4 /* NAChloride-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/NAChloride"; + sourceTree = ""; + }; + 7AD7C372612EE60CD3E43CF050F5E087 /* DDDKeychainWrapper */ = { + isa = PBXGroup; + children = ( + EBE51C47C472E53476EADAB9902AD9E2 /* DDDKeychainWrapper.h */, + F33B08AF89C2771A8BABAAF23B19607B /* DDDKeychainWrapper.m */, + 49517BE3F70361C1DB4D1C983DFCE924 /* Support Files */, + ); + name = DDDKeychainWrapper; + path = DDDKeychainWrapper; sourceTree = ""; }; 7B2C40B467EE55C5CB63A978531E7289 /* Pods-PNObject_Example */ = { @@ -3165,297 +3114,677 @@ path = "Target Support Files/Pods-PNObject_Example"; sourceTree = ""; }; + 7C7ABA9FBD9121BE3960C4B5CE991FF9 /* Vendors */ = { + isa = PBXGroup; + children = ( + 1F9823E52F3EC8809C52DE543C8F5282 /* AFJSONResponseSerializerWithData */, + E0508975D0738A9D4232828D8CE85A8E /* AFOAuth2Manager */, + ); + name = Vendors; + path = Vendors; + sourceTree = ""; + }; + 7D6E269B4B44393F0BD8B7E3E4D08CB0 /* Support Files */ = { + isa = PBXGroup; + children = ( + 5645B53E676DEDD3792D46771FA9D3FA /* Info.plist */, + F6F1222F573DA4C0D3A25994D0726836 /* PNObject.modulemap */, + 27A61EBBAC53EABE74ACEBD1498ACCBF /* PNObject.xcconfig */, + CA78B797EC3D20CC47BEA320C1A350A6 /* PNObject-dummy.m */, + 43240865F73425343A86482BFDE8200F /* PNObject-prefix.pch */, + 99FA268896DA1B5393BE0448C850EAD5 /* PNObject-umbrella.h */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/PNObject"; + sourceTree = ""; + }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, E99CD5B3CF7131277C4CBA3A1162D56A /* Development Pods */, - BF2884B5DBA6AE24D920A134860D3575 /* Frameworks */, - 3584F3AC17CA7EE33DC993D4E40CE095 /* Pods */, - 34984184FBD8176E64AC42C602851637 /* Products */, + 991F64BD571F0D9B77B3F6ADA11D4359 /* Frameworks */, + 7E648A08EBE8590B84DD85316945DDDD /* Pods */, + 1FE1C971B623ABBC47502D2EDFACA4B5 /* Products */, CA2A6C0A1068E1DAEA2579E47E971F66 /* Targets Support Files */, ); sourceTree = ""; }; - 87BA0507C7367020C868CAD32F6D2699 /* iOS */ = { + 7E648A08EBE8590B84DD85316945DDDD /* Pods */ = { isa = PBXGroup; children = ( - 6D598515A3D05D2746CE121F66FE86FC /* CoreGraphics.framework */, - CEC655933E3C06EBE9718EE49DC22C6C /* Foundation.framework */, - 87B96D2768F69B52A41D9A3961BCDAC1 /* MobileCoreServices.framework */, - 61C5BFA52AD671087017F84C858A14A6 /* QuartzCore.framework */, - 68972A27C3CF6E198076F82DECBC6DB1 /* Security.framework */, - 382047A728757CE3FA00E5771BCD49A7 /* SystemConfiguration.framework */, - CE9E60F2C387D51A3F34BCE723D17BF4 /* UIKit.framework */, - 6170D3002872549F97AC351AF6D25112 /* XCTest.framework */, + 69DBDA900AC2A5287730799C6C8853A6 /* AFNetworking */, + 6B335504183EB30B86168E239F21DB9B /* Bolts */, + 921430F6231597F4074B63EB0C06F44A /* CocoaSecurity */, + A7C5C884DE517F536CC7AC3015313453 /* CodFis-Helper */, + 7AD7C372612EE60CD3E43CF050F5E087 /* DDDKeychainWrapper */, + 273CC9A4FEB3FA67E834F838A90693B9 /* DJLocalization */, + EA0A3C232EBA33B4AF27169B2FC8A8D9 /* Expecta */, + 3FC452191885AFBB5C0CE3D2154D72A8 /* FBSDKCoreKit */, + 290FE6F0B25E3A2BAAE7736C9C2CF694 /* FBSDKLoginKit */, + A14E53E25BF54AA025AAB8F2E04B3285 /* FBSDKShareKit */, + C3D048CDD71FBEC887091DA6BEAECE24 /* libsodium */, + 1AAD3FABF6E9FEAB84E511636CA98983 /* NAChloride */, + 81812969C5C263485B8EF331371B2B44 /* NSDate_Utils */, + EA0AF07E21D6BA56524546AD75DC776D /* NSString-Helper */, + C0E8B7C29E0984EFF664CF5D138BC192 /* NSUserDefaults-AESEncryptor */, + D135DEA0D188509543376277348252D6 /* nv-ios-http-status */, + 293B938FD3727E064B6F0645FB42EEDA /* PEAR-FileManager-iOS */, + F60DFC0BA0FDFEECCEC5F3F19C67388F /* PureLayout */, + BAAC0DFB5FBF408E247CBDA1F085BAB6 /* RZDataBinding */, + E1E466CC41AFC334E8AAB197E5FCCE47 /* Specta */, + D13373B02B4BD4F6D90FC05CE25946FB /* StrongestPasswordValidator */, + 9C45121551FFAD44F29B26A8D41A35AB /* UIDevice-Utils */, ); - name = iOS; + name = Pods; sourceTree = ""; }; - 892061532C5FC10BD454D78984EE2FBF /* Support Files */ = { + 81812969C5C263485B8EF331371B2B44 /* NSDate_Utils */ = { isa = PBXGroup; children = ( - F89542F61D56F4F96E97BC66A2523B63 /* Info.plist */, - 5699427E1DA4485996D9ED960B20C757 /* RZDataBinding.modulemap */, - 7395C63B98701722FEB09543DCCC60EE /* RZDataBinding.xcconfig */, - 74CECD8FB0884DC1FAB532E2548CC5B6 /* RZDataBinding-dummy.m */, - D71C1DC0A53B68D93DED2B100192C879 /* RZDataBinding-prefix.pch */, - B23435F88C902169A799BF19874C955A /* RZDataBinding-umbrella.h */, + D686C5FEAFDF6A76263400F68D766B82 /* NSDate+NSDate_Util.h */, + BEC8D38A9AFD295C5D5EBE678441B4AC /* NSDate+NSDate_Util.m */, + 0440EA135D7FE37E58ED4309282F68DA /* Support Files */, + ); + name = NSDate_Utils; + path = NSDate_Utils; + sourceTree = ""; + }; + 857371500A222E1BA5E372C94E88D2F6 /* Support Files */ = { + isa = PBXGroup; + children = ( + B5B20683747C1CA3AEC777791E7A9AF4 /* Info.plist */, + EFB1D7FCE00818F1BBDA36B839AEFB18 /* NSUserDefaults-AESEncryptor.modulemap */, + 551594B34EF6F1866BDE9A98A54DF271 /* NSUserDefaults-AESEncryptor.xcconfig */, + 68CA002B4D1B706B67FC9B27FA070715 /* NSUserDefaults-AESEncryptor-dummy.m */, + B67C0A63B2CE7171F8532EFADD49A2D5 /* NSUserDefaults-AESEncryptor-prefix.pch */, + 2F5CC57C416C6AB5FA053E016F6973A5 /* NSUserDefaults-AESEncryptor-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/NSUserDefaults-AESEncryptor"; + sourceTree = ""; + }; + 9079E25AA0A6787344EE07A109DA0B7F /* Core */ = { + isa = PBXGroup; + children = ( + 0AF4FA08F4D20FE318B70FE34ECD7010 /* DJLocalizableString.h */, + 70E4006CC48E435E36F051EBADAFE22B /* DJLocalizableString.m */, + ACC5CE5D98FE7E895D3040E4429B1079 /* DJLocalization.h */, + FDB01B701C5BAF1454D0A80D6C040BA9 /* DJLocalizationSystem.h */, + 7E3A71D77CDDA16F738B018E4CD35755 /* DJLocalizationSystem.m */, + 5AAE775A1FEB13F35478BEC77EDB5F4A /* DJLocalizationSystem+Private.h */, + 8DB409BB76FA02D2D18C069F3794E368 /* UIStoryboard+DJLocalization.h */, + A6849595FD3572B8D686BFDF4B599544 /* UIStoryboard+DJLocalization.m */, + ); + name = Core; + sourceTree = ""; + }; + 921430F6231597F4074B63EB0C06F44A /* CocoaSecurity */ = { + isa = PBXGroup; + children = ( + 520BC3C3AEE86D7AC21F89C1DD8A1F76 /* Base64.h */, + E4BC16524B4E354454F2D7D088EBEA22 /* Base64.m */, + F5080E28EF7CDF4535196CE13B7F76AA /* CocoaSecurity.h */, + E93BC746D287711BB34D59C217FD8F3B /* CocoaSecurity.m */, + 9B29648BB2793B396A8CE4103B43A55C /* Support Files */, + ); + name = CocoaSecurity; + path = CocoaSecurity; + sourceTree = ""; + }; + 9841FA67C738B5E042556DF4DE6F8FE9 /* Reachability */ = { + isa = PBXGroup; + children = ( + DD4FCDBDB5884B02FC6B1A432E890F0D /* AFNetworkReachabilityManager.h */, + EC78B0BAC08A6DB7AC8A052DA693677F /* AFNetworkReachabilityManager.m */, + ); + name = Reachability; + sourceTree = ""; + }; + 991F64BD571F0D9B77B3F6ADA11D4359 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6D0C809583C072A7C8E5D2875BCF7821 /* AFNetworking.framework */, + A163428D478C7BCEEA0D1ACB2BD2312D /* Bolts.framework */, + 9530FCD7B93F0B744402DB6E22ED3029 /* CocoaSecurity.framework */, + 8227379172D82E2E67B10BE220E5767D /* CodFis_Helper.framework */, + D328046A00DA89F3C3823C5CB70AE20A /* DDDKeychainWrapper.framework */, + 8926F7A556C2546186F334DEFEC6EAFF /* DJLocalization.framework */, + 91C39CE9C2CEBA193716F145A218C946 /* FBSDKCoreKit.framework */, + F9E292E8119060322CF92EDAC054DFA4 /* FBSDKLoginKit.framework */, + 7451C9C8418B43743459FE26BB5DC160 /* FBSDKShareKit.framework */, + 35A87D6483AD7A11EE46A6D4C67F1888 /* libsodium.framework */, + C8CF01417105E1AD7199ECFA09396D46 /* NAChloride.framework */, + 8F7A345BEBEF983B25B627146148BA34 /* NSDate_Utils.framework */, + C910B59269C90111D7C3C767D2FEA7AF /* NSString_Helper.framework */, + B873500D5E5AC54899F883F7DCCE9FBD /* NSUserDefaults_AESEncryptor.framework */, + ED35D50290EA0861437F28E69D66AFB2 /* nv_ios_http_status.framework */, + 1AC1FF556F86F99D984DCB1081EBF937 /* PEAR_FileManager_iOS.framework */, + BCFC84397A97D780DB8E33FBD0A40C87 /* RZDataBinding.framework */, + 32631AB4AD346D596FBEB16E9CC6227B /* StrongestPasswordValidator.framework */, + F160CEFDA9EF67D91C0D0BB870F6B710 /* UIDevice_Utils.framework */, + BF48DBCF3291C126C110C01845BE247A /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9A578F938FB50B0C3D8E84DBCE1DF8B0 /* Support Files */ = { + isa = PBXGroup; + children = ( + 79BB43B94B29807A1320F71A2C110DEC /* AFNetworking.modulemap */, + 5F084ECAF840E2E9F8D00547580C4A9B /* AFNetworking.xcconfig */, + A1636A3203860367BBF3E9F9AB99654E /* AFNetworking-dummy.m */, + ACC73415F5B06BA830EE250790DB885D /* AFNetworking-prefix.pch */, + F470A31D2B704B9242F3495680919A9D /* AFNetworking-umbrella.h */, + B9F889647450F92E17E94B94A7FF9C5C /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/AFNetworking"; + sourceTree = ""; + }; + 9B1AA358AB64F308E218C1BD98E27736 /* Support Files */ = { + isa = PBXGroup; + children = ( + 3BE1B5CF1F3221906E61F33145FFFF28 /* Info.plist */, + 58FFFC4A75B598DA0E8A753CF5013877 /* RZDataBinding.modulemap */, + DF5FB7372D5866A763994C43A10006D6 /* RZDataBinding.xcconfig */, + 2E08500D05A12AD4957773BFF5615305 /* RZDataBinding-dummy.m */, + 024B6E436E3E38943DE2E659DEA97D41 /* RZDataBinding-prefix.pch */, + 85BD0368B84322484C341F260413D647 /* RZDataBinding-umbrella.h */, ); name = "Support Files"; path = "../Target Support Files/RZDataBinding"; sourceTree = ""; }; - 96C661CC4E60891C05CD91D1702A0EEA /* PEAR-FileManager-iOS */ = { + 9B29648BB2793B396A8CE4103B43A55C /* Support Files */ = { isa = PBXGroup; children = ( - 98512618293EDB25CB0E3E47820B850D /* PEARFileManager.h */, - C501E15233B0A20004D6765FEBEC5587 /* PEARFileManager.m */, - D5F4376B410BFDAC9D8D03BDDB365725 /* Support Files */, + 5FEA5B6192F7B2A7AF470AB672490632 /* CocoaSecurity.modulemap */, + 13F9DB4B3070FBF062D4DE6C9D51BB30 /* CocoaSecurity.xcconfig */, + 1CCDF04306B298BE185666BE0459685C /* CocoaSecurity-dummy.m */, + FBCA00299EE704BFDB9298417ED8F906 /* CocoaSecurity-prefix.pch */, + 110A6D6AAAC4948F51C7CCF7E1466605 /* CocoaSecurity-umbrella.h */, + 96DA52E8B58E7749A40E7993C6B0F93C /* Info.plist */, ); - name = "PEAR-FileManager-iOS"; - path = "PEAR-FileManager-iOS"; + name = "Support Files"; + path = "../Target Support Files/CocoaSecurity"; sourceTree = ""; }; - 99B1149AFF6CDC4849C95F2898CDC24F /* RZDataBinding */ = { + 9B6D75D00CC752C92055FDBAF66CA458 /* Tasks */ = { isa = PBXGroup; children = ( - DC3259BB6241878EF7B126BF7A7C0D59 /* NSObject+RZDataBinding.h */, - 5C01CC6950B105814F11C9D5506B17D4 /* NSObject+RZDataBinding.m */, - CD1BC9FE52338260A645DA1E535D60E9 /* RZDataBinding.h */, - A2FD059892C1D6494634AC41C4B1E506 /* RZDBCoalesce.h */, - 14775F91AE2B87BDAE8ABD015ECDCC70 /* RZDBCoalesce.m */, - F23C49D2F5855C626500B165AE54D24C /* RZDBMacros.h */, - 9A604665CBF19E7F636BAEBD95436928 /* RZDBTransforms.h */, - 3459CA1C90104634EAB50E76E15FD80C /* RZDBTransforms.m */, - 892061532C5FC10BD454D78984EE2FBF /* Support Files */, + 8202D40B52BC9C084C6F38E708EA0AAB /* BFCancellationToken.h */, + 52984D482E13C4BEAED254A02E3EAE4E /* BFCancellationToken.m */, + 4A9CB77E9AEE3CC25EBF13E70B9DC096 /* BFCancellationTokenRegistration.h */, + 546C644E4CB472B8918C158D266B9BDE /* BFCancellationTokenRegistration.m */, + 331FB4814B73F02148C0A9AD40292447 /* BFCancellationTokenSource.h */, + A905FDF0A7C5EE673BCF2B6A922F1BDC /* BFCancellationTokenSource.m */, + 0E6F4BB7CCD22D4D38338EDACF42359F /* BFExecutor.h */, + A22B1409D1983A06CC598312132181B5 /* BFExecutor.m */, + AB33F2F102D07A3BBF16CEC3C818F3EF /* BFTask.h */, + 81EF083B3508EDB9EDFB7BD8B7E8D2BA /* BFTask.m */, + C970EEAB10CA98E5716D16FD3ACFEE0D /* BFTask+Exceptions.h */, + 79EAFABAC6E87A56D674EFBCB99EC932 /* BFTask+Exceptions.m */, + D5D4192C44A8BE2ECD10FE76321BCD37 /* BFTaskCompletionSource.h */, + 7D162E66974CF03C0FBEB1757881F4AF /* BFTaskCompletionSource.m */, + 750D54F69E9FCD9C87442C4B2B2C7D77 /* Bolts.h */, + 72BF5B4410DC3DB627E15DEC38D11D20 /* Bolts.m */, + ); + name = Tasks; + sourceTree = ""; + }; + 9BFB1BFEBE6F32C1A864E172D1131295 /* Support Files */ = { + isa = PBXGroup; + children = ( + 03093BE1CD954DEA79969DCBA595E38E /* FBSDKLoginKit.modulemap */, + 6589C0581A8D81459860DB0F58DE06F6 /* FBSDKLoginKit.xcconfig */, + 33B7BCFD91EFA3D6052DD78F8B8F06A9 /* FBSDKLoginKit-dummy.m */, + 04FC06B7DD9F7773327496FF1ABBA969 /* FBSDKLoginKit-prefix.pch */, + DACCD32EAF0D71EFADDE0FCEDD91A363 /* FBSDKLoginKit-umbrella.h */, + 9EC65DB8E5ADE560BF642DFE290971EE /* Info.plist */, + ); + name = "Support Files"; + path = "../Target Support Files/FBSDKLoginKit"; + sourceTree = ""; + }; + 9C45121551FFAD44F29B26A8D41A35AB /* UIDevice-Utils */ = { + isa = PBXGroup; + children = ( + 79B5AF79A16C6512D133D05AAA690713 /* UIDevice-Hardware.h */, + 4EB71EDF21A46CBC44A08A5D19EF6AFB /* UIDevice-Hardware.m */, + 65F191037D08D83859D752DD6C02D5A2 /* Support Files */, + ); + name = "UIDevice-Utils"; + path = "UIDevice-Utils"; + sourceTree = ""; + }; + A14E53E25BF54AA025AAB8F2E04B3285 /* FBSDKShareKit */ = { + isa = PBXGroup; + children = ( + 649E34AE8EBE9910AD68640B7CA993CE /* FBSDKAppGroupAddDialog.h */, + 67287FD4AE8EB6DB4DD734E3D7B793D8 /* FBSDKAppGroupAddDialog.m */, + FA5E261EAF9F70EE6419FBF7F4EB81BA /* FBSDKAppGroupContent.h */, + C443ACD15D2555148AB82AB3FF1E2680 /* FBSDKAppGroupContent.m */, + 4EB7CD599A5F5DA2CF920EB72E3B061A /* FBSDKAppGroupJoinDialog.h */, + 8586C570A9EFBD4151C309EE8386019E /* FBSDKAppGroupJoinDialog.m */, + 9A14A9053EADFD30565D90F227B1270E /* FBSDKAppInviteContent.h */, + 71124AC898CB36B9E1735C5C92CC7F07 /* FBSDKAppInviteContent.m */, + DA283BCCBEEB8C2217AF20F99733E0C7 /* FBSDKAppInviteDialog.h */, + 693C99BD262178C7AEA55EBD75D0B815 /* FBSDKAppInviteDialog.m */, + D3B1F7CD4DB6B3BCA49267B697A1EDFB /* FBSDKCheckmarkIcon.h */, + 13E853DF8A5A7EA4D97E9ED6A296222A /* FBSDKCheckmarkIcon.m */, + 72B51D2440AF39DC0C277F37CA64267B /* FBSDKGameRequestContent.h */, + 9525100D5D188FBD3AFFC44374EBD5A5 /* FBSDKGameRequestContent.m */, + 69BDFF9EEFCC3A7780727631960224EF /* FBSDKGameRequestDialog.h */, + D4DD7EBA78838126B1017FEB89F9DEA1 /* FBSDKGameRequestDialog.m */, + 1302914AC21A11EAAE954194A659B9E3 /* FBSDKGameRequestFrictionlessRecipientCache.h */, + 8BEFC9A54083DB4689831608688191A8 /* FBSDKGameRequestFrictionlessRecipientCache.m */, + 9098E27BBB9B777852DA38E13F669F03 /* FBSDKHashtag.h */, + 59C11F1659AF449855CE1E5B73182628 /* FBSDKHashtag.m */, + C4DAB3E359D00B4D1FAE65B7A4C19109 /* FBSDKLikeActionController.h */, + 322C425C635D5323EAFC2B48375505CD /* FBSDKLikeActionController.m */, + 791CBD618EB17C3A22A3E0D7306DF8B3 /* FBSDKLikeActionControllerCache.h */, + 8A6145C99ABE2C2404EF5E87DBFD667A /* FBSDKLikeActionControllerCache.m */, + C0B2D3F99F089677EBFCBBD3BCC68B38 /* FBSDKLikeBoxBorderView.h */, + 343149EB2DDA012EF482E643E2F090E1 /* FBSDKLikeBoxBorderView.m */, + 5073E7257F054EA1AF23D1B1BA2F0488 /* FBSDKLikeBoxView.h */, + 3C47C253F72B48CB919963954E600E31 /* FBSDKLikeBoxView.m */, + 255EE07D2E033F49953DD397D9EAE8AE /* FBSDKLikeButton.h */, + 555428BFE41981FBE1244DA9685ED649 /* FBSDKLikeButton.m */, + 800052B20025694891AD11620505516D /* FBSDKLikeButton+Internal.h */, + 56393CABDB541B464B5BA3AA0CFE6C5E /* FBSDKLikeButtonPopWAV.h */, + 010A8BF899C568F1CE828C1A448114E8 /* FBSDKLikeButtonPopWAV.m */, + 1B1B9361785FB1D9E5B83B8A98FAF2AF /* FBSDKLikeControl.h */, + 4BF1B6793C01C3E0F0647C6A9F5CE0B5 /* FBSDKLikeControl.m */, + 5DD9077DC747F9732E094A2F04237833 /* FBSDKLikeControl+Internal.h */, + 7134D818B8FBA2F1E8259FB5E9AE3E3F /* FBSDKLikeDialog.h */, + 2926D628713CC43FD149C423F394EC75 /* FBSDKLikeDialog.m */, + 8D9A732CA19FE04150C7E449AE44EDCD /* FBSDKLikeObjectType.h */, + 6977DC3A0BAA31F6C91BC7468BBCC3BA /* FBSDKLikeObjectType.m */, + 64D9AE6B3C48BE5C69528CE23CD4A1A2 /* FBSDKLiking.h */, + F09422620497769D0A106A4C1744ED7E /* FBSDKMessageDialog.h */, + 6FB5448CAA965EAACA4E07AA5247A2E4 /* FBSDKMessageDialog.m */, + 99A321DA9208AA28B6FF7F824AEBABE7 /* FBSDKMessengerIcon.h */, + 2936908F010D40A6524387BEF29087C2 /* FBSDKMessengerIcon.m */, + FE56FC35592AC5DDAFAE91B7A886C0E8 /* FBSDKSendButton.h */, + EFD2B35CEC438EDEF2977DF10C7B8B25 /* FBSDKSendButton.m */, + 809DA9DC752F10C030AA2D9C18E9DAF8 /* FBSDKShareAPI.h */, + B2B1479571E3F21D2D72CA535A3F0B19 /* FBSDKShareAPI.m */, + 09A0BA8A78FB9CF083FE7EF167AEAA6E /* FBSDKShareButton.h */, + 27ADCF1FD5D3FC071A5AD1BD863BA0A0 /* FBSDKShareButton.m */, + 2EF89A06BABC6C142A1DD1EA088FB7A5 /* FBSDKShareConstants.h */, + 34F5014DC3A76B6226E7BEBDD90CDC66 /* FBSDKShareConstants.m */, + A5C5CB69C1BB4CBD7471203E4F343C12 /* FBSDKShareDefines.h */, + B12ACEF13E9287924CB679C6413C5B53 /* FBSDKShareDialog.h */, + 8902ADF31F47E5D6B2B913047592A5FB /* FBSDKShareDialog.m */, + 0AFC2C6C97F98F163995F220D76F3BF1 /* FBSDKShareDialogMode.h */, + 3101435CD727095B4350AA3D3D056608 /* FBSDKShareDialogMode.m */, + EA3D4BC01DCD0EDBCF8DE37C726C0D40 /* FBSDKShareError.h */, + F81AEC1683D42FBE542B95392B7B1B9C /* FBSDKShareError.m */, + 89F1FD17E7380F8F55D5612BE743BE1D /* FBSDKShareKit.h */, + FD176DEDB8BC5240FC603162963D8A3E /* FBSDKShareKit+Internal.h */, + 2A54B74C6A812591CD05DB598DFA0CE7 /* FBSDKShareLinkContent.h */, + 5DB4C3AE95BC006396C052A019053136 /* FBSDKShareLinkContent.m */, + 23927B6E2E2799F100959B5DB7797F1F /* FBSDKShareLinkContent+Internal.h */, + F12AE894B9A21D1C99A5E1D59C4C1C2A /* FBSDKShareMediaContent.h */, + 52C6CD323254C863EF6EB99FB259C48C /* FBSDKShareMediaContent.m */, + EE553BED152D758D536EF13374FE48DE /* FBSDKShareOpenGraphAction.h */, + 882D75E57826C680B000D531DD4101FB /* FBSDKShareOpenGraphAction.m */, + 66771F47EC0E59C86E0DC08683788D5A /* FBSDKShareOpenGraphContent.h */, + F6FD391F81EC536082DF1F22081788BD /* FBSDKShareOpenGraphContent.m */, + 411D8610D1CF78ADD94DE70C1D7C62DB /* FBSDKShareOpenGraphObject.h */, + 2C0E7934A146E935107C6DB71DE2D202 /* FBSDKShareOpenGraphObject.m */, + 838A5783F9B9D0893CDD9451EDD31397 /* FBSDKShareOpenGraphValueContainer.h */, + 1C60224763E3C2A87236B7822581C2E3 /* FBSDKShareOpenGraphValueContainer.m */, + 26E4139BF26073C2C3389F61DFCDB889 /* FBSDKShareOpenGraphValueContainer+Internal.h */, + 1A3FC4F2EC4483F6F484D6DB8CF3B599 /* FBSDKSharePhoto.h */, + 24FF0A63CFA405437A9BA0476F86489B /* FBSDKSharePhoto.m */, + 4B0A9291DC8444DE10CB9E94265194B7 /* FBSDKSharePhotoContent.h */, + A7DF549436CBBC1BF579D1131D662C54 /* FBSDKSharePhotoContent.m */, + 1FEAAFDAB2DF9359E13E0FFDBED277AC /* FBSDKShareUtility.h */, + 0A3A6728006EC2ED0E4677490083314B /* FBSDKShareUtility.m */, + 50622BB6317A23A9C92E54BFB8A6C955 /* FBSDKShareVideo.h */, + A30F8D5345C024B7F0DC129DAB158D8D /* FBSDKShareVideo.m */, + 48FF773660157C72D2948659A43FCDB0 /* FBSDKShareVideoContent.h */, + 77E2B65A9EDC94C1380C89D9FC141F56 /* FBSDKShareVideoContent.m */, + F366E022DF0315DA5F4EEFF342684D89 /* FBSDKSharing.h */, + 4CF106BBE0C8EF0576727B11F7FE3B96 /* FBSDKSharingButton.h */, + E0172A9E9DB2BC11ECDA9D492BFD0099 /* FBSDKSharingContent.h */, + B813514AA2954C9C2FFB8CB179FFC9A4 /* FBSDKVideoUploader.h */, + 483DFE460F7A1A3870F597F3B4F737B8 /* FBSDKVideoUploader.m */, + ECBA29B9A849877869B9A4732C61CA50 /* Support Files */, + ); + name = FBSDKShareKit; + path = FBSDKShareKit; + sourceTree = ""; + }; + A7C5C884DE517F536CC7AC3015313453 /* CodFis-Helper */ = { + isa = PBXGroup; + children = ( + 02592C9CD83FCFC7BD780FC236FF0CFB /* CodFis+Helper.h */, + 285B548BB29D488569633F3D082BC1DB /* CodFis+Helper.m */, + F7948B4533BB9E4DFA58430415073AF9 /* CodFisResponse.h */, + 5372DF5CC5195112E6CD914D05D9264D /* CodFisResponse.m */, + 228536A01037E8312423922F7766D0E0 /* ResponseConstants.h */, + 7D4AB82587E4AC77457C4D746391B27B /* VatNumber+Helper.h */, + 7103AABA737EFCB6D7B9C4B172135CD4 /* VatNumber+Helper.m */, + 4CC17719B21BF5129D3FCD86E9C3C5C3 /* Support Files */, + ); + name = "CodFis-Helper"; + path = "CodFis-Helper"; + sourceTree = ""; + }; + A7FCD746A16306431BE0A5E126E5E340 /* Support Files */ = { + isa = PBXGroup; + children = ( + 14113E669F3052E11E75350ADEE28170 /* Info.plist */, + 920A67854406C95D0115F3D77BCEAC35 /* Specta.modulemap */, + 7C785FD36A7D3E9987ABC55B0B3F5429 /* Specta.xcconfig */, + 6A48D53680E9CAF8086B45CEB4234203 /* Specta-dummy.m */, + C032298971C4C4C93DCD56F97A41CDFB /* Specta-prefix.pch */, + 6C45857AE11D8D57F100DFDCD0AC368C /* Specta-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/Specta"; + sourceTree = ""; + }; + B299EAFD24482971C440F7004865E366 /* Classes */ = { + isa = PBXGroup; + children = ( + E6D7667B68CA00BFCEC31F95535910F4 /* PNObject.h */, + 3F053212722F80C0D67E774DAF857B3E /* PNObject.m */, + 0152FE63F4F86AD36C49C5D7CEFD1568 /* PNObject+PNObjectConnection.h */, + 8FA1D1D9C748E3D8D6949BBD809B5617 /* PNObject+PNObjectConnection.m */, + AAF0374EE1B643C8AC457809FE4628BD /* PNObject+Protected.h */, + 30EC7545AB73154DEEF61A6F98894D7B /* PNObject+Protected.m */, + CF092C5177F386FFE41BEA073ED1B8A0 /* PNObjectConfig.h */, + A5DC8F7247FA00CA3E9E5112C42B533B /* PNObjectConfig.m */, + 8EA7B07CAFCD14E7C1D5C579D3F188B1 /* PNObjectConstants.h */, + 24145E51A9C65F93CC898795A8F17DA6 /* PNObjectFormData.h */, + F50B815B81700631FEAFF4599E17F1C4 /* PNObjectFormData.m */, + BA9FD10F3C3FD5BAC00E2B6DE68CD263 /* PNObjectModel.h */, + BFC05B7D5009D4910049FD1FDC93E80C /* PNObjectModel.m */, + 38C9940BB9C1C127DCF1EAD73C320D23 /* PNObjectUtilities.h */, + A1328A189405DE4B449924ECD32352FA /* PNObjectUtilities.m */, + 6A57E61832BE8CA9C18F21623A7C0F76 /* PNClasses */, + 7C7ABA9FBD9121BE3960C4B5CE991FF9 /* Vendors */, + ); + name = Classes; + path = Classes; + sourceTree = ""; + }; + BAAC0DFB5FBF408E247CBDA1F085BAB6 /* RZDataBinding */ = { + isa = PBXGroup; + children = ( + 8AB29F6BE93103430522C601D8D63A1F /* NSObject+RZDataBinding.h */, + 8E62A237D09F9F807045978E75362330 /* NSObject+RZDataBinding.m */, + A8508A663B95FE29B0DBF5FF60B57224 /* RZDataBinding.h */, + 802C412C36630617E4BC385C2B5B25F9 /* RZDBCoalesce.h */, + E720842117D9D8061E6C4C9EA3EAD20D /* RZDBCoalesce.m */, + C69CBC0D7F9D935EB4759A24F6C3380C /* RZDBMacros.h */, + 71985A0B67ADCA8ADF73DCE79B242C58 /* RZDBTransforms.h */, + CCBB9FB1446D48FC189D8A6046459E40 /* RZDBTransforms.m */, + 9B1AA358AB64F308E218C1BD98E27736 /* Support Files */, ); name = RZDataBinding; path = RZDataBinding; sourceTree = ""; }; - 9A22F8CF5DC6D3D97853D43823D8430E /* AFOAuth2Manager */ = { + BF48DBCF3291C126C110C01845BE247A /* iOS */ = { isa = PBXGroup; children = ( - ABD56AD995873D9480E181B6857BE821 /* AFHTTPRequestSerializer+OAuth2.h */, - 9F45814A2813D037FCCA1A533BD7D25D /* AFHTTPRequestSerializer+OAuth2.m */, - 2320D1F05299B2011F0E4F45CE3B5EF3 /* AFOAuth2Manager.h */, - 9BCE67703CD7B3CC6762F1498BB79A72 /* AFOAuth2Manager.m */, - B32CDBFFDD02BA6B9E6B850FC67515E7 /* AFOAuthCredential.h */, - 6BE5E7F75FB2F7E5DECAA1350401BEB4 /* AFOAuthCredential.m */, + 7C6AAE154B8D7E43C9FF852C027B2D0F /* CoreGraphics.framework */, + B3F971B8C42D1C60539CB77C80F88F76 /* Foundation.framework */, + B9A9B9B7CDEB799A052887677D38F5A7 /* MobileCoreServices.framework */, + 3255EC41C0D19A0EBFA08A3A87006FFA /* Security.framework */, + D7A21AB105706E93C66C01CA7EB92473 /* SystemConfiguration.framework */, + 25E2957C098A975DDD956F4030322CDB /* UIKit.framework */, + 044012B17A5A48E36B81569A4004FE53 /* XCTest.framework */, ); - name = AFOAuth2Manager; - path = AFOAuth2Manager; + name = iOS; sourceTree = ""; }; - 9A46E3BA289FA0FB3B16D70478B26CF8 /* PNObject */ = { + C0E8B7C29E0984EFF664CF5D138BC192 /* NSUserDefaults-AESEncryptor */ = { isa = PBXGroup; children = ( - BEE4D620B5F15D889FB8AA40F1E1DA1C /* Pod */, - 59A0209752E95753A38DF1E9F2119A8A /* Support Files */, + 388D415744984E3D384F5B3D3EF63E33 /* NSUserDefaults+AESEncryptor.h */, + E24F40FE80C225EB5752C57E665BD1EC /* NSUserDefaults+AESEncryptor.m */, + 857371500A222E1BA5E372C94E88D2F6 /* Support Files */, ); - name = PNObject; - path = ../..; + name = "NSUserDefaults-AESEncryptor"; + path = "NSUserDefaults-AESEncryptor"; sourceTree = ""; }; - 9DB70720C025C739160B0840E686FA5C /* Resources */ = { + C3D048CDD71FBEC887091DA6BEAECE24 /* libsodium */ = { isa = PBXGroup; children = ( - 8D92603F43B0B56B64BAD2D822D21D20 /* FacebookSDKStrings.bundle */, + 518EEF13F00BD7DE3313C5C837C1518B /* aead_aes256gcm_aesni.c */, + B04967A1795DAF6F76BAAD59C9A9FDF8 /* aead_chacha20poly1305.c */, + 57B74DD83697A809FE906046BF527C02 /* after_curve25519xsalsa20poly1305.c */, + 50F150B1464EB72E6AA842B3A75027D3 /* afternm_aes128ctr.c */, + E4D922852E7575407D9228623D78CA31 /* argon2.c */, + 86FA6874012C45DE02E304D0DE5D1520 /* argon2.h */, + 3734EA88DD8E8BA31CF93221C5070660 /* argon2-core.c */, + 0E38C4A8D9227857B26406C451512BF7 /* argon2-core.h */, + 41A1C8EACC834BF09C5C71CC2771EE38 /* argon2-encoding.c */, + 57681418D92C93CC771883C2322802A1 /* argon2-encoding.h */, + E687CA9B351072625E2328E9146EDE77 /* argon2-fill-block-ref.c */, + 23A1847135F88B680E64B7DDFC545D5E /* argon2-fill-block-ssse3.c */, + C77BB3D1C64B4417F32A2358D49ADDC1 /* argon2-impl.h */, + 2BE054E830EA34B346DAE1C3E6AA8F25 /* auth_hmacsha256_api.c */, + B950AABBC801567158D2BF8D31E92210 /* auth_hmacsha512256_api.c */, + DCED4701EEE821E673E8C958CB5CC3BE /* auth_hmacsha512_api.c */, + BE13A11A01BA8100F362170CE0D8700D /* base.h */, + 341F4CDBE15560352E1D0D5A086EFE0E /* base2.h */, + 49C98BB1DC3F7EEF31077D3F8D6DB1C3 /* before_curve25519xsalsa20poly1305.c */, + 1185DC05EC18189F1BABAC4CC887CC6D /* beforenm_aes128ctr.c */, + 99C9577C00F0AE4A3D5AA53F4881D43F /* blake2.h */, + E89F32A732B2D0C5F41C8AD2FA48C285 /* blake2-impl.h */, + 41C95340DBD76DAED311D9F5863C3DCC /* blake2b-compress-avx2.c */, + 8FE46C7BBAABCF157AF36E0405422FA8 /* blake2b-compress-avx2.h */, + A6AC0451F8C86129CB34B2F89194768E /* blake2b-compress-ref.c */, + 01A1CFEF78B99D2EB2C0D0C547470F33 /* blake2b-compress-sse41.c */, + 875E6B03CD79A3425F08E9DB93C945B3 /* blake2b-compress-sse41.h */, + 7768E001D2BDE051D82C4CEFFBB25F66 /* blake2b-compress-ssse3.c */, + 579B8A077A2DF5BBCB58EC0AA044E585 /* blake2b-compress-ssse3.h */, + 6AC2BE163C37468F22BA5BEEF8B6C789 /* blake2b-load-avx2.h */, + A852BC8B4776918EEB4824ED482BCEF9 /* blake2b-load-sse2.h */, + 3966AA9EBFD5A1105002E282CE232C4E /* blake2b-load-sse41.h */, + 0D794E6D638C16A75FDA67F290D0D109 /* blake2b-long.c */, + 6207E3A4EF0E019A960B705D0942B165 /* blake2b-long.h */, + 60F1C64996C747E664DB8EBD3235192A /* blake2b-ref.c */, + C6262856C7A81BFF7E5225BDA0B4909A /* blamka-round-ref.h */, + 1F68D5873918BD79E19645103A563A0F /* blamka-round-ssse3.h */, + 9BE341DCFEC9AD1C1B9A7CA1753F9D21 /* box_curve25519xsalsa20poly1305.c */, + 3E01992BBE68FFAE711A7E6FD169757D /* box_curve25519xsalsa20poly1305_api.c */, + 4D7205E65B96CF46A23004AB1C5B5100 /* box_xsalsa20poly1305.c */, + F2CA1DA39E7A1F8F613D955D31898642 /* common.h */, + 7813CDF0C3EC4F003101BCB96365A2ED /* common.h */, + 83AF711E04B61906FB63D077DE8337BF /* consts.h */, + 18BF72D4C69FD7E83F85B15C53E29820 /* consts_aes128ctr.c */, + 7F7B22AA36B3BD9F17C4C0705CF12357 /* consts_namespace.h */, + 1BE8AB908E463F31752FBBD60DD76E63 /* core.c */, + CB057F45FF206F5D26F30060813FC87D /* core.h */, + 479DB5A36B858CCA9817F1E3583FF345 /* core_hchacha20.c */, + A2D14FE4FBE1078C1FA7F126EA698B90 /* core_hchacha20.h */, + D92CD4E014F6D1A89C84F39A9C80EA72 /* core_hsalsa20.c */, + 1DCD7E7D07B9D120D371FEA3626C686C /* core_hsalsa20_api.c */, + 47B88A29488F570668211F90DCBE5FA6 /* core_salsa20.c */, + 91E33493F7A80F9D7F4813B8D0B88829 /* core_salsa2012.c */, + EB7A6B14D5BDD7E1AAD3F21B0457CC03 /* core_salsa2012_api.c */, + 55077EA82B4A4601E54DA49E11BC3F60 /* core_salsa208.c */, + C602CADC3496B7A2E5875BAC88F6BD3B /* core_salsa208_api.c */, + 85B10CA326FF2FD35EF5A602B9AEAEB4 /* core_salsa20_api.c */, + A2F10B150ECF113CC56C93A323CCFBEC /* crypto_aead_aes256gcm.h */, + 60E922997ED6631762CAEEBA661DF914 /* crypto_aead_chacha20poly1305.h */, + E2C380E1A916CAF35DD010FD9E203391 /* crypto_auth.c */, + 3D285934B6DBD43A00EDE3503B8399A1 /* crypto_auth.h */, + CB8CFC655A2BF7C580D22DC02AB6A409 /* crypto_auth_hmacsha256.h */, + 56CFA1A1AD0B6A6E7F05164C92B3962F /* crypto_auth_hmacsha512.h */, + D0BE611DC80CB9540FB5C597F196F84F /* crypto_auth_hmacsha512256.h */, + 07E536E16F98D9B2ED08C94CED9AFD14 /* crypto_box.c */, + 957AFDB8BD8EA616C31739F4B1A9B1EB /* crypto_box.h */, + E452665D670719ACA0C800A2F811FBF6 /* crypto_box_curve25519xsalsa20poly1305.h */, + DA68F7807531167018EEB8798896E3EF /* crypto_box_easy.c */, + D6F58E2F408071102057A748726C6E2A /* crypto_box_seal.c */, + 0AAA897EBC8E9C3DE05ED335B04D9DD9 /* crypto_core_hchacha20.h */, + B907D2C356BBE8843BECAD51F193AB90 /* crypto_core_hsalsa20.h */, + 7CA83F51E429C86BEBF46D452DEB410D /* crypto_core_salsa20.h */, + C7180E7B46429FF03953610E1600E40C /* crypto_core_salsa2012.h */, + CDB887D162DC856B1CD35351698FF94B /* crypto_core_salsa208.h */, + 5A789B5A178E915A14CD7CBDF208E48D /* crypto_generichash.c */, + 9BB60BF55A07EC800EF01404CD5FE4EF /* crypto_generichash.h */, + 35A0CF602ECBAEC1A59095AAE8EC925F /* crypto_generichash_blake2b.h */, + 0B47AF550B5FAB96AAFAF54DC988934B /* crypto_hash.c */, + 6C33EA17F7DCD61230EE604FC58195C3 /* crypto_hash.h */, + F57235CC6EF29FD3FAA03BF4A0CABF94 /* crypto_hash_sha256.h */, + A6E4D42384B53C711693938C29427659 /* crypto_hash_sha512.h */, + 514B539AFFD475BB369A73AB852B806F /* crypto_int32.h */, + 0415454567E46D343D3B4C4040FEC1CA /* crypto_int64.h */, + 2B2979A34E7C7951279CDA5F0B958884 /* crypto_onetimeauth.c */, + 99210DD3D3B66A3805451B1DD1AA1B72 /* crypto_onetimeauth.h */, + C9EEEBD186B60B1BD450BAF71912A5E3 /* crypto_onetimeauth_poly1305.h */, + 11451432C5B71747DA2ECF3901BA2D5D /* crypto_pwhash.c */, + 15015DFCC29B25D638AD04E1301BC210 /* crypto_pwhash.h */, + 72E136993C21623328373DE0D20F2FF5 /* crypto_pwhash_argon2i.h */, + 85AC055C944A995991C9C5989AEBA735 /* crypto_pwhash_scryptsalsa208sha256.h */, + 0559D8AB166E5B03F733FD6251BDDC10 /* crypto_scalarmult.c */, + 5B8AD6EEC3134E59723A3D25848F7EAC /* crypto_scalarmult.h */, + F017C6B032BF9A5C5324CD4B2EB02982 /* crypto_scalarmult_curve25519.h */, + 6E71BC8489DA5D9723A0A66434AA24C9 /* crypto_scrypt.h */, + DDEBF8D1605DA7E944CFCF9976E362EA /* crypto_scrypt-common.c */, + BC91A1BFACF53402D243EC088AE18769 /* crypto_secretbox.c */, + 68A4C2B0532AE666074ADF1C47DB678D /* crypto_secretbox.h */, + C7AAF546572A0FA3177DDC72549ABA4E /* crypto_secretbox_easy.c */, + 73D71496E8F98C7EB11F9DE085BEF59C /* crypto_secretbox_xsalsa20poly1305.h */, + 3A911FC4DF132AFEEB56163CF834B2F1 /* crypto_shorthash.c */, + 562203D2D17EF8600EE10FC44583B09A /* crypto_shorthash.h */, + 1C0DFFF83F4507D170E981C64A6184A3 /* crypto_shorthash_siphash24.h */, + 733E47ACEF2C887832A7511468104B53 /* crypto_sign.c */, + E1544F5B77AE1E696AE2BB5CBDA317B8 /* crypto_sign.h */, + B2A6593883D83EF983DB219C3D1F76C0 /* crypto_sign_ed25519.h */, + DF828634962B891FB4C392E83A135B99 /* crypto_sign_edwards25519sha512batch.h */, + F487F498EE80708E94B387091EB01B08 /* crypto_stream.c */, + 2A7D3A501D3FC2037F8B254E6E62AB45 /* crypto_stream.h */, + B17BB7DB1FA922C37659BE122B47517E /* crypto_stream_aes128ctr.h */, + D288699BE618D14F3FE74F21F00EF3F9 /* crypto_stream_chacha20.h */, + D2CB4472710833D722621420637BC5C6 /* crypto_stream_salsa20.h */, + A4BFC4C5BC7C871BB31C63247EE3C3BB /* crypto_stream_salsa2012.h */, + 714A00D3913DDB7143F1BBE6DDF8A19F /* crypto_stream_salsa208.h */, + 463CE79B4901A3CF1976C41C0CA3EBF5 /* crypto_stream_xsalsa20.h */, + 3FF8EB2108DC766DB0E4D3EFB013CB99 /* crypto_uint16.h */, + CE343EFBEBEDEB4231E374D12FBE124A /* crypto_uint32.h */, + BC69655BA41C0CCFDD1E607682AB9425 /* crypto_uint64.h */, + D424368B8DFE2095A056373A9B5D30B8 /* crypto_uint8.h */, + CEF481FB7D66D3823A91486DB2D7B7A9 /* crypto_verify_16.h */, + 2864B8DF1592839220AAA73682A09796 /* crypto_verify_32.h */, + A6A153905DBD3FA069D9E52DEB08824A /* crypto_verify_64.h */, + E5B371E06ACD7EC85EEDE466C6CC3655 /* curve25519_donna_c64.c */, + 0B4B48B1DE8F28D11E7A265EE21D1E4B /* curve25519_donna_c64.h */, + B594EB619E659F243A8E562D53B2A3BE /* curve25519_ref10.c */, + 9AE298916ECA941BC918CCCCA61E27CE /* curve25519_ref10.h */, + 03838017D67C45A63FE6B9D17435810B /* curve25519_sandy2x.c */, + 2B8FEC69FC0232C0ACCEA1AABF983C73 /* curve25519_sandy2x.h */, + DF059528FD36234089AD978F643ACC24 /* export.h */, + 3D5E00F20284CA0832166DE7BE826067 /* fe.h */, + 6355AD462745330D2A6CAA690F0250A4 /* fe51.h */, + 3B0201EEF902280B29393B8FCDE974E5 /* fe51_invert.c */, + 1593AFA04EE3C0974D16A06F2D543696 /* fe51_namespace.h */, + E24E3A028164647B83733F1BFF7B4265 /* fe_frombytes_sandy2x.c */, + 14C763B80EE6F2DF8962FA6B9DD21A1A /* generichash_blake2_api.c */, + 880AAA8A39FEA50A716D0BB6C54E9B99 /* generichash_blake2b.c */, + 4D6D3ADE4C608E25DF2C86A7CABC254E /* hash_sha256.c */, + F3D06BEEEAC3C56BCAE6C2C139107AA1 /* hash_sha256_api.c */, + 0AA59EF62A51AFA9A1DB0349C80A5272 /* hash_sha512.c */, + B684987C2C3EC3FA8B28FAE91CF0AB7E /* hash_sha512_api.c */, + 205AA1333D7DC8B31CFA7945F8C3DE87 /* hmac_hmacsha256.c */, + 75A7CC666FC7B6987C9D5BB30528D75B /* hmac_hmacsha512.c */, + 6F915570C0840CA77B7CB9DD1C12E6F3 /* hmac_hmacsha512256.c */, + F6441029547DA66B05FBD8C65ACAEA4E /* int128.h */, + 94F76EE92291F93F1DA6A6B5ADBCB191 /* int128_aes128ctr.c */, + F0F9FE3CFA1726202D8CFD6C418E960D /* keypair.c */, + 0C90D8DAA5DFE6742A10654897C1EF4F /* keypair_curve25519xsalsa20poly1305.c */, + 57DA5C7A39F26C8BADA43C1CF311E4A4 /* ladder.h */, + 54EE9E442BB6CE39737ABDC46A0A48DD /* ladder_base.h */, + CAF3D682324C46426C322587B746DE60 /* ladder_base_namespace.h */, + 04DA0ADC65744037A51E4D519D3A4C3B /* ladder_namespace.h */, + 7F2D79206185068B562331187225F683 /* mutex.h */, + FB332713BC2F79FDE8DD50F3EFE636DC /* obsolete.c */, + 48E228BBADAA843F8B59EC2DA33EB927 /* onetimeauth_poly1305.c */, + C524BEBA402E93543088F15203B4B0C2 /* onetimeauth_poly1305.h */, + CA67AF4FDC4C269F4CD6362224C40D41 /* open.c */, + E78122EE1C4756D3354453266132CF53 /* pbkdf2-sha256.c */, + 5F6E80DAEC9AC48215F95437485AC6B9 /* pbkdf2-sha256.h */, + B0D3D1906790496F89ED4761B2880803 /* poly1305_donna.c */, + 63BEEFCC32CEF5691C53AB392C34894E /* poly1305_donna.h */, + 3915C75350E3544A6F43EC67B34DEBA0 /* poly1305_donna32.h */, + CDE739A668DE7EFEE7F99596E8DF54CD /* poly1305_donna64.h */, + 7AEAEC8AD3A0619B37F02EA43D0FEDBF /* poly1305_sse2.c */, + 90C1E909B14A6BB87A697D58CFF0FD9A /* poly1305_sse2.h */, + 06B953075F96D49A5E46739DE9C4718A /* pwhash_argon2i.c */, + B61568E383DA567FF5DC64991D8FFB3A /* pwhash_scryptsalsa208sha256.c */, + 5459CF8273BEDF198F053FB8F61A1034 /* pwhash_scryptsalsa208sha256_nosse.c */, + 6CB859B5742059E180407E1494613CA7 /* pwhash_scryptsalsa208sha256_sse.c */, + E0B4ADCE34E51C8556C26F16935097CC /* randombytes.c */, + 5351CBCD639F6914F19C9558AACD2F49 /* randombytes.h */, + 05E0F4E09D09D6C5B584983A1D362DE7 /* randombytes_nativeclient.c */, + 2D0A3FBC5B749830D429C33651EC4115 /* randombytes_nativeclient.h */, + 71D92E5C63ACC17FE083CA3C46A6515B /* randombytes_salsa20_random.c */, + 83756E5976593FF714A08D78FBBF0AF8 /* randombytes_salsa20_random.h */, + 8971A16ACA6C4BC1A5ED20A04E205105 /* randombytes_sysrandom.c */, + 839E691140CC97139C568B1EA3F69E1D /* randombytes_sysrandom.h */, + 110D409C286ED83CACC871BFDDAEB683 /* runtime.c */, + C22CD714CA3834D585CF9E37B6718597 /* runtime.h */, + B1D815ACD30E35E02664182C9441A0B2 /* scalarmult_curve25519.c */, + 3486B8C549C079B63B47C4C44CC78231 /* scalarmult_curve25519.h */, + 0A849045544A8CE8F15A83B8F6D2BB04 /* scrypt_platform.c */, + 9D8A5F5C709DC303EA1FF3575EED2894 /* secretbox_xsalsa20poly1305_api.c */, + 2498AF84711C2401D7D008A9132B7AB3 /* shorthash_siphash24.c */, + AF4FFBF733CC2851795F347E39E6FC8F /* shorthash_siphash24_api.c */, + 7C0D317A4C2BE99DB2820482D1EAA9D7 /* sign.c */, + 4202D15E1D6BD57DA2119EB5A76FC3D6 /* sign_ed25519_api.c */, + 2357906017436F5C51009A722490396B /* sodium.h */, + 5FF73C120486B256A84743F63F673833 /* stream_aes128ctr.c */, + 1A59CDA296ABAF40D873FD10F4DC8C99 /* stream_aes128ctr_api.c */, + 54349C2A111801AD356A28301D985701 /* stream_chacha20.c */, + 264198F97557502B32A396FE41B08E07 /* stream_chacha20.h */, + 5F806B5C30B750914483A6CC8C775060 /* stream_chacha20_ref.c */, + F762F13D9D73B3347C92B3395E21ED97 /* stream_chacha20_ref.h */, + 3A79257FA928887697AF40D77207387E /* stream_chacha20_vec.c */, + 544AEB5510BE2FDE2C6681C0DED40B2D /* stream_chacha20_vec.h */, + A57D1CCDA0A24B3A8E6B45A79C761CB9 /* stream_salsa2012.c */, + E78B9D8ECEE416EF8A4A67CFD51CA357 /* stream_salsa2012_api.c */, + 54D46559E281440FAB67996E24BBDF07 /* stream_salsa208.c */, + 3757C2C7E056EEA34BA4575F3DA0B50B /* stream_salsa208_api.c */, + AD7F63152F12115E68C396CA45BDA0F2 /* stream_salsa20_api.c */, + 99F825781FC1217AF478A27A6EBD535D /* stream_salsa20_ref.c */, + 11F02217724E5D7412C3C03E2022170D /* stream_xsalsa20.c */, + 2980EA326687D838F2615DC7B45482FE /* stream_xsalsa20_api.c */, + 82EC68F64F30FC40DE6C17C9D12F0C2F /* types.h */, + 52EFE125A976D9D12C89B892163BDC76 /* utils.c */, + 7B6E46044099029F650EED7F64C0D020 /* utils.h */, + A222E367C792B4F40ED1E1104136B1D4 /* verify_16.c */, + DD383E36BC4E87A21294B79DF951B288 /* verify_16_api.c */, + D1C98B0BB1E433A8BB66493688B7DB6B /* verify_32.c */, + DD848075E1397A84030DB379FC8D48FD /* verify_32_api.c */, + 7594C78ABCFD5028C7180FE29A00C7F0 /* verify_64.c */, + 8FD8B8DC39C64F6B50D43CDA15D39E02 /* verify_64_api.c */, + 90E7E4DBAC5032500459D5F1C75668C2 /* verify_hmacsha256.c */, + 00285799494E3216269F32661CE5FB56 /* verify_hmacsha512.c */, + C78F32BE23AC499328301A516CBAA98B /* verify_hmacsha512256.c */, + 7B34526A707280B8801960DD95AC0490 /* version.c */, + D63EEB322DB349FAB90669ECB3F0B3A6 /* version.h */, + 768517928C277175CC9CA99633F2B602 /* x25519_ref10.c */, + 73641C52ECB7669B837CCFBB3842524F /* x25519_ref10.h */, + 843CD17C791739DFCA383A8632114309 /* xor_afternm_aes128ctr.c */, + 3C8F33738B0CC4C3EFB3054384516158 /* xor_salsa2012.c */, + 44E5999687853598145768A78C16B2A5 /* xor_salsa208.c */, + 55FA2DCCC07A15D1CCC42A68194C13D6 /* xor_salsa20_ref.c */, + BC1A6EC680CBC644F8357B73BDFA5D93 /* xor_xsalsa20.c */, + EC4235A0FC7A034989BB1EB9BA159773 /* Support Files */, ); - name = Resources; - sourceTree = ""; - }; - A15562CCFBA0EFC11186F256F79C1AFC /* Security */ = { - isa = PBXGroup; - children = ( - 4395A027B3CE456B3C4352C887C14A63 /* AFSecurityPolicy.h */, - 902A293B4E31AE244167F6393A171793 /* AFSecurityPolicy.m */, - ); - name = Security; - sourceTree = ""; - }; - A2CE5C41228C2E034623208FCE37C7A0 /* Support Files */ = { - isa = PBXGroup; - children = ( - C8C3DA1B6C329756303D88D21DBA86B5 /* DJLocalization.modulemap */, - 5992AEA8692665BE5B3873BF97E96538 /* DJLocalization.xcconfig */, - 4D7E2E6BFACD8E6C0BA311DEAD667E7B /* DJLocalization-dummy.m */, - DE546A1DA34E7FB04608CEC3F6C77D75 /* DJLocalization-prefix.pch */, - D5D753224259A552DF778BC3BFC9095B /* DJLocalization-umbrella.h */, - B056B9C12B456A7D1726FD32E13DCE05 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/DJLocalization"; - sourceTree = ""; - }; - A4804DFF5E7B684E7D0E9DF2157A1805 /* PureLayout */ = { - isa = PBXGroup; - children = ( - A3F6DC211ED62B6CF3ED8B3CFE443DD5 /* ALView+PureLayout.h */, - 1DFEE023C1812D2A21356E8492D857BE /* ALView+PureLayout.m */, - 470F8BAC94E5525E4201E26F04D57F9A /* NSArray+PureLayout.h */, - CCAD480BC0AC8CA507664714A8642256 /* NSArray+PureLayout.m */, - 2F78BBE39183C91646E195FA6EFC0D57 /* NSLayoutConstraint+PureLayout.h */, - B63AC222718E4159E2F01CF58FFA8FE8 /* NSLayoutConstraint+PureLayout.m */, - FA02D34EE4E648228B5212EB0D4A987C /* PureLayout.h */, - BFD9908703965E4230F2F29C4149C622 /* PureLayout+Internal.h */, - B19653E8D4F25B74BAE1E3F242FA765B /* PureLayoutDefines.h */, - 6B1B02B8EE6CC0A6547547EBB09CEFA7 /* Support Files */, - ); - name = PureLayout; - path = PureLayout; - sourceTree = ""; - }; - A76E320B66740C7ABD08A96ECBEF200A /* NSURLSession */ = { - isa = PBXGroup; - children = ( - 4E8FC4EDE5FEE97057A1337065B935BD /* AFHTTPSessionManager.h */, - 0CC10C3FBD06C3303FD79287F2B41FAE /* AFHTTPSessionManager.m */, - 19165B04181A6DDCFE66C457ADDBC79D /* AFURLSessionManager.h */, - 4705E496368280532425B75E481C0162 /* AFURLSessionManager.m */, - ); - name = NSURLSession; - sourceTree = ""; - }; - AE40EDA7CA5C0BC60505D2F18ABD8D8A /* Support Files */ = { - isa = PBXGroup; - children = ( - 7B956A37BE42C921B7B5B418A1CFF9FD /* Info.plist */, - 6EBAB20C09497C22C81A8FF6BB165D07 /* NACrypto.modulemap */, - 7D9973058360ECD5D21CEC595A24C74F /* NACrypto.xcconfig */, - D884498DAE38ED9E68E5921E2E7A7CF7 /* NACrypto-dummy.m */, - 201196E76C82C5A78FC16C11B3D341F6 /* NACrypto-prefix.pch */, - 6A7E143F23E02AF74374543168136FF1 /* NACrypto-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/NACrypto"; - sourceTree = ""; - }; - B4651ED87E95272E96862474E4EF54EF /* nv-ios-http-status */ = { - isa = PBXGroup; - children = ( - 1F24275E6B98CE5911FF22E25D7F8D21 /* HTTPStatusCodes.h */, - DBD6C94CB1FF71899161DE01DF11861E /* nv_ios_http_status.h */, - 909127C04C9F68369FDDF7AC1768068D /* nv_ios_http_status.m */, - BEA1429840727C7A3357E6F4C942BB31 /* Support Files */, - ); - name = "nv-ios-http-status"; - path = "nv-ios-http-status"; - sourceTree = ""; - }; - BD8AB5DD8D475C491684DC2663D2BAC5 /* AFJSONResponseSerializerWithData */ = { - isa = PBXGroup; - children = ( - 08BD77CD4E65007F1A6E6E8908AE9D16 /* AFJSONResponseSerializerWithData.h */, - CC93CFD25F266E66CB1545F7DA0C1BF8 /* AFJSONResponseSerializerWithData.m */, - ); - name = AFJSONResponseSerializerWithData; - path = AFJSONResponseSerializerWithData; - sourceTree = ""; - }; - BEA1429840727C7A3357E6F4C942BB31 /* Support Files */ = { - isa = PBXGroup; - children = ( - ACE24F4C2CEF0BE6389EFD03D1C5E76C /* Info.plist */, - 8CC825D59CAE2D0EF90062FC446133EF /* nv-ios-http-status.modulemap */, - EB9B61EF322197E5D966BE5F84EBE1CD /* nv-ios-http-status.xcconfig */, - 6F28DEA1D3C84F92911A885ED4AD7E5D /* nv-ios-http-status-dummy.m */, - 3AA9A6A64349C16EE3565915678E22B1 /* nv-ios-http-status-prefix.pch */, - 0461A4EE04990301C6BF4B7C75AF835F /* nv-ios-http-status-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/nv-ios-http-status"; - sourceTree = ""; - }; - BEE4D620B5F15D889FB8AA40F1E1DA1C /* Pod */ = { - isa = PBXGroup; - children = ( - 21A08E079840181F817984994DC01E9B /* Classes */, - ); - name = Pod; - path = Pod; - sourceTree = ""; - }; - BF2884B5DBA6AE24D920A134860D3575 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B62B98E443A7D9503937CC28976ABBC0 /* AFNetworking.framework */, - A0E9392FE7C1A60C3C0E31FA7D3031C0 /* Bolts.framework */, - AFC3891042E13ED9AA3C81E6F95338E7 /* CocoaSecurity.framework */, - 107715DA2109DC5443D3C5ADDA388EFD /* CodFis_Helper.framework */, - 1F7B3C80D29036D327C6191D8F66FDD7 /* DJLocalization.framework */, - 2A0DAFE7EAA74CDA4509C819F622D904 /* Expecta.framework */, - 19BB647A58986E23B794017A975F0D83 /* FBSDKCoreKit.framework */, - 7D7A982D5CB73D2064151B38F7E0193C /* FBSDKLoginKit.framework */, - F63C21A34E6100377F8BBBCEB5796306 /* FBSDKShareKit.framework */, - 81C2DDD36F5EEF22E199CFED43509885 /* FBSnapshotTestCase.framework */, - EA5075111E45B54376A836D368B06BEA /* NACrypto.framework */, - A38B57CA99C5DF5C8BA685471F3A311A /* NSDate_Utils.framework */, - 6C98AAD19E29CEDC56E1C5FC401EEBD3 /* NSString_Helper.framework */, - 4759D20AAB336BDBC3B9056107FA257A /* NSUserDefaults_AESEncryptor.framework */, - 2E252617A658E8D7DCEA1A6EF02DE6BA /* nv_ios_http_status.framework */, - 4184C06B684BB4F8446D92BC369E0BF3 /* PEAR_FileManager_iOS.framework */, - 5A1966363F904E7B4765D654759B77F9 /* RZDataBinding.framework */, - C41F4C3E30B9FEDB797BABEC7387D6F2 /* Specta.framework */, - 169EF9CEB6B169C2CE403B066621F7DA /* StrongestPasswordValidator.framework */, - 7269980DFC28D4F99B8326C002888699 /* UIDevice_Utils.framework */, - 87BA0507C7367020C868CAD32F6D2699 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - C37E667347F0A208CC2AE6556BA52E36 /* Serialization */ = { - isa = PBXGroup; - children = ( - 3303C18CB5C5CB2407FBCECBF4C44181 /* AFURLRequestSerialization.h */, - 1E4E61662505F2FCD990F997D856F653 /* AFURLRequestSerialization.m */, - 787BA5BD8C2B7E55A98E206B98E61D22 /* AFURLResponseSerialization.h */, - 8CFDB6D39967F8202C036BC533F95B45 /* AFURLResponseSerialization.m */, - ); - name = Serialization; - sourceTree = ""; - }; - C48831B34051D140CA1CA64E208777CF /* Support Files */ = { - isa = PBXGroup; - children = ( - 8B7CD3DF3B8E322019F4AF7C5A9B8945 /* Bolts.modulemap */, - 7CC080483CF13D4D5131303C05D1D231 /* Bolts.xcconfig */, - 60CB1F9499817DB3B81C5063CC8C7D8B /* Bolts-dummy.m */, - 300E8F2949B94235B1A764B0DF2F8D31 /* Bolts-prefix.pch */, - EED51664952A2448051EFDF412DCA673 /* Bolts-umbrella.h */, - 4609AE892A163DC4A0C82B777A4A81A9 /* Info.plist */, - ); - name = "Support Files"; - path = "../Target Support Files/Bolts"; - sourceTree = ""; - }; - C80F31A6118DDA2AC6F9A5EEF01FF822 /* AFNetworking */ = { - isa = PBXGroup; - children = ( - AD2A53DF2B6BCAB906EC72B573214E37 /* AFNetworking.h */, - A76E320B66740C7ABD08A96ECBEF200A /* NSURLSession */, - FEFD5DCA264C4C3796E0032FB3E6CD8A /* Reachability */, - A15562CCFBA0EFC11186F256F79C1AFC /* Security */, - C37E667347F0A208CC2AE6556BA52E36 /* Serialization */, - DF7B939C6AD1F7537F0C099748B0B1BD /* Support Files */, - 1D779F4C4F14873352019DC02FBDF8A6 /* UIKit */, - ); - name = AFNetworking; - path = AFNetworking; - sourceTree = ""; - }; - C9E834FCDE3FC6C4A024ED8E4FB23501 /* Expecta+Snapshots */ = { - isa = PBXGroup; - children = ( - C43F59E2A3FD4E0B586873A944225859 /* ExpectaObject+FBSnapshotTest.h */, - 560963BCCEC7A4C877B134897344605A /* ExpectaObject+FBSnapshotTest.m */, - E9A410A65C04B8BA3E8216E572498291 /* EXPMatchers+FBSnapshotTest.h */, - 536C23ADA0C6D380428BC6FD94DBB06B /* EXPMatchers+FBSnapshotTest.m */, - 313DD122E78067035D9FB9C72E65682E /* Support Files */, - ); - name = "Expecta+Snapshots"; - path = "Expecta+Snapshots"; + name = libsodium; + path = libsodium; sourceTree = ""; }; CA2A6C0A1068E1DAEA2579E47E971F66 /* Targets Support Files */ = { @@ -3467,201 +3796,290 @@ name = "Targets Support Files"; sourceTree = ""; }; - D5F4376B410BFDAC9D8D03BDDB365725 /* Support Files */ = { + CFF770E7B7A3A62E4882ED75FDE8CDCA /* Security */ = { isa = PBXGroup; children = ( - A536E514CD1C869388B4E93C76473A28 /* Info.plist */, - E7DF91A4306A923413DD07D3BB7AA436 /* PEAR-FileManager-iOS.modulemap */, - B9D18FDBCFE49F1D93A355C228E14565 /* PEAR-FileManager-iOS.xcconfig */, - 9EE7AA68499E8F596F53889595385C81 /* PEAR-FileManager-iOS-dummy.m */, - F52783F78B13E880458E627E937872DF /* PEAR-FileManager-iOS-prefix.pch */, - 1599782BA1B2F33B3538CA19A571A942 /* PEAR-FileManager-iOS-umbrella.h */, + 8A550324C03EF2E3C99BE6100CBACFAD /* AFSecurityPolicy.h */, + 5056E005BD9F6529BC54EE2CB3D3D7FC /* AFSecurityPolicy.m */, ); - name = "Support Files"; - path = "../Target Support Files/PEAR-FileManager-iOS"; + name = Security; sourceTree = ""; }; - D959217BD28328C3B904D9CB023ADC25 /* Support Files */ = { + D13373B02B4BD4F6D90FC05CE25946FB /* StrongestPasswordValidator */ = { isa = PBXGroup; children = ( - 11EAAA9B975169F72CF7D9C091F53D8E /* Info.plist */, - F160D8D33CE81082CC46F1CDA840C8EB /* UIDevice-Utils.modulemap */, - CE8F4F0D3D4122A214CCAA23AAA3E5F6 /* UIDevice-Utils.xcconfig */, - CD7AE99AD27F9AD19A61E8269260021E /* UIDevice-Utils-dummy.m */, - 7D2E1FFD9FA3D20EEB3C8F5197F5AC13 /* UIDevice-Utils-prefix.pch */, - 601074D15BBB17DE13E6B103DD07669E /* UIDevice-Utils-umbrella.h */, + 71F393D2B9738327F3496431A5C4D6A1 /* StrongestPasswordValidator.h */, + 8DE1E29CF49E37D57A2CF310F0B50412 /* StrongestPasswordValidator.m */, + 02DBA1999175EFEE81E2ECE1583E5F9B /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/UIDevice-Utils"; + name = StrongestPasswordValidator; + path = StrongestPasswordValidator; sourceTree = ""; }; - DE2AB3C9AA918012D0B8465FA993F2C2 /* NSDate_Utils */ = { + D135DEA0D188509543376277348252D6 /* nv-ios-http-status */ = { isa = PBXGroup; children = ( - F24DF231FB88391E68059E1465C4072C /* NSDate+NSDate_Util.h */, - 067AB9BD71C9ECF5DFF844EB8533AC24 /* NSDate+NSDate_Util.m */, - 7710E9352C8EF150F67C2A8037B7DDB3 /* Support Files */, + 8BA38EECEC2E0E1C649F30B76E10C231 /* HTTPStatusCodes.h */, + 705BB4C68B3714CFB89096DC1529E726 /* nv_ios_http_status.h */, + F9F74C1674BC531B7F40EDB8F1210703 /* nv_ios_http_status.m */, + FB19B0A4F41CC3B8A76C98C13C98D59B /* Support Files */, ); - name = NSDate_Utils; - path = NSDate_Utils; + name = "nv-ios-http-status"; + path = "nv-ios-http-status"; sourceTree = ""; }; - DF7B939C6AD1F7537F0C099748B0B1BD /* Support Files */ = { + D7F3C8905F2519801F3BE987FB8A3A59 /* Resources */ = { isa = PBXGroup; children = ( - 50B56FF6826C1313E3459183EBD53AEA /* AFNetworking.modulemap */, - BFCE8AB4C82B1CC3657B16381CD07DE0 /* AFNetworking.xcconfig */, - CCA3E88C46F7A5F1A3D0F25203E45792 /* AFNetworking-dummy.m */, - 55088D0601CF9A073F06D51206D4E8C8 /* AFNetworking-prefix.pch */, - B5EEC97E4D9DA6D5EC9237DF2250DA26 /* AFNetworking-umbrella.h */, - D261B87926546252BA6C8EC40A0CACD7 /* Info.plist */, + 641CC6CE77D1549A8CCA31A259F9C523 /* FacebookSDKStrings.bundle */, ); - name = "Support Files"; - path = "../Target Support Files/AFNetworking"; + name = Resources; sourceTree = ""; }; - E182179A0D4C411202D54AE68ED3A587 /* Core */ = { + E0508975D0738A9D4232828D8CE85A8E /* AFOAuth2Manager */ = { isa = PBXGroup; children = ( - D4032F926250CEB18C4A9764E768C6B5 /* FBSnapshotTestCase.h */, - 1A5A8FB22A33F31F84E0DFE2BB5D04E4 /* FBSnapshotTestCase.m */, - F50B06F339F9EE4A44CF63CD95C8C52D /* FBSnapshotTestCasePlatform.h */, - C462F435F525F193329733FE1B663B02 /* FBSnapshotTestCasePlatform.m */, - DDAB468A8E9108F8F2DAB190091FA177 /* FBSnapshotTestController.h */, - CEE915BA82F667F7139674785CFC1184 /* FBSnapshotTestController.m */, - 4936DFF5F014C24A4B927F5A7EB5012A /* UIApplication+StrictKeyWindow.h */, - 34F52B01A559958D6978BE901604F4C9 /* UIApplication+StrictKeyWindow.m */, - B7B824E2CACE0E0262691A6A9329FD3E /* UIImage+Compare.h */, - DEEABFE21FFE5A29514AE371D1A40FD1 /* UIImage+Compare.m */, - B3A3A36799B348C06733A7F09079873D /* UIImage+Diff.h */, - 6CA31C87A8840D1FE9F9D8B319438659 /* UIImage+Diff.m */, - E13118B37383E2CA9D1F6D865F9AB962 /* UIImage+Snapshot.h */, - FF3D098509B976E6D87BAD725A263284 /* UIImage+Snapshot.m */, + 76CEF9E6C887FF2B700003EFAFB08F62 /* AFHTTPRequestSerializer+OAuth2.h */, + BC2A9EED5978C249AA6B834A62256C5F /* AFHTTPRequestSerializer+OAuth2.m */, + D1F93850CC40845EBA866BCB99712372 /* AFOAuth2Manager.h */, + 2250FBDC9CCAD24D78DC214DB698C072 /* AFOAuth2Manager.m */, + 3A085B948AB13EA2AA87027B5C636FFB /* AFOAuthCredential.h */, + 639C868FD9013F7A62F9C843C244DC61 /* AFOAuthCredential.m */, ); - name = Core; + name = AFOAuth2Manager; + path = AFOAuth2Manager; sourceTree = ""; }; - E3A0A674EA66B0EFC9C29A8B1428DF28 /* Support Files */ = { + E1E466CC41AFC334E8AAB197E5FCCE47 /* Specta */ = { isa = PBXGroup; children = ( - ABB89100579ACA9017065F49F37A8B5B /* Info.plist */, - BB1E76A7FC292CF74CBBF09225BB812A /* NSString-Helper.modulemap */, - DA799E4B8F2F3D9E7F5DB27574EC711D /* NSString-Helper.xcconfig */, - FD44E7BC5A68440AB9E6A558934880B5 /* NSString-Helper-dummy.m */, - 428F9DAC75F4F0DE132AA5D2B92CF51F /* NSString-Helper-prefix.pch */, - 96F57B0A99DCBF0A8ECF1CADAD18AF86 /* NSString-Helper-umbrella.h */, + 75599B3B925DFD0D75E3C7548BF58B3E /* Specta.h */, + 83619F2BAD107A8280C7B6916BCA0A8E /* SpectaDSL.h */, + 66B219743D55E3128190F98CC4C3A29E /* SpectaDSL.m */, + 1C70075099F8A35F121E621E93974F4F /* SpectaTypes.h */, + 62E1587312189DD098CB834985C379B5 /* SpectaUtility.h */, + EAB8CB3F8F97841E61D3DD1709B8E7C9 /* SpectaUtility.m */, + 316FE2EC4081AA66E778A8FEFD766937 /* SPTCallSite.h */, + 4A208D5B035A30529CDE23C4225ED836 /* SPTCallSite.m */, + DF30221AF965033A7E6D37B0105398D3 /* SPTCompiledExample.h */, + 30FB5781FE8FFC1D3DE59FEE8F523557 /* SPTCompiledExample.m */, + 0EDCDB5295B914DFA07AC571A5CEDDB5 /* SPTExample.h */, + 2BCD928C8165C1C6590EB58BB103FDE5 /* SPTExample.m */, + 455672BB920BDD0C92D257A7B55C290A /* SPTExampleGroup.h */, + 55EA69A40943F629F212D1456DC9D1F4 /* SPTExampleGroup.m */, + 82B794CE2AB329B9119C1ABAAF912896 /* SPTExcludeGlobalBeforeAfterEach.h */, + 6BFC94CE6DFF55093E997578440A0F74 /* SPTGlobalBeforeAfterEach.h */, + 62BD05B60E354F152B315A1F1AACB114 /* SPTSharedExampleGroups.h */, + 87C29DD6E1B3CCA4D972DF688D8AD147 /* SPTSharedExampleGroups.m */, + 0E91EBD3063708040C7596C9420F9E6E /* SPTSpec.h */, + 49C77CFBC5353DB1E263E176CB6AE291 /* SPTSpec.m */, + 19671BC05C829FD1C72DF41F017AB587 /* SPTTestSuite.h */, + 51E5DF983237E671D607EA92EC6456F9 /* SPTTestSuite.m */, + 4737A21F569AB5366F03050B6F159299 /* XCTest+Private.h */, + ADDA5C849898EA5976AA808E33538AB8 /* XCTestCase+Specta.h */, + 7942B71650C88A861E964F90A5BDC008 /* XCTestCase+Specta.m */, + A7FCD746A16306431BE0A5E126E5E340 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/NSString-Helper"; + name = Specta; + path = Specta; sourceTree = ""; }; - E946B8E6BD0D67EFDCAF16208296601E /* Tasks */ = { + E6AF9CCA2A494420934DF59579318952 /* UIKit */ = { isa = PBXGroup; children = ( - 6958B7DE781469EB21BC81F0DFCF78EE /* BFCancellationToken.h */, - 6DB64CE127D492DE60FD7189DCB40744 /* BFCancellationToken.m */, - D1D25BE326C5F0754BB5250894DF05A1 /* BFCancellationTokenRegistration.h */, - F506431B86469BF9550E7E848C3059E2 /* BFCancellationTokenRegistration.m */, - FE861E8218B983DE7AD5428FCF196D52 /* BFCancellationTokenSource.h */, - B618FA70916A984C224F4D27D5FD0CC8 /* BFCancellationTokenSource.m */, - D32985C8ACB11F4059F7AFB93FADF3B4 /* BFExecutor.h */, - FAB0381156F3F4AD217D1D3DCE2F0AEF /* BFExecutor.m */, - 971E81322ADCCAB5404A2FFE69452EC3 /* BFTask.h */, - BFE77214B29EB93A54C7B9B7322C49F7 /* BFTask.m */, - 05E9E049C8C84905322300773D7518D0 /* BFTask+Exceptions.h */, - 25DE62E4DFED9F1A496147DBA9760301 /* BFTask+Exceptions.m */, - 8BD593C7000C5D15DAD37DBF69D8D5BA /* BFTaskCompletionSource.h */, - 9C0D484CCB9A8DEAC4A1AB4DFC73BF7B /* BFTaskCompletionSource.m */, - BE1F9B70CE92EA00C4D9073538E8345C /* Bolts.h */, - 0A94F9CED8F4DC0246DA87721383B65A /* Bolts.m */, + 164517FBD6E78CA646A58671F949574E /* AFAutoPurgingImageCache.h */, + A3B7D6B693F46B262654A48CDEF102D2 /* AFAutoPurgingImageCache.m */, + 6E209882DA89E5530D27E76996158939 /* AFImageDownloader.h */, + 2B685AAACA18433E899748B3A199151E /* AFImageDownloader.m */, + CE91B19C0BA5712E59C8296629B1B6E8 /* AFNetworkActivityIndicatorManager.h */, + 7CA09D1052E3988D61774DDC54A7C7C5 /* AFNetworkActivityIndicatorManager.m */, + 3D9BDDFF0B85CF62C2D4FD8D4A2F2095 /* UIActivityIndicatorView+AFNetworking.h */, + 167917C0F2904C539C5D5140977A04D7 /* UIActivityIndicatorView+AFNetworking.m */, + 44542F0DE0EFAB6797C919B75EFF7542 /* UIButton+AFNetworking.h */, + 271550736E646EA7B48E5C220354E164 /* UIButton+AFNetworking.m */, + 44DB34B5125735E4E5EF6D363C5F1D0E /* UIImage+AFNetworking.h */, + BB8A19EE49EC9656B0DEEECAC3D7F70F /* UIImageView+AFNetworking.h */, + 25664B1ED6000C66C7CF9D349E0A53AA /* UIImageView+AFNetworking.m */, + 1A6BC252ABCF01D2AB0CDC08D7FC9A11 /* UIKit+AFNetworking.h */, + 5858E50039DDC6F15B8516B46EA070A1 /* UIProgressView+AFNetworking.h */, + 0A833DD466AE11FD446A7169367F67CD /* UIProgressView+AFNetworking.m */, + 70068A980A0F37775CE656DAE88C5892 /* UIRefreshControl+AFNetworking.h */, + FA8B30719BFE9296CB5B2BBA226E76F5 /* UIRefreshControl+AFNetworking.m */, + 0F8B90BB50DFEBE3D5358863A758A011 /* UIWebView+AFNetworking.h */, + B40EB31D310BAD3F8F0DD2CC557AC30B /* UIWebView+AFNetworking.m */, ); - name = Tasks; + name = UIKit; sourceTree = ""; }; E99CD5B3CF7131277C4CBA3A1162D56A /* Development Pods */ = { isa = PBXGroup; children = ( - 9A46E3BA289FA0FB3B16D70478B26CF8 /* PNObject */, + FD62E86B757B86D9900C28C67A0B5F5C /* PNObject */, ); name = "Development Pods"; sourceTree = ""; }; - EAD7F0EFEAA447E20C1A1BFFD40683E6 /* Support Files */ = { + EA0A3C232EBA33B4AF27169B2FC8A8D9 /* Expecta */ = { isa = PBXGroup; children = ( - EA97F61F21184A02A52A53544568F5BC /* Expecta.modulemap */, - C4DE62C372896960655DF4F4AE79F293 /* Expecta.xcconfig */, - 78914A27A449106521CA676217F10F04 /* Expecta-dummy.m */, - 6524845A5C3F57EB6CBAB30F02118D9A /* Expecta-prefix.pch */, - 9286F282527F68DE4C8A7D20EDBACEF4 /* Expecta-umbrella.h */, - DA2B85632EEB6DD3F931B1AF1B0B208D /* Info.plist */, + FE118A1C9908DC05AFE7971571C376A9 /* EXPBlockDefinedMatcher.h */, + 76786BF7DB256AFFF205FBEF36C0F9BC /* EXPBlockDefinedMatcher.m */, + 37C77961C7AE1A6230D00C5A64F39CD5 /* EXPDefines.h */, + ED4E9A1A529FD876E38112ED9002F541 /* EXPDoubleTuple.h */, + 93251333E469AABA25C69AB93212E346 /* EXPDoubleTuple.m */, + 309E7F4A693ED8B334F212BAB0212AC2 /* Expecta.h */, + 22609D1349DCD01DB4461C52D79D8DF6 /* ExpectaObject.h */, + A3680E8DD8B3D1B0476A8EB3F0CE1724 /* ExpectaObject.m */, + 6D58E7AEA72DB809978988C5EF00C622 /* ExpectaSupport.h */, + 71B2B492557BE08718B64068604605E7 /* ExpectaSupport.m */, + 3BFCB42ED2965D95D67B6E928ABA4C8C /* EXPExpect.h */, + 67882C99F476C761CE40EE1830E3BCDF /* EXPExpect.m */, + 26FD9AE7B8392B7EDDC75876BB51DFC2 /* EXPFloatTuple.h */, + 8A67F041C397356C2E363CF59F224759 /* EXPFloatTuple.m */, + ACD9CAEDA237A25C5415BB6D52BAD5FE /* EXPMatcher.h */, + 5FA14301BED9F5D0CA1A4D31098C0CF2 /* EXPMatcherHelpers.h */, + D9C17FB21000EE0AF4A79D79765E2F9E /* EXPMatcherHelpers.m */, + 01CCA93CB3F71CC4459D9C834B3AF6FE /* EXPMatchers.h */, + 4A6F7F939DBABDF993FA40E0B6518D0B /* EXPMatchers+beCloseTo.h */, + EF20A073E86580764945858998422C1C /* EXPMatchers+beCloseTo.m */, + EB378E0803B0F9961EE8405100B70FEE /* EXPMatchers+beFalsy.h */, + 1943990C83F05DC3EFA51415E3FC91AB /* EXPMatchers+beFalsy.m */, + 80764F1057E2E1DA2B9BFF972B3D4A9D /* EXPMatchers+beginWith.h */, + 2ED5CE3CE7421D52E5A9B610F7DFACC8 /* EXPMatchers+beginWith.m */, + 4AD44711F47E37A188D1512E034C1369 /* EXPMatchers+beGreaterThan.h */, + 9BBD3492DB6AE32163870E96389C1148 /* EXPMatchers+beGreaterThan.m */, + B028158A09E21ACBEEED97F13AACDA7E /* EXPMatchers+beGreaterThanOrEqualTo.h */, + B5C0E39FD49B17202810280292B39AFF /* EXPMatchers+beGreaterThanOrEqualTo.m */, + 035082FAAFB14B16A9C05CC79CE603DE /* EXPMatchers+beIdenticalTo.h */, + FBB7F64DEE6FC0FF9780708F49CF7DE6 /* EXPMatchers+beIdenticalTo.m */, + E443BF8A0EDB302428867D645B0D1E93 /* EXPMatchers+beInstanceOf.h */, + 64ADF90C947E2969DF4749656F340AE0 /* EXPMatchers+beInstanceOf.m */, + 6779442080735F69CF642D39E9C3C3A0 /* EXPMatchers+beInTheRangeOf.h */, + 726FE0B669953010969FDAA49AE98511 /* EXPMatchers+beInTheRangeOf.m */, + 62710B7A271C692F907BC3695309255C /* EXPMatchers+beKindOf.h */, + 6B0C5A09DBDDE888FC5CCD7B81EF820F /* EXPMatchers+beKindOf.m */, + FC5CBA8379481929584E70A5F043C93C /* EXPMatchers+beLessThan.h */, + 7D3B6768441828F0024205FAEBCF3042 /* EXPMatchers+beLessThan.m */, + 69B0EB1E741D7D2708F51BFEF8E61398 /* EXPMatchers+beLessThanOrEqualTo.h */, + D22A983170E008382663F9F5F7ADCFFA /* EXPMatchers+beLessThanOrEqualTo.m */, + 010E7F85443AB3C86AD24F0E99B650FD /* EXPMatchers+beNil.h */, + 1CF4B7C0962891B50E78765E6AF0F206 /* EXPMatchers+beNil.m */, + 3C8635E06AAD0C290626CB0D3C8CE75B /* EXPMatchers+beSubclassOf.h */, + 247BE21FAAB715A40E7D29503841478D /* EXPMatchers+beSubclassOf.m */, + 9BC009F4FBC70B0C3A66D4EDD57CB225 /* EXPMatchers+beSupersetOf.h */, + 4C27E72560C3001B02464B7B13AFDCE8 /* EXPMatchers+beSupersetOf.m */, + 54A7B433BEDEDE11B47AA50D5C940463 /* EXPMatchers+beTruthy.h */, + 0776CF7F35F7516406C855C37FB5846F /* EXPMatchers+beTruthy.m */, + 99741AD0D1EF19772220C2DE52A62739 /* EXPMatchers+conformTo.h */, + E339BB540711AA23CE0A4C4E583B419D /* EXPMatchers+conformTo.m */, + 8D84ABED5A7EA2FFC9E7A52086571B66 /* EXPMatchers+contain.h */, + C3A030D5EC248EC76F0AC4BEB7CDD220 /* EXPMatchers+contain.m */, + A6FE7BF80394A99EA2695EA1907814F1 /* EXPMatchers+endWith.h */, + 3CD177A6281B2C0C3E95B9468BC598C3 /* EXPMatchers+endWith.m */, + 36F20AB5D57102833B1AEB6565FF72E1 /* EXPMatchers+equal.h */, + E5B3329C97AE62266DBF4BECACAA7B60 /* EXPMatchers+equal.m */, + C37ABA3C221DECD38F4B7F678B9E8DAB /* EXPMatchers+haveCountOf.h */, + 5798BB58E5A4C272EB00DF02670DFDF4 /* EXPMatchers+haveCountOf.m */, + EE129661D274DA863ADEC97F33B8897A /* EXPMatchers+match.h */, + 8E996F5611B931670A31534732BD5C97 /* EXPMatchers+match.m */, + 6739F81474B1EBAC489F75AEDAF63880 /* EXPMatchers+postNotification.h */, + 2B6E8BFF82863AE4839C35BC411C185D /* EXPMatchers+postNotification.m */, + 04B045CA0FBBD9BE0BC869401C62EACB /* EXPMatchers+raise.h */, + 602FE5778CD81D3CE44910029986427C /* EXPMatchers+raise.m */, + 6ABED39B84E11067030F2A03C89756FA /* EXPMatchers+raiseWithReason.h */, + 25737F1C52755777D19B8AE7262D3B1E /* EXPMatchers+raiseWithReason.m */, + A9AFB89DD4451710312AB5D14EE90F69 /* EXPMatchers+respondTo.h */, + 941DCE153E15017AC618ADB05AC3D959 /* EXPMatchers+respondTo.m */, + 5DF3AAB1393DFE66F6EC89A7EBE5375C /* EXPUnsupportedObject.h */, + 5623D207D86EB179DF524C6167E09D0F /* EXPUnsupportedObject.m */, + BE571316983BCC33E49AD67C50D7627F /* NSObject+Expecta.h */, + 84245A920A8C2BFCCBC1BBAAAF5222FE /* NSValue+Expecta.h */, + 6D84AA692ADC14A1062783DAFB478FEF /* NSValue+Expecta.m */, + 18B6F1EC577BFF724206F0F633CCCB46 /* Support Files */, + ); + name = Expecta; + path = Expecta; + sourceTree = ""; + }; + EA0AF07E21D6BA56524546AD75DC776D /* NSString-Helper */ = { + isa = PBXGroup; + children = ( + 3DA2A818CF81E09EBF8859E8CA828FF2 /* NSString+Helper.h */, + D5BBF74E7895BC2435DD1F7DF9A6B48D /* NSString+Helper.m */, + 051C4EFAF5F57C58CC8006CDFF0C9569 /* Support Files */, + ); + name = "NSString-Helper"; + path = "NSString-Helper"; + sourceTree = ""; + }; + EC4235A0FC7A034989BB1EB9BA159773 /* Support Files */ = { + isa = PBXGroup; + children = ( + FE314B741DE6AD14499CCFD7FF92FE54 /* Info.plist */, + 0A280CF4D573184E8DE4571FD57B258E /* libsodium.modulemap */, + 09B4A7CF30945090E124BC7FD73BFC9D /* libsodium.xcconfig */, + FD16F709A023F07A9B9095C1C494E78E /* libsodium-dummy.m */, + 8A2B8B269A7D421E8B2D86C7EEB70A6C /* libsodium-prefix.pch */, + 21BCE168B59CA38CFCEAC641303CC4CB /* libsodium-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/Expecta"; + path = "../Target Support Files/libsodium"; sourceTree = ""; }; - EDE012E75AEC3F516C398772E3BC8D82 /* CodFis-Helper */ = { + ECBA29B9A849877869B9A4732C61CA50 /* Support Files */ = { isa = PBXGroup; children = ( - 7098787F74DA313F5F0A7EA6B0CF37E6 /* CodFis+Helper.h */, - D14FB966FA5866E8E9F0E7DB8E86699A /* CodFis+Helper.m */, - 4BD0BC36A8CE73D3725E8C14B7366C3E /* CodFisResponse.h */, - 2EFF02CCA6DA98BB7CA30BAD30B2A53A /* CodFisResponse.m */, - 786A4F1CF674C8C4601B3A1E7EE449D5 /* ResponseConstants.h */, - 5923ED2E0F83E6A85F380B20B407523E /* VatNumber+Helper.h */, - A02F8924C375CFA6C35290BAC9A5E558 /* VatNumber+Helper.m */, - 3A69339E5BA01332D4E90ABC740C6C43 /* Support Files */, - ); - name = "CodFis-Helper"; - path = "CodFis-Helper"; - sourceTree = ""; - }; - EF3FF2225C92187BB1FD177AB097400C /* Support Files */ = { - isa = PBXGroup; - children = ( - 000FB51692CFF88C4D503A9917CFF3C5 /* FBSDKShareKit.modulemap */, - B6B1D5A61701A33E46121FEFE9AAEAFD /* FBSDKShareKit.xcconfig */, - 73924E5B4BD554AEAA7FBA2F933B4F58 /* FBSDKShareKit-dummy.m */, - 4C0EA23BBC862E723D7512958E303D0C /* FBSDKShareKit-prefix.pch */, - D71F6B3C392E131E0FC22437A1F7FFCF /* FBSDKShareKit-umbrella.h */, - F25A949AFF77FDE22119B8314F9B4BD3 /* Info.plist */, + 63F178BA57C0915C8B56DE3970CFD95F /* FBSDKShareKit.modulemap */, + A6629142D178BC550B5EB0EE2A813C58 /* FBSDKShareKit.xcconfig */, + 0D55F993B370322A81BA874F9CB423F0 /* FBSDKShareKit-dummy.m */, + 745723BA68A03FD9E5D2F12F251DB11D /* FBSDKShareKit-prefix.pch */, + 370E77BE84691847FBD7D99FB5929BF8 /* FBSDKShareKit-umbrella.h */, + 35099D2D494A2AE9175A4E3C99A68FDC /* Info.plist */, ); name = "Support Files"; path = "../Target Support Files/FBSDKShareKit"; sourceTree = ""; }; - FBED3FE4784FDE4FC9AC4BBFD70CEA9F /* Support Files */ = { + F60DFC0BA0FDFEECCEC5F3F19C67388F /* PureLayout */ = { isa = PBXGroup; children = ( - E112AC3EA34B2B154521E022B33CC513 /* Info.plist */, - 5C6DFABB2B0F7A47BD48232CB84CBFD6 /* NSUserDefaults-AESEncryptor.modulemap */, - CF281F299410792E0A98ACC70BA05C60 /* NSUserDefaults-AESEncryptor.xcconfig */, - 9816F872012B4A2693B97728B917ACE1 /* NSUserDefaults-AESEncryptor-dummy.m */, - F2C9DEA5C695193273F53A1DFEE3CD46 /* NSUserDefaults-AESEncryptor-prefix.pch */, - FA8981277E4034B0B70BFF9FB108D51D /* NSUserDefaults-AESEncryptor-umbrella.h */, + 0AEA58A825C8937CD7417ADA494BC681 /* ALView+PureLayout.h */, + 7CEFAF55FBF5F462F3D2FB4F0586021E /* ALView+PureLayout.m */, + 8E890C001F0081B29016D9B688EFA09F /* NSArray+PureLayout.h */, + 862603D7628EF0325A22C2AA7EBAB3B3 /* NSArray+PureLayout.m */, + 88ECBDF9BB58C69664E83C5D092F1DCC /* NSLayoutConstraint+PureLayout.h */, + 4292D57EE74911B3D2FE3686AD4B570A /* NSLayoutConstraint+PureLayout.m */, + 0D98077EAEA246AEC38BC50D7DF29596 /* PureLayout.h */, + A5BE442D2316C7AB6911990E5D07BC87 /* PureLayout+Internal.h */, + 4754ADEA38BAD33AB1E0EF17E34BBA56 /* PureLayoutDefines.h */, + 65A1E1FA1293B464D8CCB1A38F78B6E8 /* Support Files */, + ); + name = PureLayout; + path = PureLayout; + sourceTree = ""; + }; + FB19B0A4F41CC3B8A76C98C13C98D59B /* Support Files */ = { + isa = PBXGroup; + children = ( + E3C8128D30B65BB8D4922BA88EA4FB13 /* Info.plist */, + ABA3BDFD795AFE8107ED04211947A86B /* nv-ios-http-status.modulemap */, + 6AD58CCB4D738D8982747C7CA9BB8E92 /* nv-ios-http-status.xcconfig */, + BBF4DD9406D051FA74A1D9D9C2341919 /* nv-ios-http-status-dummy.m */, + DDDDD00FB86E06B78479955568AA986F /* nv-ios-http-status-prefix.pch */, + DEC7F41066EEBD8288548485F0B2A2F3 /* nv-ios-http-status-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/NSUserDefaults-AESEncryptor"; + path = "../Target Support Files/nv-ios-http-status"; sourceTree = ""; }; - FED11A697BDD59D2033AB41FC3F385B7 /* UIDevice-Utils */ = { + FD62E86B757B86D9900C28C67A0B5F5C /* PNObject */ = { isa = PBXGroup; children = ( - 1CB3AAF10B30ABA149DEAD770C2AC0B8 /* UIDevice-Hardware.h */, - DC89F7F4F9D82AEAD38EF97E3C2A3B15 /* UIDevice-Hardware.m */, - D959217BD28328C3B904D9CB023ADC25 /* Support Files */, + 076B1DB455E855B5414E8B76B06DB492 /* PNObject */, + 7D6E269B4B44393F0BD8B7E3E4D08CB0 /* Support Files */, ); - name = "UIDevice-Utils"; - path = "UIDevice-Utils"; - sourceTree = ""; - }; - FEFD5DCA264C4C3796E0032FB3E6CD8A /* Reachability */ = { - isa = PBXGroup; - children = ( - 53CA3E0151B30FA28F1A6B3A5DA4C53B /* AFNetworkReachabilityManager.h */, - 4D067086759355C60A5EDCF21F45A6B1 /* AFNetworkReachabilityManager.m */, - ); - name = Reachability; + name = PNObject; + path = ../..; sourceTree = ""; }; /* End PBXGroup section */ @@ -3677,42 +4095,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 0A45ECBBAB0D842C35E7D47DC0390CB7 /* Headers */ = { + 02D6C3B53F6D66CE93B45E4577BEE511 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - AFF5DB694ACBB9E3DC930C1E89020C42 /* AFHTTPRequestSerializer+OAuth2.h in Headers */, - B935FD0CA92A857C96293AB1DBD18DFE /* AFJSONResponseSerializerWithData.h in Headers */, - 7DA0251032C7F0DF4135E7ABBA31D6A4 /* AFOAuth2Manager.h in Headers */, - E8EB854CDCB7C2B5DD9A155A51874C69 /* AFOAuthCredential.h in Headers */, - A2060B4F49548721DC0D6ECAFEFA3D90 /* PNAddress.h in Headers */, - F35CD32759F8CA5E3F28558D54A13AED /* PNInstallation.h in Headers */, - AA1889F2FE6337B2F593B9E46C271A59 /* PNLocation.h in Headers */, - AFA40B485860556BA25C9391769548B0 /* PNObjcPassword.h in Headers */, - E1186B3C650921006F44DA05CCE4320E /* PNObject+PNObjectConnection.h in Headers */, - 966A0C8CE02016ADDBEB15EB17FBA3CC /* PNObject+Protected.h in Headers */, - 9F989AB4B4E241B47DD81E964441F85F /* PNObject-umbrella.h in Headers */, - F405ED8C76BC3868F6811C002090B872 /* PNObject.h in Headers */, - 7998B292AC279EECC3394679D9F2F982 /* PNObjectConfig.h in Headers */, - B2851D041D2627490F2A6BDB0635E624 /* PNObjectConstants.h in Headers */, - DFEBBA1D08A99327E1992FF319C1683E /* PNObjectFormData.h in Headers */, - 9D8D1A80E39E27AD8119C5D0770BE26D /* PNObjectModel.h in Headers */, - 7B44A1B5D049C7099A1DEA2A32E73950 /* PNObjectUtilities.h in Headers */, - DD4C4DFAB8FDE70DA054BC5708B1EC4A /* PNUser.h in Headers */, + B9713C47FB3CF2DC4E98F082EC768EDC /* Pods-PNObject_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2838BB1A360FC4A4E4F8928FFBF408D6 /* Headers */ = { + 06A1D62FF2204F7F584125F838477B08 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B31ABD84B44F996BCE924A06ECFD76EF /* ALView+PureLayout.h in Headers */, - 65FD3CB5E2AD1C317C481C7D89CA9BD3 /* NSArray+PureLayout.h in Headers */, - 245803C463014C4C0A131235C5823BE0 /* NSLayoutConstraint+PureLayout.h in Headers */, - E351CF7E8BFC1FB26020B401EF92EF4C /* PureLayout+Internal.h in Headers */, - 4B2D5D94B3CE530A7464E328354FF4F3 /* PureLayout-umbrella.h in Headers */, - 439E4EE5D36B2E45C67DE812D5135F10 /* PureLayout.h in Headers */, - 47D5420A6BC063E99A5A6BA7E62555BA /* PureLayoutDefines.h in Headers */, + 3A8B8F21EA7DEDE0064AED4AD9E8B703 /* StrongestPasswordValidator-umbrella.h in Headers */, + 203891FC83D370DAAE936770858F24AE /* StrongestPasswordValidator.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 21446A698D126DFDB13F93B2EB5367BF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 862158B45A31285D4B911020B93145D7 /* Pods-PNObject_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3729,43 +4133,70 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2DF7380057B8507B7C3945505ADE7266 /* Headers */ = { + 3C5F411A99A715FA7980A901560AD371 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 2A2C66083BE54EDDCF0F4AE37C603020 /* UIDevice-Hardware.h in Headers */, - 6E419B15BF5B55CB857A43BA477A1DDD /* UIDevice-Utils-umbrella.h in Headers */, + A498DE5EA4DBE579B8A0615A28D270B8 /* NAAEAD.h in Headers */, + 249BB8D215A2A9E638C45A6A6C0F1EC5 /* NAAuth.h in Headers */, + 1B8CF3966D6F9CB4C08C8B3CF45F56FD /* NABox.h in Headers */, + 6C3B42E5261D59F3324893635DCA4A9C /* NABoxKeypair.h in Headers */, + EF97B4FD49EAE89FDCF8B81F6903F6CA /* NAChloride-umbrella.h in Headers */, + F71DFE0CC286A5F9E0ABA31AA873A097 /* NAChloride.h in Headers */, + 65635C02CB6C86B5F38D492517C4C72F /* NAInterface.h in Headers */, + 653DCB63E923B69279CA1A724A77FD13 /* NAOneTimeAuth.h in Headers */, + 72DABB746661E9400131D12D2A3B5474 /* NARandom.h in Headers */, + 4DF65C42EBF3789EDBD6FCF4ED3F6842 /* NAScrypt.h in Headers */, + 50428091C14E94BF1F5B0C597A762A78 /* NASecretBox.h in Headers */, + 6371635BB041B10624539BB2C3E68D84 /* NASecureData.h in Headers */, + 9B28D7983A989D60D00634DAAC58F042 /* NAStream.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 52D657813DF5884A06712B2E4D34B92D /* Headers */ = { + 3EEF92C94FCF21F2E6AAC1116F3A0D46 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F052ECCD91D2A3EE96DDCD0A1F428B84 /* Specta-umbrella.h in Headers */, - 9605A166839E5B582E5F4A08E786DF1F /* Specta.h in Headers */, - 7A27CAFCB586104AA102A9C161AD0978 /* SpectaDSL.h in Headers */, - C1DF1378F608A031627FBF81B6A9C6E5 /* SpectaTypes.h in Headers */, - 4A571204986D316637D43D3F93DCAC77 /* SpectaUtility.h in Headers */, - 6A725E2BDA6D302C9F30439A6390689C /* SPTCallSite.h in Headers */, - A41034714C779552383D238C48FC4FDA /* SPTCompiledExample.h in Headers */, - 86A40D9CFD9051779B220F53DE991DCA /* SPTExample.h in Headers */, - 8EDC47391C8554AD5C7A91C4D5AFC5F2 /* SPTExampleGroup.h in Headers */, - D7BF9558E071FDF8643CE2B50276B777 /* SPTExcludeGlobalBeforeAfterEach.h in Headers */, - 5D3A5E9359A70F84E5EC0C4CE701DDE5 /* SPTGlobalBeforeAfterEach.h in Headers */, - 87C61FE4EBA517506085582BD4175CCA /* SPTSharedExampleGroups.h in Headers */, - 827762B596901D18DAD29830875E1922 /* SPTSpec.h in Headers */, - 2E81617C064F3E68A7A2A9E6A370E073 /* SPTTestSuite.h in Headers */, - 86365A8DEDA7C9315120DED5EC7F23DC /* XCTest+Private.h in Headers */, - 03890D59600D45E6E9463700F9B11FFE /* XCTestCase+Specta.h in Headers */, + 51836A78E777042F06CF844AFB6DDBB9 /* AFHTTPRequestSerializer+OAuth2.h in Headers */, + 19424717C1436CE69DEA985A8198D929 /* AFJSONResponseSerializerWithData.h in Headers */, + 6E07C5BF951B70B4433031BE376E3AF2 /* AFOAuth2Manager.h in Headers */, + A16BCF5772198D71EB23326F3E7D0C98 /* AFOAuthCredential.h in Headers */, + 20C4A16BBDB29AA7B0DE80912A26D9D2 /* PNAddress.h in Headers */, + 6177B48556D75295F611578C7CE067A2 /* PNInstallation.h in Headers */, + B4C54BE58D55544C9C2B26781C7D6FF5 /* PNLocation.h in Headers */, + DE531499ABBCB73B8CDFFEB1E29FB248 /* PNObjcPassword.h in Headers */, + 89AC86361C93DFBD926D2E56666E7624 /* PNObject+PNObjectConnection.h in Headers */, + F9CF674675D2FAA870A391F7B8704FCE /* PNObject+Protected.h in Headers */, + 0BC678CA584905BA4BB95DF3E5D5E480 /* PNObject-umbrella.h in Headers */, + 36D3EC5B0C989F7E7AFFB00CB6F387D0 /* PNObject.h in Headers */, + E82EEC19CA6E5FABC41ACD8339EF753A /* PNObjectConfig.h in Headers */, + 85DC0B27C52F2D2BD079512FCA1420F6 /* PNObjectConstants.h in Headers */, + ECE24B47FCE7EC45244D8A355A4E24F7 /* PNObjectFormData.h in Headers */, + F695E09572FD3A292ED854FFF2E9EC94 /* PNObjectModel.h in Headers */, + B4B63A09AF7634806C5AC1474761389E /* PNObjectUtilities.h in Headers */, + A824F7880FA89F7F632C96003C2C8F47 /* PNUser.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5ACBF8AF61EDEC41E9616D664F43D4F9 /* Headers */ = { + 478A60CC6A0E3FFE07DE273BB20A47FA /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 38601A496DC568827507C636914CD354 /* Pods-PNObject_Tests-umbrella.h in Headers */, + F548DEC49DAA3645CBC54AEF30CF6E76 /* DDDKeychainWrapper-umbrella.h in Headers */, + 1E6206841E8F8910E03CA7C071911FFF /* DDDKeychainWrapper.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4E2F445CB3408E970FD7A2998EAD87FC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A35D22072A728F18A3E8D1BD1401BE6 /* NSObject+RZDataBinding.h in Headers */, + 9749F3A8FE2A18BE92D3AAC72353F632 /* RZDataBinding-umbrella.h in Headers */, + 61B7210F6AD454A37571840FCFD10083 /* RZDataBinding.h in Headers */, + 2860348DB79BBF2616600CAA7F6C5149 /* RZDBCoalesce.h in Headers */, + A9A0BD6EAD3EB76AA4D2881229C7F3C7 /* RZDBMacros.h in Headers */, + 59286F43792B899D971F6175C878B763 /* RZDBTransforms.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3828,6 +4259,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 60B12CDA80DF13EF95C0C3523342DBA0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5402442E03F342F6101B18C8C3D609AA /* ALView+PureLayout.h in Headers */, + 0216678A3BD0FDEC6B0435E8EAF83324 /* NSArray+PureLayout.h in Headers */, + 08AD7D66E61EF717519C52BFACA95DA5 /* NSLayoutConstraint+PureLayout.h in Headers */, + 6CD5E8C5004B24475F1641361D480EB2 /* PureLayout+Internal.h in Headers */, + 7E8CA38FB27CF2A5ECD991DFE719355E /* PureLayout-umbrella.h in Headers */, + 502D9247A59C07DC82F47264A30520A7 /* PureLayout.h in Headers */, + 42461DB888EE0DCB80C2129F353EDD3B /* PureLayoutDefines.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 68FD11D1C964BAE925EF6EF090349144 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3840,35 +4285,116 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8BF7B9E6E48C602BC97042E2C9EB5DBF /* Headers */ = { + 8A02314F98F98CF956F313A94F8391ED /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F0D1B92F8C875FFC51D5597848BF8273 /* brg_endian.h in Headers */, - 333A1955D01E1E844521ACC7D1BCA28A /* KeccakF-1600-32-rvk.h in Headers */, - 89EA0DB307B82E934E699BF0D051FEF3 /* KeccakF-1600-32-s1.h in Headers */, - 3698CDC89390E6205A7D7EEF5517621F /* KeccakF-1600-32-s2.h in Headers */, - 0F31F70A8218D6E5031F94C045549E8D /* KeccakF-1600-32.h in Headers */, - 921FA041D516AA3E215C22346003ED8E /* KeccakF-1600-int-set.h in Headers */, - C212AF67B0957A4692ABAB7369C77B35 /* KeccakF-1600-interface.h in Headers */, - 9C7B286020562937791F7EAFFBF61ADC /* KeccakF-1600-opt32-settings.h in Headers */, - 4D3D77F614FB125C1880982C8FBAB4A1 /* KeccakF-1600-unrolling.h in Headers */, - 37687F9F3EEF99F4D03AEED2B3A54E13 /* KeccakNISTInterface.h in Headers */, - F0625FAA490E1DA82841249EB039C2E6 /* KeccakSponge.h in Headers */, - 5024E3FD6178A8AC27FB1435CC9270F0 /* NAAES.h in Headers */, - DAE0CD2585F1E98E291C8F3641BD5B7D /* NACounter.h in Headers */, - D52FF876AB77B647490D45A519CC800C /* NACrypto-umbrella.h in Headers */, - 14B8A255B60DC004534AF3308D48233A /* NACrypto.h in Headers */, - D730D35D086259696CA7525BB701FA2C /* NADigest.h in Headers */, - EF614F8F70A1909FFB6C0A7E4A329606 /* NAHMAC.h in Headers */, - 0E7BA921031FFB0DC48396C364C835EF /* NAKeychain.h in Headers */, - AE42B2756CD5B1CA699141D44F073848 /* NANSData+Utils.h in Headers */, - F7B1E69C2DB56E8F263E1395F5568132 /* NANSMutableData+Utils.h in Headers */, - 909F54BCD8936358B5B9F5D20EEF230C /* NANSString+Utils.h in Headers */, - 8D8436B0829A7EBFB796C8085B36B303 /* NASecRandom.h in Headers */, - E544A6C45B4583F612DF819F4F148943 /* NASHA3.h in Headers */, - 81B45C084802F06F24CB6B39A2C0D39D /* NATwoFish.h in Headers */, - 3B85574BC2C9B9CB35967D2C66F8421B /* twofish.h in Headers */, + 4B5B2D1A1E039B88B50865B2039C1AA5 /* argon2-core.h in Headers */, + 1C478D38840E22CE63BD8CF388189C0B /* argon2-encoding.h in Headers */, + 7703B4E88AFADD6F1D9F887C78C8DBF3 /* argon2-impl.h in Headers */, + 38CDE5627FA14CA712CA8D7F73C9D960 /* argon2.h in Headers */, + 4CDBF07A29530EF910370339692C41C4 /* base.h in Headers */, + E3B0A2E9D4719BDA2A6B8180CD159430 /* base2.h in Headers */, + EDF15EBBA9E0860F43EB503ECD4023B7 /* blake2-impl.h in Headers */, + 84F3F6FF80506F035E1B80DD75AB4A46 /* blake2.h in Headers */, + D70B20D6E3579BAA9B4EDCBB9080037C /* blake2b-compress-avx2.h in Headers */, + 414BFB0BFCA72016984BF639624E4A4D /* blake2b-compress-sse41.h in Headers */, + 344C0212E68A80E99350A9FCFC12BFE2 /* blake2b-compress-ssse3.h in Headers */, + 1CB1545FD88A6129CDAD44F906528521 /* blake2b-load-avx2.h in Headers */, + 203933F779EFC8A6D36A4E950FEDC882 /* blake2b-load-sse2.h in Headers */, + 392E24093325DC0E64EF67B16C505D2E /* blake2b-load-sse41.h in Headers */, + AAD837463B8D2DB4A870738B7C2E6F0D /* blake2b-long.h in Headers */, + 4BE64F77D42A9CC42254A613B619883B /* blamka-round-ref.h in Headers */, + 39FDD53C05A89D4BA8FD9DCD1DAD378F /* blamka-round-ssse3.h in Headers */, + D72BE2A629485C1BE6F7A244A1E5116B /* common.h in Headers */, + 652E7E32BCCE8AE4898DEBA7B37A3DF3 /* common.h in Headers */, + 198E495E8479F7C265AA53446874AD7F /* consts.h in Headers */, + 6AB838B91AB57E1B4E7E4BF909FBDF7B /* consts_namespace.h in Headers */, + 98B8F6209CF0A620364E83E7CC85B870 /* core.h in Headers */, + 725AD98652A16599353FAC79FA1BFC4C /* core_hchacha20.h in Headers */, + 0AB894CCD2F8C1F0E679FD9464EAFC42 /* crypto_aead_aes256gcm.h in Headers */, + 9578E33B76962389D5FF9C6608FE7F64 /* crypto_aead_chacha20poly1305.h in Headers */, + 958BDECA75E9ED89E7F737D02D191317 /* crypto_auth.h in Headers */, + 7D1D52A1C8A0C47359679929B76E059C /* crypto_auth_hmacsha256.h in Headers */, + 18F73FEE63B844EC95FE36E3F7A09FDB /* crypto_auth_hmacsha512.h in Headers */, + 0A9D70F4BEA0DD98346336FBE737150B /* crypto_auth_hmacsha512256.h in Headers */, + DA6DACBB47545AE0CAD72AFBA81C159E /* crypto_box.h in Headers */, + 47CB3BBD10D8E003BCAC111762E789B5 /* crypto_box_curve25519xsalsa20poly1305.h in Headers */, + 57086DAC2D80B6E22296F8794674A5B6 /* crypto_core_hchacha20.h in Headers */, + B69CB35CA92843396DC968B037CCA04A /* crypto_core_hsalsa20.h in Headers */, + C7B502680154D5055ACA7A3059E5080E /* crypto_core_salsa20.h in Headers */, + EE1089259E76867C8CAC8D2FA2764DD9 /* crypto_core_salsa2012.h in Headers */, + 81BF62E416774FF5A8CA79046D6EA40D /* crypto_core_salsa208.h in Headers */, + 5AA51741E02FB0280FDD20DD984FE455 /* crypto_generichash.h in Headers */, + F30105280AEF62C926D796C2E5C50510 /* crypto_generichash_blake2b.h in Headers */, + A1887699BF0A1E639A85BD9EB6C4B308 /* crypto_hash.h in Headers */, + 215E38F2533C3DDC2A9F5AEC0B72166F /* crypto_hash_sha256.h in Headers */, + E2D4D5F568BC593707A02AA72DE29DAE /* crypto_hash_sha512.h in Headers */, + 17486AF6BF5959ADD03EBBF4F2F7DA01 /* crypto_int32.h in Headers */, + 4ADCC90AB0C0247C231EBEF70D644CB0 /* crypto_int64.h in Headers */, + C7D70D4E08E187CB71DEDCC067145A9B /* crypto_onetimeauth.h in Headers */, + CAA7D2CB3EFCFF80B228DE4966759E0E /* crypto_onetimeauth_poly1305.h in Headers */, + 448118329FC2AAA2D652E230DA98914D /* crypto_pwhash.h in Headers */, + BDD551B2094E29784C13A974CCC3ACF5 /* crypto_pwhash_argon2i.h in Headers */, + EC8328F391F8353A2B2E2C9111F5241F /* crypto_pwhash_scryptsalsa208sha256.h in Headers */, + 6C1653E7EFB9414633F008B80659070B /* crypto_scalarmult.h in Headers */, + 4F91C2837962A25FFADF2A08C09B481E /* crypto_scalarmult_curve25519.h in Headers */, + 932BE1B7694CF24408C0E938A2E07D3C /* crypto_scrypt.h in Headers */, + 688C32E284EA02BFF70C48D07D79AEEE /* crypto_secretbox.h in Headers */, + D9E92BE573F06922C7F2A4A8F9CF0F5B /* crypto_secretbox_xsalsa20poly1305.h in Headers */, + 3EA99FF6C0ACBFF20447DEA94036E115 /* crypto_shorthash.h in Headers */, + C2444EB446432BF7927F585EFAC97637 /* crypto_shorthash_siphash24.h in Headers */, + 757473795FDC41106A1746830D9542F7 /* crypto_sign.h in Headers */, + 0EC3265073123D191837C9C50E300048 /* crypto_sign_ed25519.h in Headers */, + D579D784945CEA3B31F7F17F98FD3E35 /* crypto_sign_edwards25519sha512batch.h in Headers */, + F5B22E73D3517B9CEC9068840090A741 /* crypto_stream.h in Headers */, + BEB2B03B7CA54EDD807FCA7838CB93F3 /* crypto_stream_aes128ctr.h in Headers */, + 2786A2A12B3E9FB8B01016565714147E /* crypto_stream_chacha20.h in Headers */, + 1EAC80856DD5443C8147FFAF7C00DF13 /* crypto_stream_salsa20.h in Headers */, + 8B9FE87997561C27D61580D2973B04EA /* crypto_stream_salsa2012.h in Headers */, + 9E5DD12541A0FA2DA7E846B462D87A15 /* crypto_stream_salsa208.h in Headers */, + 81BDDD2D9491DFA620509A2B43B5506B /* crypto_stream_xsalsa20.h in Headers */, + D30E23FDF011190AA47E937765563CA3 /* crypto_uint16.h in Headers */, + 10B01DCAB22376C02EC417B7FBFDDF68 /* crypto_uint32.h in Headers */, + 444FF6009CC1C98C44BF05447ACE1D9D /* crypto_uint64.h in Headers */, + 2D0474EEC703CCB702FFDE4E0FB8071C /* crypto_uint8.h in Headers */, + DAF50794FBD2964582896842C248BF53 /* crypto_verify_16.h in Headers */, + B8058BD66E76715BCD6B458ED736A6D3 /* crypto_verify_32.h in Headers */, + FB2B5411D7ECF755E1FA197C1F378A6F /* crypto_verify_64.h in Headers */, + BDAB54E79210E9DAE74C9C3CAD6E4417 /* curve25519_donna_c64.h in Headers */, + F7C5B10D3DC1FA3E7F940A8498946EFD /* curve25519_ref10.h in Headers */, + 100B51675E4899BBE6CF4D6863693CF2 /* curve25519_sandy2x.h in Headers */, + B6F52801FBB70A73BBF6A735507E04B0 /* export.h in Headers */, + F387B9F18647DD537EE643579AFBA80A /* fe.h in Headers */, + CB35E213CBC79B65AF00E895B3A8330A /* fe51.h in Headers */, + 3ECCB1B2CEEB5D941357B97BC2423CD6 /* fe51_namespace.h in Headers */, + 2F727BF64864D6593364730464E2ECA8 /* int128.h in Headers */, + 2E23401D467EF69E94ED8B67E33F991F /* ladder.h in Headers */, + 70F3252B4EAFDF0E0B2A7EFABBFA2488 /* ladder_base.h in Headers */, + A219BF06D6CEF27ECDCE8C20F3BCF515 /* ladder_base_namespace.h in Headers */, + E219C1CC15444E500491A4117982F057 /* ladder_namespace.h in Headers */, + 62E38BC172C49C3A5B26E89605AAE0F8 /* libsodium-umbrella.h in Headers */, + 0E49AF4F0466CB23725A6B374F6738EE /* mutex.h in Headers */, + 55CB59E1B79D5341A3B085351EEC6837 /* onetimeauth_poly1305.h in Headers */, + 6439A11FA941EC33BB94889B833EA350 /* pbkdf2-sha256.h in Headers */, + A42AC0057CDE350BF59D08C1B5D97DAF /* poly1305_donna.h in Headers */, + B47AA9F7C41752EB123F338F782C88FD /* poly1305_donna32.h in Headers */, + D3B22F377EB13A7F1062B214B8B159EB /* poly1305_donna64.h in Headers */, + A33E04BD2B8C3500368345484EC30923 /* poly1305_sse2.h in Headers */, + A3784F9AA9439781C490D5C42CA855E4 /* randombytes.h in Headers */, + 94FDD52DF46B1EA228CAA79600201081 /* randombytes_nativeclient.h in Headers */, + 71F7447117FE57ADDB4B657FDDBB5A0E /* randombytes_salsa20_random.h in Headers */, + FF595EA70192F514606CCCCFBF8FACFF /* randombytes_sysrandom.h in Headers */, + 98050006DF0936E8D464F2BC2B5FFFFF /* runtime.h in Headers */, + 99E7564C6BEC3AAF0717885C163EB467 /* scalarmult_curve25519.h in Headers */, + D2264B0D4CEFD45DB60C274F685133A0 /* sodium.h in Headers */, + 48D5E595F400C91D05BFEFE9E47F8E34 /* stream_chacha20.h in Headers */, + 3C93A117B26558000001586D3C5653D0 /* stream_chacha20_ref.h in Headers */, + C9F085F9FC1BBE4B1280FA99056F2604 /* stream_chacha20_vec.h in Headers */, + 443456148F240299BCF3CBF292ECE97B /* types.h in Headers */, + 16A9BCC67D7BDFEAC35D744237688960 /* utils.h in Headers */, + 8819374CADB6E858A5899212A40C26A2 /* version.h in Headers */, + 376B2F8499F4F7FCE963C368A563521C /* x25519_ref10.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3948,21 +4474,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C95154159952390F453B9600C4A5CE6 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D49114979B44DF683A9A964565E0FE6 /* FBSnapshotTestCase-umbrella.h in Headers */, - 31328536635BDC034D4E43B11CA846BD /* FBSnapshotTestCase.h in Headers */, - 0676595134A6036819E78D0404919486 /* FBSnapshotTestCasePlatform.h in Headers */, - 889FE136349E95DFBE20F050685FB124 /* FBSnapshotTestController.h in Headers */, - 5D95DC370FE619787EA993FF91CA51EE /* UIApplication+StrictKeyWindow.h in Headers */, - 3849993FDFE7642E4BEF1096B047FB86 /* UIImage+Compare.h in Headers */, - 26BBC63406C6863BE6DD27C64A70CB42 /* UIImage+Diff.h in Headers */, - D180489445C2C507332A6EE964ADA1E5 /* UIImage+Snapshot.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; A79528504B4248B2F6AE39F59D06FF0A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3987,19 +4498,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A807FE1F750DD2790855911B2A21BA26 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B5E0BE9919A447BCA76370EE3B5A140C /* NSObject+RZDataBinding.h in Headers */, - F634EED5307CCF842DCA91665D3E772D /* RZDataBinding-umbrella.h in Headers */, - 35969EE736E852B532834F4E6BAD290F /* RZDataBinding.h in Headers */, - BB5408BD9BCE631A449422EE78EBA9E2 /* RZDBCoalesce.h in Headers */, - 47C37CCF8FD8A44A5034370FD3F2C6F8 /* RZDBMacros.h in Headers */, - 80361E5C271B43570A973AC86DAA8EDC /* RZDBTransforms.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; A9C6D8BC6D50D1C3E63B5243F91E955D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -4054,33 +4552,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C4DADA7D36A2551C954CCF7942CA6065 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - E6347EBE9793308C6BDDAB2980CC29F9 /* StrongestPasswordValidator-umbrella.h in Headers */, - 65E02C25572655B649805823CB30D9B6 /* StrongestPasswordValidator.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CC036E6D6953BA44969724037024FEEE /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 78CC8D45CE234FB5EA6A4A20E5BF2822 /* Pods-PNObject_Example-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CDFD4A1DE3E4E3CABD4EC05ABC8A520C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - DE4EF1ED618D31CA16938565A1CA0607 /* Expecta+Snapshots-umbrella.h in Headers */, - CDBF7F2D23165CAB8B3819A256A49F0A /* ExpectaObject+FBSnapshotTest.h in Headers */, - EDF3CEAAF7922F570A5AD95B005C84F8 /* EXPMatchers+FBSnapshotTest.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D344C138689FC3FC2BAE80E9D8E6CD20 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -4198,9 +4669,60 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + ECEA8C3E78B9B7D6B803BF5AEAE6F9B6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BAE94900F3BE8D58995FC57A6D32D76A /* UIDevice-Hardware.h in Headers */, + 7A9FAB5A8B82733B046CC4ED1992E118 /* UIDevice-Utils-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F4C773C4B62F61B726C08367D68CFBFC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BD92326E70E0C50065E3D88AB30DCB22 /* Specta-umbrella.h in Headers */, + C70F49937651EC89DF42492276D8A040 /* Specta.h in Headers */, + BF0FBC3463A1E0B9A26C78DFF2C23F53 /* SpectaDSL.h in Headers */, + 50AB8A0A4D09B52F466393199E8D741F /* SpectaTypes.h in Headers */, + 60FB033AE36DC1310A35558F71E764DD /* SpectaUtility.h in Headers */, + 53E394F7C4453909027ECCD278E3F461 /* SPTCallSite.h in Headers */, + A95B049F650B770607B3724EC0E863A1 /* SPTCompiledExample.h in Headers */, + 6C3EC990F4A249D8958579DE3DF0E5B4 /* SPTExample.h in Headers */, + A696065B3DD64DFE1AC4DA86D3C74E59 /* SPTExampleGroup.h in Headers */, + 9C31FC3DCB6A9E66BC8DA5A58964521E /* SPTExcludeGlobalBeforeAfterEach.h in Headers */, + F34CC027BD8B91646C5D60E46AAFBD15 /* SPTGlobalBeforeAfterEach.h in Headers */, + FDFC224221565B539AE0EA9345584C74 /* SPTSharedExampleGroups.h in Headers */, + AAD2AF091971100EBDC335F637E27872 /* SPTSpec.h in Headers */, + F923DFF4BB21AE81C4E721B1E16D35D5 /* SPTTestSuite.h in Headers */, + 6B92DE5FA269D537256D731B5CC4353A /* XCTest+Private.h in Headers */, + 5606AD180BC3784508DFDB63D2636B2A /* XCTestCase+Specta.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 1B1056B27DA5C9A96BF4AFE5C79DD27C /* Pods-PNObject_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3746929742108DB177CF0CADFF1D9906 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Tests" */; + buildPhases = ( + 20A5D33C0487421CF67EE899598432D9 /* Sources */, + 88F156E9D97A3934D684806C1CE66CDB /* Frameworks */, + 02D6C3B53F6D66CE93B45E4577BEE511 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + A779E6D8A71AA13C567C66B1D4107AD3 /* PBXTargetDependency */, + 8C3568B8FC514672D8BA470B5CEBCF54 /* PBXTargetDependency */, + ); + name = "Pods-PNObject_Tests"; + productName = "Pods-PNObject_Tests"; + productReference = 1E0F4D981DD7358329A0E64C5B729369 /* Pods_PNObject_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */ = { isa = PBXNativeTarget; buildConfigurationList = 93516C885C0F185BEA0221B8BAC8C1D4 /* Build configuration list for PBXNativeTarget "CocoaSecurity" */; @@ -4215,24 +4737,45 @@ ); name = CocoaSecurity; productName = CocoaSecurity; - productReference = 6000156BBC8ED8E6CF3508A762B71750 /* CocoaSecurity.framework */; + productReference = CED9173C4F1792DE5DEC00189A6D253A /* CocoaSecurity.framework */; productType = "com.apple.product-type.framework"; }; - 21B910E0FB008FE15458D3D9B59BED16 /* Specta */ = { + 1D6C7BDD6EFD522E5C9E32921881A364 /* Pods-PNObject_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = 48C38E44B4EF5760ADB7DED06F65AD3A /* Build configuration list for PBXNativeTarget "Specta" */; + buildConfigurationList = A20315C9777ECC1B7F7766B088ED3355 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Example" */; buildPhases = ( - 5BB3FBA1C308E80B904A714F4F781F69 /* Sources */, - 2933D507F1FD5C5C05AD1ABBB28D34A9 /* Frameworks */, - 52D657813DF5884A06712B2E4D34B92D /* Headers */, + 639695F709D8EDB63F34D938BAF58869 /* Sources */, + 990C427E7F539BE644FF19414A4B35B8 /* Frameworks */, + 21446A698D126DFDB13F93B2EB5367BF /* Headers */, ); buildRules = ( ); dependencies = ( + F409816BCB75D89B2F1DDA2B718AC453 /* PBXTargetDependency */, + C80D055F65F37B93397A5748EC6CE946 /* PBXTargetDependency */, + 2EEFEA19429B72D57C15C12A33D22D0C /* PBXTargetDependency */, + FA74CFEE27C086050D23512C69EB8514 /* PBXTargetDependency */, + 286C31CF6276A3847433D2F5C5F04675 /* PBXTargetDependency */, + B5DF8F90A62FB8CFF6F0E34A4C29962C /* PBXTargetDependency */, + 15BA25003C775F1ADCAFBC98CBE20754 /* PBXTargetDependency */, + 24F61D6FD033319AF6A7E2EA49718BDD /* PBXTargetDependency */, + ECA51B2992514FFA92170ABADE29CA1E /* PBXTargetDependency */, + 5EC21177BFE4B7A6B7DD7340FD23F1FC /* PBXTargetDependency */, + 5AE561F4C550D1D08E6CE1C558066FC8 /* PBXTargetDependency */, + 4026558D870A7D71B74112EB27B6644F /* PBXTargetDependency */, + 1C1FE4B01E0BCEFB45983DB41D5DB2AE /* PBXTargetDependency */, + F9F927EE7DD17A542A42DFD125AED40E /* PBXTargetDependency */, + 065BA8F9F3F0D074EAD628BF4F90E2D7 /* PBXTargetDependency */, + B7D2D3A1FB748C9A02AB8D943D818D9F /* PBXTargetDependency */, + 2FDB9242B0ECA1B88D7C7E1471CF21C2 /* PBXTargetDependency */, + ED47780521F1F4AD73B3767D2CABEB32 /* PBXTargetDependency */, + 643E1696B737E69339C42D70A396BBBE /* PBXTargetDependency */, + 17D32573E1A0809816A87EAC5FE8BB05 /* PBXTargetDependency */, + DF1009E00FD3B669422D374CBDC644D1 /* PBXTargetDependency */, ); - name = Specta; - productName = Specta; - productReference = 697684E440C5DD4889849A82003BCF8E /* Specta.framework */; + name = "Pods-PNObject_Example"; + productName = "Pods-PNObject_Example"; + productReference = 020977FBAF80C502FC21F9A4E451F80E /* Pods_PNObject_Example.framework */; productType = "com.apple.product-type.framework"; }; 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */ = { @@ -4250,7 +4793,24 @@ ); name = "NSUserDefaults-AESEncryptor"; productName = "NSUserDefaults-AESEncryptor"; - productReference = CAF918641A37914DAA46F52FF3A55CDD /* NSUserDefaults_AESEncryptor.framework */; + productReference = D547832A9870117BB4A4193A1FC32365 /* NSUserDefaults_AESEncryptor.framework */; + productType = "com.apple.product-type.framework"; + }; + 35F82346315E32388BD362BF670661F2 /* UIDevice-Utils */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0912B55BFFD62D45AC19540DB32BC974 /* Build configuration list for PBXNativeTarget "UIDevice-Utils" */; + buildPhases = ( + E2C95BBBC364A86AC33E7065B5A6A8E6 /* Sources */, + BC9FA8769C32566FC5F74B0B5F9D7538 /* Frameworks */, + ECEA8C3E78B9B7D6B803BF5AEAE6F9B6 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "UIDevice-Utils"; + productName = "UIDevice-Utils"; + productReference = 2E88585A06FE223B6A526015327303FB /* UIDevice_Utils.framework */; productType = "com.apple.product-type.framework"; }; 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */ = { @@ -4267,7 +4827,24 @@ ); name = DJLocalization; productName = DJLocalization; - productReference = 78843FEA5980B4D12ACFC8B8A3EEF74D /* DJLocalization.framework */; + productReference = 202419D9F9007A055ED4BAB5C869107D /* DJLocalization.framework */; + productType = "com.apple.product-type.framework"; + }; + 424BE1CAFEB96DECBF440D6FBF04E993 /* PureLayout */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1187AE3EC3CD56E86AB1DC7ACD180C59 /* Build configuration list for PBXNativeTarget "PureLayout" */; + buildPhases = ( + 6EE5917AFEB9D30B9BE9C6DF6608B263 /* Sources */, + 73F30CA6A85D9D481850CFE484B5C824 /* Frameworks */, + 60B12CDA80DF13EF95C0C3523342DBA0 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PureLayout; + productName = PureLayout; + productReference = 74700A970C9FC75D18D27A4F46958509 /* PureLayout.framework */; productType = "com.apple.product-type.framework"; }; 44CAD6CE523055ED339E87154473A254 /* Bolts */ = { @@ -4284,7 +4861,60 @@ ); name = Bolts; productName = Bolts; - productReference = 8EA955A3E5C9EB4AE8AFB1B85579AB8B /* Bolts.framework */; + productReference = B665577F72504FDFE53A0063ACC03660 /* Bolts.framework */; + productType = "com.apple.product-type.framework"; + }; + 4BAA466F838AFFE707700A6CDE8B6AB4 /* PNObject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7B21F24A2D364BC98F5ACF5BCFA3B913 /* Build configuration list for PBXNativeTarget "PNObject" */; + buildPhases = ( + 80AAEDB164E61E9D7D29CF61473634B2 /* Sources */, + B17B0F68B9C55F094605E014EEE9DF68 /* Frameworks */, + 3EEF92C94FCF21F2E6AAC1116F3A0D46 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + B4FD0C54AA2BD07331F2BE8BFE5C3B48 /* PBXTargetDependency */, + 2A3D9247B87C7C5FDF94F5F53D9D7B85 /* PBXTargetDependency */, + 9E127E8BC8BA1202992D86DFAF8EB8F8 /* PBXTargetDependency */, + FFF25EA07E6DCB35252A8D86C489C02E /* PBXTargetDependency */, + 0C30B6E819120BF2F430325B62030993 /* PBXTargetDependency */, + 512DE2E3DD915A65090E56CD91A6FBE4 /* PBXTargetDependency */, + 03639B46FDF4375E1FA5463C69E95C13 /* PBXTargetDependency */, + 3609C4DA4941204E99BFA19CA31F7A45 /* PBXTargetDependency */, + 4B53ADBCAF315E8892E475BCEF4EF287 /* PBXTargetDependency */, + 679B8DC8F0704697C98AADE7CB9490B0 /* PBXTargetDependency */, + CF028EB3DDE4A0A97254196E2C69BCB7 /* PBXTargetDependency */, + D2D4A2912CC53A6E82C58B22C697E458 /* PBXTargetDependency */, + D9A2B22C1BC65E105F6FF32D3CDA61E8 /* PBXTargetDependency */, + 8BE3A46407330CD198E7E6AB974DDF21 /* PBXTargetDependency */, + 48ECC509B7F18B3847B88248B499049D /* PBXTargetDependency */, + 00A4A0167930FB5286ED90B5387E8BB0 /* PBXTargetDependency */, + C6402507BFEA11972E90E58198DA4F0C /* PBXTargetDependency */, + 63170B982C7272DE982B33D88574078A /* PBXTargetDependency */, + 5B167D7A63D07DA57DF4165B1843F54D /* PBXTargetDependency */, + ); + name = PNObject; + productName = PNObject; + productReference = A73683986518393D96155AF12602348E /* PNObject.framework */; + productType = "com.apple.product-type.framework"; + }; + 573215601C9E10AC9E657F27845334AF /* DDDKeychainWrapper */ = { + isa = PBXNativeTarget; + buildConfigurationList = C589C52499CBAB0DD121E0FDC495D87C /* Build configuration list for PBXNativeTarget "DDDKeychainWrapper" */; + buildPhases = ( + 0722A2C6F1FBED824A3CBD26B4764498 /* Sources */, + F8E9A420EEDA0E146FA5C19A96D18DBB /* Frameworks */, + 478A60CC6A0E3FFE07DE273BB20A47FA /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = DDDKeychainWrapper; + productName = DDDKeychainWrapper; + productReference = 939DA93760C976BA9619304DE31FC1F5 /* DDDKeychainWrapper.framework */; productType = "com.apple.product-type.framework"; }; 5D161BA711701D7E41E02A5702FD024E /* Expecta */ = { @@ -4301,41 +4931,7 @@ ); name = Expecta; productName = Expecta; - productReference = 288333A1A32F0B6A4B0A5E8AA9DC1012 /* Expecta.framework */; - productType = "com.apple.product-type.framework"; - }; - 5D86F7E44A8244120F51D6681616221C /* UIDevice-Utils */ = { - isa = PBXNativeTarget; - buildConfigurationList = 563151C1898104275179A2B32981BD63 /* Build configuration list for PBXNativeTarget "UIDevice-Utils" */; - buildPhases = ( - 1AE9E5DFCDE2C0DF7ADD003A51BC7D3A /* Sources */, - F2113B5E93FEF8BA50CB64CB4D4D4AFA /* Frameworks */, - 2DF7380057B8507B7C3945505ADE7266 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "UIDevice-Utils"; - productName = "UIDevice-Utils"; - productReference = 18DC99D6D4F2A0A85149B43763A38701 /* UIDevice_Utils.framework */; - productType = "com.apple.product-type.framework"; - }; - 5FCB5354989B74C071469E597A5D0D16 /* RZDataBinding */ = { - isa = PBXNativeTarget; - buildConfigurationList = C0C96FEFA2A03A073A78A43B7BABDB21 /* Build configuration list for PBXNativeTarget "RZDataBinding" */; - buildPhases = ( - 1B7047D30D55383D02E21DF68CF041E7 /* Sources */, - 9DE08C24E2B4C2A4140BD46AAB27D027 /* Frameworks */, - A807FE1F750DD2790855911B2A21BA26 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RZDataBinding; - productName = RZDataBinding; - productReference = 976445002047578D8EA72D058B6354F2 /* RZDataBinding.framework */; + productReference = B7F597699D5D4F500FEE8C551EDD3EC3 /* Expecta.framework */; productType = "com.apple.product-type.framework"; }; 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */ = { @@ -4352,7 +4948,42 @@ ); name = NSDate_Utils; productName = NSDate_Utils; - productReference = 0AE1F07FC4D81F50F7CAE26E7CC395E1 /* NSDate_Utils.framework */; + productReference = CF8B07A228A8A2D3E6BD80F48A51BD04 /* NSDate_Utils.framework */; + productType = "com.apple.product-type.framework"; + }; + 6B98E239EBD69980B948DAA20E9B44D9 /* NAChloride */ = { + isa = PBXNativeTarget; + buildConfigurationList = D10BB25C9C178AF4CC6EAC11E42CBDF7 /* Build configuration list for PBXNativeTarget "NAChloride" */; + buildPhases = ( + 3B4FB13F6835601C8470CF2788E8CF5F /* Sources */, + C4DEF7A8CFDF75E2709962DF2E8474EB /* Frameworks */, + 3C5F411A99A715FA7980A901560AD371 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 5757664C8A5D2C5413CEAC432AAD6FA8 /* PBXTargetDependency */, + ); + name = NAChloride; + productName = NAChloride; + productReference = 4B7A7D9F88C44A4C80AB79F137A5D533 /* NAChloride.framework */; + productType = "com.apple.product-type.framework"; + }; + 71C5D65B12960B6E3EB92983E936DAAE /* Specta */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8A9E12F98477699F909C73BD7C1AA49B /* Build configuration list for PBXNativeTarget "Specta" */; + buildPhases = ( + 2EAF32FBC1BD02A64F7D51AB4A77AE18 /* Sources */, + F258DB448588D76A9888D03410AC89C2 /* Frameworks */, + F4C773C4B62F61B726C08367D68CFBFC /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Specta; + productName = Specta; + productReference = AF26ABF0354D711CB3728359DFD82ADD /* Specta.framework */; productType = "com.apple.product-type.framework"; }; 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */ = { @@ -4369,116 +5000,24 @@ ); name = "NSString-Helper"; productName = "NSString-Helper"; - productReference = 3FCA01355D4AFDEF435F982210BC27E7 /* NSString_Helper.framework */; + productReference = 80FA80CE8E4C4A774B387F58ED33FC5F /* NSString_Helper.framework */; productType = "com.apple.product-type.framework"; }; - A0EDEA0DEF9B19840A41D0CD2D162E05 /* Pods-PNObject_Example */ = { + 839A00176009DB84BA0E2185B198E40F /* StrongestPasswordValidator */ = { isa = PBXNativeTarget; - buildConfigurationList = 3CACC1BD0248D165982F8142D1FC68FA /* Build configuration list for PBXNativeTarget "Pods-PNObject_Example" */; + buildConfigurationList = 8CA3139F0858D039073F482769CCAA0E /* Build configuration list for PBXNativeTarget "StrongestPasswordValidator" */; buildPhases = ( - 5078D7381F08184876D05E154EB8DFC8 /* Sources */, - C9E6D67E76961D7478167EA81184CCA7 /* Frameworks */, - CC036E6D6953BA44969724037024FEEE /* Headers */, + B25999F68DFE2D5459915B17AD6C9D6D /* Sources */, + 75D29B867FB55AE0E5D4C85A3D763B9C /* Frameworks */, + 06A1D62FF2204F7F584125F838477B08 /* Headers */, ); buildRules = ( ); dependencies = ( - AB6A5B91F4C1BC8DC7B521F1940E1DCC /* PBXTargetDependency */, - 72F936EC70DA4FA8FFA0C9E867AF693D /* PBXTargetDependency */, - CD60B0942B7B7BF3C0E0AFC8B082A705 /* PBXTargetDependency */, - 6B960AACF469BF5F5B7B906658E35B66 /* PBXTargetDependency */, - 2482ADC1DBD8D272AFA39D965F41A890 /* PBXTargetDependency */, - 82B4701CD33546DDD4DFA7D146AE6823 /* PBXTargetDependency */, - E782776392283E2055E6E2DAB3BB6D76 /* PBXTargetDependency */, - 0E5FEDE4C63BB1997BF5EDCF4C6EE1BE /* PBXTargetDependency */, - 5C1E60D237933950018C30818F51A599 /* PBXTargetDependency */, - 56F5C643020AEE05C8956D72F82A2A0F /* PBXTargetDependency */, - A64861FF77A3E620FDA0A03F16EA0E29 /* PBXTargetDependency */, - D5197EC656A15306FDC99A3CDC5E546D /* PBXTargetDependency */, - 3EE598C38C42CAD56DF21FDF51B34B99 /* PBXTargetDependency */, - 0C52D7E0B6BA5EBBD11F26C3F5AAB486 /* PBXTargetDependency */, - D4E5D352048E70A25258BD579D1E9EDB /* PBXTargetDependency */, - A2D4B6EB7F09C75DFA49C1156B5049E0 /* PBXTargetDependency */, - 2F58663DF885F6DFBCBB32671464CAF5 /* PBXTargetDependency */, - 3BF7E412E356BF195B17FF61DF6CF876 /* PBXTargetDependency */, - 4E5D8312F010F434C8B7A875E4F7D3F2 /* PBXTargetDependency */, ); - name = "Pods-PNObject_Example"; - productName = "Pods-PNObject_Example"; - productReference = DCFF92FD958FE84E689F2C56E67A5E99 /* Pods_PNObject_Example.framework */; - productType = "com.apple.product-type.framework"; - }; - B75E75E57ACA61BF8B731B80BF941C96 /* Pods-PNObject_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1D5B75C406E21D1CC93EA60A0DBB6B84 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Tests" */; - buildPhases = ( - 73298C149F2DBD696717D05E46F35445 /* Sources */, - E734C00B7E01BD170B0B70882535F050 /* Frameworks */, - 5ACBF8AF61EDEC41E9616D664F43D4F9 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - B007329862C4EBF350CCDF454868EDF6 /* PBXTargetDependency */, - CD0428CC45218EAE95C23ABC25FADB87 /* PBXTargetDependency */, - 92B6BDE285C0411F48483B64091217B1 /* PBXTargetDependency */, - 6000B8913C20385D079A7BCECB933366 /* PBXTargetDependency */, - D726C3900158C0501DD6A6D0F35E7DEC /* PBXTargetDependency */, - 04EFFB320AD009086ADCA789D9BCE6EF /* PBXTargetDependency */, - 95EA16C27BCBBAFFDCC90D2D53A86EB3 /* PBXTargetDependency */, - A1372E4837976EE522846CA90217A9F2 /* PBXTargetDependency */, - AA007917001CDB3B0870F36758F76A23 /* PBXTargetDependency */, - 5AE29FC964783FB255E37D1C23A898EA /* PBXTargetDependency */, - BFC21FF6A66CAF933417CE1287B7DB89 /* PBXTargetDependency */, - C884AB5BED7238D56FB2F19E66D6B5E7 /* PBXTargetDependency */, - 5D17161790BEAA9F448032976E4A5301 /* PBXTargetDependency */, - 3E7E8E1FF89C4B6F77E57D3E8517DD5B /* PBXTargetDependency */, - D08EB0B34C68A581DED4F61E7FAB4165 /* PBXTargetDependency */, - E5F724965C83CE465C78AE81311A7726 /* PBXTargetDependency */, - AA0163E3503C59634518BE44B032A43F /* PBXTargetDependency */, - A42BD92E0B1D3CEDAF5B543FCCD24AE8 /* PBXTargetDependency */, - B2D0F74F029670DE48E8DF282A868CE6 /* PBXTargetDependency */, - 2998B08BEFEB86A6C48A3EDF8FFD156B /* PBXTargetDependency */, - 46FF8D6E714716BDC131C8B58060E6B5 /* PBXTargetDependency */, - 5135CD3DE25726BA6CC116133CC47ACE /* PBXTargetDependency */, - ); - name = "Pods-PNObject_Tests"; - productName = "Pods-PNObject_Tests"; - productReference = 901599C4789F0E6D8E493650B6B5EAFC /* Pods_PNObject_Tests.framework */; - productType = "com.apple.product-type.framework"; - }; - BAD270B3B7D157B2C75600E5F76E05BB /* PNObject */ = { - isa = PBXNativeTarget; - buildConfigurationList = D6736FDB31377F74B77369125D181F0C /* Build configuration list for PBXNativeTarget "PNObject" */; - buildPhases = ( - BC75C71EFCD0B3556978237C5674C8AA /* Sources */, - 7060B7683CB0B25514C609ABFD33DC07 /* Frameworks */, - 0A45ECBBAB0D842C35E7D47DC0390CB7 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 7538E904DD6C1E9958EF1E7C9E6BA5A4 /* PBXTargetDependency */, - 78306A4A6E8B983A883D1D1409103060 /* PBXTargetDependency */, - 939E8E9CE877E95EE321292AB1CDE2E0 /* PBXTargetDependency */, - 9B8E013E6FF06790EA78F06D692D4C02 /* PBXTargetDependency */, - 0848E43C7C6CE43CC3221436F2B37882 /* PBXTargetDependency */, - A405EDC356DA24AB169B312449F6707D /* PBXTargetDependency */, - A0899916715770F4D746AA799902C8CA /* PBXTargetDependency */, - 6CFBF5DA3C6F8062D5CE6F4F175D3EC7 /* PBXTargetDependency */, - 83049837596DD061FCFB71540DDA68A8 /* PBXTargetDependency */, - F389CE57503663D85BDEB140450D6085 /* PBXTargetDependency */, - E8952772DBB177E4353F4EBA2A77F494 /* PBXTargetDependency */, - AEDB11BD7516C49482AD396E25C5ACD3 /* PBXTargetDependency */, - 5FE5AD04D5494CFAD1FE33111CBC5EB7 /* PBXTargetDependency */, - 58261F26D62B4B87E5222E0D1C92DE29 /* PBXTargetDependency */, - 48EC50F5402DEC9286A279867493C95A /* PBXTargetDependency */, - 985DC64FDAA98BFD48BB3E1838B0E2D3 /* PBXTargetDependency */, - F2E6D8DB8D5141D89E49A092136493CA /* PBXTargetDependency */, - ); - name = PNObject; - productName = PNObject; - productReference = 54FEF1C88AC14BE6ABC0C4EA760C0534 /* PNObject.framework */; + name = StrongestPasswordValidator; + productName = StrongestPasswordValidator; + productReference = B6B38852D48526E9C3CABB5612761E41 /* StrongestPasswordValidator.framework */; productType = "com.apple.product-type.framework"; }; BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */ = { @@ -4497,24 +5036,7 @@ ); name = FBSDKLoginKit; productName = FBSDKLoginKit; - productReference = 7569791A6348BC689D4E469B75812D5D /* FBSDKLoginKit.framework */; - productType = "com.apple.product-type.framework"; - }; - BCA035D59C91538BFAE500F02854C1FB /* StrongestPasswordValidator */ = { - isa = PBXNativeTarget; - buildConfigurationList = F9195397287BF70DAA349E279D33CBAC /* Build configuration list for PBXNativeTarget "StrongestPasswordValidator" */; - buildPhases = ( - FF6E628648CAFF6338CEA6678325C588 /* Sources */, - 087BA4DD11F2AEAF05B3D19E8214C05A /* Frameworks */, - C4DADA7D36A2551C954CCF7942CA6065 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = StrongestPasswordValidator; - productName = StrongestPasswordValidator; - productReference = CD7387F2620E99BB63242B2C8C13C51E /* StrongestPasswordValidator.framework */; + productReference = F1244EAE09D92D4EE9A54E2EE465C291 /* FBSDKLoginKit.framework */; productType = "com.apple.product-type.framework"; }; BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */ = { @@ -4533,24 +5055,7 @@ ); name = FBSDKCoreKit; productName = FBSDKCoreKit; - productReference = BA6BA3D44B988A0B1260AD9AD35E6433 /* FBSDKCoreKit.framework */; - productType = "com.apple.product-type.framework"; - }; - C83C2EC452686E750D4A006EB041E2B6 /* PureLayout */ = { - isa = PBXNativeTarget; - buildConfigurationList = D95FF0F6F7D1C10A06917C2E5842AD27 /* Build configuration list for PBXNativeTarget "PureLayout" */; - buildPhases = ( - 8484938038BFB285AB8177E69FBFEB7A /* Sources */, - 9B2EE6C318B786ACF4C6FA2427425A09 /* Frameworks */, - 2838BB1A360FC4A4E4F8928FFBF408D6 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PureLayout; - productName = PureLayout; - productReference = 4F47309E9EEF9C78B5D444F294EBE640 /* PureLayout.framework */; + productReference = 34E3727766BA4CB752B84495564C319D /* FBSDKCoreKit.framework */; productType = "com.apple.product-type.framework"; }; CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */ = { @@ -4567,7 +5072,7 @@ ); name = "nv-ios-http-status"; productName = "nv-ios-http-status"; - productReference = 1ADBD6FA61239D16800C6797C7F6AFB8 /* nv_ios_http_status.framework */; + productReference = 8E57C25CF5CE443F1295ADD4BC091B22 /* nv_ios_http_status.framework */; productType = "com.apple.product-type.framework"; }; CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */ = { @@ -4584,24 +5089,24 @@ ); name = AFNetworking; productName = AFNetworking; - productReference = D8113DC9EAC2B89E93E63A27A3DC3124 /* AFNetworking.framework */; + productReference = D3944B59DFF6B8068D9A8AED5F0A48BA /* AFNetworking.framework */; productType = "com.apple.product-type.framework"; }; - D3054FB7F84727519F50B6AD1E49531E /* FBSnapshotTestCase */ = { + DA1F8E23559FAD774CD5CF9A3E065B72 /* RZDataBinding */ = { isa = PBXNativeTarget; - buildConfigurationList = 7532F3D5919BEFE4887DF9894DEC5740 /* Build configuration list for PBXNativeTarget "FBSnapshotTestCase" */; + buildConfigurationList = 46938EE2B78550918F329294A079F02E /* Build configuration list for PBXNativeTarget "RZDataBinding" */; buildPhases = ( - 39ED38B9D5CCE0FEA67EFD8F4AE7A9D1 /* Sources */, - 0C767A33954929B3DA39B1724C2855BB /* Frameworks */, - 9C95154159952390F453B9600C4A5CE6 /* Headers */, + 50BCC4E22156542737B2A80CB7AF2223 /* Sources */, + F959241AD43585BC2E3804C81025B725 /* Frameworks */, + 4E2F445CB3408E970FD7A2998EAD87FC /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = FBSnapshotTestCase; - productName = FBSnapshotTestCase; - productReference = 7E8F81F87A7525AACDE8A9C669B9B477 /* FBSnapshotTestCase.framework */; + name = RZDataBinding; + productName = RZDataBinding; + productReference = D17047CF053906FC5A19A855E7C17753 /* RZDataBinding.framework */; productType = "com.apple.product-type.framework"; }; E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */ = { @@ -4618,7 +5123,7 @@ ); name = "PEAR-FileManager-iOS"; productName = "PEAR-FileManager-iOS"; - productReference = 3EC0171C0ECBD86001C43CE86413DBFD /* PEAR_FileManager_iOS.framework */; + productReference = 302C7F8B1D9823AF2C4EE96924FCC61E /* PEAR_FileManager_iOS.framework */; productType = "com.apple.product-type.framework"; }; E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */ = { @@ -4637,44 +5142,24 @@ ); name = FBSDKShareKit; productName = FBSDKShareKit; - productReference = E013E09DD01AAE40BDAA3F0BBD6C9A46 /* FBSDKShareKit.framework */; + productReference = B65E53D5223314EB74989BE8E13BEA53 /* FBSDKShareKit.framework */; productType = "com.apple.product-type.framework"; }; - E427C6DCA153E01C52C89563011E9C39 /* Expecta+Snapshots */ = { + EEBC4E1DFCDB52A45CE942CFFAFC61D9 /* libsodium */ = { isa = PBXNativeTarget; - buildConfigurationList = 6785A8A6A739CF0A6DD6EB706419AD8D /* Build configuration list for PBXNativeTarget "Expecta+Snapshots" */; + buildConfigurationList = E8AA8A70B46CAC61EBD6D24BEBAADEFA /* Build configuration list for PBXNativeTarget "libsodium" */; buildPhases = ( - E9A902A8DA5CCAAEBC95356EC2F52151 /* Sources */, - EA7419253261239D5483B3966111A1FC /* Frameworks */, - CDFD4A1DE3E4E3CABD4EC05ABC8A520C /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 3D43A4E1E55598050189FEF026562CCB /* PBXTargetDependency */, - FD901727B9909D380F0E4985119FFEC1 /* PBXTargetDependency */, - F5725D79B2909BACC66D7838532A1F20 /* PBXTargetDependency */, - ); - name = "Expecta+Snapshots"; - productName = "Expecta+Snapshots"; - productReference = 758B45423011FC5DC1ECFB012F211FA6 /* Expecta_Snapshots.framework */; - productType = "com.apple.product-type.framework"; - }; - EADE3189AA04F58364455EDF9084A5D6 /* NACrypto */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7DF5308F4F18693AC281F2106415161A /* Build configuration list for PBXNativeTarget "NACrypto" */; - buildPhases = ( - 8BA6BCAE2FF3A318FB0ECFAB07DDA3EA /* Sources */, - E3E8F8A6F26D40782847CFBB211B77D6 /* Frameworks */, - 8BF7B9E6E48C602BC97042E2C9EB5DBF /* Headers */, + AD8A17D191BE4B9C061D3D5EFCD5E666 /* Sources */, + DA1197D158BA95BD5EB8F1501AA01E86 /* Frameworks */, + 8A02314F98F98CF956F313A94F8391ED /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = NACrypto; - productName = NACrypto; - productReference = EC93E1D6BE0B85FDCAA8DAA266F03543 /* NACrypto.framework */; + name = libsodium; + productName = libsodium; + productReference = 30F98C69E5EFFB6CA9BFD08B2C2CEFE4 /* libsodium.framework */; productType = "com.apple.product-type.framework"; }; FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */ = { @@ -4691,7 +5176,7 @@ ); name = "CodFis-Helper"; productName = "CodFis-Helper"; - productReference = D9E43B24730459546569B6505ABD314C /* CodFis_Helper.framework */; + productReference = 573782436DAD7DB436E7070E94D0C79A /* CodFis_Helper.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -4711,7 +5196,7 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 34984184FBD8176E64AC42C602851637 /* Products */; + productRefGroup = 1FE1C971B623ABBC47502D2EDFACA4B5 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -4719,27 +5204,27 @@ 44CAD6CE523055ED339E87154473A254 /* Bolts */, 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */, FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */, + 573215601C9E10AC9E657F27845334AF /* DDDKeychainWrapper */, 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */, 5D161BA711701D7E41E02A5702FD024E /* Expecta */, - E427C6DCA153E01C52C89563011E9C39 /* Expecta+Snapshots */, BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */, BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */, E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */, - D3054FB7F84727519F50B6AD1E49531E /* FBSnapshotTestCase */, - EADE3189AA04F58364455EDF9084A5D6 /* NACrypto */, + EEBC4E1DFCDB52A45CE942CFFAFC61D9 /* libsodium */, + 6B98E239EBD69980B948DAA20E9B44D9 /* NAChloride */, 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */, 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */, 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */, CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */, E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */, - BAD270B3B7D157B2C75600E5F76E05BB /* PNObject */, - A0EDEA0DEF9B19840A41D0CD2D162E05 /* Pods-PNObject_Example */, - B75E75E57ACA61BF8B731B80BF941C96 /* Pods-PNObject_Tests */, - C83C2EC452686E750D4A006EB041E2B6 /* PureLayout */, - 5FCB5354989B74C071469E597A5D0D16 /* RZDataBinding */, - 21B910E0FB008FE15458D3D9B59BED16 /* Specta */, - BCA035D59C91538BFAE500F02854C1FB /* StrongestPasswordValidator */, - 5D86F7E44A8244120F51D6681616221C /* UIDevice-Utils */, + 4BAA466F838AFFE707700A6CDE8B6AB4 /* PNObject */, + 1D6C7BDD6EFD522E5C9E32921881A364 /* Pods-PNObject_Example */, + 1B1056B27DA5C9A96BF4AFE5C79DD27C /* Pods-PNObject_Tests */, + 424BE1CAFEB96DECBF440D6FBF04E993 /* PureLayout */, + DA1F8E23559FAD774CD5CF9A3E065B72 /* RZDataBinding */, + 71C5D65B12960B6E3EB92983E936DAAE /* Specta */, + 839A00176009DB84BA0E2185B198E40F /* StrongestPasswordValidator */, + 35F82346315E32388BD362BF670661F2 /* UIDevice-Utils */, ); }; /* End PBXProject section */ @@ -4756,39 +5241,57 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1AE9E5DFCDE2C0DF7ADD003A51BC7D3A /* Sources */ = { + 0722A2C6F1FBED824A3CBD26B4764498 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3AF3566202539B0D4A08E2FFDAC3A0C6 /* UIDevice-Hardware.m in Sources */, - A20AF0C7CC380B5A1A69D95AC1E8DBE5 /* UIDevice-Utils-dummy.m in Sources */, + 56AFFC2BD3F3B3F6C7140D6F3ED92A7C /* DDDKeychainWrapper-dummy.m in Sources */, + BAC3E2DE0E72FB6301978AC022ED29A1 /* DDDKeychainWrapper.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1B7047D30D55383D02E21DF68CF041E7 /* Sources */ = { + 20A5D33C0487421CF67EE899598432D9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 76D1559D10EE737BC592DDAC5DF970D1 /* NSObject+RZDataBinding.m in Sources */, - 396E1F23F96BA6D9CA3E2BF5DF9AEC6F /* RZDataBinding-dummy.m in Sources */, - 307208ED0075DC30C68B06C5FA49B907 /* RZDBCoalesce.m in Sources */, - BD06C0D07F903149B765D1477DC4CEB4 /* RZDBTransforms.m in Sources */, + C40140A5CD4034131864B077258748D0 /* Pods-PNObject_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 39ED38B9D5CCE0FEA67EFD8F4AE7A9D1 /* Sources */ = { + 2EAF32FBC1BD02A64F7D51AB4A77AE18 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 47BA77226056D790A2964605F468D6EA /* FBSnapshotTestCase-dummy.m in Sources */, - C516B672FFC9DB635E0E53DA8FC9CF88 /* FBSnapshotTestCase.m in Sources */, - F0873AA02837D34381D156267B9EB005 /* FBSnapshotTestCasePlatform.m in Sources */, - 57C1DAC24BEE6C12B29AAE68DD3EBEC7 /* FBSnapshotTestController.m in Sources */, - 754197D184C23A19146DB4C9B3B90050 /* SwiftSupport.swift in Sources */, - 47EC7BD047C906B92B85399E097E258E /* UIApplication+StrictKeyWindow.m in Sources */, - 98CF4E57A36540E13153A545546A1D11 /* UIImage+Compare.m in Sources */, - 75DF265A4FEC4E42582B8570194CB583 /* UIImage+Diff.m in Sources */, - E972E6647713D21A0F21BDAD1816AA29 /* UIImage+Snapshot.m in Sources */, + 5D28DF36DCB7BA650BDF526EAB179212 /* Specta-dummy.m in Sources */, + 3AD0BDB2903FD67722218FF7D48E43C5 /* SpectaDSL.m in Sources */, + B85322ED6BD5FEABB361B2A7C228AF5F /* SpectaUtility.m in Sources */, + 7BC01D94BFEA87F24C8E6A917C6DCA40 /* SPTCallSite.m in Sources */, + E52FEDCBAF17A9BC78AB4811F58C5011 /* SPTCompiledExample.m in Sources */, + 5D27A36CE393AC2E486B2D6B1DFAACA2 /* SPTExample.m in Sources */, + AA1CF895E4F98195DD4B025F05AD96B9 /* SPTExampleGroup.m in Sources */, + 79770622DD40F89CB403652628DF876E /* SPTSharedExampleGroups.m in Sources */, + 5E470D2CB5EF37EA4AA26C958EFD3EA9 /* SPTSpec.m in Sources */, + 0AC2AA0476EF58104776BE25F7C3AC8E /* SPTTestSuite.m in Sources */, + CE839798397718C2A1AD54273EC6196F /* XCTestCase+Specta.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B4FB13F6835601C8470CF2788E8CF5F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C3084C37CC2E5A6ACB3A15A1730A533B /* NAAEAD.m in Sources */, + 128904EF04A983CFEF249874D2DD3A7F /* NAAuth.m in Sources */, + 79B185266265A589AF9817B5443A37CB /* NABox.m in Sources */, + 643BEF7F2ABB10B5B8D3C15C164616FD /* NABoxKeypair.m in Sources */, + 8282E5426515096837229BB9E0D8A18F /* NAChloride-dummy.m in Sources */, + D2D4DA00239782D6BE375EF7FCAD105E /* NAInterface.m in Sources */, + 87CCA7307FF2003B18744C5AF03F7509 /* NAOneTimeAuth.m in Sources */, + 5AB42719B628D139D033B748582E7C30 /* NARandom.m in Sources */, + 6038E163CD2F497BE7F5DC2D9A55DB2A /* NAScrypt.m in Sources */, + 270035A1112D4ADDFF9CDD551408154C /* NASecretBox.m in Sources */, + 36DEAFAB77861F8ACF89880FD66084EF /* NASecureData.m in Sources */, + 5E13A84FF7AFEF3A88BFF2735C307CF9 /* NAStream.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4801,29 +5304,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5078D7381F08184876D05E154EB8DFC8 /* Sources */ = { + 50BCC4E22156542737B2A80CB7AF2223 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B03DE4204DD68123A30A75BD8E8BDA09 /* Pods-PNObject_Example-dummy.m in Sources */, + CF52995EE5C6983F3F91C4947E646D7F /* NSObject+RZDataBinding.m in Sources */, + BE3CADA8FA7A64B8C57EFEA8DD9703C3 /* RZDataBinding-dummy.m in Sources */, + DAA835E0CC5546CCA0D36BEA0F5E6BAA /* RZDBCoalesce.m in Sources */, + A90113DBD495FDAE5473A456D36AA74E /* RZDBTransforms.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5BB3FBA1C308E80B904A714F4F781F69 /* Sources */ = { + 639695F709D8EDB63F34D938BAF58869 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A4D708563D06FCC4791D002723CBA985 /* Specta-dummy.m in Sources */, - D490834AA1304BF36991A257F3366648 /* SpectaDSL.m in Sources */, - 6F1C8C2851E8B7476992360408E05B40 /* SpectaUtility.m in Sources */, - 146D2FD2E3B98DA591885219099F2A4A /* SPTCallSite.m in Sources */, - 255345DF9F3F6DDC70B0ABAF2775324B /* SPTCompiledExample.m in Sources */, - B376B4A777F62028AF0965D93658413E /* SPTExample.m in Sources */, - 5386920B6032F8686000D909CFF26041 /* SPTExampleGroup.m in Sources */, - 9695B31D33EA0EC9CFB42B9D8ABC447D /* SPTSharedExampleGroups.m in Sources */, - FCDA06700D1989687F2471414453A57A /* SPTSpec.m in Sources */, - 20A2A483CDC911D6DB2EAD12444D1406 /* SPTTestSuite.m in Sources */, - 7F1209D2DD89FBCDABDA3CDBB0DDB49D /* XCTestCase+Specta.m in Sources */, + 0ED813054137D3E0B171696A657109F7 /* Pods-PNObject_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4859,11 +5355,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 73298C149F2DBD696717D05E46F35445 /* Sources */ = { + 6EE5917AFEB9D30B9BE9C6DF6608B263 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B373B975F8DBE6A437AF20EBA4686EA3 /* Pods-PNObject_Tests-dummy.m in Sources */, + 764F70D806B5A72D0080E79C706A4B8E /* ALView+PureLayout.m in Sources */, + CC5A6E6AB0050167A4047CB81A791B5A /* NSArray+PureLayout.m in Sources */, + 86EFD95B8C6BC8EF4E08F15A9EA25B48 /* NSLayoutConstraint+PureLayout.m in Sources */, + E473649E9A24A32F9D9A14A6765C47DD /* PureLayout-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4891,6 +5390,30 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 80AAEDB164E61E9D7D29CF61473634B2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1AEECD97DD2D0B6E0C6A177FBFEA64FE /* AFHTTPRequestSerializer+OAuth2.m in Sources */, + 72EADEA332F717460AF33960CDDEEB26 /* AFJSONResponseSerializerWithData.m in Sources */, + 0918BC3B513AE3D4E3ACBCEC0D88BF51 /* AFOAuth2Manager.m in Sources */, + 72290ADD3DAA26E7607690DB3360E242 /* AFOAuthCredential.m in Sources */, + D549B06597C91A43BE2CC0219D27D6A0 /* PNAddress.m in Sources */, + 2CA24B051D7E49E50D7F3BCC04E944E5 /* PNInstallation.m in Sources */, + 4178542929955F808F39AB6A1601E182 /* PNLocation.m in Sources */, + 3AC116D56F804B1DF934A242553DE0AA /* PNObjcPassword.m in Sources */, + 2FB61F710A4D1E16360A0433BFA84157 /* PNObject+PNObjectConnection.m in Sources */, + 1CF82D57A79EC85BEF1BC056D655EB00 /* PNObject+Protected.m in Sources */, + 7472D009C5DEFA1615F44E876C025821 /* PNObject-dummy.m in Sources */, + 35577274E05CF0534BE7ECBD39304709 /* PNObject.m in Sources */, + C8AAD8724E27CC52CC112D67734E921A /* PNObjectConfig.m in Sources */, + D4C5CB0E76A5FD2E4A028A2B72BFAA62 /* PNObjectFormData.m in Sources */, + 21C496893F6149A469C2F5807E4CA36A /* PNObjectModel.m in Sources */, + 898C927EB45DAB1F967CB239402C6221 /* PNObjectUtilities.m in Sources */, + 72AAE7C46F67FAC5D4EB067DFCC37A9B /* PNUser.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 83F75A1B803B577D4CFFB4B169D15A2D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4939,37 +5462,138 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 8484938038BFB285AB8177E69FBFEB7A /* Sources */ = { + AD8A17D191BE4B9C061D3D5EFCD5E666 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 01D662EA9BD22907E92F1B2621310A07 /* ALView+PureLayout.m in Sources */, - 0D5BB675E2628E585B3A7D47660D203A /* NSArray+PureLayout.m in Sources */, - 1E32F0FAC5350A4EA7444263EC0415D9 /* NSLayoutConstraint+PureLayout.m in Sources */, - 19300DAA3E2216FC80B1D4DC7A7D358A /* PureLayout-dummy.m in Sources */, + 8BDB790BF8A351EA807251DD514DDF0E /* aead_aes256gcm_aesni.c in Sources */, + 19DC6D479123C767BC5687BC53F574C2 /* aead_chacha20poly1305.c in Sources */, + 827AD46CB6902B960915E12AE921DD80 /* after_curve25519xsalsa20poly1305.c in Sources */, + 85385D664963B071E79CDDDBCDBF5CAF /* afternm_aes128ctr.c in Sources */, + BCDF52E78690D4B30C7E834E629A542E /* argon2-core.c in Sources */, + 38CDF229C06C5A3740C09283FD7F37A7 /* argon2-encoding.c in Sources */, + 9DEE98791840C3F526C73E4BDDA89A8F /* argon2-fill-block-ref.c in Sources */, + DA8129140A7E810F59EC73958097F95E /* argon2-fill-block-ssse3.c in Sources */, + F8212911EB928E3209B097F4F121C133 /* argon2.c in Sources */, + 7C06193D80EF69FAF4D0B9F6ADEBC5D3 /* auth_hmacsha256_api.c in Sources */, + 6943508215AFE40C751DCF4BDA8B9D7F /* auth_hmacsha512256_api.c in Sources */, + B58E2916775011DAEA54AD8F38BA359D /* auth_hmacsha512_api.c in Sources */, + F2D19F833A1F4150E543CA38B89B66E8 /* before_curve25519xsalsa20poly1305.c in Sources */, + EBC3BC3A9CDD0A2B899097FC112A4890 /* beforenm_aes128ctr.c in Sources */, + F5255475CE28597B0BC582DD134D73D8 /* blake2b-compress-avx2.c in Sources */, + DB0D5C8BB653F26D7F40DE6EA0209038 /* blake2b-compress-ref.c in Sources */, + 2C8E2492BD30EC71E9E0A55A5D9443D7 /* blake2b-compress-sse41.c in Sources */, + 2D01BFD69F263864878CA193EEB7867B /* blake2b-compress-ssse3.c in Sources */, + CA72AC2ACBC8AB62839653DDCDCF2703 /* blake2b-long.c in Sources */, + 820D0CDFABA6DAB43BEA945BA2C11B0D /* blake2b-ref.c in Sources */, + 08792B810EEFCFD0CE75F30A261E5989 /* box_curve25519xsalsa20poly1305.c in Sources */, + 5CB8169B231A566BC462BDF5E2FAFC46 /* box_curve25519xsalsa20poly1305_api.c in Sources */, + AE3CBD0DCE13ED8858937A646FB9ED7C /* box_xsalsa20poly1305.c in Sources */, + 12F937C67D5CEFEF3B8D87E9E765010C /* consts_aes128ctr.c in Sources */, + CE53BB38C51993001F2A5D0962BA78AE /* core.c in Sources */, + 73FFAC414EA4AD5BA7E080F9E3681A20 /* core_hchacha20.c in Sources */, + 52FA4CA1C1D36FD873C0DB95C7485ED1 /* core_hsalsa20.c in Sources */, + 92C499C5A1B20ED1150219163C6F9F7F /* core_hsalsa20_api.c in Sources */, + A6C07BF730F368B78B586F6B94B6377F /* core_salsa20.c in Sources */, + 33848F8815536372A3D7858FFBD2DF1D /* core_salsa2012.c in Sources */, + A6ECB4EEBEE15EFE9F34C6572150B7F9 /* core_salsa2012_api.c in Sources */, + 63A2DA954ECA595EB48E9B91DC144747 /* core_salsa208.c in Sources */, + F94B4C7D119EFFD3709FACA09FC29DD4 /* core_salsa208_api.c in Sources */, + 9979644FD3A3B93B8B2D5E5203049E8C /* core_salsa20_api.c in Sources */, + 395F93DE9120969383500187361FBA80 /* crypto_auth.c in Sources */, + 3048C4D7898F4C1E649FD6523912E7B3 /* crypto_box.c in Sources */, + 1B221CA4D60E450B4A5FEF859374E82E /* crypto_box_easy.c in Sources */, + 7BF61A7F199C061FFD97B5DFC0093E76 /* crypto_box_seal.c in Sources */, + E911ECAD838930A098AA17BF8F407105 /* crypto_generichash.c in Sources */, + AAD2EAC07B1D925527961A43060AA27A /* crypto_hash.c in Sources */, + EB2C1F8C9F275AAEBF357189A1471713 /* crypto_onetimeauth.c in Sources */, + C8552FD03155106BA7E33DF1397D9EF2 /* crypto_pwhash.c in Sources */, + A0F9F33A70919F2F0A1679C948B10C29 /* crypto_scalarmult.c in Sources */, + 628D0BFEF8F3C607E01BDF6C1E49485D /* crypto_scrypt-common.c in Sources */, + 1FAA48ED512371889397595019CEDE58 /* crypto_secretbox.c in Sources */, + 4EC759EE301F6A979662B7D6FD34D4BA /* crypto_secretbox_easy.c in Sources */, + C1C4CC96F5BE9301B4A95AED36420388 /* crypto_shorthash.c in Sources */, + 9504DE7871C6048F0CCC877288386F05 /* crypto_sign.c in Sources */, + 8DD57CE98A36AB9731388125FEA0E41A /* crypto_stream.c in Sources */, + 7212822ACA1BA68E18A3AECC857CB750 /* curve25519_donna_c64.c in Sources */, + 31623D59C6FED3C195911FD2D00244A3 /* curve25519_ref10.c in Sources */, + 60C4556E0AFB4CDB3A6BE72039FA8611 /* curve25519_sandy2x.c in Sources */, + E4677743A63D7B53DED69CB4D59BB2BE /* fe51_invert.c in Sources */, + 9622D76F6002CA7351447396533D7C96 /* fe_frombytes_sandy2x.c in Sources */, + DE3E46A0568C26D09882D878F700FB77 /* generichash_blake2_api.c in Sources */, + 3EC56E1235286FB4E1A7E10779E98073 /* generichash_blake2b.c in Sources */, + 4E2A4FD2A24B056550B94FA576419765 /* hash_sha256.c in Sources */, + 58B890DED147641DE47750D57CADBFC3 /* hash_sha256_api.c in Sources */, + 5316512DE0482114DA2DE19BE2F53FC9 /* hash_sha512.c in Sources */, + D3ADE7721F2C989789CE1D0827CD7EFC /* hash_sha512_api.c in Sources */, + 1F77AC3523524C98DE314AEC02D8A475 /* hmac_hmacsha256.c in Sources */, + 080CE28FA2E511DD434E1A60C23A836D /* hmac_hmacsha512.c in Sources */, + 3E6A84E1F986CAB24F26EF6299FDE8D6 /* hmac_hmacsha512256.c in Sources */, + C3C9531CCFE473B3E118AB37D1865A59 /* int128_aes128ctr.c in Sources */, + 7B1A6207E64F8521DE5F8F9EF062E297 /* keypair.c in Sources */, + 59A52741FFE000568EFF7C0421AE60A5 /* keypair_curve25519xsalsa20poly1305.c in Sources */, + 2CC3C763F8D558BA96F0AE55933D833D /* libsodium-dummy.m in Sources */, + ACF0D647B71FA802D6C3ECC6E198628E /* obsolete.c in Sources */, + 4C96EE9391CC1616EB80928370D18086 /* onetimeauth_poly1305.c in Sources */, + 1276973517303300272FF11F72580A32 /* open.c in Sources */, + 3CD344891EBAFEFED158DB3E4E346CE5 /* pbkdf2-sha256.c in Sources */, + D503F1EFDDB8AF07A5FE1D1FB191BC6C /* poly1305_donna.c in Sources */, + 97FEF428DA2CFF0B3C555C833A686DD4 /* poly1305_sse2.c in Sources */, + F67AA4F363093BCE97696670054A40FD /* pwhash_argon2i.c in Sources */, + 0DE833FF7E092C1556E0F8B2BA616F8B /* pwhash_scryptsalsa208sha256.c in Sources */, + 047D9502E026F29B032174C0709C888C /* pwhash_scryptsalsa208sha256_nosse.c in Sources */, + E77284673829B2D8EA41CE159DBD2DE3 /* pwhash_scryptsalsa208sha256_sse.c in Sources */, + 65BB0F15EF53C55699DB2BF0B3A5D992 /* randombytes.c in Sources */, + 01304EC2A48EABC7055A27832BC39814 /* randombytes_nativeclient.c in Sources */, + F1125F9164D94B13D584BAD41A28BDC3 /* randombytes_salsa20_random.c in Sources */, + 22ADFEA49087F31DBEA1DD658A35C408 /* randombytes_sysrandom.c in Sources */, + E9C81B07213E38767D80DA7693C2B346 /* runtime.c in Sources */, + 6D024C2EE1C5E6E72B6CD28199B5DB28 /* scalarmult_curve25519.c in Sources */, + 0963537253F0FF424C54493870812E16 /* scrypt_platform.c in Sources */, + 5AFD42B6ADC93B83047D13E3961611DA /* secretbox_xsalsa20poly1305_api.c in Sources */, + 6AEA1711572AC9AF954195C13519F8C7 /* shorthash_siphash24.c in Sources */, + 79BCF4F261CC0C909A26D95D1E3F9586 /* shorthash_siphash24_api.c in Sources */, + 591B5B18E93D2CAEDD105BA0515798CD /* sign.c in Sources */, + A1C44A11AEEF8EEF6105C073F366C971 /* sign_ed25519_api.c in Sources */, + 2766A7C054F420818AACA2281A5595EF /* stream_aes128ctr.c in Sources */, + B07F595AE8832CB65837D4360F0EE7D5 /* stream_aes128ctr_api.c in Sources */, + BD176ECD79B65ED5C5657F449E7F85C3 /* stream_chacha20.c in Sources */, + B38F34D27D0A5DE7A91BAEB9C78196A7 /* stream_chacha20_ref.c in Sources */, + B0949097FABBE169E0C3F52B02603192 /* stream_chacha20_vec.c in Sources */, + 9CECD5F6A3F290FEC0DE6680F256DEFC /* stream_salsa2012.c in Sources */, + 1B270891CA7F081687C618CF075C6568 /* stream_salsa2012_api.c in Sources */, + A94C68CE9ADAA2FCF7645A5CB191E98E /* stream_salsa208.c in Sources */, + 914C959474B2DE95B7EFC69710A1A5FA /* stream_salsa208_api.c in Sources */, + F964BCA653FACE35339A0F3C252D02A7 /* stream_salsa20_api.c in Sources */, + CC782EB8C554CE07C9C047AFF3A12D02 /* stream_salsa20_ref.c in Sources */, + FA15FBFC4295E564A07E25D9D646C87E /* stream_xsalsa20.c in Sources */, + 2FDDDCA95F3BCFCB00B309EAD2D3C595 /* stream_xsalsa20_api.c in Sources */, + D90891BFD658E7054A9315E1ED042AFD /* utils.c in Sources */, + 7E2C83BADC1E5B4D5EAB8C984685C1C2 /* verify_16.c in Sources */, + 5906163B49AC536040A671D3DCC928F1 /* verify_16_api.c in Sources */, + 768D11BD318566BEDAAC355098CAC82C /* verify_32.c in Sources */, + 0C3297B801FD05A3C295712D763D46CD /* verify_32_api.c in Sources */, + FFB45FD353BEFEEADF9A5D9300158971 /* verify_64.c in Sources */, + 0B51AAC501B335841F0F712BC2645191 /* verify_64_api.c in Sources */, + 92888243A36A746D04F338DD298DB60C /* verify_hmacsha256.c in Sources */, + 885936C1D598DFB427B277AABEFC9184 /* verify_hmacsha512.c in Sources */, + E3B2D6EFD0238BD517A49AEED04ECAA3 /* verify_hmacsha512256.c in Sources */, + C238C7C635F23436B8B84A21F1E8BBE9 /* version.c in Sources */, + E5C8848C9BFCF14FCAC240F87A541B19 /* x25519_ref10.c in Sources */, + FEF80304DCC690B918EF6E434B2C3F34 /* xor_afternm_aes128ctr.c in Sources */, + E27D51AD0B460AEE7053FB3ADA8A1363 /* xor_salsa2012.c in Sources */, + E44123E789FAA66AEDEA8F9277D962CD /* xor_salsa208.c in Sources */, + D329CFAA6D9841DB61D1B2925E0D7711 /* xor_salsa20_ref.c in Sources */, + DF13E9C5A80740EAAB0C8B8CAE20B822 /* xor_xsalsa20.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8BA6BCAE2FF3A318FB0ECFAB07DDA3EA /* Sources */ = { + B25999F68DFE2D5459915B17AD6C9D6D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 806EDC86C4328EB13B0205DB3D0B6CB9 /* KeccakF-1600-opt32.c in Sources */, - 79AFF093369736722F048C6C957507C7 /* KeccakNISTInterface.c in Sources */, - 8C0C4475FE508AE164781EA2CC81B1DE /* KeccakSponge.c in Sources */, - 02DE5DA34DCF1A86A851CD9D650635FD /* NAAES.m in Sources */, - E5C53685B50C1CA14800A6E501FB5BDB /* NACounter.m in Sources */, - 056AD7848AE876E8978F9B7E1B929DB6 /* NACrypto-dummy.m in Sources */, - A810DC30B45012B7DFE9A890517DDF93 /* NADigest.m in Sources */, - 544721905C7D3AC402939979D447A056 /* NAHMAC.m in Sources */, - 153ECED5046F5245055EF54247FC0512 /* NAKeychain.m in Sources */, - 5105976EB23D394E3E12CCA8EF38D27A /* NANSData+Utils.m in Sources */, - 2BFDC7247E503D15507D8D23B2CBFFDD /* NANSMutableData+Utils.m in Sources */, - 3280169B2A729C560FCD6E5A82CF0683 /* NANSString+Utils.m in Sources */, - 38C63594F5392EEBACB8CE86EACAAD6D /* NASecRandom.m in Sources */, - BE6DEBB84782808DEFB20C4BCA6E030E /* NASHA3.m in Sources */, - 0FC0C6CDBB7DF49609A69F4EDB22DFE2 /* NATwoFish.m in Sources */, - 51E55254E279164D31743ABB2B0F9E35 /* twofish.c in Sources */, + 9CF40ED0DDD9B869CA96769F69B6A2B8 /* StrongestPasswordValidator-dummy.m in Sources */, + 9D4B3A155F316BEFDBC7037538CA9178 /* StrongestPasswordValidator.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5012,30 +5636,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BC75C71EFCD0B3556978237C5674C8AA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9C6436BBDE66CC89B982010C55DF8850 /* AFHTTPRequestSerializer+OAuth2.m in Sources */, - B5B8DB6F10916DDBDF55AFCB9A74AE10 /* AFJSONResponseSerializerWithData.m in Sources */, - 8D9845387F4B0C38178FBB6CAFD9DFFA /* AFOAuth2Manager.m in Sources */, - 3B3BFE1743E56D8920631C1F28216759 /* AFOAuthCredential.m in Sources */, - 208503A7F9767147A4C48C9536DC2FAE /* PNAddress.m in Sources */, - AEC80848C5DDA36B1B26938743A70B95 /* PNInstallation.m in Sources */, - A4E2881F30B359C55F13057DB3121C7E /* PNLocation.m in Sources */, - 7208F7AA05E3AF326027AD5C3CE49C41 /* PNObjcPassword.m in Sources */, - 677CE4FB5C80359B75D4ACFEBD307AC1 /* PNObject+PNObjectConnection.m in Sources */, - 5F5D6507EB22C93BD14296088151A1F1 /* PNObject+Protected.m in Sources */, - BFA3C4B54938817031F61A996A6C0CCC /* PNObject-dummy.m in Sources */, - 511D62B87A3543567E66A9416BFC4D6C /* PNObject.m in Sources */, - 7DF1A51DB30128AE484809A749564D86 /* PNObjectConfig.m in Sources */, - C314F53A9BF937A1B62814D0ACE69234 /* PNObjectFormData.m in Sources */, - F8C04FEE6F772FB216B373A1A58FA201 /* PNObjectModel.m in Sources */, - 23B48C221B30598459B9EF801A35232F /* PNObjectUtilities.m in Sources */, - DE356A743F29233491039F89451F519F /* PNUser.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D361DB962ABB89284BE43E59F5233513 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -5134,6 +5734,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E2C95BBBC364A86AC33E7065B5A6A8E6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE4C257D27525AF8AD1FB09D2ADC9B70 /* UIDevice-Hardware.m in Sources */, + 8516EABCDBFFD6EAF92B6B1FA76B6256 /* UIDevice-Utils-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; E77C9AEACFFDF679958B3B297B98FBD1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -5176,16 +5785,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - E9A902A8DA5CCAAEBC95356EC2F52151 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2CC183AE5C5A4EA8EE0E14768F464BBB /* Expecta+Snapshots-dummy.m in Sources */, - 6C88FB17C3AE49E50ABF4C36176B55BB /* ExpectaObject+FBSnapshotTest.m in Sources */, - 0D3FBF37E9E7829108F70F4D5658918A /* EXPMatchers+FBSnapshotTest.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; F0A9ADF7CAD24600661F4876D9FA0765 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -5206,15 +5805,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FF6E628648CAFF6338CEA6678325C588 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 51B51F47C920126B81F02719C368B3FB /* StrongestPasswordValidator-dummy.m in Sources */, - 77E842DD77C1CCE9DC49E0A2173D3753 /* StrongestPasswordValidator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -5224,23 +5814,29 @@ target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; targetProxy = C119156AD6383002279AD66EA6628773 /* PBXContainerItemProxy */; }; - 04EFFB320AD009086ADCA789D9BCE6EF /* PBXTargetDependency */ = { + 00A4A0167930FB5286ED90B5387E8BB0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Expecta; - target = 5D161BA711701D7E41E02A5702FD024E /* Expecta */; - targetProxy = 39F5D09CB2C48D6482642A178D80B105 /* PBXContainerItemProxy */; + name = StrongestPasswordValidator; + target = 839A00176009DB84BA0E2185B198E40F /* StrongestPasswordValidator */; + targetProxy = C604E4CB23D8EF4095584703900CF72B /* PBXContainerItemProxy */; }; - 0848E43C7C6CE43CC3221436F2B37882 /* PBXTargetDependency */ = { + 03639B46FDF4375E1FA5463C69E95C13 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = DJLocalization; - target = 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */; - targetProxy = 34E1B227C19884E70AD7483725238783 /* PBXContainerItemProxy */; + name = FBSDKCoreKit; + target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; + targetProxy = 71945E5C1DC0A5B516A1A3ECDF84C3CF /* PBXContainerItemProxy */; }; - 0C52D7E0B6BA5EBBD11F26C3F5AAB486 /* PBXTargetDependency */ = { + 065BA8F9F3F0D074EAD628BF4F90E2D7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PNObject; - target = BAD270B3B7D157B2C75600E5F76E05BB /* PNObject */; - targetProxy = 692414909CEEF3783C24A3F9DF2C7FD6 /* PBXContainerItemProxy */; + target = 4BAA466F838AFFE707700A6CDE8B6AB4 /* PNObject */; + targetProxy = A0EE3B0A283732C12E536526233AD6C6 /* PBXContainerItemProxy */; + }; + 0C30B6E819120BF2F430325B62030993 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DDDKeychainWrapper; + target = 573215601C9E10AC9E657F27845334AF /* DDDKeychainWrapper */; + targetProxy = C2879BBDB02516417F0DAC8725ED8F42 /* PBXContainerItemProxy */; }; 0D21BB70CACF08DBADF26A340BBEB553 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -5248,95 +5844,101 @@ target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; targetProxy = 00AC2B9B199B4744980E06F53BFA6824 /* PBXContainerItemProxy */; }; - 0E5FEDE4C63BB1997BF5EDCF4C6EE1BE /* PBXTargetDependency */ = { + 15BA25003C775F1ADCAFBC98CBE20754 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSDKShareKit; - target = E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */; - targetProxy = F6A4EBBA91F9A11856F0A0A297B3797C /* PBXContainerItemProxy */; + name = FBSDKCoreKit; + target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; + targetProxy = B410404D4264114F4052DA95AD7759EE /* PBXContainerItemProxy */; }; - 2482ADC1DBD8D272AFA39D965F41A890 /* PBXTargetDependency */ = { + 17D32573E1A0809816A87EAC5FE8BB05 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = DJLocalization; - target = 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */; - targetProxy = 2E7EAB2101603827D735C00172AE71C0 /* PBXContainerItemProxy */; + name = libsodium; + target = EEBC4E1DFCDB52A45CE942CFFAFC61D9 /* libsodium */; + targetProxy = 0E6C9FB1C81033A6D9BD017EB34DAF4B /* PBXContainerItemProxy */; }; - 2998B08BEFEB86A6C48A3EDF8FFD156B /* PBXTargetDependency */ = { + 1C1FE4B01E0BCEFB45983DB41D5DB2AE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = StrongestPasswordValidator; - target = BCA035D59C91538BFAE500F02854C1FB /* StrongestPasswordValidator */; - targetProxy = 58AE8BCDC554A2A4F69866C38FF369CC /* PBXContainerItemProxy */; + name = "NSUserDefaults-AESEncryptor"; + target = 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */; + targetProxy = 86D2603E2663CA4576EDBFCE3AAEA91C /* PBXContainerItemProxy */; }; - 2F58663DF885F6DFBCBB32671464CAF5 /* PBXTargetDependency */ = { + 24F61D6FD033319AF6A7E2EA49718BDD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = StrongestPasswordValidator; - target = BCA035D59C91538BFAE500F02854C1FB /* StrongestPasswordValidator */; - targetProxy = 742567CAE96E4D5569AE83745E70000B /* PBXContainerItemProxy */; + name = FBSDKLoginKit; + target = BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */; + targetProxy = B02A4AB364FFA653133B1537D21559A8 /* PBXContainerItemProxy */; }; - 3BF7E412E356BF195B17FF61DF6CF876 /* PBXTargetDependency */ = { + 286C31CF6276A3847433D2F5C5F04675 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "UIDevice-Utils"; - target = 5D86F7E44A8244120F51D6681616221C /* UIDevice-Utils */; - targetProxy = CCBD49CED791909A33C2331FA9616658 /* PBXContainerItemProxy */; + name = DDDKeychainWrapper; + target = 573215601C9E10AC9E657F27845334AF /* DDDKeychainWrapper */; + targetProxy = 2B99B745C8BCAD520FB426743DEECDFE /* PBXContainerItemProxy */; }; - 3D43A4E1E55598050189FEF026562CCB /* PBXTargetDependency */ = { + 2A3D9247B87C7C5FDF94F5F53D9D7B85 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Expecta; - target = 5D161BA711701D7E41E02A5702FD024E /* Expecta */; - targetProxy = 5C6D7B5A976F2A92FE24BD14BCB09413 /* PBXContainerItemProxy */; + name = Bolts; + target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; + targetProxy = CF1D200DACDBBF1B5491D876C858C7FF /* PBXContainerItemProxy */; }; - 3E7E8E1FF89C4B6F77E57D3E8517DD5B /* PBXTargetDependency */ = { + 2EEFEA19429B72D57C15C12A33D22D0C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = CocoaSecurity; + target = 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */; + targetProxy = 57BE02D9CBAFA5A6821831D151E92CE0 /* PBXContainerItemProxy */; + }; + 2FDB9242B0ECA1B88D7C7E1471CF21C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RZDataBinding; + target = DA1F8E23559FAD774CD5CF9A3E065B72 /* RZDataBinding */; + targetProxy = 023E76DD5772E8B13EF91369986E6311 /* PBXContainerItemProxy */; + }; + 3609C4DA4941204E99BFA19CA31F7A45 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FBSDKLoginKit; + target = BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */; + targetProxy = 67AF4C326005631738C7AB33794F8AFB /* PBXContainerItemProxy */; + }; + 4026558D870A7D71B74112EB27B6644F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "NSString-Helper"; target = 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */; - targetProxy = 61FC49E91C39F165CA991ABDF2A44A8C /* PBXContainerItemProxy */; + targetProxy = CA6ADA9824A817BDE7F0621E9CFDF284 /* PBXContainerItemProxy */; }; - 3EE598C38C42CAD56DF21FDF51B34B99 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "PEAR-FileManager-iOS"; - target = E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */; - targetProxy = 3BD06F65443CEB71BD8DF48A49DCBF6C /* PBXContainerItemProxy */; - }; - 46FF8D6E714716BDC131C8B58060E6B5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "UIDevice-Utils"; - target = 5D86F7E44A8244120F51D6681616221C /* UIDevice-Utils */; - targetProxy = 3AAF0FB14DD145789F1A155ADD3ED2EE /* PBXContainerItemProxy */; - }; - 48EC50F5402DEC9286A279867493C95A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = StrongestPasswordValidator; - target = BCA035D59C91538BFAE500F02854C1FB /* StrongestPasswordValidator */; - targetProxy = 1506F7BA6FCBF4ADA6B96D3775020A51 /* PBXContainerItemProxy */; - }; - 4E5D8312F010F434C8B7A875E4F7D3F2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "nv-ios-http-status"; - target = CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */; - targetProxy = 342FE6EBF9609E8941ADA04282504CBD /* PBXContainerItemProxy */; - }; - 5135CD3DE25726BA6CC116133CC47ACE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "nv-ios-http-status"; - target = CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */; - targetProxy = C2140700397E9CCD9E9B6488664E9604 /* PBXContainerItemProxy */; - }; - 56F5C643020AEE05C8956D72F82A2A0F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = NSDate_Utils; - target = 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */; - targetProxy = ED9061F6A250707291BE99110D5287AA /* PBXContainerItemProxy */; - }; - 58261F26D62B4B87E5222E0D1C92DE29 /* PBXTargetDependency */ = { + 48ECC509B7F18B3847B88248B499049D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = RZDataBinding; - target = 5FCB5354989B74C071469E597A5D0D16 /* RZDataBinding */; - targetProxy = AC6FBBC01C6C034E801276E4AF800594 /* PBXContainerItemProxy */; + target = DA1F8E23559FAD774CD5CF9A3E065B72 /* RZDataBinding */; + targetProxy = 3F15215373F6937DF355A48C18B48455 /* PBXContainerItemProxy */; }; - 5AE29FC964783FB255E37D1C23A898EA /* PBXTargetDependency */ = { + 4B53ADBCAF315E8892E475BCEF4EF287 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = FBSDKShareKit; target = E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */; - targetProxy = BF2A3702A12916838B0CC723D5FB53AC /* PBXContainerItemProxy */; + targetProxy = 123C92CE41767F59AD6838CD0509754F /* PBXContainerItemProxy */; + }; + 512DE2E3DD915A65090E56CD91A6FBE4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DJLocalization; + target = 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */; + targetProxy = 19CF8F67D76D95521C11B6A43166961D /* PBXContainerItemProxy */; + }; + 5757664C8A5D2C5413CEAC432AAD6FA8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = libsodium; + target = EEBC4E1DFCDB52A45CE942CFFAFC61D9 /* libsodium */; + targetProxy = 2EC9C281AA6010F153E913425445B66B /* PBXContainerItemProxy */; + }; + 5AE561F4C550D1D08E6CE1C558066FC8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = NSDate_Utils; + target = 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */; + targetProxy = 8199EE514193F64C41E62B43A61E1170 /* PBXContainerItemProxy */; + }; + 5B167D7A63D07DA57DF4165B1843F54D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "nv-ios-http-status"; + target = CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */; + targetProxy = CC8910A58F1D86DE97F19675E5609461 /* PBXContainerItemProxy */; }; 5BB325A61E43D2A27F0766ED06A51AA2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -5344,59 +5946,29 @@ target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; targetProxy = 9F6E9621C6955D7EF1483415D4B839FA /* PBXContainerItemProxy */; }; - 5C1E60D237933950018C30818F51A599 /* PBXTargetDependency */ = { + 5EC21177BFE4B7A6B7DD7340FD23F1FC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = NACrypto; - target = EADE3189AA04F58364455EDF9084A5D6 /* NACrypto */; - targetProxy = 76E4B248FC79DA7150EDFD81A8B7596B /* PBXContainerItemProxy */; + name = NAChloride; + target = 6B98E239EBD69980B948DAA20E9B44D9 /* NAChloride */; + targetProxy = 12DC69F15A345255CFF3C8D97AD69A39 /* PBXContainerItemProxy */; }; - 5D17161790BEAA9F448032976E4A5301 /* PBXTargetDependency */ = { + 63170B982C7272DE982B33D88574078A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = NSDate_Utils; - target = 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */; - targetProxy = EEA090877EABC9DD496DB8EB6034CA4C /* PBXContainerItemProxy */; + name = libsodium; + target = EEBC4E1DFCDB52A45CE942CFFAFC61D9 /* libsodium */; + targetProxy = 43B333719627187BF56F814E64273BC5 /* PBXContainerItemProxy */; }; - 5FE5AD04D5494CFAD1FE33111CBC5EB7 /* PBXTargetDependency */ = { + 643E1696B737E69339C42D70A396BBBE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "PEAR-FileManager-iOS"; - target = E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */; - targetProxy = A59DEF5E3A15B21BBF5A77955B8DD6DC /* PBXContainerItemProxy */; + name = "UIDevice-Utils"; + target = 35F82346315E32388BD362BF670661F2 /* UIDevice-Utils */; + targetProxy = DBBB9D631E658376C7FEBF9B77C6B169 /* PBXContainerItemProxy */; }; - 6000B8913C20385D079A7BCECB933366 /* PBXTargetDependency */ = { + 679B8DC8F0704697C98AADE7CB9490B0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "CodFis-Helper"; - target = FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */; - targetProxy = CABE21FE6B7E8F131FB38FEA204A4BEE /* PBXContainerItemProxy */; - }; - 6B960AACF469BF5F5B7B906658E35B66 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CodFis-Helper"; - target = FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */; - targetProxy = 75EA1D259C0EDC97ADE295C462B9A8DA /* PBXContainerItemProxy */; - }; - 6CFBF5DA3C6F8062D5CE6F4F175D3EC7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSDKShareKit; - target = E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */; - targetProxy = CE30A364CC0AD939D7E8E290FA279CC0 /* PBXContainerItemProxy */; - }; - 72F936EC70DA4FA8FFA0C9E867AF693D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Bolts; - target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; - targetProxy = DC9FE0F07001D2911FB7E6EF15F99303 /* PBXContainerItemProxy */; - }; - 7538E904DD6C1E9958EF1E7C9E6BA5A4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; - targetProxy = 057B031226EFACD46B5C38B6BA0968D6 /* PBXContainerItemProxy */; - }; - 78306A4A6E8B983A883D1D1409103060 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Bolts; - target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; - targetProxy = E2CBE1FED000B16374A902BC969018EB /* PBXContainerItemProxy */; + name = NAChloride; + target = 6B98E239EBD69980B948DAA20E9B44D9 /* NAChloride */; + targetProxy = 864CAA6007ED3721AA60C41D51AFE3DE /* PBXContainerItemProxy */; }; 80AD5DDA85E197D0B89CC8B0C9192446 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -5404,59 +5976,23 @@ target = 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */; targetProxy = FF2A083AAC9EBE60D2B1225F2C88116A /* PBXContainerItemProxy */; }; - 82B4701CD33546DDD4DFA7D146AE6823 /* PBXTargetDependency */ = { + 8BE3A46407330CD198E7E6AB974DDF21 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSDKCoreKit; - target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; - targetProxy = 4F6110115A0917765C2F0ED259629895 /* PBXContainerItemProxy */; + name = "PEAR-FileManager-iOS"; + target = E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */; + targetProxy = F95742E0AFEC2175572022582A628564 /* PBXContainerItemProxy */; }; - 83049837596DD061FCFB71540DDA68A8 /* PBXTargetDependency */ = { + 8C3568B8FC514672D8BA470B5CEBCF54 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = NACrypto; - target = EADE3189AA04F58364455EDF9084A5D6 /* NACrypto */; - targetProxy = E2D73F2189DFE7BAB9FC810025CB8ABB /* PBXContainerItemProxy */; + name = Specta; + target = 71C5D65B12960B6E3EB92983E936DAAE /* Specta */; + targetProxy = B0A7489E4DC991C349CD28033239D6C3 /* PBXContainerItemProxy */; }; - 92B6BDE285C0411F48483B64091217B1 /* PBXTargetDependency */ = { + 9E127E8BC8BA1202992D86DFAF8EB8F8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = CocoaSecurity; target = 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */; - targetProxy = C5062FC75AFD02C5B02D93147D441478 /* PBXContainerItemProxy */; - }; - 939E8E9CE877E95EE321292AB1CDE2E0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaSecurity; - target = 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */; - targetProxy = DCC55C2964201D4D46BDAE33B79E25F1 /* PBXContainerItemProxy */; - }; - 95EA16C27BCBBAFFDCC90D2D53A86EB3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Expecta+Snapshots"; - target = E427C6DCA153E01C52C89563011E9C39 /* Expecta+Snapshots */; - targetProxy = 0745BAC22C2C3BA3B8178ED9B70D5FF4 /* PBXContainerItemProxy */; - }; - 985DC64FDAA98BFD48BB3E1838B0E2D3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "UIDevice-Utils"; - target = 5D86F7E44A8244120F51D6681616221C /* UIDevice-Utils */; - targetProxy = E2A9F5FFE481FBD17043AF1F5447597B /* PBXContainerItemProxy */; - }; - 9B8E013E6FF06790EA78F06D692D4C02 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CodFis-Helper"; - target = FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */; - targetProxy = 4BBA788BC9F4D21783A346C1D9C86E71 /* PBXContainerItemProxy */; - }; - A0899916715770F4D746AA799902C8CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSDKLoginKit; - target = BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */; - targetProxy = 445E45BB42E8E8F263EC32D680215EFB /* PBXContainerItemProxy */; - }; - A1372E4837976EE522846CA90217A9F2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSDKCoreKit; - target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; - targetProxy = C5E34F45CB82C067125A0A865B66ED6E /* PBXContainerItemProxy */; + targetProxy = 04753596E78B8DA0A85100C21B362371 /* PBXContainerItemProxy */; }; A2D3025B0172D57BF258B1E322973BDB /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -5464,65 +6000,11 @@ target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; targetProxy = 40FC4CD83BD73CBE0A48CA5DCF45A470 /* PBXContainerItemProxy */; }; - A2D4B6EB7F09C75DFA49C1156B5049E0 /* PBXTargetDependency */ = { + A779E6D8A71AA13C567C66B1D4107AD3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RZDataBinding; - target = 5FCB5354989B74C071469E597A5D0D16 /* RZDataBinding */; - targetProxy = 3536C0C0EB0F6EE3D8691F902C8FF798 /* PBXContainerItemProxy */; - }; - A405EDC356DA24AB169B312449F6707D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSDKCoreKit; - target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; - targetProxy = 633A05C638D24573403A7DCE6A66706D /* PBXContainerItemProxy */; - }; - A42BD92E0B1D3CEDAF5B543FCCD24AE8 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RZDataBinding; - target = 5FCB5354989B74C071469E597A5D0D16 /* RZDataBinding */; - targetProxy = 5B4773139CD6721A37B32F37856D4794 /* PBXContainerItemProxy */; - }; - A64861FF77A3E620FDA0A03F16EA0E29 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "NSString-Helper"; - target = 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */; - targetProxy = 75BB2F1AAD4ECB509E971E0AF12ACA2D /* PBXContainerItemProxy */; - }; - AA007917001CDB3B0870F36758F76A23 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = FBSDKLoginKit; - target = BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */; - targetProxy = EE697D57C767CC94F061FDD5CEA49D00 /* PBXContainerItemProxy */; - }; - AA0163E3503C59634518BE44B032A43F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PNObject; - target = BAD270B3B7D157B2C75600E5F76E05BB /* PNObject */; - targetProxy = 7897A0DD208FA87EC8BEBCB6B506D6F2 /* PBXContainerItemProxy */; - }; - AB6A5B91F4C1BC8DC7B521F1940E1DCC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; - targetProxy = A94C5C259C358C0335E6A9C01770B0A4 /* PBXContainerItemProxy */; - }; - AEDB11BD7516C49482AD396E25C5ACD3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "NSUserDefaults-AESEncryptor"; - target = 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */; - targetProxy = 53792A034F4D79D26AC72B2FCEC73319 /* PBXContainerItemProxy */; - }; - B007329862C4EBF350CCDF454868EDF6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AFNetworking; - target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; - targetProxy = F19EF54C7EEE9476313D27212F4E8AA3 /* PBXContainerItemProxy */; - }; - B2D0F74F029670DE48E8DF282A868CE6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Specta; - target = 21B910E0FB008FE15458D3D9B59BED16 /* Specta */; - targetProxy = C8D3FC5EF5787B7ACFEC5770A3A718AF /* PBXContainerItemProxy */; + name = Expecta; + target = 5D161BA711701D7E41E02A5702FD024E /* Expecta */; + targetProxy = EDCAA2AB5AEAD106FC0FBF3CA92285EC /* PBXContainerItemProxy */; }; B3340A2558851FAA4DDEE296AB4086C4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -5530,100 +6012,1175 @@ target = BEF7E6E85DB5CDE5D7A18F4F2EB8494B /* FBSDKCoreKit */; targetProxy = FFC11814CD4A0167722C986CE02596E5 /* PBXContainerItemProxy */; }; - BFC21FF6A66CAF933417CE1287B7DB89 /* PBXTargetDependency */ = { + B4FD0C54AA2BD07331F2BE8BFE5C3B48 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSnapshotTestCase; - target = D3054FB7F84727519F50B6AD1E49531E /* FBSnapshotTestCase */; - targetProxy = F7BCC7114EC9498AC6F3D50726AE28DC /* PBXContainerItemProxy */; + name = AFNetworking; + target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; + targetProxy = E01683371309F15F251AAD893960DA4A /* PBXContainerItemProxy */; }; - C884AB5BED7238D56FB2F19E66D6B5E7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = NACrypto; - target = EADE3189AA04F58364455EDF9084A5D6 /* NACrypto */; - targetProxy = 76798A234950252E7269AC7CC8EDDF6E /* PBXContainerItemProxy */; - }; - CD0428CC45218EAE95C23ABC25FADB87 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Bolts; - target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; - targetProxy = 340F58D445049B4BCA37C6B10EC52A09 /* PBXContainerItemProxy */; - }; - CD60B0942B7B7BF3C0E0AFC8B082A705 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = CocoaSecurity; - target = 1CE15060B0E33F7AE0A78865CFACF946 /* CocoaSecurity */; - targetProxy = 2C548178E4B4CB38BD0C99F9670DA5C5 /* PBXContainerItemProxy */; - }; - D08EB0B34C68A581DED4F61E7FAB4165 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "NSUserDefaults-AESEncryptor"; - target = 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */; - targetProxy = C25B57079723B15260BF52C20D9B8864 /* PBXContainerItemProxy */; - }; - D4E5D352048E70A25258BD579D1E9EDB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PureLayout; - target = C83C2EC452686E750D4A006EB041E2B6 /* PureLayout */; - targetProxy = 299D9BC3D8F67498B663A00B11BFC41B /* PBXContainerItemProxy */; - }; - D5197EC656A15306FDC99A3CDC5E546D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "NSUserDefaults-AESEncryptor"; - target = 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */; - targetProxy = 63743AB176933E9E4B132470222E5C80 /* PBXContainerItemProxy */; - }; - D726C3900158C0501DD6A6D0F35E7DEC /* PBXTargetDependency */ = { + B5DF8F90A62FB8CFF6F0E34A4C29962C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = DJLocalization; target = 3E8E8C1AA879E4E3A20A8E6F67001A6E /* DJLocalization */; - targetProxy = 142F4E9BE1CCFD8089A38BF9819F2AE7 /* PBXContainerItemProxy */; + targetProxy = E7CEEDDD7799F39620AEA2BE213DDC37 /* PBXContainerItemProxy */; }; - E5F724965C83CE465C78AE81311A7726 /* PBXTargetDependency */ = { + B7D2D3A1FB748C9A02AB8D943D818D9F /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "PEAR-FileManager-iOS"; - target = E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */; - targetProxy = 596979A9D6EC1432599A801BEDA47F31 /* PBXContainerItemProxy */; + name = PureLayout; + target = 424BE1CAFEB96DECBF440D6FBF04E993 /* PureLayout */; + targetProxy = A4E98BC22C75173201D834D066FA5D80 /* PBXContainerItemProxy */; }; - E782776392283E2055E6E2DAB3BB6D76 /* PBXTargetDependency */ = { + C6402507BFEA11972E90E58198DA4F0C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSDKLoginKit; - target = BC5000D645EEAF961C85907CDC796FE1 /* FBSDKLoginKit */; - targetProxy = 41DA6C1BDB55F8BF634B5E4B63D84E0B /* PBXContainerItemProxy */; + name = "UIDevice-Utils"; + target = 35F82346315E32388BD362BF670661F2 /* UIDevice-Utils */; + targetProxy = A39A21C9A91228ED1E565C6F19AABEBC /* PBXContainerItemProxy */; }; - E8952772DBB177E4353F4EBA2A77F494 /* PBXTargetDependency */ = { + C80D055F65F37B93397A5748EC6CE946 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "NSString-Helper"; - target = 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */; - targetProxy = 2FA1765D544196180B61F6A08A2042B0 /* PBXContainerItemProxy */; + name = Bolts; + target = 44CAD6CE523055ED339E87154473A254 /* Bolts */; + targetProxy = 0539A0E17E8F7F9F39A0D5DCD3115B60 /* PBXContainerItemProxy */; }; - F2E6D8DB8D5141D89E49A092136493CA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "nv-ios-http-status"; - target = CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */; - targetProxy = 148D5BEB792ECB90202B5DD24B4F2266 /* PBXContainerItemProxy */; - }; - F389CE57503663D85BDEB140450D6085 /* PBXTargetDependency */ = { + CF028EB3DDE4A0A97254196E2C69BCB7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = NSDate_Utils; target = 68E501DEBC19E7D6794DEBEE8FCF317A /* NSDate_Utils */; - targetProxy = 77080258FC101463A3398B44E36B30C5 /* PBXContainerItemProxy */; + targetProxy = 4A5891C206029E4D79EC10E7E57C5C68 /* PBXContainerItemProxy */; }; - F5725D79B2909BACC66D7838532A1F20 /* PBXTargetDependency */ = { + D2D4A2912CC53A6E82C58B22C697E458 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Specta; - target = 21B910E0FB008FE15458D3D9B59BED16 /* Specta */; - targetProxy = 68D86DBD027206337165492BDE3876AA /* PBXContainerItemProxy */; + name = "NSString-Helper"; + target = 77E55BAE3ACAFE326F83E5E8FB571A26 /* NSString-Helper */; + targetProxy = D4C3CBA0CF8D504333F9CC933DEF43D7 /* PBXContainerItemProxy */; }; - FD901727B9909D380F0E4985119FFEC1 /* PBXTargetDependency */ = { + D9A2B22C1BC65E105F6FF32D3CDA61E8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBSnapshotTestCase; - target = D3054FB7F84727519F50B6AD1E49531E /* FBSnapshotTestCase */; - targetProxy = 4DDF989F04D3E1DCF12BBAA7836E70A9 /* PBXContainerItemProxy */; + name = "NSUserDefaults-AESEncryptor"; + target = 32CBAEFEAE7C8801A62A7AD246E7C824 /* NSUserDefaults-AESEncryptor */; + targetProxy = 8C0B52FF290AA7C7E56578EAF29B670F /* PBXContainerItemProxy */; + }; + DF1009E00FD3B669422D374CBDC644D1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "nv-ios-http-status"; + target = CDB2777810BCABC5108E560EC16B253D /* nv-ios-http-status */; + targetProxy = E855C946488672653FB8F2EF22912A26 /* PBXContainerItemProxy */; + }; + ECA51B2992514FFA92170ABADE29CA1E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FBSDKShareKit; + target = E396A93E4C79B22B7816E9F02F62ECED /* FBSDKShareKit */; + targetProxy = 2F7AFA5E46E5A2DD35AC460007A87173 /* PBXContainerItemProxy */; + }; + ED47780521F1F4AD73B3767D2CABEB32 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = StrongestPasswordValidator; + target = 839A00176009DB84BA0E2185B198E40F /* StrongestPasswordValidator */; + targetProxy = E427BF14EE3A68E55012EFA33C10F8E2 /* PBXContainerItemProxy */; + }; + F409816BCB75D89B2F1DDA2B718AC453 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = AFNetworking; + target = CF671F7E57B92905F1CC91D036D6B4A7 /* AFNetworking */; + targetProxy = 50A136E4921EDE16130017C0B1C0F5D7 /* PBXContainerItemProxy */; + }; + F9F927EE7DD17A542A42DFD125AED40E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "PEAR-FileManager-iOS"; + target = E06987A0FFCBD5F76493BFED35F38C6B /* PEAR-FileManager-iOS */; + targetProxy = 563C888AE091CA130B73998229DCB5AA /* PBXContainerItemProxy */; + }; + FA74CFEE27C086050D23512C69EB8514 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CodFis-Helper"; + target = FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */; + targetProxy = A0B3036FD307F4898D2F2E477E322372 /* PBXContainerItemProxy */; + }; + FFF25EA07E6DCB35252A8D86C489C02E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CodFis-Helper"; + target = FE017605B0E1B9BB24E440AEDBC2F8B7 /* CodFis-Helper */; + targetProxy = 512711759FAAB45EBEB3F716D5A8A4F1 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 015A368F878AC3E2CEAE21DDE8026304 /* Debug */ = { + 0A986F2FC84235F4A1A45780BB9432E4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EB09C04D89AF841729600B23D620620C /* PEAR-FileManager-iOS.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/PEAR-FileManager-iOS/PEAR-FileManager-iOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PEAR-FileManager-iOS/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/PEAR-FileManager-iOS/PEAR-FileManager-iOS.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = PEAR_FileManager_iOS; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 0ADD82D834D706231C4D5851D71074A9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F872FBD57D98CFC3DE47AD9A270264B9 /* Pods-PNObject_Tests.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-PNObject_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_PNObject_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 12F48BEB9FEB76ED87CD7EA928761D95 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 442D0B9D30C124A47432E266E187A1F0 /* CodFis-Helper.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/CodFis-Helper/CodFis-Helper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CodFis-Helper/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/CodFis-Helper/CodFis-Helper.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = CodFis_Helper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 1987A3D9ED8636F007D24E1D0355EE5C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AB6A1DF5177C7B13774DAC19420C1B1 /* Expecta.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/Expecta/Expecta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Expecta/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/Expecta/Expecta.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = Expecta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 1E1EB17E7B2130B8218617C4213EEE21 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AEB2A7CF00A95726DE561E306F8346D /* DJLocalization.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/DJLocalization/DJLocalization-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DJLocalization/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/DJLocalization/DJLocalization.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = DJLocalization; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 246F87DE57CB0B3F697F4A4A8DE416C7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 60B8D0343245B55677461157E5711662 /* PureLayout.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/PureLayout/PureLayout-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PureLayout/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/PureLayout/PureLayout.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = PureLayout; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2F316A74A52502FDD1B557727441AB6C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B837348DEBA13FAD39913F413866C21E /* NSDate_Utils.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/NSDate_Utils/NSDate_Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NSDate_Utils/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/NSDate_Utils/NSDate_Utils.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = NSDate_Utils; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 3B6E40D411782E985E8ED873D7CFDF0D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AEB2A7CF00A95726DE561E306F8346D /* DJLocalization.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/DJLocalization/DJLocalization-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DJLocalization/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/DJLocalization/DJLocalization.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = DJLocalization; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 3D0975168F2886DB23364FE0753CABEC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 39CFAB085189080C8BCF3E62E932AA4C /* DDDKeychainWrapper.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/DDDKeychainWrapper/DDDKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DDDKeychainWrapper/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/DDDKeychainWrapper/DDDKeychainWrapper.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = DDDKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 41BF81F2B09CC6CE64CB8508D6576244 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DF5FB7372D5866A763994C43A10006D6 /* RZDataBinding.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/RZDataBinding/RZDataBinding-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RZDataBinding/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/RZDataBinding/RZDataBinding.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = RZDataBinding; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4EA775C5AC1F2113B15DB86786CA454A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EB8B84E4432E9D6D4914A7EB79C467FA /* Pods-PNObject_Tests.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-PNObject_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_PNObject_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 4F3CAE731DC8906B336A72A2FC9F0562 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B837348DEBA13FAD39913F413866C21E /* NSDate_Utils.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/NSDate_Utils/NSDate_Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NSDate_Utils/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/NSDate_Utils/NSDate_Utils.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = NSDate_Utils; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 512467AE733A05BC0430822AFA762D88 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6589C0581A8D81459860DB0F58DE06F6 /* FBSDKLoginKit.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/FBSDKLoginKit/FBSDKLoginKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSDKLoginKit/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/FBSDKLoginKit/FBSDKLoginKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = FBSDKLoginKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 546F5DF7877C7BF481DB44E008B09AC8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 601777A55214AB3AB35DE65CAC520B77 /* StrongestPasswordValidator.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/StrongestPasswordValidator/StrongestPasswordValidator-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/StrongestPasswordValidator/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/StrongestPasswordValidator/StrongestPasswordValidator.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = StrongestPasswordValidator; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 570877A1EEEF39C1B130CCEEB53C7B51 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5F084ECAF840E2E9F8D00547580C4A9B /* AFNetworking.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/AFNetworking/AFNetworking-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/AFNetworking/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/AFNetworking/AFNetworking.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = AFNetworking; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 59135ABCC0BCB42E551D16669C9DF4CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7C785FD36A7D3E9987ABC55B0B3F5429 /* Specta.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/Specta/Specta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Specta/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/Specta/Specta.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = Specta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 5A054BDBF1F25EC064BC76F7625E7332 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8AA96AEE9F3D16C7D5E640A4C7AE300D /* NSString-Helper.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/NSString-Helper/NSString-Helper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NSString-Helper/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/NSString-Helper/NSString-Helper.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = NSString_Helper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 5BC3B5B8443DA02CE176DEDB643EADB0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 13F9DB4B3070FBF062D4DE6C9D51BB30 /* CocoaSecurity.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/CocoaSecurity/CocoaSecurity-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CocoaSecurity/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/CocoaSecurity/CocoaSecurity.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = CocoaSecurity; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 60F085D68A3A1ED2D261AB1069A535DF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 27A61EBBAC53EABE74ACEBD1498ACCBF /* PNObject.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/PNObject/PNObject-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PNObject/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/PNObject/PNObject.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = PNObject; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 643F8DD71825A4983CE57E2BE818F2BE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6589C0581A8D81459860DB0F58DE06F6 /* FBSDKLoginKit.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/FBSDKLoginKit/FBSDKLoginKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSDKLoginKit/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/FBSDKLoginKit/FBSDKLoginKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = FBSDKLoginKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 65980256D59696AD25906EFADA3E4205 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 601777A55214AB3AB35DE65CAC520B77 /* StrongestPasswordValidator.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/StrongestPasswordValidator/StrongestPasswordValidator-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/StrongestPasswordValidator/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/StrongestPasswordValidator/StrongestPasswordValidator.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = StrongestPasswordValidator; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 677C4BCD316521F48A0B542A4767E756 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 150C7D1FB6EB633FE7BB3E18E045EE77 /* Bolts.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/Bolts/Bolts-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Bolts/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/Bolts/Bolts.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = Bolts; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 698BB7DB432637119B8FB86E83E3A137 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A6629142D178BC550B5EB0EE2A813C58 /* FBSDKShareKit.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/FBSDKShareKit/FBSDKShareKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSDKShareKit/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/FBSDKShareKit/FBSDKShareKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = FBSDKShareKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7029E0910E0B03850809D94C46B6ADDC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 13F9DB4B3070FBF062D4DE6C9D51BB30 /* CocoaSecurity.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/CocoaSecurity/CocoaSecurity-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/CocoaSecurity/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/CocoaSecurity/CocoaSecurity.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = CocoaSecurity; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7672DA6054CF448BC5038C403AC47C2F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 150C7D1FB6EB633FE7BB3E18E045EE77 /* Bolts.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/Bolts/Bolts-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Bolts/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/Bolts/Bolts.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = Bolts; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7965ADFEBEF02BDFC26B10A0116F5450 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 44295DFCD56D216D9612F89E237FD362 /* FBSDKCoreKit.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/FBSDKCoreKit/FBSDKCoreKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSDKCoreKit/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/FBSDKCoreKit/FBSDKCoreKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = FBSDKCoreKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7CE4250A76143A5258AE2D6EA3012229 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6AD58CCB4D738D8982747C7CA9BB8E92 /* nv-ios-http-status.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/nv-ios-http-status/nv-ios-http-status-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/nv-ios-http-status/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/nv-ios-http-status/nv-ios-http-status.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = nv_ios_http_status; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 842E115A557F74310B4F2E7CFFF77908 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC358092608E035811817A25786F40A6 /* Pods-PNObject_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-PNObject_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Example/Pods-PNObject_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_PNObject_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 86F1F4B764A5CFEA33DE5E788CA26B69 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 09B4A7CF30945090E124BC7FD73BFC9D /* libsodium.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/libsodium/libsodium-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libsodium/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/libsodium/libsodium.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = libsodium; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8DED8AD26D381A6ACFF202E5217EC498 /* 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 = 8.3; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 8FE9BEA164C411A5314059B57686B87A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B4874B07FDBEF9FCB54B07E01ACFCEA0 /* UIDevice-Utils.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/UIDevice-Utils/UIDevice-Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/UIDevice-Utils/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/UIDevice-Utils/UIDevice-Utils.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = UIDevice_Utils; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9507B0DB4EE0388D8E05D2195518D217 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 551594B34EF6F1866BDE9A98A54DF271 /* NSUserDefaults-AESEncryptor.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/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NSUserDefaults-AESEncryptor/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/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = NSUserDefaults_AESEncryptor; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9891D01BA2AD6013644F0B64B89523C0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 39CFAB085189080C8BCF3E62E932AA4C /* DDDKeychainWrapper.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/DDDKeychainWrapper/DDDKeychainWrapper-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/DDDKeychainWrapper/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/DDDKeychainWrapper/DDDKeychainWrapper.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = DDDKeychainWrapper; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 98AAAFC95F92F1D810CDE4ED65A11688 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DF2C3A14DAFA851B775C785523415D35 /* NAChloride.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/NAChloride/NAChloride-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NAChloride/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/NAChloride/NAChloride.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = NAChloride; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9E1E4E48AF2EAB23169E611BF694090A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -5659,7 +7216,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; ONLY_ACTIVE_ARCH = YES; PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; STRIP_INSTALLED_PRODUCT = NO; @@ -5667,9 +7224,9 @@ }; name = Debug; }; - 0766449B55518871758CE49F99168D32 /* Debug */ = { + A0303D60376B4B65B01823496E1BE10F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7395C63B98701722FEB09543DCCC60EE /* RZDataBinding.xcconfig */; + baseConfigurationReference = A6629142D178BC550B5EB0EE2A813C58 /* FBSDKShareKit.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5682,14 +7239,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/RZDataBinding/RZDataBinding-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/RZDataBinding/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/FBSDKShareKit/FBSDKShareKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/FBSDKShareKit/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/RZDataBinding/RZDataBinding.modulemap"; + MODULEMAP_FILE = "Target Support Files/FBSDKShareKit/FBSDKShareKit.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = RZDataBinding; + PRODUCT_NAME = FBSDKShareKit; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -5698,71 +7255,9 @@ }; name = Debug; }; - 0A340E28B45E741D98742C01DB7FEF88 /* Release */ = { + A484359019B3FDCC57FADB1CEBCA2462 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D4A66E287528F834A9C37F5966EAEFF8 /* PureLayout.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/PureLayout/PureLayout-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PureLayout/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/PureLayout/PureLayout.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = PureLayout; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 0A986F2FC84235F4A1A45780BB9432E4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B9D18FDBCFE49F1D93A355C228E14565 /* PEAR-FileManager-iOS.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/PEAR-FileManager-iOS/PEAR-FileManager-iOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PEAR-FileManager-iOS/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/PEAR-FileManager-iOS/PEAR-FileManager-iOS.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = PEAR_FileManager_iOS; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 12F48BEB9FEB76ED87CD7EA928761D95 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ADD8B6E65E8897BE7EE950418226325C /* CodFis-Helper.xcconfig */; + baseConfigurationReference = 27A61EBBAC53EABE74ACEBD1498ACCBF /* PNObject.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5775,44 +7270,13 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/CodFis-Helper/CodFis-Helper-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CodFis-Helper/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/CodFis-Helper/CodFis-Helper.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = CodFis_Helper; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 18A6B0652197A9F3E0BAC785A4F0CB47 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AD1557A0706C193DACDA20ABC84DA976 /* PNObject.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/PNObject/PNObject-prefix.pch"; INFOPLIST_FILE = "Target Support Files/PNObject/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/PNObject/PNObject.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_NAME = PNObject; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -5820,999 +7284,11 @@ VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - 1987A3D9ED8636F007D24E1D0355EE5C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C4DE62C372896960655DF4F4AE79F293 /* Expecta.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/Expecta/Expecta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Expecta/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/Expecta/Expecta.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Expecta; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1E1EB17E7B2130B8218617C4213EEE21 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5992AEA8692665BE5B3873BF97E96538 /* DJLocalization.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/DJLocalization/DJLocalization-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/DJLocalization/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/DJLocalization/DJLocalization.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = DJLocalization; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 21E19AE16A51330FB089AD5CAA7FA2F6 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 297910462FC13A9F86F44DDC54C72D23 /* FBSnapshotTestCase.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/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/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/FBSnapshotTestCase/FBSnapshotTestCase.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = FBSnapshotTestCase; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; name = Debug; }; - 2B0EA24CA069E7610A51824B9BDF964E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7395C63B98701722FEB09543DCCC60EE /* RZDataBinding.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/RZDataBinding/RZDataBinding-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/RZDataBinding/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/RZDataBinding/RZDataBinding.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = RZDataBinding; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 2F316A74A52502FDD1B557727441AB6C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8657A2E48D2A442BE7863B1883F23BD3 /* NSDate_Utils.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/NSDate_Utils/NSDate_Utils-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NSDate_Utils/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/NSDate_Utils/NSDate_Utils.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = NSDate_Utils; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3B6E40D411782E985E8ED873D7CFDF0D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5992AEA8692665BE5B3873BF97E96538 /* DJLocalization.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/DJLocalization/DJLocalization-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/DJLocalization/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/DJLocalization/DJLocalization.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = DJLocalization; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 44CDBB6D11DE06DB64D6268622BDC47E /* 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 = 8.0; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 46D3A56B12F7BFF5B36A98B8CA049EFF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EB8B84E4432E9D6D4914A7EB79C467FA /* Pods-PNObject_Tests.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-PNObject_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNObject_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 4EB74A94A67762E7CE104186194BD079 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DC358092608E035811817A25786F40A6 /* Pods-PNObject_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-PNObject_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Example/Pods-PNObject_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_PNObject_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 4F3CAE731DC8906B336A72A2FC9F0562 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8657A2E48D2A442BE7863B1883F23BD3 /* NSDate_Utils.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/NSDate_Utils/NSDate_Utils-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NSDate_Utils/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/NSDate_Utils/NSDate_Utils.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = NSDate_Utils; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 512467AE733A05BC0430822AFA762D88 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9451C69F151E68CAB8179FE70EA21605 /* FBSDKLoginKit.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/FBSDKLoginKit/FBSDKLoginKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSDKLoginKit/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/FBSDKLoginKit/FBSDKLoginKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = FBSDKLoginKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 570877A1EEEF39C1B130CCEEB53C7B51 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BFCE8AB4C82B1CC3657B16381CD07DE0 /* AFNetworking.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/AFNetworking/AFNetworking-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/AFNetworking/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/AFNetworking/AFNetworking.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = AFNetworking; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 5A054BDBF1F25EC064BC76F7625E7332 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DA799E4B8F2F3D9E7F5DB27574EC711D /* NSString-Helper.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/NSString-Helper/NSString-Helper-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NSString-Helper/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/NSString-Helper/NSString-Helper.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = NSString_Helper; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 5BC3B5B8443DA02CE176DEDB643EADB0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4ECC878388EF2166736E14B5F4A0C820 /* CocoaSecurity.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/CocoaSecurity/CocoaSecurity-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CocoaSecurity/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/CocoaSecurity/CocoaSecurity.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = CocoaSecurity; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 60297F506B15BF0256391BCE6F9BF8A3 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D4A66E287528F834A9C37F5966EAEFF8 /* PureLayout.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/PureLayout/PureLayout-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PureLayout/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/PureLayout/PureLayout.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = PureLayout; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 643F8DD71825A4983CE57E2BE818F2BE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9451C69F151E68CAB8179FE70EA21605 /* FBSDKLoginKit.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/FBSDKLoginKit/FBSDKLoginKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSDKLoginKit/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/FBSDKLoginKit/FBSDKLoginKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = FBSDKLoginKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 677C4BCD316521F48A0B542A4767E756 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7CC080483CF13D4D5131303C05D1D231 /* Bolts.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/Bolts/Bolts-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Bolts/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/Bolts/Bolts.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Bolts; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 698BB7DB432637119B8FB86E83E3A137 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B6B1D5A61701A33E46121FEFE9AAEAFD /* FBSDKShareKit.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/FBSDKShareKit/FBSDKShareKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSDKShareKit/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/FBSDKShareKit/FBSDKShareKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = FBSDKShareKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 6ADE105A5CFBD1DF9CA42A2C916F39AD /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7D9973058360ECD5D21CEC595A24C74F /* NACrypto.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/NACrypto/NACrypto-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NACrypto/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/NACrypto/NACrypto.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = NACrypto; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 6D2CAF5AB337718510EA02B273D7636B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D11A9BD0CFE1E520AE71DC4403614790 /* Pods-PNObject_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-PNObject_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Example/Pods-PNObject_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_PNObject_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 6ED92383FB70C44A28A28C2A84798FDE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CE8F4F0D3D4122A214CCAA23AAA3E5F6 /* UIDevice-Utils.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/UIDevice-Utils/UIDevice-Utils-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/UIDevice-Utils/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/UIDevice-Utils/UIDevice-Utils.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = UIDevice_Utils; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7029E0910E0B03850809D94C46B6ADDC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4ECC878388EF2166736E14B5F4A0C820 /* CocoaSecurity.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/CocoaSecurity/CocoaSecurity-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/CocoaSecurity/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/CocoaSecurity/CocoaSecurity.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = CocoaSecurity; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 74B66939E8ED2FCAB53BD318F5A25AFC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C23F1F96D04F6E8E84A87A6CA3D92FBD /* StrongestPasswordValidator.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/StrongestPasswordValidator/StrongestPasswordValidator-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/StrongestPasswordValidator/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/StrongestPasswordValidator/StrongestPasswordValidator.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = StrongestPasswordValidator; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7672DA6054CF448BC5038C403AC47C2F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7CC080483CF13D4D5131303C05D1D231 /* Bolts.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/Bolts/Bolts-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Bolts/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/Bolts/Bolts.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Bolts; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 7965ADFEBEF02BDFC26B10A0116F5450 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 05CE7387BB466D39C35745F918D2D9B0 /* FBSDKCoreKit.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/FBSDKCoreKit/FBSDKCoreKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSDKCoreKit/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/FBSDKCoreKit/FBSDKCoreKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = FBSDKCoreKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 7CE4250A76143A5258AE2D6EA3012229 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EB9B61EF322197E5D966BE5F84EBE1CD /* nv-ios-http-status.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/nv-ios-http-status/nv-ios-http-status-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/nv-ios-http-status/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/nv-ios-http-status/nv-ios-http-status.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = nv_ios_http_status; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 934E651154EAA77666EBB4CEAA041ADB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CE8F4F0D3D4122A214CCAA23AAA3E5F6 /* UIDevice-Utils.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/UIDevice-Utils/UIDevice-Utils-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/UIDevice-Utils/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/UIDevice-Utils/UIDevice-Utils.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = UIDevice_Utils; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 9507B0DB4EE0388D8E05D2195518D217 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CF281F299410792E0A98ACC70BA05C60 /* NSUserDefaults-AESEncryptor.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/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NSUserDefaults-AESEncryptor/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/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = NSUserDefaults_AESEncryptor; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 96078CAC32335E9144207A1AF497CB4F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F872FBD57D98CFC3DE47AD9A270264B9 /* Pods-PNObject_Tests.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-PNObject_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_PNObject_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A0303D60376B4B65B01823496E1BE10F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B6B1D5A61701A33E46121FEFE9AAEAFD /* FBSDKShareKit.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/FBSDKShareKit/FBSDKShareKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSDKShareKit/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/FBSDKShareKit/FBSDKShareKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = FBSDKShareKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A3AD6861A734A1A525204F9C33986B43 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 297910462FC13A9F86F44DDC54C72D23 /* FBSnapshotTestCase.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/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/FBSnapshotTestCase/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/FBSnapshotTestCase/FBSnapshotTestCase.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = FBSnapshotTestCase; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; A4C8CCEA30A433ECFC9AAC2D8A735BAA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CF281F299410792E0A98ACC70BA05C60 /* NSUserDefaults-AESEncryptor.xcconfig */; + baseConfigurationReference = 551594B34EF6F1866BDE9A98A54DF271 /* NSUserDefaults-AESEncryptor.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6843,7 +7319,7 @@ }; AB2BBE0F9DF7F59017E08C712158CE09 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ADD8B6E65E8897BE7EE950418226325C /* CodFis-Helper.xcconfig */; + baseConfigurationReference = 442D0B9D30C124A47432E266E187A1F0 /* CodFis-Helper.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6872,9 +7348,9 @@ }; name = Release; }; - AC908661489499EDC885B35E7C7B3B4D /* Debug */ = { + AC1F4228173225E97C5C04EAA829C9C3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1BBD5DC88968C05E6C30E4AC3AECB770 /* Specta.xcconfig */; + baseConfigurationReference = 09B4A7CF30945090E124BC7FD73BFC9D /* libsodium.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6887,14 +7363,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/libsodium/libsodium-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/libsodium/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/Specta/Specta.modulemap"; + MODULEMAP_FILE = "Target Support Files/libsodium/libsodium.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Specta; + PRODUCT_NAME = libsodium; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -6905,7 +7381,7 @@ }; B27E60815C5CADD9C0C57546CE6478BA /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DA799E4B8F2F3D9E7F5DB27574EC711D /* NSString-Helper.xcconfig */; + baseConfigurationReference = 8AA96AEE9F3D16C7D5E640A4C7AE300D /* NSString-Helper.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6934,71 +7410,44 @@ }; name = Release; }; - B430C6D72DD486DC1B1AADEE50082331 /* Release */ = { + B5D596DB9436FA3F5CA2FED195306D83 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A372D5DC5C403E1FC1F5D8364A67400B /* Expecta+Snapshots.xcconfig */; + baseConfigurationReference = D11A9BD0CFE1E520AE71DC4403614790 /* Pods-PNObject_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-with-dsym"; + 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/Expecta+Snapshots/Expecta+Snapshots-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Expecta+Snapshots/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-PNObject_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Expecta+Snapshots/Expecta+Snapshots.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Expecta_Snapshots; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-PNObject_Example/Pods-PNObject_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_PNObject_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; - }; - BB9A6E58B88F050FDB1C4D9A8108B08A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C23F1F96D04F6E8E84A87A6CA3D92FBD /* StrongestPasswordValidator.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/StrongestPasswordValidator/StrongestPasswordValidator-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/StrongestPasswordValidator/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/StrongestPasswordValidator/StrongestPasswordValidator.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = StrongestPasswordValidator; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; + name = Debug; }; BF845E1406101513394D8B1AA49CECD9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EB9B61EF322197E5D966BE5F84EBE1CD /* nv-ios-http-status.xcconfig */; + baseConfigurationReference = 6AD58CCB4D738D8982747C7CA9BB8E92 /* nv-ios-http-status.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7027,9 +7476,9 @@ }; name = Release; }; - CC3D7F1C5255C8FA5BF0DFA677BC8B7F /* Release */ = { + C969C42870CCAF69FDF5E073E36E0C42 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7D9973058360ECD5D21CEC595A24C74F /* NACrypto.xcconfig */; + baseConfigurationReference = 60B8D0343245B55677461157E5711662 /* PureLayout.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7042,14 +7491,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/NACrypto/NACrypto-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/NACrypto/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/PureLayout/PureLayout-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/PureLayout/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/NACrypto/NACrypto.modulemap"; + MODULEMAP_FILE = "Target Support Files/PureLayout/PureLayout.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = NACrypto; + PRODUCT_NAME = PureLayout; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -7058,40 +7507,9 @@ }; name = Release; }; - DFA10E5A60D24B74BDDC8B09E5E844B5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A372D5DC5C403E1FC1F5D8364A67400B /* Expecta+Snapshots.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/Expecta+Snapshots/Expecta+Snapshots-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Expecta+Snapshots/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/Expecta+Snapshots/Expecta+Snapshots.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Expecta_Snapshots; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; E48063CB60C87C131A14278AD9D8F9D3 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 05CE7387BB466D39C35745F918D2D9B0 /* FBSDKCoreKit.xcconfig */; + baseConfigurationReference = 44295DFCD56D216D9612F89E237FD362 /* FBSDKCoreKit.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7122,7 +7540,7 @@ }; E4D0638570D08B8A27B34DC50D34F47E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C4DE62C372896960655DF4F4AE79F293 /* Expecta.xcconfig */; + baseConfigurationReference = 7AB6A1DF5177C7B13774DAC19420C1B1 /* Expecta.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7151,9 +7569,9 @@ }; name = Debug; }; - EA2A6E96A23A5B78968C7BF040A75754 /* Debug */ = { + E502819C623A18699AC64B06A8A4E160 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AD1557A0706C193DACDA20ABC84DA976 /* PNObject.xcconfig */; + baseConfigurationReference = DF5FB7372D5866A763994C43A10006D6 /* RZDataBinding.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7166,14 +7584,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PNObject/PNObject-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/PNObject/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/RZDataBinding/RZDataBinding-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/RZDataBinding/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/PNObject/PNObject.modulemap"; + MODULEMAP_FILE = "Target Support Files/RZDataBinding/RZDataBinding.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = PNObject; + PRODUCT_NAME = RZDataBinding; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -7182,9 +7600,71 @@ }; name = Debug; }; + E769874A5261BD753AD3837434C4393B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7C785FD36A7D3E9987ABC55B0B3F5429 /* Specta.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/Specta/Specta-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Specta/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/Specta/Specta.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = Specta; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + E7F4606CA03148448763C6ACFA7CA559 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DF2C3A14DAFA851B775C785523415D35 /* NAChloride.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/NAChloride/NAChloride-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/NAChloride/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/NAChloride/NAChloride.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = NAChloride; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; EA5A6529666F3A706E2C76FCEAB6A44A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B9D18FDBCFE49F1D93A355C228E14565 /* PEAR-FileManager-iOS.xcconfig */; + baseConfigurationReference = EB09C04D89AF841729600B23D620620C /* PEAR-FileManager-iOS.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7215,7 +7695,7 @@ }; EC3EE9EBDDF7444FC52168CE82FF000C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BFCE8AB4C82B1CC3657B16381CD07DE0 /* AFNetworking.xcconfig */; + baseConfigurationReference = 5F084ECAF840E2E9F8D00547580C4A9B /* AFNetworking.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7244,9 +7724,9 @@ }; name = Debug; }; - FA7FE7A0249A6393AD7E4D229CDEE6DF /* Release */ = { + FA3F2514C5ABB4B8F68A70FF3741F980 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1BBD5DC88968C05E6C30E4AC3AECB770 /* Specta.xcconfig */; + baseConfigurationReference = B4874B07FDBEF9FCB54B07E01ACFCEA0 /* UIDevice-Utils.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -7259,14 +7739,14 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/Specta/Specta-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Specta/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/UIDevice-Utils/UIDevice-Utils-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/UIDevice-Utils/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/Specta/Specta.modulemap"; + MODULEMAP_FILE = "Target Support Files/UIDevice-Utils/UIDevice-Utils.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Specta; + PRODUCT_NAME = UIDevice_Utils; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -7287,6 +7767,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 0912B55BFFD62D45AC19540DB32BC974 /* Build configuration list for PBXNativeTarget "UIDevice-Utils" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8FE9BEA164C411A5314059B57686B87A /* Debug */, + FA3F2514C5ABB4B8F68A70FF3741F980 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 09381A9A84A0A8E73577B2BF10E583E5 /* Build configuration list for PBXNativeTarget "Expecta" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7296,6 +7785,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1187AE3EC3CD56E86AB1DC7ACD180C59 /* Build configuration list for PBXNativeTarget "PureLayout" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 246F87DE57CB0B3F697F4A4A8DE416C7 /* Debug */, + C969C42870CCAF69FDF5E073E36E0C42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 1C42AA807C38F56086C192DD584BA7AF /* Build configuration list for PBXNativeTarget "FBSDKShareKit" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7305,15 +7803,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1D5B75C406E21D1CC93EA60A0DBB6B84 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 46D3A56B12F7BFF5B36A98B8CA049EFF /* Debug */, - 96078CAC32335E9144207A1AF497CB4F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 24D1D18CFA95E29692DB891BDE3C34A9 /* Build configuration list for PBXNativeTarget "NSString-Helper" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7326,8 +7815,8 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 015A368F878AC3E2CEAE21DDE8026304 /* Debug */, - 44CDBB6D11DE06DB64D6268622BDC47E /* Release */, + 9E1E4E48AF2EAB23169E611BF694090A /* Debug */, + 8DED8AD26D381A6ACFF202E5217EC498 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -7341,6 +7830,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3746929742108DB177CF0CADFF1D9906 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4EA775C5AC1F2113B15DB86786CA454A /* Debug */, + 0ADD82D834D706231C4D5851D71074A9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 3A67E131704D0D862165B5DC57DE95E7 /* Build configuration list for PBXNativeTarget "DJLocalization" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7350,29 +7848,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3CACC1BD0248D165982F8142D1FC68FA /* Build configuration list for PBXNativeTarget "Pods-PNObject_Example" */ = { + 46938EE2B78550918F329294A079F02E /* Build configuration list for PBXNativeTarget "RZDataBinding" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6D2CAF5AB337718510EA02B273D7636B /* Debug */, - 4EB74A94A67762E7CE104186194BD079 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 48C38E44B4EF5760ADB7DED06F65AD3A /* Build configuration list for PBXNativeTarget "Specta" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AC908661489499EDC885B35E7C7B3B4D /* Debug */, - FA7FE7A0249A6393AD7E4D229CDEE6DF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 563151C1898104275179A2B32981BD63 /* Build configuration list for PBXNativeTarget "UIDevice-Utils" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6ED92383FB70C44A28A28C2A84798FDE /* Debug */, - 934E651154EAA77666EBB4CEAA041ADB /* Release */, + E502819C623A18699AC64B06A8A4E160 /* Debug */, + 41BF81F2B09CC6CE64CB8508D6576244 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -7395,20 +7875,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6785A8A6A739CF0A6DD6EB706419AD8D /* Build configuration list for PBXNativeTarget "Expecta+Snapshots" */ = { + 7B21F24A2D364BC98F5ACF5BCFA3B913 /* Build configuration list for PBXNativeTarget "PNObject" */ = { isa = XCConfigurationList; buildConfigurations = ( - DFA10E5A60D24B74BDDC8B09E5E844B5 /* Debug */, - B430C6D72DD486DC1B1AADEE50082331 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7532F3D5919BEFE4887DF9894DEC5740 /* Build configuration list for PBXNativeTarget "FBSnapshotTestCase" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 21E19AE16A51330FB089AD5CAA7FA2F6 /* Debug */, - A3AD6861A734A1A525204F9C33986B43 /* Release */, + A484359019B3FDCC57FADB1CEBCA2462 /* Debug */, + 60F085D68A3A1ED2D261AB1069A535DF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -7422,11 +7893,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7DF5308F4F18693AC281F2106415161A /* Build configuration list for PBXNativeTarget "NACrypto" */ = { + 8A9E12F98477699F909C73BD7C1AA49B /* Build configuration list for PBXNativeTarget "Specta" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6ADE105A5CFBD1DF9CA42A2C916F39AD /* Debug */, - CC3D7F1C5255C8FA5BF0DFA677BC8B7F /* Release */, + 59135ABCC0BCB42E551D16669C9DF4CD /* Debug */, + E769874A5261BD753AD3837434C4393B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8CA3139F0858D039073F482769CCAA0E /* Build configuration list for PBXNativeTarget "StrongestPasswordValidator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 65980256D59696AD25906EFADA3E4205 /* Debug */, + 546F5DF7877C7BF481DB44E008B09AC8 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -7449,6 +7929,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + A20315C9777ECC1B7F7766B088ED3355 /* Build configuration list for PBXNativeTarget "Pods-PNObject_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B5D596DB9436FA3F5CA2FED195306D83 /* Debug */, + 842E115A557F74310B4F2E7CFFF77908 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; B6E008B707197923282762C6BCBCB928 /* Build configuration list for PBXNativeTarget "Bolts" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7467,29 +7956,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C0C96FEFA2A03A073A78A43B7BABDB21 /* Build configuration list for PBXNativeTarget "RZDataBinding" */ = { + C589C52499CBAB0DD121E0FDC495D87C /* Build configuration list for PBXNativeTarget "DDDKeychainWrapper" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0766449B55518871758CE49F99168D32 /* Debug */, - 2B0EA24CA069E7610A51824B9BDF964E /* Release */, + 9891D01BA2AD6013644F0B64B89523C0 /* Debug */, + 3D0975168F2886DB23364FE0753CABEC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D6736FDB31377F74B77369125D181F0C /* Build configuration list for PBXNativeTarget "PNObject" */ = { + D10BB25C9C178AF4CC6EAC11E42CBDF7 /* Build configuration list for PBXNativeTarget "NAChloride" */ = { isa = XCConfigurationList; buildConfigurations = ( - EA2A6E96A23A5B78968C7BF040A75754 /* Debug */, - 18A6B0652197A9F3E0BAC785A4F0CB47 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D95FF0F6F7D1C10A06917C2E5842AD27 /* Build configuration list for PBXNativeTarget "PureLayout" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 60297F506B15BF0256391BCE6F9BF8A3 /* Debug */, - 0A340E28B45E741D98742C01DB7FEF88 /* Release */, + 98AAAFC95F92F1D810CDE4ED65A11688 /* Debug */, + E7F4606CA03148448763C6ACFA7CA559 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -7503,11 +7983,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F9195397287BF70DAA349E279D33CBAC /* Build configuration list for PBXNativeTarget "StrongestPasswordValidator" */ = { + E8AA8A70B46CAC61EBD6D24BEBAADEFA /* Build configuration list for PBXNativeTarget "libsodium" */ = { isa = XCConfigurationList; buildConfigurations = ( - 74B66939E8ED2FCAB53BD318F5A25AFC /* Debug */, - BB9A6E58B88F050FDB1C4D9A8108B08A /* Release */, + AC1F4228173225E97C5C04EAA829C9C3 /* Debug */, + 86F1F4B764A5CFEA33DE5E788CA26B69 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-dummy.m b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-dummy.m new file mode 100644 index 0000000..92cef27 --- /dev/null +++ b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_DDDKeychainWrapper : NSObject +@end +@implementation PodsDummy_DDDKeychainWrapper +@end diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-prefix.pch b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-prefix.pch similarity index 100% rename from Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-prefix.pch rename to Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-prefix.pch diff --git a/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-umbrella.h b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-umbrella.h new file mode 100644 index 0000000..52090c6 --- /dev/null +++ b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "DDDKeychainWrapper.h" + +FOUNDATION_EXPORT double DDDKeychainWrapperVersionNumber; +FOUNDATION_EXPORT const unsigned char DDDKeychainWrapperVersionString[]; + diff --git a/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.modulemap b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.modulemap new file mode 100644 index 0000000..3451d97 --- /dev/null +++ b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.modulemap @@ -0,0 +1,6 @@ +framework module DDDKeychainWrapper { + umbrella header "DDDKeychainWrapper-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/NACrypto/NACrypto.xcconfig b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.xcconfig similarity index 69% rename from Example/Pods/Target Support Files/NACrypto/NACrypto.xcconfig rename to Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.xcconfig index 23f41af..7e3f33c 100644 --- a/Example/Pods/Target Support Files/NACrypto/NACrypto.xcconfig +++ b/Example/Pods/Target Support Files/DDDKeychainWrapper/DDDKeychainWrapper.xcconfig @@ -1,9 +1,10 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/NACrypto +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +OTHER_LDFLAGS = -framework "Security" PODS_BUILD_DIR = $BUILD_DIR PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/NACrypto +PODS_TARGET_SRCROOT = ${PODS_ROOT}/DDDKeychainWrapper PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Info.plist b/Example/Pods/Target Support Files/DDDKeychainWrapper/Info.plist similarity index 96% rename from Example/Pods/Target Support Files/Expecta+Snapshots/Info.plist rename to Example/Pods/Target Support Files/DDDKeychainWrapper/Info.plist index 4522675..2243fe6 100644 --- a/Example/Pods/Target Support Files/Expecta+Snapshots/Info.plist +++ b/Example/Pods/Target Support Files/DDDKeychainWrapper/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.0.0 + 1.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-dummy.m b/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-dummy.m deleted file mode 100644 index a28cba4..0000000 --- a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Expecta_Snapshots : NSObject -@end -@implementation PodsDummy_Expecta_Snapshots -@end diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-umbrella.h b/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-umbrella.h deleted file mode 100644 index 0905052..0000000 --- a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots-umbrella.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "ExpectaObject+FBSnapshotTest.h" -#import "EXPMatchers+FBSnapshotTest.h" - -FOUNDATION_EXPORT double Expecta_SnapshotsVersionNumber; -FOUNDATION_EXPORT const unsigned char Expecta_SnapshotsVersionString[]; - diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.modulemap b/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.modulemap deleted file mode 100644 index 15f364a..0000000 --- a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Expecta_Snapshots { - umbrella header "Expecta+Snapshots-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.xcconfig b/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.xcconfig deleted file mode 100644 index 8b369db..0000000 --- a/Example/Pods/Target Support Files/Expecta+Snapshots/Expecta+Snapshots.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Expecta+Snapshots -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "$PODS_CONFIGURATION_BUILD_DIR/Expecta" "$PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase" "$PODS_CONFIGURATION_BUILD_DIR/Specta" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_LDFLAGS = -framework "Foundation" -framework "XCTest" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Expecta+Snapshots -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-dummy.m b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-dummy.m deleted file mode 100644 index fb0c8fe..0000000 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_FBSnapshotTestCase : NSObject -@end -@implementation PodsDummy_FBSnapshotTestCase -@end diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-umbrella.h b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-umbrella.h deleted file mode 100644 index 1734e02..0000000 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-umbrella.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "FBSnapshotTestCase.h" -#import "FBSnapshotTestCasePlatform.h" -#import "FBSnapshotTestController.h" - -FOUNDATION_EXPORT double FBSnapshotTestCaseVersionNumber; -FOUNDATION_EXPORT const unsigned char FBSnapshotTestCaseVersionString[]; - diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap deleted file mode 100644 index 45b74ec..0000000 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module FBSnapshotTestCase { - umbrella header "FBSnapshotTestCase-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig b/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig deleted file mode 100644 index ee7f02e..0000000 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase -ENABLE_BITCODE = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" -OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest" -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_TARGET_SRCROOT = ${PODS_ROOT}/FBSnapshotTestCase -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/Info.plist b/Example/Pods/Target Support Files/NAChloride/Info.plist similarity index 96% rename from Example/Pods/Target Support Files/FBSnapshotTestCase/Info.plist rename to Example/Pods/Target Support Files/NAChloride/Info.plist index 57b76a5..0816e96 100644 --- a/Example/Pods/Target Support Files/FBSnapshotTestCase/Info.plist +++ b/Example/Pods/Target Support Files/NAChloride/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.1.4 + 2.2.1 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/NAChloride/NAChloride-dummy.m b/Example/Pods/Target Support Files/NAChloride/NAChloride-dummy.m new file mode 100644 index 0000000..e972dc8 --- /dev/null +++ b/Example/Pods/Target Support Files/NAChloride/NAChloride-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_NAChloride : NSObject +@end +@implementation PodsDummy_NAChloride +@end diff --git a/Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch b/Example/Pods/Target Support Files/NAChloride/NAChloride-prefix.pch similarity index 100% rename from Example/Pods/Target Support Files/FBSnapshotTestCase/FBSnapshotTestCase-prefix.pch rename to Example/Pods/Target Support Files/NAChloride/NAChloride-prefix.pch diff --git a/Example/Pods/Target Support Files/NAChloride/NAChloride-umbrella.h b/Example/Pods/Target Support Files/NAChloride/NAChloride-umbrella.h new file mode 100644 index 0000000..021d5fc --- /dev/null +++ b/Example/Pods/Target Support Files/NAChloride/NAChloride-umbrella.h @@ -0,0 +1,28 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "NAAEAD.h" +#import "NAAuth.h" +#import "NABox.h" +#import "NABoxKeypair.h" +#import "NAChloride.h" +#import "NAInterface.h" +#import "NAOneTimeAuth.h" +#import "NARandom.h" +#import "NAScrypt.h" +#import "NASecretBox.h" +#import "NASecureData.h" +#import "NAStream.h" + +FOUNDATION_EXPORT double NAChlorideVersionNumber; +FOUNDATION_EXPORT const unsigned char NAChlorideVersionString[]; + diff --git a/Example/Pods/Target Support Files/NAChloride/NAChloride.modulemap b/Example/Pods/Target Support Files/NAChloride/NAChloride.modulemap new file mode 100644 index 0000000..149df75 --- /dev/null +++ b/Example/Pods/Target Support Files/NAChloride/NAChloride.modulemap @@ -0,0 +1,6 @@ +framework module NAChloride { + umbrella header "NAChloride-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/NAChloride/NAChloride.xcconfig b/Example/Pods/Target Support Files/NAChloride/NAChloride.xcconfig new file mode 100644 index 0000000..a30bcf5 --- /dev/null +++ b/Example/Pods/Target Support Files/NAChloride/NAChloride.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/NAChloride +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/libsodium" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/NAChloride +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/NACrypto/NACrypto-dummy.m b/Example/Pods/Target Support Files/NACrypto/NACrypto-dummy.m deleted file mode 100644 index e717f52..0000000 --- a/Example/Pods/Target Support Files/NACrypto/NACrypto-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_NACrypto : NSObject -@end -@implementation PodsDummy_NACrypto -@end diff --git a/Example/Pods/Target Support Files/NACrypto/NACrypto-umbrella.h b/Example/Pods/Target Support Files/NACrypto/NACrypto-umbrella.h deleted file mode 100644 index bb8c371..0000000 --- a/Example/Pods/Target Support Files/NACrypto/NACrypto-umbrella.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - -#import "brg_endian.h" -#import "KeccakF-1600-32-rvk.h" -#import "KeccakF-1600-32-s1.h" -#import "KeccakF-1600-32-s2.h" -#import "KeccakF-1600-32.h" -#import "KeccakF-1600-int-set.h" -#import "KeccakF-1600-interface.h" -#import "KeccakF-1600-opt32-settings.h" -#import "KeccakF-1600-unrolling.h" -#import "KeccakNISTInterface.h" -#import "KeccakSponge.h" -#import "NAAES.h" -#import "NACounter.h" -#import "NACrypto.h" -#import "NADigest.h" -#import "NAHMAC.h" -#import "NAKeychain.h" -#import "NANSData+Utils.h" -#import "NANSMutableData+Utils.h" -#import "NANSString+Utils.h" -#import "NASecRandom.h" -#import "NASHA3.h" -#import "NATwoFish.h" -#import "twofish.h" - -FOUNDATION_EXPORT double NACryptoVersionNumber; -FOUNDATION_EXPORT const unsigned char NACryptoVersionString[]; - diff --git a/Example/Pods/Target Support Files/NACrypto/NACrypto.modulemap b/Example/Pods/Target Support Files/NACrypto/NACrypto.modulemap deleted file mode 100644 index ee43995..0000000 --- a/Example/Pods/Target Support Files/NACrypto/NACrypto.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module NACrypto { - umbrella header "NACrypto-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/NSDate_Utils/Info.plist b/Example/Pods/Target Support Files/NSDate_Utils/Info.plist index 9fb50da..2243fe6 100644 --- a/Example/Pods/Target Support Files/NSDate_Utils/Info.plist +++ b/Example/Pods/Target Support Files/NSDate_Utils/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.3 + 1.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/PNObject/Info.plist b/Example/Pods/Target Support Files/PNObject/Info.plist index b07fa9b..2243fe6 100644 --- a/Example/Pods/Target Support Files/PNObject/Info.plist +++ b/Example/Pods/Target Support Files/PNObject/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.9.0 + 1.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/PNObject/PNObject.xcconfig b/Example/Pods/Target Support Files/PNObject/PNObject.xcconfig index 20db1b1..c741665 100644 --- a/Example/Pods/Target Support Files/PNObject/PNObject.xcconfig +++ b/Example/Pods/Target Support Files/PNObject/PNObject.xcconfig @@ -1,5 +1,5 @@ CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PNObject -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NACrypto" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NAChloride" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/libsodium" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" PODS_BUILD_DIR = $BUILD_DIR diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.markdown index 56b4b17..f145468 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.markdown @@ -92,6 +92,29 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## DDDKeychainWrapper + +Copyright (c) 2014 axldyb + +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. + + ## DJLocalization Copyright (c) 2015 David Jennes @@ -178,30 +201,28 @@ 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. -## NACrypto +## NAChloride The MIT License (MIT) -Copyright (c) 2015 Gabriel Handford +Copyright (c) 2014 Gabriel Handford -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: +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. - +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. ## NSDate_Utils @@ -299,7 +320,7 @@ THE SOFTWARE. ## PNObject -Copyright (c) 2015 Giuseppe Nucifora +Copyright (c) 2016 Giuseppe Nucifora Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -405,6 +426,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## libsodium + +Copyright © 2013\nFrank Denis \n\nPermission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n + ## nv-ios-http-status diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.plist index cdf1bf8..09f6879 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-acknowledgements.plist @@ -127,6 +127,35 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Copyright (c) 2014 axldyb <aksel.dybdal@shortcut.no> + +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 + DDDKeychainWrapper + Type + PSGroupSpecifier + FooterText Copyright (c) 2015 David Jennes <david.jennes@gmail.com> @@ -241,31 +270,29 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. FooterText The MIT License (MIT) -Copyright (c) 2015 Gabriel Handford +Copyright (c) 2014 Gabriel Handford -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: +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. - +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 - NACrypto + NAChloride Type PSGroupSpecifier @@ -388,7 +415,7 @@ THE SOFTWARE. FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> + Copyright (c) 2016 Giuseppe Nucifora <me@giuseppenucifora.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -524,6 +551,16 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Copyright © 2013\nFrank Denis <j at pureftpd dot org>\n\nPermission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n + License + BSD + Title + libsodium + Type + PSGroupSpecifier + FooterText diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh index 32504ed..fa970c9 100755 --- a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-frameworks.sh @@ -93,11 +93,12 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "$BUILT_PRODUCTS_DIR/Bolts/Bolts.framework" install_framework "$BUILT_PRODUCTS_DIR/CocoaSecurity/CocoaSecurity.framework" install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework" + install_framework "$BUILT_PRODUCTS_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework" install_framework "$BUILT_PRODUCTS_DIR/DJLocalization/DJLocalization.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKCoreKit/FBSDKCoreKit.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKLoginKit/FBSDKLoginKit.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKShareKit/FBSDKShareKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/NACrypto/NACrypto.framework" + install_framework "$BUILT_PRODUCTS_DIR/NAChloride/NAChloride.framework" install_framework "$BUILT_PRODUCTS_DIR/NSDate_Utils/NSDate_Utils.framework" install_framework "$BUILT_PRODUCTS_DIR/NSString-Helper/NSString_Helper.framework" install_framework "$BUILT_PRODUCTS_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework" @@ -107,6 +108,7 @@ if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "$BUILT_PRODUCTS_DIR/RZDataBinding/RZDataBinding.framework" install_framework "$BUILT_PRODUCTS_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework" install_framework "$BUILT_PRODUCTS_DIR/UIDevice-Utils/UIDevice_Utils.framework" + install_framework "$BUILT_PRODUCTS_DIR/libsodium/libsodium.framework" install_framework "$BUILT_PRODUCTS_DIR/nv-ios-http-status/nv_ios_http_status.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then @@ -114,11 +116,12 @@ if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "$BUILT_PRODUCTS_DIR/Bolts/Bolts.framework" install_framework "$BUILT_PRODUCTS_DIR/CocoaSecurity/CocoaSecurity.framework" install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework" + install_framework "$BUILT_PRODUCTS_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework" install_framework "$BUILT_PRODUCTS_DIR/DJLocalization/DJLocalization.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKCoreKit/FBSDKCoreKit.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKLoginKit/FBSDKLoginKit.framework" install_framework "$BUILT_PRODUCTS_DIR/FBSDKShareKit/FBSDKShareKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/NACrypto/NACrypto.framework" + install_framework "$BUILT_PRODUCTS_DIR/NAChloride/NAChloride.framework" install_framework "$BUILT_PRODUCTS_DIR/NSDate_Utils/NSDate_Utils.framework" install_framework "$BUILT_PRODUCTS_DIR/NSString-Helper/NSString_Helper.framework" install_framework "$BUILT_PRODUCTS_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework" @@ -128,6 +131,7 @@ if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "$BUILT_PRODUCTS_DIR/RZDataBinding/RZDataBinding.framework" install_framework "$BUILT_PRODUCTS_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework" install_framework "$BUILT_PRODUCTS_DIR/UIDevice-Utils/UIDevice_Utils.framework" + install_framework "$BUILT_PRODUCTS_DIR/libsodium/libsodium.framework" install_framework "$BUILT_PRODUCTS_DIR/nv-ios-http-status/nv_ios_http_status.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig index c944ab1..797a485 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.debug.xcconfig @@ -1,8 +1,9 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NACrypto" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NAChloride" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/libsodium" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "$(PODS_ROOT)/libsodium/src/libsodium/include/sodium" "$(PODS_ROOT)/libsodium/src/libsodium/include" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NACrypto/NACrypto.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DJLocalization" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "NACrypto" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "PureLayout" -framework "RZDataBinding" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "nv_ios_http_status" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NAChloride/NAChloride.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/libsodium/libsodium.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DDDKeychainWrapper" -framework "DJLocalization" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "NAChloride" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "PureLayout" -framework "RZDataBinding" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "libsodium" -framework "nv_ios_http_status" 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-PNObject_Example/Pods-PNObject_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.release.xcconfig index c944ab1..797a485 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example.release.xcconfig @@ -1,8 +1,9 @@ -FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NACrypto" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NAChloride" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/libsodium" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "$(PODS_ROOT)/libsodium/src/libsodium/include/sodium" "$(PODS_ROOT)/libsodium/src/libsodium/include" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NACrypto/NACrypto.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DJLocalization" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "NACrypto" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "PureLayout" -framework "RZDataBinding" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "nv_ios_http_status" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NAChloride/NAChloride.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/libsodium/libsodium.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DDDKeychainWrapper" -framework "DJLocalization" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "NAChloride" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "PureLayout" -framework "RZDataBinding" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "libsodium" -framework "nv_ios_http_status" 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-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.markdown index 20d91bf..1655dc8 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.markdown @@ -1,603 +1,6 @@ # Acknowledgements This application makes use of the following third party libraries: -## AFNetworking - -Copyright (c) 2011–2016 Alamofire Software Foundation (http://alamofire.org/) - -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. - - -## Bolts - -BSD License - -For Bolts software - -Copyright (c) 2013-present, Facebook, Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -## CocoaSecurity - -The MIT License (MIT) -Copyright (c) 2013 Kelp https://github.com/kelp404 - -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. - - -## CodFis-Helper - -Copyright (c) 2015 Giuseppe Nucifora - -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. - - -## DJLocalization - -Copyright (c) 2015 David Jennes - -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. - - -## FBSDKCoreKit - -Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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. - - -## FBSDKLoginKit - -Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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. - - -## FBSDKShareKit - -Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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. - - -## NACrypto - -The MIT License (MIT) - -Copyright (c) 2015 Gabriel Handford - -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. - - - -## NSDate_Utils - -Copyright (c) 2015 Giuseppe Nucifora - -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. - - -## NSString-Helper - -Copyright (c) 2015 Giuseppe Nucifora - -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. - - -## NSUserDefaults-AESEncryptor - -Copyright (c) 2013 No Zebra Network - -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. - - -## PEAR-FileManager-iOS - -Copyright (c) <2015> Hiroki Umatani PEAR - - -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. - - -## PNObject - -Copyright (c) 2015 Giuseppe Nucifora - -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. - - -## RZDataBinding - - -Copyright 2014 Raizlabs and other contributors -http://raizlabs.com/ - -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. - - -## StrongestPasswordValidator - -Copyright (c) 2016 Giuseppe Nucifora - -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. - - -## UIDevice-Utils - -Copyright (c) 2015 Giuseppe Nucifora - -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. - - -## nv-ios-http-status - - - 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. - - ## Expecta Copyright (c) 2011-2015 Specta Team - https://github.com/specta @@ -621,65 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -## Expecta+Snapshots - -MIT License - -Copyright (c) 2014 Daniel Doubrovkine, Artsy Inc. - -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. - - -## FBSnapshotTestCase - -BSD License - -For the FBSnapshotTestCase software - -Copyright (c) 2013, Facebook, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ## Specta Copyright (c) 2012-2014 Specta Team. diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.plist index 99d76a4..410f3e9 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-acknowledgements.plist @@ -12,711 +12,6 @@ Type PSGroupSpecifier - - FooterText - Copyright (c) 2011–2016 Alamofire Software Foundation (http://alamofire.org/) - -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 - AFNetworking - Type - PSGroupSpecifier - - - FooterText - BSD License - -For Bolts software - -Copyright (c) 2013-present, Facebook, Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - License - BSD - Title - Bolts - Type - PSGroupSpecifier - - - FooterText - The MIT License (MIT) -Copyright (c) 2013 Kelp https://github.com/kelp404 - -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 - CocoaSecurity - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - CodFis-Helper - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 David Jennes <david.jennes@gmail.com> - -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 - DJLocalization - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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 - Facebook Platform License - Title - FBSDKCoreKit - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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 - Facebook Platform License - Title - FBSDKLoginKit - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2014-present, Facebook, Inc. All rights reserved. - -You are hereby granted a non-exclusive, worldwide, royalty-free license to use, -copy, modify, and distribute this software in source code or binary form for use -in connection with the web services and APIs provided by Facebook. - -As with any software that integrates with the Facebook platform, your use of -this software is subject to the Facebook Developer Principles and Policies -[http://developers.facebook.com/policy/]. This copyright 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 - Facebook Platform License - Title - FBSDKShareKit - Type - PSGroupSpecifier - - - FooterText - The MIT License (MIT) - -Copyright (c) 2015 Gabriel Handford - -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 - NACrypto - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - NSDate_Utils - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - NSString-Helper - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2013 No Zebra Network - -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 - NSUserDefaults-AESEncryptor - Type - PSGroupSpecifier - - - FooterText - Copyright (c) <2015> Hiroki Umatani PEAR - - -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 - PEAR-FileManager-iOS - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - PNObject - Type - PSGroupSpecifier - - - FooterText - -Copyright 2014 Raizlabs and other contributors -http://raizlabs.com/ - -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 - RZDataBinding - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2016 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - StrongestPasswordValidator - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2015 Giuseppe Nucifora <me@giuseppenucifora.com> - -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 - UIDevice-Utils - 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 - Title - nv-ios-http-status - Type - PSGroupSpecifier - FooterText Copyright (c) 2011-2015 Specta Team - https://github.com/specta @@ -746,77 +41,6 @@ THE SOFTWARE. Type PSGroupSpecifier - - FooterText - MIT License - -Copyright (c) 2014 Daniel Doubrovkine, Artsy Inc. - -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 - Expecta+Snapshots - Type - PSGroupSpecifier - - - FooterText - BSD License - -For the FBSnapshotTestCase software - -Copyright (c) 2013, Facebook, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - License - BSD - Title - FBSnapshotTestCase - Type - PSGroupSpecifier - FooterText Copyright (c) 2012-2014 Specta Team. diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh index 401d5c7..14133a5 100755 --- a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests-frameworks.sh @@ -89,51 +89,11 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/Bolts/Bolts.framework" - install_framework "$BUILT_PRODUCTS_DIR/CocoaSecurity/CocoaSecurity.framework" - install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework" - install_framework "$BUILT_PRODUCTS_DIR/DJLocalization/DJLocalization.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKCoreKit/FBSDKCoreKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKLoginKit/FBSDKLoginKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKShareKit/FBSDKShareKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/NACrypto/NACrypto.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSDate_Utils/NSDate_Utils.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSString-Helper/NSString_Helper.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework" - install_framework "$BUILT_PRODUCTS_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework" - install_framework "$BUILT_PRODUCTS_DIR/PNObject/PNObject.framework" - install_framework "$BUILT_PRODUCTS_DIR/RZDataBinding/RZDataBinding.framework" - install_framework "$BUILT_PRODUCTS_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework" - install_framework "$BUILT_PRODUCTS_DIR/UIDevice-Utils/UIDevice_Utils.framework" - install_framework "$BUILT_PRODUCTS_DIR/nv-ios-http-status/nv_ios_http_status.framework" install_framework "$BUILT_PRODUCTS_DIR/Expecta/Expecta.framework" - install_framework "$BUILT_PRODUCTS_DIR/Expecta+Snapshots/Expecta_Snapshots.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework" install_framework "$BUILT_PRODUCTS_DIR/Specta/Specta.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "$BUILT_PRODUCTS_DIR/AFNetworking/AFNetworking.framework" - install_framework "$BUILT_PRODUCTS_DIR/Bolts/Bolts.framework" - install_framework "$BUILT_PRODUCTS_DIR/CocoaSecurity/CocoaSecurity.framework" - install_framework "$BUILT_PRODUCTS_DIR/CodFis-Helper/CodFis_Helper.framework" - install_framework "$BUILT_PRODUCTS_DIR/DJLocalization/DJLocalization.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKCoreKit/FBSDKCoreKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKLoginKit/FBSDKLoginKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSDKShareKit/FBSDKShareKit.framework" - install_framework "$BUILT_PRODUCTS_DIR/NACrypto/NACrypto.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSDate_Utils/NSDate_Utils.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSString-Helper/NSString_Helper.framework" - install_framework "$BUILT_PRODUCTS_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework" - install_framework "$BUILT_PRODUCTS_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework" - install_framework "$BUILT_PRODUCTS_DIR/PNObject/PNObject.framework" - install_framework "$BUILT_PRODUCTS_DIR/RZDataBinding/RZDataBinding.framework" - install_framework "$BUILT_PRODUCTS_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework" - install_framework "$BUILT_PRODUCTS_DIR/UIDevice-Utils/UIDevice_Utils.framework" - install_framework "$BUILT_PRODUCTS_DIR/nv-ios-http-status/nv_ios_http_status.framework" install_framework "$BUILT_PRODUCTS_DIR/Expecta/Expecta.framework" - install_framework "$BUILT_PRODUCTS_DIR/Expecta+Snapshots/Expecta_Snapshots.framework" - install_framework "$BUILT_PRODUCTS_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework" install_framework "$BUILT_PRODUCTS_DIR/Specta/Specta.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then diff --git a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig index ad6423b..7a70496 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.debug.xcconfig @@ -1,10 +1,8 @@ -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/Expecta" "$PODS_CONFIGURATION_BUILD_DIR/Expecta+Snapshots" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase" "$PODS_CONFIGURATION_BUILD_DIR/NACrypto" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/Specta" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Expecta" "$PODS_CONFIGURATION_BUILD_DIR/Specta" "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NAChloride" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/libsodium" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" 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/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta+Snapshots/Expecta_Snapshots.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta/Expecta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NACrypto/NACrypto.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Specta/Specta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DJLocalization" -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "FBSnapshotTestCase" -framework "NACrypto" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "RZDataBinding" -framework "Specta" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "nv_ios_http_status" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta/Expecta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Specta/Specta.framework/Headers" $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NAChloride/NAChloride.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/libsodium/libsodium.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Expecta" -framework "Specta" 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-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig index ad6423b..7a70496 100644 --- a/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-PNObject_Tests/Pods-PNObject_Tests.release.xcconfig @@ -1,10 +1,8 @@ -EMBEDDED_CONTENT_CONTAINS_SWIFT = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/Expecta" "$PODS_CONFIGURATION_BUILD_DIR/Expecta+Snapshots" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase" "$PODS_CONFIGURATION_BUILD_DIR/NACrypto" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/Specta" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Expecta" "$PODS_CONFIGURATION_BUILD_DIR/Specta" "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking" "$PODS_CONFIGURATION_BUILD_DIR/Bolts" "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity" "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper" "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper" "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit" "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit" "$PODS_CONFIGURATION_BUILD_DIR/NAChloride" "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils" "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper" "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor" "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS" "$PODS_CONFIGURATION_BUILD_DIR/PNObject" "$PODS_CONFIGURATION_BUILD_DIR/PureLayout" "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding" "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator" "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils" "$PODS_CONFIGURATION_BUILD_DIR/libsodium" "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status" 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/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta+Snapshots/Expecta_Snapshots.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta/Expecta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSnapshotTestCase/FBSnapshotTestCase.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NACrypto/NACrypto.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Specta/Specta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "AFNetworking" -framework "Bolts" -framework "CocoaSecurity" -framework "CodFis_Helper" -framework "DJLocalization" -framework "Expecta" -framework "Expecta_Snapshots" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "FBSDKShareKit" -framework "FBSnapshotTestCase" -framework "NACrypto" -framework "NSDate_Utils" -framework "NSString_Helper" -framework "NSUserDefaults_AESEncryptor" -framework "PEAR_FileManager_iOS" -framework "PNObject" -framework "RZDataBinding" -framework "Specta" -framework "StrongestPasswordValidator" -framework "UIDevice_Utils" -framework "nv_ios_http_status" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Expecta/Expecta.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Specta/Specta.framework/Headers" $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/AFNetworking/AFNetworking.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Bolts/Bolts.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CocoaSecurity/CocoaSecurity.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/CodFis-Helper/CodFis_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DDDKeychainWrapper/DDDKeychainWrapper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/DJLocalization/DJLocalization.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKCoreKit/FBSDKCoreKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKLoginKit/FBSDKLoginKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/FBSDKShareKit/FBSDKShareKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NAChloride/NAChloride.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSDate_Utils/NSDate_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSString-Helper/NSString_Helper.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/NSUserDefaults-AESEncryptor/NSUserDefaults_AESEncryptor.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PEAR-FileManager-iOS/PEAR_FileManager_iOS.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PNObject/PNObject.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PureLayout/PureLayout.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/RZDataBinding/RZDataBinding.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/StrongestPasswordValidator/StrongestPasswordValidator.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/UIDevice-Utils/UIDevice_Utils.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/libsodium/libsodium.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/nv-ios-http-status/nv_ios_http_status.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "Expecta" -framework "Specta" 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/NACrypto/Info.plist b/Example/Pods/Target Support Files/libsodium/Info.plist similarity index 96% rename from Example/Pods/Target Support Files/NACrypto/Info.plist rename to Example/Pods/Target Support Files/libsodium/Info.plist index 995c8fe..5dbf178 100644 --- a/Example/Pods/Target Support Files/NACrypto/Info.plist +++ b/Example/Pods/Target Support Files/libsodium/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.0.6 + 1.0.11 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/libsodium/libsodium-dummy.m b/Example/Pods/Target Support Files/libsodium/libsodium-dummy.m new file mode 100644 index 0000000..78b37d3 --- /dev/null +++ b/Example/Pods/Target Support Files/libsodium/libsodium-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_libsodium : NSObject +@end +@implementation PodsDummy_libsodium +@end diff --git a/Example/Pods/Target Support Files/NACrypto/NACrypto-prefix.pch b/Example/Pods/Target Support Files/libsodium/libsodium-prefix.pch similarity index 100% rename from Example/Pods/Target Support Files/NACrypto/NACrypto-prefix.pch rename to Example/Pods/Target Support Files/libsodium/libsodium-prefix.pch diff --git a/Example/Pods/Target Support Files/libsodium/libsodium-umbrella.h b/Example/Pods/Target Support Files/libsodium/libsodium-umbrella.h new file mode 100644 index 0000000..deef5ac --- /dev/null +++ b/Example/Pods/Target Support Files/libsodium/libsodium-umbrella.h @@ -0,0 +1,76 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "core.h" +#import "crypto_aead_aes256gcm.h" +#import "crypto_aead_chacha20poly1305.h" +#import "crypto_auth.h" +#import "crypto_auth_hmacsha256.h" +#import "crypto_auth_hmacsha512.h" +#import "crypto_auth_hmacsha512256.h" +#import "crypto_box.h" +#import "crypto_box_curve25519xsalsa20poly1305.h" +#import "crypto_core_hchacha20.h" +#import "crypto_core_hsalsa20.h" +#import "crypto_core_salsa20.h" +#import "crypto_core_salsa2012.h" +#import "crypto_core_salsa208.h" +#import "crypto_generichash.h" +#import "crypto_generichash_blake2b.h" +#import "crypto_hash.h" +#import "crypto_hash_sha256.h" +#import "crypto_hash_sha512.h" +#import "crypto_int32.h" +#import "crypto_int64.h" +#import "crypto_onetimeauth.h" +#import "crypto_onetimeauth_poly1305.h" +#import "crypto_pwhash.h" +#import "crypto_pwhash_argon2i.h" +#import "crypto_pwhash_scryptsalsa208sha256.h" +#import "crypto_scalarmult.h" +#import "crypto_scalarmult_curve25519.h" +#import "crypto_secretbox.h" +#import "crypto_secretbox_xsalsa20poly1305.h" +#import "crypto_shorthash.h" +#import "crypto_shorthash_siphash24.h" +#import "crypto_sign.h" +#import "crypto_sign_ed25519.h" +#import "crypto_sign_edwards25519sha512batch.h" +#import "crypto_stream.h" +#import "crypto_stream_aes128ctr.h" +#import "crypto_stream_chacha20.h" +#import "crypto_stream_salsa20.h" +#import "crypto_stream_salsa2012.h" +#import "crypto_stream_salsa208.h" +#import "crypto_stream_xsalsa20.h" +#import "crypto_uint16.h" +#import "crypto_uint32.h" +#import "crypto_uint64.h" +#import "crypto_uint8.h" +#import "crypto_verify_16.h" +#import "crypto_verify_32.h" +#import "crypto_verify_64.h" +#import "export.h" +#import "common.h" +#import "curve25519_ref10.h" +#import "mutex.h" +#import "randombytes.h" +#import "randombytes_nativeclient.h" +#import "randombytes_salsa20_random.h" +#import "randombytes_sysrandom.h" +#import "runtime.h" +#import "utils.h" +#import "version.h" + +FOUNDATION_EXPORT double libsodiumVersionNumber; +FOUNDATION_EXPORT const unsigned char libsodiumVersionString[]; + diff --git a/Example/Pods/Target Support Files/libsodium/libsodium.modulemap b/Example/Pods/Target Support Files/libsodium/libsodium.modulemap new file mode 100644 index 0000000..90782ee --- /dev/null +++ b/Example/Pods/Target Support Files/libsodium/libsodium.modulemap @@ -0,0 +1,6 @@ +framework module libsodium { + umbrella header "libsodium-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/libsodium/libsodium.xcconfig b/Example/Pods/Target Support Files/libsodium/libsodium.xcconfig new file mode 100644 index 0000000..3a156ed --- /dev/null +++ b/Example/Pods/Target Support Files/libsodium/libsodium.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/libsodium +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "$(PODS_ROOT)/libsodium/src/libsodium/include/sodium" "$(PODS_ROOT)/libsodium/src/libsodium/include" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/libsodium +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/libsodium/LICENSE b/Example/Pods/libsodium/LICENSE new file mode 100644 index 0000000..ede96e7 --- /dev/null +++ b/Example/Pods/libsodium/LICENSE @@ -0,0 +1,18 @@ +/* + * ISC License + * + * Copyright (c) 2013-2016 + * Frank Denis + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/Example/Pods/libsodium/README.markdown b/Example/Pods/libsodium/README.markdown new file mode 100644 index 0000000..a14e81d --- /dev/null +++ b/Example/Pods/libsodium/README.markdown @@ -0,0 +1,46 @@ +[![Build Status](https://travis-ci.org/jedisct1/libsodium.svg?branch=master)](https://travis-ci.org/jedisct1/libsodium?branch=master) +[![Windows build status](https://ci.appveyor.com/api/projects/status/fu8s2elx25il98hj?svg=true)](https://ci.appveyor.com/project/jedisct1/libsodium) +[![Coverity Scan Build Status](https://scan.coverity.com/projects/2397/badge.svg)](https://scan.coverity.com/projects/2397) + +![libsodium](https://raw.github.com/jedisct1/libsodium/master/logo.png) +============ + +Sodium is a new, easy-to-use software library for encryption, +decryption, signatures, password hashing and more. + +It is a portable, cross-compilable, installable, packageable +fork of [NaCl](http://nacl.cr.yp.to/), with a compatible API, and an +extended API to improve usability even further. + +Its goal is to provide all of the core operations needed to build +higher-level cryptographic tools. + +Sodium supports a variety of compilers and operating systems, +including Windows (with MingW or Visual Studio, x86 and x64), iOS and Android. + +## Documentation + +The documentation is a work-in-progress, and is being written using +Gitbook: + +* [libsodium documentation](https://download.libsodium.org/doc/) - +online, requires Javascript. +* [offline documentation](https://www.gitbook.com/book/jedisct1/libsodium/details) +in PDF, MOBI and ePUB formats. + +## Integrity Checking + +The integrity checking instructions (including the signing key for libsodium) +are available in the [installation](https://download.libsodium.org/doc/installation/index.html#integrity-checking) +section of the documentation. + +## Community + +A mailing-list is available to discuss libsodium. + +In order to join, just send a random mail to `sodium-subscribe` {at} +`pureftpd` {dot} `org`. + +## License + +[ISC license](https://en.wikipedia.org/wiki/ISC_license). diff --git a/Example/Pods/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c b/Example/Pods/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c new file mode 100644 index 0000000..47d40ae --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c @@ -0,0 +1,1045 @@ + +/* + * AES256-GCM, based on the "Intel Carry-Less Multiplication Instruction and its Usage for Computing + * the GCM Mode" paper and reference code, using the aggregated reduction method. + * Originally adapted by Romain Dolbeau. + */ + +#include +#include +#include +#include + +#include "crypto_aead_aes256gcm.h" +#include "export.h" +#include "runtime.h" +#include "utils.h" + +#if (defined(HAVE_TMMINTRIN_H) && defined(HAVE_WMMINTRIN_H)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1600 && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + +#pragma GCC target("ssse3") +#pragma GCC target("aes") +#pragma GCC target("pclmul") + +#include +#include + +#ifndef ENOSYS +# define ENOSYS ENXIO +#endif + +#if defined(__INTEL_COMPILER) || defined(_bswap64) +#elif defined(_MSC_VER) +# define _bswap64(a) _byteswap_uint64(a) +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) +# define _bswap64(a) __builtin_bswap64(a) +#else +static inline uint64_t +_bswap64(const uint64_t x) +{ + return + ((x << 56) & 0xFF00000000000000UL) | ((x << 40) & 0x00FF000000000000UL) | + ((x << 24) & 0x0000FF0000000000UL) | ((x << 8) & 0x000000FF00000000UL) | + ((x >> 8) & 0x00000000FF000000UL) | ((x >> 24) & 0x0000000000FF0000UL) | + ((x >> 40) & 0x000000000000FF00UL) | ((x >> 56) & 0x00000000000000FFUL); +} +#endif + +typedef struct context { + CRYPTO_ALIGN(16) unsigned char H[16]; + __m128i rkeys[16]; +} context; + +static inline void +aesni_key256_expand(const unsigned char *key, __m128i * const rkeys) +{ + __m128i X0, X1, X2, X3; + int i = 0; + + X0 = _mm_loadu_si128((const __m128i *) &key[0]); + rkeys[i++] = X0; + + X2 = _mm_loadu_si128((const __m128i *) &key[16]); + rkeys[i++] = X2; + +#define EXPAND_KEY_1(S) do { \ + X1 = _mm_shuffle_epi32(_mm_aeskeygenassist_si128(X2, (S)), 0xff); \ + X3 = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(X3), _mm_castsi128_ps(X0), 0x10)); \ + X0 = _mm_xor_si128(X0, X3); \ + X3 = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(X3), _mm_castsi128_ps(X0), 0x8c)); \ + X0 = _mm_xor_si128(_mm_xor_si128(X0, X3), X1); \ + rkeys[i++] = X0; \ +} while (0) + +#define EXPAND_KEY_2(S) do { \ + X1 = _mm_shuffle_epi32(_mm_aeskeygenassist_si128(X0, (S)), 0xaa); \ + X3 = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(X3), _mm_castsi128_ps(X2), 0x10)); \ + X2 = _mm_xor_si128(X2, X3); \ + X3 = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(X3), _mm_castsi128_ps(X2), 0x8c)); \ + X2 = _mm_xor_si128(_mm_xor_si128(X2, X3), X1); \ + rkeys[i++] = X2; \ +} while (0) + + X3 = _mm_setzero_si128(); + EXPAND_KEY_1(0x01); EXPAND_KEY_2(0x01); + EXPAND_KEY_1(0x02); EXPAND_KEY_2(0x02); + EXPAND_KEY_1(0x04); EXPAND_KEY_2(0x04); + EXPAND_KEY_1(0x08); EXPAND_KEY_2(0x08); + EXPAND_KEY_1(0x10); EXPAND_KEY_2(0x10); + EXPAND_KEY_1(0x20); EXPAND_KEY_2(0x20); + EXPAND_KEY_1(0x40); +} + +/** single, by-the-book AES encryption with AES-NI */ +static inline void +aesni_encrypt1(unsigned char *out, __m128i nv, const __m128i *rkeys) +{ + __m128i temp = _mm_xor_si128(nv, rkeys[0]); + int roundctr; + +#pragma unroll(13) + for (roundctr = 1; roundctr < 14; roundctr++) { + temp = _mm_aesenc_si128(temp, rkeys[roundctr]); + } + temp = _mm_aesenclast_si128(temp, rkeys[14]); + _mm_storeu_si128((__m128i *) out, temp); +} + +/** multiple-blocks-at-once AES encryption with AES-NI ; + on Haswell, aesenc has a latency of 7 and a throughput of 1 + so the sequence of aesenc should be bubble-free if you + have at least 8 blocks. Let's build an arbitratry-sized + function */ +/* Step 1 : loading the nonce */ +/* load & increment the n vector (non-vectorized, unused for now) */ +#define NVDECLx(a) \ + __m128i nv##a + +#define NVx(a) \ + nv##a = _mm_shuffle_epi8(_mm_load_si128((const __m128i *) n), pt); \ + n[3]++ + +/* Step 2 : define value in round one (xor with subkey #0, aka key) */ +#define TEMPDECLx(a) \ + __m128i temp##a + +#define TEMPx(a) \ + temp##a = _mm_xor_si128(nv##a, rkeys[0]) + +/* Step 3: one round of AES */ +#define AESENCx(a) \ + temp##a = _mm_aesenc_si128(temp##a, rkeys[roundctr]) + +/* Step 4: last round of AES */ +#define AESENCLASTx(a) \ + temp##a = _mm_aesenclast_si128(temp##a, rkeys[14]) + +/* Step 5: store result */ +#define STOREx(a) \ + _mm_storeu_si128((__m128i *) (out + (a * 16)), temp##a) + +/* all the MAKE* macros are for automatic explicit unrolling */ +#define MAKE4(X) \ + X(0); \ + X(1); \ + X(2); \ + X(3) + +#define MAKE8(X) \ + X(0); \ + X(1); \ + X(2); \ + X(3); \ + X(4); \ + X(5); \ + X(6); \ + X(7) + +#define COUNTER_INC2(N) (N)[3] += 2 + +/* create a function of unrolling N ; the MAKEN is the unrolling + macro, defined above. The N in MAKEN must match N, obviously. */ +#define FUNC(N, MAKEN) \ + static inline void aesni_encrypt##N(unsigned char *out, uint32_t *n, const __m128i *rkeys) \ + { \ + const __m128i pt = _mm_set_epi8(12, 13, 14, 15, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ + int roundctr; \ + MAKEN(NVDECLx); \ + MAKEN(TEMPDECLx); \ + \ + MAKEN(NVx); \ + MAKEN(TEMPx); \ + for (roundctr = 1; roundctr < 14; roundctr++) { \ + MAKEN(AESENCx); \ + } \ + MAKEN(AESENCLASTx); \ + MAKEN(STOREx); \ + } + +FUNC(8, MAKE8) + +/* all GF(2^128) fnctions are by the book, meaning this one: + +*/ + +static inline void +addmul(unsigned char *c, const unsigned char *a, unsigned int xlen, const unsigned char *b) +{ + const __m128i rev = _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + __m128i A, B, C; + __m128i tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9; + __m128i tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17, tmp18; + __m128i tmp19, tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27; + __m128i tmp28, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36; + + if (xlen >= 16) { + A = _mm_loadu_si128((const __m128i *) a); + } else { + CRYPTO_ALIGN(16) unsigned char padded[16]; + unsigned int i; + + memset(padded, 0, 16); + for (i = 0; i < xlen; i++) { + padded[i] = a[i]; + } + A = _mm_load_si128((const __m128i *) padded); + } + A = _mm_shuffle_epi8(A, rev); + B = _mm_loadu_si128((const __m128i *) b); + C = _mm_loadu_si128((const __m128i *) c); + A = _mm_xor_si128(A, C); + tmp3 = _mm_clmulepi64_si128(A, B, 0x00); + tmp4 = _mm_clmulepi64_si128(A, B, 0x10); + tmp5 = _mm_clmulepi64_si128(A, B, 0x01); + tmp6 = _mm_clmulepi64_si128(A, B, 0x11); + tmp10 = _mm_xor_si128(tmp4, tmp5); + tmp13 = _mm_slli_si128(tmp10, 8); + tmp11 = _mm_srli_si128(tmp10, 8); + tmp15 = _mm_xor_si128(tmp3, tmp13); + tmp17 = _mm_xor_si128(tmp6, tmp11); + tmp7 = _mm_srli_epi32(tmp15, 31); + tmp8 = _mm_srli_epi32(tmp17, 31); + tmp16 = _mm_slli_epi32(tmp15, 1); + tmp18 = _mm_slli_epi32(tmp17, 1); + tmp9 = _mm_srli_si128(tmp7, 12); + tmp22 = _mm_slli_si128(tmp8, 4); + tmp25 = _mm_slli_si128(tmp7, 4); + tmp29 = _mm_or_si128(tmp16, tmp25); + tmp19 = _mm_or_si128(tmp18, tmp22); + tmp20 = _mm_or_si128(tmp19, tmp9); + tmp26 = _mm_slli_epi32(tmp29, 31); + tmp23 = _mm_slli_epi32(tmp29, 30); + tmp32 = _mm_slli_epi32(tmp29, 25); + tmp27 = _mm_xor_si128(tmp26, tmp23); + tmp28 = _mm_xor_si128(tmp27, tmp32); + tmp24 = _mm_srli_si128(tmp28, 4); + tmp33 = _mm_slli_si128(tmp28, 12); + tmp30 = _mm_xor_si128(tmp29, tmp33); + tmp2 = _mm_srli_epi32(tmp30, 1); + tmp12 = _mm_srli_epi32(tmp30, 2); + tmp14 = _mm_srli_epi32(tmp30, 7); + tmp34 = _mm_xor_si128(tmp2, tmp12); + tmp35 = _mm_xor_si128(tmp34, tmp14); + tmp36 = _mm_xor_si128(tmp35, tmp24); + tmp31 = _mm_xor_si128(tmp30, tmp36); + tmp21 = _mm_xor_si128(tmp20, tmp31); + _mm_storeu_si128((__m128i *) c, tmp21); +} + +/* pure multiplication, for pre-computing powers of H */ +static inline __m128i +mulv(__m128i A, __m128i B) +{ + __m128i tmp3 = _mm_clmulepi64_si128(A, B, 0x00); + __m128i tmp4 = _mm_clmulepi64_si128(A, B, 0x10); + __m128i tmp5 = _mm_clmulepi64_si128(A, B, 0x01); + __m128i tmp6 = _mm_clmulepi64_si128(A, B, 0x11); + __m128i tmp10 = _mm_xor_si128(tmp4, tmp5); + __m128i tmp13 = _mm_slli_si128(tmp10, 8); + __m128i tmp11 = _mm_srli_si128(tmp10, 8); + __m128i tmp15 = _mm_xor_si128(tmp3, tmp13); + __m128i tmp17 = _mm_xor_si128(tmp6, tmp11); + __m128i tmp7 = _mm_srli_epi32(tmp15, 31); + __m128i tmp8 = _mm_srli_epi32(tmp17, 31); + __m128i tmp16 = _mm_slli_epi32(tmp15, 1); + __m128i tmp18 = _mm_slli_epi32(tmp17, 1); + __m128i tmp9 = _mm_srli_si128(tmp7, 12); + __m128i tmp22 = _mm_slli_si128(tmp8, 4); + __m128i tmp25 = _mm_slli_si128(tmp7, 4); + __m128i tmp29 = _mm_or_si128(tmp16, tmp25); + __m128i tmp19 = _mm_or_si128(tmp18, tmp22); + __m128i tmp20 = _mm_or_si128(tmp19, tmp9); + __m128i tmp26 = _mm_slli_epi32(tmp29, 31); + __m128i tmp23 = _mm_slli_epi32(tmp29, 30); + __m128i tmp32 = _mm_slli_epi32(tmp29, 25); + __m128i tmp27 = _mm_xor_si128(tmp26, tmp23); + __m128i tmp28 = _mm_xor_si128(tmp27, tmp32); + __m128i tmp24 = _mm_srli_si128(tmp28, 4); + __m128i tmp33 = _mm_slli_si128(tmp28, 12); + __m128i tmp30 = _mm_xor_si128(tmp29, tmp33); + __m128i tmp2 = _mm_srli_epi32(tmp30, 1); + __m128i tmp12 = _mm_srli_epi32(tmp30, 2); + __m128i tmp14 = _mm_srli_epi32(tmp30, 7); + __m128i tmp34 = _mm_xor_si128(tmp2, tmp12); + __m128i tmp35 = _mm_xor_si128(tmp34, tmp14); + __m128i tmp36 = _mm_xor_si128(tmp35, tmp24); + __m128i tmp31 = _mm_xor_si128(tmp30, tmp36); + __m128i C = _mm_xor_si128(tmp20, tmp31); + + return C; +} + +/* 4 multiply-accumulate at once; again + + for the Aggregated Reduction Method & sample code. + Algorithm by Krzysztof Jankowski, Pierre Laurent - Intel */ + +#define RED_DECL(a) __m128i H##a##_X##a##_lo, H##a##_X##a##_hi, tmp##a, tmp##a##B +#define RED_SHUFFLE(a) X##a = _mm_shuffle_epi8(X##a, rev) +#define RED_MUL_LOW(a) H##a##_X##a##_lo = _mm_clmulepi64_si128(H##a, X##a, 0x00) +#define RED_MUL_HIGH(a) H##a##_X##a##_hi = _mm_clmulepi64_si128(H##a, X##a, 0x11) +#define RED_MUL_MID(a) \ + tmp##a = _mm_shuffle_epi32(H##a, 0x4e); \ + tmp##a##B = _mm_shuffle_epi32(X##a, 0x4e); \ + tmp##a = _mm_xor_si128(tmp##a, H##a); \ + tmp##a##B = _mm_xor_si128(tmp##a##B, X##a); \ + tmp##a = _mm_clmulepi64_si128(tmp##a, tmp##a##B, 0x00) + +#define MULREDUCE4(rev, H0_, H1_, H2_, H3_, X0_, X1_, X2_, X3_, accv) \ +do { \ + MAKE4(RED_DECL); \ + __m128i lo, hi; \ + __m128i tmp8, tmp9; \ + __m128i H0 = H0_; \ + __m128i H1 = H1_; \ + __m128i H2 = H2_; \ + __m128i H3 = H3_; \ + __m128i X0 = X0_; \ + __m128i X1 = X1_; \ + __m128i X2 = X2_; \ + __m128i X3 = X3_; \ +\ +/* byte-revert the inputs & xor the first one into the accumulator */ \ +\ + MAKE4(RED_SHUFFLE); \ + X3 = _mm_xor_si128(X3, accv); \ +\ +/* 4 low H*X (x0*h0) */ \ +\ + MAKE4(RED_MUL_LOW); \ + lo = _mm_xor_si128(H0_X0_lo, H1_X1_lo); \ + lo = _mm_xor_si128(lo, H2_X2_lo); \ + lo = _mm_xor_si128(lo, H3_X3_lo); \ +\ +/* 4 high H*X (x1*h1) */ \ +\ + MAKE4(RED_MUL_HIGH); \ + hi = _mm_xor_si128(H0_X0_hi, H1_X1_hi); \ + hi = _mm_xor_si128(hi, H2_X2_hi); \ + hi = _mm_xor_si128(hi, H3_X3_hi); \ +\ +/* 4 middle H*X, using Karatsuba, i.e. \ + x1*h0+x0*h1 =(x1+x0)*(h1+h0)-x1*h1-x0*h0 \ + we already have all x1y1 & x0y0 (accumulated in hi & lo) \ + (0 is low half and 1 is high half) \ + */ \ +/* permute the high and low 64 bits in H1 & X1, \ + so create (h0,h1) from (h1,h0) and (x0,x1) from (x1,x0), \ + then compute (h0+h1,h1+h0) and (x0+x1,x1+x0), \ + and finally multiply \ + */ \ + MAKE4(RED_MUL_MID); \ +\ +/* substracts x1*h1 and x0*h0 */ \ + tmp0 = _mm_xor_si128(tmp0, lo); \ + tmp0 = _mm_xor_si128(tmp0, hi); \ + tmp0 = _mm_xor_si128(tmp1, tmp0); \ + tmp0 = _mm_xor_si128(tmp2, tmp0); \ + tmp0 = _mm_xor_si128(tmp3, tmp0);\ +\ + /* reduction */ \ + tmp0B = _mm_slli_si128(tmp0, 8); \ + tmp0 = _mm_srli_si128(tmp0, 8); \ + lo = _mm_xor_si128(tmp0B, lo); \ + hi = _mm_xor_si128(tmp0, hi); \ + tmp3 = lo; \ + tmp2B = hi; \ + tmp3B = _mm_srli_epi32(tmp3, 31); \ + tmp8 = _mm_srli_epi32(tmp2B, 31); \ + tmp3 = _mm_slli_epi32(tmp3, 1); \ + tmp2B = _mm_slli_epi32(tmp2B, 1); \ + tmp9 = _mm_srli_si128(tmp3B, 12); \ + tmp8 = _mm_slli_si128(tmp8, 4); \ + tmp3B = _mm_slli_si128(tmp3B, 4); \ + tmp3 = _mm_or_si128(tmp3, tmp3B); \ + tmp2B = _mm_or_si128(tmp2B, tmp8); \ + tmp2B = _mm_or_si128(tmp2B, tmp9); \ + tmp3B = _mm_slli_epi32(tmp3, 31); \ + tmp8 = _mm_slli_epi32(tmp3, 30); \ + tmp9 = _mm_slli_epi32(tmp3, 25); \ + tmp3B = _mm_xor_si128(tmp3B, tmp8); \ + tmp3B = _mm_xor_si128(tmp3B, tmp9); \ + tmp8 = _mm_srli_si128(tmp3B, 4); \ + tmp3B = _mm_slli_si128(tmp3B, 12); \ + tmp3 = _mm_xor_si128(tmp3, tmp3B); \ + tmp2 = _mm_srli_epi32(tmp3, 1); \ + tmp0B = _mm_srli_epi32(tmp3, 2); \ + tmp1B = _mm_srli_epi32(tmp3, 7); \ + tmp2 = _mm_xor_si128(tmp2, tmp0B); \ + tmp2 = _mm_xor_si128(tmp2, tmp1B); \ + tmp2 = _mm_xor_si128(tmp2, tmp8); \ + tmp3 = _mm_xor_si128(tmp3, tmp2); \ + tmp2B = _mm_xor_si128(tmp2B, tmp3); \ +\ + accv = tmp2B; \ +} while(0) + +#define XORx(a) \ + temp##a = _mm_xor_si128(temp##a, \ + _mm_loadu_si128((const __m128i *) (in + a * 16))) + +#define LOADx(a) \ + __m128i in##a = _mm_loadu_si128((const __m128i *) (in + a * 16)) + +/* full encrypt & checksum 8 blocks at once */ +#define aesni_encrypt8full(out_, n_, rkeys, in_, accum, hv_, h2v_, h3v_, h4v_, rev) \ +do { \ + unsigned char *out = out_; \ + uint32_t *n = n_; \ + const unsigned char *in = in_; \ + const __m128i hv = hv_; \ + const __m128i h2v = h2v_; \ + const __m128i h3v = h3v_; \ + const __m128i h4v = h4v_; \ + const __m128i pt = _mm_set_epi8(12, 13, 14, 15, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ + __m128i accv_; \ + int roundctr; \ + \ + MAKE8(NVDECLx); \ + MAKE8(TEMPDECLx); \ + MAKE8(NVx); \ + MAKE8(TEMPx); \ + for (roundctr = 1; roundctr < 14; roundctr++) { \ + MAKE8(AESENCx); \ + } \ + MAKE8(AESENCLASTx); \ + MAKE8(XORx); \ + MAKE8(STOREx); \ + accv_ = _mm_load_si128((const __m128i *) accum); \ + MULREDUCE4(rev, hv, h2v, h3v, h4v, temp3, temp2, temp1, temp0, accv_); \ + MULREDUCE4(rev, hv, h2v, h3v, h4v, temp7, temp6, temp5, temp4, accv_); \ + _mm_store_si128((__m128i *) accum, accv_); \ +} while(0) + +/* checksum 8 blocks at once */ +#define aesni_addmul8full(in_, accum, hv_, h2v_, h3v_, h4v_, rev) \ +do { \ + const unsigned char *in = in_; \ + const __m128i hv = hv_; \ + const __m128i h2v = h2v_; \ + const __m128i h3v = h3v_; \ + const __m128i h4v = h4v_; \ + __m128i accv_; \ + \ + MAKE8(LOADx); \ + accv_ = _mm_load_si128((const __m128i *) accum); \ + MULREDUCE4(rev, hv, h2v, h3v, h4v, in3, in2, in1, in0, accv_); \ + MULREDUCE4(rev, hv, h2v, h3v, h4v, in7, in6, in5, in4, accv_); \ + _mm_store_si128((__m128i *) accum, accv_); \ +} while(0) + +/* decrypt 8 blocks at once */ +#define aesni_decrypt8full(out_, n_, rkeys, in_) \ +do { \ + unsigned char *out = out_; \ + uint32_t *n = n_; \ + const unsigned char *in = in_; \ + const __m128i pt = _mm_set_epi8(12, 13, 14, 15, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); \ + int roundctr; \ +\ + MAKE8(NVDECLx); \ + MAKE8(TEMPDECLx); \ + MAKE8(NVx); \ + MAKE8(TEMPx); \ + for (roundctr = 1; roundctr < 14; roundctr++) { \ + MAKE8(AESENCx); \ + } \ + MAKE8(AESENCLASTx); \ + MAKE8(XORx); \ + MAKE8(STOREx); \ +} while(0) + +int +crypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *ctx_, + const unsigned char *k) +{ + context *ctx = (context *) ctx_; + __m128i *rkeys = ctx->rkeys; + __m128i zero = _mm_setzero_si128(); + unsigned char *H = ctx->H; + + (void) sizeof(int[(sizeof *ctx_) >= (sizeof *ctx) ? 1 : -1]); + aesni_key256_expand(k, rkeys); + aesni_encrypt1(H, zero, rkeys); + + return 0; +} + +int +crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, + unsigned char *mac, unsigned long long *maclen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + const __m128i rev = _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + const context *ctx = (const context *) ctx_; + const __m128i *rkeys = ctx->rkeys; + __m128i Hv, H2v, H3v, H4v, accv; + unsigned long long i, j; + unsigned long long adlen_rnd64 = adlen & ~63ULL; + unsigned long long mlen_rnd128 = mlen & ~127ULL; + CRYPTO_ALIGN(16) uint32_t n2[4]; + CRYPTO_ALIGN(16) unsigned char H[16]; + CRYPTO_ALIGN(16) unsigned char T[16]; + CRYPTO_ALIGN(16) unsigned char accum[16]; + CRYPTO_ALIGN(16) unsigned char fb[16]; + + (void) nsec; + memcpy(H, ctx->H, sizeof H); + if (mlen > 16ULL * ((1ULL << 32) - 2)) { + abort(); /* LCOV_EXCL_LINE */ + } + memcpy(&n2[0], npub, 3 * 4); + n2[3] = 0x01000000; + aesni_encrypt1(T, _mm_load_si128((const __m128i *) n2), rkeys); + { + uint64_t x; + x = _bswap64((uint64_t) (8 * adlen)); + memcpy(&fb[0], &x, sizeof x); + x = _bswap64((uint64_t) (8 * mlen)); + memcpy(&fb[8], &x, sizeof x); + } + /* we store H (and it's power) byte-reverted once and for all */ + Hv = _mm_shuffle_epi8(_mm_load_si128((const __m128i *) H), rev); + _mm_store_si128((__m128i *) H, Hv); + H2v = mulv(Hv, Hv); + H3v = mulv(H2v, Hv); + H4v = mulv(H3v, Hv); + + accv = _mm_setzero_si128(); + /* unrolled by 4 GCM (by 8 doesn't improve using MULREDUCE4) */ + for (i = 0; i < adlen_rnd64; i += 64) { + __m128i X4_ = _mm_loadu_si128((const __m128i *) (ad + i + 0)); + __m128i X3_ = _mm_loadu_si128((const __m128i *) (ad + i + 16)); + __m128i X2_ = _mm_loadu_si128((const __m128i *) (ad + i + 32)); + __m128i X1_ = _mm_loadu_si128((const __m128i *) (ad + i + 48)); + MULREDUCE4(rev, Hv, H2v, H3v, H4v, X1_, X2_, X3_, X4_, accv); + } + _mm_store_si128((__m128i *) accum, accv); + + /* GCM remainder loop */ + for (i = adlen_rnd64; i < adlen; i += 16) { + unsigned int blocklen = 16; + + if (i + (unsigned long long) blocklen > adlen) { + blocklen = (unsigned int) (adlen - i); + } + addmul(accum, ad + i, blocklen, H); + } + +/* this only does 8 full blocks, so no fancy bounds checking is necessary*/ +#define LOOPRND128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + \ + for (i = 0; i < mlen_rnd128; i += lb) { \ + aesni_encrypt8full(c + i, n2, rkeys, m + i, accum, Hv, H2v, H3v, H4v, rev); \ + } \ + } while(0) + +/* remainder loop, with the slower GCM update to accomodate partial blocks */ +#define LOOPRMD128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + \ + for (i = mlen_rnd128; i < mlen; i += lb) { \ + CRYPTO_ALIGN(16) unsigned char outni[8 * 16]; \ + unsigned long long mj = lb; \ + \ + aesni_encrypt8(outni, n2, rkeys); \ + if ((i + mj) >= mlen) { \ + mj = mlen - i; \ + } \ + for (j = 0; j < mj; j++) { \ + c[i + j] = m[i + j] ^ outni[j]; \ + } \ + for (j = 0; j < mj; j += 16) { \ + unsigned int bl = 16; \ + \ + if (j + (unsigned long long) bl >= mj) { \ + bl = (unsigned int) (mj - j); \ + } \ + addmul(accum, c + i + j, bl, H); \ + } \ + } \ + } while(0) + + n2[3] &= 0x00ffffff; + COUNTER_INC2(n2); + LOOPRND128; + LOOPRMD128; + + addmul(accum, fb, 16, H); + + for (i = 0; i < 16; ++i) { + mac[i] = T[i] ^ accum[15 - i]; + } + if (maclen_p != NULL) { + *maclen_p = 16; + } + return 0; +} + +int +crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + int ret = crypto_aead_aes256gcm_encrypt_detached_afternm(c, + c + mlen, NULL, + m, mlen, + ad, adlen, + nsec, npub, ctx_); + if (clen_p != NULL) { + *clen_p = mlen + crypto_aead_aes256gcm_ABYTES; + } + return ret; +} + +int +crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + const __m128i rev = _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + const context *ctx = (const context *) ctx_; + const __m128i *rkeys = ctx->rkeys; + __m128i Hv, H2v, H3v, H4v, accv; + unsigned long long i, j; + unsigned long long adlen_rnd64 = adlen & ~63ULL; + unsigned long long mlen; + unsigned long long mlen_rnd128; + CRYPTO_ALIGN(16) uint32_t n2[4]; + CRYPTO_ALIGN(16) unsigned char H[16]; + CRYPTO_ALIGN(16) unsigned char T[16]; + CRYPTO_ALIGN(16) unsigned char accum[16]; + CRYPTO_ALIGN(16) unsigned char fb[16]; + + (void) nsec; + if (clen > 16ULL * (1ULL << 32)) { + abort(); /* LCOV_EXCL_LINE */ + } + mlen = clen; + + memcpy(&n2[0], npub, 3 * 4); + n2[3] = 0x01000000; + aesni_encrypt1(T, _mm_load_si128((const __m128i *) n2), rkeys); + + { + uint64_t x; + x = _bswap64((uint64_t)(8 * adlen)); + memcpy(&fb[0], &x, sizeof x); + x = _bswap64((uint64_t)(8 * mlen)); + memcpy(&fb[8], &x, sizeof x); + } + + memcpy(H, ctx->H, sizeof H); + Hv = _mm_shuffle_epi8(_mm_load_si128((const __m128i *) H), rev); + _mm_store_si128((__m128i *) H, Hv); + H2v = mulv(Hv, Hv); + H3v = mulv(H2v, Hv); + H4v = mulv(H3v, Hv); + + accv = _mm_setzero_si128(); + for (i = 0; i < adlen_rnd64; i += 64) { + __m128i X4_ = _mm_loadu_si128((const __m128i *) (ad + i + 0)); + __m128i X3_ = _mm_loadu_si128((const __m128i *) (ad + i + 16)); + __m128i X2_ = _mm_loadu_si128((const __m128i *) (ad + i + 32)); + __m128i X1_ = _mm_loadu_si128((const __m128i *) (ad + i + 48)); + MULREDUCE4(rev, Hv, H2v, H3v, H4v, X1_, X2_, X3_, X4_, accv); + } + _mm_store_si128((__m128i *) accum, accv); + + for (i = adlen_rnd64; i < adlen; i += 16) { + unsigned int blocklen = 16; + if (i + (unsigned long long) blocklen > adlen) { + blocklen = (unsigned int) (adlen - i); + } + addmul(accum, ad + i, blocklen, H); + } + + mlen_rnd128 = mlen & ~127ULL; + +#define LOOPACCUMDRND128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + for (i = 0; i < mlen_rnd128; i += lb) { \ + aesni_addmul8full(c + i, accum, Hv, H2v, H3v, H4v, rev); \ + } \ + } while(0) + +#define LOOPDRND128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + \ + for (i = 0; i < mlen_rnd128; i += lb) { \ + aesni_decrypt8full(m + i, n2, rkeys, c + i); \ + } \ + } while(0) + +#define LOOPACCUMDRMD128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + \ + for (i = mlen_rnd128; i < mlen; i += lb) { \ + unsigned long long mj = lb; \ + \ + if ((i + mj) >= mlen) { \ + mj = mlen - i; \ + } \ + for (j = 0; j < mj; j += 16) { \ + unsigned int bl = 16; \ + \ + if (j + (unsigned long long) bl >= mj) { \ + bl = (unsigned int) (mj - j); \ + } \ + addmul(accum, c + i + j, bl, H); \ + } \ + } \ + } while(0) + +#define LOOPDRMD128 \ + do { \ + const int iter = 8; \ + const int lb = iter * 16; \ + \ + for (i = mlen_rnd128; i < mlen; i += lb) { \ + CRYPTO_ALIGN(16) unsigned char outni[8 * 16]; \ + unsigned long long mj = lb; \ + \ + if ((i + mj) >= mlen) { \ + mj = mlen - i; \ + } \ + aesni_encrypt8(outni, n2, rkeys); \ + for (j = 0; j < mj; j++) { \ + m[i + j] = c[i + j] ^ outni[j]; \ + } \ + } \ + } while(0) + + n2[3] &= 0x00ffffff; + + COUNTER_INC2(n2); + LOOPACCUMDRND128; + LOOPACCUMDRMD128; + addmul(accum, fb, 16, H); + { + unsigned char d = 0; + + for (i = 0; i < 16; i++) { + d |= (mac[i] ^ (T[i] ^ accum[15 - i])); + } + if (d != 0) { + if (m != NULL) { + memset(m, 0, mlen); + } + return -1; + } + if (m == NULL) { + return 0; + } + } + n2[3] = 0U; + COUNTER_INC2(n2); + LOOPDRND128; + LOOPDRMD128; + + return 0; +} + +int +crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + unsigned long long mlen = 0ULL; + int ret = -1; + + if (clen >= crypto_aead_aes256gcm_ABYTES) { + ret = crypto_aead_aes256gcm_decrypt_detached_afternm + (m, nsec, c, clen - crypto_aead_aes256gcm_ABYTES, + c + clen - crypto_aead_aes256gcm_ABYTES, + ad, adlen, npub, ctx_); + } + if (mlen_p != NULL) { + if (ret == 0) { + mlen = clen - crypto_aead_aes256gcm_ABYTES; + } + *mlen_p = mlen; + } + return ret; +} + +int +crypto_aead_aes256gcm_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx; + + crypto_aead_aes256gcm_beforenm(&ctx, k); + + return crypto_aead_aes256gcm_encrypt_detached_afternm + (c, mac, maclen_p, m, mlen, ad, adlen, nsec, npub, + (const crypto_aead_aes256gcm_state *) &ctx); +} + +int +crypto_aead_aes256gcm_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx; + + crypto_aead_aes256gcm_beforenm(&ctx, k); + + return crypto_aead_aes256gcm_encrypt_afternm + (c, clen_p, m, mlen, ad, adlen, nsec, npub, + (const crypto_aead_aes256gcm_state *) &ctx); +} + +int +crypto_aead_aes256gcm_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx; + + crypto_aead_aes256gcm_beforenm(&ctx, k); + + return crypto_aead_aes256gcm_decrypt_detached_afternm + (m, nsec, c, clen, mac, ad, adlen, npub, + (const crypto_aead_aes256gcm_state *) &ctx); +} + +int +crypto_aead_aes256gcm_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx; + + crypto_aead_aes256gcm_beforenm(&ctx, k); + + return crypto_aead_aes256gcm_decrypt_afternm + (m, mlen_p, nsec, c, clen, ad, adlen, npub, + (const crypto_aead_aes256gcm_state *) &ctx); +} + +int +crypto_aead_aes256gcm_is_available(void) +{ + return sodium_runtime_has_pclmul() & sodium_runtime_has_aesni(); +} + +#else + +int +crypto_aead_aes256gcm_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_encrypt(unsigned char *c, unsigned long long *clen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const unsigned char *k) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_decrypt(unsigned char *m, unsigned long long *mlen_p, + unsigned char *nsec, const unsigned char *c, + unsigned long long clen, const unsigned char *ad, + unsigned long long adlen, const unsigned char *npub, + const unsigned char *k) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *ctx_, + const unsigned char *k) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, + unsigned char *mac, unsigned long long *maclen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, unsigned long long *clen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *nsec, const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, unsigned long long clen, + const unsigned char *ad, unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) +{ + errno = ENOSYS; + return -1; +} + +int +crypto_aead_aes256gcm_is_available(void) +{ + return 0; +} + +#endif + +size_t +crypto_aead_aes256gcm_keybytes(void) +{ + return crypto_aead_aes256gcm_KEYBYTES; +} + +size_t +crypto_aead_aes256gcm_nsecbytes(void) +{ + return crypto_aead_aes256gcm_NSECBYTES; +} + +size_t +crypto_aead_aes256gcm_npubbytes(void) +{ + return crypto_aead_aes256gcm_NPUBBYTES; +} + +size_t +crypto_aead_aes256gcm_abytes(void) +{ + return crypto_aead_aes256gcm_ABYTES; +} + +size_t +crypto_aead_aes256gcm_statebytes(void) +{ + return (sizeof(crypto_aead_aes256gcm_state) + (size_t) 15U) & ~(size_t) 15U; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c new file mode 100644 index 0000000..8916518 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c @@ -0,0 +1,365 @@ + +#include +#include +#include +#include + +#include "crypto_aead_chacha20poly1305.h" +#include "crypto_onetimeauth_poly1305.h" +#include "crypto_stream_chacha20.h" +#include "crypto_verify_16.h" +#include "utils.h" + +#include "private/common.h" + +static const unsigned char _pad0[16] = { 0 }; + +int +crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + crypto_onetimeauth_poly1305_state state; + unsigned char block0[64U]; + unsigned char slen[8U]; + + (void) nsec; + crypto_stream_chacha20(block0, sizeof block0, npub, k); + crypto_onetimeauth_poly1305_init(&state, block0); + sodium_memzero(block0, sizeof block0); + + crypto_onetimeauth_poly1305_update(&state, ad, adlen); + STORE64_LE(slen, (uint64_t) adlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + crypto_stream_chacha20_xor_ic(c, m, mlen, npub, 1U, k); + + crypto_onetimeauth_poly1305_update(&state, c, mlen); + STORE64_LE(slen, (uint64_t) mlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + crypto_onetimeauth_poly1305_final(&state, mac); + sodium_memzero(&state, sizeof state); + + if (maclen_p != NULL) { + *maclen_p = crypto_aead_chacha20poly1305_ABYTES; + } + return 0; +} + +int +crypto_aead_chacha20poly1305_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + unsigned long long clen = 0ULL; + int ret; + + if (mlen > UINT64_MAX - crypto_aead_chacha20poly1305_ABYTES) { + abort(); /* LCOV_EXCL_LINE */ + } + ret = crypto_aead_chacha20poly1305_encrypt_detached(c, + c + mlen, NULL, + m, mlen, + ad, adlen, + nsec, npub, k); + if (clen_p != NULL) { + if (ret == 0) { + clen = mlen + crypto_aead_chacha20poly1305_ABYTES; + } + *clen_p = clen; + } + return ret; +} + +int +crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + crypto_onetimeauth_poly1305_state state; + unsigned char block0[64U]; + unsigned char slen[8U]; + + (void) nsec; + crypto_stream_chacha20_ietf(block0, sizeof block0, npub, k); + crypto_onetimeauth_poly1305_init(&state, block0); + sodium_memzero(block0, sizeof block0); + + crypto_onetimeauth_poly1305_update(&state, ad, adlen); + crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf); + + crypto_stream_chacha20_ietf_xor_ic(c, m, mlen, npub, 1U, k); + + crypto_onetimeauth_poly1305_update(&state, c, mlen); + crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf); + + STORE64_LE(slen, (uint64_t) adlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + STORE64_LE(slen, (uint64_t) mlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + crypto_onetimeauth_poly1305_final(&state, mac); + sodium_memzero(&state, sizeof state); + + if (maclen_p != NULL) { + *maclen_p = crypto_aead_chacha20poly1305_ietf_ABYTES; + } + return 0; +} + +int +crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k) +{ + unsigned long long clen = 0ULL; + int ret; + + if (mlen > UINT64_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES) { + abort(); /* LCOV_EXCL_LINE */ + } + ret = crypto_aead_chacha20poly1305_ietf_encrypt_detached(c, + c + mlen, NULL, + m, mlen, + ad, adlen, + nsec, npub, k); + if (clen_p != NULL) { + if (ret == 0) { + clen = mlen + crypto_aead_chacha20poly1305_ietf_ABYTES; + } + *clen_p = clen; + } + return ret; +} + +int +crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + crypto_onetimeauth_poly1305_state state; + unsigned char block0[64U]; + unsigned char slen[8U]; + unsigned char computed_mac[crypto_aead_chacha20poly1305_ABYTES]; + unsigned long long mlen; + int ret; + + (void) nsec; + crypto_stream_chacha20(block0, sizeof block0, npub, k); + crypto_onetimeauth_poly1305_init(&state, block0); + sodium_memzero(block0, sizeof block0); + + crypto_onetimeauth_poly1305_update(&state, ad, adlen); + STORE64_LE(slen, (uint64_t) adlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + mlen = clen; + crypto_onetimeauth_poly1305_update(&state, c, mlen); + STORE64_LE(slen, (uint64_t) mlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + crypto_onetimeauth_poly1305_final(&state, computed_mac); + sodium_memzero(&state, sizeof state); + + (void) sizeof(int[sizeof computed_mac == 16U ? 1 : -1]); + ret = crypto_verify_16(computed_mac, mac); + sodium_memzero(computed_mac, sizeof computed_mac); + if (m == NULL) { + return ret; + } + if (ret != 0) { + memset(m, 0, mlen); + return -1; + } + crypto_stream_chacha20_xor_ic(m, c, mlen, npub, 1U, k); + + return 0; +} + +int +crypto_aead_chacha20poly1305_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + unsigned long long mlen = 0ULL; + int ret = -1; + + if (clen >= crypto_aead_chacha20poly1305_ABYTES) { + ret = crypto_aead_chacha20poly1305_decrypt_detached + (m, nsec, + c, clen - crypto_aead_chacha20poly1305_ABYTES, + c + clen - crypto_aead_chacha20poly1305_ABYTES, + ad, adlen, npub, k); + } + if (mlen_p != NULL) { + if (ret == 0) { + mlen = clen - crypto_aead_chacha20poly1305_ABYTES; + } + *mlen_p = mlen; + } + return ret; +} + +int +crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + crypto_onetimeauth_poly1305_state state; + unsigned char block0[64U]; + unsigned char slen[8U]; + unsigned char computed_mac[crypto_aead_chacha20poly1305_ietf_ABYTES]; + unsigned long long mlen; + int ret; + + (void) nsec; + crypto_stream_chacha20_ietf(block0, sizeof block0, npub, k); + crypto_onetimeauth_poly1305_init(&state, block0); + sodium_memzero(block0, sizeof block0); + + crypto_onetimeauth_poly1305_update(&state, ad, adlen); + crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - adlen) & 0xf); + + mlen = clen; + crypto_onetimeauth_poly1305_update(&state, c, mlen); + crypto_onetimeauth_poly1305_update(&state, _pad0, (0x10 - mlen) & 0xf); + + STORE64_LE(slen, (uint64_t) adlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + STORE64_LE(slen, (uint64_t) mlen); + crypto_onetimeauth_poly1305_update(&state, slen, sizeof slen); + + crypto_onetimeauth_poly1305_final(&state, computed_mac); + sodium_memzero(&state, sizeof state); + + (void) sizeof(int[sizeof computed_mac == 16U ? 1 : -1]); + ret = crypto_verify_16(computed_mac, mac); + sodium_memzero(computed_mac, sizeof computed_mac); + if (m == NULL) { + return ret; + } + if (ret != 0) { + memset(m, 0, mlen); + return -1; + } + crypto_stream_chacha20_ietf_xor_ic(m, c, mlen, npub, 1U, k); + + return 0; +} + +int +crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) +{ + unsigned long long mlen = 0ULL; + int ret = -1; + + if (clen >= crypto_aead_chacha20poly1305_ietf_ABYTES) { + ret = crypto_aead_chacha20poly1305_ietf_decrypt_detached + (m, nsec, + c, clen - crypto_aead_chacha20poly1305_ietf_ABYTES, + c + clen - crypto_aead_chacha20poly1305_ietf_ABYTES, + ad, adlen, npub, k); + } + if (mlen_p != NULL) { + if (ret == 0) { + mlen = clen - crypto_aead_chacha20poly1305_ietf_ABYTES; + } + *mlen_p = mlen; + } + return ret; +} + +size_t +crypto_aead_chacha20poly1305_ietf_keybytes(void) { + return crypto_aead_chacha20poly1305_ietf_KEYBYTES; +} + +size_t +crypto_aead_chacha20poly1305_ietf_npubbytes(void) { + return crypto_aead_chacha20poly1305_ietf_NPUBBYTES; +} + +size_t +crypto_aead_chacha20poly1305_ietf_nsecbytes(void) { + return crypto_aead_chacha20poly1305_ietf_NSECBYTES; +} + +size_t +crypto_aead_chacha20poly1305_ietf_abytes(void) { + return crypto_aead_chacha20poly1305_ietf_ABYTES; +} + +size_t +crypto_aead_chacha20poly1305_keybytes(void) { + return crypto_aead_chacha20poly1305_KEYBYTES; +} + +size_t +crypto_aead_chacha20poly1305_npubbytes(void) { + return crypto_aead_chacha20poly1305_NPUBBYTES; +} + +size_t +crypto_aead_chacha20poly1305_nsecbytes(void) { + return crypto_aead_chacha20poly1305_NSECBYTES; +} + +size_t +crypto_aead_chacha20poly1305_abytes(void) { + return crypto_aead_chacha20poly1305_ABYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/crypto_auth.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/crypto_auth.c new file mode 100644 index 0000000..e76b149 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/crypto_auth.c @@ -0,0 +1,34 @@ + +#include "crypto_auth.h" + +size_t +crypto_auth_bytes(void) +{ + return crypto_auth_BYTES; +} + +size_t +crypto_auth_keybytes(void) +{ + return crypto_auth_KEYBYTES; +} + +const char * +crypto_auth_primitive(void) +{ + return crypto_auth_PRIMITIVE; +} + +int +crypto_auth(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + return crypto_auth_hmacsha512256(out, in, inlen, k); +} + +int +crypto_auth_verify(const unsigned char *h, const unsigned char *in, + unsigned long long inlen,const unsigned char *k) +{ + return crypto_auth_hmacsha512256_verify(h, in, inlen, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c new file mode 100644 index 0000000..9b8353f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c @@ -0,0 +1,16 @@ +#include "crypto_auth_hmacsha256.h" + +size_t +crypto_auth_hmacsha256_bytes(void) { + return crypto_auth_hmacsha256_BYTES; +} + +size_t +crypto_auth_hmacsha256_keybytes(void) { + return crypto_auth_hmacsha256_KEYBYTES; +} + +size_t +crypto_auth_hmacsha256_statebytes(void) { + return sizeof(crypto_auth_hmacsha256_state); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c new file mode 100644 index 0000000..dc7a7ce --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c @@ -0,0 +1,110 @@ + +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include "crypto_auth_hmacsha256.h" +#include "crypto_hash_sha256.h" +#include "utils.h" + +#include + +#include +#include + +int +crypto_auth_hmacsha256_init(crypto_auth_hmacsha256_state *state, + const unsigned char *key, + size_t keylen) +{ + unsigned char pad[64]; + unsigned char khash[32]; + size_t i; + + if (keylen > 64) { + crypto_hash_sha256_init(&state->ictx); + crypto_hash_sha256_update(&state->ictx, key, keylen); + crypto_hash_sha256_final(&state->ictx, khash); + key = khash; + keylen = 32; + } + crypto_hash_sha256_init(&state->ictx); + memset(pad, 0x36, 64); + for (i = 0; i < keylen; i++) { + pad[i] ^= key[i]; + } + crypto_hash_sha256_update(&state->ictx, pad, 64); + + crypto_hash_sha256_init(&state->octx); + memset(pad, 0x5c, 64); + for (i = 0; i < keylen; i++) { + pad[i] ^= key[i]; + } + crypto_hash_sha256_update(&state->octx, pad, 64); + + sodium_memzero((void *) pad, sizeof pad); + sodium_memzero((void *) khash, sizeof khash); + + return 0; +} + +int +crypto_auth_hmacsha256_update(crypto_auth_hmacsha256_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + crypto_hash_sha256_update(&state->ictx, in, inlen); + + return 0; +} + +int +crypto_auth_hmacsha256_final(crypto_auth_hmacsha256_state *state, + unsigned char *out) +{ + unsigned char ihash[32]; + + crypto_hash_sha256_final(&state->ictx, ihash); + crypto_hash_sha256_update(&state->octx, ihash, 32); + crypto_hash_sha256_final(&state->octx, out); + + sodium_memzero((void *) ihash, sizeof ihash); + + return 0; +} + +int +crypto_auth_hmacsha256(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + crypto_auth_hmacsha256_state state; + + crypto_auth_hmacsha256_init(&state, k, crypto_auth_hmacsha256_KEYBYTES); + crypto_auth_hmacsha256_update(&state, in, inlen); + crypto_auth_hmacsha256_final(&state, out); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c new file mode 100644 index 0000000..046a8b9 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c @@ -0,0 +1,11 @@ +#include "crypto_auth_hmacsha256.h" +#include "crypto_verify_32.h" +#include "utils.h" + +int crypto_auth_hmacsha256_verify(const unsigned char *h,const unsigned char *in,unsigned long long inlen,const unsigned char *k) +{ + unsigned char correct[32]; + crypto_auth_hmacsha256(correct,in,inlen,k); + return crypto_verify_32(h,correct) | (-(h == correct)) | + sodium_memcmp(correct,h,32); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c new file mode 100644 index 0000000..49b8c2d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c @@ -0,0 +1,16 @@ +#include "crypto_auth_hmacsha512.h" + +size_t +crypto_auth_hmacsha512_bytes(void) { + return crypto_auth_hmacsha512_BYTES; +} + +size_t +crypto_auth_hmacsha512_keybytes(void) { + return crypto_auth_hmacsha512_KEYBYTES; +} + +size_t +crypto_auth_hmacsha512_statebytes(void) { + return sizeof(crypto_auth_hmacsha512_state); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c new file mode 100644 index 0000000..dc8b63a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c @@ -0,0 +1,110 @@ + +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include "crypto_auth_hmacsha512.h" +#include "crypto_hash_sha512.h" +#include "utils.h" + +#include + +#include +#include + +int +crypto_auth_hmacsha512_init(crypto_auth_hmacsha512_state *state, + const unsigned char *key, + size_t keylen) +{ + unsigned char pad[128]; + unsigned char khash[64]; + size_t i; + + if (keylen > 128) { + crypto_hash_sha512_init(&state->ictx); + crypto_hash_sha512_update(&state->ictx, key, keylen); + crypto_hash_sha512_final(&state->ictx, khash); + key = khash; + keylen = 64; + } + crypto_hash_sha512_init(&state->ictx); + memset(pad, 0x36, 128); + for (i = 0; i < keylen; i++) { + pad[i] ^= key[i]; + } + crypto_hash_sha512_update(&state->ictx, pad, 128); + + crypto_hash_sha512_init(&state->octx); + memset(pad, 0x5c, 128); + for (i = 0; i < keylen; i++) { + pad[i] ^= key[i]; + } + crypto_hash_sha512_update(&state->octx, pad, 128); + + sodium_memzero((void *) pad, sizeof pad); + sodium_memzero((void *) khash, sizeof khash); + + return 0; +} + +int +crypto_auth_hmacsha512_update(crypto_auth_hmacsha512_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + crypto_hash_sha512_update(&state->ictx, in, inlen); + + return 0; +} + +int +crypto_auth_hmacsha512_final(crypto_auth_hmacsha512_state *state, + unsigned char *out) +{ + unsigned char ihash[64]; + + crypto_hash_sha512_final(&state->ictx, ihash); + crypto_hash_sha512_update(&state->octx, ihash, 64); + crypto_hash_sha512_final(&state->octx, out); + + sodium_memzero((void *) ihash, sizeof ihash); + + return 0; +} + +int +crypto_auth_hmacsha512(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + crypto_auth_hmacsha512_state state; + + crypto_auth_hmacsha512_init(&state, k, crypto_auth_hmacsha512_KEYBYTES); + crypto_auth_hmacsha512_update(&state, in, inlen); + crypto_auth_hmacsha512_final(&state, out); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c new file mode 100644 index 0000000..9897349 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c @@ -0,0 +1,12 @@ +#include "crypto_auth_hmacsha512.h" +#include "crypto_verify_64.h" +#include "utils.h" + +int crypto_auth_hmacsha512_verify(const unsigned char *h, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + unsigned char correct[64]; + crypto_auth_hmacsha512(correct,in,inlen,k); + return crypto_verify_64(h,correct) | (-(h == correct)) | + sodium_memcmp(correct,h,64); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c new file mode 100644 index 0000000..9405bbb --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c @@ -0,0 +1,16 @@ +#include "crypto_auth_hmacsha512256.h" + +size_t +crypto_auth_hmacsha512256_bytes(void) { + return crypto_auth_hmacsha512256_BYTES; +} + +size_t +crypto_auth_hmacsha512256_keybytes(void) { + return crypto_auth_hmacsha512256_KEYBYTES; +} + +size_t +crypto_auth_hmacsha512256_statebytes(void) { + return sizeof(crypto_auth_hmacsha512256_state); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c new file mode 100644 index 0000000..5b55e1c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c @@ -0,0 +1,54 @@ + +#include "crypto_auth_hmacsha512256.h" +#include "crypto_auth_hmacsha512.h" +#include "crypto_hash_sha512.h" +#include "utils.h" + +#include + +#include +#include + +int +crypto_auth_hmacsha512256_init(crypto_auth_hmacsha512256_state *state, + const unsigned char *key, + size_t keylen) +{ + return crypto_auth_hmacsha512_init((crypto_auth_hmacsha512_state *) state, + key, keylen); +} + +int +crypto_auth_hmacsha512256_update(crypto_auth_hmacsha512256_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + return crypto_auth_hmacsha512_update((crypto_auth_hmacsha512_state *) state, + in, inlen); +} + +int +crypto_auth_hmacsha512256_final(crypto_auth_hmacsha512256_state *state, + unsigned char *out) +{ + unsigned char out0[64]; + + crypto_auth_hmacsha512_final((crypto_auth_hmacsha512_state *) state, out0); + memcpy(out, out0, 32); + + return 0; +} + +int +crypto_auth_hmacsha512256(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + crypto_auth_hmacsha512256_state state; + + crypto_auth_hmacsha512256_init(&state, k, + crypto_auth_hmacsha512256_KEYBYTES); + crypto_auth_hmacsha512256_update(&state, in, inlen); + crypto_auth_hmacsha512256_final(&state, out); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c new file mode 100644 index 0000000..07af71b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c @@ -0,0 +1,14 @@ +#include "crypto_auth_hmacsha512256.h" +#include "crypto_verify_32.h" +#include "utils.h" + +int crypto_auth_hmacsha512256_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) +{ + unsigned char correct[32]; + crypto_auth_hmacsha512256(correct,in,inlen,k); + return crypto_verify_32(h,correct) | (-(h == correct)) | + sodium_memcmp(correct,h,32); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box.c b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box.c new file mode 100644 index 0000000..7ae4297 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box.c @@ -0,0 +1,108 @@ + +#include "crypto_box.h" + +size_t +crypto_box_seedbytes(void) +{ + return crypto_box_SEEDBYTES; +} + +size_t +crypto_box_publickeybytes(void) +{ + return crypto_box_PUBLICKEYBYTES; +} + +size_t +crypto_box_secretkeybytes(void) +{ + return crypto_box_SECRETKEYBYTES; +} + +size_t +crypto_box_beforenmbytes(void) +{ + return crypto_box_BEFORENMBYTES; +} + +size_t +crypto_box_noncebytes(void) +{ + return crypto_box_NONCEBYTES; +} + +size_t +crypto_box_zerobytes(void) +{ + return crypto_box_ZEROBYTES; +} + +size_t +crypto_box_boxzerobytes(void) +{ + return crypto_box_BOXZEROBYTES; +} + +size_t +crypto_box_macbytes(void) +{ + return crypto_box_MACBYTES; +} + +const char * +crypto_box_primitive(void) +{ + return crypto_box_PRIMITIVE; +} + +int +crypto_box_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed) +{ + return crypto_box_curve25519xsalsa20poly1305_seed_keypair(pk, sk, seed); +} + +int +crypto_box_keypair(unsigned char *pk, unsigned char *sk) +{ + return crypto_box_curve25519xsalsa20poly1305_keypair(pk, sk); +} + +int +crypto_box_beforenm(unsigned char *k, const unsigned char *pk, + const unsigned char *sk) +{ + return crypto_box_curve25519xsalsa20poly1305_beforenm(k, pk, sk); +} + +int +crypto_box_afternm(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_box_curve25519xsalsa20poly1305_afternm(c, m, mlen, n, k); +} + +int +crypto_box_open_afternm(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_box_curve25519xsalsa20poly1305_open_afternm(m, c, clen, n, k); +} + +int +crypto_box(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) +{ + return crypto_box_curve25519xsalsa20poly1305(c, m, mlen, n, pk, sk); +} + +int +crypto_box_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) +{ + return crypto_box_curve25519xsalsa20poly1305_open(m, c, clen, n, pk, sk); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_easy.c b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_easy.c new file mode 100644 index 0000000..e1cba83 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_easy.c @@ -0,0 +1,113 @@ + +#include +#include +#include + +#include "crypto_box.h" +#include "crypto_secretbox.h" +#include "utils.h" + +int +crypto_box_detached_afternm(unsigned char *c, unsigned char *mac, + const unsigned char *m, unsigned long long mlen, + const unsigned char *n, const unsigned char *k) +{ + return crypto_secretbox_detached(c, mac, m, mlen, n, k); +} + +int +crypto_box_detached(unsigned char *c, unsigned char *mac, + const unsigned char *m, unsigned long long mlen, + const unsigned char *n, const unsigned char *pk, + const unsigned char *sk) +{ + unsigned char k[crypto_box_BEFORENMBYTES]; + int ret; + + (void) sizeof(int[crypto_box_BEFORENMBYTES >= + crypto_secretbox_KEYBYTES ? 1 : -1]); + if (crypto_box_beforenm(k, pk, sk) != 0) { + return -1; + } + ret = crypto_box_detached_afternm(c, mac, m, mlen, n, k); + sodium_memzero(k, sizeof k); + + return ret; +} + +int +crypto_box_easy_afternm(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + if (mlen > SIZE_MAX - crypto_box_MACBYTES) { + return -1; + } + return crypto_box_detached_afternm(c + crypto_box_MACBYTES, c, m, mlen, n, + k); +} + +int +crypto_box_easy(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) +{ + if (mlen > SIZE_MAX - crypto_box_MACBYTES) { + return -1; + } + return crypto_box_detached(c + crypto_box_MACBYTES, c, m, mlen, n, + pk, sk); +} + +int +crypto_box_open_detached_afternm(unsigned char *m, const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_secretbox_open_detached(m, c, mac, clen, n, k); +} + +int +crypto_box_open_detached(unsigned char *m, const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) +{ + unsigned char k[crypto_box_BEFORENMBYTES]; + int ret; + + if (crypto_box_beforenm(k, pk, sk) != 0) { + return -1; + } + ret = crypto_box_open_detached_afternm(m, c, mac, clen, n, k); + sodium_memzero(k, sizeof k); + + return ret; +} + +int +crypto_box_open_easy_afternm(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) +{ + if (clen < crypto_box_MACBYTES) { + return -1; + } + return crypto_box_open_detached_afternm(m, c + crypto_box_MACBYTES, c, + clen - crypto_box_MACBYTES, + n, k); +} + +int +crypto_box_open_easy(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) +{ + if (clen < crypto_box_MACBYTES) { + return -1; + } + return crypto_box_open_detached(m, c + crypto_box_MACBYTES, c, + clen - crypto_box_MACBYTES, + n, pk, sk); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_seal.c b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_seal.c new file mode 100644 index 0000000..64cc5ff --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/crypto_box_seal.c @@ -0,0 +1,67 @@ + +#include + +#include "crypto_box.h" +#include "crypto_generichash.h" +#include "utils.h" + +static int +_crypto_box_seal_nonce(unsigned char *nonce, + const unsigned char *pk1, const unsigned char *pk2) +{ + crypto_generichash_state st; + + crypto_generichash_init(&st, NULL, 0U, crypto_box_NONCEBYTES); + crypto_generichash_update(&st, pk1, crypto_box_PUBLICKEYBYTES); + crypto_generichash_update(&st, pk2, crypto_box_PUBLICKEYBYTES); + crypto_generichash_final(&st, nonce, crypto_box_NONCEBYTES); + + return 0; +} + +int +crypto_box_seal(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *pk) +{ + unsigned char nonce[crypto_box_NONCEBYTES]; + unsigned char epk[crypto_box_PUBLICKEYBYTES]; + unsigned char esk[crypto_box_SECRETKEYBYTES]; + int ret; + + if (crypto_box_keypair(epk, esk) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + memcpy(c, epk, crypto_box_PUBLICKEYBYTES); + _crypto_box_seal_nonce(nonce, epk, pk); + ret = crypto_box_easy(c + crypto_box_PUBLICKEYBYTES, m, mlen, + nonce, pk, esk); + sodium_memzero(esk, sizeof esk); + sodium_memzero(epk, sizeof epk); + sodium_memzero(nonce, sizeof nonce); + + return ret; +} + +int +crypto_box_seal_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, + const unsigned char *pk, const unsigned char *sk) +{ + unsigned char nonce[crypto_box_NONCEBYTES]; + + if (clen < crypto_box_SEALBYTES) { + return -1; + } + _crypto_box_seal_nonce(nonce, c, pk); + + (void) sizeof(int[crypto_box_PUBLICKEYBYTES < crypto_box_SEALBYTES ? 1 : -1]); + return crypto_box_open_easy(m, c + crypto_box_PUBLICKEYBYTES, + clen - crypto_box_PUBLICKEYBYTES, + nonce, c, sk); +} + +size_t +crypto_box_sealbytes(void) +{ + return crypto_box_SEALBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c new file mode 100644 index 0000000..1c002d2 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c @@ -0,0 +1,41 @@ +#include "crypto_box_curve25519xsalsa20poly1305.h" + +size_t +crypto_box_curve25519xsalsa20poly1305_seedbytes(void) { + return crypto_box_curve25519xsalsa20poly1305_SEEDBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_publickeybytes(void) { + return crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_secretkeybytes(void) { + return crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_beforenmbytes(void) { + return crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_noncebytes(void) { + return crypto_box_curve25519xsalsa20poly1305_NONCEBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_zerobytes(void) { + return crypto_box_curve25519xsalsa20poly1305_ZEROBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_boxzerobytes(void) { + return crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES; +} + +size_t +crypto_box_curve25519xsalsa20poly1305_macbytes(void) { + return crypto_box_curve25519xsalsa20poly1305_MACBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c new file mode 100644 index 0000000..c35ca2e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c @@ -0,0 +1,22 @@ +#include "crypto_box_curve25519xsalsa20poly1305.h" +#include "crypto_secretbox_xsalsa20poly1305.h" + +int crypto_box_curve25519xsalsa20poly1305_afternm( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *k +) +{ + return crypto_secretbox_xsalsa20poly1305(c,m,mlen,n,k); +} + +int crypto_box_curve25519xsalsa20poly1305_open_afternm( + unsigned char *m, + const unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + return crypto_secretbox_xsalsa20poly1305_open(m,c,clen,n,k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c new file mode 100644 index 0000000..3835538 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c @@ -0,0 +1,18 @@ +#include "crypto_box_curve25519xsalsa20poly1305.h" +#include "crypto_core_hsalsa20.h" +#include "crypto_scalarmult_curve25519.h" + +static const unsigned char n[16] = {0}; + +int crypto_box_curve25519xsalsa20poly1305_beforenm( + unsigned char *k, + const unsigned char *pk, + const unsigned char *sk +) +{ + unsigned char s[32]; + if (crypto_scalarmult_curve25519(s,sk,pk) != 0) { + return -1; + } + return crypto_core_hsalsa20(k,n,s,NULL); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c new file mode 100644 index 0000000..fdaa5e0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c @@ -0,0 +1,42 @@ +#include "crypto_box_curve25519xsalsa20poly1305.h" +#include "utils.h" + +int crypto_box_curve25519xsalsa20poly1305( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *pk, + const unsigned char *sk +) +{ + unsigned char k[crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES]; + int ret; + + if (crypto_box_curve25519xsalsa20poly1305_beforenm(k,pk,sk) != 0) { + return -1; + } + ret = crypto_box_curve25519xsalsa20poly1305_afternm(c,m,mlen,n,k); + sodium_memzero(k, sizeof k); + + return ret; +} + +int crypto_box_curve25519xsalsa20poly1305_open( + unsigned char *m, + const unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *pk, + const unsigned char *sk +) +{ + unsigned char k[crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES]; + int ret; + + if (crypto_box_curve25519xsalsa20poly1305_beforenm(k,pk,sk) != 0) { + return -1; + } + ret = crypto_box_curve25519xsalsa20poly1305_open_afternm(m,c,clen,n,k); + sodium_memzero(k, sizeof k); + + return ret; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c new file mode 100644 index 0000000..60efce4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c @@ -0,0 +1,29 @@ +#include + +#include "crypto_box_curve25519xsalsa20poly1305.h" +#include "crypto_hash_sha512.h" +#include "crypto_scalarmult_curve25519.h" +#include "randombytes.h" +#include "utils.h" + +int crypto_box_curve25519xsalsa20poly1305_seed_keypair( + unsigned char *pk, + unsigned char *sk, + const unsigned char *seed +) +{ + unsigned char hash[64]; + crypto_hash_sha512(hash,seed,32); + memmove(sk,hash,32); + sodium_memzero(hash, sizeof hash); + return crypto_scalarmult_curve25519_base(pk,sk); +} + +int crypto_box_curve25519xsalsa20poly1305_keypair( + unsigned char *pk, + unsigned char *sk +) +{ + randombytes_buf(sk,32); + return crypto_scalarmult_curve25519_base(pk,sk); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base.h b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base.h new file mode 100644 index 0000000..573bd8a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base.h @@ -0,0 +1,1344 @@ +{ + { + { 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/libsodium/src/libsodium/crypto_core/curve25519/ref10/base2.h b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base2.h new file mode 100644 index 0000000..8c53844 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/base2.h @@ -0,0 +1,40 @@ + { + { 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 }, + }, diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c new file mode 100644 index 0000000..c0c9d56 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/curve25519/ref10/curve25519_ref10.c @@ -0,0 +1,2242 @@ +#include +#include +#include +#include "crypto_verify_32.h" +#include "private/curve25519_ref10.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; +} + +/* + h = 0 + */ + +void fe_0(fe h) +{ + memset(&h[0], 0, 10 * sizeof h[0]); +} + +/* + h = 1 + */ + +void fe_1(fe h) +{ + h[0] = 1; + h[1] = 0; + memset(&h[2], 0, 8 * sizeof h[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); + 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; +} + +/* + 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) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 * ((uint64_t) 1L << 25); + carry1 = (h1 + (int64_t) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 * ((uint64_t) 1L << 25); + carry3 = (h3 + (int64_t) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 * ((uint64_t) 1L << 25); + carry5 = (h5 + (int64_t) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 * ((uint64_t) 1L << 25); + carry7 = (h7 + (int64_t) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 * ((uint64_t) 1L << 25); + + carry0 = (h0 + (int64_t) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 26); + carry2 = (h2 + (int64_t) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 * ((uint64_t) 1L << 26); + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + carry6 = (h6 + (int64_t) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 * ((uint64_t) 1L << 26); + carry8 = (h8 + (int64_t) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 * ((uint64_t) 1L << 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; +} + +/* + 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 * ((uint32_t) 1L << 26); + carry1 = h1 >> 25; h2 += carry1; h1 -= carry1 * ((uint32_t) 1L << 25); + carry2 = h2 >> 26; h3 += carry2; h2 -= carry2 * ((uint32_t) 1L << 26); + carry3 = h3 >> 25; h4 += carry3; h3 -= carry3 * ((uint32_t) 1L << 25); + carry4 = h4 >> 26; h5 += carry4; h4 -= carry4 * ((uint32_t) 1L << 26); + carry5 = h5 >> 25; h6 += carry5; h5 -= carry5 * ((uint32_t) 1L << 25); + carry6 = h6 >> 26; h7 += carry6; h6 -= carry6 * ((uint32_t) 1L << 26); + carry7 = h7 >> 25; h8 += carry7; h7 -= carry7 * ((uint32_t) 1L << 25); + carry8 = h8 >> 26; h9 += carry8; h8 -= carry8 * ((uint32_t) 1L << 26); + carry9 = h9 >> 25; h9 -= carry9 * ((uint32_t) 1L << 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] = h0 >> 0; + s[1] = h0 >> 8; + s[2] = h0 >> 16; + s[3] = (h0 >> 24) | (h1 * ((uint32_t) 1 << 2)); + s[4] = h1 >> 6; + s[5] = h1 >> 14; + s[6] = (h1 >> 22) | (h2 * ((uint32_t) 1 << 3)); + s[7] = h2 >> 5; + s[8] = h2 >> 13; + s[9] = (h2 >> 21) | (h3 * ((uint32_t) 1 << 5)); + s[10] = h3 >> 3; + s[11] = h3 >> 11; + s[12] = (h3 >> 19) | (h4 * ((uint32_t) 1 << 6)); + s[13] = h4 >> 2; + s[14] = h4 >> 10; + s[15] = h4 >> 18; + s[16] = h5 >> 0; + s[17] = h5 >> 8; + s[18] = h5 >> 16; + s[19] = (h5 >> 24) | (h6 * ((uint32_t) 1 << 1)); + s[20] = h6 >> 7; + s[21] = h6 >> 15; + s[22] = (h6 >> 23) | (h7 * ((uint32_t) 1 << 3)); + s[23] = h7 >> 5; + s[24] = h7 >> 13; + s[25] = (h7 >> 21) | (h8 * ((uint32_t) 1 << 4)); + s[26] = h8 >> 4; + s[27] = h8 >> 12; + s[28] = (h8 >> 20) | (h9 * ((uint32_t) 1 << 6)); + s[29] = h9 >> 2; + s[30] = h9 >> 10; + s[31] = h9 >> 18; +} + +/* + 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. + */ + +static unsigned char zero[32]; + +int fe_isnonzero(const fe f) +{ + unsigned char s[32]; + fe_tobytes(s,f); + + return crypto_verify_32(s,zero); +} + +/* + 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; + + /* + |h0| <= (1.65*1.65*2^52*(1+19+19+19+19)+1.65*1.65*2^50*(38+38+38+38+38)) + i.e. |h0| <= 1.4*2^60; narrower ranges for h2, h4, h6, h8 + |h1| <= (1.65*1.65*2^51*(1+1+19+19+19+19+19+19+19+19)) + i.e. |h1| <= 1.7*2^59; narrower ranges for h3, h5, h7, h9 + */ + + carry0 = (h0 + (int64_t) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 26); + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + /* |h0| <= 2^25 */ + /* |h4| <= 2^25 */ + /* |h1| <= 1.71*2^59 */ + /* |h5| <= 1.71*2^59 */ + + carry1 = (h1 + (int64_t) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 * ((uint64_t) 1L << 25); + carry5 = (h5 + (int64_t) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 * ((uint64_t) 1L << 25); + /* |h1| <= 2^24; from now on fits into int32 */ + /* |h5| <= 2^24; from now on fits into int32 */ + /* |h2| <= 1.41*2^60 */ + /* |h6| <= 1.41*2^60 */ + + carry2 = (h2 + (int64_t) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 * ((uint64_t) 1L << 26); + carry6 = (h6 + (int64_t) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 * ((uint64_t) 1L << 26); + /* |h2| <= 2^25; from now on fits into int32 unchanged */ + /* |h6| <= 2^25; from now on fits into int32 unchanged */ + /* |h3| <= 1.71*2^59 */ + /* |h7| <= 1.71*2^59 */ + + carry3 = (h3 + (int64_t) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 * ((uint64_t) 1L << 25); + carry7 = (h7 + (int64_t) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 * ((uint64_t) 1L << 25); + /* |h3| <= 2^24; from now on fits into int32 unchanged */ + /* |h7| <= 2^24; from now on fits into int32 unchanged */ + /* |h4| <= 1.72*2^34 */ + /* |h8| <= 1.41*2^60 */ + + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + carry8 = (h8 + (int64_t) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 * ((uint64_t) 1L << 26); + /* |h4| <= 2^25; from now on fits into int32 unchanged */ + /* |h8| <= 2^25; from now on fits into int32 unchanged */ + /* |h5| <= 1.01*2^24 */ + /* |h9| <= 1.71*2^59 */ + + carry9 = (h9 + (int64_t) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 * ((uint64_t) 1L << 25); + /* |h9| <= 2^24; from now on fits into int32 unchanged */ + /* |h0| <= 1.1*2^39 */ + + carry0 = (h0 + (int64_t) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 26); + /* |h0| <= 2^25; from now on fits into int32 unchanged */ + /* |h1| <= 1.01*2^24 */ + + 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 + * + 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; +} + +/* + 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) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 26); + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + + carry1 = (h1 + (int64_t) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 * ((uint64_t) 1L << 25); + carry5 = (h5 + (int64_t) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 * ((uint64_t) 1L << 25); + + carry2 = (h2 + (int64_t) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 * ((uint64_t) 1L << 26); + carry6 = (h6 + (int64_t) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 * ((uint64_t) 1L << 26); + + carry3 = (h3 + (int64_t) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 * ((uint64_t) 1L << 25); + carry7 = (h7 + (int64_t) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 * ((uint64_t) 1L << 25); + + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + carry8 = (h8 + (int64_t) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 * ((uint64_t) 1L << 26); + + carry9 = (h9 + (int64_t) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 * ((uint64_t) 1L << 25); + + carry0 = (h0 + (int64_t) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 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) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 26); + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + + carry1 = (h1 + (int64_t) (1L << 24)) >> 25; h2 += carry1; h1 -= carry1 * ((uint64_t) 1L << 25); + carry5 = (h5 + (int64_t) (1L << 24)) >> 25; h6 += carry5; h5 -= carry5 * ((uint64_t) 1L << 25); + + carry2 = (h2 + (int64_t) (1L << 25)) >> 26; h3 += carry2; h2 -= carry2 * ((uint64_t) 1L << 26); + carry6 = (h6 + (int64_t) (1L << 25)) >> 26; h7 += carry6; h6 -= carry6 * ((uint64_t) 1L << 26); + + carry3 = (h3 + (int64_t) (1L << 24)) >> 25; h4 += carry3; h3 -= carry3 * ((uint64_t) 1L << 25); + carry7 = (h7 + (int64_t) (1L << 24)) >> 25; h8 += carry7; h7 -= carry7 * ((uint64_t) 1L << 25); + + carry4 = (h4 + (int64_t) (1L << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((uint64_t) 1L << 26); + carry8 = (h8 + (int64_t) (1L << 25)) >> 26; h9 += carry8; h8 -= carry8 * ((uint64_t) 1L << 26); + + carry9 = (h9 + (int64_t) (1L << 24)) >> 25; h0 += carry9 * 19; h9 -= carry9 * ((uint64_t) 1L << 25); + + carry0 = (h0 + (int64_t) (1L << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((uint64_t) 1L << 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); + fe_sq(t1, t0); + fe_sq(t1, t1); + fe_mul(t1, z, t1); + fe_mul(t0, t0, t1); + fe_sq(t2, t0); + 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); +} + +void fe_pow22523(fe out,const fe z) +{ + fe t0; + fe t1; + fe t2; + int i; + + fe_sq(t0, z); + fe_sq(t1, t0); + fe_sq(t1, t1); + fe_mul(t1, z, t1); + fe_mul(t0, t0, t1); + 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); + fe_sq(t0, t0); + fe_mul(out, t0, z); +} + +/* + 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; +} + +/* + 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; + } + } + } + +} + +static const ge_precomp Bi[8] = { +#include "base2.h" +}; + +/* 37095705934669439343138083508754565189542113879843219016388785533085940283555 */ +static const fe d = { + -10913610,13857413,-15372611,6949391,114729,-8787816,-6275908,-3247719,-18696448,-12055116 +}; + +/* sqrt(-1) */ +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 + */ + +extern 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 + */ + +extern 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 = p + */ + +/* 2 * d = 16295367250680780974490674513165176452449235426866156013048779062215315747161 */ +static const fe d2 = { + -21827239,-5839606,-30745221,13898782,229458,15978800,-12551817,-6495438,29715968,9444199 +}; + +extern 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 + */ + +extern 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; +} + +/* + 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); +} + +void ge_precomp_0(ge_precomp *h) +{ + fe_1(h->yplusx); + fe_1(h->yminusx); + fe_0(h->xy2d); +} + +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 */ + uint32_t y = x; /* 0: yes; 1..255: no */ + y -= 1; /* 4294967295: yes; 0..254: no */ + y >>= 31; /* 1: yes; 0: no */ + + return 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 x; +} + +static void cmov(ge_precomp *t,const 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); +} + +/* base[i][j] = (j+1)*256^i*B */ +static const ge_precomp base[32][8] = { +#include "base.h" +}; + +static void ge_select(ge_precomp *t,int pos,signed char b) +{ + ge_precomp minust; + unsigned char bnegative = negative(b); + unsigned char babs = b - (((-bnegative) & b) * ((signed char) 1 << 1)); + + ge_precomp_0(t); + 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); +} + +/* + 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; +} + +/* + 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 + */ + +/* + 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); + } +} + +void ge_scalarmult_vartime(ge_p3 *r,const unsigned char *a,const ge_p3 *A) +{ + signed char aslide[256]; + ge_cached Ai[8]; + ge_p1p1 t; + ge_p3 u; + ge_p3 A2; + int i; + + slide(aslide,a); + + 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_p3_0(r); + + for (i = 255;i >= 0;--i) { + if (aslide[i]) break; + } + + for (;i >= 0;--i) { + ge_p3_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]); + } + + ge_p1p1_to_p3(r,&t); + } +} + +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 * ((signed char) 1 << 4); + } + e[63] += carry; + /* each e[i] is between -8 and 8 */ + + ge_p3_0(h); + for (i = 1;i < 64;i += 2) { + ge_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) { + ge_select(&t,i / 2,e[i]); + ge_madd(&r,h,&t); ge_p1p1_to_p3(h,&r); + } +} + +/* + 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 + (int64_t) (1L << 20)) >> 21; s1 += carry0; s0 -= carry0 * ((uint64_t) 1L << 21); + carry2 = (s2 + (int64_t) (1L << 20)) >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry4 = (s4 + (int64_t) (1L << 20)) >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry6 = (s6 + (int64_t) (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry8 = (s8 + (int64_t) (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry10 = (s10 + (int64_t) (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + carry12 = (s12 + (int64_t) (1L << 20)) >> 21; s13 += carry12; s12 -= carry12 * ((uint64_t) 1L << 21); + carry14 = (s14 + (int64_t) (1L << 20)) >> 21; s15 += carry14; s14 -= carry14 * ((uint64_t) 1L << 21); + carry16 = (s16 + (int64_t) (1L << 20)) >> 21; s17 += carry16; s16 -= carry16 * ((uint64_t) 1L << 21); + carry18 = (s18 + (int64_t) (1L << 20)) >> 21; s19 += carry18; s18 -= carry18 * ((uint64_t) 1L << 21); + carry20 = (s20 + (int64_t) (1L << 20)) >> 21; s21 += carry20; s20 -= carry20 * ((uint64_t) 1L << 21); + carry22 = (s22 + (int64_t) (1L << 20)) >> 21; s23 += carry22; s22 -= carry22 * ((uint64_t) 1L << 21); + + carry1 = (s1 + (int64_t) (1L << 20)) >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry3 = (s3 + (int64_t) (1L << 20)) >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry5 = (s5 + (int64_t) (1L << 20)) >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry7 = (s7 + (int64_t) (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry9 = (s9 + (int64_t) (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry11 = (s11 + (int64_t) (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 21); + carry13 = (s13 + (int64_t) (1L << 20)) >> 21; s14 += carry13; s13 -= carry13 * ((uint64_t) 1L << 21); + carry15 = (s15 + (int64_t) (1L << 20)) >> 21; s16 += carry15; s15 -= carry15 * ((uint64_t) 1L << 21); + carry17 = (s17 + (int64_t) (1L << 20)) >> 21; s18 += carry17; s17 -= carry17 * ((uint64_t) 1L << 21); + carry19 = (s19 + (int64_t) (1L << 20)) >> 21; s20 += carry19; s19 -= carry19 * ((uint64_t) 1L << 21); + carry21 = (s21 + (int64_t) (1L << 20)) >> 21; s22 += carry21; s21 -= carry21 * ((uint64_t) 1L << 21); + + s11 += s23 * 666643; + s12 += s23 * 470296; + s13 += s23 * 654183; + s14 -= s23 * 997805; + s15 += s23 * 136657; + s16 -= s23 * 683901; + + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + + carry6 = (s6 + (int64_t) (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry8 = (s8 + (int64_t) (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry10 = (s10 + (int64_t) (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + carry12 = (s12 + (int64_t) (1L << 20)) >> 21; s13 += carry12; s12 -= carry12 * ((uint64_t) 1L << 21); + carry14 = (s14 + (int64_t) (1L << 20)) >> 21; s15 += carry14; s14 -= carry14 * ((uint64_t) 1L << 21); + carry16 = (s16 + (int64_t) (1L << 20)) >> 21; s17 += carry16; s16 -= carry16 * ((uint64_t) 1L << 21); + + carry7 = (s7 + (int64_t) (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry9 = (s9 + (int64_t) (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry11 = (s11 + (int64_t) (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 21); + carry13 = (s13 + (int64_t) (1L << 20)) >> 21; s14 += carry13; s13 -= carry13 * ((uint64_t) 1L << 21); + carry15 = (s15 + (int64_t) (1L << 20)) >> 21; s16 += carry15; s15 -= carry15 * ((uint64_t) 1L << 21); + + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = (s0 + (int64_t) (1L << 20)) >> 21; s1 += carry0; s0 -= carry0 * ((uint64_t) 1L << 21); + carry2 = (s2 + (int64_t) (1L << 20)) >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry4 = (s4 + (int64_t) (1L << 20)) >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry6 = (s6 + (int64_t) (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry8 = (s8 + (int64_t) (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry10 = (s10 + (int64_t) (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + + carry1 = (s1 + (int64_t) (1L << 20)) >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry3 = (s3 + (int64_t) (1L << 20)) >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry5 = (s5 + (int64_t) (1L << 20)) >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry7 = (s7 + (int64_t) (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry9 = (s9 + (int64_t) (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry11 = (s11 + (int64_t) (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 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 * ((uint64_t) 1L << 21); + carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + carry11 = s11 >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + + carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 * ((uint64_t) 1L << 21); + carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + + s[0] = s0 >> 0; + s[1] = s0 >> 8; + s[2] = (s0 >> 16) | (s1 * ((uint64_t) 1 << 5)); + s[3] = s1 >> 3; + s[4] = s1 >> 11; + s[5] = (s1 >> 19) | (s2 * ((uint64_t) 1 << 2)); + s[6] = s2 >> 6; + s[7] = (s2 >> 14) | (s3 * ((uint64_t) 1 << 7)); + s[8] = s3 >> 1; + s[9] = s3 >> 9; + s[10] = (s3 >> 17) | (s4 * ((uint64_t) 1 << 4)); + s[11] = s4 >> 4; + s[12] = s4 >> 12; + s[13] = (s4 >> 20) | (s5 * ((uint64_t) 1 << 1)); + s[14] = s5 >> 7; + s[15] = (s5 >> 15) | (s6 * ((uint64_t) 1 << 6)); + s[16] = s6 >> 2; + s[17] = s6 >> 10; + s[18] = (s6 >> 18) | (s7 * ((uint64_t) 1 << 3)); + s[19] = s7 >> 5; + s[20] = s7 >> 13; + s[21] = s8 >> 0; + s[22] = s8 >> 8; + s[23] = (s8 >> 16) | (s9 * ((uint64_t) 1 << 5)); + s[24] = s9 >> 3; + s[25] = s9 >> 11; + s[26] = (s9 >> 19) | (s10 * ((uint64_t) 1 << 2)); + s[27] = s10 >> 6; + s[28] = (s10 >> 14) | (s11 * ((uint64_t) 1 << 7)); + s[29] = s11 >> 1; + s[30] = s11 >> 9; + s[31] = s11 >> 17; +} + +/* + 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; + + s10 += s22 * 666643; + s11 += s22 * 470296; + s12 += s22 * 654183; + s13 -= s22 * 997805; + s14 += s22 * 136657; + s15 -= s22 * 683901; + + s9 += s21 * 666643; + s10 += s21 * 470296; + s11 += s21 * 654183; + s12 -= s21 * 997805; + s13 += s21 * 136657; + s14 -= s21 * 683901; + + s8 += s20 * 666643; + s9 += s20 * 470296; + s10 += s20 * 654183; + s11 -= s20 * 997805; + s12 += s20 * 136657; + s13 -= s20 * 683901; + + s7 += s19 * 666643; + s8 += s19 * 470296; + s9 += s19 * 654183; + s10 -= s19 * 997805; + s11 += s19 * 136657; + s12 -= s19 * 683901; + + s6 += s18 * 666643; + s7 += s18 * 470296; + s8 += s18 * 654183; + s9 -= s18 * 997805; + s10 += s18 * 136657; + s11 -= s18 * 683901; + + carry6 = (s6 + (int64_t) (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry8 = (s8 + (int64_t) (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry10 = (s10 + (int64_t) (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + carry12 = (s12 + (int64_t) (1L << 20)) >> 21; s13 += carry12; s12 -= carry12 * ((uint64_t) 1L << 21); + carry14 = (s14 + (int64_t) (1L << 20)) >> 21; s15 += carry14; s14 -= carry14 * ((uint64_t) 1L << 21); + carry16 = (s16 + (int64_t) (1L << 20)) >> 21; s17 += carry16; s16 -= carry16 * ((uint64_t) 1L << 21); + + carry7 = (s7 + (int64_t) (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry9 = (s9 + (int64_t) (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry11 = (s11 + (int64_t) (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 21); + carry13 = (s13 + (int64_t) (1L << 20)) >> 21; s14 += carry13; s13 -= carry13 * ((uint64_t) 1L << 21); + carry15 = (s15 + (int64_t) (1L << 20)) >> 21; s16 += carry15; s15 -= carry15 * ((uint64_t) 1L << 21); + + s5 += s17 * 666643; + s6 += s17 * 470296; + s7 += s17 * 654183; + s8 -= s17 * 997805; + s9 += s17 * 136657; + s10 -= s17 * 683901; + + s4 += s16 * 666643; + s5 += s16 * 470296; + s6 += s16 * 654183; + s7 -= s16 * 997805; + s8 += s16 * 136657; + s9 -= s16 * 683901; + + s3 += s15 * 666643; + s4 += s15 * 470296; + s5 += s15 * 654183; + s6 -= s15 * 997805; + s7 += s15 * 136657; + s8 -= s15 * 683901; + + s2 += s14 * 666643; + s3 += s14 * 470296; + s4 += s14 * 654183; + s5 -= s14 * 997805; + s6 += s14 * 136657; + s7 -= s14 * 683901; + + s1 += s13 * 666643; + s2 += s13 * 470296; + s3 += s13 * 654183; + s4 -= s13 * 997805; + s5 += s13 * 136657; + s6 -= s13 * 683901; + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + s12 = 0; + + carry0 = (s0 + (int64_t) (1L << 20)) >> 21; s1 += carry0; s0 -= carry0 * ((uint64_t) 1L << 21); + carry2 = (s2 + (int64_t) (1L << 20)) >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry4 = (s4 + (int64_t) (1L << 20)) >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry6 = (s6 + (int64_t) (1L << 20)) >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry8 = (s8 + (int64_t) (1L << 20)) >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry10 = (s10 + (int64_t) (1L << 20)) >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + + carry1 = (s1 + (int64_t) (1L << 20)) >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry3 = (s3 + (int64_t) (1L << 20)) >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry5 = (s5 + (int64_t) (1L << 20)) >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry7 = (s7 + (int64_t) (1L << 20)) >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry9 = (s9 + (int64_t) (1L << 20)) >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry11 = (s11 + (int64_t) (1L << 20)) >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 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 * ((uint64_t) 1L << 21); + carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + carry11 = s11 >> 21; s12 += carry11; s11 -= carry11 * ((uint64_t) 1L << 21); + + s0 += s12 * 666643; + s1 += s12 * 470296; + s2 += s12 * 654183; + s3 -= s12 * 997805; + s4 += s12 * 136657; + s5 -= s12 * 683901; + + carry0 = s0 >> 21; s1 += carry0; s0 -= carry0 * ((uint64_t) 1L << 21); + carry1 = s1 >> 21; s2 += carry1; s1 -= carry1 * ((uint64_t) 1L << 21); + carry2 = s2 >> 21; s3 += carry2; s2 -= carry2 * ((uint64_t) 1L << 21); + carry3 = s3 >> 21; s4 += carry3; s3 -= carry3 * ((uint64_t) 1L << 21); + carry4 = s4 >> 21; s5 += carry4; s4 -= carry4 * ((uint64_t) 1L << 21); + carry5 = s5 >> 21; s6 += carry5; s5 -= carry5 * ((uint64_t) 1L << 21); + carry6 = s6 >> 21; s7 += carry6; s6 -= carry6 * ((uint64_t) 1L << 21); + carry7 = s7 >> 21; s8 += carry7; s7 -= carry7 * ((uint64_t) 1L << 21); + carry8 = s8 >> 21; s9 += carry8; s8 -= carry8 * ((uint64_t) 1L << 21); + carry9 = s9 >> 21; s10 += carry9; s9 -= carry9 * ((uint64_t) 1L << 21); + carry10 = s10 >> 21; s11 += carry10; s10 -= carry10 * ((uint64_t) 1L << 21); + + s[0] = s0 >> 0; + s[1] = s0 >> 8; + s[2] = (s0 >> 16) | (s1 * ((uint64_t) 1 << 5)); + s[3] = s1 >> 3; + s[4] = s1 >> 11; + s[5] = (s1 >> 19) | (s2 * ((uint64_t) 1 << 2)); + s[6] = s2 >> 6; + s[7] = (s2 >> 14) | (s3 * ((uint64_t) 1 << 7)); + s[8] = s3 >> 1; + s[9] = s3 >> 9; + s[10] = (s3 >> 17) | (s4 * ((uint64_t) 1 << 4)); + s[11] = s4 >> 4; + s[12] = s4 >> 12; + s[13] = (s4 >> 20) | (s5 * ((uint64_t) 1 << 1)); + s[14] = s5 >> 7; + s[15] = (s5 >> 15) | (s6 * ((uint64_t) 1 << 6)); + s[16] = s6 >> 2; + s[17] = s6 >> 10; + s[18] = (s6 >> 18) | (s7 * ((uint64_t) 1 << 3)); + s[19] = s7 >> 5; + s[20] = s7 >> 13; + s[21] = s8 >> 0; + s[22] = s8 >> 8; + s[23] = (s8 >> 16) | (s9 * ((uint64_t) 1 << 5)); + s[24] = s9 >> 3; + s[25] = s9 >> 11; + s[26] = (s9 >> 19) | (s10 * ((uint64_t) 1 << 2)); + s[27] = s10 >> 6; + s[28] = (s10 >> 14) | (s11 * ((uint64_t) 1 << 7)); + s[29] = s11 >> 1; + s[30] = s11 >> 9; + s[31] = s11 >> 17; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c b/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c new file mode 100644 index 0000000..37d1c94 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.c @@ -0,0 +1,86 @@ + +#include +#include + +#include "core_hchacha20.h" +#include "crypto_core_hchacha20.h" +#include "private/common.h" + +int +crypto_core_hchacha20(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c) +{ + int i; + uint32_t x0, x1, x2, x3, x4, x5, x6, x7; + uint32_t x8, x9, x10, x11, x12, x13, x14, x15; + + if (c == NULL) { + x0 = U32C(0x61707865); + x1 = U32C(0x3320646e); + x2 = U32C(0x79622d32); + x3 = U32C(0x6b206574); + } else { + x0 = LOAD32_LE(c + 0); + x1 = LOAD32_LE(c + 4); + x2 = LOAD32_LE(c + 8); + x3 = LOAD32_LE(c + 12); + } + x4 = LOAD32_LE(k + 0); + x5 = LOAD32_LE(k + 4); + x6 = LOAD32_LE(k + 8); + x7 = LOAD32_LE(k + 12); + x8 = LOAD32_LE(k + 16); + x9 = LOAD32_LE(k + 20); + x10 = LOAD32_LE(k + 24); + x11 = LOAD32_LE(k + 28); + x12 = LOAD32_LE(in + 0); + x13 = LOAD32_LE(in + 4); + x14 = LOAD32_LE(in + 8); + x15 = LOAD32_LE(in + 12); + + for (i = 0; i < 10; i++) { + QUARTERROUND(x0, x4, x8, x12); + QUARTERROUND(x1, x5, x9, x13); + QUARTERROUND(x2, x6, x10, x14); + QUARTERROUND(x3, x7, x11, x15); + QUARTERROUND(x0, x5, x10, x15); + QUARTERROUND(x1, x6, x11, x12); + QUARTERROUND(x2, x7, x8, x13); + QUARTERROUND(x3, x4, x9, x14); + } + + STORE32_LE(out + 0, x0); + STORE32_LE(out + 4, x1); + STORE32_LE(out + 8, x2); + STORE32_LE(out + 12, x3); + STORE32_LE(out + 16, x12); + STORE32_LE(out + 20, x13); + STORE32_LE(out + 24, x14); + STORE32_LE(out + 28, x15); + + return 0; +} + +size_t +crypto_core_hchacha20_outputbytes(void) +{ + return crypto_core_hchacha20_OUTPUTBYTES; +} + +size_t +crypto_core_hchacha20_inputbytes(void) +{ + return crypto_core_hchacha20_INPUTBYTES; +} + +size_t +crypto_core_hchacha20_keybytes(void) +{ + return crypto_core_hchacha20_KEYBYTES; +} + +size_t +crypto_core_hchacha20_constbytes(void) +{ + return crypto_core_hchacha20_CONSTBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.h b/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.h new file mode 100644 index 0000000..6e1d1c5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.h @@ -0,0 +1,28 @@ +#ifndef core_hchacha20_H +#define core_hchacha20_H + +#include +#include +#include + +#define U8C(v) (v##U) +#define U32C(v) (v##U) + +#define U8V(v) ((uint8_t)(v) & U8C(0xFF)) +#define U32V(v) ((uint32_t)(v) & U32C(0xFFFFFFFF)) + +#define ROTL32(v, n) (U32V((v) << (n)) | ((v) >> (32 - (n)))) + +#define ROTATE(v, c) (ROTL32(v, c)) +#define XOR(v, w) ((v) ^ (w)) +#define PLUS(v, w) (U32V((v) + (w))) + +#define QUARTERROUND(a, b, c, d) \ + do { \ + a = PLUS(a, b); d = ROTATE(XOR(d, a), 16); \ + c = PLUS(c, d); b = ROTATE(XOR(b, c), 12); \ + a = PLUS(a, b); d = ROTATE(XOR(d, a), 8); \ + c = PLUS(c, d); b = ROTATE(XOR(b, c), 7); \ + } while(0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c b/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c new file mode 100644 index 0000000..37c4923 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c @@ -0,0 +1,21 @@ +#include "crypto_core_hsalsa20.h" + +size_t +crypto_core_hsalsa20_outputbytes(void) { + return crypto_core_hsalsa20_OUTPUTBYTES; +} + +size_t +crypto_core_hsalsa20_inputbytes(void) { + return crypto_core_hsalsa20_INPUTBYTES; +} + +size_t +crypto_core_hsalsa20_keybytes(void) { + return crypto_core_hsalsa20_KEYBYTES; +} + +size_t +crypto_core_hsalsa20_constbytes(void) { + return crypto_core_hsalsa20_CONSTBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c b/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c new file mode 100644 index 0000000..2713bc8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c @@ -0,0 +1,100 @@ +/* +version 20080912 +D. J. Bernstein +Public domain. +*/ + +#include +#include + +#include "crypto_core_hsalsa20.h" +#include "private/common.h" + +#define ROUNDS 20 +#define U32C(v) (v##U) + +static uint32_t rotate(uint32_t u,int c) +{ + return (u << c) | (u >> (32 - c)); +} + +int crypto_core_hsalsa20( + unsigned char *out, + const unsigned char *in, + const unsigned char *k, + const unsigned char *c +) +{ + uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + int i; + + if (c == NULL) { + x0 = U32C(0x61707865); + x5 = U32C(0x3320646e); + x10 = U32C(0x79622d32); + x15 = U32C(0x6b206574); + } else { + x0 = LOAD32_LE(c + 0); + x5 = LOAD32_LE(c + 4); + x10 = LOAD32_LE(c + 8); + x15 = LOAD32_LE(c + 12); + } + x1 = LOAD32_LE(k + 0); + x2 = LOAD32_LE(k + 4); + x3 = LOAD32_LE(k + 8); + x4 = LOAD32_LE(k + 12); + x11 = LOAD32_LE(k + 16); + x12 = LOAD32_LE(k + 20); + x13 = LOAD32_LE(k + 24); + x14 = LOAD32_LE(k + 28); + x6 = LOAD32_LE(in + 0); + x7 = LOAD32_LE(in + 4); + x8 = LOAD32_LE(in + 8); + x9 = LOAD32_LE(in + 12); + + for (i = ROUNDS;i > 0;i -= 2) { + x4 ^= rotate( x0+x12, 7); + x8 ^= rotate( x4+ x0, 9); + x12 ^= rotate( x8+ x4,13); + x0 ^= rotate(x12+ x8,18); + x9 ^= rotate( x5+ x1, 7); + x13 ^= rotate( x9+ x5, 9); + x1 ^= rotate(x13+ x9,13); + x5 ^= rotate( x1+x13,18); + x14 ^= rotate(x10+ x6, 7); + x2 ^= rotate(x14+x10, 9); + x6 ^= rotate( x2+x14,13); + x10 ^= rotate( x6+ x2,18); + x3 ^= rotate(x15+x11, 7); + x7 ^= rotate( x3+x15, 9); + x11 ^= rotate( x7+ x3,13); + x15 ^= rotate(x11+ x7,18); + x1 ^= rotate( x0+ x3, 7); + x2 ^= rotate( x1+ x0, 9); + x3 ^= rotate( x2+ x1,13); + x0 ^= rotate( x3+ x2,18); + x6 ^= rotate( x5+ x4, 7); + x7 ^= rotate( x6+ x5, 9); + x4 ^= rotate( x7+ x6,13); + x5 ^= rotate( x4+ x7,18); + x11 ^= rotate(x10+ x9, 7); + x8 ^= rotate(x11+x10, 9); + x9 ^= rotate( x8+x11,13); + x10 ^= rotate( x9+ x8,18); + x12 ^= rotate(x15+x14, 7); + x13 ^= rotate(x12+x15, 9); + x14 ^= rotate(x13+x12,13); + x15 ^= rotate(x14+x13,18); + } + + STORE32_LE(out + 0,x0); + STORE32_LE(out + 4,x5); + STORE32_LE(out + 8,x10); + STORE32_LE(out + 12,x15); + STORE32_LE(out + 16,x6); + STORE32_LE(out + 20,x7); + STORE32_LE(out + 24,x8); + STORE32_LE(out + 28,x9); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/core_salsa20_api.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/core_salsa20_api.c new file mode 100644 index 0000000..910b461 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/core_salsa20_api.c @@ -0,0 +1,21 @@ +#include "crypto_core_salsa20.h" + +size_t +crypto_core_salsa20_outputbytes(void) { + return crypto_core_salsa20_OUTPUTBYTES; +} + +size_t +crypto_core_salsa20_inputbytes(void) { + return crypto_core_salsa20_INPUTBYTES; +} + +size_t +crypto_core_salsa20_keybytes(void) { + return crypto_core_salsa20_KEYBYTES; +} + +size_t +crypto_core_salsa20_constbytes(void) { + return crypto_core_salsa20_CONSTBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/ref/core_salsa20.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/ref/core_salsa20.c new file mode 100644 index 0000000..26fb66f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa20/ref/core_salsa20.c @@ -0,0 +1,126 @@ +/* +version 20080912 +D. J. Bernstein +Public domain. +*/ + +#include +#include + +#include "crypto_core_salsa20.h" +#include "private/common.h" + +#define ROUNDS 20 +#define U32C(v) (v##U) + +static uint32_t rotate(uint32_t u,int c) +{ + return (u << c) | (u >> (32 - c)); +} + +int crypto_core_salsa20( + unsigned char *out, + const unsigned char *in, + const unsigned char *k, + const unsigned char *c +) +{ + uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + uint32_t j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; + int i; + + if (c == NULL) { + j0 = x0 = U32C(0x61707865); + j5 = x5 = U32C(0x3320646e); + j10 = x10 = U32C(0x79622d32); + j15 = x15 = U32C(0x6b206574); + } else { + j0 = x0 = LOAD32_LE(c + 0); + j5 = x5 = LOAD32_LE(c + 4); + j10 = x10 = LOAD32_LE(c + 8); + j15 = x15 = LOAD32_LE(c + 12); + } + j1 = x1 = LOAD32_LE(k + 0); + j2 = x2 = LOAD32_LE(k + 4); + j3 = x3 = LOAD32_LE(k + 8); + j4 = x4 = LOAD32_LE(k + 12); + j6 = x6 = LOAD32_LE(in + 0); + j7 = x7 = LOAD32_LE(in + 4); + j8 = x8 = LOAD32_LE(in + 8); + j9 = x9 = LOAD32_LE(in + 12); + j11 = x11 = LOAD32_LE(k + 16); + j12 = x12 = LOAD32_LE(k + 20); + j13 = x13 = LOAD32_LE(k + 24); + j14 = x14 = LOAD32_LE(k + 28); + + for (i = ROUNDS;i > 0;i -= 2) { + x4 ^= rotate( x0+x12, 7); + x8 ^= rotate( x4+ x0, 9); + x12 ^= rotate( x8+ x4,13); + x0 ^= rotate(x12+ x8,18); + x9 ^= rotate( x5+ x1, 7); + x13 ^= rotate( x9+ x5, 9); + x1 ^= rotate(x13+ x9,13); + x5 ^= rotate( x1+x13,18); + x14 ^= rotate(x10+ x6, 7); + x2 ^= rotate(x14+x10, 9); + x6 ^= rotate( x2+x14,13); + x10 ^= rotate( x6+ x2,18); + x3 ^= rotate(x15+x11, 7); + x7 ^= rotate( x3+x15, 9); + x11 ^= rotate( x7+ x3,13); + x15 ^= rotate(x11+ x7,18); + x1 ^= rotate( x0+ x3, 7); + x2 ^= rotate( x1+ x0, 9); + x3 ^= rotate( x2+ x1,13); + x0 ^= rotate( x3+ x2,18); + x6 ^= rotate( x5+ x4, 7); + x7 ^= rotate( x6+ x5, 9); + x4 ^= rotate( x7+ x6,13); + x5 ^= rotate( x4+ x7,18); + x11 ^= rotate(x10+ x9, 7); + x8 ^= rotate(x11+x10, 9); + x9 ^= rotate( x8+x11,13); + x10 ^= rotate( x9+ x8,18); + x12 ^= rotate(x15+x14, 7); + x13 ^= rotate(x12+x15, 9); + x14 ^= rotate(x13+x12,13); + x15 ^= rotate(x14+x13,18); + } + + x0 += j0; + x1 += j1; + x2 += j2; + x3 += j3; + x4 += j4; + x5 += j5; + x6 += j6; + x7 += j7; + x8 += j8; + x9 += j9; + x10 += j10; + x11 += j11; + x12 += j12; + x13 += j13; + x14 += j14; + x15 += j15; + + STORE32_LE(out + 0,x0); + STORE32_LE(out + 4,x1); + STORE32_LE(out + 8,x2); + STORE32_LE(out + 12,x3); + STORE32_LE(out + 16,x4); + STORE32_LE(out + 20,x5); + STORE32_LE(out + 24,x6); + STORE32_LE(out + 28,x7); + STORE32_LE(out + 32,x8); + STORE32_LE(out + 36,x9); + STORE32_LE(out + 40,x10); + STORE32_LE(out + 44,x11); + STORE32_LE(out + 48,x12); + STORE32_LE(out + 52,x13); + STORE32_LE(out + 56,x14); + STORE32_LE(out + 60,x15); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c new file mode 100644 index 0000000..e49a81e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c @@ -0,0 +1,21 @@ +#include "crypto_core_salsa2012.h" + +size_t +crypto_core_salsa2012_outputbytes(void) { + return crypto_core_salsa2012_OUTPUTBYTES; +} + +size_t +crypto_core_salsa2012_inputbytes(void) { + return crypto_core_salsa2012_INPUTBYTES; +} + +size_t +crypto_core_salsa2012_keybytes(void) { + return crypto_core_salsa2012_KEYBYTES; +} + +size_t +crypto_core_salsa2012_constbytes(void) { + return crypto_core_salsa2012_CONSTBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c new file mode 100644 index 0000000..5658166 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c @@ -0,0 +1,126 @@ +/* +version 20080913 +D. J. Bernstein +Public domain. +*/ + +#include +#include + +#include "crypto_core_salsa2012.h" +#include "private/common.h" + +#define ROUNDS 12 +#define U32C(v) (v##U) + +static uint32_t rotate(uint32_t u,int c) +{ + return (u << c) | (u >> (32 - c)); +} + +int crypto_core_salsa2012( + unsigned char *out, + const unsigned char *in, + const unsigned char *k, + const unsigned char *c +) +{ + uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + uint32_t j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; + int i; + + if (c == NULL) { + j0 = x0 = U32C(0x61707865); + j5 = x5 = U32C(0x3320646e); + j10 = x10 = U32C(0x79622d32); + j15 = x15 = U32C(0x6b206574); + } else { + j0 = x0 = LOAD32_LE(c + 0); + j5 = x5 = LOAD32_LE(c + 4); + j10 = x10 = LOAD32_LE(c + 8); + j15 = x15 = LOAD32_LE(c + 12); + } + j1 = x1 = LOAD32_LE(k + 0); + j2 = x2 = LOAD32_LE(k + 4); + j3 = x3 = LOAD32_LE(k + 8); + j4 = x4 = LOAD32_LE(k + 12); + j6 = x6 = LOAD32_LE(in + 0); + j7 = x7 = LOAD32_LE(in + 4); + j8 = x8 = LOAD32_LE(in + 8); + j9 = x9 = LOAD32_LE(in + 12); + j11 = x11 = LOAD32_LE(k + 16); + j12 = x12 = LOAD32_LE(k + 20); + j13 = x13 = LOAD32_LE(k + 24); + j14 = x14 = LOAD32_LE(k + 28); + + for (i = ROUNDS;i > 0;i -= 2) { + x4 ^= rotate( x0+x12, 7); + x8 ^= rotate( x4+ x0, 9); + x12 ^= rotate( x8+ x4,13); + x0 ^= rotate(x12+ x8,18); + x9 ^= rotate( x5+ x1, 7); + x13 ^= rotate( x9+ x5, 9); + x1 ^= rotate(x13+ x9,13); + x5 ^= rotate( x1+x13,18); + x14 ^= rotate(x10+ x6, 7); + x2 ^= rotate(x14+x10, 9); + x6 ^= rotate( x2+x14,13); + x10 ^= rotate( x6+ x2,18); + x3 ^= rotate(x15+x11, 7); + x7 ^= rotate( x3+x15, 9); + x11 ^= rotate( x7+ x3,13); + x15 ^= rotate(x11+ x7,18); + x1 ^= rotate( x0+ x3, 7); + x2 ^= rotate( x1+ x0, 9); + x3 ^= rotate( x2+ x1,13); + x0 ^= rotate( x3+ x2,18); + x6 ^= rotate( x5+ x4, 7); + x7 ^= rotate( x6+ x5, 9); + x4 ^= rotate( x7+ x6,13); + x5 ^= rotate( x4+ x7,18); + x11 ^= rotate(x10+ x9, 7); + x8 ^= rotate(x11+x10, 9); + x9 ^= rotate( x8+x11,13); + x10 ^= rotate( x9+ x8,18); + x12 ^= rotate(x15+x14, 7); + x13 ^= rotate(x12+x15, 9); + x14 ^= rotate(x13+x12,13); + x15 ^= rotate(x14+x13,18); + } + + x0 += j0; + x1 += j1; + x2 += j2; + x3 += j3; + x4 += j4; + x5 += j5; + x6 += j6; + x7 += j7; + x8 += j8; + x9 += j9; + x10 += j10; + x11 += j11; + x12 += j12; + x13 += j13; + x14 += j14; + x15 += j15; + + STORE32_LE(out + 0,x0); + STORE32_LE(out + 4,x1); + STORE32_LE(out + 8,x2); + STORE32_LE(out + 12,x3); + STORE32_LE(out + 16,x4); + STORE32_LE(out + 20,x5); + STORE32_LE(out + 24,x6); + STORE32_LE(out + 28,x7); + STORE32_LE(out + 32,x8); + STORE32_LE(out + 36,x9); + STORE32_LE(out + 40,x10); + STORE32_LE(out + 44,x11); + STORE32_LE(out + 48,x12); + STORE32_LE(out + 52,x13); + STORE32_LE(out + 56,x14); + STORE32_LE(out + 60,x15); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/core_salsa208_api.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/core_salsa208_api.c new file mode 100644 index 0000000..72c336c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/core_salsa208_api.c @@ -0,0 +1,21 @@ +#include "crypto_core_salsa208.h" + +size_t +crypto_core_salsa208_outputbytes(void) { + return crypto_core_salsa208_OUTPUTBYTES; +} + +size_t +crypto_core_salsa208_inputbytes(void) { + return crypto_core_salsa208_INPUTBYTES; +} + +size_t +crypto_core_salsa208_keybytes(void) { + return crypto_core_salsa208_KEYBYTES; +} + +size_t +crypto_core_salsa208_constbytes(void) { + return crypto_core_salsa208_CONSTBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/ref/core_salsa208.c b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/ref/core_salsa208.c new file mode 100644 index 0000000..c350e84 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_core/salsa208/ref/core_salsa208.c @@ -0,0 +1,126 @@ +/* +version 20080913 +D. J. Bernstein +Public domain. +*/ + +#include +#include + +#include "crypto_core_salsa208.h" +#include "private/common.h" + +#define ROUNDS 8 +#define U32C(v) (v##U) + +static uint32_t rotate(uint32_t u,int c) +{ + return (u << c) | (u >> (32 - c)); +} + +int crypto_core_salsa208( + unsigned char *out, + const unsigned char *in, + const unsigned char *k, + const unsigned char *c +) +{ + uint32_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + uint32_t j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; + int i; + + if (c == NULL) { + j0 = x0 = U32C(0x61707865); + j5 = x5 = U32C(0x3320646e); + j10 = x10 = U32C(0x79622d32); + j15 = x15 = U32C(0x6b206574); + } else { + j0 = x0 = LOAD32_LE(c + 0); + j5 = x5 = LOAD32_LE(c + 4); + j10 = x10 = LOAD32_LE(c + 8); + j15 = x15 = LOAD32_LE(c + 12); + } + j1 = x1 = LOAD32_LE(k + 0); + j2 = x2 = LOAD32_LE(k + 4); + j3 = x3 = LOAD32_LE(k + 8); + j4 = x4 = LOAD32_LE(k + 12); + j6 = x6 = LOAD32_LE(in + 0); + j7 = x7 = LOAD32_LE(in + 4); + j8 = x8 = LOAD32_LE(in + 8); + j9 = x9 = LOAD32_LE(in + 12); + j11 = x11 = LOAD32_LE(k + 16); + j12 = x12 = LOAD32_LE(k + 20); + j13 = x13 = LOAD32_LE(k + 24); + j14 = x14 = LOAD32_LE(k + 28); + + for (i = ROUNDS;i > 0;i -= 2) { + x4 ^= rotate( x0+x12, 7); + x8 ^= rotate( x4+ x0, 9); + x12 ^= rotate( x8+ x4,13); + x0 ^= rotate(x12+ x8,18); + x9 ^= rotate( x5+ x1, 7); + x13 ^= rotate( x9+ x5, 9); + x1 ^= rotate(x13+ x9,13); + x5 ^= rotate( x1+x13,18); + x14 ^= rotate(x10+ x6, 7); + x2 ^= rotate(x14+x10, 9); + x6 ^= rotate( x2+x14,13); + x10 ^= rotate( x6+ x2,18); + x3 ^= rotate(x15+x11, 7); + x7 ^= rotate( x3+x15, 9); + x11 ^= rotate( x7+ x3,13); + x15 ^= rotate(x11+ x7,18); + x1 ^= rotate( x0+ x3, 7); + x2 ^= rotate( x1+ x0, 9); + x3 ^= rotate( x2+ x1,13); + x0 ^= rotate( x3+ x2,18); + x6 ^= rotate( x5+ x4, 7); + x7 ^= rotate( x6+ x5, 9); + x4 ^= rotate( x7+ x6,13); + x5 ^= rotate( x4+ x7,18); + x11 ^= rotate(x10+ x9, 7); + x8 ^= rotate(x11+x10, 9); + x9 ^= rotate( x8+x11,13); + x10 ^= rotate( x9+ x8,18); + x12 ^= rotate(x15+x14, 7); + x13 ^= rotate(x12+x15, 9); + x14 ^= rotate(x13+x12,13); + x15 ^= rotate(x14+x13,18); + } + + x0 += j0; + x1 += j1; + x2 += j2; + x3 += j3; + x4 += j4; + x5 += j5; + x6 += j6; + x7 += j7; + x8 += j8; + x9 += j9; + x10 += j10; + x11 += j11; + x12 += j12; + x13 += j13; + x14 += j14; + x15 += j15; + + STORE32_LE(out + 0,x0); + STORE32_LE(out + 4,x1); + STORE32_LE(out + 8,x2); + STORE32_LE(out + 12,x3); + STORE32_LE(out + 16,x4); + STORE32_LE(out + 20,x5); + STORE32_LE(out + 24,x6); + STORE32_LE(out + 28,x7); + STORE32_LE(out + 32,x8); + STORE32_LE(out + 36,x9); + STORE32_LE(out + 40,x10); + STORE32_LE(out + 44,x11); + STORE32_LE(out + 48,x12); + STORE32_LE(out + 52,x13); + STORE32_LE(out + 56,x14); + STORE32_LE(out + 60,x15); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c new file mode 100644 index 0000000..14f16e4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c @@ -0,0 +1,48 @@ +#include "crypto_generichash_blake2b.h" + +size_t +crypto_generichash_blake2b_bytes_min(void) { + return crypto_generichash_blake2b_BYTES_MIN; +} + +size_t +crypto_generichash_blake2b_bytes_max(void) { + return crypto_generichash_blake2b_BYTES_MAX; +} + +size_t +crypto_generichash_blake2b_bytes(void) { + return crypto_generichash_blake2b_BYTES; +} + +size_t +crypto_generichash_blake2b_keybytes_min(void) { + return crypto_generichash_blake2b_KEYBYTES_MIN; +} + +size_t +crypto_generichash_blake2b_keybytes_max(void) { + return crypto_generichash_blake2b_KEYBYTES_MAX; +} + +size_t +crypto_generichash_blake2b_keybytes(void) { + return crypto_generichash_blake2b_KEYBYTES; +} + +size_t +crypto_generichash_blake2b_saltbytes(void) { + return crypto_generichash_blake2b_SALTBYTES; +} + +size_t +crypto_generichash_blake2b_personalbytes(void) { + return crypto_generichash_blake2b_PERSONALBYTES; +} + +size_t +crypto_generichash_blake2b_statebytes(void) +{ + return (sizeof(crypto_generichash_blake2b_state) + (size_t) 63U) + & ~(size_t) 63U; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h new file mode 100644 index 0000000..9515f40 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h @@ -0,0 +1,48 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along with + this software. If not, see . +*/ + +#ifndef blake2_impl_H +#define blake2_impl_H + +#include +#include + +#include "utils.h" + +static inline uint32_t rotl32( const uint32_t w, const unsigned c ) +{ + return ( w << c ) | ( w >> ( 32 - c ) ); +} + +static inline uint64_t rotl64( const uint64_t w, const unsigned c ) +{ + return ( w << c ) | ( w >> ( 64 - c ) ); +} + +static inline uint32_t rotr32( const uint32_t w, const unsigned c ) +{ + return ( w >> c ) | ( w << ( 32 - c ) ); +} + +static inline uint64_t rotr64( const uint64_t w, const unsigned c ) +{ + return ( w >> c ) | ( w << ( 64 - c ) ); +} + +/* prevents compiler optimizing out memset() */ +static inline void secure_zero_memory( void *v, size_t n ) +{ + sodium_memzero(v, n); +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h new file mode 100644 index 0000000..3e98a36 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h @@ -0,0 +1,97 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + All code is triple-licensed under the + [CC0](http://creativecommons.org/publicdomain/zero/1.0), the + [OpenSSL Licence](https://www.openssl.org/source/license.html), or + the [Apache Public License 2.0](http://www.apache.org/licenses/LICENSE-2.0), + at your choosing. + */ + +#ifndef blake2_H +#define blake2_H + +#include +#include + +#include "crypto_generichash_blake2b.h" +#include "export.h" + +#define blake2b_init_param crypto_generichash_blake2b__init_param +#define blake2b_init crypto_generichash_blake2b__init +#define blake2b_init_salt_personal crypto_generichash_blake2b__init_salt_personal +#define blake2b_init_key crypto_generichash_blake2b__init_key +#define blake2b_init_key_salt_personal crypto_generichash_blake2b__init_key_salt_personal +#define blake2b_update crypto_generichash_blake2b__update +#define blake2b_final crypto_generichash_blake2b__final +#define blake2b crypto_generichash_blake2b__blake2b +#define blake2b_salt_personal crypto_generichash_blake2b__blake2b_salt_personal +#define blake2b_pick_best_implementation crypto_generichash_blake2b__pick_best_implementation + +enum blake2b_constant +{ + BLAKE2B_BLOCKBYTES = 128, + BLAKE2B_OUTBYTES = 64, + BLAKE2B_KEYBYTES = 64, + BLAKE2B_SALTBYTES = 16, + BLAKE2B_PERSONALBYTES = 16 +}; + +#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# pragma pack(1) +#else +# pragma pack(push, 1) +#endif + +typedef struct blake2b_param_ +{ + uint8_t digest_length; /* 1 */ + uint8_t key_length; /* 2 */ + uint8_t fanout; /* 3 */ + uint8_t depth; /* 4 */ + uint8_t leaf_length[4]; /* 8 */ + uint8_t node_offset[8]; /* 16 */ + uint8_t node_depth; /* 17 */ + uint8_t inner_length; /* 18 */ + uint8_t reserved[14]; /* 32 */ + uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */ + uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */ +} blake2b_param; + +typedef crypto_generichash_blake2b_state blake2b_state; + +#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# pragma pack() +#else +# pragma pack(pop) +#endif + +/* Streaming API */ +int blake2b_init( blake2b_state *S, const uint8_t outlen ); +int blake2b_init_salt_personal( blake2b_state *S, const uint8_t outlen, + const void *personal, const void *salt ); +int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ); +int blake2b_init_key_salt_personal( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen, + const void *salt, const void *personal ); +int blake2b_init_param( blake2b_state *S, const blake2b_param *P ); +int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ); +int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ); + +/* Simple API */ +int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ); +int blake2b_salt_personal( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen, const void *salt, const void *personal ); + +typedef int ( *blake2b_compress_fn )( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ); +int blake2b_pick_best_implementation(void); +int blake2b_compress_ref( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ); +int blake2b_compress_ssse3( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ); +int blake2b_compress_sse41( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ); +int blake2b_compress_avx2( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.c new file mode 100644 index 0000000..b3f56e4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.c @@ -0,0 +1,45 @@ + +#define BLAKE2_USE_SSSE3 +#define BLAKE2_USE_SSE41 +#define BLAKE2_USE_AVX2 + +#include +#include + +#if (defined(HAVE_AVX2INTRIN_H) && defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64)) && _MSC_VER >= 1700) + +#pragma GCC target("sse2") +#pragma GCC target("ssse3") +#pragma GCC target("sse4.1") +#pragma GCC target("avx2") + +#include +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" +#include "blake2b-compress-avx2.h" + +CRYPTO_ALIGN(64) static const uint64_t blake2b_IV[8] = +{ + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +}; + +int blake2b_compress_avx2( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +{ + __m256i a = LOADU(&S->h[0]); + __m256i b = LOADU(&S->h[4]); + BLAKE2B_COMPRESS_V1(a, b, block, S->t[0], S->t[1], S->f[0], S->f[1]); + STOREU(&S->h[0], a); + STOREU(&S->h[4], b); + + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.h new file mode 100644 index 0000000..af24871 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-avx2.h @@ -0,0 +1,123 @@ + +#ifndef blake2b_compress_avx2_H +#define blake2b_compress_avx2_H + +#define LOAD128(p) _mm_load_si128((__m128i *)(p)) +#define STORE128(p, r) _mm_store_si128((__m128i *)(p), r) + +#define LOADU128(p) _mm_loadu_si128((__m128i *)(p)) +#define STOREU128(p, r) _mm_storeu_si128((__m128i *)(p), r) + +#define LOAD(p) _mm256_load_si256((__m256i *)(p)) +#define STORE(p, r) _mm256_store_si256((__m256i *)(p), r) + +#define LOADU(p) _mm256_loadu_si256((__m256i *)(p)) +#define STOREU(p, r) _mm256_storeu_si256((__m256i *)(p), r) + +static inline uint64_t LOADU64(const void *p) { + uint64_t v; + memcpy(&v, p, sizeof v); + return v; +} + +#define ROTATE16 _mm256_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9, \ + 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9) + +#define ROTATE24 _mm256_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10, \ + 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10) + +#define ADD(a, b) _mm256_add_epi64(a, b) +#define SUB(a, b) _mm256_sub_epi64(a, b) + +#define XOR(a, b) _mm256_xor_si256(a, b) +#define AND(a, b) _mm256_and_si256(a, b) +#define OR(a, b) _mm256_or_si256(a, b) + +#define ROT32(x) _mm256_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1)) +#define ROT24(x) _mm256_shuffle_epi8((x), ROTATE24) +#define ROT16(x) _mm256_shuffle_epi8((x), ROTATE16) +#define ROT63(x) _mm256_or_si256(_mm256_srli_epi64((x), 63), ADD((x), (x))) + +#define BLAKE2B_G1_V1(a, b, c, d, m) do { \ + a = ADD(a, m); \ + a = ADD(a, b); d = XOR(d, a); d = ROT32(d); \ + c = ADD(c, d); b = XOR(b, c); b = ROT24(b); \ +} while(0) + +#define BLAKE2B_G2_V1(a, b, c, d, m) do { \ + a = ADD(a, m); \ + a = ADD(a, b); d = XOR(d, a); d = ROT16(d); \ + c = ADD(c, d); b = XOR(b, c); b = ROT63(b); \ +} while(0) + +#define BLAKE2B_DIAG_V1(a, b, c, d) do { \ + d = _mm256_permute4x64_epi64(d, _MM_SHUFFLE(2,1,0,3)); \ + c = _mm256_permute4x64_epi64(c, _MM_SHUFFLE(1,0,3,2)); \ + b = _mm256_permute4x64_epi64(b, _MM_SHUFFLE(0,3,2,1)); \ +} while(0) + +#define BLAKE2B_UNDIAG_V1(a, b, c, d) do { \ + d = _mm256_permute4x64_epi64(d, _MM_SHUFFLE(0,3,2,1)); \ + c = _mm256_permute4x64_epi64(c, _MM_SHUFFLE(1,0,3,2)); \ + b = _mm256_permute4x64_epi64(b, _MM_SHUFFLE(2,1,0,3)); \ +} while(0) + +#include "blake2b-load-avx2.h" + +#define BLAKE2B_ROUND_V1(a, b, c, d, r, m) do { \ + __m256i b0; \ + BLAKE2B_LOAD_MSG_ ##r ##_1(b0); \ + BLAKE2B_G1_V1(a, b, c, d, b0); \ + BLAKE2B_LOAD_MSG_ ##r ##_2(b0); \ + BLAKE2B_G2_V1(a, b, c, d, b0); \ + BLAKE2B_DIAG_V1(a, b, c, d); \ + BLAKE2B_LOAD_MSG_ ##r ##_3(b0); \ + BLAKE2B_G1_V1(a, b, c, d, b0); \ + BLAKE2B_LOAD_MSG_ ##r ##_4(b0); \ + BLAKE2B_G2_V1(a, b, c, d, b0); \ + BLAKE2B_UNDIAG_V1(a, b, c, d); \ +} while(0) + +#define BLAKE2B_ROUNDS_V1(a, b, c, d, m) do { \ + BLAKE2B_ROUND_V1(a, b, c, d, 0, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 1, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 2, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 3, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 4, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 5, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 6, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 7, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 8, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 9, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 10, (m)); \ + BLAKE2B_ROUND_V1(a, b, c, d, 11, (m)); \ +} while(0) + +#define DECLARE_MESSAGE_WORDS(m) \ + const __m256i m0 = _mm256_broadcastsi128_si256(LOADU128((m) + 0)); \ + const __m256i m1 = _mm256_broadcastsi128_si256(LOADU128((m) + 16)); \ + const __m256i m2 = _mm256_broadcastsi128_si256(LOADU128((m) + 32)); \ + const __m256i m3 = _mm256_broadcastsi128_si256(LOADU128((m) + 48)); \ + const __m256i m4 = _mm256_broadcastsi128_si256(LOADU128((m) + 64)); \ + const __m256i m5 = _mm256_broadcastsi128_si256(LOADU128((m) + 80)); \ + const __m256i m6 = _mm256_broadcastsi128_si256(LOADU128((m) + 96)); \ + const __m256i m7 = _mm256_broadcastsi128_si256(LOADU128((m) + 112)); \ + __m256i t0, t1; + +#define BLAKE2B_COMPRESS_V1(a, b, m, t0, t1, f0, f1) do { \ + DECLARE_MESSAGE_WORDS(m) \ + const __m256i iv0 = a; \ + const __m256i iv1 = b; \ + __m256i c = LOAD(&blake2b_IV[0]); \ + __m256i d = XOR( \ + LOAD(&blake2b_IV[4]), \ + _mm256_set_epi64x(f1, f0, t1, t0) \ + ); \ + BLAKE2B_ROUNDS_V1(a, b, c, d, m); \ + a = XOR(a, c); \ + b = XOR(b, d); \ + a = XOR(a, iv0); \ + b = XOR(b, iv1); \ +} while(0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c new file mode 100644 index 0000000..8af04dd --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c @@ -0,0 +1,94 @@ + +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" +#include "private/common.h" + +CRYPTO_ALIGN(64) static const uint64_t blake2b_IV[8] = +{ + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +}; + +static const uint8_t blake2b_sigma[12][16] = +{ + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , + { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } , + { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } , + { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } , + { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } , + { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } , + { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } , + { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } , + { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } , + { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } , + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } , + { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } +}; + +int blake2b_compress_ref( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +{ + uint64_t m[16]; + uint64_t v[16]; + int i; + + for( i = 0; i < 16; ++i ) + m[i] = LOAD64_LE( block + i * sizeof( m[i] ) ); + + for( i = 0; i < 8; ++i ) + v[i] = S->h[i]; + + v[ 8] = blake2b_IV[0]; + v[ 9] = blake2b_IV[1]; + v[10] = blake2b_IV[2]; + v[11] = blake2b_IV[3]; + v[12] = S->t[0] ^ blake2b_IV[4]; + v[13] = S->t[1] ^ blake2b_IV[5]; + v[14] = S->f[0] ^ blake2b_IV[6]; + v[15] = S->f[1] ^ blake2b_IV[7]; +#define G(r,i,a,b,c,d) \ + do { \ + a = a + b + m[blake2b_sigma[r][2*i+0]]; \ + d = rotr64(d ^ a, 32); \ + c = c + d; \ + b = rotr64(b ^ c, 24); \ + a = a + b + m[blake2b_sigma[r][2*i+1]]; \ + d = rotr64(d ^ a, 16); \ + c = c + d; \ + b = rotr64(b ^ c, 63); \ + } while(0) +#define ROUND(r) \ + do { \ + G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \ + G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \ + G(r,2,v[ 2],v[ 6],v[10],v[14]); \ + G(r,3,v[ 3],v[ 7],v[11],v[15]); \ + G(r,4,v[ 0],v[ 5],v[10],v[15]); \ + G(r,5,v[ 1],v[ 6],v[11],v[12]); \ + G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \ + G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \ + } while(0) + ROUND( 0 ); + ROUND( 1 ); + ROUND( 2 ); + ROUND( 3 ); + ROUND( 4 ); + ROUND( 5 ); + ROUND( 6 ); + ROUND( 7 ); + ROUND( 8 ); + ROUND( 9 ); + ROUND( 10 ); + ROUND( 11 ); + + for( i = 0; i < 8; ++i ) + S->h[i] = S->h[i] ^ v[i] ^ v[i + 8]; + +#undef G +#undef ROUND + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c new file mode 100644 index 0000000..ea064c2 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c @@ -0,0 +1,80 @@ + +#define BLAKE2_USE_SSSE3 +#define BLAKE2_USE_SSE41 + +#include +#include + +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + +#pragma GCC target("sse2") +#pragma GCC target("ssse3") +#pragma GCC target("sse4.1") + +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" +#include "blake2b-compress-sse41.h" + +CRYPTO_ALIGN(64) static const uint64_t blake2b_IV[8] = +{ + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +}; + +int blake2b_compress_sse41( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +{ + __m128i row1l, row1h; + __m128i row2l, row2h; + __m128i row3l, row3h; + __m128i row4l, row4h; + __m128i b0, b1; + __m128i t0, t1; + const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 ); + const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 ); + const __m128i m0 = LOADU( block + 00 ); + const __m128i m1 = LOADU( block + 16 ); + const __m128i m2 = LOADU( block + 32 ); + const __m128i m3 = LOADU( block + 48 ); + const __m128i m4 = LOADU( block + 64 ); + const __m128i m5 = LOADU( block + 80 ); + const __m128i m6 = LOADU( block + 96 ); + const __m128i m7 = LOADU( block + 112 ); + row1l = LOADU( &S->h[0] ); + row1h = LOADU( &S->h[2] ); + row2l = LOADU( &S->h[4] ); + row2h = LOADU( &S->h[6] ); + row3l = LOADU( &blake2b_IV[0] ); + row3h = LOADU( &blake2b_IV[2] ); + row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) ); + row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) ); + ROUND( 0 ); + ROUND( 1 ); + ROUND( 2 ); + ROUND( 3 ); + ROUND( 4 ); + ROUND( 5 ); + ROUND( 6 ); + ROUND( 7 ); + ROUND( 8 ); + ROUND( 9 ); + ROUND( 10 ); + ROUND( 11 ); + row1l = _mm_xor_si128( row3l, row1l ); + row1h = _mm_xor_si128( row3h, row1h ); + STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) ); + STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) ); + row2l = _mm_xor_si128( row4l, row2l ); + row2h = _mm_xor_si128( row4h, row2h ); + STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) ); + STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) ); + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.h new file mode 100644 index 0000000..8e85466 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.h @@ -0,0 +1,97 @@ + +#ifndef blake2b_compress_sse41_H +#define blake2b_compress_sse41_H + +#define LOADU(p) _mm_loadu_si128( (const __m128i *)(const void *)(p) ) +#define STOREU(p,r) _mm_storeu_si128((__m128i *)(void *)(p), r) + +#define _mm_roti_epi64(x, c) \ + (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \ + : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \ + : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \ + : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \ + : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c)))) + +#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ + row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ + row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ + \ + row4l = _mm_xor_si128(row4l, row1l); \ + row4h = _mm_xor_si128(row4h, row1h); \ + \ + row4l = _mm_roti_epi64(row4l, -32); \ + row4h = _mm_roti_epi64(row4h, -32); \ + \ + row3l = _mm_add_epi64(row3l, row4l); \ + row3h = _mm_add_epi64(row3h, row4h); \ + \ + row2l = _mm_xor_si128(row2l, row3l); \ + row2h = _mm_xor_si128(row2h, row3h); \ + \ + row2l = _mm_roti_epi64(row2l, -24); \ + row2h = _mm_roti_epi64(row2h, -24); \ + +#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ + row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ + row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ + \ + row4l = _mm_xor_si128(row4l, row1l); \ + row4h = _mm_xor_si128(row4h, row1h); \ + \ + row4l = _mm_roti_epi64(row4l, -16); \ + row4h = _mm_roti_epi64(row4h, -16); \ + \ + row3l = _mm_add_epi64(row3l, row4l); \ + row3h = _mm_add_epi64(row3h, row4h); \ + \ + row2l = _mm_xor_si128(row2l, row3l); \ + row2h = _mm_xor_si128(row2h, row3h); \ + \ + row2l = _mm_roti_epi64(row2l, -63); \ + row2h = _mm_roti_epi64(row2h, -63); \ + +#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ + t0 = _mm_alignr_epi8(row2h, row2l, 8); \ + t1 = _mm_alignr_epi8(row2l, row2h, 8); \ + row2l = t0; \ + row2h = t1; \ + \ + t0 = row3l; \ + row3l = row3h; \ + row3h = t0; \ + \ + t0 = _mm_alignr_epi8(row4h, row4l, 8); \ + t1 = _mm_alignr_epi8(row4l, row4h, 8); \ + row4l = t1; \ + row4h = t0; + +#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ + t0 = _mm_alignr_epi8(row2l, row2h, 8); \ + t1 = _mm_alignr_epi8(row2h, row2l, 8); \ + row2l = t0; \ + row2h = t1; \ + \ + t0 = row3l; \ + row3l = row3h; \ + row3h = t0; \ + \ + t0 = _mm_alignr_epi8(row4l, row4h, 8); \ + t1 = _mm_alignr_epi8(row4h, row4l, 8); \ + row4l = t1; \ + row4h = t0; + +#include "blake2b-load-sse41.h" + +#define ROUND(r) \ + LOAD_MSG_ ##r ##_1(b0, b1); \ + G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + LOAD_MSG_ ##r ##_2(b0, b1); \ + G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ + LOAD_MSG_ ##r ##_3(b0, b1); \ + G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + LOAD_MSG_ ##r ##_4(b0, b1); \ + G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c new file mode 100644 index 0000000..882351e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c @@ -0,0 +1,87 @@ + +#include +#include + +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64))) + +#pragma GCC target("sse2") +#pragma GCC target("ssse3") + +#ifdef _MSC_VER +# include /* for _mm_set_epi64x */ +#endif +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" +#include "blake2b-compress-ssse3.h" + +CRYPTO_ALIGN(64) static const uint64_t blake2b_IV[8] = +{ + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +}; + +int blake2b_compress_ssse3( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] ) +{ + __m128i row1l, row1h; + __m128i row2l, row2h; + __m128i row3l, row3h; + __m128i row4l, row4h; + __m128i b0, b1; + __m128i t0, t1; + const __m128i r16 = _mm_setr_epi8( 2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9 ); + const __m128i r24 = _mm_setr_epi8( 3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10 ); + const uint64_t m0 = ( ( uint64_t * )block )[ 0]; + const uint64_t m1 = ( ( uint64_t * )block )[ 1]; + const uint64_t m2 = ( ( uint64_t * )block )[ 2]; + const uint64_t m3 = ( ( uint64_t * )block )[ 3]; + const uint64_t m4 = ( ( uint64_t * )block )[ 4]; + const uint64_t m5 = ( ( uint64_t * )block )[ 5]; + const uint64_t m6 = ( ( uint64_t * )block )[ 6]; + const uint64_t m7 = ( ( uint64_t * )block )[ 7]; + const uint64_t m8 = ( ( uint64_t * )block )[ 8]; + const uint64_t m9 = ( ( uint64_t * )block )[ 9]; + const uint64_t m10 = ( ( uint64_t * )block )[10]; + const uint64_t m11 = ( ( uint64_t * )block )[11]; + const uint64_t m12 = ( ( uint64_t * )block )[12]; + const uint64_t m13 = ( ( uint64_t * )block )[13]; + const uint64_t m14 = ( ( uint64_t * )block )[14]; + const uint64_t m15 = ( ( uint64_t * )block )[15]; + + row1l = LOADU( &S->h[0] ); + row1h = LOADU( &S->h[2] ); + row2l = LOADU( &S->h[4] ); + row2h = LOADU( &S->h[6] ); + row3l = LOADU( &blake2b_IV[0] ); + row3h = LOADU( &blake2b_IV[2] ); + row4l = _mm_xor_si128( LOADU( &blake2b_IV[4] ), LOADU( &S->t[0] ) ); + row4h = _mm_xor_si128( LOADU( &blake2b_IV[6] ), LOADU( &S->f[0] ) ); + ROUND( 0 ); + ROUND( 1 ); + ROUND( 2 ); + ROUND( 3 ); + ROUND( 4 ); + ROUND( 5 ); + ROUND( 6 ); + ROUND( 7 ); + ROUND( 8 ); + ROUND( 9 ); + ROUND( 10 ); + ROUND( 11 ); + row1l = _mm_xor_si128( row3l, row1l ); + row1h = _mm_xor_si128( row3h, row1h ); + STOREU( &S->h[0], _mm_xor_si128( LOADU( &S->h[0] ), row1l ) ); + STOREU( &S->h[2], _mm_xor_si128( LOADU( &S->h[2] ), row1h ) ); + row2l = _mm_xor_si128( row4l, row2l ); + row2h = _mm_xor_si128( row4h, row2h ); + STOREU( &S->h[4], _mm_xor_si128( LOADU( &S->h[4] ), row2l ) ); + STOREU( &S->h[6], _mm_xor_si128( LOADU( &S->h[6] ), row2h ) ); + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.h new file mode 100644 index 0000000..dcfe84e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.h @@ -0,0 +1,97 @@ + +#ifndef blake2b_compress_ssse3_H +#define blake2b_compress_ssse3_H + +#define LOADU(p) _mm_loadu_si128( (const __m128i *)(const void *)(p) ) +#define STOREU(p,r) _mm_storeu_si128((__m128i *)(void *)(p), r) + +#define _mm_roti_epi64(x, c) \ + (-(c) == 32) ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2,3,0,1)) \ + : (-(c) == 24) ? _mm_shuffle_epi8((x), r24) \ + : (-(c) == 16) ? _mm_shuffle_epi8((x), r16) \ + : (-(c) == 63) ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_add_epi64((x), (x))) \ + : _mm_xor_si128(_mm_srli_epi64((x), -(c)), _mm_slli_epi64((x), 64-(-(c)))) + +#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ + row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ + row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ + \ + row4l = _mm_xor_si128(row4l, row1l); \ + row4h = _mm_xor_si128(row4h, row1h); \ + \ + row4l = _mm_roti_epi64(row4l, -32); \ + row4h = _mm_roti_epi64(row4h, -32); \ + \ + row3l = _mm_add_epi64(row3l, row4l); \ + row3h = _mm_add_epi64(row3h, row4h); \ + \ + row2l = _mm_xor_si128(row2l, row3l); \ + row2h = _mm_xor_si128(row2h, row3h); \ + \ + row2l = _mm_roti_epi64(row2l, -24); \ + row2h = _mm_roti_epi64(row2h, -24); \ + +#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \ + row1l = _mm_add_epi64(_mm_add_epi64(row1l, b0), row2l); \ + row1h = _mm_add_epi64(_mm_add_epi64(row1h, b1), row2h); \ + \ + row4l = _mm_xor_si128(row4l, row1l); \ + row4h = _mm_xor_si128(row4h, row1h); \ + \ + row4l = _mm_roti_epi64(row4l, -16); \ + row4h = _mm_roti_epi64(row4h, -16); \ + \ + row3l = _mm_add_epi64(row3l, row4l); \ + row3h = _mm_add_epi64(row3h, row4h); \ + \ + row2l = _mm_xor_si128(row2l, row3l); \ + row2h = _mm_xor_si128(row2h, row3h); \ + \ + row2l = _mm_roti_epi64(row2l, -63); \ + row2h = _mm_roti_epi64(row2h, -63); \ + +#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ + t0 = _mm_alignr_epi8(row2h, row2l, 8); \ + t1 = _mm_alignr_epi8(row2l, row2h, 8); \ + row2l = t0; \ + row2h = t1; \ + \ + t0 = row3l; \ + row3l = row3h; \ + row3h = t0; \ + \ + t0 = _mm_alignr_epi8(row4h, row4l, 8); \ + t1 = _mm_alignr_epi8(row4l, row4h, 8); \ + row4l = t1; \ + row4h = t0; + +#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \ + t0 = _mm_alignr_epi8(row2l, row2h, 8); \ + t1 = _mm_alignr_epi8(row2h, row2l, 8); \ + row2l = t0; \ + row2h = t1; \ + \ + t0 = row3l; \ + row3l = row3h; \ + row3h = t0; \ + \ + t0 = _mm_alignr_epi8(row4l, row4h, 8); \ + t1 = _mm_alignr_epi8(row4h, row4l, 8); \ + row4l = t1; \ + row4h = t0; + +#include "blake2b-load-sse2.h" + +#define ROUND(r) \ + LOAD_MSG_ ##r ##_1(b0, b1); \ + G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + LOAD_MSG_ ##r ##_2(b0, b1); \ + G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \ + LOAD_MSG_ ##r ##_3(b0, b1); \ + G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + LOAD_MSG_ ##r ##_4(b0, b1); \ + G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \ + UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-avx2.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-avx2.h new file mode 100644 index 0000000..6be3704 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-avx2.h @@ -0,0 +1,339 @@ +#ifndef blake2b_load_avx2_H +#define blake2b_load_avx2_H + +#define BLAKE2B_LOAD_MSG_0_1(b0) do { \ + t0 = _mm256_unpacklo_epi64(m0, m1); \ + t1 = _mm256_unpacklo_epi64(m2, m3); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_0_2(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m0, m1); \ + t1 = _mm256_unpackhi_epi64(m2, m3); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_0_3(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m4, m5); \ + t1 = _mm256_unpacklo_epi64(m6, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_0_4(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m4, m5); \ + t1 = _mm256_unpackhi_epi64(m6, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_1_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m7, m2); \ + t1 = _mm256_unpackhi_epi64(m4, m6); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_1_2(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m5, m4); \ + t1 = _mm256_alignr_epi8(m3, m7, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_1_3(b0) \ +do { \ + t0 = _mm256_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ + t1 = _mm256_unpackhi_epi64(m5, m2); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_1_4(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m6, m1); \ + t1 = _mm256_unpackhi_epi64(m3, m1); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_2_1(b0) \ +do { \ + t0 = _mm256_alignr_epi8(m6, m5, 8); \ + t1 = _mm256_unpackhi_epi64(m2, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_2_2(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m4, m0); \ + t1 = _mm256_blend_epi32(m6, m1, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_2_3(b0) \ +do { \ + t0 = _mm256_blend_epi32(m1, m5, 0x33); \ + t1 = _mm256_unpackhi_epi64(m3, m4); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_2_4(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m7, m3); \ + t1 = _mm256_alignr_epi8(m2, m0, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_3_1(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m3, m1); \ + t1 = _mm256_unpackhi_epi64(m6, m5); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_3_2(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m4, m0); \ + t1 = _mm256_unpacklo_epi64(m6, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_3_3(b0) \ +do { \ + t0 = _mm256_blend_epi32(m2, m1, 0x33); \ + t1 = _mm256_blend_epi32(m7, m2, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_3_4(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m3, m5); \ + t1 = _mm256_unpacklo_epi64(m0, m4); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_4_1(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m4, m2); \ + t1 = _mm256_unpacklo_epi64(m1, m5); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_4_2(b0) \ +do { \ + t0 = _mm256_blend_epi32(m3, m0, 0x33); \ + t1 = _mm256_blend_epi32(m7, m2, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_4_3(b0) \ +do { \ + t0 = _mm256_blend_epi32(m5, m7, 0x33); \ + t1 = _mm256_blend_epi32(m1, m3, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_4_4(b0) \ +do { \ + t0 = _mm256_alignr_epi8(m6, m0, 8); \ + t1 = _mm256_blend_epi32(m6, m4, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_5_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m1, m3); \ + t1 = _mm256_unpacklo_epi64(m0, m4); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_5_2(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m6, m5); \ + t1 = _mm256_unpackhi_epi64(m5, m1); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_5_3(b0) \ +do { \ + t0 = _mm256_blend_epi32(m3, m2, 0x33); \ + t1 = _mm256_unpackhi_epi64(m7, m0); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_5_4(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m6, m2); \ + t1 = _mm256_blend_epi32(m4, m7, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_6_1(b0) \ +do { \ + t0 = _mm256_blend_epi32(m0, m6, 0x33); \ + t1 = _mm256_unpacklo_epi64(m7, m2); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_6_2(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m2, m7); \ + t1 = _mm256_alignr_epi8(m5, m6, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_6_3(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m0, m3); \ + t1 = _mm256_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_6_4(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m3, m1); \ + t1 = _mm256_blend_epi32(m5, m1, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_7_1(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m6, m3); \ + t1 = _mm256_blend_epi32(m1, m6, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_7_2(b0) \ +do { \ + t0 = _mm256_alignr_epi8(m7, m5, 8); \ + t1 = _mm256_unpackhi_epi64(m0, m4); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_7_3(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m2, m7); \ + t1 = _mm256_unpacklo_epi64(m4, m1); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_7_4(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m0, m2); \ + t1 = _mm256_unpacklo_epi64(m3, m5); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_8_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m3, m7); \ + t1 = _mm256_alignr_epi8(m0, m5, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_8_2(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m7, m4); \ + t1 = _mm256_alignr_epi8(m4, m1, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_8_3(b0) \ +do { \ + t0 = m6; \ + t1 = _mm256_alignr_epi8(m5, m0, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_8_4(b0) \ +do { \ + t0 = _mm256_blend_epi32(m3, m1, 0x33); \ + t1 = m2; \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_9_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m5, m4); \ + t1 = _mm256_unpackhi_epi64(m3, m0); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_9_2(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m1, m2); \ + t1 = _mm256_blend_epi32(m2, m3, 0x33); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_9_3(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m7, m4); \ + t1 = _mm256_unpackhi_epi64(m1, m6); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_9_4(b0) \ +do { \ + t0 = _mm256_alignr_epi8(m7, m5, 8); \ + t1 = _mm256_unpacklo_epi64(m6, m0); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_10_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m0, m1); \ + t1 = _mm256_unpacklo_epi64(m2, m3); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_10_2(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m0, m1); \ + t1 = _mm256_unpackhi_epi64(m2, m3); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_10_3(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m4, m5); \ + t1 = _mm256_unpacklo_epi64(m6, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_10_4(b0) \ +do { \ + t0 = _mm256_unpackhi_epi64(m4, m5); \ + t1 = _mm256_unpackhi_epi64(m6, m7); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_11_1(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m7, m2); \ + t1 = _mm256_unpackhi_epi64(m4, m6); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_11_2(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m5, m4); \ + t1 = _mm256_alignr_epi8(m3, m7, 8); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_11_3(b0) \ +do { \ + t0 = _mm256_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ + t1 = _mm256_unpackhi_epi64(m5, m2); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#define BLAKE2B_LOAD_MSG_11_4(b0) \ +do { \ + t0 = _mm256_unpacklo_epi64(m6, m1); \ + t1 = _mm256_unpackhi_epi64(m3, m1); \ + b0 = _mm256_blend_epi32(t0, t1, 0xF0); \ +} while(0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h new file mode 100644 index 0000000..4c6593a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h @@ -0,0 +1,66 @@ +/* + BLAKE2 reference source code package - optimized C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along with + this software. If not, see . +*/ + +#ifndef blake2b_load_sse2_H +#define blake2b_load_sse2_H + +#define LOAD_MSG_0_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) +#define LOAD_MSG_0_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) +#define LOAD_MSG_0_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) +#define LOAD_MSG_0_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) +#define LOAD_MSG_1_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) +#define LOAD_MSG_1_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) +#define LOAD_MSG_1_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) +#define LOAD_MSG_1_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) +#define LOAD_MSG_2_1(b0, b1) b0 = _mm_set_epi64x(m12, m11); b1 = _mm_set_epi64x(m15, m5) +#define LOAD_MSG_2_2(b0, b1) b0 = _mm_set_epi64x(m0, m8); b1 = _mm_set_epi64x(m13, m2) +#define LOAD_MSG_2_3(b0, b1) b0 = _mm_set_epi64x(m3, m10); b1 = _mm_set_epi64x(m9, m7) +#define LOAD_MSG_2_4(b0, b1) b0 = _mm_set_epi64x(m6, m14); b1 = _mm_set_epi64x(m4, m1) +#define LOAD_MSG_3_1(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m13) +#define LOAD_MSG_3_2(b0, b1) b0 = _mm_set_epi64x(m1, m9); b1 = _mm_set_epi64x(m14, m12) +#define LOAD_MSG_3_3(b0, b1) b0 = _mm_set_epi64x(m5, m2); b1 = _mm_set_epi64x(m15, m4) +#define LOAD_MSG_3_4(b0, b1) b0 = _mm_set_epi64x(m10, m6); b1 = _mm_set_epi64x(m8, m0) +#define LOAD_MSG_4_1(b0, b1) b0 = _mm_set_epi64x(m5, m9); b1 = _mm_set_epi64x(m10, m2) +#define LOAD_MSG_4_2(b0, b1) b0 = _mm_set_epi64x(m7, m0); b1 = _mm_set_epi64x(m15, m4) +#define LOAD_MSG_4_3(b0, b1) b0 = _mm_set_epi64x(m11, m14); b1 = _mm_set_epi64x(m3, m6) +#define LOAD_MSG_4_4(b0, b1) b0 = _mm_set_epi64x(m12, m1); b1 = _mm_set_epi64x(m13, m8) +#define LOAD_MSG_5_1(b0, b1) b0 = _mm_set_epi64x(m6, m2); b1 = _mm_set_epi64x(m8, m0) +#define LOAD_MSG_5_2(b0, b1) b0 = _mm_set_epi64x(m10, m12); b1 = _mm_set_epi64x(m3, m11) +#define LOAD_MSG_5_3(b0, b1) b0 = _mm_set_epi64x(m7, m4); b1 = _mm_set_epi64x(m1, m15) +#define LOAD_MSG_5_4(b0, b1) b0 = _mm_set_epi64x(m5, m13); b1 = _mm_set_epi64x(m9, m14) +#define LOAD_MSG_6_1(b0, b1) b0 = _mm_set_epi64x(m1, m12); b1 = _mm_set_epi64x(m4, m14) +#define LOAD_MSG_6_2(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m10, m13) +#define LOAD_MSG_6_3(b0, b1) b0 = _mm_set_epi64x(m6, m0); b1 = _mm_set_epi64x(m8, m9) +#define LOAD_MSG_6_4(b0, b1) b0 = _mm_set_epi64x(m3, m7); b1 = _mm_set_epi64x(m11, m2) +#define LOAD_MSG_7_1(b0, b1) b0 = _mm_set_epi64x(m7, m13); b1 = _mm_set_epi64x(m3, m12) +#define LOAD_MSG_7_2(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m9, m1) +#define LOAD_MSG_7_3(b0, b1) b0 = _mm_set_epi64x(m15, m5); b1 = _mm_set_epi64x(m2, m8) +#define LOAD_MSG_7_4(b0, b1) b0 = _mm_set_epi64x(m4, m0); b1 = _mm_set_epi64x(m10, m6) +#define LOAD_MSG_8_1(b0, b1) b0 = _mm_set_epi64x(m14, m6); b1 = _mm_set_epi64x(m0, m11) +#define LOAD_MSG_8_2(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m8, m3) +#define LOAD_MSG_8_3(b0, b1) b0 = _mm_set_epi64x(m13, m12); b1 = _mm_set_epi64x(m10, m1) +#define LOAD_MSG_8_4(b0, b1) b0 = _mm_set_epi64x(m7, m2); b1 = _mm_set_epi64x(m5, m4) +#define LOAD_MSG_9_1(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m1, m7) +#define LOAD_MSG_9_2(b0, b1) b0 = _mm_set_epi64x(m4, m2); b1 = _mm_set_epi64x(m5, m6) +#define LOAD_MSG_9_3(b0, b1) b0 = _mm_set_epi64x(m9, m15); b1 = _mm_set_epi64x(m13, m3) +#define LOAD_MSG_9_4(b0, b1) b0 = _mm_set_epi64x(m14, m11); b1 = _mm_set_epi64x(m0, m12) +#define LOAD_MSG_10_1(b0, b1) b0 = _mm_set_epi64x(m2, m0); b1 = _mm_set_epi64x(m6, m4) +#define LOAD_MSG_10_2(b0, b1) b0 = _mm_set_epi64x(m3, m1); b1 = _mm_set_epi64x(m7, m5) +#define LOAD_MSG_10_3(b0, b1) b0 = _mm_set_epi64x(m10, m8); b1 = _mm_set_epi64x(m14, m12) +#define LOAD_MSG_10_4(b0, b1) b0 = _mm_set_epi64x(m11, m9); b1 = _mm_set_epi64x(m15, m13) +#define LOAD_MSG_11_1(b0, b1) b0 = _mm_set_epi64x(m4, m14); b1 = _mm_set_epi64x(m13, m9) +#define LOAD_MSG_11_2(b0, b1) b0 = _mm_set_epi64x(m8, m10); b1 = _mm_set_epi64x(m6, m15) +#define LOAD_MSG_11_3(b0, b1) b0 = _mm_set_epi64x(m0, m1); b1 = _mm_set_epi64x(m5, m11) +#define LOAD_MSG_11_4(b0, b1) b0 = _mm_set_epi64x(m2, m12); b1 = _mm_set_epi64x(m3, m7) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h new file mode 100644 index 0000000..7c7f89f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h @@ -0,0 +1,400 @@ +/* + BLAKE2 reference source code package - optimized C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along with + this software. If not, see . +*/ + +#ifndef blake2b_load_sse41_H +#define blake2b_load_sse41_H + +#define LOAD_MSG_0_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m0, m1); \ +b1 = _mm_unpacklo_epi64(m2, m3); \ +} while(0) + + +#define LOAD_MSG_0_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m0, m1); \ +b1 = _mm_unpackhi_epi64(m2, m3); \ +} while(0) + + +#define LOAD_MSG_0_3(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m4, m5); \ +b1 = _mm_unpacklo_epi64(m6, m7); \ +} while(0) + + +#define LOAD_MSG_0_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m4, m5); \ +b1 = _mm_unpackhi_epi64(m6, m7); \ +} while(0) + + +#define LOAD_MSG_1_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m7, m2); \ +b1 = _mm_unpackhi_epi64(m4, m6); \ +} while(0) + + +#define LOAD_MSG_1_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m5, m4); \ +b1 = _mm_alignr_epi8(m3, m7, 8); \ +} while(0) + + +#define LOAD_MSG_1_3(b0, b1) \ +do \ +{ \ +b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ +b1 = _mm_unpackhi_epi64(m5, m2); \ +} while(0) + + +#define LOAD_MSG_1_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m6, m1); \ +b1 = _mm_unpackhi_epi64(m3, m1); \ +} while(0) + + +#define LOAD_MSG_2_1(b0, b1) \ +do \ +{ \ +b0 = _mm_alignr_epi8(m6, m5, 8); \ +b1 = _mm_unpackhi_epi64(m2, m7); \ +} while(0) + + +#define LOAD_MSG_2_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m4, m0); \ +b1 = _mm_blend_epi16(m1, m6, 0xF0); \ +} while(0) + + +#define LOAD_MSG_2_3(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m5, m1, 0xF0); \ +b1 = _mm_unpackhi_epi64(m3, m4); \ +} while(0) + + +#define LOAD_MSG_2_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m7, m3); \ +b1 = _mm_alignr_epi8(m2, m0, 8); \ +} while(0) + + +#define LOAD_MSG_3_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m3, m1); \ +b1 = _mm_unpackhi_epi64(m6, m5); \ +} while(0) + + +#define LOAD_MSG_3_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m4, m0); \ +b1 = _mm_unpacklo_epi64(m6, m7); \ +} while(0) + + +#define LOAD_MSG_3_3(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m1, m2, 0xF0); \ +b1 = _mm_blend_epi16(m2, m7, 0xF0); \ +} while(0) + + +#define LOAD_MSG_3_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m3, m5); \ +b1 = _mm_unpacklo_epi64(m0, m4); \ +} while(0) + + +#define LOAD_MSG_4_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m4, m2); \ +b1 = _mm_unpacklo_epi64(m1, m5); \ +} while(0) + + +#define LOAD_MSG_4_2(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m0, m3, 0xF0); \ +b1 = _mm_blend_epi16(m2, m7, 0xF0); \ +} while(0) + + +#define LOAD_MSG_4_3(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m7, m5, 0xF0); \ +b1 = _mm_blend_epi16(m3, m1, 0xF0); \ +} while(0) + + +#define LOAD_MSG_4_4(b0, b1) \ +do \ +{ \ +b0 = _mm_alignr_epi8(m6, m0, 8); \ +b1 = _mm_blend_epi16(m4, m6, 0xF0); \ +} while(0) + + +#define LOAD_MSG_5_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m1, m3); \ +b1 = _mm_unpacklo_epi64(m0, m4); \ +} while(0) + + +#define LOAD_MSG_5_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m6, m5); \ +b1 = _mm_unpackhi_epi64(m5, m1); \ +} while(0) + + +#define LOAD_MSG_5_3(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m2, m3, 0xF0); \ +b1 = _mm_unpackhi_epi64(m7, m0); \ +} while(0) + + +#define LOAD_MSG_5_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m6, m2); \ +b1 = _mm_blend_epi16(m7, m4, 0xF0); \ +} while(0) + + +#define LOAD_MSG_6_1(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m6, m0, 0xF0); \ +b1 = _mm_unpacklo_epi64(m7, m2); \ +} while(0) + + +#define LOAD_MSG_6_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m2, m7); \ +b1 = _mm_alignr_epi8(m5, m6, 8); \ +} while(0) + + +#define LOAD_MSG_6_3(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m0, m3); \ +b1 = _mm_shuffle_epi32(m4, _MM_SHUFFLE(1,0,3,2)); \ +} while(0) + + +#define LOAD_MSG_6_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m3, m1); \ +b1 = _mm_blend_epi16(m1, m5, 0xF0); \ +} while(0) + + +#define LOAD_MSG_7_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m6, m3); \ +b1 = _mm_blend_epi16(m6, m1, 0xF0); \ +} while(0) + + +#define LOAD_MSG_7_2(b0, b1) \ +do \ +{ \ +b0 = _mm_alignr_epi8(m7, m5, 8); \ +b1 = _mm_unpackhi_epi64(m0, m4); \ +} while(0) + + +#define LOAD_MSG_7_3(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m2, m7); \ +b1 = _mm_unpacklo_epi64(m4, m1); \ +} while(0) + + +#define LOAD_MSG_7_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m0, m2); \ +b1 = _mm_unpacklo_epi64(m3, m5); \ +} while(0) + + +#define LOAD_MSG_8_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m3, m7); \ +b1 = _mm_alignr_epi8(m0, m5, 8); \ +} while(0) + + +#define LOAD_MSG_8_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m7, m4); \ +b1 = _mm_alignr_epi8(m4, m1, 8); \ +} while(0) + + +#define LOAD_MSG_8_3(b0, b1) \ +do \ +{ \ +b0 = m6; \ +b1 = _mm_alignr_epi8(m5, m0, 8); \ +} while(0) + + +#define LOAD_MSG_8_4(b0, b1) \ +do \ +{ \ +b0 = _mm_blend_epi16(m1, m3, 0xF0); \ +b1 = m2; \ +} while(0) + + +#define LOAD_MSG_9_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m5, m4); \ +b1 = _mm_unpackhi_epi64(m3, m0); \ +} while(0) + + +#define LOAD_MSG_9_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m1, m2); \ +b1 = _mm_blend_epi16(m3, m2, 0xF0); \ +} while(0) + + +#define LOAD_MSG_9_3(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m7, m4); \ +b1 = _mm_unpackhi_epi64(m1, m6); \ +} while(0) + + +#define LOAD_MSG_9_4(b0, b1) \ +do \ +{ \ +b0 = _mm_alignr_epi8(m7, m5, 8); \ +b1 = _mm_unpacklo_epi64(m6, m0); \ +} while(0) + + +#define LOAD_MSG_10_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m0, m1); \ +b1 = _mm_unpacklo_epi64(m2, m3); \ +} while(0) + + +#define LOAD_MSG_10_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m0, m1); \ +b1 = _mm_unpackhi_epi64(m2, m3); \ +} while(0) + + +#define LOAD_MSG_10_3(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m4, m5); \ +b1 = _mm_unpacklo_epi64(m6, m7); \ +} while(0) + + +#define LOAD_MSG_10_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpackhi_epi64(m4, m5); \ +b1 = _mm_unpackhi_epi64(m6, m7); \ +} while(0) + + +#define LOAD_MSG_11_1(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m7, m2); \ +b1 = _mm_unpackhi_epi64(m4, m6); \ +} while(0) + + +#define LOAD_MSG_11_2(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m5, m4); \ +b1 = _mm_alignr_epi8(m3, m7, 8); \ +} while(0) + + +#define LOAD_MSG_11_3(b0, b1) \ +do \ +{ \ +b0 = _mm_shuffle_epi32(m0, _MM_SHUFFLE(1,0,3,2)); \ +b1 = _mm_unpackhi_epi64(m5, m2); \ +} while(0) + + +#define LOAD_MSG_11_4(b0, b1) \ +do \ +{ \ +b0 = _mm_unpacklo_epi64(m6, m1); \ +b1 = _mm_unpackhi_epi64(m3, m1); \ +} while(0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c new file mode 100644 index 0000000..d8a7646 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c @@ -0,0 +1,456 @@ +/* + BLAKE2 reference source code package - C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along with + this software. If not, see . +*/ + +#include +#include +#include +#include + +#include "blake2.h" +#include "blake2-impl.h" +#include "runtime.h" +#include "private/common.h" + +#ifdef HAVE_TI_MODE +# if defined(__SIZEOF_INT128__) +typedef unsigned __int128 uint128_t; +# else +typedef unsigned uint128_t __attribute__ ((mode(TI))); +# endif +#endif + +static blake2b_compress_fn blake2b_compress = blake2b_compress_ref; + +static const uint64_t blake2b_IV[8] = +{ + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL +}; + +/* LCOV_EXCL_START */ +static inline int blake2b_set_lastnode( blake2b_state *S ) +{ + S->f[1] = -1; + return 0; +} +/* LCOV_EXCL_STOP */ +#if 0 +static inline int blake2b_clear_lastnode( blake2b_state *S ) +{ + S->f[1] = 0; + return 0; +} +#endif + +static inline int blake2b_is_lastblock( const blake2b_state *S ) +{ + return S->f[0] != 0; +} + +static inline int blake2b_set_lastblock( blake2b_state *S ) +{ + if( S->last_node ) blake2b_set_lastnode( S ); + + S->f[0] = -1; + return 0; +} +#if 0 +static inline int blake2b_clear_lastblock( blake2b_state *S ) +{ + if( S->last_node ) blake2b_clear_lastnode( S ); + + S->f[0] = 0; + return 0; +} +#endif +static inline int blake2b_increment_counter( blake2b_state *S, const uint64_t inc ) +{ +#ifdef HAVE_TI_MODE + uint128_t t = ( ( uint128_t )S->t[1] << 64 ) | S->t[0]; + t += inc; + S->t[0] = ( uint64_t )( t >> 0 ); + S->t[1] = ( uint64_t )( t >> 64 ); +#else + S->t[0] += inc; + S->t[1] += ( S->t[0] < inc ); +#endif + return 0; +} + +/* Parameter-related functions */ +#if 0 +/* Redundant: digest length is directly set in blake2b_init(), blake2b_init_salt_personal(), + * blake2b_init_key() and blake2b_init_key_salt_personal() */ +static inline int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t digest_length ) +{ + P->digest_length = digest_length; + return 0; +} + +static inline int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout ) +{ + P->fanout = fanout; + return 0; +} + +static inline int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth ) +{ + P->depth = depth; + return 0; +} + +static inline int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t leaf_length ) +{ + STORE32_LE( P->leaf_length, leaf_length ); + return 0; +} + +static inline int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t node_offset ) +{ + STORE64_LE( P->node_offset, node_offset ); + return 0; +} + +static inline int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth ) +{ + P->node_depth = node_depth; + return 0; +} + +static inline int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t inner_length ) +{ + P->inner_length = inner_length; + return 0; +} +#endif +static inline int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES] ) +{ + memcpy( P->salt, salt, BLAKE2B_SALTBYTES ); + return 0; +} + +static inline int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES] ) +{ + memcpy( P->personal, personal, BLAKE2B_PERSONALBYTES ); + return 0; +} + +static inline int blake2b_init0( blake2b_state *S ) +{ + int i; + memset( S, 0, sizeof( blake2b_state ) ); + + for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i]; + + return 0; +} + +/* init xors IV with input parameter block */ +int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) +{ + size_t i; + const uint8_t *p; + + (void) sizeof(int[sizeof *P == 64 ? 1 : -1]); + blake2b_init0( S ); + p = ( const uint8_t * )( P ); + + /* IV XOR ParamBlock */ + for( i = 0; i < 8; ++i ) + S->h[i] ^= LOAD64_LE( p + sizeof( S->h[i] ) * i ); + + return 0; +} + +int blake2b_init( blake2b_state *S, const uint8_t outlen ) +{ + blake2b_param P[1]; + + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) abort(); + + P->digest_length = outlen; + P->key_length = 0; + P->fanout = 1; + P->depth = 1; + STORE32_LE( P->leaf_length, 0 ); + STORE64_LE( P->node_offset, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); + return blake2b_init_param( S, P ); +} + +int blake2b_init_salt_personal( blake2b_state *S, const uint8_t outlen, + const void *salt, const void *personal ) +{ + blake2b_param P[1]; + + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) abort(); + + P->digest_length = outlen; + P->key_length = 0; + P->fanout = 1; + P->depth = 1; + STORE32_LE( P->leaf_length, 0 ); + STORE64_LE( P->node_offset, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + if (salt != NULL) { + blake2b_param_set_salt( P, (const uint8_t *) salt ); + } else { + memset( P->salt, 0, sizeof( P->salt ) ); + } + if (personal != NULL) { + blake2b_param_set_personal( P, (const uint8_t *) personal ); + } else { + memset( P->personal, 0, sizeof( P->personal ) ); + } + return blake2b_init_param( S, P ); +} + +int blake2b_init_key( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen ) +{ + blake2b_param P[1]; + + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) abort(); + + if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) abort(); + + P->digest_length = outlen; + P->key_length = keylen; + P->fanout = 1; + P->depth = 1; + STORE32_LE( P->leaf_length, 0 ); + STORE64_LE( P->node_offset, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + memset( P->salt, 0, sizeof( P->salt ) ); + memset( P->personal, 0, sizeof( P->personal ) ); + + if( blake2b_init_param( S, P ) < 0 ) abort(); + + { + uint8_t block[BLAKE2B_BLOCKBYTES]; + memset( block, 0, BLAKE2B_BLOCKBYTES ); + memcpy( block, key, keylen ); + blake2b_update( S, block, BLAKE2B_BLOCKBYTES ); + secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ + } + return 0; +} + +int blake2b_init_key_salt_personal( blake2b_state *S, const uint8_t outlen, const void *key, const uint8_t keylen, + const void *salt, const void *personal ) +{ + blake2b_param P[1]; + + if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) abort(); + + if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) abort(); + + P->digest_length = outlen; + P->key_length = keylen; + P->fanout = 1; + P->depth = 1; + STORE32_LE( P->leaf_length, 0 ); + STORE64_LE( P->node_offset, 0 ); + P->node_depth = 0; + P->inner_length = 0; + memset( P->reserved, 0, sizeof( P->reserved ) ); + if (salt != NULL) { + blake2b_param_set_salt( P, (const uint8_t *) salt ); + } else { + memset( P->salt, 0, sizeof( P->salt ) ); + } + if (personal != NULL) { + blake2b_param_set_personal( P, (const uint8_t *) personal ); + } else { + memset( P->personal, 0, sizeof( P->personal ) ); + } + + if( blake2b_init_param( S, P ) < 0 ) abort(); + + { + uint8_t block[BLAKE2B_BLOCKBYTES]; + memset( block, 0, BLAKE2B_BLOCKBYTES ); + memcpy( block, key, keylen ); + blake2b_update( S, block, BLAKE2B_BLOCKBYTES ); + secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */ + } + return 0; +} + +/* inlen now in bytes */ +int blake2b_update( blake2b_state *S, const uint8_t *in, uint64_t inlen ) +{ + while( inlen > 0 ) + { + size_t left = S->buflen; + size_t fill = 2 * BLAKE2B_BLOCKBYTES - left; + + if( inlen > fill ) + { + memcpy( S->buf + left, in, fill ); /* Fill buffer */ + S->buflen += fill; + blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); + blake2b_compress( S, S->buf ); /* Compress */ + memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); /* Shift buffer left */ + S->buflen -= BLAKE2B_BLOCKBYTES; + in += fill; + inlen -= fill; + } + else /* inlen <= fill */ + { + memcpy( S->buf + left, in, inlen ); + S->buflen += inlen; /* Be lazy, do not compress */ + in += inlen; + inlen -= inlen; + } + } + + return 0; +} + +int blake2b_final( blake2b_state *S, uint8_t *out, uint8_t outlen ) +{ + if( !outlen || outlen > BLAKE2B_OUTBYTES ) { + abort(); /* LCOV_EXCL_LINE */ + } + if( blake2b_is_lastblock( S ) ) { + return -1; + } + if( S->buflen > BLAKE2B_BLOCKBYTES ) + { + blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES ); + blake2b_compress( S, S->buf ); + S->buflen -= BLAKE2B_BLOCKBYTES; + assert( S->buflen <= BLAKE2B_BLOCKBYTES ); + memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, S->buflen ); + } + + blake2b_increment_counter( S, S->buflen ); + blake2b_set_lastblock( S ); + memset( S->buf + S->buflen, 0, 2 * BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */ + blake2b_compress( S, S->buf ); + +#ifdef NATIVE_LITTLE_ENDIAN + memcpy( out, &S->h[0], outlen ); +#else + { + uint8_t buffer[BLAKE2B_OUTBYTES]; + int i; + + for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */ + STORE64_LE( buffer + sizeof( S->h[i] ) * i, S->h[i] ); + memcpy( out, buffer, outlen ); + } +#endif + return 0; +} + +/* inlen, at least, should be uint64_t. Others can be size_t. */ +int blake2b( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen ) +{ + blake2b_state S[1]; + + /* Verify parameters */ + if( NULL == in && inlen > 0 ) abort(); + + if( NULL == out ) abort(); + + if( !outlen || outlen > BLAKE2B_OUTBYTES ) abort(); + + if( NULL == key && keylen > 0 ) abort(); + + if( keylen > BLAKE2B_KEYBYTES ) abort(); + + if( keylen > 0 ) + { + if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) abort(); + } + else + { + if( blake2b_init( S, outlen ) < 0 ) abort(); + } + + blake2b_update( S, ( const uint8_t * )in, inlen ); + blake2b_final( S, out, outlen ); + return 0; +} + +int blake2b_salt_personal( uint8_t *out, const void *in, const void *key, const uint8_t outlen, const uint64_t inlen, uint8_t keylen, + const void *salt, const void *personal ) +{ + blake2b_state S[1]; + + /* Verify parameters */ + if( NULL == in && inlen > 0 ) abort(); + + if( NULL == out ) abort(); + + if( !outlen || outlen > BLAKE2B_OUTBYTES ) abort(); + + if( NULL == key && keylen > 0 ) abort(); + + if( keylen > BLAKE2B_KEYBYTES ) abort(); + + if( keylen > 0 ) + { + if( blake2b_init_key_salt_personal( S, outlen, key, keylen, salt, personal ) < 0 ) abort(); + } + else + { + if( blake2b_init_salt_personal( S, outlen, salt, personal ) < 0 ) abort(); + } + + blake2b_update( S, ( const uint8_t * )in, inlen ); + blake2b_final( S, out, outlen ); + return 0; +} + +int +blake2b_pick_best_implementation(void) +{ +/* LCOV_EXCL_START */ +#if (defined(HAVE_AVX2INTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64)) && _MSC_VER >= 1700) + if (sodium_runtime_has_avx2()) { + blake2b_compress = blake2b_compress_avx2; + return 0; + } +#endif +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + if (sodium_runtime_has_sse41()) { + blake2b_compress = blake2b_compress_sse41; + return 0; + } +#endif +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64))) + if (sodium_runtime_has_ssse3()) { + blake2b_compress = blake2b_compress_ssse3; + return 0; + } +#endif + blake2b_compress = blake2b_compress_ref; + + return 0; +/* LCOV_EXCL_STOP */ +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c new file mode 100644 index 0000000..1d6ca03 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c @@ -0,0 +1,114 @@ + +#include +#include +#include + +#include "crypto_generichash_blake2b.h" +#include "blake2.h" + +int +crypto_generichash_blake2b(unsigned char *out, size_t outlen, + const unsigned char *in, unsigned long long inlen, + const unsigned char *key, size_t keylen) +{ + if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES || + keylen > BLAKE2B_KEYBYTES || inlen > UINT64_MAX) { + return -1; + } + assert(outlen <= UINT8_MAX); + assert(keylen <= UINT8_MAX); + + return blake2b((uint8_t *) out, in, key, + (uint8_t) outlen, (uint64_t) inlen, (uint8_t) keylen); +} + +int +crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen, + const unsigned char *in, unsigned long long inlen, + const unsigned char *key, size_t keylen, + const unsigned char *salt, + const unsigned char *personal) +{ + if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES || + keylen > BLAKE2B_KEYBYTES || inlen > UINT64_MAX) { + return -1; + } + assert(outlen <= UINT8_MAX); + assert(keylen <= UINT8_MAX); + + return blake2b_salt_personal((uint8_t *) out, in, key, + (uint8_t) outlen, (uint64_t) inlen, (uint8_t) keylen, + salt, personal); +} + +int +crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen) +{ + if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES || + keylen > BLAKE2B_KEYBYTES) { + return -1; + } + assert(outlen <= UINT8_MAX); + assert(keylen <= UINT8_MAX); + if (key == NULL || keylen <= 0U) { + if (blake2b_init(state, (uint8_t) outlen) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + } else if (blake2b_init_key(state, (uint8_t) outlen, key, + (uint8_t) keylen) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + return 0; +} + +int +crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen, + const unsigned char *salt, + const unsigned char *personal) +{ + if (outlen <= 0U || outlen > BLAKE2B_OUTBYTES || + keylen > BLAKE2B_KEYBYTES) { + return -1; + } + assert(outlen <= UINT8_MAX); + assert(keylen <= UINT8_MAX); + if (key == NULL || keylen <= 0U) { + if (blake2b_init_salt_personal(state, (uint8_t) outlen, + salt, personal) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + } else if (blake2b_init_key_salt_personal(state, + (uint8_t) outlen, key, + (uint8_t) keylen, + salt, personal) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + return 0; +} + +int +crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + return blake2b_update(state, (const uint8_t *) in, (uint64_t) inlen); +} + +int +crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state, + unsigned char *out, + const size_t outlen) +{ + assert(outlen <= UINT8_MAX); + return blake2b_final(state, (uint8_t *) out, (uint8_t) outlen); +} + +int +_crypto_generichash_blake2b_pick_best_implementation(void) +{ + return blake2b_pick_best_implementation(); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c b/Example/Pods/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c new file mode 100644 index 0000000..ffe2f50 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c @@ -0,0 +1,84 @@ + +#include "crypto_generichash.h" + +size_t +crypto_generichash_bytes_min(void) +{ + return crypto_generichash_BYTES_MIN; +} + +size_t +crypto_generichash_bytes_max(void) +{ + return crypto_generichash_BYTES_MAX; +} + +size_t +crypto_generichash_bytes(void) +{ + return crypto_generichash_BYTES; +} + +size_t +crypto_generichash_keybytes_min(void) +{ + return crypto_generichash_KEYBYTES_MIN; +} + +size_t +crypto_generichash_keybytes_max(void) +{ + return crypto_generichash_KEYBYTES_MAX; +} + +size_t +crypto_generichash_keybytes(void) +{ + return crypto_generichash_KEYBYTES; +} + +const char * +crypto_generichash_primitive(void) +{ + return crypto_generichash_PRIMITIVE; +} + +size_t +crypto_generichash_statebytes(void) +{ + return (sizeof(crypto_generichash_state) + (size_t) 63U) & ~(size_t) 63U; +} + +int +crypto_generichash(unsigned char *out, size_t outlen, const unsigned char *in, + unsigned long long inlen, const unsigned char *key, + size_t keylen) +{ + return crypto_generichash_blake2b(out, outlen, in, inlen, key, keylen); +} + +int +crypto_generichash_init(crypto_generichash_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen) +{ + return crypto_generichash_blake2b_init + ((crypto_generichash_blake2b_state *) state, key, keylen, outlen); +} + +int +crypto_generichash_update(crypto_generichash_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + return crypto_generichash_blake2b_update + ((crypto_generichash_blake2b_state *) state, in, inlen); +} + +int +crypto_generichash_final(crypto_generichash_state *state, + unsigned char *out, const size_t outlen) +{ + return crypto_generichash_blake2b_final + ((crypto_generichash_blake2b_state *) state, out, outlen); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_hash/crypto_hash.c b/Example/Pods/libsodium/src/libsodium/crypto_hash/crypto_hash.c new file mode 100644 index 0000000..855c560 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_hash/crypto_hash.c @@ -0,0 +1,20 @@ + +#include "crypto_hash.h" + +size_t +crypto_hash_bytes(void) +{ + return crypto_hash_BYTES; +} + +int +crypto_hash(unsigned char *out, const unsigned char *in, + unsigned long long inlen) +{ + return crypto_hash_sha512(out, in, inlen); +} + +const char * +crypto_hash_primitive(void) { + return crypto_hash_PRIMITIVE; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256.c b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256.c new file mode 100644 index 0000000..a766297 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256.c @@ -0,0 +1,269 @@ + +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include "crypto_hash_sha256.h" +#include "utils.h" +#include "private/common.h" + +#include + +#include +#include +#include +#include + +static void +be32enc_vect(unsigned char *dst, const uint32_t *src, size_t len) +{ + size_t i; + + for (i = 0; i < len / 4; i++) { + STORE32_BE(dst + i * 4, src[i]); + } +} + +static void +be32dec_vect(uint32_t *dst, const unsigned char *src, size_t len) +{ + size_t i; + + for (i = 0; i < len / 4; i++) { + dst[i] = LOAD32_BE(src + i * 4); + } +} + +#define Ch(x, y, z) ((x & (y ^ z)) ^ z) +#define Maj(x, y, z) ((x & (y | z)) | (y & z)) +#define SHR(x, n) (x >> n) +#define ROTR(x, n) ((x >> n) | (x << (32 - n))) +#define S0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) +#define S1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) +#define s0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3)) +#define s1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10)) + +#define RND(a, b, c, d, e, f, g, h, k) \ + t0 = h + S1(e) + Ch(e, f, g) + k; \ + t1 = S0(a) + Maj(a, b, c); \ + d += t0; \ + h = t0 + t1; + +#define RNDr(S, W, i, k) \ + RND(S[(64 - i) % 8], S[(65 - i) % 8], \ + S[(66 - i) % 8], S[(67 - i) % 8], \ + S[(68 - i) % 8], S[(69 - i) % 8], \ + S[(70 - i) % 8], S[(71 - i) % 8], \ + W[i] + k) + +static void +SHA256_Transform(uint32_t *state, const unsigned char block[64]) +{ + uint32_t W[64]; + uint32_t S[8]; + uint32_t t0, t1; + int i; + + be32dec_vect(W, block, 64); + for (i = 16; i < 64; i++) { + W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16]; + } + + memcpy(S, state, 32); + + RNDr(S, W, 0, 0x428a2f98); + RNDr(S, W, 1, 0x71374491); + RNDr(S, W, 2, 0xb5c0fbcf); + RNDr(S, W, 3, 0xe9b5dba5); + RNDr(S, W, 4, 0x3956c25b); + RNDr(S, W, 5, 0x59f111f1); + RNDr(S, W, 6, 0x923f82a4); + RNDr(S, W, 7, 0xab1c5ed5); + RNDr(S, W, 8, 0xd807aa98); + RNDr(S, W, 9, 0x12835b01); + RNDr(S, W, 10, 0x243185be); + RNDr(S, W, 11, 0x550c7dc3); + RNDr(S, W, 12, 0x72be5d74); + RNDr(S, W, 13, 0x80deb1fe); + RNDr(S, W, 14, 0x9bdc06a7); + RNDr(S, W, 15, 0xc19bf174); + RNDr(S, W, 16, 0xe49b69c1); + RNDr(S, W, 17, 0xefbe4786); + RNDr(S, W, 18, 0x0fc19dc6); + RNDr(S, W, 19, 0x240ca1cc); + RNDr(S, W, 20, 0x2de92c6f); + RNDr(S, W, 21, 0x4a7484aa); + RNDr(S, W, 22, 0x5cb0a9dc); + RNDr(S, W, 23, 0x76f988da); + RNDr(S, W, 24, 0x983e5152); + RNDr(S, W, 25, 0xa831c66d); + RNDr(S, W, 26, 0xb00327c8); + RNDr(S, W, 27, 0xbf597fc7); + RNDr(S, W, 28, 0xc6e00bf3); + RNDr(S, W, 29, 0xd5a79147); + RNDr(S, W, 30, 0x06ca6351); + RNDr(S, W, 31, 0x14292967); + RNDr(S, W, 32, 0x27b70a85); + RNDr(S, W, 33, 0x2e1b2138); + RNDr(S, W, 34, 0x4d2c6dfc); + RNDr(S, W, 35, 0x53380d13); + RNDr(S, W, 36, 0x650a7354); + RNDr(S, W, 37, 0x766a0abb); + RNDr(S, W, 38, 0x81c2c92e); + RNDr(S, W, 39, 0x92722c85); + RNDr(S, W, 40, 0xa2bfe8a1); + RNDr(S, W, 41, 0xa81a664b); + RNDr(S, W, 42, 0xc24b8b70); + RNDr(S, W, 43, 0xc76c51a3); + RNDr(S, W, 44, 0xd192e819); + RNDr(S, W, 45, 0xd6990624); + RNDr(S, W, 46, 0xf40e3585); + RNDr(S, W, 47, 0x106aa070); + RNDr(S, W, 48, 0x19a4c116); + RNDr(S, W, 49, 0x1e376c08); + RNDr(S, W, 50, 0x2748774c); + RNDr(S, W, 51, 0x34b0bcb5); + RNDr(S, W, 52, 0x391c0cb3); + RNDr(S, W, 53, 0x4ed8aa4a); + RNDr(S, W, 54, 0x5b9cca4f); + RNDr(S, W, 55, 0x682e6ff3); + RNDr(S, W, 56, 0x748f82ee); + RNDr(S, W, 57, 0x78a5636f); + RNDr(S, W, 58, 0x84c87814); + RNDr(S, W, 59, 0x8cc70208); + RNDr(S, W, 60, 0x90befffa); + RNDr(S, W, 61, 0xa4506ceb); + RNDr(S, W, 62, 0xbef9a3f7); + RNDr(S, W, 63, 0xc67178f2); + + for (i = 0; i < 8; i++) { + state[i] += S[i]; + } + + sodium_memzero((void *) W, sizeof W); + sodium_memzero((void *) S, sizeof S); + sodium_memzero((void *) &t0, sizeof t0); + sodium_memzero((void *) &t1, sizeof t1); +} + +static unsigned char PAD[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static void +SHA256_Pad(crypto_hash_sha256_state *state) +{ + unsigned char len[8]; + uint32_t r, plen; + + STORE64_BE(len, state->count); + + r = (state->count >> 3) & 0x3f; + plen = (r < 56) ? (56 - r) : (120 - r); + crypto_hash_sha256_update(state, PAD, (unsigned long long) plen); + + crypto_hash_sha256_update(state, len, 8); +} + +int +crypto_hash_sha256_init(crypto_hash_sha256_state *state) +{ + static const uint32_t sha256_initstate[8] = { + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + }; + + state->count = (uint64_t) 0U; + memcpy(state->state, sha256_initstate, sizeof sha256_initstate); + + return 0; +} + +int +crypto_hash_sha256_update(crypto_hash_sha256_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + unsigned long long i; + uint32_t r; + + if (inlen <= 0U) { + return 0; + } + r = (state->count >> 3) & 0x3f; + state->count += (uint64_t)(inlen) << 3; + + if (inlen < 64 - r) { + for (i = 0; i < inlen; i++) { + state->buf[r + i] = in[i]; + } + return 0; + } + for (i = 0; i < 64 - r; i++) { + state->buf[r + i] = in[i]; + } + SHA256_Transform(state->state, state->buf); + in += 64 - r; + inlen -= 64 - r; + + while (inlen >= 64) { + SHA256_Transform(state->state, in); + in += 64; + inlen -= 64; + } + inlen &= 63; + for (i = 0; i < inlen; i++) { + state->buf[i] = in[i]; + } + return 0; +} + +int +crypto_hash_sha256_final(crypto_hash_sha256_state *state, + unsigned char *out) +{ + SHA256_Pad(state); + be32enc_vect(out, state->state, 32); + sodium_memzero((void *) state, sizeof *state); + + return 0; +} + +int +crypto_hash_sha256(unsigned char *out, const unsigned char *in, + unsigned long long inlen) +{ + crypto_hash_sha256_state state; + + crypto_hash_sha256_init(&state); + crypto_hash_sha256_update(&state, in, inlen); + crypto_hash_sha256_final(&state, out); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256_api.c b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256_api.c new file mode 100644 index 0000000..ca208ff --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256_api.c @@ -0,0 +1,11 @@ +#include "crypto_hash_sha256.h" + +size_t +crypto_hash_sha256_bytes(void) { + return crypto_hash_sha256_BYTES; +} + +size_t +crypto_hash_sha256_statebytes(void) { + return sizeof(crypto_hash_sha256_state); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512.c b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512.c new file mode 100644 index 0000000..2cc7a4d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512.c @@ -0,0 +1,298 @@ + +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include "crypto_hash_sha512.h" +#include "utils.h" +#include "private/common.h" + +#include + +#include +#include +#include +#include + +static void +be64enc_vect(unsigned char *dst, const uint64_t *src, size_t len) +{ + size_t i; + + for (i = 0; i < len / 8; i++) { + STORE64_BE(dst + i * 8, src[i]); + } +} + +static void +be64dec_vect(uint64_t *dst, const unsigned char *src, size_t len) +{ + size_t i; + + for (i = 0; i < len / 8; i++) { + dst[i] = LOAD64_BE(src + i * 8); + } +} + +#define Ch(x, y, z) ((x & (y ^ z)) ^ z) +#define Maj(x, y, z) ((x & (y | z)) | (y & z)) +#define SHR(x, n) (x >> n) +#define ROTR(x, n) ((x >> n) | (x << (64 - n))) +#define S0(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39)) +#define S1(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41)) +#define s0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x, 7)) +#define s1(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6)) + +#define RND(a, b, c, d, e, f, g, h, k) \ + t0 = h + S1(e) + Ch(e, f, g) + k; \ + t1 = S0(a) + Maj(a, b, c); \ + d += t0; \ + h = t0 + t1; + +#define RNDr(S, W, i, k) \ + RND(S[(80 - i) % 8], S[(81 - i) % 8], \ + S[(82 - i) % 8], S[(83 - i) % 8], \ + S[(84 - i) % 8], S[(85 - i) % 8], \ + S[(86 - i) % 8], S[(87 - i) % 8], \ + W[i] + k) + +static void +SHA512_Transform(uint64_t *state, const unsigned char block[128]) +{ + uint64_t W[80]; + uint64_t S[8]; + uint64_t t0, t1; + int i; + + be64dec_vect(W, block, 128); + for (i = 16; i < 80; i++) { + W[i] = s1(W[i - 2]) + W[i - 7] + s0(W[i - 15]) + W[i - 16]; + } + + memcpy(S, state, 64); + + RNDr(S, W, 0, 0x428a2f98d728ae22ULL); + RNDr(S, W, 1, 0x7137449123ef65cdULL); + RNDr(S, W, 2, 0xb5c0fbcfec4d3b2fULL); + RNDr(S, W, 3, 0xe9b5dba58189dbbcULL); + RNDr(S, W, 4, 0x3956c25bf348b538ULL); + RNDr(S, W, 5, 0x59f111f1b605d019ULL); + RNDr(S, W, 6, 0x923f82a4af194f9bULL); + RNDr(S, W, 7, 0xab1c5ed5da6d8118ULL); + RNDr(S, W, 8, 0xd807aa98a3030242ULL); + RNDr(S, W, 9, 0x12835b0145706fbeULL); + RNDr(S, W, 10, 0x243185be4ee4b28cULL); + RNDr(S, W, 11, 0x550c7dc3d5ffb4e2ULL); + RNDr(S, W, 12, 0x72be5d74f27b896fULL); + RNDr(S, W, 13, 0x80deb1fe3b1696b1ULL); + RNDr(S, W, 14, 0x9bdc06a725c71235ULL); + RNDr(S, W, 15, 0xc19bf174cf692694ULL); + RNDr(S, W, 16, 0xe49b69c19ef14ad2ULL); + RNDr(S, W, 17, 0xefbe4786384f25e3ULL); + RNDr(S, W, 18, 0x0fc19dc68b8cd5b5ULL); + RNDr(S, W, 19, 0x240ca1cc77ac9c65ULL); + RNDr(S, W, 20, 0x2de92c6f592b0275ULL); + RNDr(S, W, 21, 0x4a7484aa6ea6e483ULL); + RNDr(S, W, 22, 0x5cb0a9dcbd41fbd4ULL); + RNDr(S, W, 23, 0x76f988da831153b5ULL); + RNDr(S, W, 24, 0x983e5152ee66dfabULL); + RNDr(S, W, 25, 0xa831c66d2db43210ULL); + RNDr(S, W, 26, 0xb00327c898fb213fULL); + RNDr(S, W, 27, 0xbf597fc7beef0ee4ULL); + RNDr(S, W, 28, 0xc6e00bf33da88fc2ULL); + RNDr(S, W, 29, 0xd5a79147930aa725ULL); + RNDr(S, W, 30, 0x06ca6351e003826fULL); + RNDr(S, W, 31, 0x142929670a0e6e70ULL); + RNDr(S, W, 32, 0x27b70a8546d22ffcULL); + RNDr(S, W, 33, 0x2e1b21385c26c926ULL); + RNDr(S, W, 34, 0x4d2c6dfc5ac42aedULL); + RNDr(S, W, 35, 0x53380d139d95b3dfULL); + RNDr(S, W, 36, 0x650a73548baf63deULL); + RNDr(S, W, 37, 0x766a0abb3c77b2a8ULL); + RNDr(S, W, 38, 0x81c2c92e47edaee6ULL); + RNDr(S, W, 39, 0x92722c851482353bULL); + RNDr(S, W, 40, 0xa2bfe8a14cf10364ULL); + RNDr(S, W, 41, 0xa81a664bbc423001ULL); + RNDr(S, W, 42, 0xc24b8b70d0f89791ULL); + RNDr(S, W, 43, 0xc76c51a30654be30ULL); + RNDr(S, W, 44, 0xd192e819d6ef5218ULL); + RNDr(S, W, 45, 0xd69906245565a910ULL); + RNDr(S, W, 46, 0xf40e35855771202aULL); + RNDr(S, W, 47, 0x106aa07032bbd1b8ULL); + RNDr(S, W, 48, 0x19a4c116b8d2d0c8ULL); + RNDr(S, W, 49, 0x1e376c085141ab53ULL); + RNDr(S, W, 50, 0x2748774cdf8eeb99ULL); + RNDr(S, W, 51, 0x34b0bcb5e19b48a8ULL); + RNDr(S, W, 52, 0x391c0cb3c5c95a63ULL); + RNDr(S, W, 53, 0x4ed8aa4ae3418acbULL); + RNDr(S, W, 54, 0x5b9cca4f7763e373ULL); + RNDr(S, W, 55, 0x682e6ff3d6b2b8a3ULL); + RNDr(S, W, 56, 0x748f82ee5defb2fcULL); + RNDr(S, W, 57, 0x78a5636f43172f60ULL); + RNDr(S, W, 58, 0x84c87814a1f0ab72ULL); + RNDr(S, W, 59, 0x8cc702081a6439ecULL); + RNDr(S, W, 60, 0x90befffa23631e28ULL); + RNDr(S, W, 61, 0xa4506cebde82bde9ULL); + RNDr(S, W, 62, 0xbef9a3f7b2c67915ULL); + RNDr(S, W, 63, 0xc67178f2e372532bULL); + RNDr(S, W, 64, 0xca273eceea26619cULL); + RNDr(S, W, 65, 0xd186b8c721c0c207ULL); + RNDr(S, W, 66, 0xeada7dd6cde0eb1eULL); + RNDr(S, W, 67, 0xf57d4f7fee6ed178ULL); + RNDr(S, W, 68, 0x06f067aa72176fbaULL); + RNDr(S, W, 69, 0x0a637dc5a2c898a6ULL); + RNDr(S, W, 70, 0x113f9804bef90daeULL); + RNDr(S, W, 71, 0x1b710b35131c471bULL); + RNDr(S, W, 72, 0x28db77f523047d84ULL); + RNDr(S, W, 73, 0x32caab7b40c72493ULL); + RNDr(S, W, 74, 0x3c9ebe0a15c9bebcULL); + RNDr(S, W, 75, 0x431d67c49c100d4cULL); + RNDr(S, W, 76, 0x4cc5d4becb3e42b6ULL); + RNDr(S, W, 77, 0x597f299cfc657e2aULL); + RNDr(S, W, 78, 0x5fcb6fab3ad6faecULL); + RNDr(S, W, 79, 0x6c44198c4a475817ULL); + + for (i = 0; i < 8; i++) { + state[i] += S[i]; + } + + sodium_memzero((void *) W, sizeof W); + sodium_memzero((void *) S, sizeof S); + sodium_memzero((void *) &t0, sizeof t0); + sodium_memzero((void *) &t1, sizeof t1); +} + +static unsigned char PAD[128] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static void +SHA512_Pad(crypto_hash_sha512_state *state) +{ + unsigned char len[16]; + uint64_t r, plen; + + be64enc_vect(len, state->count, 16); + + r = (state->count[1] >> 3) & 0x7f; + plen = (r < 112) ? (112 - r) : (240 - r); + crypto_hash_sha512_update(state, PAD, (unsigned long long) plen); + + crypto_hash_sha512_update(state, len, 16); +} + +int +crypto_hash_sha512_init(crypto_hash_sha512_state *state) +{ + static const uint64_t sha512_initstate[8] = { + 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL + }; + + state->count[0] = state->count[1] = (uint64_t) 0U; + memcpy(state->state, sha512_initstate, sizeof sha512_initstate); + + return 0; +} + +int +crypto_hash_sha512_update(crypto_hash_sha512_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + unsigned long long i; + uint64_t bitlen[2]; + uint64_t r; + + r = (state->count[1] >> 3) & 0x7f; + + bitlen[1] = ((uint64_t)inlen) << 3; + bitlen[0] = ((uint64_t)inlen) >> 61; + + /* LCOV_EXCL_START */ + if ((state->count[1] += bitlen[1]) < bitlen[1]) { + state->count[0]++; + } + /* LCOV_EXCL_STOP */ + state->count[0] += bitlen[0]; + + if (inlen < 128 - r) { + for (i = 0; i < inlen; i++) { + state->buf[r + i] = in[i]; + } + return 0; + } + for (i = 0; i < 128 - r; i++) { + state->buf[r + i] = in[i]; + } + SHA512_Transform(state->state, state->buf); + in += 128 - r; + inlen -= 128 - r; + + while (inlen >= 128) { + SHA512_Transform(state->state, in); + in += 128; + inlen -= 128; + } + inlen &= 127; + for (i = 0; i < inlen; i++) { + state->buf[i] = in[i]; + } + return 0; +} + +int +crypto_hash_sha512_final(crypto_hash_sha512_state *state, + unsigned char *out) +{ + SHA512_Pad(state); + be64enc_vect(out, state->state, 64); + sodium_memzero((void *) state, sizeof *state); + + return 0; +} + +int +crypto_hash_sha512(unsigned char *out, const unsigned char *in, + unsigned long long inlen) +{ + crypto_hash_sha512_state state; + + crypto_hash_sha512_init(&state); + crypto_hash_sha512_update(&state, in, inlen); + crypto_hash_sha512_final(&state, out); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512_api.c b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512_api.c new file mode 100644 index 0000000..b2629a8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512_api.c @@ -0,0 +1,11 @@ +#include "crypto_hash_sha512.h" + +size_t +crypto_hash_sha512_bytes(void) { + return crypto_hash_sha512_BYTES; +} + +size_t +crypto_hash_sha512_statebytes(void) { + return sizeof(crypto_hash_sha512_state); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c new file mode 100644 index 0000000..1e90d62 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c @@ -0,0 +1,65 @@ + +#include "crypto_onetimeauth.h" + +size_t +crypto_onetimeauth_statebytes(void) +{ + return sizeof(crypto_onetimeauth_state); +} + +size_t +crypto_onetimeauth_bytes(void) +{ + return crypto_onetimeauth_BYTES; +} + +size_t +crypto_onetimeauth_keybytes(void) +{ + return crypto_onetimeauth_KEYBYTES; +} + +int +crypto_onetimeauth(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + return crypto_onetimeauth_poly1305(out, in, inlen, k); +} + +int +crypto_onetimeauth_verify(const unsigned char *h, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + return crypto_onetimeauth_poly1305_verify(h, in, inlen, k); +} + +int +crypto_onetimeauth_init(crypto_onetimeauth_state *state, + const unsigned char *key) +{ + return crypto_onetimeauth_poly1305_init + ((crypto_onetimeauth_poly1305_state *) state, key); +} + +int +crypto_onetimeauth_update(crypto_onetimeauth_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + return crypto_onetimeauth_poly1305_update + ((crypto_onetimeauth_poly1305_state *) state, in, inlen); +} + +int +crypto_onetimeauth_final(crypto_onetimeauth_state *state, + unsigned char *out) +{ + return crypto_onetimeauth_poly1305_final + ((crypto_onetimeauth_poly1305_state *) state, out); +} + +const char * +crypto_onetimeauth_primitive(void) +{ + return crypto_onetimeauth_PRIMITIVE; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c new file mode 100644 index 0000000..c6206f4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c @@ -0,0 +1,117 @@ + +#include "crypto_verify_16.h" +#include "utils.h" +#include "poly1305_donna.h" +#ifdef HAVE_TI_MODE +# include "poly1305_donna64.h" +#else +# include "poly1305_donna32.h" +#endif +#include "../onetimeauth_poly1305.h" + +static void +poly1305_update(poly1305_state_internal_t *st, const unsigned char *m, + unsigned long long bytes) +{ + unsigned long long i; + + /* handle leftover */ + if (st->leftover) { + unsigned long long want = (poly1305_block_size - st->leftover); + + if (want > bytes) + want = bytes; + for (i = 0; i < want; i++) + st->buffer[st->leftover + i] = m[i]; + bytes -= want; + m += want; + st->leftover += want; + if (st->leftover < poly1305_block_size) + return; + poly1305_blocks(st, st->buffer, poly1305_block_size); + st->leftover = 0; + } + + /* process full blocks */ + if (bytes >= poly1305_block_size) { + unsigned long long want = (bytes & ~(poly1305_block_size - 1)); + + poly1305_blocks(st, m, want); + m += want; + bytes -= want; + } + + /* store leftover */ + if (bytes) { + for (i = 0; i < bytes; i++) { + st->buffer[st->leftover + i] = m[i]; + } + st->leftover += bytes; + } +} + +static int +crypto_onetimeauth_poly1305_donna(unsigned char *out, const unsigned char *m, + unsigned long long inlen, + const unsigned char *key) +{ + CRYPTO_ALIGN(64) poly1305_state_internal_t state; + + poly1305_init(&state, key); + poly1305_update(&state, m, inlen); + poly1305_finish(&state, out); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_donna_init(crypto_onetimeauth_poly1305_state *state, + const unsigned char *key) +{ + (void) sizeof(int[sizeof (crypto_onetimeauth_poly1305_state) >= + sizeof (poly1305_state_internal_t) ? 1 : -1]); + poly1305_init((poly1305_state_internal_t *)(void *) state, key); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_donna_update(crypto_onetimeauth_poly1305_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + poly1305_update((poly1305_state_internal_t *)(void *) state, in, inlen); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_donna_final(crypto_onetimeauth_poly1305_state *state, + unsigned char *out) +{ + poly1305_finish((poly1305_state_internal_t *)(void *) state, out); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_donna_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) +{ + unsigned char correct[16]; + + crypto_onetimeauth_poly1305_donna(correct,in,inlen,k); + + return crypto_verify_16(h,correct); +} + +struct crypto_onetimeauth_poly1305_implementation +crypto_onetimeauth_poly1305_donna_implementation = { + SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_donna, + SODIUM_C99(.onetimeauth_verify =) crypto_onetimeauth_poly1305_donna_verify, + SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_donna_init, + SODIUM_C99(.onetimeauth_update =) crypto_onetimeauth_poly1305_donna_update, + SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_donna_final +}; diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h new file mode 100644 index 0000000..d5e4904 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h @@ -0,0 +1,12 @@ +#ifndef poly1305_donna_H +#define poly1305_donna_H + +#include + +#include "crypto_onetimeauth_poly1305.h" +#include "../onetimeauth_poly1305.h" + +extern struct crypto_onetimeauth_poly1305_implementation + crypto_onetimeauth_poly1305_donna_implementation; + +#endif /* poly1305_donna_H */ diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h new file mode 100644 index 0000000..2fe9088 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h @@ -0,0 +1,188 @@ +/* + poly1305 implementation using 32 bit * 32 bit = 64 bit multiplication and 64 bit addition +*/ + +#if defined(_MSC_VER) +# define POLY1305_NOINLINE __declspec(noinline) +#elif defined(__GNUC__) +# define POLY1305_NOINLINE __attribute__ ((noinline)) +#else +# define POLY1305_NOINLINE +#endif + +#include "private/common.h" + +#define poly1305_block_size 16 + +/* 17 + sizeof(unsigned long long) + 14*sizeof(unsigned long) */ +typedef struct poly1305_state_internal_t { + unsigned long r[5]; + unsigned long h[5]; + unsigned long pad[4]; + unsigned long long leftover; + unsigned char buffer[poly1305_block_size]; + unsigned char final; +} poly1305_state_internal_t; + +static void +poly1305_init(poly1305_state_internal_t *st, const unsigned char key[32]) +{ + /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ + st->r[0] = (LOAD32_LE(&key[ 0]) ) & 0x3ffffff; + st->r[1] = (LOAD32_LE(&key[ 3]) >> 2) & 0x3ffff03; + st->r[2] = (LOAD32_LE(&key[ 6]) >> 4) & 0x3ffc0ff; + st->r[3] = (LOAD32_LE(&key[ 9]) >> 6) & 0x3f03fff; + st->r[4] = (LOAD32_LE(&key[12]) >> 8) & 0x00fffff; + + /* h = 0 */ + st->h[0] = 0; + st->h[1] = 0; + st->h[2] = 0; + st->h[3] = 0; + st->h[4] = 0; + + /* save pad for later */ + st->pad[0] = LOAD32_LE(&key[16]); + st->pad[1] = LOAD32_LE(&key[20]); + st->pad[2] = LOAD32_LE(&key[24]); + st->pad[3] = LOAD32_LE(&key[28]); + + st->leftover = 0; + st->final = 0; +} + +static void +poly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m, unsigned long long bytes) +{ + const unsigned long hibit = (st->final) ? 0UL : (1UL << 24); /* 1 << 128 */ + unsigned long r0,r1,r2,r3,r4; + unsigned long s1,s2,s3,s4; + unsigned long h0,h1,h2,h3,h4; + unsigned long long d0,d1,d2,d3,d4; + unsigned long c; + + r0 = st->r[0]; + r1 = st->r[1]; + r2 = st->r[2]; + r3 = st->r[3]; + r4 = st->r[4]; + + s1 = r1 * 5; + s2 = r2 * 5; + s3 = r3 * 5; + s4 = r4 * 5; + + h0 = st->h[0]; + h1 = st->h[1]; + h2 = st->h[2]; + h3 = st->h[3]; + h4 = st->h[4]; + + while (bytes >= poly1305_block_size) { + /* h += m[i] */ + h0 += (LOAD32_LE(m+ 0) ) & 0x3ffffff; + h1 += (LOAD32_LE(m+ 3) >> 2) & 0x3ffffff; + h2 += (LOAD32_LE(m+ 6) >> 4) & 0x3ffffff; + h3 += (LOAD32_LE(m+ 9) >> 6) & 0x3ffffff; + h4 += (LOAD32_LE(m+12) >> 8) | hibit; + + /* h *= r */ + d0 = ((unsigned long long)h0 * r0) + ((unsigned long long)h1 * s4) + ((unsigned long long)h2 * s3) + ((unsigned long long)h3 * s2) + ((unsigned long long)h4 * s1); + d1 = ((unsigned long long)h0 * r1) + ((unsigned long long)h1 * r0) + ((unsigned long long)h2 * s4) + ((unsigned long long)h3 * s3) + ((unsigned long long)h4 * s2); + d2 = ((unsigned long long)h0 * r2) + ((unsigned long long)h1 * r1) + ((unsigned long long)h2 * r0) + ((unsigned long long)h3 * s4) + ((unsigned long long)h4 * s3); + d3 = ((unsigned long long)h0 * r3) + ((unsigned long long)h1 * r2) + ((unsigned long long)h2 * r1) + ((unsigned long long)h3 * r0) + ((unsigned long long)h4 * s4); + d4 = ((unsigned long long)h0 * r4) + ((unsigned long long)h1 * r3) + ((unsigned long long)h2 * r2) + ((unsigned long long)h3 * r1) + ((unsigned long long)h4 * r0); + + /* (partial) h %= p */ + c = (unsigned long)(d0 >> 26); h0 = (unsigned long)d0 & 0x3ffffff; + d1 += c; c = (unsigned long)(d1 >> 26); h1 = (unsigned long)d1 & 0x3ffffff; + d2 += c; c = (unsigned long)(d2 >> 26); h2 = (unsigned long)d2 & 0x3ffffff; + d3 += c; c = (unsigned long)(d3 >> 26); h3 = (unsigned long)d3 & 0x3ffffff; + d4 += c; c = (unsigned long)(d4 >> 26); h4 = (unsigned long)d4 & 0x3ffffff; + h0 += c * 5; c = (h0 >> 26); h0 = h0 & 0x3ffffff; + h1 += c; + + m += poly1305_block_size; + bytes -= poly1305_block_size; + } + + st->h[0] = h0; + st->h[1] = h1; + st->h[2] = h2; + st->h[3] = h3; + st->h[4] = h4; +} + +static POLY1305_NOINLINE void +poly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16]) +{ + unsigned long h0,h1,h2,h3,h4,c; + unsigned long g0,g1,g2,g3,g4; + unsigned long long f; + unsigned long mask; + + /* process the remaining block */ + if (st->leftover) { + unsigned long long i = st->leftover; + st->buffer[i++] = 1; + for (; i < poly1305_block_size; i++) + st->buffer[i] = 0; + st->final = 1; + poly1305_blocks(st, st->buffer, poly1305_block_size); + } + + /* fully carry h */ + h0 = st->h[0]; + h1 = st->h[1]; + h2 = st->h[2]; + h3 = st->h[3]; + h4 = st->h[4]; + + c = h1 >> 26; h1 = h1 & 0x3ffffff; + h2 += c; c = h2 >> 26; h2 = h2 & 0x3ffffff; + h3 += c; c = h3 >> 26; h3 = h3 & 0x3ffffff; + h4 += c; c = h4 >> 26; h4 = h4 & 0x3ffffff; + h0 += c * 5; c = h0 >> 26; h0 = h0 & 0x3ffffff; + h1 += c; + + /* compute h + -p */ + g0 = h0 + 5; c = g0 >> 26; g0 &= 0x3ffffff; + g1 = h1 + c; c = g1 >> 26; g1 &= 0x3ffffff; + g2 = h2 + c; c = g2 >> 26; g2 &= 0x3ffffff; + g3 = h3 + c; c = g3 >> 26; g3 &= 0x3ffffff; + g4 = h4 + c - (1UL << 26); + + /* select h if h < p, or h + -p if h >= p */ + mask = (g4 >> ((sizeof(unsigned long) * 8) - 1)) - 1; + g0 &= mask; + g1 &= mask; + g2 &= mask; + g3 &= mask; + g4 &= mask; + mask = ~mask; + h0 = (h0 & mask) | g0; + h1 = (h1 & mask) | g1; + h2 = (h2 & mask) | g2; + h3 = (h3 & mask) | g3; + h4 = (h4 & mask) | g4; + + /* h = h % (2^128) */ + h0 = ((h0 ) | (h1 << 26)) & 0xffffffff; + h1 = ((h1 >> 6) | (h2 << 20)) & 0xffffffff; + h2 = ((h2 >> 12) | (h3 << 14)) & 0xffffffff; + h3 = ((h3 >> 18) | (h4 << 8)) & 0xffffffff; + + /* mac = (h + pad) % (2^128) */ + f = (unsigned long long)h0 + st->pad[0] ; h0 = (unsigned long)f; + f = (unsigned long long)h1 + st->pad[1] + (f >> 32); h1 = (unsigned long)f; + f = (unsigned long long)h2 + st->pad[2] + (f >> 32); h2 = (unsigned long)f; + f = (unsigned long long)h3 + st->pad[3] + (f >> 32); h3 = (unsigned long)f; + + STORE32_LE(mac + 0, h0); + STORE32_LE(mac + 4, h1); + STORE32_LE(mac + 8, h2); + STORE32_LE(mac + 12, h3); + + /* zero out the state */ + sodium_memzero((void *)st, sizeof *st); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h new file mode 100644 index 0000000..f797fe7 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h @@ -0,0 +1,181 @@ +/* + poly1305 implementation using 64 bit * 64 bit = 128 bit multiplication and 128 bit addition +*/ + +#if defined(__SIZEOF_INT128__) +typedef unsigned __int128 uint128_t; +#else +typedef unsigned uint128_t __attribute__ ((mode(TI))); +#endif + +#define MUL(out, x, y) out = ((uint128_t)x * y) +#define ADD(out, in) out += in +#define ADDLO(out, in) out += in +#define SHR(in, shift) (unsigned long long)(in >> (shift)) +#define LO(in) (unsigned long long)(in) + +#if defined(_MSC_VER) +# define POLY1305_NOINLINE __declspec(noinline) +#elif defined(__GNUC__) +# define POLY1305_NOINLINE __attribute__ ((noinline)) +#else +# define POLY1305_NOINLINE +#endif + +#include "private/common.h" + +#define poly1305_block_size 16 + +/* 17 + sizeof(unsigned long long) + 8*sizeof(unsigned long long) */ +typedef struct poly1305_state_internal_t { + unsigned long long r[3]; + unsigned long long h[3]; + unsigned long long pad[2]; + unsigned long long leftover; + unsigned char buffer[poly1305_block_size]; + unsigned char final; +} poly1305_state_internal_t; + +static void +poly1305_init(poly1305_state_internal_t *st, const unsigned char key[32]) +{ + unsigned long long t0,t1; + + /* r &= 0xffffffc0ffffffc0ffffffc0fffffff */ + t0 = LOAD64_LE(&key[0]); + t1 = LOAD64_LE(&key[8]); + + st->r[0] = ( t0 ) & 0xffc0fffffff; + st->r[1] = ((t0 >> 44) | (t1 << 20)) & 0xfffffc0ffff; + st->r[2] = ((t1 >> 24) ) & 0x00ffffffc0f; + + /* h = 0 */ + st->h[0] = 0; + st->h[1] = 0; + st->h[2] = 0; + + /* save pad for later */ + st->pad[0] = LOAD64_LE(&key[16]); + st->pad[1] = LOAD64_LE(&key[24]); + + st->leftover = 0; + st->final = 0; +} + +static void +poly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m, unsigned long long bytes) +{ + const unsigned long long hibit = (st->final) ? 0ULL : (1ULL << 40); /* 1 << 128 */ + unsigned long long r0,r1,r2; + unsigned long long s1,s2; + unsigned long long h0,h1,h2; + unsigned long long c; + uint128_t d0,d1,d2,d; + + r0 = st->r[0]; + r1 = st->r[1]; + r2 = st->r[2]; + + h0 = st->h[0]; + h1 = st->h[1]; + h2 = st->h[2]; + + s1 = r1 * (5 << 2); + s2 = r2 * (5 << 2); + + while (bytes >= poly1305_block_size) { + unsigned long long t0,t1; + + /* h += m[i] */ + t0 = LOAD64_LE(&m[0]); + t1 = LOAD64_LE(&m[8]); + + h0 += (( t0 ) & 0xfffffffffff); + h1 += (((t0 >> 44) | (t1 << 20)) & 0xfffffffffff); + h2 += (((t1 >> 24) ) & 0x3ffffffffff) | hibit; + + /* h *= r */ + MUL(d0, h0, r0); MUL(d, h1, s2); ADD(d0, d); MUL(d, h2, s1); ADD(d0, d); + MUL(d1, h0, r1); MUL(d, h1, r0); ADD(d1, d); MUL(d, h2, s2); ADD(d1, d); + MUL(d2, h0, r2); MUL(d, h1, r1); ADD(d2, d); MUL(d, h2, r0); ADD(d2, d); + + /* (partial) h %= p */ + c = SHR(d0, 44); h0 = LO(d0) & 0xfffffffffff; + ADDLO(d1, c); c = SHR(d1, 44); h1 = LO(d1) & 0xfffffffffff; + ADDLO(d2, c); c = SHR(d2, 42); h2 = LO(d2) & 0x3ffffffffff; + h0 += c * 5; c = (h0 >> 44); h0 = h0 & 0xfffffffffff; + h1 += c; + + m += poly1305_block_size; + bytes -= poly1305_block_size; + } + + st->h[0] = h0; + st->h[1] = h1; + st->h[2] = h2; +} + + +static POLY1305_NOINLINE void +poly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16]) +{ + unsigned long long h0,h1,h2,c; + unsigned long long g0,g1,g2; + unsigned long long t0,t1; + + /* process the remaining block */ + if (st->leftover) { + unsigned long long i = st->leftover; + st->buffer[i] = 1; + for (i = i + 1; i < poly1305_block_size; i++) + st->buffer[i] = 0; + st->final = 1; + poly1305_blocks(st, st->buffer, poly1305_block_size); + } + + /* fully carry h */ + h0 = st->h[0]; + h1 = st->h[1]; + h2 = st->h[2]; + + c = (h1 >> 44); h1 &= 0xfffffffffff; + h2 += c; c = (h2 >> 42); h2 &= 0x3ffffffffff; + h0 += c * 5; c = (h0 >> 44); h0 &= 0xfffffffffff; + h1 += c; c = (h1 >> 44); h1 &= 0xfffffffffff; + h2 += c; c = (h2 >> 42); h2 &= 0x3ffffffffff; + h0 += c * 5; c = (h0 >> 44); h0 &= 0xfffffffffff; + h1 += c; + + /* compute h + -p */ + g0 = h0 + 5; c = (g0 >> 44); g0 &= 0xfffffffffff; + g1 = h1 + c; c = (g1 >> 44); g1 &= 0xfffffffffff; + g2 = h2 + c - (1ULL << 42); + + /* select h if h < p, or h + -p if h >= p */ + c = (g2 >> ((sizeof(unsigned long long) * 8) - 1)) - 1; + g0 &= c; + g1 &= c; + g2 &= c; + c = ~c; + h0 = (h0 & c) | g0; + h1 = (h1 & c) | g1; + h2 = (h2 & c) | g2; + + /* h = (h + pad) */ + t0 = st->pad[0]; + t1 = st->pad[1]; + + h0 += (( t0 ) & 0xfffffffffff) ; c = (h0 >> 44); h0 &= 0xfffffffffff; + h1 += (((t0 >> 44) | (t1 << 20)) & 0xfffffffffff) + c; c = (h1 >> 44); h1 &= 0xfffffffffff; + h2 += (((t1 >> 24) ) & 0x3ffffffffff) + c; h2 &= 0x3ffffffffff; + + /* mac = h % (2^128) */ + h0 = ((h0 ) | (h1 << 44)); + h1 = ((h1 >> 20) | (h2 << 24)); + + STORE64_LE(&mac[0], h0); + STORE64_LE(&mac[8], h1); + + /* zero out the state */ + sodium_memzero((void *)st, sizeof *st); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c new file mode 100644 index 0000000..f313363 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c @@ -0,0 +1,71 @@ + +#include "crypto_onetimeauth_poly1305.h" +#include "onetimeauth_poly1305.h" +#include "runtime.h" +#include "donna/poly1305_donna.h" +#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H) +# include "sse2/poly1305_sse2.h" +#endif + +static const crypto_onetimeauth_poly1305_implementation *implementation = + &crypto_onetimeauth_poly1305_donna_implementation; + +int +crypto_onetimeauth_poly1305(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + return implementation->onetimeauth(out, in, inlen, k); +} + +int +crypto_onetimeauth_poly1305_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) +{ + return implementation->onetimeauth_verify(h, in, inlen, k); +} + +int +crypto_onetimeauth_poly1305_init(crypto_onetimeauth_poly1305_state *state, + const unsigned char *key) +{ + return implementation->onetimeauth_init(state, key); +} + +int +crypto_onetimeauth_poly1305_update(crypto_onetimeauth_poly1305_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + return implementation->onetimeauth_update(state, in, inlen); +} + +int +crypto_onetimeauth_poly1305_final(crypto_onetimeauth_poly1305_state *state, + unsigned char *out) +{ + return implementation->onetimeauth_final(state, out); +} + +size_t +crypto_onetimeauth_poly1305_bytes(void) { + return crypto_onetimeauth_poly1305_BYTES; +} + +size_t +crypto_onetimeauth_poly1305_keybytes(void) { + return crypto_onetimeauth_poly1305_KEYBYTES; +} + +int +_crypto_onetimeauth_poly1305_pick_best_implementation(void) +{ + implementation = &crypto_onetimeauth_poly1305_donna_implementation; +#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H) + if (sodium_runtime_has_sse2()) { + implementation = &crypto_onetimeauth_poly1305_sse2_implementation; + } +#endif + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h new file mode 100644 index 0000000..0dca396 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h @@ -0,0 +1,23 @@ + +#ifndef onetimeauth_poly1305_H +#define onetimeauth_poly1305_H + +typedef struct crypto_onetimeauth_poly1305_implementation { + int (*onetimeauth)(unsigned char *out, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k); + int (*onetimeauth_verify)(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k); + int (*onetimeauth_init)(crypto_onetimeauth_poly1305_state *state, + const unsigned char *key); + int (*onetimeauth_update)(crypto_onetimeauth_poly1305_state *state, + const unsigned char *in, + unsigned long long inlen); + int (*onetimeauth_final)(crypto_onetimeauth_poly1305_state *state, + unsigned char *out); +} crypto_onetimeauth_poly1305_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c new file mode 100644 index 0000000..ef5b17f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c @@ -0,0 +1,706 @@ + +#include +#include + +#include "crypto_verify_16.h" +#include "utils.h" +#include "poly1305_sse2.h" +#include "../onetimeauth_poly1305.h" + +#if defined(HAVE_TI_MODE) && defined(HAVE_EMMINTRIN_H) + +#pragma GCC target("sse2") + +#include + +typedef __m128i xmmi; + +#if defined(__SIZEOF_INT128__) +typedef unsigned __int128 uint128_t; +#else +typedef unsigned uint128_t __attribute__ ((mode(TI))); +#endif + +#if defined(_MSC_VER) +# define POLY1305_NOINLINE __declspec(noinline) +#elif defined(__GNUC__) +# define POLY1305_NOINLINE __attribute__ ((noinline)) +#else +# define POLY1305_NOINLINE +#endif + +#define poly1305_block_size 32 + +enum poly1305_state_flags_t { + poly1305_started = 1, + poly1305_final_shift8 = 4, + poly1305_final_shift16 = 8, + poly1305_final_r2_r = 16, /* use [r^2,r] for the final block */ + poly1305_final_r_1 = 32, /* use [r,1] for the final block */ +}; + +typedef struct poly1305_state_internal_t { + union { + uint64_t h[3]; + uint32_t hh[10]; + }; /* 40 bytes */ + uint32_t R[5]; /* 20 bytes */ + uint32_t R2[5]; /* 20 bytes */ + uint32_t R4[5]; /* 20 bytes */ + uint64_t pad[2]; /* 16 bytes */ + uint64_t flags; /* 8 bytes */ + unsigned long long leftover; /* 8 bytes */ + unsigned char buffer[poly1305_block_size]; /* 32 bytes */ +} poly1305_state_internal_t; /* 164 bytes total */ + +/* + * _mm_loadl_epi64() is turned into a simple MOVQ. So, unaligned accesses are totally fine, even though this intrinsic requires a __m128i* input. + * This confuses dynamic analysis, so force alignment, only in debug mode. + */ +#ifdef DEBUG +static xmmi +_fakealign_mm_loadl_epi64(const void *m) +{ + xmmi tmp; + memcpy(&tmp, m, 8); + return _mm_loadl_epi64(&tmp); +} +# define _mm_loadl_epi64(X) _fakealign_mm_loadl_epi64(X) +#endif + +/* copy 0-31 bytes */ +static inline void +poly1305_block_copy31(unsigned char *dst, const unsigned char *src, unsigned long long bytes) +{ + if (bytes & 16) { + _mm_store_si128((xmmi *) (void *) dst, + _mm_loadu_si128((const xmmi *) (const void *) src)); + src += 16; dst += 16; + } + if (bytes & 8) { memcpy(dst, src, 8); src += 8; dst += 8; } + if (bytes & 4) { memcpy(dst, src, 4); src += 4; dst += 4; } + if (bytes & 2) { memcpy(dst, src, 2); src += 2; dst += 2; } + if (bytes & 1) { *dst = *src; } +} + +static POLY1305_NOINLINE void +poly1305_init_ext(poly1305_state_internal_t *st, + const unsigned char key[32], unsigned long long bytes) +{ + uint32_t *R; + uint128_t d[3]; + uint64_t r0,r1,r2; + uint64_t rt0,rt1,rt2,st2,c; + uint64_t t0,t1; + unsigned long long i; + + if (!bytes) bytes = ~(unsigned long long)0; + + /* H = 0 */ + _mm_storeu_si128((xmmi *)(void *)&st->hh[0], _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)&st->hh[4], _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)&st->hh[8], _mm_setzero_si128()); + + /* clamp key */ + memcpy(&t0, key, 8); + memcpy(&t1, key + 8, 8); + r0 = t0 & 0xffc0fffffff; t0 >>= 44; t0 |= t1 << 20; + r1 = t0 & 0xfffffc0ffff; t1 >>= 24; + r2 = t1 & 0x00ffffffc0f; + + /* r^1 */ + R = st->R; + R[0] = (uint32_t)( r0 ) & 0x3ffffff; + R[1] = (uint32_t)(( r0 >> 26) | ( r1 << 18)) & 0x3ffffff; + R[2] = (uint32_t)(( r1 >> 8) ) & 0x3ffffff; + R[3] = (uint32_t)(( r1 >> 34) | ( r2 << 10)) & 0x3ffffff; + R[4] = (uint32_t)(( r2 >> 16) ); + + /* save pad */ + memcpy(&st->pad[0], key + 16, 8); + memcpy(&st->pad[1], key + 24, 8); + + rt0 = r0; + rt1 = r1; + rt2 = r2; + + /* r^2, r^4 */ + for (i = 0; i < 2; i++) { + if (i == 0) { + R = st->R2; + if (bytes <= 16) { + break; + } + } else if (i == 1) { + R = st->R4; + if (bytes < 96) { + break; + } + } + st2 = rt2 * (5 << 2); + d[0] = ((uint128_t)rt0 * rt0) + ((uint128_t)(rt1 * 2) * st2); + d[1] = ((uint128_t)rt2 * st2) + ((uint128_t)(rt0 * 2) * rt1); + d[2] = ((uint128_t)rt1 * rt1) + ((uint128_t)(rt2 * 2) * rt0); + rt0 = (uint64_t)d[0] & 0xfffffffffff; c = (uint64_t)(d[0] >> 44); + d[1] += c ; rt1 = (uint64_t)d[1] & 0xfffffffffff; c = (uint64_t)(d[1] >> 44); + d[2] += c ; rt2 = (uint64_t)d[2] & 0x3ffffffffff; c = (uint64_t)(d[2] >> 42); + rt0 += c * 5; c = (rt0 >> 44); rt0 = rt0 & 0xfffffffffff; + rt1 += c ; c = (rt1 >> 44); rt1 = rt1 & 0xfffffffffff; + rt2 += c ; /* even if rt2 overflows, it will still fit in rp4 safely, and is safe to multiply with */ + + R[0] = (uint32_t)( rt0 ) & 0x3ffffff; + R[1] = (uint32_t)((rt0 >> 26) | (rt1 << 18)) & 0x3ffffff; + R[2] = (uint32_t)((rt1 >> 8) ) & 0x3ffffff; + R[3] = (uint32_t)((rt1 >> 34) | (rt2 << 10)) & 0x3ffffff; + R[4] = (uint32_t)((rt2 >> 16) ); + } + + st->flags = 0; + st->leftover = 0U; +} + +static POLY1305_NOINLINE void +poly1305_blocks(poly1305_state_internal_t *st, const unsigned char *m, + unsigned long long bytes) +{ + CRYPTO_ALIGN(64) xmmi HIBIT = _mm_shuffle_epi32(_mm_cvtsi32_si128(1 << 24), _MM_SHUFFLE(1,0,1,0)); + const xmmi MMASK = _mm_shuffle_epi32(_mm_cvtsi32_si128((1 << 26) - 1), _MM_SHUFFLE(1,0,1,0)); + const xmmi FIVE = _mm_shuffle_epi32(_mm_cvtsi32_si128(5), _MM_SHUFFLE(1,0,1,0)); + xmmi H0,H1,H2,H3,H4; + xmmi T0,T1,T2,T3,T4,T5,T6,T7,T8; + xmmi M0,M1,M2,M3,M4; + xmmi M5,M6,M7,M8; + xmmi C1,C2; + xmmi R20,R21,R22,R23,R24,S21,S22,S23,S24; + xmmi R40,R41,R42,R43,R44,S41,S42,S43,S44; + + if (st->flags & poly1305_final_shift8) HIBIT = _mm_srli_si128(HIBIT, 8); + if (st->flags & poly1305_final_shift16) HIBIT = _mm_setzero_si128(); + + if (!(st->flags & poly1305_started)) { + /* H = [Mx,My] */ + + T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((const xmmi *)(const void *)(m + 0)), _mm_loadl_epi64((const xmmi *)(const void *)(m + 16))); + T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((const xmmi *)(const void *)(m + 8)), _mm_loadl_epi64((const xmmi *)(const void *)(m + 24))); + H0 = _mm_and_si128(MMASK, T5); + H1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26)); + T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12)); + H2 = _mm_and_si128(MMASK, T5); + H3 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26)); + H4 = _mm_srli_epi64(T6, 40); + H4 = _mm_or_si128(H4, HIBIT); + m += 32; + bytes -= 32; + st->flags |= poly1305_started; + } else { + T0 = _mm_loadu_si128((const xmmi *)(const void *)&st->hh[0]); + T1 = _mm_loadu_si128((const xmmi *)(const void *)&st->hh[4]); + T2 = _mm_loadu_si128((const xmmi *)(const void *)&st->hh[8]); + H0 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1,1,0,0)); + H1 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3,3,2,2)); + H2 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(1,1,0,0)); + H3 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(3,3,2,2)); + H4 = _mm_shuffle_epi32(T2, _MM_SHUFFLE(1,1,0,0)); + } + + if (st->flags & (poly1305_final_r2_r|poly1305_final_r_1)) { + if (st->flags & poly1305_final_r2_r) { + /* use [r^2, r] */ + T2 = _mm_loadu_si128((const xmmi *)(const void *)&st->R[0]); + T3 = _mm_cvtsi32_si128(st->R[4]); + T0 = _mm_loadu_si128((const xmmi *)(const void *)&st->R2[0]); + T1 = _mm_cvtsi32_si128(st->R2[4]); + T4 = _mm_unpacklo_epi32(T0, T2); + T5 = _mm_unpackhi_epi32(T0, T2); + R24 = _mm_unpacklo_epi64(T1, T3); + } else { + /* use [r^1, 1] */ + T0 = _mm_loadu_si128((const xmmi *)(const void *)&st->R[0]); + T1 = _mm_cvtsi32_si128(st->R[4]); + T2 = _mm_cvtsi32_si128(1); + T4 = _mm_unpacklo_epi32(T0, T2); + T5 = _mm_unpackhi_epi32(T0, T2); + R24 = T1; + } + + R20 = _mm_shuffle_epi32(T4, _MM_SHUFFLE(1,1,0,0)); + R21 = _mm_shuffle_epi32(T4, _MM_SHUFFLE(3,3,2,2)); + R22 = _mm_shuffle_epi32(T5, _MM_SHUFFLE(1,1,0,0)); + R23 = _mm_shuffle_epi32(T5, _MM_SHUFFLE(3,3,2,2)); + } else { + /* use [r^2, r^2] */ + T0 = _mm_loadu_si128((const xmmi *)(const void *)&st->R2[0]); + T1 = _mm_cvtsi32_si128(st->R2[4]); + R20 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(0,0,0,0)); + R21 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1,1,1,1)); + R22 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(2,2,2,2)); + R23 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3,3,3,3)); + R24 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(0,0,0,0)); + } + S21 = _mm_mul_epu32(R21, FIVE); + S22 = _mm_mul_epu32(R22, FIVE); + S23 = _mm_mul_epu32(R23, FIVE); + S24 = _mm_mul_epu32(R24, FIVE); + + if (bytes >= 64) { + T0 = _mm_loadu_si128((const xmmi *)(const void *)&st->R4[0]); + T1 = _mm_cvtsi32_si128(st->R4[4]); + R40 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(0,0,0,0)); + R41 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(1,1,1,1)); + R42 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(2,2,2,2)); + R43 = _mm_shuffle_epi32(T0, _MM_SHUFFLE(3,3,3,3)); + R44 = _mm_shuffle_epi32(T1, _MM_SHUFFLE(0,0,0,0)); + S41 = _mm_mul_epu32(R41, FIVE); + S42 = _mm_mul_epu32(R42, FIVE); + S43 = _mm_mul_epu32(R43, FIVE); + S44 = _mm_mul_epu32(R44, FIVE); + + while (bytes >= 64) { + xmmi v00,v01,v02,v03,v04; + xmmi v10,v11,v12,v13,v14; + xmmi v20,v21,v22,v23,v24; + xmmi v30,v31,v32,v33,v34; + xmmi v40,v41,v42,v43,v44; + xmmi T14,T15; + + /* H *= [r^4,r^4], preload [Mx,My] */ + T15 = S42; + T0 = H4; T0 = _mm_mul_epu32(T0, S41); + v01 = H3; v01 = _mm_mul_epu32(v01, T15); + T14 = S43; + T1 = H4; T1 = _mm_mul_epu32(T1 , T15); + v11 = H3; v11 = _mm_mul_epu32(v11, T14); + T2 = H4; T2 = _mm_mul_epu32(T2 , T14); T0 = _mm_add_epi64(T0, v01); + T15 = S44; + v02 = H2; v02 = _mm_mul_epu32(v02, T14); + T3 = H4; T3 = _mm_mul_epu32(T3 , T15); T1 = _mm_add_epi64(T1, v11); + v03 = H1; v03 = _mm_mul_epu32(v03, T15); + v12 = H2; v12 = _mm_mul_epu32(v12, T15); T0 = _mm_add_epi64(T0, v02); + T14 = R40; + v21 = H3; v21 = _mm_mul_epu32(v21, T15); + v31 = H3; v31 = _mm_mul_epu32(v31, T14); T0 = _mm_add_epi64(T0, v03); + T4 = H4; T4 = _mm_mul_epu32(T4 , T14); T1 = _mm_add_epi64(T1, v12); + v04 = H0; v04 = _mm_mul_epu32(v04, T14); T2 = _mm_add_epi64(T2, v21); + v13 = H1; v13 = _mm_mul_epu32(v13, T14); T3 = _mm_add_epi64(T3, v31); + T15 = R41; + v22 = H2; v22 = _mm_mul_epu32(v22, T14); + v32 = H2; v32 = _mm_mul_epu32(v32, T15); T0 = _mm_add_epi64(T0, v04); + v41 = H3; v41 = _mm_mul_epu32(v41, T15); T1 = _mm_add_epi64(T1, v13); + v14 = H0; v14 = _mm_mul_epu32(v14, T15); T2 = _mm_add_epi64(T2, v22); + T14 = R42; + T5 = _mm_unpacklo_epi64(_mm_loadl_epi64((const xmmi *)(const void *)(m + 0)), _mm_loadl_epi64((const xmmi *)(const void *)(m + 16))); + v23 = H1; v23 = _mm_mul_epu32(v23, T15); T3 = _mm_add_epi64(T3, v32); + v33 = H1; v33 = _mm_mul_epu32(v33, T14); T4 = _mm_add_epi64(T4, v41); + v42 = H2; v42 = _mm_mul_epu32(v42, T14); T1 = _mm_add_epi64(T1, v14); + T15 = R43; + T6 = _mm_unpacklo_epi64(_mm_loadl_epi64((const xmmi *)(const void *)(m + 8)), _mm_loadl_epi64((const xmmi *)(const void *)(m + 24))); + v24 = H0; v24 = _mm_mul_epu32(v24, T14); T2 = _mm_add_epi64(T2, v23); + v34 = H0; v34 = _mm_mul_epu32(v34, T15); T3 = _mm_add_epi64(T3, v33); + M0 = _mm_and_si128(MMASK, T5); + v43 = H1; v43 = _mm_mul_epu32(v43, T15); T4 = _mm_add_epi64(T4, v42); + M1 = _mm_and_si128(MMASK, _mm_srli_epi64(T5, 26)); + v44 = H0; v44 = _mm_mul_epu32(v44, R44); T2 = _mm_add_epi64(T2, v24); + T5 = _mm_or_si128(_mm_srli_epi64(T5, 52), _mm_slli_epi64(T6, 12)); + T3 = _mm_add_epi64(T3, v34); + M3 = _mm_and_si128(MMASK, _mm_srli_epi64(T6, 14)); + T4 = _mm_add_epi64(T4, v43); + M2 = _mm_and_si128(MMASK, T5); + T4 = _mm_add_epi64(T4, v44); + M4 = _mm_or_si128(_mm_srli_epi64(T6, 40), HIBIT); + + /* H += [Mx',My'] */ + T5 = _mm_loadu_si128((const xmmi *)(const void *)(m + 32)); + T6 = _mm_loadu_si128((const xmmi *)(const void *)(m + 48)); + T7 = _mm_unpacklo_epi32(T5, T6); + T8 = _mm_unpackhi_epi32(T5, T6); + M5 = _mm_unpacklo_epi32(T7, _mm_setzero_si128()); + M6 = _mm_unpackhi_epi32(T7, _mm_setzero_si128()); + M7 = _mm_unpacklo_epi32(T8, _mm_setzero_si128()); + M8 = _mm_unpackhi_epi32(T8, _mm_setzero_si128()); + M6 = _mm_slli_epi64(M6, 6); + M7 = _mm_slli_epi64(M7, 12); + M8 = _mm_slli_epi64(M8, 18); + T0 = _mm_add_epi64(T0, M5); + T1 = _mm_add_epi64(T1, M6); + T2 = _mm_add_epi64(T2, M7); + T3 = _mm_add_epi64(T3, M8); + T4 = _mm_add_epi64(T4, HIBIT); + + /* H += [Mx,My]*[r^2,r^2] */ + T15 = S22; + v00 = M4; v00 = _mm_mul_epu32(v00, S21); + v01 = M3; v01 = _mm_mul_epu32(v01, T15); + T14 = S23; + v10 = M4; v10 = _mm_mul_epu32(v10, T15); + v11 = M3; v11 = _mm_mul_epu32(v11, T14); T0 = _mm_add_epi64(T0, v00); + v20 = M4; v20 = _mm_mul_epu32(v20, T14); T0 = _mm_add_epi64(T0, v01); + T15 = S24; + v02 = M2; v02 = _mm_mul_epu32(v02, T14); T1 = _mm_add_epi64(T1, v10); + v30 = M4; v30 = _mm_mul_epu32(v30, T15); T1 = _mm_add_epi64(T1, v11); + v03 = M1; v03 = _mm_mul_epu32(v03, T15); T2 = _mm_add_epi64(T2, v20); + v12 = M2; v12 = _mm_mul_epu32(v12, T15); T0 = _mm_add_epi64(T0, v02); + T14 = R20; + v21 = M3; v21 = _mm_mul_epu32(v21, T15); T3 = _mm_add_epi64(T3, v30); + v31 = M3; v31 = _mm_mul_epu32(v31, T14); T0 = _mm_add_epi64(T0, v03); + v40 = M4; v40 = _mm_mul_epu32(v40, T14); T1 = _mm_add_epi64(T1, v12); + v04 = M0; v04 = _mm_mul_epu32(v04, T14); T2 = _mm_add_epi64(T2, v21); + v13 = M1; v13 = _mm_mul_epu32(v13, T14); T3 = _mm_add_epi64(T3, v31); + T15 = R21; + v22 = M2; v22 = _mm_mul_epu32(v22, T14); T4 = _mm_add_epi64(T4, v40); + v32 = M2; v32 = _mm_mul_epu32(v32, T15); T0 = _mm_add_epi64(T0, v04); + v41 = M3; v41 = _mm_mul_epu32(v41, T15); T1 = _mm_add_epi64(T1, v13); + v14 = M0; v14 = _mm_mul_epu32(v14, T15); T2 = _mm_add_epi64(T2, v22); + T14 = R22; + v23 = M1; v23 = _mm_mul_epu32(v23, T15); T3 = _mm_add_epi64(T3, v32); + v33 = M1; v33 = _mm_mul_epu32(v33, T14); T4 = _mm_add_epi64(T4, v41); + v42 = M2; v42 = _mm_mul_epu32(v42, T14); T1 = _mm_add_epi64(T1, v14); + T15 = R23; + v24 = M0; v24 = _mm_mul_epu32(v24, T14); T2 = _mm_add_epi64(T2, v23); + v34 = M0; v34 = _mm_mul_epu32(v34, T15); T3 = _mm_add_epi64(T3, v33); + v43 = M1; v43 = _mm_mul_epu32(v43, T15); T4 = _mm_add_epi64(T4, v42); + v44 = M0; v44 = _mm_mul_epu32(v44, R24); T2 = _mm_add_epi64(T2, v24); + T3 = _mm_add_epi64(T3, v34); + T4 = _mm_add_epi64(T4, v43); + T4 = _mm_add_epi64(T4, v44); + + /* reduce */ + C1 = _mm_srli_epi64(T0, 26); C2 = _mm_srli_epi64(T3, 26); T0 = _mm_and_si128(T0, MMASK); T3 = _mm_and_si128(T3, MMASK); T1 = _mm_add_epi64(T1, C1); T4 = _mm_add_epi64(T4, C2); + C1 = _mm_srli_epi64(T1, 26); C2 = _mm_srli_epi64(T4, 26); T1 = _mm_and_si128(T1, MMASK); T4 = _mm_and_si128(T4, MMASK); T2 = _mm_add_epi64(T2, C1); T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE)); + C1 = _mm_srli_epi64(T2, 26); C2 = _mm_srli_epi64(T0, 26); T2 = _mm_and_si128(T2, MMASK); T0 = _mm_and_si128(T0, MMASK); T3 = _mm_add_epi64(T3, C1); T1 = _mm_add_epi64(T1, C2); + C1 = _mm_srli_epi64(T3, 26); T3 = _mm_and_si128(T3, MMASK); T4 = _mm_add_epi64(T4, C1); + + /* Final: H = (H*[r^4,r^4] + [Mx,My]*[r^2,r^2] + [Mx',My']) */ + H0 = T0; + H1 = T1; + H2 = T2; + H3 = T3; + H4 = T4; + + m += 64; + bytes -= 64; + } + } + + if (bytes >= 32) { + xmmi v01,v02,v03,v04; + xmmi v11,v12,v13,v14; + xmmi v21,v22,v23,v24; + xmmi v31,v32,v33,v34; + xmmi v41,v42,v43,v44; + xmmi T14,T15; + + /* H *= [r^2,r^2] */ + T15 = S22; + T0 = H4; T0 = _mm_mul_epu32(T0, S21); + v01 = H3; v01 = _mm_mul_epu32(v01, T15); + T14 = S23; + T1 = H4; T1 = _mm_mul_epu32(T1 , T15); + v11 = H3; v11 = _mm_mul_epu32(v11, T14); + T2 = H4; T2 = _mm_mul_epu32(T2 , T14); T0 = _mm_add_epi64(T0, v01); + T15 = S24; + v02 = H2; v02 = _mm_mul_epu32(v02, T14); + T3 = H4; T3 = _mm_mul_epu32(T3 , T15); T1 = _mm_add_epi64(T1, v11); + v03 = H1; v03 = _mm_mul_epu32(v03, T15); + v12 = H2; v12 = _mm_mul_epu32(v12, T15); T0 = _mm_add_epi64(T0, v02); + T14 = R20; + v21 = H3; v21 = _mm_mul_epu32(v21, T15); + v31 = H3; v31 = _mm_mul_epu32(v31, T14); T0 = _mm_add_epi64(T0, v03); + T4 = H4; T4 = _mm_mul_epu32(T4 , T14); T1 = _mm_add_epi64(T1, v12); + v04 = H0; v04 = _mm_mul_epu32(v04, T14); T2 = _mm_add_epi64(T2, v21); + v13 = H1; v13 = _mm_mul_epu32(v13, T14); T3 = _mm_add_epi64(T3, v31); + T15 = R21; + v22 = H2; v22 = _mm_mul_epu32(v22, T14); + v32 = H2; v32 = _mm_mul_epu32(v32, T15); T0 = _mm_add_epi64(T0, v04); + v41 = H3; v41 = _mm_mul_epu32(v41, T15); T1 = _mm_add_epi64(T1, v13); + v14 = H0; v14 = _mm_mul_epu32(v14, T15); T2 = _mm_add_epi64(T2, v22); + T14 = R22; + v23 = H1; v23 = _mm_mul_epu32(v23, T15); T3 = _mm_add_epi64(T3, v32); + v33 = H1; v33 = _mm_mul_epu32(v33, T14); T4 = _mm_add_epi64(T4, v41); + v42 = H2; v42 = _mm_mul_epu32(v42, T14); T1 = _mm_add_epi64(T1, v14); + T15 = R23; + v24 = H0; v24 = _mm_mul_epu32(v24, T14); T2 = _mm_add_epi64(T2, v23); + v34 = H0; v34 = _mm_mul_epu32(v34, T15); T3 = _mm_add_epi64(T3, v33); + v43 = H1; v43 = _mm_mul_epu32(v43, T15); T4 = _mm_add_epi64(T4, v42); + v44 = H0; v44 = _mm_mul_epu32(v44, R24); T2 = _mm_add_epi64(T2, v24); + T3 = _mm_add_epi64(T3, v34); + T4 = _mm_add_epi64(T4, v43); + T4 = _mm_add_epi64(T4, v44); + + /* H += [Mx,My] */ + if (m) { + T5 = _mm_loadu_si128((const xmmi *)(const void *)(m + 0)); + T6 = _mm_loadu_si128((const xmmi *)(const void *)(m + 16)); + T7 = _mm_unpacklo_epi32(T5, T6); + T8 = _mm_unpackhi_epi32(T5, T6); + M0 = _mm_unpacklo_epi32(T7, _mm_setzero_si128()); + M1 = _mm_unpackhi_epi32(T7, _mm_setzero_si128()); + M2 = _mm_unpacklo_epi32(T8, _mm_setzero_si128()); + M3 = _mm_unpackhi_epi32(T8, _mm_setzero_si128()); + M1 = _mm_slli_epi64(M1, 6); + M2 = _mm_slli_epi64(M2, 12); + M3 = _mm_slli_epi64(M3, 18); + T0 = _mm_add_epi64(T0, M0); + T1 = _mm_add_epi64(T1, M1); + T2 = _mm_add_epi64(T2, M2); + T3 = _mm_add_epi64(T3, M3); + T4 = _mm_add_epi64(T4, HIBIT); + } + + /* reduce */ + C1 = _mm_srli_epi64(T0, 26); C2 = _mm_srli_epi64(T3, 26); T0 = _mm_and_si128(T0, MMASK); T3 = _mm_and_si128(T3, MMASK); T1 = _mm_add_epi64(T1, C1); T4 = _mm_add_epi64(T4, C2); + C1 = _mm_srli_epi64(T1, 26); C2 = _mm_srli_epi64(T4, 26); T1 = _mm_and_si128(T1, MMASK); T4 = _mm_and_si128(T4, MMASK); T2 = _mm_add_epi64(T2, C1); T0 = _mm_add_epi64(T0, _mm_mul_epu32(C2, FIVE)); + C1 = _mm_srli_epi64(T2, 26); C2 = _mm_srli_epi64(T0, 26); T2 = _mm_and_si128(T2, MMASK); T0 = _mm_and_si128(T0, MMASK); T3 = _mm_add_epi64(T3, C1); T1 = _mm_add_epi64(T1, C2); + C1 = _mm_srli_epi64(T3, 26); T3 = _mm_and_si128(T3, MMASK); T4 = _mm_add_epi64(T4, C1); + + /* H = (H*[r^2,r^2] + [Mx,My]) */ + H0 = T0; + H1 = T1; + H2 = T2; + H3 = T3; + H4 = T4; + } + + if (m) { + T0 = _mm_shuffle_epi32(H0, _MM_SHUFFLE(0,0,2,0)); + T1 = _mm_shuffle_epi32(H1, _MM_SHUFFLE(0,0,2,0)); + T2 = _mm_shuffle_epi32(H2, _MM_SHUFFLE(0,0,2,0)); + T3 = _mm_shuffle_epi32(H3, _MM_SHUFFLE(0,0,2,0)); + T4 = _mm_shuffle_epi32(H4, _MM_SHUFFLE(0,0,2,0)); + T0 = _mm_unpacklo_epi64(T0, T1); + T1 = _mm_unpacklo_epi64(T2, T3); + _mm_storeu_si128((xmmi *)(void *)&st->hh[0], T0); + _mm_storeu_si128((xmmi *)(void *)&st->hh[4], T1); + _mm_storel_epi64((xmmi *)(void *)&st->hh[8], T4); + } else { + uint32_t t0,t1,t2,t3,t4,b; + uint64_t h0,h1,h2,g0,g1,g2,c,nc; + + /* H = H[0]+H[1] */ + T0 = H0; + T1 = H1; + T2 = H2; + T3 = H3; + T4 = H4; + + T0 = _mm_add_epi64(T0, _mm_srli_si128(T0, 8)); + T1 = _mm_add_epi64(T1, _mm_srli_si128(T1, 8)); + T2 = _mm_add_epi64(T2, _mm_srli_si128(T2, 8)); + T3 = _mm_add_epi64(T3, _mm_srli_si128(T3, 8)); + T4 = _mm_add_epi64(T4, _mm_srli_si128(T4, 8)); + + t0 = _mm_cvtsi128_si32(T0) ; b = (t0 >> 26); t0 &= 0x3ffffff; + t1 = _mm_cvtsi128_si32(T1) + b; b = (t1 >> 26); t1 &= 0x3ffffff; + t2 = _mm_cvtsi128_si32(T2) + b; b = (t2 >> 26); t2 &= 0x3ffffff; + t3 = _mm_cvtsi128_si32(T3) + b; b = (t3 >> 26); t3 &= 0x3ffffff; + t4 = _mm_cvtsi128_si32(T4) + b; + + /* everything except t4 is in range, so this is all safe */ + h0 = (((uint64_t)t0 ) | ((uint64_t)t1 << 26) ) & 0xfffffffffffull; + h1 = (((uint64_t)t1 >> 18) | ((uint64_t)t2 << 8) | ((uint64_t)t3 << 34)) & 0xfffffffffffull; + h2 = (((uint64_t)t3 >> 10) | ((uint64_t)t4 << 16) ); + + c = (h2 >> 42); h2 &= 0x3ffffffffff; + h0 += c * 5; c = (h0 >> 44); h0 &= 0xfffffffffff; + h1 += c; c = (h1 >> 44); h1 &= 0xfffffffffff; + h2 += c; c = (h2 >> 42); h2 &= 0x3ffffffffff; + h0 += c * 5; c = (h0 >> 44); h0 &= 0xfffffffffff; + h1 += c; + + g0 = h0 + 5; c = (g0 >> 44); g0 &= 0xfffffffffff; + g1 = h1 + c; c = (g1 >> 44); g1 &= 0xfffffffffff; + g2 = h2 + c - ((uint64_t)1 << 42); + + c = (g2 >> 63) - 1; + nc = ~c; + h0 = (h0 & nc) | (g0 & c); + h1 = (h1 & nc) | (g1 & c); + h2 = (h2 & nc) | (g2 & c); + + st->h[0] = h0; + st->h[1] = h1; + st->h[2] = h2; + } +} + +static void +poly1305_update(poly1305_state_internal_t *st, const unsigned char *m, + unsigned long long bytes) +{ + unsigned long long i; + + /* handle leftover */ + if (st->leftover) { + unsigned long long want = (poly1305_block_size - st->leftover); + + if (want > bytes) + want = bytes; + for (i = 0; i < want; i++) + st->buffer[st->leftover + i] = m[i]; + bytes -= want; + m += want; + st->leftover += want; + if (st->leftover < poly1305_block_size) + return; + poly1305_blocks(st, st->buffer, poly1305_block_size); + st->leftover = 0; + } + + /* process full blocks */ + if (bytes >= poly1305_block_size) { + unsigned long long want = (bytes & ~(poly1305_block_size - 1)); + + poly1305_blocks(st, m, want); + m += want; + bytes -= want; + } + + /* store leftover */ + if (bytes) { + for (i = 0; i < bytes; i++) { + st->buffer[st->leftover + i] = m[i]; + } + st->leftover += bytes; + } +} + +static POLY1305_NOINLINE void +poly1305_finish_ext(poly1305_state_internal_t *st, const unsigned char *m, + unsigned long long leftover, unsigned char mac[16]) +{ + uint64_t h0,h1,h2; + + if (leftover) { + CRYPTO_ALIGN(16) unsigned char final[32] = {0}; + poly1305_block_copy31(final, m, leftover); + if (leftover != 16) final[leftover] = 1; + st->flags |= (leftover >= 16) ? poly1305_final_shift8 : poly1305_final_shift16; + poly1305_blocks(st, final, 32); + } + + if (st->flags & poly1305_started) { + /* finalize, H *= [r^2,r], or H *= [r,1] */ + if (!leftover || (leftover > 16)) { + st->flags |= poly1305_final_r2_r; + } else { + st->flags |= poly1305_final_r_1; + } + poly1305_blocks(st, NULL, 32); + } + + h0 = st->h[0]; + h1 = st->h[1]; + h2 = st->h[2]; + + /* pad */ + h0 = ((h0 ) | (h1 << 44)); + h1 = ((h1 >> 20) | (h2 << 24)); +#ifdef HAVE_AMD64_ASM + __asm__ __volatile__("addq %2, %0 ;\n" + "adcq %3, %1 ;\n" + : "+r"(h0), "+r"(h1) + : "r"(st->pad[0]), "r"(st->pad[1]) + : "flags", "cc"); +#else + { + uint128_t h; + + memcpy(&h, &st->pad[0], 16); + h += ((uint128_t) h1 << 64) | h0; + h0 = (uint64_t) h; + h1 = (uint64_t) (h >> 64); + } +#endif + _mm_storeu_si128((xmmi *)(void *)st + 0, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 1, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 2, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 3, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 4, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 5, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 6, _mm_setzero_si128()); + _mm_storeu_si128((xmmi *)(void *)st + 7, _mm_setzero_si128()); + + memcpy(&mac[0], &h0, 8); + memcpy(&mac[8], &h1, 8); + + sodium_memzero((void *)st, sizeof *st); +} + +static void +poly1305_finish(poly1305_state_internal_t *st, unsigned char mac[16]) +{ + poly1305_finish_ext(st, st->buffer, st->leftover, mac); +} + +static int +crypto_onetimeauth_poly1305_sse2_init(crypto_onetimeauth_poly1305_state *state, + const unsigned char *key) +{ + (void) sizeof(int[sizeof (crypto_onetimeauth_poly1305_state) >= + sizeof (poly1305_state_internal_t) ? 1 : -1]); + poly1305_init_ext((poly1305_state_internal_t *)(void *) state, key, 0U); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_sse2_update(crypto_onetimeauth_poly1305_state *state, + const unsigned char *in, + unsigned long long inlen) +{ + poly1305_update((poly1305_state_internal_t *)(void *) state, in, inlen); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_sse2_final(crypto_onetimeauth_poly1305_state *state, + unsigned char *out) +{ + poly1305_finish((poly1305_state_internal_t *)(void *) state, out); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_sse2(unsigned char *out, const unsigned char *m, + unsigned long long inlen, + const unsigned char *key) +{ + CRYPTO_ALIGN(64) poly1305_state_internal_t st; + unsigned long long blocks; + + poly1305_init_ext(&st, key, inlen); + blocks = inlen & ~31; + if (blocks > 0) { + poly1305_blocks(&st, m, blocks); + m += blocks; + inlen -= blocks; + } + poly1305_finish_ext(&st, m, inlen, out); + + return 0; +} + +static int +crypto_onetimeauth_poly1305_sse2_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) +{ + unsigned char correct[16]; + + crypto_onetimeauth_poly1305_sse2(correct,in,inlen,k); + + return crypto_verify_16(h,correct); +} + +struct crypto_onetimeauth_poly1305_implementation +crypto_onetimeauth_poly1305_sse2_implementation = { + SODIUM_C99(.onetimeauth =) crypto_onetimeauth_poly1305_sse2, + SODIUM_C99(.onetimeauth_verify =) crypto_onetimeauth_poly1305_sse2_verify, + SODIUM_C99(.onetimeauth_init =) crypto_onetimeauth_poly1305_sse2_init, + SODIUM_C99(.onetimeauth_update =) crypto_onetimeauth_poly1305_sse2_update, + SODIUM_C99(.onetimeauth_final =) crypto_onetimeauth_poly1305_sse2_final +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h new file mode 100644 index 0000000..3d3c076 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h @@ -0,0 +1,12 @@ +#ifndef poly1305_sse2_H +#define poly1305_sse2_H + +#include + +#include "crypto_onetimeauth_poly1305.h" +#include "../onetimeauth_poly1305.h" + +extern struct crypto_onetimeauth_poly1305_implementation + crypto_onetimeauth_poly1305_sse2_implementation; + +#endif /* poly1305_sse2_H */ diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c new file mode 100644 index 0000000..99a4dee --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.c @@ -0,0 +1,570 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with + * this software. If not, see + * . + */ + +#ifdef HAVE_SYS_MMAN_H +# include +#endif +#include +#include +#include +#include +#include + +#include "crypto_generichash_blake2b.h" +#include "runtime.h" +#include "utils.h" +#include "private/common.h" + +#include "argon2-core.h" +#include "argon2-impl.h" +#include "blake2b-long.h" + +#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS) +# define MAP_ANON MAP_ANONYMOUS +#endif + +static fill_segment_fn fill_segment = fill_segment_ref; + +/***************Instance and Position constructors**********/ +void init_block_value(block *b, uint8_t in) { + memset(b->v, in, sizeof(b->v)); +} + +void copy_block(block *dst, const block *src) { + memcpy(dst->v, src->v, sizeof(uint64_t) * ARGON2_QWORDS_IN_BLOCK); +} + +void xor_block(block *dst, const block *src) { + int i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + dst->v[i] ^= src->v[i]; + } +} + +static void load_block(block *dst, const void *input) { + unsigned i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + dst->v[i] = LOAD64_LE((const uint8_t *)input + i * sizeof(dst->v[i])); + } +} + +static void store_block(void *output, const block *src) { + unsigned i; + for (i = 0; i < ARGON2_QWORDS_IN_BLOCK; ++i) { + STORE64_LE((uint8_t *)output + i * sizeof(src->v[i]), src->v[i]); + } +} + +/***************Memory allocators*****************/ +/* Allocates memory to the given pointer + * @param memory pointer to the pointer to the memory + * @param m_cost number of blocks to allocate in the memory + * @return ARGON2_OK if @memory is a valid pointer and memory is allocated + */ +static int allocate_memory(block_region **memory, uint32_t m_cost); + +static int allocate_memory(block_region **region, uint32_t m_cost) { + void *base; + block *memory; + size_t memory_size; + + if (region == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */ + } + memory_size = sizeof(block) * m_cost; + if (m_cost == 0 || + memory_size / m_cost != sizeof(block)) { /*1. Check for multiplication overflow*/ + return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */ + } + *region = (block_region *)malloc(sizeof(block_region)); /*2. Try to allocate region*/ + if (!*region) { + return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */ + } + +#if defined(MAP_ANON) && defined(HAVE_MMAP) + if ((base = mmap(NULL, memory_size, PROT_READ | PROT_WRITE, +# ifdef MAP_NOCORE + MAP_ANON | MAP_PRIVATE | MAP_NOCORE, +# else + MAP_ANON | MAP_PRIVATE, +# endif + -1, 0)) == MAP_FAILED) { + base = NULL; /* LCOV_EXCL_LINE */ + } /* LCOV_EXCL_LINE */ + memcpy(&memory, &base, sizeof memory); +#elif defined(HAVE_POSIX_MEMALIGN) + if ((errno = posix_memalign((void **) &base, 64, memory_size)) != 0) { + base = NULL; + } + memcpy(&memory, &base, sizeof memory); +#else + memory = NULL; + if (memory_size + 63 < memory_size) { + base = NULL; + errno = ENOMEM; + } else if ((base = malloc(memory_size + 63)) != NULL) { + uint8_t *aligned = ((uint8_t *) base) + 63; + aligned -= (uintptr_t) aligned & 63; + memcpy(&memory, &aligned, sizeof memory); + } +#endif + if (base == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; /* LCOV_EXCL_LINE */ + } + (*region)->base = base; + (*region)->memory = memory; + (*region)->size = memory_size; + + return ARGON2_OK; +} + +/*********Memory functions*/ + +/* Clears memory + * @param instance pointer to the current instance + * @param clear_memory indicates if we clear the memory with zeros. + */ +static void clear_memory(argon2_instance_t *instance, int clear); + +static void clear_memory(argon2_instance_t *instance, int clear) { + if (instance->region != NULL && clear) { + /* LCOV_EXCL_START */ + sodium_memzero(instance->region->memory, + sizeof(block) * instance->memory_blocks); + /* LCOV_EXCL_STOP */ + } +} + +/* Deallocates memory + * @param memory pointer to the blocks + */ +static void free_memory(block_region *memory); + +static void free_memory(block_region *region) { + if (region->base) { +#if defined(MAP_ANON) && defined(HAVE_MMAP) + if (munmap(region->base, region->size)) { + return; /* LCOV_EXCL_LINE */ + } +#else + free(region->base); +#endif + } + free(region); +} + +void finalize(const argon2_context *context, argon2_instance_t *instance) { + if (context != NULL && instance != NULL) { + block blockhash; + uint32_t l; + + copy_block(&blockhash, instance->region->memory + instance->lane_length - 1); + + /* XOR the last blocks */ + for (l = 1; l < instance->lanes; ++l) { + uint32_t last_block_in_lane = + l * instance->lane_length + (instance->lane_length - 1); + xor_block(&blockhash, instance->region->memory + last_block_in_lane); + } + + /* Hash the result */ + { + uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE]; + store_block(blockhash_bytes, &blockhash); + blake2b_long(context->out, context->outlen, blockhash_bytes, + ARGON2_BLOCK_SIZE); + sodium_memzero(blockhash.v, + ARGON2_BLOCK_SIZE); /* clear blockhash */ + sodium_memzero(blockhash_bytes, + ARGON2_BLOCK_SIZE); /* clear blockhash_bytes */ + } + + /* Clear memory */ + clear_memory(instance, context->flags & ARGON2_FLAG_CLEAR_PASSWORD); + + /* Deallocate the memory */ + free_memory(instance->region); + } +} + +uint32_t index_alpha(const argon2_instance_t *instance, + const argon2_position_t *position, uint32_t pseudo_rand, + int same_lane) { + /* + * Pass 0: + * This lane : all already finished segments plus already constructed + * blocks in this segment + * Other lanes : all already finished segments + * Pass 1+: + * This lane : (SYNC_POINTS - 1) last segments plus already constructed + * blocks in this segment + * Other lanes : (SYNC_POINTS - 1) last segments + */ + uint32_t reference_area_size; + uint64_t relative_position; + uint32_t start_position, absolute_position; + + if (position->pass == 0) { + /* First pass */ + if (position->slice == 0) { + /* First slice */ + reference_area_size = + position->index - 1; /* all but the previous */ + } else { + if (same_lane) { + /* The same lane => add current segment */ + reference_area_size = + position->slice * instance->segment_length + + position->index - 1; + } else { + reference_area_size = + position->slice * instance->segment_length + + ((position->index == 0) ? (-1) : 0); + } + } + } else { + /* Second pass */ + if (same_lane) { + reference_area_size = instance->lane_length - + instance->segment_length + position->index - + 1; + } else { + reference_area_size = instance->lane_length - + instance->segment_length + + ((position->index == 0) ? (-1) : 0); + } + } + + /* 1.2.4. Mapping pseudo_rand to 0.. and produce + * relative position */ + relative_position = pseudo_rand; + relative_position = relative_position * relative_position >> 32; + relative_position = reference_area_size - 1 - + (reference_area_size * relative_position >> 32); + + /* 1.2.5 Computing starting position */ + start_position = 0; + + if (position->pass != 0) { + start_position = (position->slice == ARGON2_SYNC_POINTS - 1) + ? 0 + : (position->slice + 1) * instance->segment_length; + } + + /* 1.2.6. Computing absolute position */ + absolute_position = (start_position + relative_position) % + instance->lane_length; /* absolute position */ + return absolute_position; +} + +int fill_memory_blocks(argon2_instance_t *instance) { + int result; + uint32_t r, s; + + if (instance == NULL || instance->lanes == 0) { + return ARGON2_OK; /* LCOV_EXCL_LINE */ + } + + for (r = 0; r < instance->passes; ++r) { + for (s = 0; s < ARGON2_SYNC_POINTS; ++s) { + uint32_t l; + + for (l = 0; l < instance->lanes; ++l) { + argon2_position_t position; + + position.pass = r; + position.lane = l; + position.slice = (uint8_t)s; + position.index = 0; + result = fill_segment(instance, position); + if (ARGON2_OK != result) { + return result; /* LCOV_EXCL_LINE */ + } + } + } + } + return ARGON2_OK; +} + +int validate_inputs(const argon2_context *context) { + /* LCOV_EXCL_START */ + if (NULL == context) { + return ARGON2_INCORRECT_PARAMETER; + } + + if (NULL == context->out) { + return ARGON2_OUTPUT_PTR_NULL; + } + + /* Validate output length */ + if (ARGON2_MIN_OUTLEN > context->outlen) { + return ARGON2_OUTPUT_TOO_SHORT; + } + + if (ARGON2_MAX_OUTLEN < context->outlen) { + return ARGON2_OUTPUT_TOO_LONG; + } + + /* Validate password length */ + if (NULL == context->pwd) { + if (0 != context->pwdlen) { + return ARGON2_PWD_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_PWD_LENGTH > context->pwdlen) { + return ARGON2_PWD_TOO_SHORT; + } + + if (ARGON2_MAX_PWD_LENGTH < context->pwdlen) { + return ARGON2_PWD_TOO_LONG; + } + } + + /* Validate salt length */ + if (NULL == context->salt) { + if (0 != context->saltlen) { + return ARGON2_SALT_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_SALT_LENGTH > context->saltlen) { + return ARGON2_SALT_TOO_SHORT; + } + + if (ARGON2_MAX_SALT_LENGTH < context->saltlen) { + return ARGON2_SALT_TOO_LONG; + } + } + + /* Validate secret length */ + if (NULL == context->secret) { + if (0 != context->secretlen) { + return ARGON2_SECRET_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_SECRET > context->secretlen) { + return ARGON2_SECRET_TOO_SHORT; + } + + if (ARGON2_MAX_SECRET < context->secretlen) { + return ARGON2_SECRET_TOO_LONG; + } + } + + /* Validate associated data */ + if (NULL == context->ad) { + if (0 != context->adlen) { + return ARGON2_AD_PTR_MISMATCH; + } + } else { + if (ARGON2_MIN_AD_LENGTH > context->adlen) { + return ARGON2_AD_TOO_SHORT; + } + + if (ARGON2_MAX_AD_LENGTH < context->adlen) { + return ARGON2_AD_TOO_LONG; + } + } + + /* Validate memory cost */ + if (ARGON2_MIN_MEMORY > context->m_cost) { + return ARGON2_MEMORY_TOO_LITTLE; + } + + if (ARGON2_MAX_MEMORY < context->m_cost) { + return ARGON2_MEMORY_TOO_MUCH; + } + + if (context->m_cost < 8 * context->lanes) { + return ARGON2_MEMORY_TOO_LITTLE; + } + + /* Validate time cost */ + if (ARGON2_MIN_TIME > context->t_cost) { + return ARGON2_TIME_TOO_SMALL; + } + + if (ARGON2_MAX_TIME < context->t_cost) { + return ARGON2_TIME_TOO_LARGE; + } + + /* Validate lanes */ + if (ARGON2_MIN_LANES > context->lanes) { + return ARGON2_LANES_TOO_FEW; + } + + if (ARGON2_MAX_LANES < context->lanes) { + return ARGON2_LANES_TOO_MANY; + } + + /* Validate threads */ + if (ARGON2_MIN_THREADS > context->threads) { + return ARGON2_THREADS_TOO_FEW; + } + + if (ARGON2_MAX_THREADS < context->threads) { + return ARGON2_THREADS_TOO_MANY; + } + /* LCOV_EXCL_STOP */ + + return ARGON2_OK; +} + +void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) { + uint32_t l; + /* Make the first and second block in each lane as G(H0||i||0) or + G(H0||i||1) */ + uint8_t blockhash_bytes[ARGON2_BLOCK_SIZE]; + for (l = 0; l < instance->lanes; ++l) { + + STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 0); + STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH + 4, l); + blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, + ARGON2_PREHASH_SEED_LENGTH); + load_block(&instance->region->memory[l * instance->lane_length + 0], + blockhash_bytes); + + STORE32_LE(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, 1); + blake2b_long(blockhash_bytes, ARGON2_BLOCK_SIZE, blockhash, + ARGON2_PREHASH_SEED_LENGTH); + load_block(&instance->region->memory[l * instance->lane_length + 1], + blockhash_bytes); + } + sodium_memzero(blockhash_bytes, ARGON2_BLOCK_SIZE); +} + +void initial_hash(uint8_t *blockhash, argon2_context *context, + argon2_type type) { + crypto_generichash_blake2b_state BlakeHash; + uint8_t value[4U /* sizeof(uint32_t) */]; + + if (NULL == context || NULL == blockhash) { + return; /* LCOV_EXCL_LINE */ + } + + crypto_generichash_blake2b_init(&BlakeHash, NULL, 0U, + ARGON2_PREHASH_DIGEST_LENGTH); + + STORE32_LE(value, context->lanes); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, context->outlen); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, context->m_cost); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, context->t_cost); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, ARGON2_VERSION_NUMBER); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, (uint32_t)type); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + STORE32_LE(value, context->pwdlen); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + if (context->pwd != NULL) { + crypto_generichash_blake2b_update(&BlakeHash, (const uint8_t *)context->pwd, + context->pwdlen); + + if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) { + sodium_memzero(context->pwd, context->pwdlen); /* LCOV_EXCL_LINE */ + context->pwdlen = 0; /* LCOV_EXCL_LINE */ + } + } + + STORE32_LE(value, context->saltlen); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + if (context->salt != NULL) { + crypto_generichash_blake2b_update(&BlakeHash, (const uint8_t *)context->salt, + context->saltlen); + } + + STORE32_LE(value, context->secretlen); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + if (context->secret != NULL) { +/* LCOV_EXCL_START */ + crypto_generichash_blake2b_update(&BlakeHash, (const uint8_t *)context->secret, + context->secretlen); + + if (context->flags & ARGON2_FLAG_CLEAR_SECRET) { + sodium_memzero(context->secret, context->secretlen); + context->secretlen = 0; + } +/* LCOV_EXCL_STOP */ + } + + STORE32_LE(value, context->adlen); + crypto_generichash_blake2b_update(&BlakeHash, value, sizeof(value)); + + if (context->ad != NULL) { +/* LCOV_EXCL_START */ + crypto_generichash_blake2b_update(&BlakeHash, (const uint8_t *)context->ad, + context->adlen); +/* LCOV_EXCL_STOP */ + } + + crypto_generichash_blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH); +} + +int initialize(argon2_instance_t *instance, argon2_context *context) { + uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; + int result = ARGON2_OK; + + if (instance == NULL || context == NULL) + return ARGON2_INCORRECT_PARAMETER; + + /* 1. Memory allocation */ + + result = allocate_memory(&(instance->region), instance->memory_blocks); + if (ARGON2_OK != result) { + return result; + } + + /* 2. Initial hashing */ + /* H_0 + 8 extra bytes to produce the first blocks */ + /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */ + /* Hashing all inputs */ + initial_hash(blockhash, context, instance->type); + /* Zeroing 8 extra bytes */ + sodium_memzero(blockhash + ARGON2_PREHASH_DIGEST_LENGTH, + ARGON2_PREHASH_SEED_LENGTH - ARGON2_PREHASH_DIGEST_LENGTH); + + /* 3. Creating first blocks, we always have at least two blocks in a slice + */ + fill_first_blocks(blockhash, instance); + /* Clearing the hash */ + sodium_memzero(blockhash, ARGON2_PREHASH_SEED_LENGTH); + + return ARGON2_OK; +} + +int argon2_pick_best_implementation(void) +{ +/* LCOV_EXCL_START */ +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + if (sodium_runtime_has_ssse3()) { + fill_segment = fill_segment_ssse3; + return 0; + } +#endif + fill_segment = fill_segment_ref; + + return 0; +/* LCOV_EXCL_STOP */ +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h new file mode 100644 index 0000000..941eea6 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.h @@ -0,0 +1,198 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with + * this software. If not, see + * . + */ + +#ifndef argon2_core_H +#define argon2_core_H + +#include "argon2.h" + +/*************************Argon2 internal + * constants**************************************************/ + +enum argon2_ctx_constants { + /* Version of the algorithm */ + ARGON2_VERSION_NUMBER = 0x13, + + /* Memory block size in bytes */ + ARGON2_BLOCK_SIZE = 1024, + ARGON2_QWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 8, + ARGON2_OWORDS_IN_BLOCK = ARGON2_BLOCK_SIZE / 16, + + /* Number of pseudo-random values generated by one call to Blake in Argon2i + to + generate reference block positions */ + ARGON2_ADDRESSES_IN_BLOCK = 128, + + /* Pre-hashing digest length and its extension*/ + ARGON2_PREHASH_DIGEST_LENGTH = 64, + ARGON2_PREHASH_SEED_LENGTH = 72 +}; + +/*************************Argon2 internal data + * types**************************************************/ + +/* + * Structure for the (1KB) memory block implemented as 128 64-bit words. + * Memory blocks can be copied, XORed. Internal words can be accessed by [] (no + * bounds checking). + */ +typedef struct block_ { uint64_t v[ARGON2_QWORDS_IN_BLOCK]; } block; + +typedef struct block_region_ { + void *base; + block *memory; + size_t size; +} block_region; + +/*****************Functions that work with the block******************/ + +/* Initialize each byte of the block with @in */ +void init_block_value(block *b, uint8_t in); + +/* Copy block @src to block @dst */ +void copy_block(block *dst, const block *src); + +/* XOR @src onto @dst bytewise */ +void xor_block(block *dst, const block *src); + +/* + * Argon2 instance: memory pointer, number of passes, amount of memory, type, + * and derived values. + * Used to evaluate the number and location of blocks to construct in each + * thread + */ +typedef struct Argon2_instance_t { + block_region *region; /* Memory region pointer */ + uint32_t passes; /* Number of passes */ + uint32_t memory_blocks; /* Number of blocks in memory */ + uint32_t segment_length; + uint32_t lane_length; + uint32_t lanes; + uint32_t threads; + argon2_type type; + int print_internals; /* whether to print the memory blocks */ +} argon2_instance_t; + +/* + * Argon2 position: where we construct the block right now. Used to distribute + * work between threads. + */ +typedef struct Argon2_position_t { + uint32_t pass; + uint32_t lane; + uint8_t slice; + uint32_t index; +} argon2_position_t; + +/*Struct that holds the inputs for thread handling FillSegment*/ +typedef struct Argon2_thread_data { + argon2_instance_t *instance_ptr; + argon2_position_t pos; +} argon2_thread_data; + +/*************************Argon2 core + * functions**************************************************/ + +/* + * Computes absolute position of reference block in the lane following a skewed + * distribution and using a pseudo-random value as input + * @param instance Pointer to the current instance + * @param position Pointer to the current position + * @param pseudo_rand 32-bit pseudo-random value used to determine the position + * @param same_lane Indicates if the block will be taken from the current lane. + * If so we can reference the current segment + * @pre All pointers must be valid + */ +uint32_t index_alpha(const argon2_instance_t *instance, + const argon2_position_t *position, uint32_t pseudo_rand, + int same_lane); + +/* + * Function that validates all inputs against predefined restrictions and return + * an error code + * @param context Pointer to current Argon2 context + * @return ARGON2_OK if everything is all right, otherwise one of error codes + * (all defined in + */ +int validate_inputs(const argon2_context *context); + +/* + * Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears + * password and secret if needed + * @param context Pointer to the Argon2 internal structure containing memory + * pointer, and parameters for time and space requirements. + * @param blockhash Buffer for pre-hashing digest + * @param type Argon2 type + * @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes + * allocated + */ +void initial_hash(uint8_t *blockhash, argon2_context *context, + argon2_type type); + +/* + * Function creates first 2 blocks per lane + * @param instance Pointer to the current instance + * @param blockhash Pointer to the pre-hashing digest + * @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values + */ +void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance); + +/* + * Function allocates memory, hashes the inputs with Blake, and creates first + * two blocks. Returns the pointer to the main memory with 2 blocks per lane + * initialized + * @param context Pointer to the Argon2 internal structure containing memory + * pointer, and parameters for time and space requirements. + * @param instance Current Argon2 instance + * @return Zero if successful, -1 if memory failed to allocate. @context->state + * will be modified if successful. + */ +int initialize(argon2_instance_t *instance, argon2_context *context); + +/* + * XORing the last block of each lane, hashing it, making the tag. Deallocates + * the memory. + * @param context Pointer to current Argon2 context (use only the out parameters + * from it) + * @param instance Pointer to current instance of Argon2 + * @pre instance->state must point to necessary amount of memory + * @pre context->out must point to outlen bytes of memory + * @pre if context->free_cbk is not NULL, it should point to a function that + * deallocates memory + */ +void finalize(const argon2_context *context, argon2_instance_t *instance); + +/* + * Function that fills the segment using previous segments also from other + * threads + * @param instance Pointer to the current instance + * @param position Current position + * @pre all block pointers must be valid + */ +typedef int (*fill_segment_fn)(const argon2_instance_t *instance, + argon2_position_t position); +int argon2_pick_best_implementation(void); +int fill_segment_ssse3(const argon2_instance_t *instance, + argon2_position_t position); +int fill_segment_ref(const argon2_instance_t *instance, + argon2_position_t position); + +/* + * Function that fills the entire memory t_cost times based on the first two + * blocks in each lane + * @param instance Pointer to the current instance + * @return Zero if successful, -1 if memory failed to allocate + */ +int fill_memory_blocks(argon2_instance_t *instance); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c new file mode 100644 index 0000000..9f8d63c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.c @@ -0,0 +1,443 @@ +#include +#include +#include +#include +#include "argon2-core.h" +#include "argon2-encoding.h" + +/* + * Example code for a decoder and encoder of "hash strings", with Argon2 + * parameters. + * + * This code comprises three sections: + * + * -- The first section contains generic Base64 encoding and decoding + * functions. It is conceptually applicable to any hash function + * implementation that uses Base64 to encode and decode parameters, + * salts and outputs. It could be made into a library, provided that + * the relevant functions are made public (non-static) and be given + * reasonable names to avoid collisions with other functions. + * + * -- The second section is specific to Argon2. It encodes and decodes + * the parameters, salts and outputs. It does not compute the hash + * itself. + * + * -- The third section is test code, with a main() function. With + * this section, the whole file compiles as a stand-alone program + * that exercises the encoding and decoding functions with some + * test vectors. + * + * The code was originally written by Thomas Pornin , + * to whom comments and remarks may be sent. It is released under what + * should amount to Public Domain or its closest equivalent; the + * following mantra is supposed to incarnate that fact with all the + * proper legal rituals: + * + * --------------------------------------------------------------------- + * This file is provided under the terms of Creative Commons CC0 1.0 + * Public Domain Dedication. To the extent possible under law, the + * author (Thomas Pornin) has waived all copyright and related or + * neighboring rights to this file. This work is published from: Canada. + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 Thomas Pornin + */ + +/* ==================================================================== */ +/* + * Common code; could be shared between different hash functions. + * + * Note: the Base64 functions below assume that uppercase letters (resp. + * lowercase letters) have consecutive numerical codes, that fit on 8 + * bits. All modern systems use ASCII-compatible charsets, where these + * properties are true. If you are stuck with a dinosaur of a system + * that still defaults to EBCDIC then you already have much bigger + * interoperability issues to deal with. + */ + +/* + * Some macros for constant-time comparisons. These work over values in + * the 0..255 range. Returned value is 0x00 on "false", 0xFF on "true". + */ +#define EQ(x, y) ((((0U - ((unsigned)(x) ^ (unsigned)(y))) >> 8) & 0xFF) ^ 0xFF) +#define GT(x, y) ((((unsigned)(y) - (unsigned)(x)) >> 8) & 0xFF) +#define GE(x, y) (GT(y, x) ^ 0xFF) +#define LT(x, y) GT(y, x) +#define LE(x, y) GE(y, x) + +/* + * Convert value x (0..63) to corresponding Base64 character. + */ +static int b64_byte_to_char(unsigned x) { + return (LT(x, 26) & (x + 'A')) | + (GE(x, 26) & LT(x, 52) & (x + ('a' - 26))) | + (GE(x, 52) & LT(x, 62) & (x + ('0' - 52))) | (EQ(x, 62) & '+') | + (EQ(x, 63) & '/'); +} + +/* + * Convert character c to the corresponding 6-bit value. If character c + * is not a Base64 character, then 0xFF (255) is returned. + */ +static unsigned b64_char_to_byte(int c) { + unsigned x; + + x = (GE(c, 'A') & LE(c, 'Z') & (c - 'A')) | + (GE(c, 'a') & LE(c, 'z') & (c - ('a' - 26))) | + (GE(c, '0') & LE(c, '9') & (c - ('0' - 52))) | (EQ(c, '+') & 62) | + (EQ(c, '/') & 63); + return x | (EQ(x, 0) & (EQ(c, 'A') ^ 0xFF)); +} + +/* + * Convert some bytes to Base64. 'dst_len' is the length (in characters) + * of the output buffer 'dst'; if that buffer is not large enough to + * receive the result (including the terminating 0), then (size_t)-1 + * is returned. Otherwise, the zero-terminated Base64 string is written + * in the buffer, and the output length (counted WITHOUT the terminating + * zero) is returned. + */ +static size_t to_base64(char *dst, size_t dst_len, const void *src, + size_t src_len) { + size_t olen; + const unsigned char *buf; + unsigned acc, acc_len; + + olen = (src_len / 3) << 2; + switch (src_len % 3) { + case 2: + olen++; + /* fall through */ + case 1: + olen += 2; + break; + } + if (dst_len <= olen) { + return (size_t)-1; + } + acc = 0; + acc_len = 0; + buf = (const unsigned char *)src; + while (src_len-- > 0) { + acc = (acc << 8) + (*buf++); + acc_len += 8; + while (acc_len >= 6) { + acc_len -= 6; + *dst++ = (char)b64_byte_to_char((acc >> acc_len) & 0x3F); + } + } + if (acc_len > 0) { + *dst++ = (char)b64_byte_to_char((acc << (6 - acc_len)) & 0x3F); + } + *dst++ = 0; + return olen; +} + +/* + * Decode Base64 chars into bytes. The '*dst_len' value must initially + * contain the length of the output buffer '*dst'; when the decoding + * ends, the actual number of decoded bytes is written back in + * '*dst_len'. + * + * Decoding stops when a non-Base64 character is encountered, or when + * the output buffer capacity is exceeded. If an error occurred (output + * buffer is too small, invalid last characters leading to unprocessed + * buffered bits), then NULL is returned; otherwise, the returned value + * points to the first non-Base64 character in the source stream, which + * may be the terminating zero. + */ +static const char *from_base64(void *dst, size_t *dst_len, const char *src) { + size_t len; + unsigned char *buf; + unsigned acc, acc_len; + + buf = (unsigned char *)dst; + len = 0; + acc = 0; + acc_len = 0; + for (;;) { + unsigned d; + + d = b64_char_to_byte(*src); + if (d == 0xFF) { + break; + } + src++; + acc = (acc << 6) + d; + acc_len += 6; + if (acc_len >= 8) { + acc_len -= 8; + if ((len++) >= *dst_len) { + return NULL; + } + *buf++ = (acc >> acc_len) & 0xFF; + } + } + + /* + * If the input length is equal to 1 modulo 4 (which is + * invalid), then there will remain 6 unprocessed bits; + * otherwise, only 0, 2 or 4 bits are buffered. The buffered + * bits must also all be zero. + */ + if (acc_len > 4 || (acc & ((1U << acc_len) - 1)) != 0) { + return NULL; + } + *dst_len = len; + return src; +} + +/* + * Decode decimal integer from 'str'; the value is written in '*v'. + * Returned value is a pointer to the next non-decimal character in the + * string. If there is no digit at all, or the value encoding is not + * minimal (extra leading zeros), or the value does not fit in an + * 'unsigned long', then NULL is returned. + */ +static const char *decode_decimal(const char *str, unsigned long *v) { + const char *orig; + unsigned long acc; + + acc = 0; + for (orig = str;; str++) { + int c; + + c = *str; + if (c < '0' || c > '9') { + break; + } + c -= '0'; + if (acc > (ULONG_MAX / 10)) { + return NULL; + } + acc *= 10; + if ((unsigned long)c > (ULONG_MAX - acc)) { + return NULL; + } + acc += (unsigned long)c; + } + if (str == orig || (*orig == '0' && str != (orig + 1))) { + return NULL; + } + *v = acc; + return str; +} + +/* ==================================================================== */ +/* + * Code specific to Argon2. + * + * The code below applies the following format: + * + * $argon2$v=$m=,t=,p=[,keyid=][,data=][$[$]] + * + * where is either 'd' or 'i', is a decimal integer (positive, fits in an 'unsigned long') + * and is Base64-encoded data (no '=' padding characters, no newline + * or whitespace). The "keyid" is a binary identifier for a key (up to 8 + * bytes); "data" is associated data (up to 32 bytes). When the 'keyid' + * (resp. the 'data') is empty, then it is ommitted from the output. + * + * The last two binary chunks (encoded in Base64) are, in that order, + * the salt and the output. Both are optional, but you cannot have an + * output without a salt. The binary salt length is between 8 and 48 bytes. + * The output length is always exactly 32 bytes. + */ + +/* + * Decode an Argon2i hash string into the provided structure 'ctx'. + * Returned value is ARGON2_OK on success. + */ +int decode_string(argon2_context *ctx, const char *str, argon2_type type) { + /* Prefix checking */ +#define CC(prefix) \ + do { \ + size_t cc_len = strlen(prefix); \ + if (strncmp(str, prefix, cc_len) != 0) { \ + return ARGON2_DECODING_FAIL; \ + } \ + str += cc_len; \ + } while ((void)0, 0) + + /* Prefix checking with supplied code */ +#define CC_opt(prefix, code) \ + do { \ + size_t cc_len = strlen(prefix); \ + if (strncmp(str, prefix, cc_len) == 0) { \ + str += cc_len; \ + { code; } \ + } \ + } while ((void)0, 0) + + /* Decoding prefix into decimal */ +#define DECIMAL(x) \ + do { \ + unsigned long dec_x; \ + str = decode_decimal(str, &dec_x); \ + if (str == NULL) { \ + return ARGON2_DECODING_FAIL; \ + } \ + (x) = dec_x; \ + } while ((void)0, 0) + + /* Decoding prefix into binary */ +#define BIN(buf, max_len, len) \ + do { \ + size_t bin_len = (max_len); \ + str = from_base64(buf, &bin_len, str); \ + if (str == NULL || bin_len > UINT32_MAX) { \ + return ARGON2_DECODING_FAIL; \ + } \ + (len) = (uint32_t)bin_len; \ + } while ((void)0, 0) + + size_t maxadlen = ctx->adlen; + size_t maxsaltlen = ctx->saltlen; + size_t maxoutlen = ctx->outlen; + unsigned long version = 0; + int validation_result; + + ctx->adlen = 0; + ctx->saltlen = 0; + ctx->outlen = 0; + if (type == Argon2_i) { + CC("$argon2i"); + } else { + return ARGON2_INCORRECT_TYPE; + } + CC("$v="); + DECIMAL(version); + if (version != ARGON2_VERSION_NUMBER) { + return ARGON2_INCORRECT_TYPE; + } + CC("$m="); + DECIMAL(ctx->m_cost); + CC(",t="); + DECIMAL(ctx->t_cost); + CC(",p="); + DECIMAL(ctx->lanes); + ctx->threads = ctx->lanes; + + CC_opt(",data=", BIN(ctx->ad, maxadlen, ctx->adlen)); + if (*str == 0) { + return ARGON2_OK; + } + CC("$"); + BIN(ctx->salt, maxsaltlen, ctx->saltlen); + if (*str == 0) { + return ARGON2_OK; + } + CC("$"); + BIN(ctx->out, maxoutlen, ctx->outlen); + validation_result = validate_inputs(ctx); + if (validation_result != ARGON2_OK) { + return validation_result; + } + if (*str == 0) { + return ARGON2_OK; + } + return ARGON2_DECODING_FAIL; + +#undef CC +#undef CC_opt +#undef DECIMAL +#undef BIN +} + +#define U32_STR_MAXSIZE 11U + +static void u32_to_string(char *str, uint32_t x) { + char tmp[U32_STR_MAXSIZE - 1U]; + size_t i; + + i = sizeof tmp; + do { + tmp[--i] = (x % (uint32_t) 10U) + '0'; + x /= (uint32_t) 10U; + } while (x != 0U && i != 0U); + memcpy(str, &tmp[i], (sizeof tmp) - i); + str[(sizeof tmp) - i] = 0; +} + +/* + * Encode an argon2i hash string into the provided buffer. 'dst_len' + * contains the size, in characters, of the 'dst' buffer; if 'dst_len' + * is less than the number of required characters (including the + * terminating 0), then this function returns 0. + * + * If pp->output_len is 0, then the hash string will be a salt string + * (no output). if pp->salt_len is also 0, then the string will be a + * parameter-only string (no salt and no output). + * + * On success, ARGON2_OK is returned. + */ +int encode_string(char *dst, size_t dst_len, argon2_context *ctx, + argon2_type type) { +#define SS(str) \ + do { \ + size_t pp_len = strlen(str); \ + if (pp_len >= dst_len) { \ + return ARGON2_ENCODING_FAIL; \ + } \ + memcpy(dst, str, pp_len + 1); \ + dst += pp_len; \ + dst_len -= pp_len; \ + } while ((void)0, 0) + +#define SX(x) \ + do { \ + char tmp[U32_STR_MAXSIZE]; \ + u32_to_string(tmp, x); \ + SS(tmp); \ + } while ((void)0, 0) + +#define SB(buf, len) \ + do { \ + size_t sb_len = to_base64(dst, dst_len, buf, len); \ + if (sb_len == (size_t)-1) { \ + return ARGON2_ENCODING_FAIL; \ + } \ + dst += sb_len; \ + dst_len -= sb_len; \ + } while ((void)0, 0) + + int validation_result; + + if (type == Argon2_i) { + SS("$argon2i$v="); + } else { + return ARGON2_ENCODING_FAIL; + } + validation_result = validate_inputs(ctx); + if (validation_result != ARGON2_OK) { + return validation_result; + } + SX(ARGON2_VERSION_NUMBER); + SS("$m="); + SX(ctx->m_cost); + SS(",t="); + SX(ctx->t_cost); + SS(",p="); + SX(ctx->lanes); + + if (ctx->adlen > 0) { + SS(",data="); + SB(ctx->ad, ctx->adlen); + } + + if (ctx->saltlen == 0) { + return ARGON2_OK; + } + SS("$"); + SB(ctx->salt, ctx->saltlen); + + if (ctx->outlen == 0) { + return ARGON2_OK; + } + SS("$"); + SB(ctx->out, ctx->outlen); + return ARGON2_OK; + +#undef SS +#undef SX +#undef SB +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h new file mode 100644 index 0000000..7366004 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.h @@ -0,0 +1,32 @@ +#ifndef argon2_encoding_H +#define argon2_encoding_H + +#include "argon2.h" + +/* + * encode an Argon2 hash string into the provided buffer. 'dst_len' + * contains the size, in characters, of the 'dst' buffer; if 'dst_len' + * is less than the number of required characters (including the + * terminating 0), then this function returns 0. + * + * if ctx->outlen is 0, then the hash string will be a salt string + * (no output). if ctx->saltlen is also 0, then the string will be a + * parameter-only string (no salt and no output). + * + * On success, ARGON2_OK is returned. + * + * No other parameters are checked + */ +int encode_string(char *dst, size_t dst_len, argon2_context *ctx, + argon2_type type); + +/* + * Decodes an Argon2 hash string into the provided structure 'ctx'. + * The fields ctx.saltlen, ctx.adlen, ctx.outlen set the maximal salt, ad, out length values + * that are allowed; invalid input string causes an error + * + * Returned value is ARGON2_OK on success. + */ +int decode_string(argon2_context *ctx, const char *str, argon2_type type); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c new file mode 100644 index 0000000..b7df197 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c @@ -0,0 +1,229 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with + * this software. If not, see + * . + */ + +#include +#include +#include + +#include "argon2.h" +#include "argon2-core.h" +#include "argon2-impl.h" +#include "blamka-round-ref.h" + +static void fill_block(const block *prev_block, const block *ref_block, + block *next_block) { + block blockR, block_tmp; + unsigned i; + + copy_block(&blockR, ref_block); + xor_block(&blockR, prev_block); + copy_block(&block_tmp, &blockR); + /* Now blockR = ref_block + prev_block and bloc_tmp = ref_block + prev_block + Apply Blake2 on columns of 64-bit words: (0,1,...,15), then + (16,17,..31)... finally (112,113,...127) */ + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND_NOMSG( + blockR.v[16 * i], blockR.v[16 * i + 1], blockR.v[16 * i + 2], + blockR.v[16 * i + 3], blockR.v[16 * i + 4], blockR.v[16 * i + 5], + blockR.v[16 * i + 6], blockR.v[16 * i + 7], blockR.v[16 * i + 8], + blockR.v[16 * i + 9], blockR.v[16 * i + 10], blockR.v[16 * i + 11], + blockR.v[16 * i + 12], blockR.v[16 * i + 13], blockR.v[16 * i + 14], + blockR.v[16 * i + 15]); + } + + /* Apply Blake2 on rows of 64-bit words: (0,1,16,17,...112,113), then + (2,3,18,19,...,114,115).. finally (14,15,30,31,...,126,127) */ + for (i = 0; i < 8; i++) { + BLAKE2_ROUND_NOMSG( + blockR.v[2 * i], blockR.v[2 * i + 1], blockR.v[2 * i + 16], + blockR.v[2 * i + 17], blockR.v[2 * i + 32], blockR.v[2 * i + 33], + blockR.v[2 * i + 48], blockR.v[2 * i + 49], blockR.v[2 * i + 64], + blockR.v[2 * i + 65], blockR.v[2 * i + 80], blockR.v[2 * i + 81], + blockR.v[2 * i + 96], blockR.v[2 * i + 97], blockR.v[2 * i + 112], + blockR.v[2 * i + 113]); + } + + copy_block(next_block, &block_tmp); + xor_block(next_block, &blockR); +} + +static void fill_block_with_xor(const block *prev_block, const block *ref_block, + block *next_block) { + block blockR, block_tmp; + unsigned i; + + copy_block(&blockR, ref_block); + xor_block(&blockR, prev_block); + copy_block(&block_tmp, &blockR); + xor_block(&block_tmp, next_block); /* Saving the next block contents for XOR over */ + /* Now blockR = ref_block + prev_block and bloc_tmp = ref_block + prev_block + next_block */ + /* Apply Blake2 on columns of 64-bit words: (0,1,...,15) , then + (16,17,..31)... finally (112,113,...127) */ + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND_NOMSG( + blockR.v[16 * i], blockR.v[16 * i + 1], blockR.v[16 * i + 2], + blockR.v[16 * i + 3], blockR.v[16 * i + 4], blockR.v[16 * i + 5], + blockR.v[16 * i + 6], blockR.v[16 * i + 7], blockR.v[16 * i + 8], + blockR.v[16 * i + 9], blockR.v[16 * i + 10], blockR.v[16 * i + 11], + blockR.v[16 * i + 12], blockR.v[16 * i + 13], blockR.v[16 * i + 14], + blockR.v[16 * i + 15]); + } + + /* Apply Blake2 on rows of 64-bit words: (0,1,16,17,...112,113), then + (2,3,18,19,...,114,115).. finally (14,15,30,31,...,126,127) */ + for (i = 0; i < 8; i++) { + BLAKE2_ROUND_NOMSG( + blockR.v[2 * i], blockR.v[2 * i + 1], blockR.v[2 * i + 16], + blockR.v[2 * i + 17], blockR.v[2 * i + 32], blockR.v[2 * i + 33], + blockR.v[2 * i + 48], blockR.v[2 * i + 49], blockR.v[2 * i + 64], + blockR.v[2 * i + 65], blockR.v[2 * i + 80], blockR.v[2 * i + 81], + blockR.v[2 * i + 96], blockR.v[2 * i + 97], blockR.v[2 * i + 112], + blockR.v[2 * i + 113]); + } + + copy_block(next_block, &block_tmp); + xor_block(next_block, &blockR); +} + +/* + * Generate pseudo-random values to reference blocks in the segment and puts + * them into the array + * @param instance Pointer to the current instance + * @param position Pointer to the current position + * @param pseudo_rands Pointer to the array of 64-bit values + * @pre pseudo_rands must point to @a instance->segment_length allocated values + */ +static void generate_addresses(const argon2_instance_t *instance, + const argon2_position_t *position, + uint64_t *pseudo_rands) { + block zero_block, input_block, address_block, tmp_block; + uint32_t i; + + init_block_value(&zero_block, 0); + init_block_value(&input_block, 0); + + if (instance != NULL && position != NULL) { + input_block.v[0] = position->pass; + input_block.v[1] = position->lane; + input_block.v[2] = position->slice; + input_block.v[3] = instance->memory_blocks; + input_block.v[4] = instance->passes; + input_block.v[5] = instance->type; + + for (i = 0; i < instance->segment_length; ++i) { + if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) { + input_block.v[6]++; + init_block_value(&tmp_block, 0); + init_block_value(&address_block, 0); + fill_block_with_xor(&zero_block, &input_block, &tmp_block); + fill_block_with_xor(&zero_block, &tmp_block, &address_block); + } + + pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK]; + } + } +} + +int fill_segment_ref(const argon2_instance_t *instance, + argon2_position_t position) { + block *ref_block = NULL, *curr_block = NULL; + uint64_t pseudo_rand, ref_index, ref_lane; + uint32_t prev_offset, curr_offset; + uint32_t starting_index; + uint32_t i; + const int data_independent_addressing = 1; /* instance->type == Argon2_i */ + /* Pseudo-random values that determine the reference block position */ + uint64_t *pseudo_rands = NULL; + + if (instance == NULL) { + return ARGON2_OK; + } + + pseudo_rands = + (uint64_t *)malloc(sizeof(uint64_t) * (instance->segment_length)); + + if (pseudo_rands == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + if (data_independent_addressing) { + generate_addresses(instance, &position, pseudo_rands); + } + + starting_index = 0; + + if ((0 == position.pass) && (0 == position.slice)) { + starting_index = 2; /* we have already generated the first two blocks */ + } + + /* Offset of the current block */ + curr_offset = position.lane * instance->lane_length + + position.slice * instance->segment_length + starting_index; + + if (0 == curr_offset % instance->lane_length) { + /* Last block in this lane */ + prev_offset = curr_offset + instance->lane_length - 1; + } else { + /* Previous block */ + prev_offset = curr_offset - 1; + } + + for (i = starting_index; i < instance->segment_length; + ++i, ++curr_offset, ++prev_offset) { + /*1.1 Rotating prev_offset if needed */ + if (curr_offset % instance->lane_length == 1) { + prev_offset = curr_offset - 1; + } + + /* 1.2 Computing the index of the reference block */ + /* 1.2.1 Taking pseudo-random value from the previous block */ + if (data_independent_addressing) { +#pragma warning(push) +#pragma warning(disable: 6385) + pseudo_rand = pseudo_rands[i]; +#pragma warning(pop) + } else { + pseudo_rand = instance->region->memory[prev_offset].v[0]; + } + + /* 1.2.2 Computing the lane of the reference block */ + ref_lane = ((pseudo_rand >> 32)) % instance->lanes; + + if ((position.pass == 0) && (position.slice == 0)) { + /* Can not reference other lanes yet */ + ref_lane = position.lane; + } + + /* 1.2.3 Computing the number of possible reference block within the + * lane. + */ + position.index = i; + ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, + ref_lane == position.lane); + + /* 2 Creating a new block */ + ref_block = + instance->region->memory + instance->lane_length * ref_lane + ref_index; + curr_block = instance->region->memory + curr_offset; + if (position.pass != 0) { + fill_block_with_xor(instance->region->memory + prev_offset, ref_block, curr_block); + } else { + fill_block(instance->region->memory + prev_offset, ref_block, curr_block); + } + } + + free(pseudo_rands); + + return ARGON2_OK; +} + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c new file mode 100644 index 0000000..ba2617f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.c @@ -0,0 +1,222 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with + * this software. If not, see + * . + */ + +#include +#include +#include + +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + +#pragma GCC target("sse2") +#pragma GCC target("ssse3") + +#ifdef _MSC_VER +# include /* for _mm_set_epi64x */ +#endif +#include +#include + +#include "argon2.h" +#include "argon2-core.h" +#include "argon2-impl.h" +#include "blamka-round-ssse3.h" + +static void fill_block(__m128i *state, const uint8_t *ref_block, uint8_t *next_block) { + __m128i block_XY[ARGON2_OWORDS_IN_BLOCK]; + uint32_t i; + + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + block_XY[i] = state[i] = _mm_xor_si128( + state[i], _mm_loadu_si128((__m128i const *)(&ref_block[16 * i]))); + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2], + state[8 * i + 3], state[8 * i + 4], state[8 * i + 5], + state[8 * i + 6], state[8 * i + 7]); + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i], + state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i], + state[8 * 6 + i], state[8 * 7 + i]); + } + + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + state[i] = _mm_xor_si128(state[i], block_XY[i]); + _mm_storeu_si128((__m128i *)(&next_block[16 * i]), state[i]); + } +} + +static void fill_block_with_xor(__m128i *state, const uint8_t *ref_block, uint8_t *next_block) { + __m128i block_XY[ARGON2_OWORDS_IN_BLOCK]; + uint32_t i; + + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + state[i] = _mm_xor_si128(state[i], _mm_loadu_si128((__m128i const *)(&ref_block[16 * i]))); + block_XY[i] = _mm_xor_si128(state[i], _mm_loadu_si128((__m128i const *)(&next_block[16 * i]))); + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * i + 0], state[8 * i + 1], state[8 * i + 2], + state[8 * i + 3], state[8 * i + 4], state[8 * i + 5], + state[8 * i + 6], state[8 * i + 7]); + } + + for (i = 0; i < 8; ++i) { + BLAKE2_ROUND(state[8 * 0 + i], state[8 * 1 + i], state[8 * 2 + i], + state[8 * 3 + i], state[8 * 4 + i], state[8 * 5 + i], + state[8 * 6 + i], state[8 * 7 + i]); + } + + for (i = 0; i < ARGON2_OWORDS_IN_BLOCK; i++) { + state[i] = _mm_xor_si128(state[i], block_XY[i]); + _mm_storeu_si128((__m128i *)(&next_block[16 * i]), state[i]); + } +} + +static void generate_addresses(const argon2_instance_t *instance, + const argon2_position_t *position, + uint64_t *pseudo_rands) { + block address_block, input_block, tmp_block; + uint32_t i; + + init_block_value(&address_block, 0); + init_block_value(&input_block, 0); + + if (instance != NULL && position != NULL) { + input_block.v[0] = position->pass; + input_block.v[1] = position->lane; + input_block.v[2] = position->slice; + input_block.v[3] = instance->memory_blocks; + input_block.v[4] = instance->passes; + input_block.v[5] = instance->type; + + for (i = 0; i < instance->segment_length; ++i) { + if (i % ARGON2_ADDRESSES_IN_BLOCK == 0) { + /* Temporary zero-initialized blocks */ + __m128i zero_block[ARGON2_OWORDS_IN_BLOCK]; + __m128i zero2_block[ARGON2_OWORDS_IN_BLOCK]; + memset(zero_block, 0, sizeof(zero_block)); + memset(zero2_block, 0, sizeof(zero2_block)); + init_block_value(&address_block, 0); + init_block_value(&tmp_block, 0); + /* Increasing index counter */ + input_block.v[6]++; + /* First iteration of G */ + fill_block_with_xor(zero_block, (uint8_t *)&input_block.v, (uint8_t *)&tmp_block.v); + /* Second iteration of G */ + fill_block_with_xor(zero2_block, (uint8_t *)&tmp_block.v, (uint8_t *)&address_block.v); + } + + pseudo_rands[i] = address_block.v[i % ARGON2_ADDRESSES_IN_BLOCK]; + } + } +} + +int fill_segment_ssse3(const argon2_instance_t *instance, + argon2_position_t position) { + block *ref_block = NULL, *curr_block = NULL; + uint64_t pseudo_rand, ref_index, ref_lane; + uint32_t prev_offset, curr_offset; + uint32_t starting_index, i; + __m128i state[64]; + const int data_independent_addressing = 1; /* instance->type == Argon2_i */ + + /* Pseudo-random values that determine the reference block position */ + uint64_t *pseudo_rands = NULL; + + if (instance == NULL) { + return ARGON2_OK; + } + + pseudo_rands = + (uint64_t *)malloc(sizeof(uint64_t) * instance->segment_length); + if (pseudo_rands == NULL) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + if (data_independent_addressing) { + generate_addresses(instance, &position, pseudo_rands); + } + + starting_index = 0; + + if ((0 == position.pass) && (0 == position.slice)) { + starting_index = 2; /* we have already generated the first two blocks */ + } + + /* Offset of the current block */ + curr_offset = position.lane * instance->lane_length + + position.slice * instance->segment_length + starting_index; + + if (0 == curr_offset % instance->lane_length) { + /* Last block in this lane */ + prev_offset = curr_offset + instance->lane_length - 1; + } else { + /* Previous block */ + prev_offset = curr_offset - 1; + } + + memcpy(state, ((instance->region->memory + prev_offset)->v), ARGON2_BLOCK_SIZE); + + for (i = starting_index; i < instance->segment_length; + ++i, ++curr_offset, ++prev_offset) { + /*1.1 Rotating prev_offset if needed */ + if (curr_offset % instance->lane_length == 1) { + prev_offset = curr_offset - 1; + } + + /* 1.2 Computing the index of the reference block */ + /* 1.2.1 Taking pseudo-random value from the previous block */ + if (data_independent_addressing) { +#pragma warning(push) +#pragma warning(disable: 6385) + pseudo_rand = pseudo_rands[i]; +#pragma warning(pop) + } else { + pseudo_rand = instance->region->memory[prev_offset].v[0]; + } + + /* 1.2.2 Computing the lane of the reference block */ + ref_lane = ((pseudo_rand >> 32)) % instance->lanes; + + if ((position.pass == 0) && (position.slice == 0)) { + /* Can not reference other lanes yet */ + ref_lane = position.lane; + } + + /* 1.2.3 Computing the number of possible reference block within the + * lane. + */ + position.index = i; + ref_index = index_alpha(instance, &position, pseudo_rand & 0xFFFFFFFF, + ref_lane == position.lane); + + /* 2 Creating a new block */ + ref_block = + instance->region->memory + instance->lane_length * ref_lane + ref_index; + curr_block = instance->region->memory + curr_offset; + if (position.pass != 0) { + fill_block_with_xor(state, (uint8_t *)ref_block->v, (uint8_t *)curr_block->v); + } else { + fill_block(state, (uint8_t *)ref_block->v, (uint8_t *)curr_block->v); + } + } + + free(pseudo_rands); + + return ARGON2_OK; +} +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-impl.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-impl.h new file mode 100644 index 0000000..be17d1c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2-impl.h @@ -0,0 +1,40 @@ +/* + BLAKE2 reference source code package - reference C implementations + + Written in 2012 by Samuel Neves + + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + + You should have received a copy of the CC0 Public Domain Dedication along with + this software. If not, see . +*/ + +#ifndef argon2_impl_H +#define argon2_impl_H + +#include +#include + +static inline uint32_t rotl32( const uint32_t w, const unsigned c ) +{ + return ( w << c ) | ( w >> ( 32 - c ) ); +} + +static inline uint64_t rotl64( const uint64_t w, const unsigned c ) +{ + return ( w << c ) | ( w >> ( 64 - c ) ); +} + +static inline uint32_t rotr32( const uint32_t w, const unsigned c ) +{ + return ( w >> c ) | ( w << ( 32 - c ) ); +} + +static inline uint64_t rotr64( const uint64_t w, const unsigned c ) +{ + return ( w >> c ) | ( w << ( 64 - c ) ); +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c new file mode 100644 index 0000000..2efdefe --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.c @@ -0,0 +1,242 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with + * this software. If not, see + * . + */ + +#include +#include +#include +#include +#include + +#include "utils.h" + +#include "argon2.h" +#include "argon2-encoding.h" +#include "argon2-core.h" + +int argon2_ctx(argon2_context *context, argon2_type type) { + /* 1. Validate all inputs */ + int result = validate_inputs(context); + uint32_t memory_blocks, segment_length; + argon2_instance_t instance; + + if (ARGON2_OK != result) { + return result; + } + + if (Argon2_i != type) { + return ARGON2_INCORRECT_TYPE; + } + + /* 2. Align memory size */ + /* Minimum memory_blocks = 8L blocks, where L is the number of lanes */ + memory_blocks = context->m_cost; + + if (memory_blocks < 2 * ARGON2_SYNC_POINTS * context->lanes) { + memory_blocks = 2 * ARGON2_SYNC_POINTS * context->lanes; + } + + segment_length = memory_blocks / (context->lanes * ARGON2_SYNC_POINTS); + /* Ensure that all segments have equal length */ + memory_blocks = segment_length * (context->lanes * ARGON2_SYNC_POINTS); + + instance.region = NULL; + instance.passes = context->t_cost; + instance.memory_blocks = memory_blocks; + instance.segment_length = segment_length; + instance.lane_length = segment_length * ARGON2_SYNC_POINTS; + instance.lanes = context->lanes; + instance.threads = context->threads; + instance.type = type; + + /* 3. Initialization: Hashing inputs, allocating memory, filling first + * blocks + */ + result = initialize(&instance, context); + + if (ARGON2_OK != result) { + return result; + } + + /* 4. Filling memory */ + result = fill_memory_blocks(&instance); + + if (ARGON2_OK != result) { + return result; + } + + /* 5. Finalization */ + finalize(context, &instance); + + return ARGON2_OK; +} + +int argon2_hash(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, const size_t saltlen, + void *hash, const size_t hashlen, char *encoded, + const size_t encodedlen, argon2_type type) { + + argon2_context context; + int result; + uint8_t *out; + + if (pwdlen > ARGON2_MAX_PWD_LENGTH) { + return ARGON2_PWD_TOO_LONG; + } + + if (hashlen > ARGON2_MAX_OUTLEN) { + return ARGON2_OUTPUT_TOO_LONG; + } + + if (saltlen > ARGON2_MAX_SALT_LENGTH) { + return ARGON2_SALT_TOO_LONG; + } + + out = (uint8_t *) malloc(hashlen); + if (!out) { + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + context.out = (uint8_t *)out; + context.outlen = (uint32_t)hashlen; + context.pwd = (uint8_t *)pwd; + context.pwdlen = (uint32_t)pwdlen; + context.salt = (uint8_t *)salt; + context.saltlen = (uint32_t)saltlen; + context.secret = NULL; + context.secretlen = 0; + context.ad = NULL; + context.adlen = 0; + context.t_cost = t_cost; + context.m_cost = m_cost; + context.lanes = parallelism; + context.threads = parallelism; + context.flags = ARGON2_DEFAULT_FLAGS; + + result = argon2_ctx(&context, type); + + if (result != ARGON2_OK) { + sodium_memzero(out, hashlen); + free(out); + return result; + } + + /* if raw hash requested, write it */ + if (hash) { + memcpy(hash, out, hashlen); + } + + /* if encoding requested, write it */ + if (encoded && encodedlen) { + if (encode_string(encoded, encodedlen, &context, type) != ARGON2_OK) { + sodium_memzero(out, hashlen); + sodium_memzero(encoded, encodedlen); + free(out); + return ARGON2_ENCODING_FAIL; + } + } + + sodium_memzero(out, hashlen); + free(out); + + return ARGON2_OK; +} + +int argon2i_hash_encoded(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, + const size_t saltlen, const size_t hashlen, + char *encoded, const size_t encodedlen) { + + return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen, + NULL, hashlen, encoded, encodedlen, Argon2_i); +} + +int argon2i_hash_raw(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, + const size_t saltlen, void *hash, const size_t hashlen) { + + return argon2_hash(t_cost, m_cost, parallelism, pwd, pwdlen, salt, saltlen, + hash, hashlen, NULL, 0, Argon2_i); +} + +int argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen, + argon2_type type) { + + argon2_context ctx; + uint8_t *out; + int decode_result; + int ret; + size_t encoded_len; + + memset(&ctx, 0, sizeof ctx); + + ctx.pwd = NULL; + ctx.pwdlen = 0; + ctx.secret = NULL; + ctx.secretlen = 0; + + /* max values, to be updated in decode_string */ + encoded_len = strlen(encoded); + if (encoded_len > UINT32_MAX) { + return ARGON2_DECODING_LENGTH_FAIL; + } + ctx.adlen = (uint32_t) encoded_len; + ctx.saltlen = (uint32_t) encoded_len; + ctx.outlen = (uint32_t) encoded_len; + + ctx.ad = (uint8_t *) malloc(ctx.adlen); + ctx.salt = (uint8_t *) malloc(ctx.saltlen); + ctx.out = (uint8_t *) malloc(ctx.outlen); + if (!ctx.out || !ctx.salt || !ctx.ad) { + free(ctx.ad); + free(ctx.salt); + free(ctx.out); + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + out = (uint8_t *) malloc(ctx.outlen); + if (!out) { + free(ctx.ad); + free(ctx.salt); + free(ctx.out); + return ARGON2_MEMORY_ALLOCATION_ERROR; + } + + decode_result = decode_string(&ctx, encoded, type); + if (decode_result != ARGON2_OK) { + free(ctx.ad); + free(ctx.salt); + free(ctx.out); + free(out); + return decode_result; + } + + ret = argon2_hash(ctx.t_cost, ctx.m_cost, ctx.threads, pwd, pwdlen, ctx.salt, + ctx.saltlen, out, ctx.outlen, NULL, 0, type); + + free(ctx.ad); + free(ctx.salt); + + if (ret != ARGON2_OK || sodium_memcmp(out, ctx.out, ctx.outlen) != 0) { + ret = ARGON2_VERIFY_MISMATCH; + } + free(out); + free(ctx.out); + + return ret; +} + +int argon2i_verify(const char *encoded, const void *pwd, const size_t pwdlen) { + return argon2_verify(encoded, pwd, pwdlen, Argon2_i); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h new file mode 100644 index 0000000..0e9b8ed --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/argon2.h @@ -0,0 +1,251 @@ +/* + * Argon2 source code package + * + * Written by Daniel Dinu and Dmitry Khovratovich, 2015 + * + * This work is licensed under a Creative Commons CC0 1.0 License/Waiver. + * + * You should have received a copy of the CC0 Public Domain Dedication along + * with this software. If not, see . + */ +#ifndef argon2_H +#define argon2_H + +#include +#include +#include + +/* + * Argon2 input parameter restrictions + */ + +/* Minimum and maximum number of lanes (degree of parallelism) */ +#define ARGON2_MIN_LANES UINT32_C(1) +#define ARGON2_MAX_LANES UINT32_C(0xFFFFFF) + +/* Minimum and maximum number of threads */ +#define ARGON2_MIN_THREADS UINT32_C(1) +#define ARGON2_MAX_THREADS UINT32_C(0xFFFFFF) + +/* Number of synchronization points between lanes per pass */ +#define ARGON2_SYNC_POINTS UINT32_C(4) + +/* Minimum and maximum digest size in bytes */ +#define ARGON2_MIN_OUTLEN UINT32_C(16) +#define ARGON2_MAX_OUTLEN UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum number of memory blocks (each of BLOCK_SIZE bytes) */ +#define ARGON2_MIN_MEMORY (2 * ARGON2_SYNC_POINTS) /* 2 blocks per slice */ + +#define ARGON2_MIN(a, b) ((a) < (b) ? (a) : (b)) +/* Max memory size is half the addressing space, topping at 2^32 blocks (4 TB) */ +#define ARGON2_MAX_MEMORY_BITS \ + ARGON2_MIN(UINT32_C(32), (sizeof(void *) * CHAR_BIT - 10 - 1)) +#define ARGON2_MAX_MEMORY \ + ARGON2_MIN(UINT32_C(0xFFFFFFFF), UINT64_C(1) << ARGON2_MAX_MEMORY_BITS) + +/* Minimum and maximum number of passes */ +#define ARGON2_MIN_TIME UINT32_C(3) +#define ARGON2_MAX_TIME UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum password length in bytes */ +#define ARGON2_MIN_PWD_LENGTH UINT32_C(0) +#define ARGON2_MAX_PWD_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum associated data length in bytes */ +#define ARGON2_MIN_AD_LENGTH UINT32_C(0) +#define ARGON2_MAX_AD_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum salt length in bytes */ +#define ARGON2_MIN_SALT_LENGTH UINT32_C(8) +#define ARGON2_MAX_SALT_LENGTH UINT32_C(0xFFFFFFFF) + +/* Minimum and maximum key length in bytes */ +#define ARGON2_MIN_SECRET UINT32_C(0) +#define ARGON2_MAX_SECRET UINT32_C(0xFFFFFFFF) + +#define ARGON2_FLAG_CLEAR_PASSWORD (UINT32_C(1) << 0) +#define ARGON2_FLAG_CLEAR_SECRET (UINT32_C(1) << 1) +#define ARGON2_FLAG_CLEAR_MEMORY (UINT32_C(1) << 2) +#define ARGON2_DEFAULT_FLAGS (ARGON2_FLAG_CLEAR_MEMORY) + +/* Error codes */ +typedef enum Argon2_ErrorCodes { + ARGON2_OK = 0, + + ARGON2_OUTPUT_PTR_NULL = -1, + + ARGON2_OUTPUT_TOO_SHORT = -2, + ARGON2_OUTPUT_TOO_LONG = -3, + + ARGON2_PWD_TOO_SHORT = -4, + ARGON2_PWD_TOO_LONG = -5, + + ARGON2_SALT_TOO_SHORT = -6, + ARGON2_SALT_TOO_LONG = -7, + + ARGON2_AD_TOO_SHORT = -8, + ARGON2_AD_TOO_LONG = -9, + + ARGON2_SECRET_TOO_SHORT = -10, + ARGON2_SECRET_TOO_LONG = -11, + + ARGON2_TIME_TOO_SMALL = -12, + ARGON2_TIME_TOO_LARGE = -13, + + ARGON2_MEMORY_TOO_LITTLE = -14, + ARGON2_MEMORY_TOO_MUCH = -15, + + ARGON2_LANES_TOO_FEW = -16, + ARGON2_LANES_TOO_MANY = -17, + + ARGON2_PWD_PTR_MISMATCH = -18, /* NULL ptr with non-zero length */ + ARGON2_SALT_PTR_MISMATCH = -19, /* NULL ptr with non-zero length */ + ARGON2_SECRET_PTR_MISMATCH = -20, /* NULL ptr with non-zero length */ + ARGON2_AD_PTR_MISMATCH = -21, /* NULL ptr with non-zero length */ + + ARGON2_MEMORY_ALLOCATION_ERROR = -22, + + ARGON2_FREE_MEMORY_CBK_NULL = -23, + ARGON2_ALLOCATE_MEMORY_CBK_NULL = -24, + + ARGON2_INCORRECT_PARAMETER = -25, + ARGON2_INCORRECT_TYPE = -26, + + ARGON2_OUT_PTR_MISMATCH = -27, + + ARGON2_THREADS_TOO_FEW = -28, + ARGON2_THREADS_TOO_MANY = -29, + + ARGON2_MISSING_ARGS = -30, + + ARGON2_ENCODING_FAIL = -31, + + ARGON2_DECODING_FAIL = -32, + + ARGON2_THREAD_FAIL = -33, + + ARGON2_DECODING_LENGTH_FAIL = -34, + + ARGON2_VERIFY_MISMATCH = -35 +} argon2_error_codes; + +/* Argon2 external data structures */ + +/* + * Context: structure to hold Argon2 inputs: + * output array and its length, + * password and its length, + * salt and its length, + * secret and its length, + * associated data and its length, + * number of passes, amount of used memory (in KBytes, can be rounded up a bit) + * number of parallel threads that will be run. + * All the parameters above affect the output hash value. + * Additionally, two function pointers can be provided to allocate and + * deallocate the memory (if NULL, memory will be allocated internally). + * Also, three flags indicate whether to erase password, secret as soon as they + * are pre-hashed (and thus not needed anymore), and the entire memory + ***** + * Simplest situation: you have output array out[8], password is stored in + * pwd[32], salt is stored in salt[16], you do not have keys nor associated data. + * You need to spend 1 GB of RAM and you run 5 passes of Argon2 with 4 parallel lanes. + * You want to erase the password, but you're OK with last pass not being erased. + * You want to use the default memory allocator. + * Then you initialize: + * Argon2_Context(out,8,pwd,32,salt,16,NULL,0,NULL,0,5,1<<20,4,4,NULL,NULL,true,false,false,false). + */ +typedef struct Argon2_Context { + uint8_t *out; /* output array */ + uint32_t outlen; /* digest length */ + + uint8_t *pwd; /* password array */ + uint32_t pwdlen; /* password length */ + + uint8_t *salt; /* salt array */ + uint32_t saltlen; /* salt length */ + + uint8_t *secret; /* key array */ + uint32_t secretlen; /* key length */ + + uint8_t *ad; /* associated data array */ + uint32_t adlen; /* associated data length */ + + uint32_t t_cost; /* number of passes */ + uint32_t m_cost; /* amount of memory requested (KB) */ + uint32_t lanes; /* number of lanes */ + uint32_t threads; /* maximum number of threads */ + + uint32_t flags; /* array of bool options */ +} argon2_context; + +/* Argon2 primitive type */ +typedef enum Argon2_type { Argon2_i = 1 } argon2_type; + +/* + * Function that performs memory-hard hashing with certain degree of parallelism + * @param context Pointer to the Argon2 internal structure + * @return Error code if smth is wrong, ARGON2_OK otherwise + */ +int argon2_ctx(argon2_context *context, argon2_type type); + +/** + * Hashes a password with Argon2i, producing an encoded hash + * @param t_cost Number of iterations + * @param m_cost Sets memory usage to m_cost kibibytes + * @param parallelism Number of threads and compute lanes + * @param pwd Pointer to password + * @param pwdlen Password size in bytes + * @param salt Pointer to salt + * @param saltlen Salt size in bytes + * @param hashlen Desired length of the hash in bytes + * @param encoded Buffer where to write the encoded hash + * @param encodedlen Size of the buffer (thus max size of the encoded hash) + * @pre Different parallelism levels will give different results + * @pre Returns ARGON2_OK if successful + */ +int argon2i_hash_encoded(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, + const size_t saltlen, const size_t hashlen, + char *encoded, const size_t encodedlen); + +/** + * Hashes a password with Argon2i, producing a raw hash + * @param t_cost Number of iterations + * @param m_cost Sets memory usage to m_cost kibibytes + * @param parallelism Number of threads and compute lanes + * @param pwd Pointer to password + * @param pwdlen Password size in bytes + * @param salt Pointer to salt + * @param saltlen Salt size in bytes + * @param hash Buffer where to write the raw hash + * @param hashlen Desired length of the hash in bytes + * @pre Different parallelism levels will give different results + * @pre Returns ARGON2_OK if successful + */ +int argon2i_hash_raw(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, + const size_t saltlen, void *hash, const size_t hashlen); + +/* generic function underlying the above ones */ +int argon2_hash(const uint32_t t_cost, const uint32_t m_cost, + const uint32_t parallelism, const void *pwd, + const size_t pwdlen, const void *salt, const size_t saltlen, + void *hash, const size_t hashlen, char *encoded, + const size_t encodedlen, argon2_type type); + +/** + * Verifies a password against an encoded string + * Encoded string is restricted as in validate_inputs() + * @param encoded String encoding parameters, salt, hash + * @param pwd Pointer to password + * @pre Returns ARGON2_OK if successful + */ +int argon2i_verify(const char *encoded, const void *pwd, const size_t pwdlen); + +/* generic function underlying the above ones */ +int argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen, + argon2_type type); +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c new file mode 100644 index 0000000..5e4012c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.c @@ -0,0 +1,80 @@ +#include +#include +#include +#include + +#include "crypto_generichash_blake2b.h" +#include "utils.h" +#include "private/common.h" + +#include "argon2-impl.h" +#include "blake2b-long.h" + +int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) { + uint8_t *out = (uint8_t *)pout; + crypto_generichash_blake2b_state blake_state; + uint8_t outlen_bytes[4 /* sizeof(uint32_t) */] = {0}; + int ret = -1; + + if (outlen > UINT32_MAX) { + goto fail; /* LCOV_EXCL_LINE */ + } + + /* Ensure little-endian byte order! */ + STORE32_LE(outlen_bytes, (uint32_t)outlen); + +#define TRY(statement) \ + do { \ + ret = statement; \ + if (ret < 0) { \ + goto fail; \ + } \ + } while ((void)0, 0) + + if (outlen <= crypto_generichash_blake2b_BYTES_MAX) { + TRY(crypto_generichash_blake2b_init(&blake_state, NULL, 0U, outlen)); + TRY(crypto_generichash_blake2b_update(&blake_state, outlen_bytes, + sizeof(outlen_bytes))); + TRY(crypto_generichash_blake2b_update(&blake_state, + (const unsigned char *) in, + inlen)); + TRY(crypto_generichash_blake2b_final(&blake_state, out, outlen)); + } else { + uint32_t toproduce; + uint8_t out_buffer[crypto_generichash_blake2b_BYTES_MAX]; + uint8_t in_buffer[crypto_generichash_blake2b_BYTES_MAX]; + TRY(crypto_generichash_blake2b_init(&blake_state, NULL, 0U, + crypto_generichash_blake2b_BYTES_MAX)); + TRY(crypto_generichash_blake2b_update(&blake_state, outlen_bytes, + sizeof(outlen_bytes))); + TRY(crypto_generichash_blake2b_update(&blake_state, + (const unsigned char *) in, + inlen)); + TRY(crypto_generichash_blake2b_final(&blake_state, out_buffer, + crypto_generichash_blake2b_BYTES_MAX)); + memcpy(out, out_buffer, crypto_generichash_blake2b_BYTES_MAX / 2); + out += crypto_generichash_blake2b_BYTES_MAX / 2; + toproduce = (uint32_t)outlen - crypto_generichash_blake2b_BYTES_MAX / 2; + + while (toproduce > crypto_generichash_blake2b_BYTES_MAX) { + memcpy(in_buffer, out_buffer, crypto_generichash_blake2b_BYTES_MAX); + TRY(crypto_generichash_blake2b(out_buffer, crypto_generichash_blake2b_BYTES_MAX, + in_buffer, + crypto_generichash_blake2b_BYTES_MAX, + NULL, 0U)); + memcpy(out, out_buffer, crypto_generichash_blake2b_BYTES_MAX / 2); + out += crypto_generichash_blake2b_BYTES_MAX / 2; + toproduce -= crypto_generichash_blake2b_BYTES_MAX / 2; + } + + memcpy(in_buffer, out_buffer, crypto_generichash_blake2b_BYTES_MAX); + TRY(crypto_generichash_blake2b(out_buffer, toproduce, in_buffer, + crypto_generichash_blake2b_BYTES_MAX, + NULL, 0U)); + memcpy(out, out_buffer, toproduce); + } +fail: + sodium_memzero(&blake_state, sizeof(blake_state)); + return ret; +#undef TRY +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.h new file mode 100644 index 0000000..3d6d775 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.h @@ -0,0 +1,8 @@ +#ifndef blake2b_long_H +#define blake2b_long_H + +#include + +int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h new file mode 100644 index 0000000..2ed2760 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ref.h @@ -0,0 +1,38 @@ +#ifndef blamka_round_ref_H +#define blamka_round_ref_H + +#include "argon2-impl.h" + +/*designed by the Lyra PHC team */ +static inline uint64_t fBlaMka(uint64_t x, uint64_t y) { + const uint64_t m = UINT64_C(0xFFFFFFFF); + const uint64_t xy = (x & m) * (y & m); + return x + y + 2 * xy; +} + +#define G(a, b, c, d) \ + do { \ + a = fBlaMka(a, b); \ + d = rotr64(d ^ a, 32); \ + c = fBlaMka(c, d); \ + b = rotr64(b ^ c, 24); \ + a = fBlaMka(a, b); \ + d = rotr64(d ^ a, 16); \ + c = fBlaMka(c, d); \ + b = rotr64(b ^ c, 63); \ + } while ((void)0, 0) + +#define BLAKE2_ROUND_NOMSG(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, \ + v12, v13, v14, v15) \ + do { \ + G(v0, v4, v8, v12); \ + G(v1, v5, v9, v13); \ + G(v2, v6, v10, v14); \ + G(v3, v7, v11, v15); \ + G(v0, v5, v10, v15); \ + G(v1, v6, v11, v12); \ + G(v2, v7, v8, v13); \ + G(v3, v4, v9, v14); \ + } while ((void)0, 0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h new file mode 100644 index 0000000..07d158e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/blamka-round-ssse3.h @@ -0,0 +1,117 @@ +#ifndef blamka_round_ssse3_H +#define blamka_round_ssse3_H + +#include "argon2-impl.h" + +#define r16 \ + (_mm_setr_epi8(2, 3, 4, 5, 6, 7, 0, 1, 10, 11, 12, 13, 14, 15, 8, 9)) +#define r24 \ + (_mm_setr_epi8(3, 4, 5, 6, 7, 0, 1, 2, 11, 12, 13, 14, 15, 8, 9, 10)) +#define _mm_roti_epi64(x, c) \ + (-(c) == 32) \ + ? _mm_shuffle_epi32((x), _MM_SHUFFLE(2, 3, 0, 1)) \ + : (-(c) == 24) \ + ? _mm_shuffle_epi8((x), r24) \ + : (-(c) == 16) \ + ? _mm_shuffle_epi8((x), r16) \ + : (-(c) == 63) \ + ? _mm_xor_si128(_mm_srli_epi64((x), -(c)), \ + _mm_add_epi64((x), (x))) \ + : _mm_xor_si128(_mm_srli_epi64((x), -(c)), \ + _mm_slli_epi64((x), 64 - (-(c)))) + +static inline __m128i fBlaMka(__m128i x, __m128i y) { + const __m128i z = _mm_mul_epu32(x, y); + return _mm_add_epi64(_mm_add_epi64(x, y), _mm_add_epi64(z, z)); +} + +#define G1(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + A0 = fBlaMka(A0, B0); \ + A1 = fBlaMka(A1, B1); \ + \ + D0 = _mm_xor_si128(D0, A0); \ + D1 = _mm_xor_si128(D1, A1); \ + \ + D0 = _mm_roti_epi64(D0, -32); \ + D1 = _mm_roti_epi64(D1, -32); \ + \ + C0 = fBlaMka(C0, D0); \ + C1 = fBlaMka(C1, D1); \ + \ + B0 = _mm_xor_si128(B0, C0); \ + B1 = _mm_xor_si128(B1, C1); \ + \ + B0 = _mm_roti_epi64(B0, -24); \ + B1 = _mm_roti_epi64(B1, -24); \ + } while ((void)0, 0) + +#define G2(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + A0 = fBlaMka(A0, B0); \ + A1 = fBlaMka(A1, B1); \ + \ + D0 = _mm_xor_si128(D0, A0); \ + D1 = _mm_xor_si128(D1, A1); \ + \ + D0 = _mm_roti_epi64(D0, -16); \ + D1 = _mm_roti_epi64(D1, -16); \ + \ + C0 = fBlaMka(C0, D0); \ + C1 = fBlaMka(C1, D1); \ + \ + B0 = _mm_xor_si128(B0, C0); \ + B1 = _mm_xor_si128(B1, C1); \ + \ + B0 = _mm_roti_epi64(B0, -63); \ + B1 = _mm_roti_epi64(B1, -63); \ + } while ((void)0, 0) + +#define DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0 = _mm_alignr_epi8(B1, B0, 8); \ + __m128i t1 = _mm_alignr_epi8(B0, B1, 8); \ + B0 = t0; \ + B1 = t1; \ + \ + t0 = C0; \ + C0 = C1; \ + C1 = t0; \ + \ + t0 = _mm_alignr_epi8(D1, D0, 8); \ + t1 = _mm_alignr_epi8(D0, D1, 8); \ + D0 = t1; \ + D1 = t0; \ + } while ((void)0, 0) + +#define UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1) \ + do { \ + __m128i t0 = _mm_alignr_epi8(B0, B1, 8); \ + __m128i t1 = _mm_alignr_epi8(B1, B0, 8); \ + B0 = t0; \ + B1 = t1; \ + \ + t0 = C0; \ + C0 = C1; \ + C1 = t0; \ + \ + t0 = _mm_alignr_epi8(D0, D1, 8); \ + t1 = _mm_alignr_epi8(D1, D0, 8); \ + D0 = t1; \ + D1 = t0; \ + } while ((void)0, 0) + +#define BLAKE2_ROUND(A0, A1, B0, B1, C0, C1, D0, D1) \ + do { \ + G1(A0, B0, C0, D0, A1, B1, C1, D1); \ + G2(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + DIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + G1(A0, B0, C0, D0, A1, B1, C1, D1); \ + G2(A0, B0, C0, D0, A1, B1, C1, D1); \ + \ + UNDIAGONALIZE(A0, B0, C0, D0, A1, B1, C1, D1); \ + } while ((void)0, 0) + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c new file mode 100644 index 0000000..6665d2f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c @@ -0,0 +1,164 @@ + +#include +#include +#include +#include +#include + +#include "argon2.h" +#include "argon2-core.h" +#include "crypto_pwhash_argon2i.h" +#include "randombytes.h" +#include "utils.h" + +#define STR_HASHBYTES 32U + +int +crypto_pwhash_argon2i_alg_argon2i13(void) +{ + return crypto_pwhash_argon2i_ALG_ARGON2I13; +} + +size_t +crypto_pwhash_argon2i_saltbytes(void) +{ + return crypto_pwhash_argon2i_SALTBYTES; +} + +size_t +crypto_pwhash_argon2i_strbytes(void) +{ + return crypto_pwhash_argon2i_STRBYTES; +} + +const char * +crypto_pwhash_argon2i_strprefix(void) +{ + return crypto_pwhash_argon2i_STRPREFIX; +} + +size_t +crypto_pwhash_argon2i_opslimit_interactive(void) +{ + return crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_argon2i_memlimit_interactive(void) +{ + return crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_argon2i_opslimit_moderate(void) +{ + return crypto_pwhash_argon2i_OPSLIMIT_MODERATE; +} + +size_t +crypto_pwhash_argon2i_memlimit_moderate(void) +{ + return crypto_pwhash_argon2i_MEMLIMIT_MODERATE; +} + +size_t +crypto_pwhash_argon2i_opslimit_sensitive(void) +{ + return crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE; +} + +size_t +crypto_pwhash_argon2i_memlimit_sensitive(void) +{ + return crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE; +} + +int +crypto_pwhash_argon2i(unsigned char * const out, + unsigned long long outlen, + const char * const passwd, + unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, + size_t memlimit, int alg) +{ + if (alg != crypto_pwhash_argon2i_ALG_ARGON2I13) { + return -1; + } + memlimit /= 1024U; + if (outlen > ARGON2_MAX_OUTLEN || passwdlen > ARGON2_MAX_PWD_LENGTH || + opslimit > ARGON2_MAX_TIME || memlimit > ARGON2_MAX_MEMORY) { + errno = EFBIG; + return -1; + } + if (outlen < ARGON2_MIN_OUTLEN || passwdlen < ARGON2_MIN_PWD_LENGTH || + opslimit < ARGON2_MIN_TIME || memlimit < ARGON2_MIN_MEMORY) { + errno = EINVAL; + return -1; + } + if (argon2i_hash_raw((uint32_t) opslimit, (uint32_t) memlimit, + (uint32_t) 1U, passwd, (size_t) passwdlen, + salt, (size_t) crypto_pwhash_argon2i_SALTBYTES, + out, (size_t) outlen) != ARGON2_OK) { + return -1; /* LCOV_EXCL_LINE */ + } + return 0; +} + +int +crypto_pwhash_argon2i_str(char out[crypto_pwhash_argon2i_STRBYTES], + const char * const passwd, + unsigned long long passwdlen, + unsigned long long opslimit, + size_t memlimit) +{ + unsigned char salt[crypto_pwhash_argon2i_SALTBYTES]; + + memset(out, 0, crypto_pwhash_argon2i_STRBYTES); + memlimit /= 1024U; + if (passwdlen > ARGON2_MAX_PWD_LENGTH || + opslimit > ARGON2_MAX_TIME || memlimit > ARGON2_MAX_MEMORY) { + errno = EFBIG; + return -1; + } + if (passwdlen < ARGON2_MIN_PWD_LENGTH || + opslimit < ARGON2_MIN_TIME || memlimit < ARGON2_MIN_MEMORY) { + errno = EINVAL; + return -1; + } + randombytes_buf(salt, sizeof salt); + if (argon2i_hash_encoded((uint32_t) opslimit, (uint32_t) memlimit, + (uint32_t) 1U, passwd, (size_t) passwdlen, + salt, sizeof salt, STR_HASHBYTES, + out, crypto_pwhash_argon2i_STRBYTES) != ARGON2_OK) { + return -1; /* LCOV_EXCL_LINE */ + } + return 0; +} + +int +crypto_pwhash_argon2i_str_verify(const char str[crypto_pwhash_argon2i_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) +{ + if (passwdlen > ARGON2_MAX_PWD_LENGTH) { + errno = EFBIG; + return -1; + } +/* LCOV_EXCL_START */ + if (passwdlen < ARGON2_MIN_PWD_LENGTH) { + errno = EINVAL; + return -1; + } +/* LCOV_EXCL_STOP */ + if (argon2i_verify(str, passwd, (size_t) passwdlen) != ARGON2_OK) { + return -1; + } + return 0; +} + +int +_crypto_pwhash_argon2i_pick_best_implementation(void) +{ + return argon2_pick_best_implementation(); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c new file mode 100644 index 0000000..d6227f8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.c @@ -0,0 +1,106 @@ + +#include + +#include "crypto_pwhash.h" + +int +crypto_pwhash_alg_argon2i13(void) +{ + return crypto_pwhash_ALG_ARGON2I13; +} + +int +crypto_pwhash_alg_default(void) +{ + return crypto_pwhash_ALG_ARGON2I13; +} + +size_t +crypto_pwhash_saltbytes(void) +{ + return crypto_pwhash_SALTBYTES; +} + +size_t +crypto_pwhash_strbytes(void) +{ + return crypto_pwhash_STRBYTES; +} + +const char * +crypto_pwhash_strprefix(void) +{ + return crypto_pwhash_STRPREFIX; +} + +size_t +crypto_pwhash_opslimit_interactive(void) +{ + return crypto_pwhash_OPSLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_memlimit_interactive(void) +{ + return crypto_pwhash_MEMLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_opslimit_moderate(void) +{ + return crypto_pwhash_OPSLIMIT_MODERATE; +} + +size_t +crypto_pwhash_memlimit_moderate(void) +{ + return crypto_pwhash_MEMLIMIT_MODERATE; +} + +size_t +crypto_pwhash_opslimit_sensitive(void) +{ + return crypto_pwhash_OPSLIMIT_SENSITIVE; +} + +size_t +crypto_pwhash_memlimit_sensitive(void) +{ + return crypto_pwhash_MEMLIMIT_SENSITIVE; +} + +int +crypto_pwhash(unsigned char * const out, unsigned long long outlen, + const char * const passwd, unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, size_t memlimit, int alg) +{ + if (alg != crypto_pwhash_ALG_ARGON2I13) { + errno = EINVAL; + return -1; + } + return crypto_pwhash_argon2i(out, outlen, passwd, passwdlen, salt, + opslimit, memlimit, alg); +} + +int +crypto_pwhash_str(char out[crypto_pwhash_STRBYTES], + const char * const passwd, unsigned long long passwdlen, + unsigned long long opslimit, size_t memlimit) +{ + return crypto_pwhash_argon2i_str(out, passwd, passwdlen, + opslimit, memlimit); +} + +int +crypto_pwhash_str_verify(const char str[crypto_pwhash_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) +{ + return crypto_pwhash_argon2i_str_verify(str, passwd, passwdlen); +} + +const char * +crypto_pwhash_primitive(void) { + return crypto_pwhash_PRIMITIVE; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c new file mode 100644 index 0000000..c65463d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c @@ -0,0 +1,252 @@ +/*- + * Copyright 2013 Alexander Peslyak + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include "crypto_pwhash_scryptsalsa208sha256.h" +#include "crypto_scrypt.h" +#include "runtime.h" +#include "utils.h" + +static const char * const itoa64 = + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +static uint8_t * +encode64_uint32(uint8_t * dst, size_t dstlen, uint32_t src, uint32_t srcbits) +{ + uint32_t bit; + + for (bit = 0; bit < srcbits; bit += 6) { + if (dstlen < 1) { + return NULL; /* LCOV_EXCL_LINE */ + } + *dst++ = itoa64[src & 0x3f]; + dstlen--; + src >>= 6; + } + + return dst; +} + +static uint8_t * +encode64(uint8_t * dst, size_t dstlen, const uint8_t * src, size_t srclen) +{ + size_t i; + + for (i = 0; i < srclen; ) { + uint8_t * dnext; + uint32_t value = 0, bits = 0; + do { + value |= (uint32_t)src[i++] << bits; + bits += 8; + } while (bits < 24 && i < srclen); + dnext = encode64_uint32(dst, dstlen, value, bits); + if (!dnext) { + return NULL; /* LCOV_EXCL_LINE */ + } + dstlen -= dnext - dst; + dst = dnext; + } + + return dst; +} + +static int +decode64_one(uint32_t * dst, uint8_t src) +{ + const char *ptr = strchr(itoa64, src); + + if (ptr) { + *dst = (uint32_t) (ptr - itoa64); + return 0; + } + *dst = 0; + return -1; +} + +static const uint8_t * +decode64_uint32(uint32_t * dst, uint32_t dstbits, const uint8_t * src) +{ + uint32_t bit; + uint32_t value; + + value = 0; + for (bit = 0; bit < dstbits; bit += 6) { + uint32_t one; + if (decode64_one(&one, *src)) { + *dst = 0; + return NULL; + } + src++; + value |= one << bit; + } + + *dst = value; + return src; +} + +uint8_t * +escrypt_r(escrypt_local_t * local, const uint8_t * passwd, size_t passwdlen, + const uint8_t * setting, uint8_t * buf, size_t buflen) +{ + uint8_t hash[crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES]; + escrypt_kdf_t escrypt_kdf; + const uint8_t *src; + const uint8_t *salt; + uint8_t *dst; + size_t prefixlen; + size_t saltlen; + size_t need; + uint64_t N; + uint32_t N_log2; + uint32_t r; + uint32_t p; + + if (setting[0] != '$' || setting[1] != '7' || setting[2] != '$') { + return NULL; + } + src = setting + 3; + + if (decode64_one(&N_log2, *src)) { + return NULL; + } + src++; + N = (uint64_t) 1 << N_log2; + + src = decode64_uint32(&r, 30, src); + if (!src) { + return NULL; + } + src = decode64_uint32(&p, 30, src); + if (!src) { + return NULL; + } + prefixlen = src - setting; + + salt = src; + src = (uint8_t *) strrchr((char *)salt, '$'); + if (src) { + saltlen = src - salt; + } else { + saltlen = strlen((char *)salt); + } + need = prefixlen + saltlen + 1 + + crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED + 1; + if (need > buflen || need < saltlen) { + return NULL; + } +#if defined(HAVE_EMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + escrypt_kdf = + sodium_runtime_has_sse2() ? escrypt_kdf_sse : escrypt_kdf_nosse; +#else + escrypt_kdf = escrypt_kdf_nosse; +#endif + if (escrypt_kdf(local, passwd, passwdlen, salt, saltlen, + N, r, p, hash, sizeof(hash))) { + return NULL; + } + + dst = buf; + memcpy(dst, setting, prefixlen + saltlen); + dst += prefixlen + saltlen; + *dst++ = '$'; + + dst = encode64(dst, buflen - (dst - buf), hash, sizeof(hash)); + sodium_memzero(hash, sizeof hash); + if (!dst || dst >= buf + buflen) { + return NULL; /* Can't happen LCOV_EXCL_LINE */ + } + *dst = 0; /* NUL termination */ + + return buf; +} + +uint8_t * +escrypt_gensalt_r(uint32_t N_log2, uint32_t r, uint32_t p, + const uint8_t * src, size_t srclen, + uint8_t * buf, size_t buflen) +{ + uint8_t *dst; + size_t prefixlen = + (sizeof "$7$" - 1U) + (1U /* N_log2 */) + (5U /* r */) + (5U /* p */); + size_t saltlen = BYTES2CHARS(srclen); + size_t need; + + need = prefixlen + saltlen + 1; + if (need > buflen || need < saltlen || saltlen < srclen) { + return NULL; /* LCOV_EXCL_LINE */ + } + if (N_log2 > 63 || ((uint64_t)r * (uint64_t)p >= (1U << 30))) { + return NULL; + } + dst = buf; + *dst++ = '$'; + *dst++ = '7'; + *dst++ = '$'; + + *dst++ = itoa64[N_log2]; + + dst = encode64_uint32(dst, buflen - (dst - buf), r, 30); + if (!dst) { + return NULL; /* Can't happen LCOV_EXCL_LINE */ + } + dst = encode64_uint32(dst, buflen - (dst - buf), p, 30); + if (!dst) { + return NULL; /* Can't happen LCOV_EXCL_LINE */ + } + dst = encode64(dst, buflen - (dst - buf), src, srclen); + if (!dst || dst >= buf + buflen) { + return NULL; /* Can't happen LCOV_EXCL_LINE */ + } + *dst = 0; /* NUL termination */ + + return buf; +} + +int +crypto_pwhash_scryptsalsa208sha256_ll(const uint8_t * passwd, size_t passwdlen, + const uint8_t * salt, size_t saltlen, + uint64_t N, uint32_t r, uint32_t p, + uint8_t * buf, size_t buflen) +{ + escrypt_kdf_t escrypt_kdf; + escrypt_local_t local; + int retval; + + if (escrypt_init_local(&local)) { + return -1; /* LCOV_EXCL_LINE */ + } +#if defined(HAVE_EMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + escrypt_kdf = + sodium_runtime_has_sse2() ? escrypt_kdf_sse : escrypt_kdf_nosse; +#else + escrypt_kdf = escrypt_kdf_nosse; +#endif + retval = escrypt_kdf(&local, + passwd, passwdlen, salt, saltlen, + N, r, p, buf, buflen); + if (escrypt_free_local(&local)) { + return -1; /* LCOV_EXCL_LINE */ + } + return retval; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h new file mode 100644 index 0000000..000b682 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h @@ -0,0 +1,99 @@ +/*- + * Copyright 2009 Colin Percival + * Copyright 2013 Alexander Peslyak + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ +#ifndef crypto_scrypt_H +#define crypto_scrypt_H + +#include +#include +#include + +#if SIZE_MAX > 0xffffffffULL +# define ARCH_BITS 64 +#else +# define ARCH_BITS 32 +#endif + +#define crypto_pwhash_scryptsalsa208sha256_STRPREFIXBYTES 14 +#define crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES 57 +#define crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES 32 +#define crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES_ENCODED 43 +#define crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES 32 +#define crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED 43 + +#define BYTES2CHARS(bytes) ((((bytes) * 8) + 5) / 6) + +typedef struct { + void * base, * aligned; + size_t size; +} escrypt_region_t; + +typedef union { + uint64_t d[8]; + uint32_t w[16]; +} escrypt_block_t; + +typedef escrypt_region_t escrypt_local_t; + +extern int escrypt_init_local(escrypt_local_t * __local); + +extern int escrypt_free_local(escrypt_local_t * __local); + +extern void *alloc_region(escrypt_region_t * region, size_t size); +extern int free_region(escrypt_region_t * region); + +typedef int (*escrypt_kdf_t)(escrypt_local_t * __local, + const uint8_t * __passwd, size_t __passwdlen, + const uint8_t * __salt, size_t __saltlen, + uint64_t __N, uint32_t __r, uint32_t __p, + uint8_t * __buf, size_t __buflen); + +extern int escrypt_kdf_nosse(escrypt_local_t * __local, + const uint8_t * __passwd, size_t __passwdlen, + const uint8_t * __salt, size_t __saltlen, + uint64_t __N, uint32_t __r, uint32_t __p, + uint8_t * __buf, size_t __buflen); + +extern int escrypt_kdf_sse(escrypt_local_t * __local, + const uint8_t * __passwd, size_t __passwdlen, + const uint8_t * __salt, size_t __saltlen, + uint64_t __N, uint32_t __r, uint32_t __p, + uint8_t * __buf, size_t __buflen); + +extern uint8_t * escrypt_r(escrypt_local_t * __local, + const uint8_t * __passwd, size_t __passwdlen, + const uint8_t * __setting, + uint8_t * __buf, size_t __buflen); + +extern uint8_t * escrypt_gensalt_r( + uint32_t __N_log2, uint32_t __r, uint32_t __p, + const uint8_t * __src, size_t __srclen, + uint8_t * __buf, size_t __buflen); + +#endif /* !_CRYPTO_SCRYPT_H_ */ diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c new file mode 100644 index 0000000..3332517 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c @@ -0,0 +1,341 @@ +/*- + * Copyright 2009 Colin Percival + * Copyright 2013 Alexander Peslyak + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ + +#include +#include +#include +#include +#include + +#include "../pbkdf2-sha256.h" +#include "../crypto_scrypt.h" +#include "private/common.h" + +static inline void +blkcpy_64(escrypt_block_t *dest, const escrypt_block_t *src) +{ + int i; + +#if (ARCH_BITS==32) + for (i = 0; i < 16; ++i) + dest->w[i] = src->w[i]; +#else + for (i = 0; i < 8; ++i) + dest->d[i] = src->d[i]; +#endif +} + +static inline void +blkxor_64(escrypt_block_t *dest, const escrypt_block_t *src) +{ + int i; + +#if (ARCH_BITS==32) + for (i = 0; i < 16; ++i) + dest->w[i] ^= src->w[i]; +#else + for (i = 0; i < 8; ++i) + dest->d[i] ^= src->d[i]; +#endif +} + +static inline void +blkcpy(escrypt_block_t *dest, const escrypt_block_t *src, size_t len) +{ + size_t i, L; +#if (ARCH_BITS==32) + L = (len>>2); + for (i = 0; i < L; ++i) + dest->w[i] = src->w[i]; +#else + L = (len>>3); + for (i = 0; i < L; ++i) + dest->d[i] = src->d[i]; +#endif +} + +static inline void +blkxor(escrypt_block_t *dest, const escrypt_block_t *src, size_t len) +{ + size_t i, L; +#if (ARCH_BITS==32) + L = (len>>2); + for (i = 0; i < L; ++i) + dest->w[i] ^= src->w[i]; +#else + L = (len>>3); + for (i = 0; i < L; ++i) + dest->d[i] ^= src->d[i]; +#endif +} + +/** + * salsa20_8(B): + * Apply the salsa20/8 core to the provided block. + */ +static void +salsa20_8(uint32_t B[16]) +{ + escrypt_block_t X; + uint32_t *x = X.w; + size_t i; + + blkcpy_64(&X, (escrypt_block_t*)B); + for (i = 0; i < 8; i += 2) { +#define R(a,b) (((a) << (b)) | ((a) >> (32 - (b)))) + /* Operate on columns. */ + x[ 4] ^= R(x[ 0]+x[12], 7); x[ 8] ^= R(x[ 4]+x[ 0], 9); + x[12] ^= R(x[ 8]+x[ 4],13); x[ 0] ^= R(x[12]+x[ 8],18); + + x[ 9] ^= R(x[ 5]+x[ 1], 7); x[13] ^= R(x[ 9]+x[ 5], 9); + x[ 1] ^= R(x[13]+x[ 9],13); x[ 5] ^= R(x[ 1]+x[13],18); + + x[14] ^= R(x[10]+x[ 6], 7); x[ 2] ^= R(x[14]+x[10], 9); + x[ 6] ^= R(x[ 2]+x[14],13); x[10] ^= R(x[ 6]+x[ 2],18); + + x[ 3] ^= R(x[15]+x[11], 7); x[ 7] ^= R(x[ 3]+x[15], 9); + x[11] ^= R(x[ 7]+x[ 3],13); x[15] ^= R(x[11]+x[ 7],18); + + /* Operate on rows. */ + x[ 1] ^= R(x[ 0]+x[ 3], 7); x[ 2] ^= R(x[ 1]+x[ 0], 9); + x[ 3] ^= R(x[ 2]+x[ 1],13); x[ 0] ^= R(x[ 3]+x[ 2],18); + + x[ 6] ^= R(x[ 5]+x[ 4], 7); x[ 7] ^= R(x[ 6]+x[ 5], 9); + x[ 4] ^= R(x[ 7]+x[ 6],13); x[ 5] ^= R(x[ 4]+x[ 7],18); + + x[11] ^= R(x[10]+x[ 9], 7); x[ 8] ^= R(x[11]+x[10], 9); + x[ 9] ^= R(x[ 8]+x[11],13); x[10] ^= R(x[ 9]+x[ 8],18); + + x[12] ^= R(x[15]+x[14], 7); x[13] ^= R(x[12]+x[15], 9); + x[14] ^= R(x[13]+x[12],13); x[15] ^= R(x[14]+x[13],18); +#undef R + } + for (i = 0; i < 16; i++) + B[i] += x[i]; +} + +/** + * blockmix_salsa8(Bin, Bout, X, r): + * Compute Bout = BlockMix_{salsa20/8, r}(Bin). The input Bin must be 128r + * bytes in length; the output Bout must also be the same size. The + * temporary space X must be 64 bytes. + */ +static void +blockmix_salsa8(const uint32_t * Bin, uint32_t * Bout, uint32_t * X, size_t r) +{ + size_t i; + + /* 1: X <-- B_{2r - 1} */ + blkcpy_64((escrypt_block_t*)X, (escrypt_block_t*)&Bin[(2 * r - 1) * 16]); + + /* 2: for i = 0 to 2r - 1 do */ + for (i = 0; i < 2 * r; i += 2) { + /* 3: X <-- H(X \xor B_i) */ + blkxor_64((escrypt_block_t*)X, (escrypt_block_t*)&Bin[i * 16]); + salsa20_8(X); + + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + blkcpy_64((escrypt_block_t*)&Bout[i * 8], (escrypt_block_t*)X); + + /* 3: X <-- H(X \xor B_i) */ + blkxor_64((escrypt_block_t*)X, (escrypt_block_t*)&Bin[i * 16 + 16]); + salsa20_8(X); + + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + blkcpy_64((escrypt_block_t*)&Bout[i * 8 + r * 16], (escrypt_block_t*)X); + } +} + +/** + * integerify(B, r): + * Return the result of parsing B_{2r-1} as a little-endian integer. + */ +static inline uint64_t +integerify(const void * B, size_t r) +{ + const uint32_t * X = (const uint32_t *)((uintptr_t)(B) + (2 * r - 1) * 64); + + return (((uint64_t)(X[1]) << 32) + X[0]); +} + +/** + * smix(B, r, N, V, XY): + * Compute B = SMix_r(B, N). The input B must be 128r bytes in length; + * the temporary storage V must be 128rN bytes in length; the temporary + * storage XY must be 256r + 64 bytes in length. The value N must be a + * power of 2 greater than 1. The arrays B, V, and XY must be aligned to a + * multiple of 64 bytes. + */ +static void +smix(uint8_t * B, size_t r, uint64_t N, uint32_t * V, uint32_t * XY) +{ + uint32_t * X = XY; + uint32_t * Y = &XY[32 * r]; + uint32_t * Z = &XY[64 * r]; + uint64_t i; + uint64_t j; + size_t k; + + /* 1: X <-- B */ + for (k = 0; k < 32 * r; k++) + X[k] = LOAD32_LE(&B[4 * k]); + + /* 2: for i = 0 to N - 1 do */ + for (i = 0; i < N; i += 2) { + /* 3: V_i <-- X */ + blkcpy((escrypt_block_t*)&V[i * (32 * r)], (escrypt_block_t*)X, 128 * r); + + /* 4: X <-- H(X) */ + blockmix_salsa8(X, Y, Z, r); + + /* 3: V_i <-- X */ + blkcpy((escrypt_block_t*)&V[(i + 1) * (32 * r)], (escrypt_block_t*)Y, 128 * r); + + /* 4: X <-- H(X) */ + blockmix_salsa8(Y, X, Z, r); + } + + /* 6: for i = 0 to N - 1 do */ + for (i = 0; i < N; i += 2) { + /* 7: j <-- Integerify(X) mod N */ + j = integerify(X, r) & (N - 1); + + /* 8: X <-- H(X \xor V_j) */ + blkxor((escrypt_block_t*)X, (escrypt_block_t*)&V[j * (32 * r)], 128 * r); + blockmix_salsa8(X, Y, Z, r); + + /* 7: j <-- Integerify(X) mod N */ + j = integerify(Y, r) & (N - 1); + + /* 8: X <-- H(X \xor V_j) */ + blkxor((escrypt_block_t*)Y, (escrypt_block_t*)&V[j * (32 * r)], 128 * r); + blockmix_salsa8(Y, X, Z, r); + } + /* 10: B' <-- X */ + for (k = 0; k < 32 * r; k++) + STORE32_LE(&B[4 * k], X[k]); +} + +/** + * escrypt_kdf(local, passwd, passwdlen, salt, saltlen, + * N, r, p, buf, buflen): + * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r, + * p, buflen) and write the result into buf. The parameters r, p, and buflen + * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N + * must be a power of 2 greater than 1. + * + * Return 0 on success; or -1 on error. + */ +int +escrypt_kdf_nosse(escrypt_local_t * local, + const uint8_t * passwd, size_t passwdlen, + const uint8_t * salt, size_t saltlen, + uint64_t N, uint32_t _r, uint32_t _p, + uint8_t * buf, size_t buflen) +{ + size_t B_size, V_size, XY_size, need; + uint8_t * B; + uint32_t * V, * XY; + size_t r = _r, p = _p; + uint32_t i; + + /* Sanity-check parameters. */ +#if SIZE_MAX > UINT32_MAX + if (buflen > (((uint64_t)(1) << 32) - 1) * 32) { + errno = EFBIG; + return -1; + } +#endif + if ((uint64_t)(r) * (uint64_t)(p) >= ((uint64_t) 1 << 30)) { + errno = EFBIG; + return -1; + } + if (N > UINT32_MAX) { + errno = EFBIG; + return -1; + } + if (((N & (N - 1)) != 0) || (N < 2)) { + errno = EINVAL; + return -1; + } + if (r == 0 || p == 0) { + errno = EINVAL; + return -1; + } + if ((r > SIZE_MAX / 128 / p) || +#if SIZE_MAX / 256 <= UINT32_MAX + (r > SIZE_MAX / 256) || +#endif + (N > SIZE_MAX / 128 / r)) { + errno = ENOMEM; + return -1; + } + + /* Allocate memory. */ + B_size = (size_t)128 * r * p; + V_size = (size_t)128 * r * N; + need = B_size + V_size; + if (need < V_size) { + errno = ENOMEM; + return -1; + } + XY_size = (size_t)256 * r + 64; + need += XY_size; + if (need < XY_size) { + errno = ENOMEM; + return -1; + } + if (local->size < need) { + if (free_region(local)) + return -1; + if (!alloc_region(local, need)) + return -1; + } + B = (uint8_t *)local->aligned; + V = (uint32_t *)((uint8_t *)B + B_size); + XY = (uint32_t *)((uint8_t *)V + V_size); + + /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */ + PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, B_size); + + /* 2: for i = 0 to p - 1 do */ + for (i = 0; i < p; i++) { + /* 3: B_i <-- MF(B_i, N) */ + smix(&B[(size_t)128 * i * r], r, N, V, XY); + } + + /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */ + PBKDF2_SHA256(passwd, passwdlen, B, B_size, 1, buf, buflen); + + /* Success! */ + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c new file mode 100644 index 0000000..e1efdd9 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c @@ -0,0 +1,88 @@ +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include +#include + +#include "crypto_auth_hmacsha256.h" +#include "pbkdf2-sha256.h" +#include "utils.h" +#include "private/common.h" + +/** + * PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen): + * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and + * write the output to buf. The value dkLen must be at most 32 * (2^32 - 1). + */ +void +PBKDF2_SHA256(const uint8_t * passwd, size_t passwdlen, const uint8_t * salt, + size_t saltlen, uint64_t c, uint8_t * buf, size_t dkLen) +{ + crypto_auth_hmacsha256_state PShctx, hctx; + size_t i; + uint8_t ivec[4]; + uint8_t U[32]; + uint8_t T[32]; + uint64_t j; + int k; + size_t clen; + + if (dkLen > 0x1fffffffe0ULL) { + abort(); + } + crypto_auth_hmacsha256_init(&PShctx, passwd, passwdlen); + crypto_auth_hmacsha256_update(&PShctx, salt, saltlen); + + for (i = 0; i * 32 < dkLen; i++) { + STORE32_BE(ivec, (uint32_t)(i + 1)); + memcpy(&hctx, &PShctx, sizeof(crypto_auth_hmacsha256_state)); + crypto_auth_hmacsha256_update(&hctx, ivec, 4); + crypto_auth_hmacsha256_final(&hctx, U); + + memcpy(T, U, 32); + /* LCOV_EXCL_START */ + for (j = 2; j <= c; j++) { + crypto_auth_hmacsha256_init(&hctx, passwd, passwdlen); + crypto_auth_hmacsha256_update(&hctx, U, 32); + crypto_auth_hmacsha256_final(&hctx, U); + + for (k = 0; k < 32; k++) { + T[k] ^= U[k]; + } + } + /* LCOV_EXCL_STOP */ + + clen = dkLen - i * 32; + if (clen > 32) { + clen = 32; + } + memcpy(&buf[i * 32], T, clen); + } + sodium_memzero((void *) &PShctx, sizeof PShctx); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h new file mode 100644 index 0000000..dbe1875 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h @@ -0,0 +1,45 @@ +/*- + * Copyright 2005,2007,2009 Colin Percival + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#ifndef pbkdf2_sha256_H +#define pbkdf2_sha256_H + +#include + +#include + +#include "crypto_auth_hmacsha256.h" + +/** + * PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, c, buf, dkLen): + * Compute PBKDF2(passwd, salt, c, dkLen) using HMAC-SHA256 as the PRF, and + * write the output to buf. The value dkLen must be at most 32 * (2^32 - 1). + */ +void PBKDF2_SHA256(const uint8_t *, size_t, const uint8_t *, size_t, + uint64_t, uint8_t *, size_t); + +#endif /* !_SHA256_H_ */ diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c new file mode 100644 index 0000000..7cf9f70 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c @@ -0,0 +1,208 @@ + +#include +#include +#include +#include +#include + +#include "crypto_pwhash_scryptsalsa208sha256.h" +#include "crypto_scrypt.h" +#include "randombytes.h" +#include "utils.h" + +#define SETTING_SIZE(saltbytes) \ + ((sizeof "$7$" - 1U) + \ + (1U /* N_log2 */) + (5U /* r */) + (5U /* p */) + BYTES2CHARS(saltbytes)) + +static int +pickparams(unsigned long long opslimit, const size_t memlimit, + uint32_t * const N_log2, uint32_t * const p, uint32_t * const r) +{ + unsigned long long maxN; + unsigned long long maxrp; + + if (opslimit < 32768) { + opslimit = 32768; + } + *r = 8; + if (opslimit < memlimit / 32) { + *p = 1; + maxN = opslimit / (*r * 4); + for (*N_log2 = 1; *N_log2 < 63; *N_log2 += 1) { + if ((uint64_t)(1) << *N_log2 > maxN / 2) { + break; + } + } + } else { + maxN = memlimit / ((size_t) *r * 128); + for (*N_log2 = 1; *N_log2 < 63; *N_log2 += 1) { + if ((uint64_t) (1) << *N_log2 > maxN / 2) { + break; + } + } + maxrp = (opslimit / 4) / ((uint64_t) (1) << *N_log2); + /* LCOV_EXCL_START */ + if (maxrp > 0x3fffffff) { + maxrp = 0x3fffffff; + } + /* LCOV_EXCL_STOP */ + *p = (uint32_t) (maxrp) / *r; + } + return 0; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_saltbytes(void) +{ + return crypto_pwhash_scryptsalsa208sha256_SALTBYTES; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_strbytes(void) +{ + return crypto_pwhash_scryptsalsa208sha256_STRBYTES; +} + +const char * +crypto_pwhash_scryptsalsa208sha256_strprefix(void) +{ + return crypto_pwhash_scryptsalsa208sha256_STRPREFIX; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(void) +{ + return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(void) +{ + return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(void) +{ + return crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE; +} + +size_t +crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(void) +{ + return crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE; +} + +int +crypto_pwhash_scryptsalsa208sha256(unsigned char * const out, + unsigned long long outlen, + const char * const passwd, + unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, + size_t memlimit) +{ + uint32_t N_log2; + uint32_t p; + uint32_t r; + + memset(out, 0, outlen); + if (passwdlen > SIZE_MAX || outlen > SIZE_MAX) { + errno = EFBIG; /* LCOV_EXCL_LINE */ + return -1; /* LCOV_EXCL_LINE */ + } + if (pickparams(opslimit, memlimit, &N_log2, &p, &r) != 0) { + errno = EINVAL; /* LCOV_EXCL_LINE */ + return -1; /* LCOV_EXCL_LINE */ + } + return crypto_pwhash_scryptsalsa208sha256_ll((const uint8_t *) passwd, + (size_t) passwdlen, + (const uint8_t *) salt, + crypto_pwhash_scryptsalsa208sha256_SALTBYTES, + (uint64_t) (1) << N_log2, r, p, + out, (size_t) outlen); +} + +int +crypto_pwhash_scryptsalsa208sha256_str(char out[crypto_pwhash_scryptsalsa208sha256_STRBYTES], + const char * const passwd, + unsigned long long passwdlen, + unsigned long long opslimit, + size_t memlimit) +{ + uint8_t salt[crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES]; + char setting[crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES + 1U]; + escrypt_local_t escrypt_local; + uint32_t N_log2; + uint32_t p; + uint32_t r; + + memset(out, 0, crypto_pwhash_scryptsalsa208sha256_STRBYTES); + if (passwdlen > SIZE_MAX) { + errno = EFBIG; /* LCOV_EXCL_LINE */ + return -1; /* LCOV_EXCL_LINE */ + } + if (pickparams(opslimit, memlimit, &N_log2, &p, &r) != 0) { + errno = EINVAL; /* LCOV_EXCL_LINE */ + return -1; /* LCOV_EXCL_LINE */ + } + randombytes_buf(salt, sizeof salt); + if (escrypt_gensalt_r(N_log2, r, p, salt, sizeof salt, + (uint8_t *) setting, sizeof setting) == NULL) { + errno = EINVAL; /* LCOV_EXCL_LINE */ + return -1; /* LCOV_EXCL_LINE */ + } + if (escrypt_init_local(&escrypt_local) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + if (escrypt_r(&escrypt_local, (const uint8_t *) passwd, (size_t) passwdlen, + (const uint8_t *) setting, (uint8_t *) out, + crypto_pwhash_scryptsalsa208sha256_STRBYTES) == NULL) { + /* LCOV_EXCL_START */ + escrypt_free_local(&escrypt_local); + errno = EINVAL; + return -1; + /* LCOV_EXCL_STOP */ + } + escrypt_free_local(&escrypt_local); + + (void) sizeof + (int[SETTING_SIZE(crypto_pwhash_scryptsalsa208sha256_STRSALTBYTES) + == crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES ? 1 : -1]); + (void) sizeof + (int[crypto_pwhash_scryptsalsa208sha256_STRSETTINGBYTES + 1U + + crypto_pwhash_scryptsalsa208sha256_STRHASHBYTES_ENCODED + 1U + == crypto_pwhash_scryptsalsa208sha256_STRBYTES ? 1 : -1]); + + return 0; +} + +int +crypto_pwhash_scryptsalsa208sha256_str_verify(const char str[crypto_pwhash_scryptsalsa208sha256_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) +{ + char wanted[crypto_pwhash_scryptsalsa208sha256_STRBYTES]; + escrypt_local_t escrypt_local; + int ret = -1; + + if (memchr(str, 0, crypto_pwhash_scryptsalsa208sha256_STRBYTES) != + &str[crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U]) { + return -1; + } + if (escrypt_init_local(&escrypt_local) != 0) { + return -1; /* LCOV_EXCL_LINE */ + } + memset(wanted, 0, sizeof wanted); + if (escrypt_r(&escrypt_local, (const uint8_t *) passwd, (size_t) passwdlen, + (const uint8_t *) str, (uint8_t *) wanted, + sizeof wanted) == NULL) { + escrypt_free_local(&escrypt_local); + return -1; + } + escrypt_free_local(&escrypt_local); + ret = sodium_memcmp(wanted, str, sizeof wanted); + sodium_memzero(wanted, sizeof wanted); + + return ret; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c new file mode 100644 index 0000000..a6f2615 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c @@ -0,0 +1,100 @@ +/*- + * Copyright 2013 Alexander Peslyak + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifdef HAVE_SYS_MMAN_H +# include +#endif +#include +#include + +#include "crypto_scrypt.h" +#include "runtime.h" + +#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS) +# define MAP_ANON MAP_ANONYMOUS +#endif + +void * +alloc_region(escrypt_region_t * region, size_t size) +{ + uint8_t * base, * aligned; +#if defined(MAP_ANON) && defined(HAVE_MMAP) + if ((base = (uint8_t *) mmap(NULL, size, PROT_READ | PROT_WRITE, +#ifdef MAP_NOCORE + MAP_ANON | MAP_PRIVATE | MAP_NOCORE, +#else + MAP_ANON | MAP_PRIVATE, +#endif + -1, 0)) == MAP_FAILED) + base = NULL; /* LCOV_EXCL_LINE */ + aligned = base; +#elif defined(HAVE_POSIX_MEMALIGN) + if ((errno = posix_memalign((void **) &base, 64, size)) != 0) + base = NULL; + aligned = base; +#else + base = aligned = NULL; + if (size + 63 < size) + errno = ENOMEM; + else if ((base = (uint8_t *) malloc(size + 63)) != NULL) { + aligned = base + 63; + aligned -= (uintptr_t)aligned & 63; + } +#endif + region->base = base; + region->aligned = aligned; + region->size = base ? size : 0; + return aligned; +} + +static inline void +init_region(escrypt_region_t * region) +{ + region->base = region->aligned = NULL; + region->size = 0; +} + +int +free_region(escrypt_region_t * region) +{ + if (region->base) { +#if defined(MAP_ANON) && defined(HAVE_MMAP) + if (munmap(region->base, region->size)) + return -1; /* LCOV_EXCL_LINE */ +#else + free(region->base); +#endif + } + init_region(region); + return 0; +} + +int +escrypt_init_local(escrypt_local_t * local) +{ + init_region(local); + return 0; +} + +int +escrypt_free_local(escrypt_local_t * local) +{ + return free_region(local); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c new file mode 100644 index 0000000..58e5956 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c @@ -0,0 +1,392 @@ +/*- + * Copyright 2009 Colin Percival + * Copyright 2012,2013 Alexander Peslyak + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * This file was originally written by Colin Percival as part of the Tarsnap + * online backup system. + */ + +#if defined(HAVE_EMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) +#ifdef __GNUC__ +# pragma GCC target("sse2") +#endif +#include +#if defined(__XOP__) && defined(DISABLED) +# include +#endif + +#include +#include +#include +#include +#include + +#include "../pbkdf2-sha256.h" +#include "../crypto_scrypt.h" +#include "private/common.h" + +#if defined(__XOP__) && defined(DISABLED) +#define ARX(out, in1, in2, s) \ + out = _mm_xor_si128(out, _mm_roti_epi32(_mm_add_epi32(in1, in2), s)); +#else +#define ARX(out, in1, in2, s) \ + { \ + __m128i T = _mm_add_epi32(in1, in2); \ + out = _mm_xor_si128(out, _mm_slli_epi32(T, s)); \ + out = _mm_xor_si128(out, _mm_srli_epi32(T, 32-s)); \ + } +#endif + +#define SALSA20_2ROUNDS \ + /* Operate on "columns". */ \ + ARX(X1, X0, X3, 7) \ + ARX(X2, X1, X0, 9) \ + ARX(X3, X2, X1, 13) \ + ARX(X0, X3, X2, 18) \ +\ + /* Rearrange data. */ \ + X1 = _mm_shuffle_epi32(X1, 0x93); \ + X2 = _mm_shuffle_epi32(X2, 0x4E); \ + X3 = _mm_shuffle_epi32(X3, 0x39); \ +\ + /* Operate on "rows". */ \ + ARX(X3, X0, X1, 7) \ + ARX(X2, X3, X0, 9) \ + ARX(X1, X2, X3, 13) \ + ARX(X0, X1, X2, 18) \ +\ + /* Rearrange data. */ \ + X1 = _mm_shuffle_epi32(X1, 0x39); \ + X2 = _mm_shuffle_epi32(X2, 0x4E); \ + X3 = _mm_shuffle_epi32(X3, 0x93); + +/** + * Apply the salsa20/8 core to the block provided in (X0 ... X3) ^ (Z0 ... Z3). + */ +#define SALSA20_8_XOR(in, out) \ + { \ + __m128i Y0 = X0 = _mm_xor_si128(X0, (in)[0]); \ + __m128i Y1 = X1 = _mm_xor_si128(X1, (in)[1]); \ + __m128i Y2 = X2 = _mm_xor_si128(X2, (in)[2]); \ + __m128i Y3 = X3 = _mm_xor_si128(X3, (in)[3]); \ + SALSA20_2ROUNDS \ + SALSA20_2ROUNDS \ + SALSA20_2ROUNDS \ + SALSA20_2ROUNDS \ + (out)[0] = X0 = _mm_add_epi32(X0, Y0); \ + (out)[1] = X1 = _mm_add_epi32(X1, Y1); \ + (out)[2] = X2 = _mm_add_epi32(X2, Y2); \ + (out)[3] = X3 = _mm_add_epi32(X3, Y3); \ + } + +/** + * blockmix_salsa8(Bin, Bout, r): + * Compute Bout = BlockMix_{salsa20/8, r}(Bin). The input Bin must be 128r + * bytes in length; the output Bout must also be the same size. + */ +static inline void +blockmix_salsa8(const __m128i * Bin, __m128i * Bout, size_t r) +{ + __m128i X0, X1, X2, X3; + size_t i; + + /* 1: X <-- B_{2r - 1} */ + X0 = Bin[8 * r - 4]; + X1 = Bin[8 * r - 3]; + X2 = Bin[8 * r - 2]; + X3 = Bin[8 * r - 1]; + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + SALSA20_8_XOR(Bin, Bout) + + /* 2: for i = 0 to 2r - 1 do */ + r--; + for (i = 0; i < r;) { + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + SALSA20_8_XOR(&Bin[i * 8 + 4], &Bout[(r + i) * 4 + 4]) + + i++; + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + SALSA20_8_XOR(&Bin[i * 8], &Bout[i * 4]) + } + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + SALSA20_8_XOR(&Bin[i * 8 + 4], &Bout[(r + i) * 4 + 4]) +} + +#define XOR4(in) \ + X0 = _mm_xor_si128(X0, (in)[0]); \ + X1 = _mm_xor_si128(X1, (in)[1]); \ + X2 = _mm_xor_si128(X2, (in)[2]); \ + X3 = _mm_xor_si128(X3, (in)[3]); + +#define XOR4_2(in1, in2) \ + X0 = _mm_xor_si128((in1)[0], (in2)[0]); \ + X1 = _mm_xor_si128((in1)[1], (in2)[1]); \ + X2 = _mm_xor_si128((in1)[2], (in2)[2]); \ + X3 = _mm_xor_si128((in1)[3], (in2)[3]); + +static inline uint32_t +blockmix_salsa8_xor(const __m128i * Bin1, const __m128i * Bin2, __m128i * Bout, + size_t r) +{ + __m128i X0, X1, X2, X3; + size_t i; + + /* 1: X <-- B_{2r - 1} */ + XOR4_2(&Bin1[8 * r - 4], &Bin2[8 * r - 4]) + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + XOR4(Bin1) + SALSA20_8_XOR(Bin2, Bout) + + /* 2: for i = 0 to 2r - 1 do */ + r--; + for (i = 0; i < r;) { + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + XOR4(&Bin1[i * 8 + 4]) + SALSA20_8_XOR(&Bin2[i * 8 + 4], &Bout[(r + i) * 4 + 4]) + + i++; + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + XOR4(&Bin1[i * 8]) + SALSA20_8_XOR(&Bin2[i * 8], &Bout[i * 4]) + } + + /* 3: X <-- H(X \xor B_i) */ + /* 4: Y_i <-- X */ + /* 6: B' <-- (Y_0, Y_2 ... Y_{2r-2}, Y_1, Y_3 ... Y_{2r-1}) */ + XOR4(&Bin1[i * 8 + 4]) + SALSA20_8_XOR(&Bin2[i * 8 + 4], &Bout[(r + i) * 4 + 4]) + + return _mm_cvtsi128_si32(X0); +} + +#undef ARX +#undef SALSA20_2ROUNDS +#undef SALSA20_8_XOR +#undef XOR4 +#undef XOR4_2 + +/** + * integerify(B, r): + * Return the result of parsing B_{2r-1} as a little-endian integer. + * Note that B's layout is permuted compared to the generic implementation. + */ +static inline uint32_t +integerify(const void * B, size_t r) +{ + return *(const uint32_t *)((uintptr_t)(B) + (2 * r - 1) * 64); +} + +/** + * smix(B, r, N, V, XY): + * Compute B = SMix_r(B, N). The input B must be 128r bytes in length; + * the temporary storage V must be 128rN bytes in length; the temporary + * storage XY must be 256r + 64 bytes in length. The value N must be a + * power of 2 greater than 1. The arrays B, V, and XY must be aligned to a + * multiple of 64 bytes. + */ +static void +smix(uint8_t * B, size_t r, uint32_t N, void * V, void * XY) +{ + size_t s = 128 * r; + __m128i * X = (__m128i *) V, * Y; + uint32_t * X32 = (uint32_t *) V; + uint32_t i, j; + size_t k; + + /* 1: X <-- B */ + /* 3: V_i <-- X */ + for (k = 0; k < 2 * r; k++) { + for (i = 0; i < 16; i++) { + X32[k * 16 + i] = + LOAD32_LE(&B[(k * 16 + (i * 5 % 16)) * 4]); + } + } + + /* 2: for i = 0 to N - 1 do */ + for (i = 1; i < N - 1; i += 2) { + /* 4: X <-- H(X) */ + /* 3: V_i <-- X */ + Y = (__m128i *)((uintptr_t)(V) + i * s); + blockmix_salsa8(X, Y, r); + + /* 4: X <-- H(X) */ + /* 3: V_i <-- X */ + X = (__m128i *)((uintptr_t)(V) + (i + 1) * s); + blockmix_salsa8(Y, X, r); + } + + /* 4: X <-- H(X) */ + /* 3: V_i <-- X */ + Y = (__m128i *)((uintptr_t)(V) + i * s); + blockmix_salsa8(X, Y, r); + + /* 4: X <-- H(X) */ + /* 3: V_i <-- X */ + X = (__m128i *) XY; + blockmix_salsa8(Y, X, r); + + X32 = (uint32_t *) XY; + Y = (__m128i *)((uintptr_t)(XY) + s); + + /* 7: j <-- Integerify(X) mod N */ + j = integerify(X, r) & (N - 1); + + /* 6: for i = 0 to N - 1 do */ + for (i = 0; i < N; i += 2) { + __m128i * V_j = (__m128i *)((uintptr_t)(V) + j * s); + + /* 8: X <-- H(X \xor V_j) */ + /* 7: j <-- Integerify(X) mod N */ + j = blockmix_salsa8_xor(X, V_j, Y, r) & (N - 1); + V_j = (__m128i *)((uintptr_t)(V) + j * s); + + /* 8: X <-- H(X \xor V_j) */ + /* 7: j <-- Integerify(X) mod N */ + j = blockmix_salsa8_xor(Y, V_j, X, r) & (N - 1); + } + + /* 10: B' <-- X */ + for (k = 0; k < 2 * r; k++) { + for (i = 0; i < 16; i++) { + STORE32_LE(&B[(k * 16 + (i * 5 % 16)) * 4], X32[k * 16 + i]); + } + } +} + +/** + * escrypt_kdf(local, passwd, passwdlen, salt, saltlen, + * N, r, p, buf, buflen): + * Compute scrypt(passwd[0 .. passwdlen - 1], salt[0 .. saltlen - 1], N, r, + * p, buflen) and write the result into buf. The parameters r, p, and buflen + * must satisfy r * p < 2^30 and buflen <= (2^32 - 1) * 32. The parameter N + * must be a power of 2 greater than 1. + * + * Return 0 on success; or -1 on error. + */ +int +escrypt_kdf_sse(escrypt_local_t * local, + const uint8_t * passwd, size_t passwdlen, + const uint8_t * salt, size_t saltlen, + uint64_t N, uint32_t _r, uint32_t _p, + uint8_t * buf, size_t buflen) +{ + size_t B_size, V_size, XY_size, need; + uint8_t * B; + uint32_t * V, * XY; + size_t r = _r, p = _p; + uint32_t i; + + /* Sanity-check parameters. */ +#if SIZE_MAX > UINT32_MAX + if (buflen > (((uint64_t)(1) << 32) - 1) * 32) { + errno = EFBIG; + return -1; + } +#endif + if ((uint64_t)(r) * (uint64_t)(p) >= ((uint64_t) 1 << 30)) { + errno = EFBIG; + return -1; + } + if (N > UINT32_MAX) { + errno = EFBIG; + return -1; + } + if (((N & (N - 1)) != 0) || (N < 2)) { + errno = EINVAL; + return -1; + } + if (r == 0 || p == 0) { + errno = EINVAL; + return -1; + } + if ((r > SIZE_MAX / 128 / p) || +#if SIZE_MAX / 256 <= UINT32_MAX + (r > SIZE_MAX / 256) || +#endif + (N > SIZE_MAX / 128 / r)) { + errno = ENOMEM; + return -1; + } + + /* Allocate memory. */ + B_size = (size_t)128 * r * p; + V_size = (size_t)128 * r * N; + need = B_size + V_size; + if (need < V_size) { + errno = ENOMEM; + return -1; + } + XY_size = (size_t)256 * r + 64; + need += XY_size; + if (need < XY_size) { + errno = ENOMEM; + return -1; + } + if (local->size < need) { + if (free_region(local)) + return -1; /* LCOV_EXCL_LINE */ + if (!alloc_region(local, need)) + return -1; /* LCOV_EXCL_LINE */ + } + B = (uint8_t *)local->aligned; + V = (uint32_t *)((uint8_t *)B + B_size); + XY = (uint32_t *)((uint8_t *)V + V_size); + + /* 1: (B_0 ... B_{p-1}) <-- PBKDF2(P, S, 1, p * MFLen) */ + PBKDF2_SHA256(passwd, passwdlen, salt, saltlen, 1, B, B_size); + + /* 2: for i = 0 to p - 1 do */ + for (i = 0; i < p; i++) { + /* 3: B_i <-- MF(B_i, N) */ + smix(&B[(size_t)128 * i * r], r, (uint32_t) N, V, XY); + } + + /* 5: DK <-- PBKDF2(P, B, 1, dkLen) */ + PBKDF2_SHA256(passwd, passwdlen, B, B_size, 1, buf, buflen); + + /* Success! */ + return 0; +} +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c new file mode 100644 index 0000000..9afffce --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c @@ -0,0 +1,33 @@ + +#include "crypto_scalarmult.h" + +const char * +crypto_scalarmult_primitive(void) +{ + return crypto_scalarmult_PRIMITIVE; +} + +int +crypto_scalarmult_base(unsigned char *q, const unsigned char *n) +{ + return crypto_scalarmult_curve25519_base(q, n); +} + +int +crypto_scalarmult(unsigned char *q, const unsigned char *n, + const unsigned char *p) +{ + return crypto_scalarmult_curve25519(q, n, p); +} + +size_t +crypto_scalarmult_bytes(void) +{ + return crypto_scalarmult_BYTES; +} + +size_t +crypto_scalarmult_scalarbytes(void) +{ + return crypto_scalarmult_SCALARBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c new file mode 100644 index 0000000..7b39a11 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c @@ -0,0 +1,480 @@ +/* Copyright 2008, Google Inc. + * All rights reserved. + * + * Code released into the public domain. + * + * curve25519-donna: Curve25519 elliptic curve, public key function + * + * http://code.google.com/p/curve25519-donna/ + * + * Adam Langley + * Parts optimised by floodyberry + * Derived from public domain C code by Daniel J. Bernstein + * + * More information about curve25519 can be found here + * http://cr.yp.to/ecdh.html + * + * djb's sample implementation of curve25519 is written in a special assembly + * language called qhasm and uses the floating point registers. + * + * This is, almost, a clean room reimplementation from the curve25519 paper. It + * uses many of the tricks described therein. Only the crecip function is taken + * from the sample implementation. + */ + +#include +#include + +#ifdef HAVE_TI_MODE + +#include "utils.h" +#include "curve25519_donna_c64.h" +#include "../scalarmult_curve25519.h" + +typedef uint8_t u8; +typedef uint64_t limb; +typedef limb felem[5]; +/* Special gcc mode for 128-bit integers */ +typedef unsigned uint128_t __attribute__ ((mode(TI))); + +/* Sum two numbers: output += in */ +static inline void +fsum(limb *output, const limb *in) { + output[0] += in[0]; + output[1] += in[1]; + output[2] += in[2]; + output[3] += in[3]; + output[4] += in[4]; +} + +/* Find the difference of two numbers: output = in - output + * (note the order of the arguments!) + * + * Assumes that out[i] < 2**52 + * On return, out[i] < 2**55 + */ +static inline void +fdifference_backwards(felem out, const felem in) { + /* 152 is 19 << 3 */ + static const limb two54m152 = (((limb)1) << 54) - 152; + static const limb two54m8 = (((limb)1) << 54) - 8; + + out[0] = in[0] + two54m152 - out[0]; + out[1] = in[1] + two54m8 - out[1]; + out[2] = in[2] + two54m8 - out[2]; + out[3] = in[3] + two54m8 - out[3]; + out[4] = in[4] + two54m8 - out[4]; +} + +/* Multiply a number by a scalar: output = in * scalar */ +static inline void +fscalar_product(felem output, const felem in, const limb scalar) { + uint128_t a; + + a = ((uint128_t) in[0]) * scalar; + output[0] = ((limb)a) & 0x7ffffffffffff; + + a = ((uint128_t) in[1]) * scalar + ((limb) (a >> 51)); + output[1] = ((limb)a) & 0x7ffffffffffff; + + a = ((uint128_t) in[2]) * scalar + ((limb) (a >> 51)); + output[2] = ((limb)a) & 0x7ffffffffffff; + + a = ((uint128_t) in[3]) * scalar + ((limb) (a >> 51)); + output[3] = ((limb)a) & 0x7ffffffffffff; + + a = ((uint128_t) in[4]) * scalar + ((limb) (a >> 51)); + output[4] = ((limb)a) & 0x7ffffffffffff; + + output[0] += (a >> 51) * 19; +} + +/* Multiply two numbers: output = in2 * in + * + * output must be distinct to both inputs. The inputs are reduced coefficient + * form, the output is not. + * + * Assumes that in[i] < 2**55 and likewise for in2. + * On return, output[i] < 2**52 + */ +static inline void +fmul(felem output, const felem in2, const felem in) { + uint128_t t[5]; + limb r0,r1,r2,r3,r4,s0,s1,s2,s3,s4,c; + + r0 = in[0]; + r1 = in[1]; + r2 = in[2]; + r3 = in[3]; + r4 = in[4]; + + s0 = in2[0]; + s1 = in2[1]; + s2 = in2[2]; + s3 = in2[3]; + s4 = in2[4]; + + t[0] = ((uint128_t) r0) * s0; + t[1] = ((uint128_t) r0) * s1 + ((uint128_t) r1) * s0; + t[2] = ((uint128_t) r0) * s2 + ((uint128_t) r2) * s0 + ((uint128_t) r1) * s1; + t[3] = ((uint128_t) r0) * s3 + ((uint128_t) r3) * s0 + ((uint128_t) r1) * s2 + ((uint128_t) r2) * s1; + t[4] = ((uint128_t) r0) * s4 + ((uint128_t) r4) * s0 + ((uint128_t) r3) * s1 + ((uint128_t) r1) * s3 + ((uint128_t) r2) * s2; + + r4 *= 19; + r1 *= 19; + r2 *= 19; + r3 *= 19; + + t[0] += ((uint128_t) r4) * s1 + ((uint128_t) r1) * s4 + ((uint128_t) r2) * s3 + ((uint128_t) r3) * s2; + t[1] += ((uint128_t) r4) * s2 + ((uint128_t) r2) * s4 + ((uint128_t) r3) * s3; + t[2] += ((uint128_t) r4) * s3 + ((uint128_t) r3) * s4; + t[3] += ((uint128_t) r4) * s4; + + r0 = (limb)t[0] & 0x7ffffffffffff; c = (limb)(t[0] >> 51); + t[1] += c; r1 = (limb)t[1] & 0x7ffffffffffff; c = (limb)(t[1] >> 51); + t[2] += c; r2 = (limb)t[2] & 0x7ffffffffffff; c = (limb)(t[2] >> 51); + t[3] += c; r3 = (limb)t[3] & 0x7ffffffffffff; c = (limb)(t[3] >> 51); + t[4] += c; r4 = (limb)t[4] & 0x7ffffffffffff; c = (limb)(t[4] >> 51); + r0 += c * 19; c = r0 >> 51; r0 = r0 & 0x7ffffffffffff; + r1 += c; c = r1 >> 51; r1 = r1 & 0x7ffffffffffff; + r2 += c; + + output[0] = r0; + output[1] = r1; + output[2] = r2; + output[3] = r3; + output[4] = r4; +} + +static inline void +fsquare_times(felem output, const felem in, limb count) { + uint128_t t[5]; + limb r0,r1,r2,r3,r4,c; + limb d0,d1,d2,d4,d419; + + r0 = in[0]; + r1 = in[1]; + r2 = in[2]; + r3 = in[3]; + r4 = in[4]; + + do { + d0 = r0 * 2; + d1 = r1 * 2; + d2 = r2 * 2 * 19; + d419 = r4 * 19; + d4 = d419 * 2; + + t[0] = ((uint128_t) r0) * r0 + ((uint128_t) d4) * r1 + (((uint128_t) d2) * (r3 )); + t[1] = ((uint128_t) d0) * r1 + ((uint128_t) d4) * r2 + (((uint128_t) r3) * (r3 * 19)); + t[2] = ((uint128_t) d0) * r2 + ((uint128_t) r1) * r1 + (((uint128_t) d4) * (r3 )); + t[3] = ((uint128_t) d0) * r3 + ((uint128_t) d1) * r2 + (((uint128_t) r4) * (d419 )); + t[4] = ((uint128_t) d0) * r4 + ((uint128_t) d1) * r3 + (((uint128_t) r2) * (r2 )); + + r0 = (limb)t[0] & 0x7ffffffffffff; c = (limb)(t[0] >> 51); + t[1] += c; r1 = (limb)t[1] & 0x7ffffffffffff; c = (limb)(t[1] >> 51); + t[2] += c; r2 = (limb)t[2] & 0x7ffffffffffff; c = (limb)(t[2] >> 51); + t[3] += c; r3 = (limb)t[3] & 0x7ffffffffffff; c = (limb)(t[3] >> 51); + t[4] += c; r4 = (limb)t[4] & 0x7ffffffffffff; c = (limb)(t[4] >> 51); + r0 += c * 19; c = r0 >> 51; r0 = r0 & 0x7ffffffffffff; + r1 += c; c = r1 >> 51; r1 = r1 & 0x7ffffffffffff; + r2 += c; + } while(--count); + + output[0] = r0; + output[1] = r1; + output[2] = r2; + output[3] = r3; + output[4] = r4; +} + +#ifdef NATIVE_LITTLE_ENDIAN +static inline limb +load_limb(const u8 *in) { + limb out; + memcpy(&out, in, sizeof (limb)); + return out; +} +static inline void +store_limb(u8 *out, limb in) { + memcpy(out, &in, sizeof (limb)); +} +#else +static inline limb +load_limb(const u8 *in) { + return + ((limb)in[0]) | + (((limb)in[1]) << 8) | + (((limb)in[2]) << 16) | + (((limb)in[3]) << 24) | + (((limb)in[4]) << 32) | + (((limb)in[5]) << 40) | + (((limb)in[6]) << 48) | + (((limb)in[7]) << 56); +} + +static inline void +store_limb(u8 *out, limb in) { + out[0] = in & 0xff; + out[1] = (in >> 8) & 0xff; + out[2] = (in >> 16) & 0xff; + out[3] = (in >> 24) & 0xff; + out[4] = (in >> 32) & 0xff; + out[5] = (in >> 40) & 0xff; + out[6] = (in >> 48) & 0xff; + out[7] = (in >> 56) & 0xff; +} +#endif + +/* Take a little-endian, 32-byte number and expand it into polynomial form */ +static void +fexpand(limb *output, const u8 *in) { + output[0] = load_limb(in) & 0x7ffffffffffff; + output[1] = (load_limb(in+6) >> 3) & 0x7ffffffffffff; + output[2] = (load_limb(in+12) >> 6) & 0x7ffffffffffff; + output[3] = (load_limb(in+19) >> 1) & 0x7ffffffffffff; + output[4] = (load_limb(in+24) >> 12) & 0x7ffffffffffff; +} + +/* Take a fully reduced polynomial form number and contract it into a + * little-endian, 32-byte array + */ +static void +fcontract(u8 *output, const felem input) { + uint128_t t[5]; + + t[0] = input[0]; + t[1] = input[1]; + t[2] = input[2]; + t[3] = input[3]; + t[4] = input[4]; + + t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; + t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; + t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; + t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; + t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; + + t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; + t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; + t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; + t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; + t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; + + /* now t is between 0 and 2^255-1, properly carried. */ + /* case 1: between 0 and 2^255-20. case 2: between 2^255-19 and 2^255-1. */ + + t[0] += 19; + + t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; + t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; + t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; + t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; + t[0] += 19 * (t[4] >> 51); t[4] &= 0x7ffffffffffff; + + /* now between 19 and 2^255-1 in both cases, and offset by 19. */ + + t[0] += 0x8000000000000 - 19; + t[1] += 0x8000000000000 - 1; + t[2] += 0x8000000000000 - 1; + t[3] += 0x8000000000000 - 1; + t[4] += 0x8000000000000 - 1; + + /* now between 2^255 and 2^256-20, and offset by 2^255. */ + + t[1] += t[0] >> 51; t[0] &= 0x7ffffffffffff; + t[2] += t[1] >> 51; t[1] &= 0x7ffffffffffff; + t[3] += t[2] >> 51; t[2] &= 0x7ffffffffffff; + t[4] += t[3] >> 51; t[3] &= 0x7ffffffffffff; + t[4] &= 0x7ffffffffffff; + + store_limb(output, t[0] | (t[1] << 51)); + store_limb(output + 8, (t[1] >> 13) | (t[2] << 38)); + store_limb(output + 16, (t[2] >> 26) | (t[3] << 25)); + store_limb(output + 24, (t[3] >> 39) | (t[4] << 12)); +} + +/* Input: Q, Q', Q-Q' + * Output: 2Q, Q+Q' + * + * x2 z2: long form + * x3 z3: long form + * x z: short form, destroyed + * xprime zprime: short form, destroyed + * qmqp: short form, preserved + */ +static void +fmonty(limb *x2, limb *z2, /* output 2Q */ + limb *x3, limb *z3, /* output Q + Q' */ + limb *x, limb *z, /* input Q */ + limb *xprime, limb *zprime, /* input Q' */ + const limb *qmqp /* input Q - Q' */) { + limb origx[5], origxprime[5], zzz[5], xx[5], zz[5], xxprime[5], + zzprime[5], zzzprime[5]; + + memcpy(origx, x, 5 * sizeof(limb)); + fsum(x, z); + fdifference_backwards(z, origx); /* does x - z */ + + memcpy(origxprime, xprime, sizeof(limb) * 5); + fsum(xprime, zprime); + fdifference_backwards(zprime, origxprime); + fmul(xxprime, xprime, z); + fmul(zzprime, x, zprime); + memcpy(origxprime, xxprime, sizeof(limb) * 5); + fsum(xxprime, zzprime); + fdifference_backwards(zzprime, origxprime); + fsquare_times(x3, xxprime, 1); + fsquare_times(zzzprime, zzprime, 1); + fmul(z3, zzzprime, qmqp); + + fsquare_times(xx, x, 1); + fsquare_times(zz, z, 1); + fmul(x2, xx, zz); + fdifference_backwards(zz, xx); /* does zz = xx - zz */ + fscalar_product(zzz, zz, 121665); + fsum(zzz, xx); + fmul(z2, zz, zzz); +} + +/* ----------------------------------------------------------------------------- + Maybe swap the contents of two limb arrays (@a and @b), each @len elements + long. Perform the swap iff @swap is non-zero. + + This function performs the swap without leaking any side-channel + information. + ----------------------------------------------------------------------------- */ +static void +swap_conditional(limb a[5], limb b[5], limb iswap) { + unsigned i; + const limb swap = -iswap; + + for (i = 0; i < 5; ++i) { + const limb x = swap & (a[i] ^ b[i]); + a[i] ^= x; + b[i] ^= x; + } +} + +/* Calculates nQ where Q is the x-coordinate of a point on the curve + * + * resultx/resultz: the x coordinate of the resulting curve point (short form) + * n: a little endian, 32-byte number + * q: a point of the curve (short form) + */ +static void +cmult(limb *resultx, limb *resultz, const u8 *n, const limb *q) { + limb a[5] = {0}, b[5] = {1}, c[5] = {1}, d[5] = {0}; + limb *nqpqx = a, *nqpqz = b, *nqx = c, *nqz = d, *t; + limb e[5] = {0}, f[5] = {1}, g[5] = {0}, h[5] = {1}; + limb *nqpqx2 = e, *nqpqz2 = f, *nqx2 = g, *nqz2 = h; + + unsigned i, j; + + memcpy(nqpqx, q, sizeof(limb) * 5); + + for (i = 0; i < 32; ++i) { + u8 byte = n[31 - i]; + for (j = 0; j < 8; ++j) { + const limb bit = byte >> 7; + + swap_conditional(nqx, nqpqx, bit); + swap_conditional(nqz, nqpqz, bit); + fmonty(nqx2, nqz2, + nqpqx2, nqpqz2, + nqx, nqz, + nqpqx, nqpqz, + q); + swap_conditional(nqx2, nqpqx2, bit); + swap_conditional(nqz2, nqpqz2, bit); + + t = nqx; + nqx = nqx2; + nqx2 = t; + t = nqz; + nqz = nqz2; + nqz2 = t; + t = nqpqx; + nqpqx = nqpqx2; + nqpqx2 = t; + t = nqpqz; + nqpqz = nqpqz2; + nqpqz2 = t; + + byte <<= 1; + } + } + + memcpy(resultx, nqx, sizeof(limb) * 5); + memcpy(resultz, nqz, sizeof(limb) * 5); +} + + +/* ----------------------------------------------------------------------------- + Shamelessly copied from djb's code, tightened a little + ----------------------------------------------------------------------------- */ +static void +crecip(felem out, const felem z) { + felem a,t0,b,c; + + /* 2 */ fsquare_times(a, z, 1); /* a = 2 */ + /* 8 */ fsquare_times(t0, a, 2); + /* 9 */ fmul(b, t0, z); /* b = 9 */ + /* 11 */ fmul(a, b, a); /* a = 11 */ + /* 22 */ fsquare_times(t0, a, 1); + /* 2^5 - 2^0 = 31 */ fmul(b, t0, b); + /* 2^10 - 2^5 */ fsquare_times(t0, b, 5); + /* 2^10 - 2^0 */ fmul(b, t0, b); + /* 2^20 - 2^10 */ fsquare_times(t0, b, 10); + /* 2^20 - 2^0 */ fmul(c, t0, b); + /* 2^40 - 2^20 */ fsquare_times(t0, c, 20); + /* 2^40 - 2^0 */ fmul(t0, t0, c); + /* 2^50 - 2^10 */ fsquare_times(t0, t0, 10); + /* 2^50 - 2^0 */ fmul(b, t0, b); + /* 2^100 - 2^50 */ fsquare_times(t0, b, 50); + /* 2^100 - 2^0 */ fmul(c, t0, b); + /* 2^200 - 2^100 */ fsquare_times(t0, c, 100); + /* 2^200 - 2^0 */ fmul(t0, t0, c); + /* 2^250 - 2^50 */ fsquare_times(t0, t0, 50); + /* 2^250 - 2^0 */ fmul(t0, t0, b); + /* 2^255 - 2^5 */ fsquare_times(t0, t0, 5); + /* 2^255 - 21 */ fmul(out, t0, a); +} + +static const unsigned char basepoint[32] = {9}; + +static int +crypto_scalarmult_curve25519_donna_c64(unsigned char *mypublic, + const unsigned char *secret, + const unsigned char *basepoint) { + limb bp[5], x[5], z[5], zmone[5]; + uint8_t e[32]; + int i; + + for (i = 0;i < 32;++i) e[i] = secret[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + + fexpand(bp, basepoint); + cmult(x, z, e, bp); + crecip(zmone, z); + fmul(z, x, zmone); + fcontract(mypublic, z); + return 0; +} + +static int +crypto_scalarmult_curve25519_donna_c64_base(unsigned char *q, + const unsigned char *n) +{ + return crypto_scalarmult_curve25519_donna_c64(q, n, basepoint); +} + +struct crypto_scalarmult_curve25519_implementation +crypto_scalarmult_curve25519_donna_c64_implementation = { + SODIUM_C99(.mult = ) crypto_scalarmult_curve25519_donna_c64, + SODIUM_C99(.mult_base = ) crypto_scalarmult_curve25519_donna_c64_base +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h new file mode 100644 index 0000000..d114be5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h @@ -0,0 +1,10 @@ +#ifndef curve25519_donna_c64_H +#define curve25519_donna_c64_H + +#include "crypto_scalarmult_curve25519.h" +#include "../scalarmult_curve25519.h" + +extern struct crypto_scalarmult_curve25519_implementation + crypto_scalarmult_curve25519_donna_c64_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c new file mode 100644 index 0000000..f9bb815 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c @@ -0,0 +1,255 @@ + +#include +#include + +#ifndef HAVE_TI_MODE + +#include "utils.h" +#include "x25519_ref10.h" +#include "../scalarmult_curve25519.h" +#include "private/curve25519_ref10.h" + +/* +Replace (f,g) with (g,f) if b == 1; +replace (f,g) with (f,g) if b == 0. + +Preconditions: b in {0,1}. +*/ + +static 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); + 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 * 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. +*/ + +static void +fe_mul121666(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]; + 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 * ((int64_t) 1 << 25); + carry1 = (h1 + ((int64_t) 1 << 24)) >> 25; h2 += carry1; h1 -= carry1 * ((int64_t) 1 << 25); + carry3 = (h3 + ((int64_t) 1 << 24)) >> 25; h4 += carry3; h3 -= carry3 * ((int64_t) 1 << 25); + carry5 = (h5 + ((int64_t) 1 << 24)) >> 25; h6 += carry5; h5 -= carry5 * ((int64_t) 1 << 25); + carry7 = (h7 + ((int64_t) 1 << 24)) >> 25; h8 += carry7; h7 -= carry7 * ((int64_t) 1 << 25); + + carry0 = (h0 + ((int64_t) 1 << 25)) >> 26; h1 += carry0; h0 -= carry0 * ((int64_t) 1 << 26); + carry2 = (h2 + ((int64_t) 1 << 25)) >> 26; h3 += carry2; h2 -= carry2 * ((int64_t) 1 << 26); + carry4 = (h4 + ((int64_t) 1 << 25)) >> 26; h5 += carry4; h4 -= carry4 * ((int64_t) 1 << 26); + carry6 = (h6 + ((int64_t) 1 << 25)) >> 26; h7 += carry6; h6 -= carry6 * ((int64_t) 1 << 26); + carry8 = (h8 + ((int64_t) 1 << 25)) >> 26; h9 += carry8; h8 -= carry8 * ((int64_t) 1 << 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; +} + +static int +crypto_scalarmult_curve25519_ref10(unsigned char *q, + const unsigned char *n, + const unsigned char *p) +{ + 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; + + for (i = 0;i < 32;++i) e[i] = n[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + fe_frombytes(x1,p); + 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; + 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(q,x2); + return 0; +} + +static void +edwards_to_montgomery(fe montgomeryX, const fe edwardsY, const fe edwardsZ) +{ + fe tempX; + fe tempZ; + + fe_add(tempX, edwardsZ, edwardsY); + fe_sub(tempZ, edwardsZ, edwardsY); + fe_invert(tempZ, tempZ); + fe_mul(montgomeryX, tempX, tempZ); +} + +static int +crypto_scalarmult_curve25519_ref10_base(unsigned char *q, + const unsigned char *n) +{ + unsigned char e[32]; + ge_p3 A; + fe pk; + unsigned int i; + + for (i = 0;i < 32;++i) e[i] = n[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + ge_scalarmult_base(&A, e); + edwards_to_montgomery(pk, A.Y, A.Z); + fe_tobytes(q, pk); + return 0; +} + +struct crypto_scalarmult_curve25519_implementation +crypto_scalarmult_curve25519_ref10_implementation = { + SODIUM_C99(.mult = ) crypto_scalarmult_curve25519_ref10, + SODIUM_C99(.mult_base = ) crypto_scalarmult_curve25519_ref10_base +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h new file mode 100644 index 0000000..98cf192 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.h @@ -0,0 +1,10 @@ +#ifndef x25519_ref10_H +#define x25519_ref10_H + +#include "crypto_scalarmult_curve25519.h" +#include "../scalarmult_curve25519.h" + +extern struct crypto_scalarmult_curve25519_implementation + crypto_scalarmult_curve25519_ref10_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h new file mode 100644 index 0000000..9f81fa6 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h @@ -0,0 +1,20 @@ +#ifndef consts_namespace_H +#define consts_namespace_H + +#define v0_0 crypto_scalarmult_curve25519_sandy2x_v0_0 +#define v1_0 crypto_scalarmult_curve25519_sandy2x_v1_0 +#define v2_1 crypto_scalarmult_curve25519_sandy2x_v2_1 +#define v9_0 crypto_scalarmult_curve25519_sandy2x_v9_0 +#define v9_9 crypto_scalarmult_curve25519_sandy2x_v9_9 +#define v19_19 crypto_scalarmult_curve25519_sandy2x_v19_19 +#define v38_1 crypto_scalarmult_curve25519_sandy2x_v38_1 +#define v38_38 crypto_scalarmult_curve25519_sandy2x_v38_38 +#define v121666_121666 crypto_scalarmult_curve25519_sandy2x_v121666_121666 +#define m25 crypto_scalarmult_curve25519_sandy2x_m25 +#define m26 crypto_scalarmult_curve25519_sandy2x_m26 +#define subc0 crypto_scalarmult_curve25519_sandy2x_subc0 +#define subc2 crypto_scalarmult_curve25519_sandy2x_subc2 +#define REDMASK51 crypto_scalarmult_curve25519_sandy2x_REDMASK51 + +#endif /* ifndef consts_namespace_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c new file mode 100644 index 0000000..3d126a0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c @@ -0,0 +1,114 @@ +/* + This file is adapted from ref10/scalarmult.c: + The code for Mongomery ladder is replace by the ladder assembly function; + Inversion is done in the same way as amd64-51/. + (fe is first converted into fe51 after Mongomery ladder) +*/ + +#include + +#ifdef HAVE_AVX_ASM + +#include "utils.h" +#include "curve25519_sandy2x.h" +#include "../scalarmult_curve25519.h" +#include "fe.h" +#include "fe51.h" +#include "ladder.h" +#include "ladder_base.h" + +#define x1 var[0] +#define x2 var[1] +#define z2 var[2] + +static int +crypto_scalarmult_curve25519_sandy2x(unsigned char *q, const unsigned char *n, + const unsigned char *p) +{ + unsigned char e[32]; + unsigned int i; + + fe var[3]; + + fe51 x_51; + fe51 z_51; + + for (i = 0;i < 32;++i) e[i] = n[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + + fe_frombytes(x1, p); + + ladder(var, e); + + z_51.v[0] = (z2[1] << 26) + z2[0]; + z_51.v[1] = (z2[3] << 26) + z2[2]; + z_51.v[2] = (z2[5] << 26) + z2[4]; + z_51.v[3] = (z2[7] << 26) + z2[6]; + z_51.v[4] = (z2[9] << 26) + z2[8]; + + x_51.v[0] = (x2[1] << 26) + x2[0]; + x_51.v[1] = (x2[3] << 26) + x2[2]; + x_51.v[2] = (x2[5] << 26) + x2[4]; + x_51.v[3] = (x2[7] << 26) + x2[6]; + x_51.v[4] = (x2[9] << 26) + x2[8]; + + fe51_invert(&z_51, &z_51); + fe51_mul(&x_51, &x_51, &z_51); + fe51_pack(q, &x_51); + + return 0; +} + +#undef x2 +#undef z2 + +#define x2 var[0] +#define z2 var[1] + +static int +crypto_scalarmult_curve25519_sandy2x_base(unsigned char *q, + const unsigned char *n) +{ + unsigned char e[32]; + unsigned int i; + + fe var[3]; + + fe51 x_51; + fe51 z_51; + + for (i = 0;i < 32;++i) e[i] = n[i]; + e[0] &= 248; + e[31] &= 127; + e[31] |= 64; + + ladder_base(var, e); + + z_51.v[0] = (z2[1] << 26) + z2[0]; + z_51.v[1] = (z2[3] << 26) + z2[2]; + z_51.v[2] = (z2[5] << 26) + z2[4]; + z_51.v[3] = (z2[7] << 26) + z2[6]; + z_51.v[4] = (z2[9] << 26) + z2[8]; + + x_51.v[0] = (x2[1] << 26) + x2[0]; + x_51.v[1] = (x2[3] << 26) + x2[2]; + x_51.v[2] = (x2[5] << 26) + x2[4]; + x_51.v[3] = (x2[7] << 26) + x2[6]; + x_51.v[4] = (x2[9] << 26) + x2[8]; + + fe51_invert(&z_51, &z_51); + fe51_mul(&x_51, &x_51, &z_51); + fe51_pack(q, &x_51); + + return 0; +} + +struct crypto_scalarmult_curve25519_implementation +crypto_scalarmult_curve25519_sandy2x_implementation = { + SODIUM_C99(.mult = ) crypto_scalarmult_curve25519_sandy2x, + SODIUM_C99(.mult_base = ) crypto_scalarmult_curve25519_sandy2x_base +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h new file mode 100644 index 0000000..f02d980 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h @@ -0,0 +1,9 @@ +#ifndef curve25519_sandy2x_H +#define curve25519_sandy2x_H + +#include "crypto_scalarmult_curve25519.h" + +extern struct crypto_scalarmult_curve25519_implementation + crypto_scalarmult_curve25519_sandy2x_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h new file mode 100644 index 0000000..b1115f8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h @@ -0,0 +1,26 @@ +/* + This file is adapted from ref10/fe.h: + All the redundant functions are removed. +*/ + +#ifndef fe_H +#define fe_H + +#include +#include + +typedef uint64_t fe[10]; + +/* +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. +*/ + +#define fe_frombytes crypto_scalarmult_curve25519_sandy2x_fe_frombytes + +extern void fe_frombytes(fe, const unsigned char *); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h new file mode 100644 index 0000000..8e3f199 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h @@ -0,0 +1,35 @@ +/* + This file is adapted from amd64-51/fe25519.h: + 'fe25519' is renamed as 'fe51'; + All the redundant functions are removed; + New function fe51_nsquare is introduced. +*/ + +#ifndef fe51_H +#define fe51_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include "fe51_namespace.h" + +typedef struct +{ + uint64_t v[5]; +} +fe51; + +extern void fe51_pack(unsigned char *, const fe51 *); +extern void fe51_mul(fe51 *, const fe51 *, const fe51 *); +extern void fe51_nsquare(fe51 *, const fe51 *, int); +extern void fe51_invert(fe51 *, const fe51 *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c new file mode 100644 index 0000000..70cd13a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c @@ -0,0 +1,57 @@ +/* + This file is adapted from amd64-51/fe25519_invert.c: + Loops of squares are replaced by nsquares for better performance. +*/ + +#include "fe51.h" + +#ifdef HAVE_AVX_ASM + +#define fe51_square(x, y) fe51_nsquare(x, y, 1) + +void fe51_invert(fe51 *r, const fe51 *x) +{ + fe51 z2; + fe51 z9; + fe51 z11; + fe51 z2_5_0; + fe51 z2_10_0; + fe51 z2_20_0; + fe51 z2_50_0; + fe51 z2_100_0; + fe51 t; + + /* 2 */ fe51_square(&z2,x); + /* 4 */ fe51_square(&t,&z2); + /* 8 */ fe51_square(&t,&t); + /* 9 */ fe51_mul(&z9,&t,x); + /* 11 */ fe51_mul(&z11,&z9,&z2); + /* 22 */ fe51_square(&t,&z11); + /* 2^5 - 2^0 = 31 */ fe51_mul(&z2_5_0,&t,&z9); + + /* 2^10 - 2^5 */ fe51_nsquare(&t,&z2_5_0, 5); + /* 2^10 - 2^0 */ fe51_mul(&z2_10_0,&t,&z2_5_0); + + /* 2^20 - 2^10 */ fe51_nsquare(&t,&z2_10_0, 10); + /* 2^20 - 2^0 */ fe51_mul(&z2_20_0,&t,&z2_10_0); + + /* 2^40 - 2^20 */ fe51_nsquare(&t,&z2_20_0, 20); + /* 2^40 - 2^0 */ fe51_mul(&t,&t,&z2_20_0); + + /* 2^50 - 2^10 */ fe51_nsquare(&t,&t,10); + /* 2^50 - 2^0 */ fe51_mul(&z2_50_0,&t,&z2_10_0); + + /* 2^100 - 2^50 */ fe51_nsquare(&t,&z2_50_0, 50); + /* 2^100 - 2^0 */ fe51_mul(&z2_100_0,&t,&z2_50_0); + + /* 2^200 - 2^100 */ fe51_nsquare(&t,&z2_100_0, 100); + /* 2^200 - 2^0 */ fe51_mul(&t,&t,&z2_100_0); + + /* 2^250 - 2^50 */ fe51_nsquare(&t,&t, 50); + /* 2^250 - 2^0 */ fe51_mul(&t,&t,&z2_50_0); + + /* 2^255 - 2^5 */ fe51_nsquare(&t,&t,5); + /* 2^255 - 21 */ fe51_mul(r,&t,&z11); +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h new file mode 100644 index 0000000..057f242 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h @@ -0,0 +1,16 @@ +#ifndef fe51_namespace_H +#define fe51_namespace_H + +#define fe51 crypto_scalarmult_curve25519_sandy2x_fe51 +#define _fe51 _crypto_scalarmult_curve25519_sandy2x_fe51 +#define fe51_pack crypto_scalarmult_curve25519_sandy2x_fe51_pack +#define _fe51_pack _crypto_scalarmult_curve25519_sandy2x_fe51_pack +#define fe51_mul crypto_scalarmult_curve25519_sandy2x_fe51_mul +#define _fe51_mul _crypto_scalarmult_curve25519_sandy2x_fe51_mul +#define fe51_nsquare crypto_scalarmult_curve25519_sandy2x_fe51_nsquare +#define _fe51_nsquare _crypto_scalarmult_curve25519_sandy2x_fe51_nsquare + +#define fe51_invert crypto_scalarmult_curve25519_sandy2x_fe51_invert + +#endif /* ifndef fe51_namespace_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c new file mode 100644 index 0000000..f1a29a3 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c @@ -0,0 +1,75 @@ +/* + This file is basically ref10/fe_frombytes.h. +*/ + +#include "fe.h" + +#ifdef HAVE_AVX_ASM + +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; +} + +void fe_frombytes(fe h,const unsigned char *s) +{ + uint64_t h0 = load_4(s); + uint64_t h1 = load_3(s + 4) << 6; + uint64_t h2 = load_3(s + 7) << 5; + uint64_t h3 = load_3(s + 10) << 3; + uint64_t h4 = load_3(s + 13) << 2; + uint64_t h5 = load_4(s + 16); + uint64_t h6 = load_3(s + 20) << 7; + uint64_t h7 = load_3(s + 23) << 5; + uint64_t h8 = load_3(s + 26) << 4; + uint64_t h9 = (load_3(s + 29) & 8388607) << 2; + uint64_t carry0; + uint64_t carry1; + uint64_t carry2; + uint64_t carry3; + uint64_t carry4; + uint64_t carry5; + uint64_t carry6; + uint64_t carry7; + uint64_t carry8; + uint64_t carry9; + + carry9 = h9 >> 25; h0 += carry9 * 19; h9 &= 0x1FFFFFF; + carry1 = h1 >> 25; h2 += carry1; h1 &= 0x1FFFFFF; + carry3 = h3 >> 25; h4 += carry3; h3 &= 0x1FFFFFF; + carry5 = h5 >> 25; h6 += carry5; h5 &= 0x1FFFFFF; + carry7 = h7 >> 25; h8 += carry7; h7 &= 0x1FFFFFF; + + carry0 = h0 >> 26; h1 += carry0; h0 &= 0x3FFFFFF; + carry2 = h2 >> 26; h3 += carry2; h2 &= 0x3FFFFFF; + carry4 = h4 >> 26; h5 += carry4; h4 &= 0x3FFFFFF; + carry6 = h6 >> 26; h7 += carry6; h6 &= 0x3FFFFFF; + carry8 = h8 >> 26; h9 += carry8; h8 &= 0x3FFFFFF; + + 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; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h new file mode 100644 index 0000000..ccf4eca --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h @@ -0,0 +1,18 @@ +#ifndef ladder_H +#define ladder_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "fe.h" +#include "ladder_namespace.h" + +extern void ladder(fe *, const unsigned char *); + +#ifdef __cplusplus +} +#endif + +#endif /* ifndef ladder_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h new file mode 100644 index 0000000..a69be13 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h @@ -0,0 +1,18 @@ +#ifndef ladder_base_H +#define ladder_base_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "fe.h" +#include "ladder_base_namespace.h" + +extern void ladder_base(fe *, const unsigned char *); + +#ifdef __cplusplus +} +#endif + +#endif /* ifndef ladder_base_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h new file mode 100644 index 0000000..304546a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h @@ -0,0 +1,8 @@ +#ifndef ladder_base_namespace_H +#define ladder_base_namespace_H + +#define ladder_base crypto_scalarmult_curve25519_sandy2x_ladder_base +#define _ladder_base _crypto_scalarmult_curve25519_sandy2x_ladder_base + +#endif /* ifndef ladder_base_namespace_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h new file mode 100644 index 0000000..6637074 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h @@ -0,0 +1,8 @@ +#ifndef ladder_namespace_H +#define ladder_namespace_H + +#define ladder crypto_scalarmult_curve25519_sandy2x_ladder +#define _ladder _crypto_scalarmult_curve25519_sandy2x_ladder + +#endif /* ifndef ladder_namespace_H */ + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c new file mode 100644 index 0000000..72968ff --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c @@ -0,0 +1,67 @@ + +#include "crypto_scalarmult_curve25519.h" +#include "scalarmult_curve25519.h" +#include "runtime.h" + +#ifdef HAVE_AVX_ASM +# include "sandy2x/curve25519_sandy2x.h" +#endif +#ifdef HAVE_TI_MODE +# include "donna_c64/curve25519_donna_c64.h" +static const crypto_scalarmult_curve25519_implementation *implementation = + &crypto_scalarmult_curve25519_donna_c64_implementation; +#else +# include "ref10/x25519_ref10.h" +static const crypto_scalarmult_curve25519_implementation *implementation = + &crypto_scalarmult_curve25519_ref10_implementation; +#endif + +int +crypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n, + const unsigned char *p) +{ + size_t i; + unsigned char d = 0; + + if (implementation->mult(q, n, p) != 0) { + return -1; + } + for (i = 0; i < crypto_scalarmult_curve25519_BYTES; i++) { + d |= q[i]; + } + return -(1 & ((d - 1) >> 8)); +} + +int +crypto_scalarmult_curve25519_base(unsigned char *q, const unsigned char *n) +{ + return implementation->mult_base(q, n); +} + +size_t +crypto_scalarmult_curve25519_bytes(void) +{ + return crypto_scalarmult_curve25519_BYTES; +} + +size_t +crypto_scalarmult_curve25519_scalarbytes(void) +{ + return crypto_scalarmult_curve25519_SCALARBYTES; +} + +int +_crypto_scalarmult_curve25519_pick_best_implementation(void) +{ +#ifdef HAVE_TI_MODE + implementation = &crypto_scalarmult_curve25519_donna_c64_implementation; +#else + implementation = &crypto_scalarmult_curve25519_ref10_implementation; +#endif +#ifdef HAVE_AVX_ASM + if (sodium_runtime_has_avx()) { + implementation = &crypto_scalarmult_curve25519_sandy2x_implementation; + } +#endif + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h new file mode 100644 index 0000000..66edbf6 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h @@ -0,0 +1,11 @@ + +#ifndef scalarmult_poly1305_H +#define scalarmult_poly1305_H + +typedef struct crypto_scalarmult_curve25519_implementation { + int (*mult)(unsigned char *q, const unsigned char *n, + const unsigned char *p); + int (*mult_base)(unsigned char *q, const unsigned char *n); +} crypto_scalarmult_curve25519_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c new file mode 100644 index 0000000..456f9f0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c @@ -0,0 +1,54 @@ + +#include "crypto_secretbox.h" + +size_t +crypto_secretbox_keybytes(void) +{ + return crypto_secretbox_KEYBYTES; +} + +size_t +crypto_secretbox_noncebytes(void) +{ + return crypto_secretbox_NONCEBYTES; +} + +size_t +crypto_secretbox_zerobytes(void) +{ + return crypto_secretbox_ZEROBYTES; +} + +size_t +crypto_secretbox_boxzerobytes(void) +{ + return crypto_secretbox_BOXZEROBYTES; +} + +size_t +crypto_secretbox_macbytes(void) +{ + return crypto_secretbox_MACBYTES; +} + +const char * +crypto_secretbox_primitive(void) +{ + return crypto_secretbox_PRIMITIVE; +} + +int +crypto_secretbox(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_secretbox_xsalsa20poly1305(c, m, mlen, n, k); +} + +int +crypto_secretbox_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_secretbox_xsalsa20poly1305_open(m, c, clen, n, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c new file mode 100644 index 0000000..008c680 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c @@ -0,0 +1,142 @@ + +#include +#include +#include +#include +#include + +#include "crypto_core_hsalsa20.h" +#include "crypto_onetimeauth_poly1305.h" +#include "crypto_secretbox.h" +#include "crypto_stream_salsa20.h" +#include "utils.h" + +int +crypto_secretbox_detached(unsigned char *c, unsigned char *mac, + const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + crypto_onetimeauth_poly1305_state state; + unsigned char block0[64U]; + unsigned char subkey[crypto_stream_salsa20_KEYBYTES]; + unsigned long long i; + unsigned long long mlen0; + + crypto_core_hsalsa20(subkey, n, k, NULL); + + if (((uintptr_t) c >= (uintptr_t) m && + (uintptr_t) c - (uintptr_t) m < mlen) || + ((uintptr_t) m >= (uintptr_t) c && + (uintptr_t) m - (uintptr_t) c < mlen)) { + memmove(c, m, mlen); + m = c; + } + memset(block0, 0U, crypto_secretbox_ZEROBYTES); + (void) sizeof(int[64U >= crypto_secretbox_ZEROBYTES ? 1 : -1]); + mlen0 = mlen; + if (mlen0 > 64U - crypto_secretbox_ZEROBYTES) { + mlen0 = 64U - crypto_secretbox_ZEROBYTES; + } + for (i = 0U; i < mlen0; i++) { + block0[i + crypto_secretbox_ZEROBYTES] = m[i]; + } + crypto_stream_salsa20_xor(block0, block0, + mlen0 + crypto_secretbox_ZEROBYTES, + n + 16, subkey); + (void) sizeof(int[crypto_secretbox_ZEROBYTES >= + crypto_onetimeauth_poly1305_KEYBYTES ? 1 : -1]); + crypto_onetimeauth_poly1305_init(&state, block0); + + for (i = 0U; i < mlen0; i++) { + c[i] = block0[crypto_secretbox_ZEROBYTES + i]; + } + sodium_memzero(block0, sizeof block0); + if (mlen > mlen0) { + crypto_stream_salsa20_xor_ic(c + mlen0, m + mlen0, mlen - mlen0, + n + 16, 1U, subkey); + } + sodium_memzero(subkey, sizeof subkey); + + crypto_onetimeauth_poly1305_update(&state, c, mlen); + crypto_onetimeauth_poly1305_final(&state, mac); + sodium_memzero(&state, sizeof state); + + return 0; +} + +int +crypto_secretbox_easy(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + if (mlen > SIZE_MAX - crypto_secretbox_MACBYTES) { + return -1; + } + return crypto_secretbox_detached(c + crypto_secretbox_MACBYTES, + c, m, mlen, n, k); +} + +int +crypto_secretbox_open_detached(unsigned char *m, const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, + const unsigned char *n, + const unsigned char *k) +{ + unsigned char block0[64U]; + unsigned char subkey[crypto_stream_salsa20_KEYBYTES]; + unsigned long long i; + unsigned long long mlen0; + + crypto_core_hsalsa20(subkey, n, k, NULL); + crypto_stream_salsa20(block0, crypto_stream_salsa20_KEYBYTES, + n + 16, subkey); + if (crypto_onetimeauth_poly1305_verify(mac, c, clen, block0) != 0) { + sodium_memzero(subkey, sizeof subkey); + return -1; + } + if (m == NULL) { + return 0; + } + if (((uintptr_t) c >= (uintptr_t) m && + (uintptr_t) c - (uintptr_t) m < clen) || + ((uintptr_t) m >= (uintptr_t) c && + (uintptr_t) m - (uintptr_t) c < clen)) { + memmove(m, c, clen); + c = m; + } + mlen0 = clen; + if (mlen0 > 64U - crypto_secretbox_ZEROBYTES) { + mlen0 = 64U - crypto_secretbox_ZEROBYTES; + } + for (i = 0U; i < mlen0; i++) { + block0[crypto_secretbox_ZEROBYTES + i] = c[i]; + } + crypto_stream_salsa20_xor(block0, block0, + crypto_secretbox_ZEROBYTES + mlen0, + n + 16, subkey); + for (i = 0U; i < mlen0; i++) { + m[i] = block0[i + crypto_secretbox_ZEROBYTES]; + } + if (clen > mlen0) { + crypto_stream_salsa20_xor_ic(m + mlen0, c + mlen0, clen - mlen0, + n + 16, 1U, subkey); + } + sodium_memzero(subkey, sizeof subkey); + + return 0; +} + +int +crypto_secretbox_open_easy(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) +{ + if (clen < crypto_secretbox_MACBYTES) { + return -1; + } + return crypto_secretbox_open_detached(m, c + crypto_secretbox_MACBYTES, c, + clen - crypto_secretbox_MACBYTES, + n, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c new file mode 100644 index 0000000..123b90b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c @@ -0,0 +1,35 @@ +#include "crypto_onetimeauth_poly1305.h" +#include "crypto_secretbox_xsalsa20poly1305.h" +#include "crypto_stream_xsalsa20.h" + +int crypto_secretbox_xsalsa20poly1305( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *k +) +{ + int i; + if (mlen < 32) return -1; + crypto_stream_xsalsa20_xor(c,m,mlen,n,k); + crypto_onetimeauth_poly1305(c + 16,c + 32,mlen - 32,c); + for (i = 0;i < 16;++i) c[i] = 0; + return 0; +} + +int crypto_secretbox_xsalsa20poly1305_open( + unsigned char *m, + const unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + int i; + unsigned char subkey[32]; + if (clen < 32) return -1; + crypto_stream_xsalsa20(subkey,32,n,k); + if (crypto_onetimeauth_poly1305_verify(c + 16,c + 32,clen - 32,subkey) != 0) return -1; + crypto_stream_xsalsa20_xor(m,c,clen,n,k); + for (i = 0;i < 32;++i) m[i] = 0; + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c new file mode 100644 index 0000000..3ab68b1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c @@ -0,0 +1,26 @@ +#include "crypto_secretbox_xsalsa20poly1305.h" + +size_t +crypto_secretbox_xsalsa20poly1305_keybytes(void) { + return crypto_secretbox_xsalsa20poly1305_KEYBYTES; +} + +size_t +crypto_secretbox_xsalsa20poly1305_noncebytes(void) { + return crypto_secretbox_xsalsa20poly1305_NONCEBYTES; +} + +size_t +crypto_secretbox_xsalsa20poly1305_zerobytes(void) { + return crypto_secretbox_xsalsa20poly1305_ZEROBYTES; +} + +size_t +crypto_secretbox_xsalsa20poly1305_boxzerobytes(void) { + return crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES; +} + +size_t +crypto_secretbox_xsalsa20poly1305_macbytes(void) { + return crypto_secretbox_xsalsa20poly1305_MACBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c new file mode 100644 index 0000000..b68b58a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c @@ -0,0 +1,27 @@ + +#include "crypto_shorthash.h" + +size_t +crypto_shorthash_bytes(void) +{ + return crypto_shorthash_BYTES; +} + +size_t +crypto_shorthash_keybytes(void) +{ + return crypto_shorthash_KEYBYTES; +} + +const char * +crypto_shorthash_primitive(void) +{ + return crypto_shorthash_PRIMITIVE; +} + +int +crypto_shorthash(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + return crypto_shorthash_siphash24(out, in, inlen, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c new file mode 100644 index 0000000..27f7b13 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c @@ -0,0 +1,72 @@ +#include "crypto_shorthash_siphash24.h" +#include "private/common.h" + +typedef uint64_t u64; +typedef uint32_t u32; +typedef uint8_t u8; + +#define ROTL(x,b) (u64)( ((x) << (b)) | ( (x) >> (64 - (b))) ) + +#define SIPROUND \ + do { \ + v0 += v1; v1=ROTL(v1,13); v1 ^= v0; v0=ROTL(v0,32); \ + v2 += v3; v3=ROTL(v3,16); v3 ^= v2; \ + v0 += v3; v3=ROTL(v3,21); v3 ^= v0; \ + v2 += v1; v1=ROTL(v1,17); v1 ^= v2; v2=ROTL(v2,32); \ + } while(0) + +int crypto_shorthash_siphash24(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) +{ + /* "somepseudorandomlygeneratedbytes" */ + u64 v0 = 0x736f6d6570736575ULL; + u64 v1 = 0x646f72616e646f6dULL; + u64 v2 = 0x6c7967656e657261ULL; + u64 v3 = 0x7465646279746573ULL; + u64 b; + u64 k0 = LOAD64_LE( k ); + u64 k1 = LOAD64_LE( k + 8 ); + u64 m; + const u8 *end = in + inlen - ( inlen % sizeof( u64 ) ); + const int left = inlen & 7; + b = ( ( u64 )inlen ) << 56; + v3 ^= k1; + v2 ^= k0; + v1 ^= k1; + v0 ^= k0; + + for ( ; in != end; in += 8 ) + { + m = LOAD64_LE( in ); + v3 ^= m; + SIPROUND; + SIPROUND; + v0 ^= m; + } + + switch( left ) + { + case 7: b |= ( ( u64 )in[ 6] ) << 48; + case 6: b |= ( ( u64 )in[ 5] ) << 40; + case 5: b |= ( ( u64 )in[ 4] ) << 32; + case 4: b |= ( ( u64 )in[ 3] ) << 24; + case 3: b |= ( ( u64 )in[ 2] ) << 16; + case 2: b |= ( ( u64 )in[ 1] ) << 8; + case 1: b |= ( ( u64 )in[ 0] ); break; + case 0: break; + } + + v3 ^= b; + SIPROUND; + SIPROUND; + v0 ^= b; + v2 ^= 0xff; + SIPROUND; + SIPROUND; + SIPROUND; + SIPROUND; + b = v0 ^ v1 ^ v2 ^ v3; + STORE64_LE( out, b ); + return 0; +} + diff --git a/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c new file mode 100644 index 0000000..e2cea77 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c @@ -0,0 +1,11 @@ +#include "crypto_shorthash_siphash24.h" + +size_t +crypto_shorthash_siphash24_bytes(void) { + return crypto_shorthash_siphash24_BYTES; +} + +size_t +crypto_shorthash_siphash24_keybytes(void) { + return crypto_shorthash_siphash24_KEYBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/crypto_sign.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/crypto_sign.c new file mode 100644 index 0000000..b5508fb --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/crypto_sign.c @@ -0,0 +1,76 @@ + +#include "crypto_sign.h" + +size_t +crypto_sign_bytes(void) +{ + return crypto_sign_BYTES; +} + +size_t +crypto_sign_seedbytes(void) +{ + return crypto_sign_SEEDBYTES; +} + +size_t +crypto_sign_publickeybytes(void) +{ + return crypto_sign_PUBLICKEYBYTES; +} + +size_t +crypto_sign_secretkeybytes(void) +{ + return crypto_sign_SECRETKEYBYTES; +} + +const char * +crypto_sign_primitive(void) +{ + return crypto_sign_PRIMITIVE; +} + +int +crypto_sign_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed) +{ + return crypto_sign_ed25519_seed_keypair(pk, sk, seed); +} + +int +crypto_sign_keypair(unsigned char *pk, unsigned char *sk) +{ + return crypto_sign_ed25519_keypair(pk, sk); +} + +int +crypto_sign(unsigned char *sm, unsigned long long *smlen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk) +{ + return crypto_sign_ed25519(sm, smlen_p, m, mlen, sk); +} + +int +crypto_sign_open(unsigned char *m, unsigned long long *mlen_p, + const unsigned char *sm, unsigned long long smlen, + const unsigned char *pk) +{ + return crypto_sign_ed25519_open(m, mlen_p, sm, smlen, pk); +} + +int +crypto_sign_detached(unsigned char *sig, unsigned long long *siglen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk) +{ + return crypto_sign_ed25519_detached(sig, siglen_p, m, mlen, sk); +} + +int +crypto_sign_verify_detached(const unsigned char *sig, const unsigned char *m, + unsigned long long mlen, const unsigned char *pk) +{ + return crypto_sign_ed25519_verify_detached(sig, m, mlen, pk); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c new file mode 100644 index 0000000..de1c652 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c @@ -0,0 +1,77 @@ + +#include + +#include "crypto_sign_ed25519.h" +#include "crypto_hash_sha512.h" +#include "crypto_scalarmult_curve25519.h" +#include "randombytes.h" +#include "utils.h" +#include "private/curve25519_ref10.h" + +int crypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed) +{ + ge_p3 A; + + crypto_hash_sha512(sk,seed,32); + sk[0] &= 248; + sk[31] &= 63; + sk[31] |= 64; + + ge_scalarmult_base(&A,sk); + ge_p3_tobytes(pk,&A); + + memmove(sk, seed, 32); + memmove(sk + 32, pk, 32); + return 0; +} + +int crypto_sign_ed25519_keypair(unsigned char *pk, unsigned char *sk) +{ + unsigned char seed[32]; + int ret; + + randombytes_buf(seed, sizeof seed); + ret = crypto_sign_ed25519_seed_keypair(pk, sk, seed); + sodium_memzero(seed, sizeof seed); + + return ret; +} + +int crypto_sign_ed25519_pk_to_curve25519(unsigned char *curve25519_pk, + const unsigned char *ed25519_pk) +{ + ge_p3 A; + fe x; + fe one_minus_y; + + if (ge_frombytes_negate_vartime(&A, ed25519_pk) != 0) { + return -1; + } + fe_1(one_minus_y); + fe_sub(one_minus_y, one_minus_y, A.Y); + fe_invert(one_minus_y, one_minus_y); + fe_1(x); + fe_add(x, x, A.Y); + fe_mul(x, x, one_minus_y); + fe_tobytes(curve25519_pk, x); + + return 0; +} + +int crypto_sign_ed25519_sk_to_curve25519(unsigned char *curve25519_sk, + const unsigned char *ed25519_sk) +{ + unsigned char h[crypto_hash_sha512_BYTES]; + + crypto_hash_sha512(h, ed25519_sk, + crypto_sign_ed25519_SECRETKEYBYTES - + crypto_sign_ed25519_PUBLICKEYBYTES); + h[0] &= 248; + h[31] &= 127; + h[31] |= 64; + memcpy(curve25519_sk, h, crypto_scalarmult_curve25519_BYTES); + sodium_memzero(h, sizeof h); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c new file mode 100644 index 0000000..37b756b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c @@ -0,0 +1,111 @@ + +#include +#include +#include + +#include "crypto_hash_sha512.h" +#include "crypto_sign_edwards25519sha512batch.h" +#include "crypto_verify_32.h" +#include "randombytes.h" +#include "utils.h" +#include "private/curve25519_ref10.h" + +int crypto_sign_edwards25519sha512batch_keypair(unsigned char *pk, + unsigned char *sk) +{ + ge_p3 A; + + randombytes_buf(sk, 32); + crypto_hash_sha512(sk, sk, 32); + sk[0] &= 248; + sk[31] &= 63; + sk[31] |= 64; + ge_scalarmult_base(&A, sk); + ge_p3_tobytes(pk, &A); + + return 0; +} + +int crypto_sign_edwards25519sha512batch(unsigned char *sm, + unsigned long long *smlen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *sk) +{ + crypto_hash_sha512_state hs; + unsigned char nonce[64]; + unsigned char hram[64]; + unsigned char sig[64]; + ge_p3 A; + ge_p3 R; + + crypto_hash_sha512_init(&hs); + crypto_hash_sha512_update(&hs, sk + 32, 32); + crypto_hash_sha512_update(&hs, m, mlen); + crypto_hash_sha512_final(&hs, nonce); + ge_scalarmult_base(&A, sk); + ge_p3_tobytes(sig + 32, &A); + sc_reduce(nonce); + ge_scalarmult_base(&R, nonce); + ge_p3_tobytes(sig, &R); + crypto_hash_sha512_init(&hs); + crypto_hash_sha512_update(&hs, sig, 32); + crypto_hash_sha512_update(&hs, m, mlen); + crypto_hash_sha512_final(&hs, hram); + sc_reduce(hram); + sc_muladd(sig + 32, hram, nonce, sk); + sodium_memzero(hram, sizeof hram); + memmove(sm + 32, m, (size_t) mlen); + memcpy(sm, sig, 32); + memcpy(sm + 32 + mlen, sig + 32, 32); + *smlen_p = mlen + 64U; + + return 0; +} + +int crypto_sign_edwards25519sha512batch_open(unsigned char *m, + unsigned long long *mlen_p, + const unsigned char *sm, + unsigned long long smlen, + const unsigned char *pk) +{ + unsigned char h[64]; + unsigned char t1[32], t2[32]; + unsigned long long mlen; + ge_cached Ai; + ge_p1p1 csa; + ge_p2 cs; + ge_p3 A; + ge_p3 R; + ge_p3 cs3; + + *mlen_p = 0; + if (smlen < 64 || smlen > SIZE_MAX) { + return -1; + } + mlen = smlen - 64; + if (sm[smlen - 1] & 224) { + return -1; + } + if (ge_frombytes_negate_vartime(&A, pk) != 0 || + ge_frombytes_negate_vartime(&R, sm) != 0) { + return -1; + } + ge_p3_to_cached(&Ai, &A); + crypto_hash_sha512(h, sm, mlen + 32); + sc_reduce(h); + ge_scalarmult_vartime(&cs3, h, &R); + ge_add(&csa, &cs3, &Ai); + ge_p1p1_to_p2(&cs, &csa); + ge_tobytes(t1, &cs); + t1[31] ^= 1 << 7; + ge_scalarmult_base(&R, sm + 32 + mlen); + ge_p3_tobytes(t2, &R); + if (crypto_verify_32(t1, t2) != 0) { + return -1; + } + *mlen_p = mlen; + memmove(m, sm + 32, mlen); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c new file mode 100644 index 0000000..2731e81 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c @@ -0,0 +1,154 @@ + +#include +#include +#include + +#include "crypto_hash_sha512.h" +#include "crypto_sign_ed25519.h" +#include "crypto_verify_32.h" +#include "utils.h" +#include "private/curve25519_ref10.h" + +#ifndef ED25519_COMPAT +static int +crypto_sign_check_S_lt_L(const unsigned char *S) +{ + /* 2^252+27742317777372353535851937790883648493 */ + static const unsigned char L[32] = + { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, + 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 }; + unsigned char c = 0; + unsigned char n = 1; + unsigned int i = 32; + + do { + i--; + c |= ((S[i] - L[i]) >> 8) & n; + n &= ((S[i] ^ L[i]) - 1) >> 8; + } while (i != 0); + + return -(c == 0); +} + +static int +small_order(const unsigned char R[32]) +{ + CRYPTO_ALIGN(16) static const unsigned char blacklist[][32] = { + /* 0 (order 4) */ + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + /* 1 (order 1) */ + { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + /* 2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ + { 0x26, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x05 }, + /* 55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ + { 0xc7, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0x7a }, + /* p-1 (order 2) */ + { 0x13, 0xe8, 0x95, 0x8f, 0xc2, 0xb2, 0x27, 0xb0, 0x45, 0xc3, 0xf4, 0x89, 0xf2, 0xef, 0x98, 0xf0, 0xd5, 0xdf, 0xac, 0x05, 0xd3, 0xc6, 0x33, 0x39, 0xb1, 0x38, 0x02, 0x88, 0x6d, 0x53, 0xfc, 0x85 }, + /* p (order 4) */ + { 0xb4, 0x17, 0x6a, 0x70, 0x3d, 0x4d, 0xd8, 0x4f, 0xba, 0x3c, 0x0b, 0x76, 0x0d, 0x10, 0x67, 0x0f, 0x2a, 0x20, 0x53, 0xfa, 0x2c, 0x39, 0xcc, 0xc6, 0x4e, 0xc7, 0xfd, 0x77, 0x92, 0xac, 0x03, 0xfa }, + /* p+1 (order 1) */ + { 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, + /* p+2707385501144840649318225287225658788936804267575313519463743609750303402022 (order 8) */ + { 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, + /* p+55188659117513257062467267217118295137698188065244968500265048394206261417927 (order 8) */ + { 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f }, + /* 2p-1 (order 2) */ + { 0xd9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, + /* 2p (order 4) */ + { 0xda, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, + /* 2p+1 (order 1) */ + { 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff } + }; + size_t i, j; + unsigned char c; + + for (i = 0; i < sizeof blacklist / sizeof blacklist[0]; i++) { + c = 0; + for (j = 0; j < 32; j++) { + c |= R[j] ^ blacklist[i][j]; + } + if (c == 0) { + return 1; + } + } + return 0; +} +#endif + +int +crypto_sign_ed25519_verify_detached(const unsigned char *sig, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *pk) +{ + crypto_hash_sha512_state hs; + unsigned char h[64]; + unsigned char rcheck[32]; + unsigned int i; + unsigned char d = 0; + ge_p3 A; + ge_p2 R; + +#ifndef ED25519_COMPAT + if (crypto_sign_check_S_lt_L(sig + 32) != 0 || + small_order(sig) != 0) { + return -1; + } +#else + if (sig[63] & 224) { + return -1; + } +#endif + if (ge_frombytes_negate_vartime(&A, pk) != 0) { + return -1; + } + for (i = 0; i < 32; ++i) { + d |= pk[i]; + } + if (d == 0) { + return -1; + } + crypto_hash_sha512_init(&hs); + crypto_hash_sha512_update(&hs, sig, 32); + crypto_hash_sha512_update(&hs, pk, 32); + crypto_hash_sha512_update(&hs, m, mlen); + crypto_hash_sha512_final(&hs, h); + sc_reduce(h); + + ge_double_scalarmult_vartime(&R, h, &A, sig + 32); + ge_tobytes(rcheck, &R); + + return crypto_verify_32(rcheck, sig) | (-(rcheck == sig)) | + sodium_memcmp(sig, rcheck, 32); +} + +int +crypto_sign_ed25519_open(unsigned char *m, unsigned long long *mlen_p, + const unsigned char *sm, unsigned long long smlen, + const unsigned char *pk) +{ + unsigned long long mlen; + + if (smlen < 64 || smlen > SIZE_MAX) { + goto badsig; + } + mlen = smlen - 64; + if (crypto_sign_ed25519_verify_detached(sm, sm + 64, mlen, pk) != 0) { + memset(m, 0, mlen); + goto badsig; + } + if (mlen_p != NULL) { + *mlen_p = mlen; + } + memmove(m, sm + 64, mlen); + + return 0; + +badsig: + if (mlen_p != NULL) { + *mlen_p = 0; + } + return -1; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c new file mode 100644 index 0000000..7ebc20c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c @@ -0,0 +1,77 @@ + +#include + +#include "crypto_hash_sha512.h" +#include "crypto_sign_ed25519.h" +#include "utils.h" +#include "private/curve25519_ref10.h" + +int +crypto_sign_ed25519_detached(unsigned char *sig, unsigned long long *siglen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk) +{ + crypto_hash_sha512_state hs; + unsigned char az[64]; + unsigned char nonce[64]; + unsigned char hram[64]; + ge_p3 R; + + crypto_hash_sha512(az, sk, 32); + az[0] &= 248; + az[31] &= 63; + az[31] |= 64; + + crypto_hash_sha512_init(&hs); + crypto_hash_sha512_update(&hs, az + 32, 32); + crypto_hash_sha512_update(&hs, m, mlen); + crypto_hash_sha512_final(&hs, nonce); + + memmove(sig + 32, sk + 32, 32); + + sc_reduce(nonce); + ge_scalarmult_base(&R, nonce); + ge_p3_tobytes(sig, &R); + + crypto_hash_sha512_init(&hs); + crypto_hash_sha512_update(&hs, sig, 64); + crypto_hash_sha512_update(&hs, m, mlen); + crypto_hash_sha512_final(&hs, hram); + + sc_reduce(hram); + sc_muladd(sig + 32, hram, az, nonce); + + sodium_memzero(az, sizeof az); + + if (siglen_p != NULL) { + *siglen_p = 64U; + } + return 0; +} + +int +crypto_sign_ed25519(unsigned char *sm, unsigned long long *smlen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk) +{ + unsigned long long siglen; + + memmove(sm + crypto_sign_ed25519_BYTES, m, mlen); +/* LCOV_EXCL_START */ + if (crypto_sign_ed25519_detached(sm, &siglen, + sm + crypto_sign_ed25519_BYTES, + mlen, sk) != 0 || + siglen != crypto_sign_ed25519_BYTES) { + if (smlen_p != NULL) { + *smlen_p = 0; + } + memset(sm, 0, mlen + crypto_sign_ed25519_BYTES); + return -1; + } +/* LCOV_EXCL_STOP */ + + if (smlen_p != NULL) { + *smlen_p = mlen + siglen; + } + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c new file mode 100644 index 0000000..7ba6b4c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c @@ -0,0 +1,39 @@ + +#include + +#include "crypto_sign_ed25519.h" + +size_t +crypto_sign_ed25519_bytes(void) { + return crypto_sign_ed25519_BYTES; +} + +size_t +crypto_sign_ed25519_seedbytes(void) { + return crypto_sign_ed25519_SEEDBYTES; +} + +size_t +crypto_sign_ed25519_publickeybytes(void) { + return crypto_sign_ed25519_PUBLICKEYBYTES; +} + +size_t +crypto_sign_ed25519_secretkeybytes(void) { + return crypto_sign_ed25519_SECRETKEYBYTES; +} + +int +crypto_sign_ed25519_sk_to_seed(unsigned char *seed, const unsigned char *sk) +{ + memmove(seed, sk, crypto_sign_ed25519_SEEDBYTES); + return 0; +} + +int +crypto_sign_ed25519_sk_to_pk(unsigned char *pk, const unsigned char *sk) +{ + memmove(pk, sk + crypto_sign_ed25519_SEEDBYTES, + crypto_sign_ed25519_PUBLICKEYBYTES); + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c new file mode 100644 index 0000000..6f0cec6 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c @@ -0,0 +1,159 @@ +/* Author: Peter Schwabe, ported from an assembly implementation by Emilia Käsper + * Date: 2009-03-19 + * Public domain */ + +#include "crypto_stream_aes128ctr.h" +#include "int128.h" +#include "common.h" +#include "consts.h" + +int crypto_stream_aes128ctr_afternm(unsigned char *out, unsigned long long len, const unsigned char *nonce, const unsigned char *c) +{ + + int128 xmm0; + int128 xmm1; + int128 xmm2; + int128 xmm3; + int128 xmm4; + int128 xmm5; + int128 xmm6; + int128 xmm7; + + int128 xmm8; + int128 xmm9; + int128 xmm10; + int128 xmm11; + int128 xmm12; + int128 xmm13; + int128 xmm14; + int128 xmm15; + + int128 nonce_stack; + unsigned long long lensav; + unsigned char bl[128]; + unsigned char *blp; + unsigned char *np; + unsigned char b; + + uint32 tmp; + + /* Copy nonce on the stack */ + copy2(&nonce_stack, (const int128 *) (nonce + 0)); + np = (unsigned char *)&nonce_stack; + + enc_block: + + xmm0 = *(int128 *) (np + 0); + copy2(&xmm1, &xmm0); + shufb(&xmm1, SWAP32); + copy2(&xmm2, &xmm1); + copy2(&xmm3, &xmm1); + copy2(&xmm4, &xmm1); + copy2(&xmm5, &xmm1); + copy2(&xmm6, &xmm1); + copy2(&xmm7, &xmm1); + + add_uint32_big(&xmm1, 1); + add_uint32_big(&xmm2, 2); + add_uint32_big(&xmm3, 3); + add_uint32_big(&xmm4, 4); + add_uint32_big(&xmm5, 5); + add_uint32_big(&xmm6, 6); + add_uint32_big(&xmm7, 7); + + shufb(&xmm0, M0); + shufb(&xmm1, M0SWAP); + shufb(&xmm2, M0SWAP); + shufb(&xmm3, M0SWAP); + shufb(&xmm4, M0SWAP); + shufb(&xmm5, M0SWAP); + shufb(&xmm6, M0SWAP); + shufb(&xmm7, M0SWAP); + + bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, xmm8) + + aesround( 1, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 2, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 3, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 4, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 5, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 6, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 7, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 8, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 9, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + lastround(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + + bitslice(xmm13, xmm10, xmm15, xmm11, xmm14, xmm12, xmm9, xmm8, xmm0) + + if(len < 128) goto partial; + if(len == 128) goto full; + + tmp = LOAD32_BE(np + 12); + tmp += 8; + STORE32_BE(np + 12, tmp); + + *(int128 *) (out + 0) = xmm8; + *(int128 *) (out + 16) = xmm9; + *(int128 *) (out + 32) = xmm12; + *(int128 *) (out + 48) = xmm14; + *(int128 *) (out + 64) = xmm11; + *(int128 *) (out + 80) = xmm15; + *(int128 *) (out + 96) = xmm10; + *(int128 *) (out + 112) = xmm13; + + len -= 128; + out += 128; + + goto enc_block; + + partial: + + lensav = len; + len >>= 4; + + tmp = LOAD32_BE(np + 12); + tmp += len; + STORE32_BE(np + 12, tmp); + + blp = bl; + *(int128 *)(blp + 0) = xmm8; + *(int128 *)(blp + 16) = xmm9; + *(int128 *)(blp + 32) = xmm12; + *(int128 *)(blp + 48) = xmm14; + *(int128 *)(blp + 64) = xmm11; + *(int128 *)(blp + 80) = xmm15; + *(int128 *)(blp + 96) = xmm10; + *(int128 *)(blp + 112) = xmm13; + + bytes: + + if(lensav == 0) goto end; + + b = blp[0]; /* clang false positive */ + *(unsigned char *)(out + 0) = b; + + blp += 1; + out +=1; + lensav -= 1; + + goto bytes; + + full: + + tmp = LOAD32_BE(np + 12); + tmp += 8; + STORE32_BE(np + 12, tmp); + + *(int128 *) (out + 0) = xmm8; + *(int128 *) (out + 16) = xmm9; + *(int128 *) (out + 32) = xmm12; + *(int128 *) (out + 48) = xmm14; + *(int128 *) (out + 64) = xmm11; + *(int128 *) (out + 80) = xmm15; + *(int128 *) (out + 96) = xmm10; + *(int128 *) (out + 112) = xmm13; + + end: + return 0; + +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c new file mode 100644 index 0000000..0105cf1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c @@ -0,0 +1,59 @@ +/* Author: Peter Schwabe, ported from an assembly implementation by Emilia Käsper + * Date: 2009-03-19 + * Public domain */ + +#include "crypto_stream_aes128ctr.h" +#include "consts.h" +#include "int128.h" +#include "common.h" + +int crypto_stream_aes128ctr_beforenm(unsigned char *c, const unsigned char *k) +{ + + /* + int64 x0; + int64 x1; + int64 x2; + int64 x3; + int64 e; + int64 q0; + int64 q1; + int64 q2; + int64 q3; + */ + + int128 xmm0; + int128 xmm1; + int128 xmm2; + int128 xmm3; + int128 xmm4; + int128 xmm5; + int128 xmm6; + int128 xmm7; + int128 xmm8; + int128 xmm9; + int128 xmm10; + int128 xmm11; + int128 xmm12; + int128 xmm13; + int128 xmm14; + int128 xmm15; + int128 t; + + bitslicekey0(k, c) + + keyexpbs1(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + keyexpbs(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm1);, 2,c) + keyexpbs(xmm0, xmm1, xmm3, xmm2, xmm6, xmm5, xmm4, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm6);, 3,c) + keyexpbs(xmm0, xmm1, xmm6, xmm4, xmm2, xmm7, xmm3, xmm5, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);, 4,c) + + keyexpbs(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);, 5,c) + keyexpbs(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm5);, 6,c) + keyexpbs(xmm0, xmm1, xmm3, xmm2, xmm6, xmm5, xmm4, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm3);, 7,c) + keyexpbs(xmm0, xmm1, xmm6, xmm4, xmm2, xmm7, xmm3, xmm5, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm7);, 8,c) + + keyexpbs(xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xor_rcon(&xmm0); xor_rcon(&xmm1); xor_rcon(&xmm6); xor_rcon(&xmm3);, 9,c) + keyexpbs10(xmm0, xmm1, xmm4, xmm6, xmm3, xmm7, xmm2, xmm5, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common.h new file mode 100644 index 0000000..5b7dec5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common.h @@ -0,0 +1,771 @@ +/* Author: Peter Schwabe, ported from an assembly implementation by Emilia Käsper + Date: 2009-03-19 + Public domain */ +#ifndef COMMON_H +#define COMMON_H + +#include "types.h" +#include "private/common.h" + +/* Macros required only for key expansion */ + +#define keyexpbs1(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7, bskey) \ + rotbyte(&b0);\ + rotbyte(&b1);\ + rotbyte(&b2);\ + rotbyte(&b3);\ + rotbyte(&b4);\ + rotbyte(&b5);\ + rotbyte(&b6);\ + rotbyte(&b7);\ + ;\ + sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7);\ + ;\ + xor_rcon(&b0);\ + shufb(&b0, EXPB0);\ + shufb(&b1, EXPB0);\ + shufb(&b4, EXPB0);\ + shufb(&b6, EXPB0);\ + shufb(&b3, EXPB0);\ + shufb(&b7, EXPB0);\ + shufb(&b2, EXPB0);\ + shufb(&b5, EXPB0);\ + shufb(&b0, EXPB0);\ + ;\ + t0 = *(int128 *)(bskey + 0);\ + t1 = *(int128 *)(bskey + 16);\ + t2 = *(int128 *)(bskey + 32);\ + t3 = *(int128 *)(bskey + 48);\ + t4 = *(int128 *)(bskey + 64);\ + t5 = *(int128 *)(bskey + 80);\ + t6 = *(int128 *)(bskey + 96);\ + t7 = *(int128 *)(bskey + 112);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + *(int128 *)(bskey + 128) = b0;\ + *(int128 *)(bskey + 144) = b1;\ + *(int128 *)(bskey + 160) = b4;\ + *(int128 *)(bskey + 176) = b6;\ + *(int128 *)(bskey + 192) = b3;\ + *(int128 *)(bskey + 208) = b7;\ + *(int128 *)(bskey + 224) = b2;\ + *(int128 *)(bskey + 240) = b5;\ + +#define keyexpbs10(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7, bskey) ;\ + toggle(&b0);\ + toggle(&b1);\ + toggle(&b5);\ + toggle(&b6);\ + rotbyte(&b0);\ + rotbyte(&b1);\ + rotbyte(&b2);\ + rotbyte(&b3);\ + rotbyte(&b4);\ + rotbyte(&b5);\ + rotbyte(&b6);\ + rotbyte(&b7);\ + ;\ + sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7);\ + ;\ + xor_rcon(&b1);\ + xor_rcon(&b4);\ + xor_rcon(&b3);\ + xor_rcon(&b7);\ + shufb(&b0, EXPB0);\ + shufb(&b1, EXPB0);\ + shufb(&b4, EXPB0);\ + shufb(&b6, EXPB0);\ + shufb(&b3, EXPB0);\ + shufb(&b7, EXPB0);\ + shufb(&b2, EXPB0);\ + shufb(&b5, EXPB0);\ + ;\ + t0 = *(int128 *)(bskey + 9 * 128 + 0);\ + t1 = *(int128 *)(bskey + 9 * 128 + 16);\ + t2 = *(int128 *)(bskey + 9 * 128 + 32);\ + t3 = *(int128 *)(bskey + 9 * 128 + 48);\ + t4 = *(int128 *)(bskey + 9 * 128 + 64);\ + t5 = *(int128 *)(bskey + 9 * 128 + 80);\ + t6 = *(int128 *)(bskey + 9 * 128 + 96);\ + t7 = *(int128 *)(bskey + 9 * 128 + 112);\ + ;\ + toggle(&t0);\ + toggle(&t1);\ + toggle(&t5);\ + toggle(&t6);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + shufb(&b0, M0);\ + shufb(&b1, M0);\ + shufb(&b2, M0);\ + shufb(&b3, M0);\ + shufb(&b4, M0);\ + shufb(&b5, M0);\ + shufb(&b6, M0);\ + shufb(&b7, M0);\ + ;\ + *(int128 *)(bskey + 1280) = b0;\ + *(int128 *)(bskey + 1296) = b1;\ + *(int128 *)(bskey + 1312) = b4;\ + *(int128 *)(bskey + 1328) = b6;\ + *(int128 *)(bskey + 1344) = b3;\ + *(int128 *)(bskey + 1360) = b7;\ + *(int128 *)(bskey + 1376) = b2;\ + *(int128 *)(bskey + 1392) = b5;\ + + +#define keyexpbs(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7, rcon, i, bskey) \ + toggle(&b0);\ + toggle(&b1);\ + toggle(&b5);\ + toggle(&b6);\ + rotbyte(&b0);\ + rotbyte(&b1);\ + rotbyte(&b2);\ + rotbyte(&b3);\ + rotbyte(&b4);\ + rotbyte(&b5);\ + rotbyte(&b6);\ + rotbyte(&b7);\ + ;\ + sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7);\ + ;\ + rcon;\ + shufb(&b0, EXPB0);\ + shufb(&b1, EXPB0);\ + shufb(&b4, EXPB0);\ + shufb(&b6, EXPB0);\ + shufb(&b3, EXPB0);\ + shufb(&b7, EXPB0);\ + shufb(&b2, EXPB0);\ + shufb(&b5, EXPB0);\ + ;\ + t0 = *(int128 *)(bskey + (i-1) * 128 + 0);\ + t1 = *(int128 *)(bskey + (i-1) * 128 + 16);\ + t2 = *(int128 *)(bskey + (i-1) * 128 + 32);\ + t3 = *(int128 *)(bskey + (i-1) * 128 + 48);\ + t4 = *(int128 *)(bskey + (i-1) * 128 + 64);\ + t5 = *(int128 *)(bskey + (i-1) * 128 + 80);\ + t6 = *(int128 *)(bskey + (i-1) * 128 + 96);\ + t7 = *(int128 *)(bskey + (i-1) * 128 + 112);\ + ;\ + toggle(&t0);\ + toggle(&t1);\ + toggle(&t5);\ + toggle(&t6);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + rshift32_littleendian(&t0, 8);\ + rshift32_littleendian(&t1, 8);\ + rshift32_littleendian(&t2, 8);\ + rshift32_littleendian(&t3, 8);\ + rshift32_littleendian(&t4, 8);\ + rshift32_littleendian(&t5, 8);\ + rshift32_littleendian(&t6, 8);\ + rshift32_littleendian(&t7, 8);\ + ;\ + xor2(&b0, &t0);\ + xor2(&b1, &t1);\ + xor2(&b4, &t2);\ + xor2(&b6, &t3);\ + xor2(&b3, &t4);\ + xor2(&b7, &t5);\ + xor2(&b2, &t6);\ + xor2(&b5, &t7);\ + ;\ + *(int128 *)(bskey + i*128 + 0) = b0;\ + *(int128 *)(bskey + i*128 + 16) = b1;\ + *(int128 *)(bskey + i*128 + 32) = b4;\ + *(int128 *)(bskey + i*128 + 48) = b6;\ + *(int128 *)(bskey + i*128 + 64) = b3;\ + *(int128 *)(bskey + i*128 + 80) = b7;\ + *(int128 *)(bskey + i*128 + 96) = b2;\ + *(int128 *)(bskey + i*128 + 112) = b5;\ + +/* Macros used in multiple contexts */ + +#define bitslicekey0(key, bskey) \ + xmm0 = *(const int128 *) (key + 0);\ + shufb(&xmm0, M0);\ + copy2(&xmm1, &xmm0);\ + copy2(&xmm2, &xmm0);\ + copy2(&xmm3, &xmm0);\ + copy2(&xmm4, &xmm0);\ + copy2(&xmm5, &xmm0);\ + copy2(&xmm6, &xmm0);\ + copy2(&xmm7, &xmm0);\ + ;\ + bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t);\ + ;\ + *(int128 *) (bskey + 0) = xmm0;\ + *(int128 *) (bskey + 16) = xmm1;\ + *(int128 *) (bskey + 32) = xmm2;\ + *(int128 *) (bskey + 48) = xmm3;\ + *(int128 *) (bskey + 64) = xmm4;\ + *(int128 *) (bskey + 80) = xmm5;\ + *(int128 *) (bskey + 96) = xmm6;\ + *(int128 *) (bskey + 112) = xmm7;\ + + +#define bitslicekey10(key, bskey) \ + xmm0 = *(int128 *) (key + 0);\ + copy2(xmm1, xmm0);\ + copy2(xmm2, xmm0);\ + copy2(xmm3, xmm0);\ + copy2(xmm4, xmm0);\ + copy2(xmm5, xmm0);\ + copy2(xmm6, xmm0);\ + copy2(xmm7, xmm0);\ + ;\ + bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t);\ + ;\ + toggle(&xmm6);\ + toggle(&xmm5);\ + toggle(&xmm1);\ + toggle(&xmm0);\ + ;\ + *(int128 *) (bskey + 0 + 1280) = xmm0;\ + *(int128 *) (bskey + 16 + 1280) = xmm1;\ + *(int128 *) (bskey + 32 + 1280) = xmm2;\ + *(int128 *) (bskey + 48 + 1280) = xmm3;\ + *(int128 *) (bskey + 64 + 1280) = xmm4;\ + *(int128 *) (bskey + 80 + 1280) = xmm5;\ + *(int128 *) (bskey + 96 + 1280) = xmm6;\ + *(int128 *) (bskey + 112 + 1280) = xmm7;\ + + +#define bitslicekey(i,key,bskey) \ + xmm0 = *(int128 *) (key + 0);\ + shufb(&xmm0, M0);\ + copy2(&xmm1, &xmm0);\ + copy2(&xmm2, &xmm0);\ + copy2(&xmm3, &xmm0);\ + copy2(&xmm4, &xmm0);\ + copy2(&xmm5, &xmm0);\ + copy2(&xmm6, &xmm0);\ + copy2(&xmm7, &xmm0);\ + ;\ + bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, t);\ + ;\ + toggle(&xmm6);\ + toggle(&xmm5);\ + toggle(&xmm1);\ + toggle(&xmm0);\ + ;\ + *(int128 *) (bskey + 0 + 128*i) = xmm0;\ + *(int128 *) (bskey + 16 + 128*i) = xmm1;\ + *(int128 *) (bskey + 32 + 128*i) = xmm2;\ + *(int128 *) (bskey + 48 + 128*i) = xmm3;\ + *(int128 *) (bskey + 64 + 128*i) = xmm4;\ + *(int128 *) (bskey + 80 + 128*i) = xmm5;\ + *(int128 *) (bskey + 96 + 128*i) = xmm6;\ + *(int128 *) (bskey + 112 + 128*i) = xmm7;\ + + +#define bitslice(x0, x1, x2, x3, x4, x5, x6, x7, t) \ + swapmove(x0, x1, 1, BS0, t);\ + swapmove(x2, x3, 1, BS0, t);\ + swapmove(x4, x5, 1, BS0, t);\ + swapmove(x6, x7, 1, BS0, t);\ + ;\ + swapmove(x0, x2, 2, BS1, t);\ + swapmove(x1, x3, 2, BS1, t);\ + swapmove(x4, x6, 2, BS1, t);\ + swapmove(x5, x7, 2, BS1, t);\ + ;\ + swapmove(x0, x4, 4, BS2, t);\ + swapmove(x1, x5, 4, BS2, t);\ + swapmove(x2, x6, 4, BS2, t);\ + swapmove(x3, x7, 4, BS2, t);\ + + +#define swapmove(a, b, n, m, t) \ + copy2(&t, &b);\ + rshift64_littleendian(&t, n);\ + xor2(&t, &a);\ + and2(&t, &m);\ + xor2(&a, &t);\ + lshift64_littleendian(&t, n);\ + xor2(&b, &t); + +#define rotbyte(x) \ + shufb(x, ROTB) /* TODO: Make faster */ + + +/* Macros used for encryption (and decryption) */ + +#define shiftrows(x0, x1, x2, x3, x4, x5, x6, x7, i, M, bskey) \ + xor2(&x0, (const int128 *)(bskey + 128*(i-1) + 0));\ + shufb(&x0, M);\ + xor2(&x1, (const int128 *)(bskey + 128*(i-1) + 16));\ + shufb(&x1, M);\ + xor2(&x2, (const int128 *)(bskey + 128*(i-1) + 32));\ + shufb(&x2, M);\ + xor2(&x3, (const int128 *)(bskey + 128*(i-1) + 48));\ + shufb(&x3, M);\ + xor2(&x4, (const int128 *)(bskey + 128*(i-1) + 64));\ + shufb(&x4, M);\ + xor2(&x5, (const int128 *)(bskey + 128*(i-1) + 80));\ + shufb(&x5, M);\ + xor2(&x6, (const int128 *)(bskey + 128*(i-1) + 96));\ + shufb(&x6, M);\ + xor2(&x7, (const int128 *)(bskey + 128*(i-1) + 112));\ + shufb(&x7, M);\ + + +#define mixcolumns(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, t4, t5, t6, t7) \ + shufd(&t0, &x0, 0x93);\ + shufd(&t1, &x1, 0x93);\ + shufd(&t2, &x2, 0x93);\ + shufd(&t3, &x3, 0x93);\ + shufd(&t4, &x4, 0x93);\ + shufd(&t5, &x5, 0x93);\ + shufd(&t6, &x6, 0x93);\ + shufd(&t7, &x7, 0x93);\ + ;\ + xor2(&x0, &t0);\ + xor2(&x1, &t1);\ + xor2(&x2, &t2);\ + xor2(&x3, &t3);\ + xor2(&x4, &t4);\ + xor2(&x5, &t5);\ + xor2(&x6, &t6);\ + xor2(&x7, &t7);\ + ;\ + xor2(&t0, &x7);\ + xor2(&t1, &x0);\ + xor2(&t2, &x1);\ + xor2(&t1, &x7);\ + xor2(&t3, &x2);\ + xor2(&t4, &x3);\ + xor2(&t5, &x4);\ + xor2(&t3, &x7);\ + xor2(&t6, &x5);\ + xor2(&t7, &x6);\ + xor2(&t4, &x7);\ + ;\ + shufd(&x0, &x0, 0x4e);\ + shufd(&x1, &x1, 0x4e);\ + shufd(&x2, &x2, 0x4e);\ + shufd(&x3, &x3, 0x4e);\ + shufd(&x4, &x4, 0x4e);\ + shufd(&x5, &x5, 0x4e);\ + shufd(&x6, &x6, 0x4e);\ + shufd(&x7, &x7, 0x4e);\ + ;\ + xor2(&t0, &x0);\ + xor2(&t1, &x1);\ + xor2(&t2, &x2);\ + xor2(&t3, &x3);\ + xor2(&t4, &x4);\ + xor2(&t5, &x5);\ + xor2(&t6, &x6);\ + xor2(&t7, &x7);\ + + +#define aesround(i, b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7, bskey) \ + shiftrows(b0, b1, b2, b3, b4, b5, b6, b7, i, SR, bskey);\ + sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7);\ + mixcolumns(b0, b1, b4, b6, b3, b7, b2, b5, t0, t1, t2, t3, t4, t5, t6, t7);\ + + +#define lastround(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7, bskey) \ + shiftrows(b0, b1, b2, b3, b4, b5, b6, b7, 10, SRM0, bskey);\ + sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, t4, t5, t6, t7);\ + xor2(&b0,(const int128 *)(bskey + 128*10));\ + xor2(&b1,(const int128 *)(bskey + 128*10+16));\ + xor2(&b4,(const int128 *)(bskey + 128*10+32));\ + xor2(&b6,(const int128 *)(bskey + 128*10+48));\ + xor2(&b3,(const int128 *)(bskey + 128*10+64));\ + xor2(&b7,(const int128 *)(bskey + 128*10+80));\ + xor2(&b2,(const int128 *)(bskey + 128*10+96));\ + xor2(&b5,(const int128 *)(bskey + 128*10+112));\ + + +#define sbox(b0, b1, b2, b3, b4, b5, b6, b7, t0, t1, t2, t3, s0, s1, s2, s3) \ + InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7); \ + Inv_GF256(b6, b5, b0, b3, b7, b1, b4, b2, t0, t1, t2, t3, s0, s1, s2, s3); \ + OutBasisChange(b7, b1, b4, b2, b6, b5, b0, b3); \ + + +#define InBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \ + xor2(&b5, &b6);\ + xor2(&b2, &b1);\ + xor2(&b5, &b0);\ + xor2(&b6, &b2);\ + xor2(&b3, &b0);\ + ;\ + xor2(&b6, &b3);\ + xor2(&b3, &b7);\ + xor2(&b3, &b4);\ + xor2(&b7, &b5);\ + xor2(&b3, &b1);\ + ;\ + xor2(&b4, &b5);\ + xor2(&b2, &b7);\ + xor2(&b1, &b5);\ + +#define OutBasisChange(b0, b1, b2, b3, b4, b5, b6, b7) \ + xor2(&b0, &b6);\ + xor2(&b1, &b4);\ + xor2(&b2, &b0);\ + xor2(&b4, &b6);\ + xor2(&b6, &b1);\ + ;\ + xor2(&b1, &b5);\ + xor2(&b5, &b3);\ + xor2(&b2, &b5);\ + xor2(&b3, &b7);\ + xor2(&b7, &b5);\ + ;\ + xor2(&b4, &b7);\ + +#define Mul_GF4(x0, x1, y0, y1, t0) \ + copy2(&t0, &y0);\ + xor2(&t0, &y1);\ + and2(&t0, &x0);\ + xor2(&x0, &x1);\ + and2(&x0, &y1);\ + and2(&x1, &y0);\ + xor2(&x0, &x1);\ + xor2(&x1, &t0);\ + +#define Mul_GF4_N(x0, x1, y0, y1, t0) \ + copy2(&t0, &y0);\ + xor2(&t0, &y1);\ + and2(&t0, &x0);\ + xor2(&x0, &x1);\ + and2(&x0, &y1);\ + and2(&x1, &y0);\ + xor2(&x1, &x0);\ + xor2(&x0, &t0);\ + +#define Mul_GF4_2(x0, x1, x2, x3, y0, y1, t0, t1) \ + copy2(&t0, = y0);\ + xor2(&t0, &y1);\ + copy2(&t1, &t0);\ + and2(&t0, &x0);\ + and2(&t1, &x2);\ + xor2(&x0, &x1);\ + xor2(&x2, &x3);\ + and2(&x0, &y1);\ + and2(&x2, &y1);\ + and2(&x1, &y0);\ + and2(&x3, &y0);\ + xor2(&x0, &x1);\ + xor2(&x2, &x3);\ + xor2(&x1, &t0);\ + xor2(&x3, &t1);\ + +#define Mul_GF16(x0, x1, x2, x3, y0, y1, y2, y3, t0, t1, t2, t3) \ + copy2(&t0, &x0);\ + copy2(&t1, &x1);\ + Mul_GF4(x0, x1, y0, y1, t2);\ + xor2(&t0, &x2);\ + xor2(&t1, &x3);\ + xor2(&y0, &y2);\ + xor2(&y1, &y3);\ + Mul_GF4_N(t0, t1, y0, y1, t2);\ + Mul_GF4(x2, x3, y2, y3, t3);\ + ;\ + xor2(&x0, &t0);\ + xor2(&x2, &t0);\ + xor2(&x1, &t1);\ + xor2(&x3, &t1);\ + +#define Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, y0, y1, y2, y3, t0, t1, t2, t3) \ + copy2(&t0, &x0);\ + copy2(&t1, &x1);\ + Mul_GF4(x0, x1, y0, y1, t2);\ + xor2(&t0, &x2);\ + xor2(&t1, &x3);\ + xor2(&y0, &y2);\ + xor2(&y1, &y3);\ + Mul_GF4_N(t0, t1, y0, y1, t3);\ + Mul_GF4(x2, x3, y2, y3, t2);\ + ;\ + xor2(&x0, &t0);\ + xor2(&x2, &t0);\ + xor2(&x1, &t1);\ + xor2(&x3, &t1);\ + ;\ + copy2(&t0, &x4);\ + copy2(&t1, &x5);\ + xor2(&t0, &x6);\ + xor2(&t1, &x7);\ + Mul_GF4_N(t0, t1, y0, y1, t3);\ + Mul_GF4(x6, x7, y2, y3, t2);\ + xor2(&y0, &y2);\ + xor2(&y1, &y3);\ + Mul_GF4(x4, x5, y0, y1, t3);\ + ;\ + xor2(&x4, &t0);\ + xor2(&x6, &t0);\ + xor2(&x5, &t1);\ + xor2(&x7, &t1);\ + +#define Inv_GF16(x0, x1, x2, x3, t0, t1, t2, t3) \ + copy2(&t0, &x1);\ + copy2(&t1, &x0);\ + and2(&t0, &x3);\ + or2(&t1, &x2);\ + copy2(&t2, &x1);\ + copy2(&t3, &x0);\ + or2(&t2, &x2);\ + or2(&t3, &x3);\ + xor2(&t2, &t3);\ + ;\ + xor2(&t0, &t2);\ + xor2(&t1, &t2);\ + ;\ + Mul_GF4_2(x0, x1, x2, x3, t1, t0, t2, t3);\ + + +#define Inv_GF256(x0, x1, x2, x3, x4, x5, x6, x7, t0, t1, t2, t3, s0, s1, s2, s3) \ + copy2(&t3, &x4);\ + copy2(&t2, &x5);\ + copy2(&t1, &x1);\ + copy2(&s1, &x7);\ + copy2(&s0, &x0);\ + ;\ + xor2(&t3, &x6);\ + xor2(&t2, &x7);\ + xor2(&t1, &x3);\ + xor2(&s1, &x6);\ + xor2(&s0, &x2);\ + ;\ + copy2(&s2, &t3);\ + copy2(&t0, &t2);\ + copy2(&s3, &t3);\ + ;\ + or2(&t2, &t1);\ + or2(&t3, &s0);\ + xor2(&s3, &t0);\ + and2(&s2, &s0);\ + and2(&t0, &t1);\ + xor2(&s0, &t1);\ + and2(&s3, &s0);\ + copy2(&s0, &x3);\ + xor2(&s0, &x2);\ + and2(&s1, &s0);\ + xor2(&t3, &s1);\ + xor2(&t2, &s1);\ + copy2(&s1, &x4);\ + xor2(&s1, &x5);\ + copy2(&s0, &x1);\ + copy2(&t1, &s1);\ + xor2(&s0, &x0);\ + or2(&t1, &s0);\ + and2(&s1, &s0);\ + xor2(&t0, &s1);\ + xor2(&t3, &s3);\ + xor2(&t2, &s2);\ + xor2(&t1, &s3);\ + xor2(&t0, &s2);\ + xor2(&t1, &s2);\ + copy2(&s0, &x7);\ + copy2(&s1, &x6);\ + copy2(&s2, &x5);\ + copy2(&s3, &x4);\ + and2(&s0, &x3);\ + and2(&s1, &x2);\ + and2(&s2, &x1);\ + or2(&s3, &x0);\ + xor2(&t3, &s0);\ + xor2(&t2, &s1);\ + xor2(&t1, &s2);\ + xor2(&t0, &s3);\ + ;\ + copy2(&s0, &t3);\ + xor2(&s0, &t2);\ + and2(&t3, &t1);\ + copy2(&s2, &t0);\ + xor2(&s2, &t3);\ + copy2(&s3, &s0);\ + and2(&s3, &s2);\ + xor2(&s3, &t2);\ + copy2(&s1, &t1);\ + xor2(&s1, &t0);\ + xor2(&t3, &t2);\ + and2(&s1, &t3);\ + xor2(&s1, &t0);\ + xor2(&t1, &s1);\ + copy2(&t2, &s2);\ + xor2(&t2, &s1);\ + and2(&t2, &t0);\ + xor2(&t1, &t2);\ + xor2(&s2, &t2);\ + and2(&s2, &s3);\ + xor2(&s2, &s0);\ + ;\ + Mul_GF16_2(x0, x1, x2, x3, x4, x5, x6, x7, s3, s2, s1, t1, s0, t0, t2, t3);\ + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts.h new file mode 100644 index 0000000..4c50360 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts.h @@ -0,0 +1,28 @@ +#ifndef CONSTS_H +#define CONSTS_H + +#include "int128.h" + +#define ROTB crypto_stream_aes128ctr_portable_ROTB +#define M0 crypto_stream_aes128ctr_portable_M0 +#define EXPB0 crypto_stream_aes128ctr_portable_EXPB0 +#define SWAP32 crypto_stream_aes128ctr_portable_SWAP32 +#define M0SWAP crypto_stream_aes128ctr_portable_M0SWAP +#define SR crypto_stream_aes128ctr_portable_SR +#define SRM0 crypto_stream_aes128ctr_portable_SRM0 +#define BS0 crypto_stream_aes128ctr_portable_BS0 +#define BS1 crypto_stream_aes128ctr_portable_BS1 +#define BS2 crypto_stream_aes128ctr_portable_BS2 + +extern const unsigned char ROTB[16]; +extern const unsigned char M0[16]; +extern const unsigned char EXPB0[16]; +extern const unsigned char SWAP32[16]; +extern const unsigned char M0SWAP[16]; +extern const unsigned char SR[16]; +extern const unsigned char SRM0[16]; +extern const int128 BS0; +extern const int128 BS1; +extern const int128 BS2; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c new file mode 100644 index 0000000..f8029b8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c @@ -0,0 +1,14 @@ +#include "consts.h" + +const unsigned char ROTB[16] = {0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08}; +const unsigned char M0[16] = {0x0f, 0x0b, 0x07, 0x03, 0x0e, 0x0a, 0x06, 0x02, 0x0d, 0x09, 0x05, 0x01, 0x0c, 0x08, 0x04, 0x00}; +const unsigned char EXPB0[16] = {0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0b, 0x0b, 0x0b, 0x0b, 0x0f, 0x0f, 0x0f, 0x0f}; + +const unsigned char SWAP32[16] = {0x03, 0x02, 0x01, 0x00, 0x07, 0x06, 0x05, 0x04, 0x0b, 0x0a, 0x09, 0x08, 0x0f, 0x0e, 0x0d, 0x0c}; +const unsigned char M0SWAP[16] = {0x0c, 0x08, 0x04, 0x00, 0x0d, 0x09, 0x05, 0x01, 0x0e, 0x0a, 0x06, 0x02, 0x0f, 0x0b, 0x07, 0x03}; +const unsigned char SR[16] = {0x01, 0x02, 0x03, 0x00, 0x06, 0x07, 0x04, 0x05, 0x0b, 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f}; +const unsigned char SRM0[16] = {0x0f, 0x0a, 0x05, 0x00, 0x0e, 0x09, 0x04, 0x03, 0x0d, 0x08, 0x07, 0x02, 0x0c, 0x0b, 0x06, 0x01}; + +const int128 BS0 = {{0x5555555555555555ULL, 0x5555555555555555ULL}}; +const int128 BS1 = {{0x3333333333333333ULL, 0x3333333333333333ULL}}; +const int128 BS2 = {{0x0f0f0f0f0f0f0f0fULL, 0x0f0f0f0f0f0f0f0fULL}}; diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h new file mode 100644 index 0000000..91e8e45 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h @@ -0,0 +1,56 @@ +#ifndef INT128_H +#define INT128_H + +#include + +#include "common.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +#endif + +typedef union { + uint64_t u64[2]; + uint32_t u32[4]; + uint8_t u8[16]; +} int128; + +#define xor2 crypto_stream_aes128ctr_portable_xor2 +void xor2(int128 *r, const int128 *x); + +#define and2 crypto_stream_aes128ctr_portable_and2 +void and2(int128 *r, const int128 *x); + +#define or2 crypto_stream_aes128ctr_portable_or2 +void or2(int128 *r, const int128 *x); + +#define copy2 crypto_stream_aes128ctr_portable_copy2 +void copy2(int128 *r, const int128 *x); + +#define shufb crypto_stream_aes128ctr_portable_shufb +void shufb(int128 *r, const unsigned char *l); + +#define shufd crypto_stream_aes128ctr_portable_shufd +void shufd(int128 *r, const int128 *x, const unsigned int c); + +#define rshift32_littleendian crypto_stream_aes128ctr_portable_rshift32_littleendian +void rshift32_littleendian(int128 *r, const unsigned int n); + +#define rshift64_littleendian crypto_stream_aes128ctr_portable_rshift64_littleendian +void rshift64_littleendian(int128 *r, const unsigned int n); + +#define lshift64_littleendian crypto_stream_aes128ctr_portable_lshift64_littleendian +void lshift64_littleendian(int128 *r, const unsigned int n); + +#define toggle crypto_stream_aes128ctr_portable_toggle +void toggle(int128 *r); + +#define xor_rcon crypto_stream_aes128ctr_portable_xor_rcon +void xor_rcon(int128 *r); + +#define add_uint32_big crypto_stream_aes128ctr_portable_add_uint32_big +void add_uint32_big(int128 *r, uint32 x); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c new file mode 100644 index 0000000..d7fe2bc --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c @@ -0,0 +1,131 @@ + +#include "int128.h" +#include "common.h" + +void xor2(int128 *r, const int128 *x) +{ + r->u64[0] ^= x->u64[0]; + r->u64[1] ^= x->u64[1]; +} + +void and2(int128 *r, const int128 *x) +{ + r->u64[0] &= x->u64[0]; + r->u64[1] &= x->u64[1]; +} + +void or2(int128 *r, const int128 *x) +{ + r->u64[0] |= x->u64[0]; + r->u64[1] |= x->u64[1]; +} + +void copy2(int128 *r, const int128 *x) +{ + r->u64[0] = x->u64[0]; + r->u64[1] = x->u64[1]; +} + +void shufb(int128 *r, const unsigned char *l) +{ + int128 t; + uint8_t *ct; + uint8_t *cr; + + copy2(&t, r); + cr = r->u8; + ct = t.u8; + cr[0] = ct[l[0]]; + cr[1] = ct[l[1]]; + cr[2] = ct[l[2]]; + cr[3] = ct[l[3]]; + cr[4] = ct[l[4]]; + cr[5] = ct[l[5]]; + cr[6] = ct[l[6]]; + cr[7] = ct[l[7]]; + cr[8] = ct[l[8]]; + cr[9] = ct[l[9]]; + cr[10] = ct[l[10]]; + cr[11] = ct[l[11]]; + cr[12] = ct[l[12]]; + cr[13] = ct[l[13]]; + cr[14] = ct[l[14]]; + cr[15] = ct[l[15]]; +} + +void shufd(int128 *r, const int128 *x, const unsigned int c) +{ + int128 t; + + t.u32[0] = x->u32[c >> 0 & 3]; + t.u32[1] = x->u32[c >> 2 & 3]; + t.u32[2] = x->u32[c >> 4 & 3]; + t.u32[3] = x->u32[c >> 6 & 3]; + copy2(r, &t); +} + +void rshift32_littleendian(int128 *r, const unsigned int n) +{ + unsigned char *rp = (unsigned char *)r; + uint32 t; + t = LOAD32_LE(rp); + t >>= n; + STORE32_LE(rp, t); + t = LOAD32_LE(rp+4); + t >>= n; + STORE32_LE(rp+4, t); + t = LOAD32_LE(rp+8); + t >>= n; + STORE32_LE(rp+8, t); + t = LOAD32_LE(rp+12); + t >>= n; + STORE32_LE(rp+12, t); +} + +void rshift64_littleendian(int128 *r, const unsigned int n) +{ + unsigned char *rp = (unsigned char *)r; + uint64 t; + t = LOAD64_LE(rp); + t >>= n; + STORE64_LE(rp, t); + t = LOAD64_LE(rp+8); + t >>= n; + STORE64_LE(rp+8, t); +} + +void lshift64_littleendian(int128 *r, const unsigned int n) +{ + unsigned char *rp = (unsigned char *)r; + uint64 t; + t = LOAD64_LE(rp); + t <<= n; + STORE64_LE(rp, t); + t = LOAD64_LE(rp+8); + t <<= n; + STORE64_LE(rp+8, t); +} + +void toggle(int128 *r) +{ + r->u64[0] ^= 0xffffffffffffffffULL; + r->u64[1] ^= 0xffffffffffffffffULL; +} + +void xor_rcon(int128 *r) +{ + unsigned char *rp = (unsigned char *)r; + uint32 t; + t = LOAD32_LE(rp+12); + t ^= 0xffffffff; + STORE32_LE(rp+12, t); +} + +void add_uint32_big(int128 *r, uint32 x) +{ + unsigned char *rp = (unsigned char *)r; + uint32 t; + t = LOAD32_LE(rp+12); + t += x; + STORE32_LE(rp+12, t); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c new file mode 100644 index 0000000..43a6a02 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c @@ -0,0 +1,29 @@ + +#include "crypto_stream_aes128ctr.h" + +int crypto_stream_aes128ctr( + unsigned char *out, + unsigned long long outlen, + const unsigned char *n, + const unsigned char *k + ) +{ + unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES]; + crypto_stream_aes128ctr_beforenm(d, k); + crypto_stream_aes128ctr_afternm(out, outlen, n, d); + return 0; +} + +int crypto_stream_aes128ctr_xor( + unsigned char *out, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *n, + const unsigned char *k + ) +{ + unsigned char d[crypto_stream_aes128ctr_BEFORENMBYTES]; + crypto_stream_aes128ctr_beforenm(d, k); + crypto_stream_aes128ctr_xor_afternm(out, in, inlen, n, d); + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/types.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/types.h new file mode 100644 index 0000000..1427271 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/types.h @@ -0,0 +1,10 @@ +#ifndef TYPES_H +#define TYPES_H + +#include +#include + +typedef uint32_t uint32; +typedef uint64_t uint64; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c new file mode 100644 index 0000000..c65d73b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c @@ -0,0 +1,180 @@ +/* Author: Peter Schwabe, ported from an assembly implementation by Emilia Käsper + * Date: 2009-03-19 + * Public domain */ + +#include "crypto_stream_aes128ctr.h" +#include "int128.h" +#include "common.h" +#include "consts.h" + +int crypto_stream_aes128ctr_xor_afternm(unsigned char *out, const unsigned char *in, unsigned long long len, const unsigned char *nonce, const unsigned char *c) +{ + + int128 xmm0; + int128 xmm1; + int128 xmm2; + int128 xmm3; + int128 xmm4; + int128 xmm5; + int128 xmm6; + int128 xmm7; + + int128 xmm8; + int128 xmm9; + int128 xmm10; + int128 xmm11; + int128 xmm12; + int128 xmm13; + int128 xmm14; + int128 xmm15; + + int128 nonce_stack; + unsigned long long lensav; + unsigned char bl[128]; + unsigned char *blp; + unsigned char *np; + unsigned char b; + + uint32 tmp; + + /* Copy nonce on the stack */ + copy2(&nonce_stack, (const int128 *) (nonce + 0)); + np = (unsigned char *)&nonce_stack; + + enc_block: + + xmm0 = *(int128 *) (np + 0); + copy2(&xmm1, &xmm0); + shufb(&xmm1, SWAP32); + copy2(&xmm2, &xmm1); + copy2(&xmm3, &xmm1); + copy2(&xmm4, &xmm1); + copy2(&xmm5, &xmm1); + copy2(&xmm6, &xmm1); + copy2(&xmm7, &xmm1); + + add_uint32_big(&xmm1, 1); + add_uint32_big(&xmm2, 2); + add_uint32_big(&xmm3, 3); + add_uint32_big(&xmm4, 4); + add_uint32_big(&xmm5, 5); + add_uint32_big(&xmm6, 6); + add_uint32_big(&xmm7, 7); + + shufb(&xmm0, M0); + shufb(&xmm1, M0SWAP); + shufb(&xmm2, M0SWAP); + shufb(&xmm3, M0SWAP); + shufb(&xmm4, M0SWAP); + shufb(&xmm5, M0SWAP); + shufb(&xmm6, M0SWAP); + shufb(&xmm7, M0SWAP); + + bitslice(xmm7, xmm6, xmm5, xmm4, xmm3, xmm2, xmm1, xmm0, xmm8) + + aesround( 1, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 2, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 3, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 4, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 5, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 6, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 7, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + aesround( 8, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + aesround( 9, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,c) + lastround(xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15, xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,c) + + bitslice(xmm13, xmm10, xmm15, xmm11, xmm14, xmm12, xmm9, xmm8, xmm0) + + if(len < 128) goto partial; + if(len == 128) goto full; + + tmp = LOAD32_BE(np + 12); + tmp += 8; + STORE32_BE(np + 12, tmp); + + xor2(&xmm8, (const int128 *)(in + 0)); + xor2(&xmm9, (const int128 *)(in + 16)); + xor2(&xmm12, (const int128 *)(in + 32)); + xor2(&xmm14, (const int128 *)(in + 48)); + xor2(&xmm11, (const int128 *)(in + 64)); + xor2(&xmm15, (const int128 *)(in + 80)); + xor2(&xmm10, (const int128 *)(in + 96)); + xor2(&xmm13, (const int128 *)(in + 112)); + + *(int128 *) (out + 0) = xmm8; + *(int128 *) (out + 16) = xmm9; + *(int128 *) (out + 32) = xmm12; + *(int128 *) (out + 48) = xmm14; + *(int128 *) (out + 64) = xmm11; + *(int128 *) (out + 80) = xmm15; + *(int128 *) (out + 96) = xmm10; + *(int128 *) (out + 112) = xmm13; + + len -= 128; + in += 128; + out += 128; + + goto enc_block; + + partial: + + lensav = len; + len >>= 4; + + tmp = LOAD32_BE(np + 12); + tmp += len; + STORE32_BE(np + 12, tmp); + + blp = bl; + *(int128 *)(blp + 0) = xmm8; + *(int128 *)(blp + 16) = xmm9; + *(int128 *)(blp + 32) = xmm12; + *(int128 *)(blp + 48) = xmm14; + *(int128 *)(blp + 64) = xmm11; + *(int128 *)(blp + 80) = xmm15; + *(int128 *)(blp + 96) = xmm10; + *(int128 *)(blp + 112) = xmm13; + + bytes: + + if(lensav == 0) goto end; + + b = blp[0]; /* clang false positive */ + b ^= *(const unsigned char *)(in + 0); + *(unsigned char *)(out + 0) = b; + + blp += 1; + in +=1; + out +=1; + lensav -= 1; + + goto bytes; + + full: + + tmp = LOAD32_BE(np + 12); + tmp += 8; + STORE32_BE(np + 12, tmp); + + xor2(&xmm8, (const int128 *)(in + 0)); + xor2(&xmm9, (const int128 *)(in + 16)); + xor2(&xmm12, (const int128 *)(in + 32)); + xor2(&xmm14, (const int128 *)(in + 48)); + xor2(&xmm11, (const int128 *)(in + 64)); + xor2(&xmm15, (const int128 *)(in + 80)); + xor2(&xmm10, (const int128 *)(in + 96)); + xor2(&xmm13, (const int128 *)(in + 112)); + + *(int128 *) (out + 0) = xmm8; + *(int128 *) (out + 16) = xmm9; + *(int128 *) (out + 32) = xmm12; + *(int128 *) (out + 48) = xmm14; + *(int128 *) (out + 64) = xmm11; + *(int128 *) (out + 80) = xmm15; + *(int128 *) (out + 96) = xmm10; + *(int128 *) (out + 112) = xmm13; + + end: + return 0; + +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c new file mode 100644 index 0000000..184ad3f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c @@ -0,0 +1,16 @@ +#include "crypto_stream_aes128ctr.h" + +size_t +crypto_stream_aes128ctr_keybytes(void) { + return crypto_stream_aes128ctr_KEYBYTES; +} + +size_t +crypto_stream_aes128ctr_noncebytes(void) { + return crypto_stream_aes128ctr_NONCEBYTES; +} + +size_t +crypto_stream_aes128ctr_beforenmbytes(void) { + return crypto_stream_aes128ctr_BEFORENMBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c new file mode 100644 index 0000000..fe4c977 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c @@ -0,0 +1,315 @@ + +/* + chacha-merged.c version 20080118 + D. J. Bernstein + Public domain. + */ + +#include +#include +#include + +#include "utils.h" +#include "crypto_stream_chacha20.h" +#include "stream_chacha20_ref.h" +#include "../stream_chacha20.h" +#include "private/common.h" + +struct chacha_ctx { + uint32_t input[16]; +}; + +typedef uint8_t u8; +typedef uint32_t u32; + +typedef struct chacha_ctx chacha_ctx; + +#define U8C(v) (v##U) +#define U32C(v) (v##U) + +#define U8V(v) ((u8)(v) & U8C(0xFF)) +#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF)) + +#define ROTL32(v, n) \ + (U32V((v) << (n)) | ((v) >> (32 - (n)))) + +#define ROTATE(v,c) (ROTL32(v,c)) +#define XOR(v,w) ((v) ^ (w)) +#define PLUS(v,w) (U32V((v) + (w))) +#define PLUSONE(v) (PLUS((v),1)) + +#define QUARTERROUND(a,b,c,d) \ + a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \ + c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \ + a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \ + c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); + +static void +chacha_keysetup(chacha_ctx *ctx, const u8 *k) +{ + ctx->input[0] = U32C(0x61707865); + ctx->input[1] = U32C(0x3320646e); + ctx->input[2] = U32C(0x79622d32); + ctx->input[3] = U32C(0x6b206574); + ctx->input[4] = LOAD32_LE(k + 0); + ctx->input[5] = LOAD32_LE(k + 4); + ctx->input[6] = LOAD32_LE(k + 8); + ctx->input[7] = LOAD32_LE(k + 12); + ctx->input[8] = LOAD32_LE(k + 16); + ctx->input[9] = LOAD32_LE(k + 20); + ctx->input[10] = LOAD32_LE(k + 24); + ctx->input[11] = LOAD32_LE(k + 28); +} + +static void +chacha_ivsetup(chacha_ctx *ctx, const u8 *iv, const u8 *counter) +{ + ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter + 0); + ctx->input[13] = counter == NULL ? 0 : LOAD32_LE(counter + 4); + ctx->input[14] = LOAD32_LE(iv + 0); + ctx->input[15] = LOAD32_LE(iv + 4); +} + +static void +chacha_ietf_ivsetup(chacha_ctx *ctx, const u8 *iv, const u8 *counter) +{ + ctx->input[12] = counter == NULL ? 0 : LOAD32_LE(counter); + ctx->input[13] = LOAD32_LE(iv + 0); + ctx->input[14] = LOAD32_LE(iv + 4); + ctx->input[15] = LOAD32_LE(iv + 8); +} + +static void +chacha_encrypt_bytes(chacha_ctx *ctx, const u8 *m, u8 *c, unsigned long long bytes) +{ + u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15; + u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15; + u8 *ctarget = NULL; + u8 tmp[64]; + unsigned int i; + + if (!bytes) { + return; /* LCOV_EXCL_LINE */ + } + if (bytes > 64ULL * (1ULL << 32) - 64ULL) { + abort(); + } + j0 = ctx->input[0]; + j1 = ctx->input[1]; + j2 = ctx->input[2]; + j3 = ctx->input[3]; + j4 = ctx->input[4]; + j5 = ctx->input[5]; + j6 = ctx->input[6]; + j7 = ctx->input[7]; + j8 = ctx->input[8]; + j9 = ctx->input[9]; + j10 = ctx->input[10]; + j11 = ctx->input[11]; + j12 = ctx->input[12]; + j13 = ctx->input[13]; + j14 = ctx->input[14]; + j15 = ctx->input[15]; + + for (;;) { + if (bytes < 64) { + memset(tmp, 0, 64); + for (i = 0; i < bytes; ++i) { + tmp[i] = m[i]; + } + m = tmp; + ctarget = c; + c = tmp; + } + x0 = j0; + x1 = j1; + x2 = j2; + x3 = j3; + x4 = j4; + x5 = j5; + x6 = j6; + x7 = j7; + x8 = j8; + x9 = j9; + x10 = j10; + x11 = j11; + x12 = j12; + x13 = j13; + x14 = j14; + x15 = j15; + for (i = 20; i > 0; i -= 2) { + QUARTERROUND(x0, x4, x8, x12) + QUARTERROUND(x1, x5, x9, x13) + QUARTERROUND(x2, x6, x10, x14) + QUARTERROUND(x3, x7, x11, x15) + QUARTERROUND(x0, x5, x10, x15) + QUARTERROUND(x1, x6, x11, x12) + QUARTERROUND(x2, x7, x8, x13) + QUARTERROUND(x3, x4, x9, x14) + } + x0 = PLUS(x0, j0); + x1 = PLUS(x1, j1); + x2 = PLUS(x2, j2); + x3 = PLUS(x3, j3); + x4 = PLUS(x4, j4); + x5 = PLUS(x5, j5); + x6 = PLUS(x6, j6); + x7 = PLUS(x7, j7); + x8 = PLUS(x8, j8); + x9 = PLUS(x9, j9); + x10 = PLUS(x10, j10); + x11 = PLUS(x11, j11); + x12 = PLUS(x12, j12); + x13 = PLUS(x13, j13); + x14 = PLUS(x14, j14); + x15 = PLUS(x15, j15); + + x0 = XOR(x0, LOAD32_LE(m + 0)); + x1 = XOR(x1, LOAD32_LE(m + 4)); + x2 = XOR(x2, LOAD32_LE(m + 8)); + x3 = XOR(x3, LOAD32_LE(m + 12)); + x4 = XOR(x4, LOAD32_LE(m + 16)); + x5 = XOR(x5, LOAD32_LE(m + 20)); + x6 = XOR(x6, LOAD32_LE(m + 24)); + x7 = XOR(x7, LOAD32_LE(m + 28)); + x8 = XOR(x8, LOAD32_LE(m + 32)); + x9 = XOR(x9, LOAD32_LE(m + 36)); + x10 = XOR(x10, LOAD32_LE(m + 40)); + x11 = XOR(x11, LOAD32_LE(m + 44)); + x12 = XOR(x12, LOAD32_LE(m + 48)); + x13 = XOR(x13, LOAD32_LE(m + 52)); + x14 = XOR(x14, LOAD32_LE(m + 56)); + x15 = XOR(x15, LOAD32_LE(m + 60)); + + j12 = PLUSONE(j12); + /* LCOV_EXCL_START */ + if (!j12) { + j13 = PLUSONE(j13); + } + /* LCOV_EXCL_STOP */ + + STORE32_LE(c + 0, x0); + STORE32_LE(c + 4, x1); + STORE32_LE(c + 8, x2); + STORE32_LE(c + 12, x3); + STORE32_LE(c + 16, x4); + STORE32_LE(c + 20, x5); + STORE32_LE(c + 24, x6); + STORE32_LE(c + 28, x7); + STORE32_LE(c + 32, x8); + STORE32_LE(c + 36, x9); + STORE32_LE(c + 40, x10); + STORE32_LE(c + 44, x11); + STORE32_LE(c + 48, x12); + STORE32_LE(c + 52, x13); + STORE32_LE(c + 56, x14); + STORE32_LE(c + 60, x15); + + if (bytes <= 64) { + if (bytes < 64) { + for (i = 0; i < (unsigned int) bytes; ++i) { + ctarget[i] = c[i]; /* ctarget cannot be NULL */ + } + } + ctx->input[12] = j12; + ctx->input[13] = j13; + return; + } + bytes -= 64; + c += 64; + m += 64; + } +} + +static int +stream_ref(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!clen) { + return 0; + } + (void) sizeof(int[crypto_stream_chacha20_KEYBYTES == 256 / 8 ? 1 : -1]); + chacha_keysetup(&ctx, k); + chacha_ivsetup(&ctx, n, NULL); + memset(c, 0, clen); + chacha_encrypt_bytes(&ctx, c, c, clen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_ietf_ref(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!clen) { + return 0; + } + (void) sizeof(int[crypto_stream_chacha20_KEYBYTES == 256 / 8 ? 1 : -1]); + chacha_keysetup(&ctx, k); + chacha_ietf_ivsetup(&ctx, n, NULL); + memset(c, 0, clen); + chacha_encrypt_bytes(&ctx, c, c, clen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_ref_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k) +{ + struct chacha_ctx ctx; + uint8_t ic_bytes[8]; + uint32_t ic_high; + uint32_t ic_low; + + if (!mlen) { + return 0; + } + ic_high = U32V(ic >> 32); + ic_low = U32V(ic); + STORE32_LE(&ic_bytes[0], ic_low); + STORE32_LE(&ic_bytes[4], ic_high); + chacha_keysetup(&ctx, k); + chacha_ivsetup(&ctx, n, ic_bytes); + chacha_encrypt_bytes(&ctx, m, c, mlen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_ietf_ref_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k) +{ + struct chacha_ctx ctx; + uint8_t ic_bytes[4]; + + if (!mlen) { + return 0; + } + STORE32_LE(ic_bytes, ic); + chacha_keysetup(&ctx, k); + chacha_ietf_ivsetup(&ctx, n, ic_bytes); + chacha_encrypt_bytes(&ctx, m, c, mlen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +struct crypto_stream_chacha20_implementation +crypto_stream_chacha20_ref_implementation = { + SODIUM_C99(.stream =) stream_ref, + SODIUM_C99(.stream_ietf =) stream_ietf_ref, + SODIUM_C99(.stream_xor_ic =) stream_ref_xor_ic, + SODIUM_C99(.stream_ietf_xor_ic =) stream_ietf_ref_xor_ic +}; diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h new file mode 100644 index 0000000..c8b923c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h @@ -0,0 +1,28 @@ + +#include + +#include "crypto_stream_chacha20.h" +#include "../stream_chacha20.h" + +extern struct crypto_stream_chacha20_implementation + crypto_stream_chacha20_ref_implementation; + +int +crypto_stream_chacha20_ref(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +int +crypto_stream_chacha20_ref_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); + +int +crypto_stream_chacha20_ietf_ref(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +int +crypto_stream_chacha20_ietf_ref_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k); diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c new file mode 100644 index 0000000..56b496a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c @@ -0,0 +1,85 @@ +#include "crypto_stream_chacha20.h" +#include "stream_chacha20.h" +#include "runtime.h" +#include "ref/stream_chacha20_ref.h" +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(__GNUC__)) +# include "vec/stream_chacha20_vec.h" +#endif + +static const crypto_stream_chacha20_implementation *implementation = + &crypto_stream_chacha20_ref_implementation; + +size_t +crypto_stream_chacha20_keybytes(void) { + return crypto_stream_chacha20_KEYBYTES; +} + +size_t +crypto_stream_chacha20_noncebytes(void) { + return crypto_stream_chacha20_NONCEBYTES; +} + +size_t +crypto_stream_chacha20_ietf_noncebytes(void) { + return crypto_stream_chacha20_IETF_NONCEBYTES; +} + +int +crypto_stream_chacha20(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + return implementation->stream(c, clen, n, k); +} + +int +crypto_stream_chacha20_ietf(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + return implementation->stream_ietf(c, clen, n, k); +} + +int +crypto_stream_chacha20_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k) +{ + return implementation->stream_xor_ic(c, m, mlen, n, ic, k); +} + +int +crypto_stream_chacha20_ietf_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k) +{ + return implementation->stream_ietf_xor_ic(c, m, mlen, n, ic, k); +} + +int +crypto_stream_chacha20_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return implementation->stream_xor_ic(c, m, mlen, n, 0U, k); +} + +int +crypto_stream_chacha20_ietf_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return implementation->stream_ietf_xor_ic(c, m, mlen, n, 0U, k); +} + +int +_crypto_stream_chacha20_pick_best_implementation(void) +{ + implementation = &crypto_stream_chacha20_ref_implementation; +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(__GNUC__)) + if (sodium_runtime_has_ssse3()) { + implementation = &crypto_stream_chacha20_vec_implementation; + } +#endif + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h new file mode 100644 index 0000000..d6b71c5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h @@ -0,0 +1,22 @@ + +#ifndef stream_chacha20_H +#define stream_chacha20_H + +#include + +typedef struct crypto_stream_chacha20_implementation { + int (*stream)(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + int (*stream_ietf)(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + int (*stream_xor_ic)(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); + int (*stream_ietf_xor_ic)(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k); +} crypto_stream_chacha20_implementation; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c new file mode 100644 index 0000000..c18885e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c @@ -0,0 +1,336 @@ + +#include +#include +#include + +#include "export.h" +#include "utils.h" +#include "crypto_stream_chacha20.h" +#include "stream_chacha20_vec.h" +#include "../stream_chacha20.h" + +#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(__GNUC__)) + +#pragma GCC target("sse2") +#pragma GCC target("ssse3") + +#define CHACHA_RNDS 20 + +typedef unsigned int vec __attribute__ ((vector_size(16))); + +#include +#include + +# if __clang__ +# define VBPI 4 +# else +# define VBPI 3 +# endif +# define ONE (vec) _mm_set_epi32(0, 0, 0, 1) +# define LOAD(m) (vec) _mm_loadu_si128((const __m128i *) (const void *) (m)) +# define LOAD_ALIGNED(m) (vec) _mm_load_si128((const __m128i *) (const void *) (m)) +# define STORE(m, r) _mm_storeu_si128((__m128i *) (void *) (m), (__m128i) (r)) +# define ROTV1(x) (vec) _mm_shuffle_epi32((__m128i)x, _MM_SHUFFLE(0, 3, 2, 1)) +# define ROTV2(x) (vec) _mm_shuffle_epi32((__m128i)x, _MM_SHUFFLE(1, 0, 3, 2)) +# define ROTV3(x) (vec) _mm_shuffle_epi32((__m128i)x, _MM_SHUFFLE(2, 1, 0, 3)) +# define ROTW7(x) \ + (vec)(_mm_slli_epi32((__m128i)x, 7) ^ _mm_srli_epi32((__m128i)x, 25)) +# define ROTW12(x) \ + (vec)(_mm_slli_epi32((__m128i)x, 12) ^ _mm_srli_epi32((__m128i)x, 20)) +# define ROTW8(x) \ + (vec)(_mm_slli_epi32((__m128i)x, 8) ^ _mm_srli_epi32((__m128i)x, 24)) +#define ROTW16(x) \ + (vec)(_mm_slli_epi32((__m128i)x, 16) ^ _mm_srli_epi32((__m128i)x, 16)) + +#ifndef REVV_BE +# define REVV_BE(x) (x) +#endif + +#define BPI (VBPI + 0) /* Blocks computed per loop iteration */ + +#define DQROUND_VECTORS(a, b, c, d) \ + a += b; \ + d ^= a; \ + d = ROTW16(d); \ + c += d; \ + b ^= c; \ + b = ROTW12(b); \ + a += b; \ + d ^= a; \ + d = ROTW8(d); \ + c += d; \ + b ^= c; \ + b = ROTW7(b); \ + b = ROTV1(b); \ + c = ROTV2(c); \ + d = ROTV3(d); \ + a += b; \ + d ^= a; \ + d = ROTW16(d); \ + c += d; \ + b ^= c; \ + b = ROTW12(b); \ + a += b; \ + d ^= a; \ + d = ROTW8(d); \ + c += d; \ + b ^= c; \ + b = ROTW7(b); \ + b = ROTV3(b); \ + c = ROTV2(c); \ + d = ROTV1(d); + +#define WRITE_XOR(in, op, d, v0, v1, v2, v3) \ + STORE(op + d + 0, LOAD(in + d + 0) ^ REVV_BE(v0)); \ + STORE(op + d + 4, LOAD(in + d + 4) ^ REVV_BE(v1)); \ + STORE(op + d + 8, LOAD(in + d + 8) ^ REVV_BE(v2)); \ + STORE(op + d + 12, LOAD(in + d + 12) ^ REVV_BE(v3)); + +struct chacha_ctx { + vec s1; + vec s2; + vec s3; +}; + +typedef struct chacha_ctx chacha_ctx; + +static void +chacha_ivsetup(chacha_ctx *ctx, const uint8_t *iv, uint64_t ic) +{ + uint32_t iv_low; + uint32_t iv_high; + + memcpy(&iv_low, iv, 4); + memcpy(&iv_high, iv + 4, 4); + { + const vec s3 = { + (uint32_t) ic, + (uint32_t) (ic >> 32), + iv_low, + iv_high + }; + ctx->s3 = s3; + } +} + +static void +chacha_ietf_ivsetup(chacha_ctx *ctx, const uint8_t *iv, uint32_t ic) +{ + const vec s3 = { + ic, + ((const uint32_t *) (const void *) iv)[0], + ((const uint32_t *) (const void *) iv)[1], + ((const uint32_t *) (const void *) iv)[2] + }; + ctx->s3 = s3; +} + +static void +chacha_keysetup(chacha_ctx *ctx, const uint8_t *k) +{ + ctx->s1 = LOAD(k); + ctx->s2 = LOAD(k + 16); +} + +static void +chacha_encrypt_bytes(chacha_ctx *ctx, const uint8_t *in, uint8_t *out, + unsigned long long inlen) +{ + CRYPTO_ALIGN(16) unsigned chacha_const[] + = { 0x61707865, 0x3320646E, 0x79622D32, 0x6B206574 }; + uint32_t *op = (uint32_t *) (void *) out; + const uint32_t *ip = (const uint32_t *) (const void *) in; + vec s0, s1, s2, s3; + unsigned long long iters; + unsigned long long i; + + if (inlen > 64ULL * (1ULL << 32) - 64ULL) { + abort(); /* LCOV_EXCL_LINE */ + } + s0 = LOAD_ALIGNED(chacha_const); + s1 = ctx->s1; + s2 = ctx->s2; + s3 = ctx->s3; + + for (iters = 0; iters < inlen / (BPI * 64); iters++) { +#if VBPI > 2 + vec v8, v9, v10, v11; +#endif +#if VBPI > 3 + vec v12, v13, v14, v15; +#endif + vec v0, v1, v2, v3, v4, v5, v6, v7; + v4 = v0 = s0; + v5 = v1 = s1; + v6 = v2 = s2; + v3 = s3; + v7 = v3 + ONE; +#if VBPI > 2 + v8 = v4; + v9 = v5; + v10 = v6; + v11 = v7 + ONE; +#endif +#if VBPI > 3 + v12 = v8; + v13 = v9; + v14 = v10; + v15 = v11 + ONE; +#endif + for (i = CHACHA_RNDS / 2; i; i--) { + DQROUND_VECTORS(v0, v1, v2, v3) + DQROUND_VECTORS(v4, v5, v6, v7) +#if VBPI > 2 + DQROUND_VECTORS(v8, v9, v10, v11) +#endif +#if VBPI > 3 + DQROUND_VECTORS(v12, v13, v14, v15) +#endif + } + + WRITE_XOR(ip, op, 0, v0 + s0, v1 + s1, v2 + s2, v3 + s3) + s3 += ONE; + WRITE_XOR(ip, op, 16, v4 + s0, v5 + s1, v6 + s2, v7 + s3) + s3 += ONE; +#if VBPI > 2 + WRITE_XOR(ip, op, 32, v8 + s0, v9 + s1, v10 + s2, v11 + s3) + s3 += ONE; +#endif +#if VBPI > 3 + WRITE_XOR(ip, op, 48, v12 + s0, v13 + s1, v14 + s2, v15 + s3) + s3 += ONE; +#endif + ip += VBPI * 16; + op += VBPI * 16; + } + + for (iters = inlen % (BPI * 64) / 64; iters != 0; iters--) { + vec v0 = s0, v1 = s1, v2 = s2, v3 = s3; + for (i = CHACHA_RNDS / 2; i; i--) { + DQROUND_VECTORS(v0, v1, v2, v3); + } + WRITE_XOR(ip, op, 0, v0 + s0, v1 + s1, v2 + s2, v3 + s3) + s3 += ONE; + ip += 16; + op += 16; + } + + inlen = inlen % 64; + if (inlen) { + CRYPTO_ALIGN(16) vec buf[4]; + vec v0, v1, v2, v3; + v0 = s0; + v1 = s1; + v2 = s2; + v3 = s3; + for (i = CHACHA_RNDS / 2; i; i--) { + DQROUND_VECTORS(v0, v1, v2, v3); + } + + if (inlen >= 16) { + STORE(op + 0, LOAD(ip + 0) ^ REVV_BE(v0 + s0)); + if (inlen >= 32) { + STORE(op + 4, LOAD(ip + 4) ^ REVV_BE(v1 + s1)); + if (inlen >= 48) { + STORE(op + 8, LOAD(ip + 8) ^ REVV_BE(v2 + s2)); + buf[3] = REVV_BE(v3 + s3); + } else { + buf[2] = REVV_BE(v2 + s2); + } + } else { + buf[1] = REVV_BE(v1 + s1); + } + } else { + buf[0] = REVV_BE(v0 + s0); + } + for (i = inlen & ~15ULL; i < inlen; i++) { + ((char *) op)[i] = ((const char *) ip)[i] ^ ((char *) buf)[i]; + } + } +} + +static int +stream_vec(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!clen) { + return 0; + } + (void) sizeof(int[crypto_stream_chacha20_KEYBYTES == 256 / 8 ? 1 : -1]); + chacha_keysetup(&ctx, k); + chacha_ivsetup(&ctx, n, 0ULL); + memset(c, 0, clen); + chacha_encrypt_bytes(&ctx, c, c, clen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_ietf_vec(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!clen) { + return 0; + } + (void) sizeof(int[crypto_stream_chacha20_KEYBYTES == 256 / 8 ? 1 : -1]); + chacha_keysetup(&ctx, k); + chacha_ietf_ivsetup(&ctx, n, 0ULL); + memset(c, 0, clen); + chacha_encrypt_bytes(&ctx, c, c, clen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_vec_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!mlen) { + return 0; + } + chacha_keysetup(&ctx, k); + chacha_ivsetup(&ctx, n, ic); + chacha_encrypt_bytes(&ctx, m, c, mlen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +static int +stream_ietf_vec_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k) +{ + struct chacha_ctx ctx; + + if (!mlen) { + return 0; + } + chacha_keysetup(&ctx, k); + chacha_ietf_ivsetup(&ctx, n, ic); + chacha_encrypt_bytes(&ctx, m, c, mlen); + sodium_memzero(&ctx, sizeof ctx); + + return 0; +} + +struct crypto_stream_chacha20_implementation +crypto_stream_chacha20_vec_implementation = { + SODIUM_C99(.stream =) stream_vec, + SODIUM_C99(.stream_ietf =) stream_ietf_vec, + SODIUM_C99(.stream_xor_ic =) stream_vec_xor_ic, + SODIUM_C99(.stream_ietf_xor_ic =) stream_ietf_vec_xor_ic +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h new file mode 100644 index 0000000..da8babc --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h @@ -0,0 +1,28 @@ + +#include + +#include "crypto_stream_chacha20.h" +#include "../stream_chacha20.h" + +extern struct crypto_stream_chacha20_implementation + crypto_stream_chacha20_vec_implementation; + +int +crypto_stream_chacha20_vec(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +int +crypto_stream_chacha20_vec_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); + +int +crypto_stream_chacha20_ietf_vec(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +int +crypto_stream_chacha20_ietf_vec_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k); diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/crypto_stream.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/crypto_stream.c new file mode 100644 index 0000000..50a9c1c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/crypto_stream.c @@ -0,0 +1,36 @@ + +#include "crypto_stream.h" + +size_t +crypto_stream_keybytes(void) +{ + return crypto_stream_KEYBYTES; +} + +size_t +crypto_stream_noncebytes(void) +{ + return crypto_stream_NONCEBYTES; +} + +const char * +crypto_stream_primitive(void) +{ + return crypto_stream_PRIMITIVE; +} + +int +crypto_stream(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k) +{ + return crypto_stream_xsalsa20(c, clen, n, k); +} + + +int +crypto_stream_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_stream_xsalsa20_xor(c, m, mlen, n, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c new file mode 100644 index 0000000..5a17b4b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c @@ -0,0 +1,55 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_salsa20.h" +#include "crypto_stream_salsa20.h" +#include "utils.h" + +#ifndef HAVE_AMD64_ASM + +int crypto_stream_salsa20( + unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!clen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) in[i] = 0; + + while (clen >= 64) { + crypto_core_salsa20(c,in,kcopy,NULL); + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + clen -= 64; + c += 64; + } + + if (clen) { + crypto_core_salsa20(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) clen;++i) c[i] = block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c new file mode 100644 index 0000000..d598496 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c @@ -0,0 +1,63 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include + +#include "crypto_core_salsa20.h" +#include "crypto_stream_salsa20.h" +#include "utils.h" + +#ifndef HAVE_AMD64_ASM + +int crypto_stream_salsa20_xor_ic( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!mlen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) { + in[i] = (unsigned char) (ic & 0xff); + ic >>= 8; + } + + while (mlen >= 64) { + crypto_core_salsa20(block,in,kcopy,NULL); + for (i = 0;i < 64;++i) c[i] = m[i] ^ block[i]; + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + mlen -= 64; + c += 64; + m += 64; + } + + if (mlen) { + crypto_core_salsa20(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) mlen;++i) c[i] = m[i] ^ block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c new file mode 100644 index 0000000..3bc0580 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c @@ -0,0 +1,19 @@ +#include "crypto_stream_salsa20.h" + +size_t +crypto_stream_salsa20_keybytes(void) { + return crypto_stream_salsa20_KEYBYTES; +} + +size_t +crypto_stream_salsa20_noncebytes(void) { + return crypto_stream_salsa20_NONCEBYTES; +} + +int +crypto_stream_salsa20_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k) +{ + return crypto_stream_salsa20_xor_ic(c, m, mlen, n, 0U, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c new file mode 100644 index 0000000..5a3a3c1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c @@ -0,0 +1,51 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_salsa2012.h" +#include "crypto_stream_salsa2012.h" +#include "utils.h" + +int crypto_stream_salsa2012( + unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!clen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) in[i] = 0; + + while (clen >= 64) { + crypto_core_salsa2012(c,in,kcopy,NULL); + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + clen -= 64; + c += 64; + } + + if (clen) { + crypto_core_salsa2012(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) clen;++i) c[i] = block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c new file mode 100644 index 0000000..f885b30 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c @@ -0,0 +1,54 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_salsa2012.h" +#include "crypto_stream_salsa2012.h" +#include "utils.h" + +int crypto_stream_salsa2012_xor( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!mlen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) in[i] = 0; + + while (mlen >= 64) { + crypto_core_salsa2012(block,in,kcopy,NULL); + for (i = 0;i < 64;++i) c[i] = m[i] ^ block[i]; + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + mlen -= 64; + c += 64; + m += 64; + } + + if (mlen) { + crypto_core_salsa2012(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) mlen;++i) c[i] = m[i] ^ block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c new file mode 100644 index 0000000..3b5685f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c @@ -0,0 +1,11 @@ +#include "crypto_stream_salsa2012.h" + +size_t +crypto_stream_salsa2012_keybytes(void) { + return crypto_stream_salsa2012_KEYBYTES; +} + +size_t +crypto_stream_salsa2012_noncebytes(void) { + return crypto_stream_salsa2012_NONCEBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c new file mode 100644 index 0000000..0b81ce1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c @@ -0,0 +1,51 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_salsa208.h" +#include "crypto_stream_salsa208.h" +#include "utils.h" + +int crypto_stream_salsa208( + unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!clen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) in[i] = 0; + + while (clen >= 64) { + crypto_core_salsa208(c,in,kcopy,NULL); + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + clen -= 64; + c += 64; + } + + if (clen) { + crypto_core_salsa208(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) clen;++i) c[i] = block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c new file mode 100644 index 0000000..fdbd593 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c @@ -0,0 +1,54 @@ +/* +version 20140420 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_salsa208.h" +#include "crypto_stream_salsa208.h" +#include "utils.h" + +int crypto_stream_salsa208_xor( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char in[16]; + unsigned char block[64]; + unsigned char kcopy[32]; + unsigned int i; + unsigned int u; + + if (!mlen) return 0; + + for (i = 0;i < 32;++i) kcopy[i] = k[i]; + for (i = 0;i < 8;++i) in[i] = n[i]; + for (i = 8;i < 16;++i) in[i] = 0; + + while (mlen >= 64) { + crypto_core_salsa208(block,in,kcopy,NULL); + for (i = 0;i < 64;++i) c[i] = m[i] ^ block[i]; + + u = 1; + for (i = 8;i < 16;++i) { + u += (unsigned int) in[i]; + in[i] = u; + u >>= 8; + } + + mlen -= 64; + c += 64; + m += 64; + } + + if (mlen) { + crypto_core_salsa208(block,in,kcopy,NULL); + for (i = 0;i < (unsigned int) mlen;++i) c[i] = m[i] ^ block[i]; + } + sodium_memzero(block, sizeof block); + sodium_memzero(kcopy, sizeof kcopy); + + return 0; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c new file mode 100644 index 0000000..640a8b2 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c @@ -0,0 +1,11 @@ +#include "crypto_stream_salsa208.h" + +size_t +crypto_stream_salsa208_keybytes(void) { + return crypto_stream_salsa208_KEYBYTES; +} + +size_t +crypto_stream_salsa208_noncebytes(void) { + return crypto_stream_salsa208_NONCEBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c new file mode 100644 index 0000000..1e6513a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c @@ -0,0 +1,24 @@ +/* +version 20080914 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_hsalsa20.h" +#include "crypto_stream_salsa20.h" +#include "crypto_stream_xsalsa20.h" +#include "utils.h" + +int crypto_stream_xsalsa20( + unsigned char *c,unsigned long long clen, + const unsigned char *n, + const unsigned char *k +) +{ + unsigned char subkey[32]; + int ret; + crypto_core_hsalsa20(subkey,n,k,NULL); + ret = crypto_stream_salsa20(c,clen,n + 16,subkey); + sodium_memzero(subkey, sizeof subkey); + return ret; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c new file mode 100644 index 0000000..7a4562b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c @@ -0,0 +1,35 @@ +/* +version 20080913 +D. J. Bernstein +Public domain. +*/ + +#include "crypto_core_hsalsa20.h" +#include "crypto_stream_salsa20.h" +#include "crypto_stream_xsalsa20.h" +#include "utils.h" + +int crypto_stream_xsalsa20_xor_ic( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n,uint64_t ic, + const unsigned char *k +) +{ + unsigned char subkey[32]; + int ret; + crypto_core_hsalsa20(subkey,n,k,NULL); + ret = crypto_stream_salsa20_xor_ic(c,m,mlen,n + 16,ic,subkey); + sodium_memzero(subkey, sizeof subkey); + return ret; +} + +int crypto_stream_xsalsa20_xor( + unsigned char *c, + const unsigned char *m,unsigned long long mlen, + const unsigned char *n, + const unsigned char *k +) +{ + return crypto_stream_xsalsa20_xor_ic(c, m, mlen, n, 0ULL, k); +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c new file mode 100644 index 0000000..256084e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c @@ -0,0 +1,11 @@ +#include "crypto_stream_xsalsa20.h" + +size_t +crypto_stream_xsalsa20_keybytes(void) { + return crypto_stream_xsalsa20_KEYBYTES; +} + +size_t +crypto_stream_xsalsa20_noncebytes(void) { + return crypto_stream_xsalsa20_NONCEBYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/16/ref/verify_16.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/16/ref/verify_16.c new file mode 100644 index 0000000..55080f0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/16/ref/verify_16.c @@ -0,0 +1,17 @@ + +#include +#include + +#include "crypto_verify_16.h" + +int +crypto_verify_16(const unsigned char *x, const unsigned char *y) +{ + uint_fast16_t d = 0U; + int i; + + for (i = 0; i < 16; i++) { + d |= x[i] ^ y[i]; + } + return (1 & ((d - 1) >> 8)) - 1; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/16/verify_16_api.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/16/verify_16_api.c new file mode 100644 index 0000000..757f9b6 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/16/verify_16_api.c @@ -0,0 +1,6 @@ +#include "crypto_verify_16.h" + +size_t +crypto_verify_16_bytes(void) { + return crypto_verify_16_BYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c new file mode 100644 index 0000000..2ad2560 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c @@ -0,0 +1,17 @@ + +#include +#include + +#include "crypto_verify_32.h" + +int +crypto_verify_32(const unsigned char *x, const unsigned char *y) +{ + uint_fast16_t d = 0U; + int i; + + for (i = 0; i < 32; i++) { + d |= x[i] ^ y[i]; + } + return (1 & ((d - 1) >> 8)) - 1; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/32/verify_32_api.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/32/verify_32_api.c new file mode 100644 index 0000000..6241c4d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/32/verify_32_api.c @@ -0,0 +1,6 @@ +#include "crypto_verify_32.h" + +size_t +crypto_verify_32_bytes(void) { + return crypto_verify_32_BYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/64/ref/verify_64.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/64/ref/verify_64.c new file mode 100644 index 0000000..b6d32cf --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/64/ref/verify_64.c @@ -0,0 +1,17 @@ + +#include +#include + +#include "crypto_verify_64.h" + +int +crypto_verify_64(const unsigned char *x, const unsigned char *y) +{ + uint_fast16_t d = 0U; + int i; + + for (i = 0; i < 64; i++) { + d |= x[i] ^ y[i]; + } + return (1 & ((d - 1) >> 8)) - 1; +} diff --git a/Example/Pods/libsodium/src/libsodium/crypto_verify/64/verify_64_api.c b/Example/Pods/libsodium/src/libsodium/crypto_verify/64/verify_64_api.c new file mode 100644 index 0000000..ec3e4d4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/crypto_verify/64/verify_64_api.c @@ -0,0 +1,6 @@ +#include "crypto_verify_64.h" + +size_t +crypto_verify_64_bytes(void) { + return crypto_verify_64_BYTES; +} diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium.h b/Example/Pods/libsodium/src/libsodium/include/sodium.h new file mode 100644 index 0000000..ea0c247 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium.h @@ -0,0 +1,57 @@ + +#ifndef sodium_H +#define sodium_H + +#include "sodium/core.h" +#include "sodium/crypto_aead_aes256gcm.h" +#include "sodium/crypto_aead_chacha20poly1305.h" +#include "sodium/crypto_auth.h" +#include "sodium/crypto_auth_hmacsha256.h" +#include "sodium/crypto_auth_hmacsha512.h" +#include "sodium/crypto_auth_hmacsha512256.h" +#include "sodium/crypto_box.h" +#include "sodium/crypto_box_curve25519xsalsa20poly1305.h" +#include "sodium/crypto_core_hsalsa20.h" +#include "sodium/crypto_core_hchacha20.h" +#include "sodium/crypto_core_salsa20.h" +#include "sodium/crypto_core_salsa2012.h" +#include "sodium/crypto_core_salsa208.h" +#include "sodium/crypto_generichash.h" +#include "sodium/crypto_generichash_blake2b.h" +#include "sodium/crypto_hash.h" +#include "sodium/crypto_hash_sha256.h" +#include "sodium/crypto_hash_sha512.h" +#include "sodium/crypto_onetimeauth.h" +#include "sodium/crypto_onetimeauth_poly1305.h" +#include "sodium/crypto_pwhash.h" +#include "sodium/crypto_pwhash_argon2i.h" +#include "sodium/crypto_pwhash_scryptsalsa208sha256.h" +#include "sodium/crypto_scalarmult.h" +#include "sodium/crypto_scalarmult_curve25519.h" +#include "sodium/crypto_secretbox.h" +#include "sodium/crypto_secretbox_xsalsa20poly1305.h" +#include "sodium/crypto_shorthash.h" +#include "sodium/crypto_shorthash_siphash24.h" +#include "sodium/crypto_sign.h" +#include "sodium/crypto_sign_ed25519.h" +#include "sodium/crypto_stream.h" +#include "sodium/crypto_stream_aes128ctr.h" +#include "sodium/crypto_stream_chacha20.h" +#include "sodium/crypto_stream_salsa20.h" +#include "sodium/crypto_stream_salsa2012.h" +#include "sodium/crypto_stream_salsa208.h" +#include "sodium/crypto_stream_xsalsa20.h" +#include "sodium/crypto_verify_16.h" +#include "sodium/crypto_verify_32.h" +#include "sodium/crypto_verify_64.h" +#include "sodium/randombytes.h" +#ifdef __native_client__ +# include "sodium/randombytes_nativeclient.h" +#endif +#include "sodium/randombytes_salsa20_random.h" +#include "sodium/randombytes_sysrandom.h" +#include "sodium/runtime.h" +#include "sodium/utils.h" +#include "sodium/version.h" + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/core.h b/Example/Pods/libsodium/src/libsodium/include/sodium/core.h new file mode 100644 index 0000000..3ca4476 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/core.h @@ -0,0 +1,19 @@ + +#ifndef sodium_core_H +#define sodium_core_H + +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +int sodium_init(void) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h new file mode 100644 index 0000000..6df68cf --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h @@ -0,0 +1,141 @@ +#ifndef crypto_aead_aes256gcm_H +#define crypto_aead_aes256gcm_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +SODIUM_EXPORT +int crypto_aead_aes256gcm_is_available(void); + +#define crypto_aead_aes256gcm_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_aead_aes256gcm_keybytes(void); + +#define crypto_aead_aes256gcm_NSECBYTES 0U +SODIUM_EXPORT +size_t crypto_aead_aes256gcm_nsecbytes(void); + +#define crypto_aead_aes256gcm_NPUBBYTES 12U +SODIUM_EXPORT +size_t crypto_aead_aes256gcm_npubbytes(void); + +#define crypto_aead_aes256gcm_ABYTES 16U +SODIUM_EXPORT +size_t crypto_aead_aes256gcm_abytes(void); + +typedef CRYPTO_ALIGN(16) unsigned char crypto_aead_aes256gcm_state[512]; +SODIUM_EXPORT +size_t crypto_aead_aes256gcm_statebytes(void); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* -- Precomputation interface -- */ + +SODIUM_EXPORT +int crypto_aead_aes256gcm_beforenm(crypto_aead_aes256gcm_state *ctx_, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_encrypt_afternm(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_decrypt_afternm(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_encrypt_detached_afternm(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_); + +SODIUM_EXPORT +int crypto_aead_aes256gcm_decrypt_detached_afternm(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const crypto_aead_aes256gcm_state *ctx_) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h new file mode 100644 index 0000000..6fe4cf0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h @@ -0,0 +1,156 @@ +#ifndef crypto_aead_chacha20poly1305_H +#define crypto_aead_chacha20poly1305_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +/* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */ + +#define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_ietf_keybytes(void); + +#define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void); + +#define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U + +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_ietf_npubbytes(void); + +#define crypto_aead_chacha20poly1305_ietf_ABYTES 16U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_ietf_abytes(void); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */ + +#define crypto_aead_chacha20poly1305_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_keybytes(void); + +#define crypto_aead_chacha20poly1305_NSECBYTES 0U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_nsecbytes(void); + +#define crypto_aead_chacha20poly1305_NPUBBYTES 8U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_npubbytes(void); + +#define crypto_aead_chacha20poly1305_ABYTES 16U +SODIUM_EXPORT +size_t crypto_aead_chacha20poly1305_abytes(void); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_encrypt(unsigned char *c, + unsigned long long *clen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_decrypt(unsigned char *m, + unsigned long long *mlen_p, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, + unsigned char *mac, + unsigned long long *maclen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *nsec, + const unsigned char *npub, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, + unsigned char *nsec, + const unsigned char *c, + unsigned long long clen, + const unsigned char *mac, + const unsigned char *ad, + unsigned long long adlen, + const unsigned char *npub, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* Aliases */ + +#define crypto_aead_chacha20poly1305_IETF_KEYBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES +#define crypto_aead_chacha20poly1305_IETF_NSECBYTES crypto_aead_chacha20poly1305_ietf_NSECBYTES +#define crypto_aead_chacha20poly1305_IETF_NPUBBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES +#define crypto_aead_chacha20poly1305_IETF_ABYTES crypto_aead_chacha20poly1305_ietf_ABYTES + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth.h new file mode 100644 index 0000000..ddb73b0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth.h @@ -0,0 +1,41 @@ +#ifndef crypto_auth_H +#define crypto_auth_H + +#include + +#include "crypto_auth_hmacsha512256.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_auth_BYTES crypto_auth_hmacsha512256_BYTES +SODIUM_EXPORT +size_t crypto_auth_bytes(void); + +#define crypto_auth_KEYBYTES crypto_auth_hmacsha512256_KEYBYTES +SODIUM_EXPORT +size_t crypto_auth_keybytes(void); + +#define crypto_auth_PRIMITIVE "hmacsha512256" +SODIUM_EXPORT +const char *crypto_auth_primitive(void); + +SODIUM_EXPORT +int crypto_auth(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k); + +SODIUM_EXPORT +int crypto_auth_verify(const unsigned char *h, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h new file mode 100644 index 0000000..c3fbf3c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h @@ -0,0 +1,63 @@ +#ifndef crypto_auth_hmacsha256_H +#define crypto_auth_hmacsha256_H + +#include +#include "crypto_hash_sha256.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_auth_hmacsha256_BYTES 32U +SODIUM_EXPORT +size_t crypto_auth_hmacsha256_bytes(void); + +#define crypto_auth_hmacsha256_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_auth_hmacsha256_keybytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha256(unsigned char *out, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_auth_hmacsha256_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* ------------------------------------------------------------------------- */ + +typedef struct crypto_auth_hmacsha256_state { + crypto_hash_sha256_state ictx; + crypto_hash_sha256_state octx; +} crypto_auth_hmacsha256_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha256_statebytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha256_init(crypto_auth_hmacsha256_state *state, + const unsigned char *key, + size_t keylen); + +SODIUM_EXPORT +int crypto_auth_hmacsha256_update(crypto_auth_hmacsha256_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_auth_hmacsha256_final(crypto_auth_hmacsha256_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h new file mode 100644 index 0000000..7386c15 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h @@ -0,0 +1,63 @@ +#ifndef crypto_auth_hmacsha512_H +#define crypto_auth_hmacsha512_H + +#include +#include "crypto_hash_sha512.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_auth_hmacsha512_BYTES 64U +SODIUM_EXPORT +size_t crypto_auth_hmacsha512_bytes(void); + +#define crypto_auth_hmacsha512_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_auth_hmacsha512_keybytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha512(unsigned char *out, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_auth_hmacsha512_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* ------------------------------------------------------------------------- */ + +typedef struct crypto_auth_hmacsha512_state { + crypto_hash_sha512_state ictx; + crypto_hash_sha512_state octx; +} crypto_auth_hmacsha512_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha512_statebytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha512_init(crypto_auth_hmacsha512_state *state, + const unsigned char *key, + size_t keylen); + +SODIUM_EXPORT +int crypto_auth_hmacsha512_update(crypto_auth_hmacsha512_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_auth_hmacsha512_final(crypto_auth_hmacsha512_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h new file mode 100644 index 0000000..c205b7d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h @@ -0,0 +1,58 @@ +#ifndef crypto_auth_hmacsha512256_H +#define crypto_auth_hmacsha512256_H + +#include +#include "crypto_auth_hmacsha512.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_auth_hmacsha512256_BYTES 32U +SODIUM_EXPORT +size_t crypto_auth_hmacsha512256_bytes(void); + +#define crypto_auth_hmacsha512256_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_auth_hmacsha512256_keybytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha512256(unsigned char *out, const unsigned char *in, + unsigned long long inlen,const unsigned char *k); + +SODIUM_EXPORT +int crypto_auth_hmacsha512256_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* ------------------------------------------------------------------------- */ + +typedef crypto_auth_hmacsha512_state crypto_auth_hmacsha512256_state; +SODIUM_EXPORT +size_t crypto_auth_hmacsha512256_statebytes(void); + +SODIUM_EXPORT +int crypto_auth_hmacsha512256_init(crypto_auth_hmacsha512256_state *state, + const unsigned char *key, + size_t keylen); + +SODIUM_EXPORT +int crypto_auth_hmacsha512256_update(crypto_auth_hmacsha512256_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_auth_hmacsha512256_final(crypto_auth_hmacsha512256_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box.h new file mode 100644 index 0000000..614cd1e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box.h @@ -0,0 +1,169 @@ +#ifndef crypto_box_H +#define crypto_box_H + +/* + * THREAD SAFETY: crypto_box_keypair() is thread-safe, + * provided that sodium_init() was called before. + * + * Other functions are always thread-safe. + */ + +#include + +#include "crypto_box_curve25519xsalsa20poly1305.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_box_SEEDBYTES crypto_box_curve25519xsalsa20poly1305_SEEDBYTES +SODIUM_EXPORT +size_t crypto_box_seedbytes(void); + +#define crypto_box_PUBLICKEYBYTES crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES +SODIUM_EXPORT +size_t crypto_box_publickeybytes(void); + +#define crypto_box_SECRETKEYBYTES crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES +SODIUM_EXPORT +size_t crypto_box_secretkeybytes(void); + +#define crypto_box_NONCEBYTES crypto_box_curve25519xsalsa20poly1305_NONCEBYTES +SODIUM_EXPORT +size_t crypto_box_noncebytes(void); + +#define crypto_box_MACBYTES crypto_box_curve25519xsalsa20poly1305_MACBYTES +SODIUM_EXPORT +size_t crypto_box_macbytes(void); + +#define crypto_box_PRIMITIVE "curve25519xsalsa20poly1305" +SODIUM_EXPORT +const char *crypto_box_primitive(void); + +SODIUM_EXPORT +int crypto_box_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed); + +SODIUM_EXPORT +int crypto_box_keypair(unsigned char *pk, unsigned char *sk); + +SODIUM_EXPORT +int crypto_box_easy(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_open_easy(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_detached(unsigned char *c, unsigned char *mac, + const unsigned char *m, unsigned long long mlen, + const unsigned char *n, const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_open_detached(unsigned char *m, const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, + const unsigned char *n, + const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +/* -- Precomputation interface -- */ + +#define crypto_box_BEFORENMBYTES crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES +SODIUM_EXPORT +size_t crypto_box_beforenmbytes(void); + +SODIUM_EXPORT +int crypto_box_beforenm(unsigned char *k, const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_easy_afternm(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_box_open_easy_afternm(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_detached_afternm(unsigned char *c, unsigned char *mac, + const unsigned char *m, unsigned long long mlen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_box_open_detached_afternm(unsigned char *m, const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* -- Ephemeral SK interface -- */ + +#define crypto_box_SEALBYTES (crypto_box_PUBLICKEYBYTES + crypto_box_MACBYTES) +SODIUM_EXPORT +size_t crypto_box_sealbytes(void); + +SODIUM_EXPORT +int crypto_box_seal(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *pk); + +SODIUM_EXPORT +int crypto_box_seal_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, + const unsigned char *pk, const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +/* -- NaCl compatibility interface ; Requires padding -- */ + +#define crypto_box_ZEROBYTES crypto_box_curve25519xsalsa20poly1305_ZEROBYTES +SODIUM_EXPORT +size_t crypto_box_zerobytes(void); + +#define crypto_box_BOXZEROBYTES crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES +SODIUM_EXPORT +size_t crypto_box_boxzerobytes(void); + +SODIUM_EXPORT +int crypto_box(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *pk, const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_afternm(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_box_open_afternm(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h new file mode 100644 index 0000000..9b5a39c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h @@ -0,0 +1,100 @@ +#ifndef crypto_box_curve25519xsalsa20poly1305_H +#define crypto_box_curve25519xsalsa20poly1305_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_box_curve25519xsalsa20poly1305_SEEDBYTES 32U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_seedbytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES 32U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_publickeybytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES 32U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES 32U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_NONCEBYTES 24U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_noncebytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_MACBYTES 16U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_macbytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES 16U +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes(void); + +#define crypto_box_curve25519xsalsa20poly1305_ZEROBYTES \ + (crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES + \ + crypto_box_curve25519xsalsa20poly1305_MACBYTES) +SODIUM_EXPORT +size_t crypto_box_curve25519xsalsa20poly1305_zerobytes(void); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305(unsigned char *c, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, + const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_open(unsigned char *m, + const unsigned char *c, + unsigned long long clen, + const unsigned char *n, + const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_seed_keypair(unsigned char *pk, + unsigned char *sk, + const unsigned char *seed); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_keypair(unsigned char *pk, + unsigned char *sk); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_beforenm(unsigned char *k, + const unsigned char *pk, + const unsigned char *sk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_afternm(unsigned char *c, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_box_curve25519xsalsa20poly1305_open_afternm(unsigned char *m, + const unsigned char *c, + unsigned long long clen, + const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h new file mode 100644 index 0000000..05e5670 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hchacha20.h @@ -0,0 +1,35 @@ +#ifndef crypto_core_hchacha20_H +#define crypto_core_hchacha20_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_core_hchacha20_OUTPUTBYTES 32U +SODIUM_EXPORT +size_t crypto_core_hchacha20_outputbytes(void); + +#define crypto_core_hchacha20_INPUTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_hchacha20_inputbytes(void); + +#define crypto_core_hchacha20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_core_hchacha20_keybytes(void); + +#define crypto_core_hchacha20_CONSTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_hchacha20_constbytes(void); + +SODIUM_EXPORT +int crypto_core_hchacha20(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h new file mode 100644 index 0000000..82e475b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h @@ -0,0 +1,35 @@ +#ifndef crypto_core_hsalsa20_H +#define crypto_core_hsalsa20_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_core_hsalsa20_OUTPUTBYTES 32U +SODIUM_EXPORT +size_t crypto_core_hsalsa20_outputbytes(void); + +#define crypto_core_hsalsa20_INPUTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_hsalsa20_inputbytes(void); + +#define crypto_core_hsalsa20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_core_hsalsa20_keybytes(void); + +#define crypto_core_hsalsa20_CONSTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_hsalsa20_constbytes(void); + +SODIUM_EXPORT +int crypto_core_hsalsa20(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h new file mode 100644 index 0000000..160cc56 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h @@ -0,0 +1,35 @@ +#ifndef crypto_core_salsa20_H +#define crypto_core_salsa20_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_core_salsa20_OUTPUTBYTES 64U +SODIUM_EXPORT +size_t crypto_core_salsa20_outputbytes(void); + +#define crypto_core_salsa20_INPUTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa20_inputbytes(void); + +#define crypto_core_salsa20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_core_salsa20_keybytes(void); + +#define crypto_core_salsa20_CONSTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa20_constbytes(void); + +SODIUM_EXPORT +int crypto_core_salsa20(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h new file mode 100644 index 0000000..bdd5f9f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h @@ -0,0 +1,35 @@ +#ifndef crypto_core_salsa2012_H +#define crypto_core_salsa2012_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_core_salsa2012_OUTPUTBYTES 64U +SODIUM_EXPORT +size_t crypto_core_salsa2012_outputbytes(void); + +#define crypto_core_salsa2012_INPUTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa2012_inputbytes(void); + +#define crypto_core_salsa2012_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_core_salsa2012_keybytes(void); + +#define crypto_core_salsa2012_CONSTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa2012_constbytes(void); + +SODIUM_EXPORT +int crypto_core_salsa2012(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h new file mode 100644 index 0000000..3c13efa --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h @@ -0,0 +1,35 @@ +#ifndef crypto_core_salsa208_H +#define crypto_core_salsa208_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_core_salsa208_OUTPUTBYTES 64U +SODIUM_EXPORT +size_t crypto_core_salsa208_outputbytes(void); + +#define crypto_core_salsa208_INPUTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa208_inputbytes(void); + +#define crypto_core_salsa208_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_core_salsa208_keybytes(void); + +#define crypto_core_salsa208_CONSTBYTES 16U +SODIUM_EXPORT +size_t crypto_core_salsa208_constbytes(void); + +SODIUM_EXPORT +int crypto_core_salsa208(unsigned char *out, const unsigned char *in, + const unsigned char *k, const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash.h new file mode 100644 index 0000000..998d860 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash.h @@ -0,0 +1,71 @@ +#ifndef crypto_generichash_H +#define crypto_generichash_H + +#include + +#include "crypto_generichash_blake2b.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_generichash_BYTES_MIN crypto_generichash_blake2b_BYTES_MIN +SODIUM_EXPORT +size_t crypto_generichash_bytes_min(void); + +#define crypto_generichash_BYTES_MAX crypto_generichash_blake2b_BYTES_MAX +SODIUM_EXPORT +size_t crypto_generichash_bytes_max(void); + +#define crypto_generichash_BYTES crypto_generichash_blake2b_BYTES +SODIUM_EXPORT +size_t crypto_generichash_bytes(void); + +#define crypto_generichash_KEYBYTES_MIN crypto_generichash_blake2b_KEYBYTES_MIN +SODIUM_EXPORT +size_t crypto_generichash_keybytes_min(void); + +#define crypto_generichash_KEYBYTES_MAX crypto_generichash_blake2b_KEYBYTES_MAX +SODIUM_EXPORT +size_t crypto_generichash_keybytes_max(void); + +#define crypto_generichash_KEYBYTES crypto_generichash_blake2b_KEYBYTES +SODIUM_EXPORT +size_t crypto_generichash_keybytes(void); + +#define crypto_generichash_PRIMITIVE "blake2b" +SODIUM_EXPORT +const char *crypto_generichash_primitive(void); + +typedef crypto_generichash_blake2b_state crypto_generichash_state; +SODIUM_EXPORT +size_t crypto_generichash_statebytes(void); + +SODIUM_EXPORT +int crypto_generichash(unsigned char *out, size_t outlen, + const unsigned char *in, unsigned long long inlen, + const unsigned char *key, size_t keylen); + +SODIUM_EXPORT +int crypto_generichash_init(crypto_generichash_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen); + +SODIUM_EXPORT +int crypto_generichash_update(crypto_generichash_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_generichash_final(crypto_generichash_state *state, + unsigned char *out, const size_t outlen); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h new file mode 100644 index 0000000..d86c442 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h @@ -0,0 +1,118 @@ +#ifndef crypto_generichash_blake2b_H +#define crypto_generichash_blake2b_H + +#include +#include +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# pragma pack(1) +#else +# pragma pack(push, 1) +#endif + +typedef CRYPTO_ALIGN(64) struct crypto_generichash_blake2b_state { + uint64_t h[8]; + uint64_t t[2]; + uint64_t f[2]; + uint8_t buf[2 * 128]; + size_t buflen; + uint8_t last_node; +} crypto_generichash_blake2b_state; + +#if defined(__IBMC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# pragma pack() +#else +# pragma pack(pop) +#endif + +#define crypto_generichash_blake2b_BYTES_MIN 16U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_bytes_min(void); + +#define crypto_generichash_blake2b_BYTES_MAX 64U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_bytes_max(void); + +#define crypto_generichash_blake2b_BYTES 32U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_bytes(void); + +#define crypto_generichash_blake2b_KEYBYTES_MIN 16U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_keybytes_min(void); + +#define crypto_generichash_blake2b_KEYBYTES_MAX 64U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_keybytes_max(void); + +#define crypto_generichash_blake2b_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_keybytes(void); + +#define crypto_generichash_blake2b_SALTBYTES 16U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_saltbytes(void); + +#define crypto_generichash_blake2b_PERSONALBYTES 16U +SODIUM_EXPORT +size_t crypto_generichash_blake2b_personalbytes(void); + +SODIUM_EXPORT +size_t crypto_generichash_blake2b_statebytes(void); + +SODIUM_EXPORT +int crypto_generichash_blake2b(unsigned char *out, size_t outlen, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *key, size_t keylen); + +SODIUM_EXPORT +int crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *key, + size_t keylen, + const unsigned char *salt, + const unsigned char *personal); + +SODIUM_EXPORT +int crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen); + +SODIUM_EXPORT +int crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state, + const unsigned char *key, + const size_t keylen, const size_t outlen, + const unsigned char *salt, + const unsigned char *personal); + +SODIUM_EXPORT +int crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state, + unsigned char *out, + const size_t outlen); + +/* ------------------------------------------------------------------------- */ + +int _crypto_generichash_blake2b_pick_best_implementation(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash.h new file mode 100644 index 0000000..302ed5c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash.h @@ -0,0 +1,40 @@ +#ifndef crypto_hash_H +#define crypto_hash_H + +/* + * WARNING: Unless you absolutely need to use SHA512 for interoperatibility, + * purposes, you might want to consider crypto_generichash() instead. + * Unlike SHA512, crypto_generichash() is not vulnerable to length + * extension attacks. + */ + +#include + +#include "crypto_hash_sha512.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_hash_BYTES crypto_hash_sha512_BYTES +SODIUM_EXPORT +size_t crypto_hash_bytes(void); + +SODIUM_EXPORT +int crypto_hash(unsigned char *out, const unsigned char *in, + unsigned long long inlen); + +#define crypto_hash_PRIMITIVE "sha512" +SODIUM_EXPORT +const char *crypto_hash_primitive(void) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h new file mode 100644 index 0000000..14115c0 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h @@ -0,0 +1,56 @@ +#ifndef crypto_hash_sha256_H +#define crypto_hash_sha256_H + +/* + * WARNING: Unless you absolutely need to use SHA256 for interoperatibility, + * purposes, you might want to consider crypto_generichash() instead. + * Unlike SHA256, crypto_generichash() is not vulnerable to length + * extension attacks. + */ + +#include +#include +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +typedef struct crypto_hash_sha256_state { + uint32_t state[8]; + uint64_t count; + unsigned char buf[64]; +} crypto_hash_sha256_state; +SODIUM_EXPORT +size_t crypto_hash_sha256_statebytes(void); + +#define crypto_hash_sha256_BYTES 32U +SODIUM_EXPORT +size_t crypto_hash_sha256_bytes(void); + +SODIUM_EXPORT +int crypto_hash_sha256(unsigned char *out, const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_hash_sha256_init(crypto_hash_sha256_state *state); + +SODIUM_EXPORT +int crypto_hash_sha256_update(crypto_hash_sha256_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_hash_sha256_final(crypto_hash_sha256_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h new file mode 100644 index 0000000..ba8864b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h @@ -0,0 +1,56 @@ +#ifndef crypto_hash_sha512_H +#define crypto_hash_sha512_H + +/* + * WARNING: Unless you absolutely need to use SHA512 for interoperatibility, + * purposes, you might want to consider crypto_generichash() instead. + * Unlike SHA512, crypto_generichash() is not vulnerable to length + * extension attacks. + */ + +#include +#include +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +typedef struct crypto_hash_sha512_state { + uint64_t state[8]; + uint64_t count[2]; + unsigned char buf[128]; +} crypto_hash_sha512_state; +SODIUM_EXPORT +size_t crypto_hash_sha512_statebytes(void); + +#define crypto_hash_sha512_BYTES 64U +SODIUM_EXPORT +size_t crypto_hash_sha512_bytes(void); + +SODIUM_EXPORT +int crypto_hash_sha512(unsigned char *out, const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_hash_sha512_init(crypto_hash_sha512_state *state); + +SODIUM_EXPORT +int crypto_hash_sha512_update(crypto_hash_sha512_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_hash_sha512_final(crypto_hash_sha512_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int32.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int32.h new file mode 100644 index 0000000..a22019d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int32.h @@ -0,0 +1,8 @@ +#ifndef crypto_int32_H +#define crypto_int32_H + +#include + +typedef int32_t crypto_int32; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int64.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int64.h new file mode 100644 index 0000000..f68a283 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_int64.h @@ -0,0 +1,8 @@ +#ifndef crypto_int64_H +#define crypto_int64_H + +#include + +typedef int64_t crypto_int64; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h new file mode 100644 index 0000000..bc2dd86 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h @@ -0,0 +1,58 @@ +#ifndef crypto_onetimeauth_H +#define crypto_onetimeauth_H + +#include + +#include "crypto_onetimeauth_poly1305.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +typedef crypto_onetimeauth_poly1305_state crypto_onetimeauth_state; +SODIUM_EXPORT +size_t crypto_onetimeauth_statebytes(void); + +#define crypto_onetimeauth_BYTES crypto_onetimeauth_poly1305_BYTES +SODIUM_EXPORT +size_t crypto_onetimeauth_bytes(void); + +#define crypto_onetimeauth_KEYBYTES crypto_onetimeauth_poly1305_KEYBYTES +SODIUM_EXPORT +size_t crypto_onetimeauth_keybytes(void); + +#define crypto_onetimeauth_PRIMITIVE "poly1305" +SODIUM_EXPORT +const char *crypto_onetimeauth_primitive(void); + +SODIUM_EXPORT +int crypto_onetimeauth(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k); + +SODIUM_EXPORT +int crypto_onetimeauth_verify(const unsigned char *h, const unsigned char *in, + unsigned long long inlen, const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_onetimeauth_init(crypto_onetimeauth_state *state, + const unsigned char *key); + +SODIUM_EXPORT +int crypto_onetimeauth_update(crypto_onetimeauth_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_onetimeauth_final(crypto_onetimeauth_state *state, + unsigned char *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h new file mode 100644 index 0000000..6bf9221 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h @@ -0,0 +1,65 @@ +#ifndef crypto_onetimeauth_poly1305_H +#define crypto_onetimeauth_poly1305_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#include + +#include +#include + +typedef CRYPTO_ALIGN(16) struct crypto_onetimeauth_poly1305_state { + unsigned char opaque[256]; +} crypto_onetimeauth_poly1305_state; + +#define crypto_onetimeauth_poly1305_BYTES 16U +SODIUM_EXPORT +size_t crypto_onetimeauth_poly1305_bytes(void); + +#define crypto_onetimeauth_poly1305_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_onetimeauth_poly1305_keybytes(void); + +SODIUM_EXPORT +int crypto_onetimeauth_poly1305(unsigned char *out, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_onetimeauth_poly1305_verify(const unsigned char *h, + const unsigned char *in, + unsigned long long inlen, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_onetimeauth_poly1305_init(crypto_onetimeauth_poly1305_state *state, + const unsigned char *key); + +SODIUM_EXPORT +int crypto_onetimeauth_poly1305_update(crypto_onetimeauth_poly1305_state *state, + const unsigned char *in, + unsigned long long inlen); + +SODIUM_EXPORT +int crypto_onetimeauth_poly1305_final(crypto_onetimeauth_poly1305_state *state, + unsigned char *out); + +/* ------------------------------------------------------------------------- */ + +int _crypto_onetimeauth_poly1305_pick_best_implementation(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash.h new file mode 100644 index 0000000..c947090 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash.h @@ -0,0 +1,89 @@ +#ifndef crypto_pwhash_H +#define crypto_pwhash_H + +#include + +#include "crypto_pwhash_argon2i.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_pwhash_ALG_ARGON2I13 crypto_pwhash_argon2i_ALG_ARGON2I13 +SODIUM_EXPORT +int crypto_pwhash_alg_argon2i13(void); + +#define crypto_pwhash_ALG_DEFAULT crypto_pwhash_ALG_ARGON2I13 +SODIUM_EXPORT +int crypto_pwhash_alg_default(void); + +#define crypto_pwhash_SALTBYTES crypto_pwhash_argon2i_SALTBYTES +SODIUM_EXPORT +size_t crypto_pwhash_saltbytes(void); + +#define crypto_pwhash_STRBYTES crypto_pwhash_argon2i_STRBYTES +SODIUM_EXPORT +size_t crypto_pwhash_strbytes(void); + +#define crypto_pwhash_STRPREFIX crypto_pwhash_argon2i_STRPREFIX +SODIUM_EXPORT +const char *crypto_pwhash_strprefix(void); + +#define crypto_pwhash_OPSLIMIT_INTERACTIVE crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE +SODIUM_EXPORT +size_t crypto_pwhash_opslimit_interactive(void); + +#define crypto_pwhash_MEMLIMIT_INTERACTIVE crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE +SODIUM_EXPORT +size_t crypto_pwhash_memlimit_interactive(void); + +#define crypto_pwhash_OPSLIMIT_MODERATE crypto_pwhash_argon2i_OPSLIMIT_MODERATE +SODIUM_EXPORT +size_t crypto_pwhash_opslimit_moderate(void); + +#define crypto_pwhash_MEMLIMIT_MODERATE crypto_pwhash_argon2i_MEMLIMIT_MODERATE +SODIUM_EXPORT +size_t crypto_pwhash_memlimit_moderate(void); + +#define crypto_pwhash_OPSLIMIT_SENSITIVE crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE +SODIUM_EXPORT +size_t crypto_pwhash_opslimit_sensitive(void); + +#define crypto_pwhash_MEMLIMIT_SENSITIVE crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE +SODIUM_EXPORT +size_t crypto_pwhash_memlimit_sensitive(void); + +SODIUM_EXPORT +int crypto_pwhash(unsigned char * const out, unsigned long long outlen, + const char * const passwd, unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, size_t memlimit, int alg) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_str(char out[crypto_pwhash_STRBYTES], + const char * const passwd, unsigned long long passwdlen, + unsigned long long opslimit, size_t memlimit) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_str_verify(const char str[crypto_pwhash_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) + __attribute__ ((warn_unused_result)); + +#define crypto_pwhash_PRIMITIVE "argon2i" +SODIUM_EXPORT +const char *crypto_pwhash_primitive(void) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h new file mode 100644 index 0000000..8c7860e --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_argon2i.h @@ -0,0 +1,86 @@ +#ifndef crypto_pwhash_argon2i_H +#define crypto_pwhash_argon2i_H + +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_pwhash_argon2i_ALG_ARGON2I13 1 +SODIUM_EXPORT +int crypto_pwhash_argon2i_alg_argon2i13(void); + +#define crypto_pwhash_argon2i_SALTBYTES 16U +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_saltbytes(void); + +#define crypto_pwhash_argon2i_STRBYTES 128U +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_strbytes(void); + +#define crypto_pwhash_argon2i_STRPREFIX "$argon2i$" +SODIUM_EXPORT +const char *crypto_pwhash_argon2i_strprefix(void); + +#define crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE 4ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_opslimit_interactive(void); + +#define crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE 33554432ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_memlimit_interactive(void); + +#define crypto_pwhash_argon2i_OPSLIMIT_MODERATE 6ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_opslimit_moderate(void); + +#define crypto_pwhash_argon2i_MEMLIMIT_MODERATE 134217728ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_memlimit_moderate(void); + +#define crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE 8ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_opslimit_sensitive(void); + +#define crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE 536870912ULL +SODIUM_EXPORT +size_t crypto_pwhash_argon2i_memlimit_sensitive(void); + +SODIUM_EXPORT +int crypto_pwhash_argon2i(unsigned char * const out, + unsigned long long outlen, + const char * const passwd, + unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, size_t memlimit, + int alg) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_argon2i_str(char out[crypto_pwhash_argon2i_STRBYTES], + const char * const passwd, + unsigned long long passwdlen, + unsigned long long opslimit, size_t memlimit) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_argon2i_str_verify(const char str[crypto_pwhash_argon2i_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) + __attribute__ ((warn_unused_result)); + +/* ------------------------------------------------------------------------- */ + +int _crypto_pwhash_argon2i_pick_best_implementation(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h new file mode 100644 index 0000000..cfa95d7 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h @@ -0,0 +1,79 @@ +#ifndef crypto_pwhash_scryptsalsa208sha256_H +#define crypto_pwhash_scryptsalsa208sha256_H + +#include +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_pwhash_scryptsalsa208sha256_SALTBYTES 32U +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_saltbytes(void); + +#define crypto_pwhash_scryptsalsa208sha256_STRBYTES 102U +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_strbytes(void); + +#define crypto_pwhash_scryptsalsa208sha256_STRPREFIX "$7$" +SODIUM_EXPORT +const char *crypto_pwhash_scryptsalsa208sha256_strprefix(void); + +#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE 524288ULL +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_opslimit_interactive(void); + +#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE 16777216ULL +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_memlimit_interactive(void); + +#define crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE 33554432ULL +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(void); + +#define crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE 1073741824ULL +SODIUM_EXPORT +size_t crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(void); + +SODIUM_EXPORT +int crypto_pwhash_scryptsalsa208sha256(unsigned char * const out, + unsigned long long outlen, + const char * const passwd, + unsigned long long passwdlen, + const unsigned char * const salt, + unsigned long long opslimit, + size_t memlimit) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_scryptsalsa208sha256_str(char out[crypto_pwhash_scryptsalsa208sha256_STRBYTES], + const char * const passwd, + unsigned long long passwdlen, + unsigned long long opslimit, + size_t memlimit) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_scryptsalsa208sha256_str_verify(const char str[crypto_pwhash_scryptsalsa208sha256_STRBYTES], + const char * const passwd, + unsigned long long passwdlen) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_pwhash_scryptsalsa208sha256_ll(const uint8_t * passwd, size_t passwdlen, + const uint8_t * salt, size_t saltlen, + uint64_t N, uint32_t r, uint32_t p, + uint8_t * buf, size_t buflen) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h new file mode 100644 index 0000000..830c10f --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h @@ -0,0 +1,37 @@ +#ifndef crypto_scalarmult_H +#define crypto_scalarmult_H + +#include + +#include "crypto_scalarmult_curve25519.h" +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_scalarmult_BYTES crypto_scalarmult_curve25519_BYTES +SODIUM_EXPORT +size_t crypto_scalarmult_bytes(void); + +#define crypto_scalarmult_SCALARBYTES crypto_scalarmult_curve25519_SCALARBYTES +SODIUM_EXPORT +size_t crypto_scalarmult_scalarbytes(void); + +#define crypto_scalarmult_PRIMITIVE "curve25519" +SODIUM_EXPORT +const char *crypto_scalarmult_primitive(void); + +SODIUM_EXPORT +int crypto_scalarmult_base(unsigned char *q, const unsigned char *n); + +SODIUM_EXPORT +int crypto_scalarmult(unsigned char *q, const unsigned char *n, + const unsigned char *p) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h new file mode 100644 index 0000000..953f892 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h @@ -0,0 +1,36 @@ +#ifndef crypto_scalarmult_curve25519_H +#define crypto_scalarmult_curve25519_H + +#include + +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_scalarmult_curve25519_BYTES 32U +SODIUM_EXPORT +size_t crypto_scalarmult_curve25519_bytes(void); + +#define crypto_scalarmult_curve25519_SCALARBYTES 32U +SODIUM_EXPORT +size_t crypto_scalarmult_curve25519_scalarbytes(void); + +SODIUM_EXPORT +int crypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n, + const unsigned char *p) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_scalarmult_curve25519_base(unsigned char *q, const unsigned char *n); + +/* ------------------------------------------------------------------------- */ + +int _crypto_scalarmult_curve25519_pick_best_implementation(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox.h new file mode 100644 index 0000000..b535d9c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox.h @@ -0,0 +1,84 @@ +#ifndef crypto_secretbox_H +#define crypto_secretbox_H + +#include + +#include "crypto_secretbox_xsalsa20poly1305.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_secretbox_KEYBYTES crypto_secretbox_xsalsa20poly1305_KEYBYTES +SODIUM_EXPORT +size_t crypto_secretbox_keybytes(void); + +#define crypto_secretbox_NONCEBYTES crypto_secretbox_xsalsa20poly1305_NONCEBYTES +SODIUM_EXPORT +size_t crypto_secretbox_noncebytes(void); + +#define crypto_secretbox_MACBYTES crypto_secretbox_xsalsa20poly1305_MACBYTES +SODIUM_EXPORT +size_t crypto_secretbox_macbytes(void); + +#define crypto_secretbox_PRIMITIVE "xsalsa20poly1305" +SODIUM_EXPORT +const char *crypto_secretbox_primitive(void); + +SODIUM_EXPORT +int crypto_secretbox_easy(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_secretbox_open_easy(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_secretbox_detached(unsigned char *c, unsigned char *mac, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_secretbox_open_detached(unsigned char *m, + const unsigned char *c, + const unsigned char *mac, + unsigned long long clen, + const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +/* -- NaCl compatibility interface ; Requires padding -- */ + +#define crypto_secretbox_ZEROBYTES crypto_secretbox_xsalsa20poly1305_ZEROBYTES +SODIUM_EXPORT +size_t crypto_secretbox_zerobytes(void); + +#define crypto_secretbox_BOXZEROBYTES crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES +SODIUM_EXPORT +size_t crypto_secretbox_boxzerobytes(void); + +SODIUM_EXPORT +int crypto_secretbox(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_secretbox_open(unsigned char *m, const unsigned char *c, + unsigned long long clen, const unsigned char *n, + const unsigned char *k) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h new file mode 100644 index 0000000..338347c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h @@ -0,0 +1,54 @@ +#ifndef crypto_secretbox_xsalsa20poly1305_H +#define crypto_secretbox_xsalsa20poly1305_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_secretbox_xsalsa20poly1305_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_secretbox_xsalsa20poly1305_keybytes(void); + +#define crypto_secretbox_xsalsa20poly1305_NONCEBYTES 24U +SODIUM_EXPORT +size_t crypto_secretbox_xsalsa20poly1305_noncebytes(void); + +#define crypto_secretbox_xsalsa20poly1305_MACBYTES 16U +SODIUM_EXPORT +size_t crypto_secretbox_xsalsa20poly1305_macbytes(void); + +#define crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES 16U +SODIUM_EXPORT +size_t crypto_secretbox_xsalsa20poly1305_boxzerobytes(void); + +#define crypto_secretbox_xsalsa20poly1305_ZEROBYTES \ + (crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES + \ + crypto_secretbox_xsalsa20poly1305_MACBYTES) +SODIUM_EXPORT +size_t crypto_secretbox_xsalsa20poly1305_zerobytes(void); + +SODIUM_EXPORT +int crypto_secretbox_xsalsa20poly1305(unsigned char *c, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_secretbox_xsalsa20poly1305_open(unsigned char *m, + const unsigned char *c, + unsigned long long clen, + const unsigned char *n, + const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash.h new file mode 100644 index 0000000..7873280 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash.h @@ -0,0 +1,36 @@ +#ifndef crypto_shorthash_H +#define crypto_shorthash_H + +#include + +#include "crypto_shorthash_siphash24.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_shorthash_BYTES crypto_shorthash_siphash24_BYTES +SODIUM_EXPORT +size_t crypto_shorthash_bytes(void); + +#define crypto_shorthash_KEYBYTES crypto_shorthash_siphash24_KEYBYTES +SODIUM_EXPORT +size_t crypto_shorthash_keybytes(void); + +#define crypto_shorthash_PRIMITIVE "siphash24" +SODIUM_EXPORT +const char *crypto_shorthash_primitive(void); + +SODIUM_EXPORT +int crypto_shorthash(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h new file mode 100644 index 0000000..181b5ee --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h @@ -0,0 +1,30 @@ +#ifndef crypto_shorthash_siphash24_H +#define crypto_shorthash_siphash24_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_shorthash_siphash24_BYTES 8U +SODIUM_EXPORT +size_t crypto_shorthash_siphash24_bytes(void); + +#define crypto_shorthash_siphash24_KEYBYTES 16U +SODIUM_EXPORT +size_t crypto_shorthash_siphash24_keybytes(void); + +SODIUM_EXPORT +int crypto_shorthash_siphash24(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign.h new file mode 100644 index 0000000..5d7ea3a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign.h @@ -0,0 +1,77 @@ +#ifndef crypto_sign_H +#define crypto_sign_H + +/* + * THREAD SAFETY: crypto_sign_keypair() is thread-safe, + * provided that sodium_init() was called before. + * + * Other functions, including crypto_sign_seed_keypair() are always thread-safe. + */ + +#include + +#include "crypto_sign_ed25519.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_sign_BYTES crypto_sign_ed25519_BYTES +SODIUM_EXPORT +size_t crypto_sign_bytes(void); + +#define crypto_sign_SEEDBYTES crypto_sign_ed25519_SEEDBYTES +SODIUM_EXPORT +size_t crypto_sign_seedbytes(void); + +#define crypto_sign_PUBLICKEYBYTES crypto_sign_ed25519_PUBLICKEYBYTES +SODIUM_EXPORT +size_t crypto_sign_publickeybytes(void); + +#define crypto_sign_SECRETKEYBYTES crypto_sign_ed25519_SECRETKEYBYTES +SODIUM_EXPORT +size_t crypto_sign_secretkeybytes(void); + +#define crypto_sign_PRIMITIVE "ed25519" +SODIUM_EXPORT +const char *crypto_sign_primitive(void); + +SODIUM_EXPORT +int crypto_sign_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed); + +SODIUM_EXPORT +int crypto_sign_keypair(unsigned char *pk, unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign(unsigned char *sm, unsigned long long *smlen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_open(unsigned char *m, unsigned long long *mlen_p, + const unsigned char *sm, unsigned long long smlen, + const unsigned char *pk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_sign_detached(unsigned char *sig, unsigned long long *siglen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_verify_detached(const unsigned char *sig, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *pk) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h new file mode 100644 index 0000000..ee89db8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h @@ -0,0 +1,82 @@ +#ifndef crypto_sign_ed25519_H +#define crypto_sign_ed25519_H + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_sign_ed25519_BYTES 64U +SODIUM_EXPORT +size_t crypto_sign_ed25519_bytes(void); + +#define crypto_sign_ed25519_SEEDBYTES 32U +SODIUM_EXPORT +size_t crypto_sign_ed25519_seedbytes(void); + +#define crypto_sign_ed25519_PUBLICKEYBYTES 32U +SODIUM_EXPORT +size_t crypto_sign_ed25519_publickeybytes(void); + +#define crypto_sign_ed25519_SECRETKEYBYTES (32U + 32U) +SODIUM_EXPORT +size_t crypto_sign_ed25519_secretkeybytes(void); + +SODIUM_EXPORT +int crypto_sign_ed25519(unsigned char *sm, unsigned long long *smlen_p, + const unsigned char *m, unsigned long long mlen, + const unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_ed25519_open(unsigned char *m, unsigned long long *mlen_p, + const unsigned char *sm, unsigned long long smlen, + const unsigned char *pk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_sign_ed25519_detached(unsigned char *sig, + unsigned long long *siglen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_ed25519_verify_detached(const unsigned char *sig, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *pk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_sign_ed25519_keypair(unsigned char *pk, unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_ed25519_seed_keypair(unsigned char *pk, unsigned char *sk, + const unsigned char *seed); + +SODIUM_EXPORT +int crypto_sign_ed25519_pk_to_curve25519(unsigned char *curve25519_pk, + const unsigned char *ed25519_pk) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int crypto_sign_ed25519_sk_to_curve25519(unsigned char *curve25519_sk, + const unsigned char *ed25519_sk); + +SODIUM_EXPORT +int crypto_sign_ed25519_sk_to_seed(unsigned char *seed, + const unsigned char *sk); + +SODIUM_EXPORT +int crypto_sign_ed25519_sk_to_pk(unsigned char *pk, const unsigned char *sk); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h new file mode 100644 index 0000000..2224a94 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h @@ -0,0 +1,54 @@ +#ifndef crypto_sign_edwards25519sha512batch_H +#define crypto_sign_edwards25519sha512batch_H + +/* + * WARNING: This construction was a prototype, which should not be used + * any more in new projects. + * + * crypto_sign_edwards25519sha512batch is provided for applications + * initially built with NaCl, but as recommended by the author of this + * construction, new applications should use ed25519 instead. + * + * In Sodium, you should use the high-level crypto_sign_*() functions instead. + */ + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_sign_edwards25519sha512batch_BYTES 64U +#define crypto_sign_edwards25519sha512batch_PUBLICKEYBYTES 32U +#define crypto_sign_edwards25519sha512batch_SECRETKEYBYTES (32U + 32U) + +SODIUM_EXPORT +int crypto_sign_edwards25519sha512batch(unsigned char *sm, + unsigned long long *smlen_p, + const unsigned char *m, + unsigned long long mlen, + const unsigned char *sk) + __attribute__ ((deprecated)); + +SODIUM_EXPORT +int crypto_sign_edwards25519sha512batch_open(unsigned char *m, + unsigned long long *mlen_p, + const unsigned char *sm, + unsigned long long smlen, + const unsigned char *pk) + __attribute__ ((deprecated)); + +SODIUM_EXPORT +int crypto_sign_edwards25519sha512batch_keypair(unsigned char *pk, + unsigned char *sk) + __attribute__ ((deprecated)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream.h new file mode 100644 index 0000000..734dd57 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream.h @@ -0,0 +1,49 @@ +#ifndef crypto_stream_H +#define crypto_stream_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include + +#include "crypto_stream_xsalsa20.h" +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_KEYBYTES crypto_stream_xsalsa20_KEYBYTES +SODIUM_EXPORT +size_t crypto_stream_keybytes(void); + +#define crypto_stream_NONCEBYTES crypto_stream_xsalsa20_NONCEBYTES +SODIUM_EXPORT +size_t crypto_stream_noncebytes(void); + +#define crypto_stream_PRIMITIVE "xsalsa20" +SODIUM_EXPORT +const char *crypto_stream_primitive(void); + +SODIUM_EXPORT +int crypto_stream(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h new file mode 100644 index 0000000..71b0fa4 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h @@ -0,0 +1,60 @@ +#ifndef crypto_stream_aes128ctr_H +#define crypto_stream_aes128ctr_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_aes128ctr_KEYBYTES 16U +SODIUM_EXPORT +size_t crypto_stream_aes128ctr_keybytes(void); + +#define crypto_stream_aes128ctr_NONCEBYTES 16U +SODIUM_EXPORT +size_t crypto_stream_aes128ctr_noncebytes(void); + +#define crypto_stream_aes128ctr_BEFORENMBYTES 1408U +SODIUM_EXPORT +size_t crypto_stream_aes128ctr_beforenmbytes(void); + +SODIUM_EXPORT +int crypto_stream_aes128ctr(unsigned char *out, unsigned long long outlen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_aes128ctr_xor(unsigned char *out, const unsigned char *in, + unsigned long long inlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_aes128ctr_beforenm(unsigned char *c, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_aes128ctr_afternm(unsigned char *out, unsigned long long len, + const unsigned char *nonce, const unsigned char *c); + +SODIUM_EXPORT +int crypto_stream_aes128ctr_xor_afternm(unsigned char *out, const unsigned char *in, + unsigned long long len, + const unsigned char *nonce, + const unsigned char *c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h new file mode 100644 index 0000000..73f3254 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h @@ -0,0 +1,77 @@ +#ifndef crypto_stream_chacha20_H +#define crypto_stream_chacha20_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_chacha20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_stream_chacha20_keybytes(void); + +#define crypto_stream_chacha20_NONCEBYTES 8U +SODIUM_EXPORT +size_t crypto_stream_chacha20_noncebytes(void); + +/* ChaCha20 with a 64-bit nonce and a 64-bit counter, as originally designed */ + +SODIUM_EXPORT +int crypto_stream_chacha20(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_chacha20_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_chacha20_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); + +/* ChaCha20 with a 96-bit nonce and a 32-bit counter (IETF) */ + +#define crypto_stream_chacha20_IETF_NONCEBYTES 12U +SODIUM_EXPORT +size_t crypto_stream_chacha20_ietf_noncebytes(void); + +SODIUM_EXPORT +int crypto_stream_chacha20_ietf(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_chacha20_ietf_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_chacha20_ietf_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint32_t ic, + const unsigned char *k); + +/* ------------------------------------------------------------------------- */ + +int _crypto_stream_chacha20_pick_best_implementation(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h new file mode 100644 index 0000000..a2593d5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h @@ -0,0 +1,49 @@ +#ifndef crypto_stream_salsa20_H +#define crypto_stream_salsa20_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_salsa20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_stream_salsa20_keybytes(void); + +#define crypto_stream_salsa20_NONCEBYTES 8U +SODIUM_EXPORT +size_t crypto_stream_salsa20_noncebytes(void); + +SODIUM_EXPORT +int crypto_stream_salsa20(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_salsa20_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_salsa20_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h new file mode 100644 index 0000000..a90f0da --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h @@ -0,0 +1,43 @@ +#ifndef crypto_stream_salsa2012_H +#define crypto_stream_salsa2012_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_salsa2012_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_stream_salsa2012_keybytes(void); + +#define crypto_stream_salsa2012_NONCEBYTES 8U +SODIUM_EXPORT +size_t crypto_stream_salsa2012_noncebytes(void); + +SODIUM_EXPORT +int crypto_stream_salsa2012(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_salsa2012_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h new file mode 100644 index 0000000..00ae7e2 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h @@ -0,0 +1,43 @@ +#ifndef crypto_stream_salsa208_H +#define crypto_stream_salsa208_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_salsa208_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_stream_salsa208_keybytes(void); + +#define crypto_stream_salsa208_NONCEBYTES 8U +SODIUM_EXPORT +size_t crypto_stream_salsa208_noncebytes(void); + +SODIUM_EXPORT +int crypto_stream_salsa208(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_salsa208_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h new file mode 100644 index 0000000..f142005 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h @@ -0,0 +1,49 @@ +#ifndef crypto_stream_xsalsa20_H +#define crypto_stream_xsalsa20_H + +/* + * WARNING: This is just a stream cipher. It is NOT authenticated encryption. + * While it provides some protection against eavesdropping, it does NOT + * provide any security against active attacks. + * Unless you know what you're doing, what you are looking for is probably + * the crypto_box functions. + */ + +#include +#include +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +#define crypto_stream_xsalsa20_KEYBYTES 32U +SODIUM_EXPORT +size_t crypto_stream_xsalsa20_keybytes(void); + +#define crypto_stream_xsalsa20_NONCEBYTES 24U +SODIUM_EXPORT +size_t crypto_stream_xsalsa20_noncebytes(void); + +SODIUM_EXPORT +int crypto_stream_xsalsa20(unsigned char *c, unsigned long long clen, + const unsigned char *n, const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_xsalsa20_xor(unsigned char *c, const unsigned char *m, + unsigned long long mlen, const unsigned char *n, + const unsigned char *k); + +SODIUM_EXPORT +int crypto_stream_xsalsa20_xor_ic(unsigned char *c, const unsigned char *m, + unsigned long long mlen, + const unsigned char *n, uint64_t ic, + const unsigned char *k); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint16.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint16.h new file mode 100644 index 0000000..6be4e34 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint16.h @@ -0,0 +1,8 @@ +#ifndef crypto_uint16_H +#define crypto_uint16_H + +#include + +typedef uint16_t crypto_uint16; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint32.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint32.h new file mode 100644 index 0000000..ba66cec --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint32.h @@ -0,0 +1,8 @@ +#ifndef crypto_uint32_H +#define crypto_uint32_H + +#include + +typedef uint32_t crypto_uint32; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint64.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint64.h new file mode 100644 index 0000000..98b3f6d --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint64.h @@ -0,0 +1,8 @@ +#ifndef crypto_uint64_H +#define crypto_uint64_H + +#include + +typedef uint64_t crypto_uint64; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint8.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint8.h new file mode 100644 index 0000000..789613b --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_uint8.h @@ -0,0 +1,8 @@ +#ifndef crypto_uint8_H +#define crypto_uint8_H + +#include + +typedef uint8_t crypto_uint8; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_16.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_16.h new file mode 100644 index 0000000..5e9eeab --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_16.h @@ -0,0 +1,23 @@ +#ifndef crypto_verify_16_H +#define crypto_verify_16_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_verify_16_BYTES 16U +SODIUM_EXPORT +size_t crypto_verify_16_bytes(void); + +SODIUM_EXPORT +int crypto_verify_16(const unsigned char *x, const unsigned char *y) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_32.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_32.h new file mode 100644 index 0000000..281b5a1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_32.h @@ -0,0 +1,23 @@ +#ifndef crypto_verify_32_H +#define crypto_verify_32_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_verify_32_BYTES 32U +SODIUM_EXPORT +size_t crypto_verify_32_bytes(void); + +SODIUM_EXPORT +int crypto_verify_32(const unsigned char *x, const unsigned char *y) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_64.h b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_64.h new file mode 100644 index 0000000..0dc7c30 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/crypto_verify_64.h @@ -0,0 +1,23 @@ +#ifndef crypto_verify_64_H +#define crypto_verify_64_H + +#include +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define crypto_verify_64_BYTES 64U +SODIUM_EXPORT +size_t crypto_verify_64_bytes(void); + +SODIUM_EXPORT +int crypto_verify_64(const unsigned char *x, const unsigned char *y) + __attribute__ ((warn_unused_result)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/export.h b/Example/Pods/libsodium/src/libsodium/include/sodium/export.h new file mode 100644 index 0000000..c33bced --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/export.h @@ -0,0 +1,44 @@ + +#ifndef sodium_export_H +#define sodium_export_H + +#ifndef __GNUC__ +# ifdef __attribute__ +# undef __attribute__ +# endif +# define __attribute__(a) +#endif + +#ifdef SODIUM_STATIC +# define SODIUM_EXPORT +#else +# if defined(_MSC_VER) +# ifdef SODIUM_DLL_EXPORT +# define SODIUM_EXPORT __declspec(dllexport) +# else +# define SODIUM_EXPORT __declspec(dllimport) +# endif +# else +# if defined(__SUNPRO_C) +# ifndef __GNU_C__ +# define SODIUM_EXPORT __attribute__ (visibility(__global)) +# else +# define SODIUM_EXPORT __attribute__ __global +# endif +# elif defined(_MSG_VER) +# define SODIUM_EXPORT extern __declspec(dllexport) +# else +# define SODIUM_EXPORT __attribute__ ((visibility ("default"))) +# endif +# endif +#endif + +#ifndef CRYPTO_ALIGN +# if defined(__INTEL_COMPILER) || defined(_MSC_VER) +# define CRYPTO_ALIGN(x) __declspec(align(x)) +# else +# define CRYPTO_ALIGN(x) __attribute__ ((aligned(x))) +# endif +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/private/common.h b/Example/Pods/libsodium/src/libsodium/include/sodium/private/common.h new file mode 100644 index 0000000..f289725 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/private/common.h @@ -0,0 +1,150 @@ +#ifndef common_H +#define common_H 1 + +#include +#include +#include + +#define LOAD64_LE(SRC) load64_le(SRC) +static inline uint64_t +load64_le(const uint8_t src[8]) +{ +#ifdef NATIVE_LITTLE_ENDIAN + uint64_t w; + memcpy(&w, src, sizeof w); + return w; +#else + uint64_t w = (uint64_t) src[0]; + w |= (uint64_t) src[1] << 8; + w |= (uint64_t) src[2] << 16; + w |= (uint64_t) src[3] << 24; + w |= (uint64_t) src[4] << 32; + w |= (uint64_t) src[5] << 40; + w |= (uint64_t) src[6] << 48; + w |= (uint64_t) src[7] << 56; + return w; +#endif +} + +#define STORE64_LE(DST, W) store64_le((DST), (W)) +static inline void +store64_le(uint8_t dst[8], uint64_t w) +{ +#ifdef NATIVE_LITTLE_ENDIAN + memcpy(dst, &w, sizeof w); +#else + dst[0] = (uint8_t) w; w >>= 8; + dst[1] = (uint8_t) w; w >>= 8; + dst[2] = (uint8_t) w; w >>= 8; + dst[3] = (uint8_t) w; w >>= 8; + dst[4] = (uint8_t) w; w >>= 8; + dst[5] = (uint8_t) w; w >>= 8; + dst[6] = (uint8_t) w; w >>= 8; + dst[7] = (uint8_t) w; +#endif +} + +#define LOAD32_LE(SRC) load32_le(SRC) +static inline uint32_t +load32_le(const uint8_t src[4]) +{ +#ifdef NATIVE_LITTLE_ENDIAN + uint32_t w; + memcpy(&w, src, sizeof w); + return w; +#else + uint32_t w = (uint32_t) src[0]; + w |= (uint32_t) src[1] << 8; + w |= (uint32_t) src[2] << 16; + w |= (uint32_t) src[3] << 24; + return w; +#endif +} + +#define STORE32_LE(DST, W) store32_le((DST), (W)) +static inline void +store32_le(uint8_t dst[4], uint32_t w) +{ +#ifdef NATIVE_LITTLE_ENDIAN + memcpy(dst, &w, sizeof w); +#else + dst[0] = (uint8_t) w; w >>= 8; + dst[1] = (uint8_t) w; w >>= 8; + dst[2] = (uint8_t) w; w >>= 8; + dst[3] = (uint8_t) w; +#endif +} + +/* ----- */ + +#define LOAD64_BE(SRC) load64_be(SRC) +static inline uint64_t +load64_be(const uint8_t src[8]) +{ +#ifdef NATIVE_BIG_ENDIAN + uint64_t w; + memcpy(&w, src, sizeof w); + return w; +#else + uint64_t w = (uint64_t) src[7]; + w |= (uint64_t) src[6] << 8; + w |= (uint64_t) src[5] << 16; + w |= (uint64_t) src[4] << 24; + w |= (uint64_t) src[3] << 32; + w |= (uint64_t) src[2] << 40; + w |= (uint64_t) src[1] << 48; + w |= (uint64_t) src[0] << 56; + return w; +#endif +} + +#define LOAD32_BE(SRC) load32_be(SRC) +static inline uint32_t +load32_be(const uint8_t src[4]) +{ +#ifdef NATIVE_BIG_ENDIAN + uint32_t w; + memcpy(&w, src, sizeof w); + return w; +#else + uint32_t w = (uint32_t) src[3]; + w |= (uint32_t) src[2] << 8; + w |= (uint32_t) src[1] << 16; + w |= (uint32_t) src[0] << 24; + return w; +#endif +} + +#define STORE64_BE(DST, W) store64_be((DST), (W)) +static inline void +store64_be(uint8_t dst[8], uint64_t w) +{ +#ifdef NATIVE_BIG_ENDIAN + memcpy(dst, &w, sizeof w); +#else + dst[7] = (uint8_t) w; w >>= 8; + dst[6] = (uint8_t) w; w >>= 8; + dst[5] = (uint8_t) w; w >>= 8; + dst[4] = (uint8_t) w; w >>= 8; + dst[3] = (uint8_t) w; w >>= 8; + dst[2] = (uint8_t) w; w >>= 8; + dst[1] = (uint8_t) w; w >>= 8; + dst[0] = (uint8_t) w; +#endif +} + +#define STORE32_BE(DST, W) store32_be((DST), (W)) +static inline void +store32_be(uint8_t dst[4], uint32_t w) +{ +#ifdef NATIVE_BIG_ENDIAN + memcpy(dst, &w, sizeof w); +#else + dst[3] = (uint8_t) w; w >>= 8; + dst[2] = (uint8_t) w; w >>= 8; + dst[1] = (uint8_t) w; w >>= 8; + dst[0] = (uint8_t) w; +#endif +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h b/Example/Pods/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h new file mode 100644 index 0000000..2b9caeb --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/private/curve25519_ref10.h @@ -0,0 +1,160 @@ +#ifndef curve25519_ref10_H +#define curve25519_ref10_H + +#include +#include + +#define fe crypto_core_curve25519_ref10_fe +typedef int32_t fe[10]; + +/* + 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. + */ + +#define fe_frombytes crypto_core_curve25519_ref10_fe_frombytes +#define fe_tobytes crypto_core_curve25519_ref10_fe_tobytes +#define fe_copy crypto_core_curve25519_ref10_fe_copy +#define fe_isnonzero crypto_core_curve25519_ref10_fe_isnonzero +#define fe_isnegative crypto_core_curve25519_ref10_fe_isnegative +#define fe_0 crypto_core_curve25519_ref10_fe_0 +#define fe_1 crypto_core_curve25519_ref10_fe_1 +#define fe_cmov crypto_core_curve25519_ref10_fe_cmov +#define fe_add crypto_core_curve25519_ref10_fe_add +#define fe_sub crypto_core_curve25519_ref10_fe_sub +#define fe_neg crypto_core_curve25519_ref10_fe_neg +#define fe_mul crypto_core_curve25519_ref10_fe_mul +#define fe_sq crypto_core_curve25519_ref10_fe_sq +#define fe_sq2 crypto_core_curve25519_ref10_fe_sq2 +#define fe_invert crypto_core_curve25519_ref10_fe_invert +#define fe_pow22523 crypto_core_curve25519_ref10_fe_pow22523 + +extern void fe_frombytes(fe,const unsigned char *); +extern void fe_tobytes(unsigned char *,const fe); + +extern void fe_copy(fe,const fe); +extern int fe_isnonzero(const fe); +extern int fe_isnegative(const fe); +extern void fe_0(fe); +extern void fe_1(fe); +extern void fe_cmov(fe,const fe,unsigned int); +extern void fe_add(fe,const fe,const fe); +extern void fe_sub(fe,const fe,const fe); +extern void fe_neg(fe,const fe); +extern void fe_mul(fe,const fe,const fe); +extern void fe_sq(fe,const fe); +extern void fe_sq2(fe,const fe); +extern void fe_invert(fe,const fe); +extern void fe_pow22523(fe,const fe); + +/* + 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) + */ + +#define ge_p2 crypto_core_curve25519_ref10_ge_p2 +typedef struct { + fe X; + fe Y; + fe Z; +} ge_p2; + +#define ge_p3 crypto_core_curve25519_ref10_ge_p3 +typedef struct { + fe X; + fe Y; + fe Z; + fe T; +} ge_p3; + +#define ge_p1p1 crypto_core_curve25519_ref10_ge_p1p1 +typedef struct { + fe X; + fe Y; + fe Z; + fe T; +} ge_p1p1; + +#define ge_precomp crypto_core_curve25519_ref10_ge_precomp +typedef struct { + fe yplusx; + fe yminusx; + fe xy2d; +} ge_precomp; + +#define ge_cached crypto_core_curve25519_ref10_ge_cached +typedef struct { + fe YplusX; + fe YminusX; + fe Z; + fe T2d; +} ge_cached; + +#define ge_frombytes_negate_vartime crypto_core_curve25519_ref10_ge_frombytes_negate_vartime +#define ge_tobytes crypto_core_curve25519_ref10_ge_tobytes +#define ge_p3_tobytes crypto_core_curve25519_ref10_ge_p3_tobytes + +#define ge_p2_0 crypto_core_curve25519_ref10_ge_p2_0 +#define ge_p3_0 crypto_core_curve25519_ref10_ge_p3_0 +#define ge_precomp_0 crypto_core_curve25519_ref10_ge_precomp_0 +#define ge_p3_to_p2 crypto_core_curve25519_ref10_ge_p3_to_p2 +#define ge_p3_to_cached crypto_core_curve25519_ref10_ge_p3_to_cached +#define ge_p1p1_to_p2 crypto_core_curve25519_ref10_ge_p1p1_to_p2 +#define ge_p1p1_to_p3 crypto_core_curve25519_ref10_ge_p1p1_to_p3 +#define ge_p2_dbl crypto_core_curve25519_ref10_ge_p2_dbl +#define ge_p3_dbl crypto_core_curve25519_ref10_ge_p3_dbl + +#define ge_madd crypto_core_curve25519_ref10_ge_madd +#define ge_msub crypto_core_curve25519_ref10_ge_msub +#define ge_add crypto_core_curve25519_ref10_ge_add +#define ge_sub crypto_core_curve25519_ref10_ge_sub +#define ge_scalarmult_base crypto_core_curve25519_ref10_ge_scalarmult_base +#define ge_double_scalarmult_vartime crypto_core_curve25519_ref10_ge_double_scalarmult_vartime +#define ge_scalarmult_vartime crypto_core_curve25519_ref10_ge_scalarmult_vartime + +extern void ge_tobytes(unsigned char *,const ge_p2 *); +extern void ge_p3_tobytes(unsigned char *,const ge_p3 *); +extern int ge_frombytes_negate_vartime(ge_p3 *,const unsigned char *); + +extern void ge_p2_0(ge_p2 *); +extern void ge_p3_0(ge_p3 *); +extern void ge_precomp_0(ge_precomp *); +extern void ge_p3_to_p2(ge_p2 *,const ge_p3 *); +extern void ge_p3_to_cached(ge_cached *,const ge_p3 *); +extern void ge_p1p1_to_p2(ge_p2 *,const ge_p1p1 *); +extern void ge_p1p1_to_p3(ge_p3 *,const ge_p1p1 *); +extern void ge_p2_dbl(ge_p1p1 *,const ge_p2 *); +extern void ge_p3_dbl(ge_p1p1 *,const ge_p3 *); + +extern void ge_madd(ge_p1p1 *,const ge_p3 *,const ge_precomp *); +extern void ge_msub(ge_p1p1 *,const ge_p3 *,const ge_precomp *); +extern void ge_add(ge_p1p1 *,const ge_p3 *,const ge_cached *); +extern void ge_sub(ge_p1p1 *,const ge_p3 *,const ge_cached *); +extern void ge_scalarmult_base(ge_p3 *,const unsigned char *); +extern void ge_double_scalarmult_vartime(ge_p2 *,const unsigned char *,const ge_p3 *,const unsigned char *); +extern void ge_scalarmult_vartime(ge_p3 *,const unsigned char *,const ge_p3 *); + +/* + The set of scalars is \Z/l + where l = 2^252 + 27742317777372353535851937790883648493. + */ + +#define sc_reduce crypto_core_curve25519_ref10_sc_reduce +#define sc_muladd crypto_core_curve25519_ref10_sc_muladd + +extern void sc_reduce(unsigned char *); +extern void sc_muladd(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/private/mutex.h b/Example/Pods/libsodium/src/libsodium/include/sodium/private/mutex.h new file mode 100644 index 0000000..322b674 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/private/mutex.h @@ -0,0 +1,7 @@ +#ifndef mutex_H +#define mutex_H 1 + +extern int sodium_crit_enter(void); +extern int sodium_crit_leave(void); + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes.h b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes.h new file mode 100644 index 0000000..edec3f5 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes.h @@ -0,0 +1,58 @@ + +#ifndef randombytes_H +#define randombytes_H + +#include + +#include +#include + +#include "export.h" + +#ifdef __cplusplus +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wlong-long" +# endif +extern "C" { +#endif + +typedef struct randombytes_implementation { + const char *(*implementation_name)(void); /* required */ + uint32_t (*random)(void); /* required */ + void (*stir)(void); /* optional */ + uint32_t (*uniform)(const uint32_t upper_bound); /* optional, a default implementation will be used if NULL */ + void (*buf)(void * const buf, const size_t size); /* required */ + int (*close)(void); /* optional */ +} randombytes_implementation; + +SODIUM_EXPORT +void randombytes_buf(void * const buf, const size_t size); + +SODIUM_EXPORT +uint32_t randombytes_random(void); + +SODIUM_EXPORT +uint32_t randombytes_uniform(const uint32_t upper_bound); + +SODIUM_EXPORT +void randombytes_stir(void); + +SODIUM_EXPORT +int randombytes_close(void); + +SODIUM_EXPORT +int randombytes_set_implementation(randombytes_implementation *impl); + +SODIUM_EXPORT +const char *randombytes_implementation_name(void); + +/* -- NaCl compatibility interface -- */ + +SODIUM_EXPORT +void randombytes(unsigned char * const buf, const unsigned long long buf_len); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_nativeclient.h b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_nativeclient.h new file mode 100644 index 0000000..5158d8c --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_nativeclient.h @@ -0,0 +1,23 @@ + +#ifndef randombytes_nativeclient_H +#define randombytes_nativeclient_H + +#ifdef __native_client__ + +# include "export.h" +# include "randombytes.h" + +# ifdef __cplusplus +extern "C" { +# endif + +SODIUM_EXPORT +extern struct randombytes_implementation randombytes_nativeclient_implementation; + +# ifdef __cplusplus +} +# endif + +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_salsa20_random.h b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_salsa20_random.h new file mode 100644 index 0000000..4deae15 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_salsa20_random.h @@ -0,0 +1,19 @@ + +#ifndef randombytes_salsa20_random_H +#define randombytes_salsa20_random_H + +#include "export.h" +#include "randombytes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +extern struct randombytes_implementation randombytes_salsa20_implementation; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h new file mode 100644 index 0000000..9e27b67 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h @@ -0,0 +1,19 @@ + +#ifndef randombytes_sysrandom_H +#define randombytes_sysrandom_H + +#include "export.h" +#include "randombytes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +extern struct randombytes_implementation randombytes_sysrandom_implementation; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/runtime.h b/Example/Pods/libsodium/src/libsodium/include/sodium/runtime.h new file mode 100644 index 0000000..76859ea --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/runtime.h @@ -0,0 +1,46 @@ + +#ifndef sodium_runtime_H +#define sodium_runtime_H + +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +int sodium_runtime_has_neon(void); + +SODIUM_EXPORT +int sodium_runtime_has_sse2(void); + +SODIUM_EXPORT +int sodium_runtime_has_sse3(void); + +SODIUM_EXPORT +int sodium_runtime_has_ssse3(void); + +SODIUM_EXPORT +int sodium_runtime_has_sse41(void); + +SODIUM_EXPORT +int sodium_runtime_has_avx(void); + +SODIUM_EXPORT +int sodium_runtime_has_avx2(void); + +SODIUM_EXPORT +int sodium_runtime_has_pclmul(void); + +SODIUM_EXPORT +int sodium_runtime_has_aesni(void); + +/* ------------------------------------------------------------------------- */ + +int _sodium_runtime_get_cpu_features(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/utils.h b/Example/Pods/libsodium/src/libsodium/include/sodium/utils.h new file mode 100644 index 0000000..a2af546 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/utils.h @@ -0,0 +1,132 @@ + +#ifndef sodium_utils_H +#define sodium_utils_H + +#include + +#include "export.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef SODIUM_C99 +# if defined(__cplusplus) || !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L +# define SODIUM_C99(X) +# else +# define SODIUM_C99(X) X +# endif +#endif + +SODIUM_EXPORT +void sodium_memzero(void * const pnt, const size_t len); + +/* + * WARNING: sodium_memcmp() must be used to verify if two secret keys + * are equal, in constant time. + * It returns 0 if the keys are equal, and -1 if they differ. + * This function is not designed for lexicographical comparisons. + */ +SODIUM_EXPORT +int sodium_memcmp(const void * const b1_, const void * const b2_, size_t len) + __attribute__ ((warn_unused_result)); + +/* + * sodium_compare() returns -1 if b1_ < b2_, 1 if b1_ > b2_ and 0 if b1_ == b2_ + * It is suitable for lexicographical comparisons, or to compare nonces + * and counters stored in little-endian format. + * However, it is slower than sodium_memcmp(). + */ +SODIUM_EXPORT +int sodium_compare(const unsigned char *b1_, const unsigned char *b2_, + size_t len) + __attribute__ ((warn_unused_result)); + +SODIUM_EXPORT +int sodium_is_zero(const unsigned char *n, const size_t nlen); + +SODIUM_EXPORT +void sodium_increment(unsigned char *n, const size_t nlen); + +SODIUM_EXPORT +void sodium_add(unsigned char *a, const unsigned char *b, const size_t len); + +SODIUM_EXPORT +char *sodium_bin2hex(char * const hex, const size_t hex_maxlen, + const unsigned char * const bin, const size_t bin_len); + +SODIUM_EXPORT +int sodium_hex2bin(unsigned char * const bin, const size_t bin_maxlen, + const char * const hex, const size_t hex_len, + const char * const ignore, size_t * const bin_len, + const char ** const hex_end); + +SODIUM_EXPORT +int sodium_mlock(void * const addr, const size_t len); + +SODIUM_EXPORT +int sodium_munlock(void * const addr, const size_t len); + +/* WARNING: sodium_malloc() and sodium_allocarray() are not general-purpose + * allocation functions. + * + * They return a pointer to a region filled with 0xd0 bytes, immediately + * followed by a guard page. + * As a result, accessing a single byte after the requested allocation size + * will intentionally trigger a segmentation fault. + * + * A canary and an additional guard page placed before the beginning of the + * region may also kill the process if a buffer underflow is detected. + * + * The memory layout is: + * [unprotected region size (read only)][guard page (no access)][unprotected pages (read/write)][guard page (no access)] + * With the layout of the unprotected pages being: + * [optional padding][16-bytes canary][user region] + * + * However: + * - These functions are significantly slower than standard functions + * - Each allocation requires 3 or 4 additional pages + * - The returned address will not be aligned if the allocation size is not + * a multiple of the required alignment. For this reason, these functions + * are designed to store data, such as secret keys and messages. + * + * sodium_malloc() can be used to allocate any libsodium data structure, + * with the exception of crypto_generichash_state. + * + * The crypto_generichash_state structure is packed and its length is + * either 357 or 361 bytes. For this reason, when using sodium_malloc() to + * allocate a crypto_generichash_state structure, padding must be added in + * order to ensure proper alignment: + * state = sodium_malloc((crypto_generichash_statebytes() + (size_t) 63U) + * & ~(size_t) 63U); + */ + +SODIUM_EXPORT +void *sodium_malloc(const size_t size) + __attribute__ ((malloc)); + +SODIUM_EXPORT +void *sodium_allocarray(size_t count, size_t size) + __attribute__ ((malloc)); + +SODIUM_EXPORT +void sodium_free(void *ptr); + +SODIUM_EXPORT +int sodium_mprotect_noaccess(void *ptr); + +SODIUM_EXPORT +int sodium_mprotect_readonly(void *ptr); + +SODIUM_EXPORT +int sodium_mprotect_readwrite(void *ptr); + +/* -------- */ + +int _sodium_alloc_init(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/version.h b/Example/Pods/libsodium/src/libsodium/include/sodium/version.h new file mode 100644 index 0000000..d81cef1 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/version.h @@ -0,0 +1,29 @@ + +#ifndef sodium_version_H +#define sodium_version_H + +#include "export.h" + +#define SODIUM_VERSION_STRING "1.0.11" + +#define SODIUM_LIBRARY_VERSION_MAJOR 9 +#define SODIUM_LIBRARY_VERSION_MINOR 3 + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +const char *sodium_version_string(void); + +SODIUM_EXPORT +int sodium_library_version_major(void); + +SODIUM_EXPORT +int sodium_library_version_minor(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/include/sodium/version.h.in b/Example/Pods/libsodium/src/libsodium/include/sodium/version.h.in new file mode 100644 index 0000000..ef230ef --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/include/sodium/version.h.in @@ -0,0 +1,29 @@ + +#ifndef sodium_version_H +#define sodium_version_H + +#include "export.h" + +#define SODIUM_VERSION_STRING "@VERSION@" + +#define SODIUM_LIBRARY_VERSION_MAJOR @SODIUM_LIBRARY_VERSION_MAJOR@ +#define SODIUM_LIBRARY_VERSION_MINOR @SODIUM_LIBRARY_VERSION_MINOR@ + +#ifdef __cplusplus +extern "C" { +#endif + +SODIUM_EXPORT +const char *sodium_version_string(void); + +SODIUM_EXPORT +int sodium_library_version_major(void); + +SODIUM_EXPORT +int sodium_library_version_minor(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c b/Example/Pods/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c new file mode 100644 index 0000000..468cd65 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c @@ -0,0 +1,60 @@ + +#include +#include +#include + +#ifdef __native_client__ +# include + +# include "utils.h" +# include "randombytes.h" +# include "randombytes_nativeclient.h" + +static void +randombytes_nativeclient_buf(void * const buf, const size_t size) +{ + unsigned char *buf_ = (unsigned char *) buf; + struct nacl_irt_random rand_intf; + size_t readnb = (size_t) 0U; + size_t toread = size; + + if (nacl_interface_query(NACL_IRT_RANDOM_v0_1, &rand_intf, + sizeof rand_intf) != sizeof rand_intf) { + abort(); + } + while (toread > (size_t) 0U) { + if (rand_intf.get_random_bytes(buf_, size, &readnb) != 0 || + readnb > size) { + abort(); + } + toread -= readnb; + buf_ += readnb; + } +} + +static uint32_t +randombytes_nativeclient_random(void) +{ + uint32_t r; + + randombytes_nativeclient_buf(&r, sizeof r); + + return r; +} + +static const char * +randombytes_nativeclient_implementation_name(void) +{ + return "nativeclient"; +} + +struct randombytes_implementation randombytes_nativeclient_implementation = { + SODIUM_C99(.implementation_name =) randombytes_nativeclient_implementation_name, + SODIUM_C99(.random =) randombytes_nativeclient_random, + SODIUM_C99(.stir =) NULL, + SODIUM_C99(.uniform =) NULL, + SODIUM_C99(.buf =) randombytes_nativeclient_buf, + SODIUM_C99(.close =) NULL +}; + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/randombytes/randombytes.c b/Example/Pods/libsodium/src/libsodium/randombytes/randombytes.c new file mode 100644 index 0000000..781939a --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/randombytes/randombytes.c @@ -0,0 +1,174 @@ + +#include +#include + +#include +#include +#include + +#ifdef __EMSCRIPTEN__ +# include +#endif + +#include "randombytes.h" +#include "randombytes_sysrandom.h" + +#ifdef __native_client__ +# include "randombytes_nativeclient.h" +#endif + +/* C++Builder defines a "random" macro */ +#undef random + +static const randombytes_implementation *implementation; + +#ifdef __EMSCRIPTEN__ +# define RANDOMBYTES_DEFAULT_IMPLEMENTATION NULL +#else +# ifdef __native_client__ +# define RANDOMBYTES_DEFAULT_IMPLEMENTATION &randombytes_nativeclient_implementation; +# else +# define RANDOMBYTES_DEFAULT_IMPLEMENTATION &randombytes_sysrandom_implementation; +# endif +#endif + +static void +randombytes_init_if_needed(void) +{ + if (implementation == NULL) { + implementation = RANDOMBYTES_DEFAULT_IMPLEMENTATION; + randombytes_stir(); + } +} + +int +randombytes_set_implementation(randombytes_implementation *impl) +{ + implementation = impl; + + return 0; +} + +const char * +randombytes_implementation_name(void) +{ +#ifndef __EMSCRIPTEN__ + randombytes_init_if_needed(); + return implementation->implementation_name(); +#else + return "js"; +#endif +} + +uint32_t +randombytes_random(void) +{ +#ifndef __EMSCRIPTEN__ + randombytes_init_if_needed(); + return implementation->random(); +#else + return EM_ASM_INT_V({ + return Module.getRandomValue(); + }); +#endif +} + +void +randombytes_stir(void) +{ +#ifndef __EMSCRIPTEN__ + randombytes_init_if_needed(); + if (implementation->stir != NULL) { + implementation->stir(); + } +#else + EM_ASM({ + if (Module.getRandomValue === undefined) { + try { + var window_ = "object" === typeof window ? window : self, + crypto_ = typeof window_.crypto !== "undefined" ? window_.crypto : window_.msCrypto, + randomValuesStandard = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + randomValuesStandard(); + Module.getRandomValue = randomValuesStandard; + } catch (e) { + try { + var crypto = require('crypto'), + randomValueNodeJS = function() { + var buf = crypto.randomBytes(4); + return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0; + }; + randomValueNodeJS(); + Module.getRandomValue = randomValueNodeJS; + } catch (e) { + throw 'No secure random number generator found'; + } + } + } + }); +#endif +} + +/* + * randombytes_uniform() derives from OpenBSD's arc4random_uniform() + * Copyright (c) 2008, Damien Miller + */ +uint32_t +randombytes_uniform(const uint32_t upper_bound) +{ + uint32_t min; + uint32_t r; + +#ifndef __EMSCRIPTEN__ + randombytes_init_if_needed(); + if (implementation->uniform != NULL) { + return implementation->uniform(upper_bound); + } +#endif + if (upper_bound < 2) { + return 0; + } + min = (uint32_t) (-upper_bound % upper_bound); + do { + r = randombytes_random(); + } while (r < min); + + return r % upper_bound; +} + +void +randombytes_buf(void * const buf, const size_t size) +{ +#ifndef __EMSCRIPTEN__ + randombytes_init_if_needed(); + if (size > (size_t) 0U) { + implementation->buf(buf, size); + } +#else + unsigned char *p = buf; + size_t i; + + for (i = (size_t) 0U; i < size; i++) { + p[i] = (unsigned char) randombytes_random(); + } +#endif +} + +int +randombytes_close(void) +{ + if (implementation != NULL && implementation->close != NULL) { + return implementation->close(); + } + return 0; +} + +void +randombytes(unsigned char * const buf, const unsigned long long buf_len) +{ + assert(buf_len <= SIZE_MAX); + randombytes_buf(buf, (size_t) buf_len); +} diff --git a/Example/Pods/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c b/Example/Pods/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c new file mode 100644 index 0000000..2d21472 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c @@ -0,0 +1,503 @@ + +#include +#include +#ifndef _WIN32 +# include +# include +#endif +#ifdef __linux__ +# include +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#if !defined(_MSC_VER) && !defined(__BORLANDC__) +# include +#endif + +#include "crypto_core_salsa20.h" +#include "crypto_generichash.h" +#include "crypto_stream_salsa20.h" +#include "randombytes.h" +#include "randombytes_salsa20_random.h" +#include "utils.h" +#include "private/mutex.h" + +#ifdef _WIN32 +# include +# include +# define RtlGenRandom SystemFunction036 +# if defined(__cplusplus) +extern "C" +# endif +BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength); +# pragma comment(lib, "advapi32.lib") +# ifdef __BORLANDC__ +# define _ftime ftime +# define _timeb timeb +# endif +#endif + +#define SALSA20_RANDOM_BLOCK_SIZE crypto_core_salsa20_OUTPUTBYTES +#define HASH_BLOCK_SIZE 128U +#define COMPILER_ASSERT(X) (void) sizeof(char[(X) ? 1 : -1]) + +#if defined(__OpenBSD__) || defined(__CloudABI__) +# define HAVE_SAFE_ARC4RANDOM 1 +#endif + +#ifndef SSIZE_MAX +# define SSIZE_MAX (SIZE_MAX / 2 - 1) +#endif + +typedef struct Salsa20Random_ { + size_t rnd32_outleft; + int random_data_source_fd; + int initialized; + int getrandom_available; + unsigned char key[crypto_stream_salsa20_KEYBYTES]; + unsigned char rnd32[16U * SALSA20_RANDOM_BLOCK_SIZE]; + uint64_t nonce; +#ifdef HAVE_GETPID + pid_t pid; +#endif +} Salsa20Random; + +static Salsa20Random stream = { + SODIUM_C99(.rnd32_outleft =) (size_t) 0U, + SODIUM_C99(.random_data_source_fd =) -1, + SODIUM_C99(.initialized =) 0, + SODIUM_C99(.getrandom_available =) 0 +}; + +static uint64_t +sodium_hrtime(void) +{ + uint64_t ts; + +#ifdef _WIN32 + { + struct _timeb tb; +# pragma warning(push) +# pragma warning(disable: 4996) + _ftime(&tb); +# pragma warning(pop) + ts = ((uint64_t) tb.time) * 1000000U + ((uint64_t) tb.millitm) * 1000U; + } +#else + { + struct timeval tv; + + if (gettimeofday(&tv, NULL) != 0) { + abort(); /* LCOV_EXCL_LINE */ + } + ts = ((uint64_t) tv.tv_sec) * 1000000U + (uint64_t) tv.tv_usec; + } +#endif + return ts; +} + +#ifndef _WIN32 +static ssize_t +safe_read(const int fd, void * const buf_, size_t size) +{ + unsigned char *buf = (unsigned char *) buf_; + ssize_t readnb; + + assert(size > (size_t) 0U); + assert(size <= SSIZE_MAX); + do { + while ((readnb = read(fd, buf, size)) < (ssize_t) 0 && + (errno == EINTR || errno == EAGAIN)); /* LCOV_EXCL_LINE */ + if (readnb < (ssize_t) 0) { + return readnb; /* LCOV_EXCL_LINE */ + } + if (readnb == (ssize_t) 0) { + break; /* LCOV_EXCL_LINE */ + } + size -= (size_t) readnb; + buf += readnb; + } while (size > (ssize_t) 0); + + return (ssize_t) (buf - (unsigned char *) buf_); +} +#endif + +#ifndef _WIN32 +# if defined(__linux__) && !defined(USE_BLOCKING_RANDOM) +static int +randombytes_block_on_dev_random(void) +{ + struct pollfd pfd; + int fd; + int pret; + + fd = open("/dev/random", O_RDONLY); + if (fd == -1) { + return 0; + } + pfd.fd = fd; + pfd.events = POLLIN; + pfd.revents = 0; + do { + pret = poll(&pfd, 1, -1); + } while (pret < 0 && (errno == EINTR || errno == EAGAIN)); + if (pret != 1) { + (void) close(fd); + errno = EIO; + return -1; + } + return close(fd); +} +# endif + +# ifndef HAVE_SAFE_ARC4RANDOM +static int +randombytes_salsa20_random_random_dev_open(void) +{ +/* LCOV_EXCL_START */ + struct stat st; + static const char *devices[] = { +# ifndef USE_BLOCKING_RANDOM + "/dev/urandom", +# endif + "/dev/random", NULL + }; + const char ** device = devices; + int fd; + +# if defined(__linux__) && !defined(USE_BLOCKING_RANDOM) + if (randombytes_block_on_dev_random() != 0) { + return -1; + } +# endif + do { + fd = open(*device, O_RDONLY); + if (fd != -1) { + if (fstat(fd, &st) == 0 && +# ifdef __COMPCERT__ + 1 +# elif defined(S_ISNAM) + (S_ISNAM(st.st_mode) || S_ISCHR(st.st_mode)) +# else + S_ISCHR(st.st_mode) +# endif + ) { +# if defined(F_SETFD) && defined(FD_CLOEXEC) + (void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); +# endif + return fd; + } + (void) close(fd); + } else if (errno == EINTR) { + continue; + } + device++; + } while (*device != NULL); + + errno = EIO; + return -1; +/* LCOV_EXCL_STOP */ +} +# endif + +# if defined(SYS_getrandom) && defined(__NR_getrandom) +static int +_randombytes_linux_getrandom(void * const buf, const size_t size) +{ + int readnb; + + assert(size <= 256U); + do { + readnb = syscall(SYS_getrandom, buf, (int) size, 0); + } while (readnb < 0 && (errno == EINTR || errno == EAGAIN)); + + return (readnb == (int) size) - 1; +} + +static int +randombytes_linux_getrandom(void * const buf_, size_t size) +{ + unsigned char *buf = (unsigned char *) buf_; + size_t chunk_size = 256U; + + do { + if (size < chunk_size) { + chunk_size = size; + assert(chunk_size > (size_t) 0U); + } + if (_randombytes_linux_getrandom(buf, chunk_size) != 0) { + return -1; + } + size -= chunk_size; + buf += chunk_size; + } while (size > (size_t) 0U); + + return 0; +} +# endif + +static void +randombytes_salsa20_random_init(void) +{ + const int errno_save = errno; + + stream.nonce = sodium_hrtime(); + assert(stream.nonce != (uint64_t) 0U); + +# ifdef HAVE_SAFE_ARC4RANDOM + errno = errno_save; +# else + +# if defined(SYS_getrandom) && defined(__NR_getrandom) + { + unsigned char fodder[16]; + + if (randombytes_linux_getrandom(fodder, sizeof fodder) == 0) { + stream.getrandom_available = 1; + errno = errno_save; + return; + } + stream.getrandom_available = 0; + } +# endif /* SYS_getrandom */ + + if ((stream.random_data_source_fd = + randombytes_salsa20_random_random_dev_open()) == -1) { + abort(); /* LCOV_EXCL_LINE */ + } + errno = errno_save; +# endif /* HAVE_SAFE_ARC4RANDOM */ +} + +#else /* _WIN32 */ + +static void +randombytes_salsa20_random_init(void) +{ + stream.nonce = sodium_hrtime(); + assert(stream.nonce != (uint64_t) 0U); +} +#endif + +static void +randombytes_salsa20_random_rekey(const unsigned char * const mix) +{ + unsigned char *key = stream.key; + size_t i; + + for (i = (size_t) 0U; i < sizeof stream.key; i++) { + key[i] ^= mix[i]; + } +} + +static void +randombytes_salsa20_random_stir_unlocked(void) +{ + /* constant to personalize the hash function */ + const unsigned char hsigma[crypto_generichash_KEYBYTES] = { + 0x54, 0x68, 0x69, 0x73, 0x49, 0x73, 0x4a, 0x75, + 0x73, 0x74, 0x41, 0x54, 0x68, 0x69, 0x72, 0x74, + 0x79, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x53, 0x65, 0x65, 0x64, 0x2e, 0x2e, 0x2e + }; + unsigned char m0[crypto_stream_salsa20_KEYBYTES + HASH_BLOCK_SIZE]; + unsigned char *k0 = m0 + crypto_stream_salsa20_KEYBYTES; + size_t sizeof_k0 = sizeof m0 - crypto_stream_salsa20_KEYBYTES; + + memset(stream.rnd32, 0, sizeof stream.rnd32); + stream.rnd32_outleft = (size_t) 0U; + if (stream.initialized == 0) { + randombytes_salsa20_random_init(); + stream.initialized = 1; + } +#ifndef _WIN32 + +# ifdef HAVE_SAFE_ARC4RANDOM + arc4random_buf(m0, sizeof m0); +# elif defined(SYS_getrandom) && defined(__NR_getrandom) + if (stream.getrandom_available != 0) { + if (randombytes_linux_getrandom(m0, sizeof m0) != 0) { + abort(); /* LCOV_EXCL_LINE */ + } + } else if (stream.random_data_source_fd == -1 || + safe_read(stream.random_data_source_fd, m0, + sizeof m0) != (ssize_t) sizeof m0) { + abort(); /* LCOV_EXCL_LINE */ + } +# else + if (stream.random_data_source_fd == -1 || + safe_read(stream.random_data_source_fd, m0, + sizeof m0) != (ssize_t) sizeof m0) { + abort(); /* LCOV_EXCL_LINE */ + } +# endif + +#else /* _WIN32 */ + if (! RtlGenRandom((PVOID) m0, (ULONG) sizeof m0)) { + abort(); /* LCOV_EXCL_LINE */ + } +#endif + if (crypto_generichash(stream.key, sizeof stream.key, k0, sizeof_k0, + hsigma, sizeof hsigma) != 0) { + abort(); /* LCOV_EXCL_LINE */ + } + COMPILER_ASSERT(sizeof stream.key <= sizeof m0); + randombytes_salsa20_random_rekey(m0); + sodium_memzero(m0, sizeof m0); +#ifdef HAVE_GETPID + stream.pid = getpid(); +#endif +} + +static void +randombytes_salsa20_random_stir(void) +{ + if (sodium_crit_enter() != 0) { + abort(); + } + randombytes_salsa20_random_stir_unlocked(); + if (sodium_crit_leave() != 0) { + abort(); + } +} + +static void +randombytes_salsa20_random_stir_if_needed(void) +{ +#ifdef HAVE_GETPID + if (stream.initialized == 0) { + randombytes_salsa20_random_stir_unlocked(); + } else if (stream.pid != getpid()) { + abort(); + } +#else + if (stream.initialized == 0) { + randombytes_salsa20_random_stir_unlocked(); + } +#endif +} + +static int +randombytes_salsa20_random_close(void) +{ + int ret = -1; + + if (sodium_crit_enter() != 0) { + abort(); + } +#ifndef _WIN32 + if (stream.random_data_source_fd != -1 && + close(stream.random_data_source_fd) == 0) { + stream.random_data_source_fd = -1; + stream.initialized = 0; +# ifdef HAVE_GETPID + stream.pid = (pid_t) 0; +# endif + ret = 0; + } + +# ifdef HAVE_SAFE_ARC4RANDOM + ret = 0; +# endif + +# if defined(SYS_getrandom) && defined(__NR_getrandom) + if (stream.getrandom_available != 0) { + ret = 0; + } +# endif + +#else /* _WIN32 */ + if (stream.initialized != 0) { + stream.initialized = 0; + ret = 0; + } +#endif + if (sodium_crit_leave() != 0) { + abort(); + } + return ret; +} + +static void +randombytes_salsa20_random_buf(void * const buf, const size_t size) +{ + size_t i; + int ret; + + if (sodium_crit_enter() != 0) { + abort(); + } + randombytes_salsa20_random_stir_if_needed(); + COMPILER_ASSERT(sizeof stream.nonce == crypto_stream_salsa20_NONCEBYTES); +#ifdef ULONG_LONG_MAX + /* coverity[result_independent_of_operands] */ + assert(size <= ULONG_LONG_MAX); +#endif + ret = crypto_stream_salsa20((unsigned char *) buf, (unsigned long long) size, + (unsigned char *) &stream.nonce, stream.key); + assert(ret == 0); + for (i = 0U; i < sizeof size; i++) { + stream.key[i] ^= ((const unsigned char *) (const void *) &size)[i]; + } + stream.nonce++; + crypto_stream_salsa20_xor(stream.key, stream.key, sizeof stream.key, + (unsigned char *) &stream.nonce, stream.key); + if (sodium_crit_leave() != 0) { + abort(); + } +} + +static uint32_t +randombytes_salsa20_random(void) +{ + uint32_t val; + int ret; + + if (sodium_crit_enter() != 0) { + abort(); + } + COMPILER_ASSERT(sizeof stream.rnd32 >= (sizeof stream.key) + (sizeof val)); + COMPILER_ASSERT(((sizeof stream.rnd32) - (sizeof stream.key)) + % sizeof val == (size_t) 0U); + if (stream.rnd32_outleft <= (size_t) 0U) { + randombytes_salsa20_random_stir_if_needed(); + COMPILER_ASSERT(sizeof stream.nonce == crypto_stream_salsa20_NONCEBYTES); + ret = crypto_stream_salsa20((unsigned char *) stream.rnd32, + (unsigned long long) sizeof stream.rnd32, + (unsigned char *) &stream.nonce, + stream.key); + assert(ret == 0); + stream.rnd32_outleft = (sizeof stream.rnd32) - (sizeof stream.key); + randombytes_salsa20_random_rekey(&stream.rnd32[stream.rnd32_outleft]); + stream.nonce++; + } + stream.rnd32_outleft -= sizeof val; + memcpy(&val, &stream.rnd32[stream.rnd32_outleft], sizeof val); + memset(&stream.rnd32[stream.rnd32_outleft], 0, sizeof val); + if (sodium_crit_leave() != 0) { + abort(); + } + return val; +} + +static const char * +randombytes_salsa20_implementation_name(void) +{ + return "salsa20"; +} + +struct randombytes_implementation randombytes_salsa20_implementation = { + SODIUM_C99(.implementation_name =) randombytes_salsa20_implementation_name, + SODIUM_C99(.random =) randombytes_salsa20_random, + SODIUM_C99(.stir =) randombytes_salsa20_random_stir, + SODIUM_C99(.uniform =) NULL, + SODIUM_C99(.buf =) randombytes_salsa20_random_buf, + SODIUM_C99(.close =) randombytes_salsa20_random_close +}; diff --git a/Example/Pods/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c b/Example/Pods/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c new file mode 100644 index 0000000..6410cf8 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c @@ -0,0 +1,360 @@ + +#include +#include +#ifndef _WIN32 +# include +# include +#endif +#ifdef __linux__ +# include +# include +#endif + +#include +#include +#include +#include +#include +#include +#ifndef _WIN32 +# include +#endif + +#include "randombytes.h" +#include "randombytes_sysrandom.h" +#include "utils.h" + +#ifdef _WIN32 +/* `RtlGenRandom` is used over `CryptGenRandom` on Microsoft Windows based systems: + * - `CryptGenRandom` requires pulling in `CryptoAPI` which causes unnecessary + * memory overhead if this API is not being used for other purposes + * - `RtlGenRandom` is thus called directly instead. A detailed explanation + * can be found here: https://blogs.msdn.microsoft.com/michael_howard/2005/01/14/cryptographically-secure-random-number-on-windows-without-using-cryptoapi/ + */ +# include +# define RtlGenRandom SystemFunction036 +# if defined(__cplusplus) +extern "C" +# endif +BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength); +# pragma comment(lib, "advapi32.lib") +#endif + +#if defined(__OpenBSD__) || defined(__CloudABI__) +# define HAVE_SAFE_ARC4RANDOM 1 +#endif + +#ifndef SSIZE_MAX +# define SSIZE_MAX (SIZE_MAX / 2 - 1) +#endif + +#ifdef HAVE_SAFE_ARC4RANDOM + +static uint32_t +randombytes_sysrandom(void) +{ + return arc4random(); +} + +static void +randombytes_sysrandom_stir(void) +{ +} + +static void +randombytes_sysrandom_buf(void * const buf, const size_t size) +{ + return arc4random_buf(buf, size); +} + +static int +randombytes_sysrandom_close(void) +{ + return 0; +} + +#else /* __OpenBSD__ */ + +typedef struct SysRandom_ { + int random_data_source_fd; + int initialized; + int getrandom_available; +} SysRandom; + +static SysRandom stream = { + SODIUM_C99(.random_data_source_fd =) -1, + SODIUM_C99(.initialized =) 0, + SODIUM_C99(.getrandom_available =) 0 +}; + +#ifndef _WIN32 +static ssize_t +safe_read(const int fd, void * const buf_, size_t size) +{ + unsigned char *buf = (unsigned char *) buf_; + ssize_t readnb; + + assert(size > (size_t) 0U); + assert(size <= SSIZE_MAX); + do { + while ((readnb = read(fd, buf, size)) < (ssize_t) 0 && + (errno == EINTR || errno == EAGAIN)); /* LCOV_EXCL_LINE */ + if (readnb < (ssize_t) 0) { + return readnb; /* LCOV_EXCL_LINE */ + } + if (readnb == (ssize_t) 0) { + break; /* LCOV_EXCL_LINE */ + } + size -= (size_t) readnb; + buf += readnb; + } while (size > (ssize_t) 0); + + return (ssize_t) (buf - (unsigned char *) buf_); +} +#endif + +#ifndef _WIN32 +# if defined(__linux__) && !defined(USE_BLOCKING_RANDOM) +static int +randombytes_block_on_dev_random(void) +{ + struct pollfd pfd; + int fd; + int pret; + + fd = open("/dev/random", O_RDONLY); + if (fd == -1) { + return 0; + } + pfd.fd = fd; + pfd.events = POLLIN; + pfd.revents = 0; + do { + pret = poll(&pfd, 1, -1); + } while (pret < 0 && (errno == EINTR || errno == EAGAIN)); + if (pret != 1) { + (void) close(fd); + errno = EIO; + return -1; + } + return close(fd); +} +# endif + +static int +randombytes_sysrandom_random_dev_open(void) +{ +/* LCOV_EXCL_START */ + struct stat st; + static const char *devices[] = { +# ifndef USE_BLOCKING_RANDOM + "/dev/urandom", +# endif + "/dev/random", NULL + }; + const char ** device = devices; + int fd; + +# if defined(__linux__) && !defined(USE_BLOCKING_RANDOM) + if (randombytes_block_on_dev_random() != 0) { + return -1; + } +# endif + do { + fd = open(*device, O_RDONLY); + if (fd != -1) { + if (fstat(fd, &st) == 0 && +# ifdef __COMPCERT__ + 1 +# elif defined(S_ISNAM) + (S_ISNAM(st.st_mode) || S_ISCHR(st.st_mode)) +# else + S_ISCHR(st.st_mode) +# endif + ) { +# if defined(F_SETFD) && defined(FD_CLOEXEC) + (void) fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); +# endif + return fd; + } + (void) close(fd); + } else if (errno == EINTR) { + continue; + } + device++; + } while (*device != NULL); + + errno = EIO; + return -1; +/* LCOV_EXCL_STOP */ +} + +# if defined(SYS_getrandom) && defined(__NR_getrandom) +static int +_randombytes_linux_getrandom(void * const buf, const size_t size) +{ + int readnb; + + assert(size <= 256U); + do { + readnb = syscall(SYS_getrandom, buf, (int) size, 0); + } while (readnb < 0 && (errno == EINTR || errno == EAGAIN)); + + return (readnb == (int) size) - 1; +} + +static int +randombytes_linux_getrandom(void * const buf_, size_t size) +{ + unsigned char *buf = (unsigned char *) buf_; + size_t chunk_size = 256U; + + do { + if (size < chunk_size) { + chunk_size = size; + assert(chunk_size > (size_t) 0U); + } + if (_randombytes_linux_getrandom(buf, chunk_size) != 0) { + return -1; + } + size -= chunk_size; + buf += chunk_size; + } while (size > (size_t) 0U); + + return 0; +} +# endif + +static void +randombytes_sysrandom_init(void) +{ + const int errno_save = errno; + +# if defined(SYS_getrandom) && defined(__NR_getrandom) + { + unsigned char fodder[16]; + + if (randombytes_linux_getrandom(fodder, sizeof fodder) == 0) { + stream.getrandom_available = 1; + errno = errno_save; + return; + } + stream.getrandom_available = 0; + } +# endif + + if ((stream.random_data_source_fd = + randombytes_sysrandom_random_dev_open()) == -1) { + abort(); /* LCOV_EXCL_LINE */ + } + errno = errno_save; +} + +#else /* _WIN32 */ + +static void +randombytes_sysrandom_init(void) +{ +} +#endif + +static void +randombytes_sysrandom_stir(void) +{ + if (stream.initialized == 0) { + randombytes_sysrandom_init(); + stream.initialized = 1; + } +} + +static void +randombytes_sysrandom_stir_if_needed(void) +{ + if (stream.initialized == 0) { + randombytes_sysrandom_stir(); + } +} + +static int +randombytes_sysrandom_close(void) +{ + int ret = -1; + +#ifndef _WIN32 + if (stream.random_data_source_fd != -1 && + close(stream.random_data_source_fd) == 0) { + stream.random_data_source_fd = -1; + stream.initialized = 0; + ret = 0; + } +# if defined(SYS_getrandom) && defined(__NR_getrandom) + if (stream.getrandom_available != 0) { + ret = 0; + } +# endif +#else /* _WIN32 */ + if (stream.initialized != 0) { + stream.initialized = 0; + ret = 0; + } +#endif + return ret; +} + +static void +randombytes_sysrandom_buf(void * const buf, const size_t size) +{ + randombytes_sysrandom_stir_if_needed(); +#ifdef ULONG_LONG_MAX + /* coverity[result_independent_of_operands] */ + assert(size <= ULONG_LONG_MAX); +#endif +#ifndef _WIN32 +# if defined(SYS_getrandom) && defined(__NR_getrandom) + if (stream.getrandom_available != 0) { + if (randombytes_linux_getrandom(buf, size) != 0) { + abort(); + } + return; + } +# endif + if (stream.random_data_source_fd == -1 || + safe_read(stream.random_data_source_fd, buf, size) != (ssize_t) size) { + abort(); /* LCOV_EXCL_LINE */ + } +#else + if (size > (size_t) 0xffffffff) { + abort(); /* LCOV_EXCL_LINE */ + } + if (! RtlGenRandom((PVOID) buf, (ULONG) size)) { + abort(); /* LCOV_EXCL_LINE */ + } +#endif +} + +static uint32_t +randombytes_sysrandom(void) +{ + uint32_t r; + + randombytes_sysrandom_buf(&r, sizeof r); + + return r; +} + +#endif /* __OpenBSD__ */ + +static const char * +randombytes_sysrandom_implementation_name(void) +{ + return "sysrandom"; +} + +struct randombytes_implementation randombytes_sysrandom_implementation = { + SODIUM_C99(.implementation_name =) randombytes_sysrandom_implementation_name, + SODIUM_C99(.random =) randombytes_sysrandom, + SODIUM_C99(.stir =) randombytes_sysrandom_stir, + SODIUM_C99(.uniform =) NULL, + SODIUM_C99(.buf =) randombytes_sysrandom_buf, + SODIUM_C99(.close =) randombytes_sysrandom_close +}; diff --git a/Example/Pods/libsodium/src/libsodium/sodium/core.c b/Example/Pods/libsodium/src/libsodium/sodium/core.c new file mode 100644 index 0000000..1af5013 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/sodium/core.c @@ -0,0 +1,169 @@ + +#include +#include +#ifdef HAVE_PTHREAD +# include +#elif defined(_WIN32) +# include +#endif + +#include "core.h" +#include "crypto_generichash.h" +#include "crypto_onetimeauth.h" +#include "crypto_pwhash_argon2i.h" +#include "crypto_scalarmult.h" +#include "crypto_stream_chacha20.h" +#include "randombytes.h" +#include "runtime.h" +#include "utils.h" +#include "private/mutex.h" + +#if !defined(_MSC_VER) && 0 +# warning *** This is unstable, untested, development code. +# warning It might not compile. It might not work as expected. +# warning It might be totally insecure. +# warning Do not use this in production. +# warning Use releases available at https://download.libsodium.org/libsodium/releases/ instead. +# warning Alternatively, use the "stable" branch in the git repository. +#endif + +#if !defined(_MSC_VER) && (!defined(CONFIGURED) || CONFIGURED != 1) +# warning *** The library is being compiled using an undocumented method. +# warning This is not supported. It has not been tested, it might not +# warning work as expected, and performance is likely to be suboptimal. +#endif + +static volatile int initialized; + +int +sodium_init(void) +{ + if (sodium_crit_enter() != 0) { + return -1; + } + if (initialized != 0) { + if (sodium_crit_leave() != 0) { + return -1; + } + return 1; + } + _sodium_runtime_get_cpu_features(); + randombytes_stir(); + _sodium_alloc_init(); + _crypto_pwhash_argon2i_pick_best_implementation(); + _crypto_generichash_blake2b_pick_best_implementation(); + _crypto_onetimeauth_poly1305_pick_best_implementation(); + _crypto_scalarmult_curve25519_pick_best_implementation(); + _crypto_stream_chacha20_pick_best_implementation(); + initialized = 1; + if (sodium_crit_leave() != 0) { + return -1; + } + return 0; +} + +#if defined(HAVE_PTHREAD) && !defined(__EMSCRIPTEN__) + +static pthread_mutex_t _sodium_lock = PTHREAD_MUTEX_INITIALIZER; + +int +sodium_crit_enter(void) +{ + return pthread_mutex_lock(&_sodium_lock); +} + +int +sodium_crit_leave(void) +{ + return pthread_mutex_unlock(&_sodium_lock); +} + +#elif defined(_WIN32) + +static CRITICAL_SECTION _sodium_lock; +static volatile LONG _sodium_lock_initialized; + +int +_sodium_crit_init(void) +{ + LONG status = 0L; + + while ((status = InterlockedCompareExchange(&_sodium_lock_initialized, + 1L, 0L)) == 1L) { + Sleep(0); + } + + switch (status) { + case 0L: + InitializeCriticalSection(&_sodium_lock); + return InterlockedExchange(&_sodium_lock_initialized, 2L) == 1L ? 0 : -1; + case 2L: + return 0; + default: /* should never be reached */ + return -1; + } +} + +int +sodium_crit_enter(void) +{ + if (_sodium_crit_init() != 0) { + return -1; + } + EnterCriticalSection(&_sodium_lock); + + return 0; +} + +int +sodium_crit_leave(void) +{ + LeaveCriticalSection(&_sodium_lock); + + return 0; +} + +#elif defined(__GNUC__) && !defined(__EMSCRIPTEN__) && !defined(__native_client__) + +static volatile int _sodium_lock; + +int +sodium_crit_enter(void) +{ +# ifdef HAVE_NANOSLEEP + struct timespec q; + memset(&q, 0, sizeof q); +# endif + while (__sync_lock_test_and_set(&_sodium_lock, 1) != 0) { +# ifdef HAVE_NANOSLEEP + (void) nanosleep(&q, NULL); +# elif defined(__x86_64__) || defined(__i386__) + __asm__ __volatile__ ("pause"); +# endif + } + return 0; +} + +int +sodium_crit_leave(void) +{ + __sync_lock_release(&_sodium_lock); + + return 0; +} + +#else + +int +sodium_crit_enter(void) +{ + return 0; +} + +int +sodium_crit_leave(void) +{ + return 0; +} + +#endif diff --git a/Example/Pods/libsodium/src/libsodium/sodium/runtime.c b/Example/Pods/libsodium/src/libsodium/sodium/runtime.c new file mode 100644 index 0000000..78f0a58 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/sodium/runtime.c @@ -0,0 +1,245 @@ + +#include +#include +#ifdef HAVE_ANDROID_GETCPUFEATURES +# include +#endif + +#include "runtime.h" + +typedef struct CPUFeatures_ { + int initialized; + int has_neon; + int has_sse2; + int has_sse3; + int has_ssse3; + int has_sse41; + int has_avx; + int has_avx2; + int has_pclmul; + int has_aesni; +} CPUFeatures; + +static CPUFeatures _cpu_features; + +#define CPUID_EBX_AVX2 0x00000020 + +#define CPUID_ECX_SSE3 0x00000001 +#define CPUID_ECX_PCLMUL 0x00000002 +#define CPUID_ECX_SSSE3 0x00000200 +#define CPUID_ECX_SSE41 0x00080000 +#define CPUID_ECX_AESNI 0x02000000 +#define CPUID_ECX_XSAVE 0x04000000 +#define CPUID_ECX_OSXSAVE 0x08000000 +#define CPUID_ECX_AVX 0x10000000 + +#define CPUID_EDX_SSE2 0x04000000 + +#define XCR0_SSE 0x00000002 +#define XCR0_AVX 0x00000004 + +static int +_sodium_runtime_arm_cpu_features(CPUFeatures * const cpu_features) +{ +#ifndef __arm__ + cpu_features->has_neon = 0; + return -1; +#else +# ifdef __APPLE__ +# ifdef __ARM_NEON__ + cpu_features->has_neon = 1; +# else + cpu_features->has_neon = 0; +# endif +# elif defined(HAVE_ANDROID_GETCPUFEATURES) && defined(ANDROID_CPU_ARM_FEATURE_NEON) + cpu_features->has_neon = + (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0x0; +# else + cpu_features->has_neon = 0; +# endif + return 0; +#endif +} + +static void +_cpuid(unsigned int cpu_info[4U], const unsigned int cpu_info_type) +{ +#if defined(_MSC_VER) && \ + (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86)) + __cpuid((int *) cpu_info, cpu_info_type); +#elif defined(HAVE_CPUID) + cpu_info[0] = cpu_info[1] = cpu_info[2] = cpu_info[3] = 0; +# ifdef __i386__ + __asm__ __volatile__ ("pushfl; pushfl; " + "popl %0; " + "movl %0, %1; xorl %2, %0; " + "pushl %0; " + "popfl; pushfl; popl %0; popfl" : + "=&r" (cpu_info[0]), "=&r" (cpu_info[1]) : + "i" (0x200000)); + if (((cpu_info[0] ^ cpu_info[1]) & 0x200000) == 0x0) { + return; /* LCOV_EXCL_LINE */ + } +# endif +# ifdef __i386__ + __asm__ __volatile__ ("xchgl %%ebx, %k1; cpuid; xchgl %%ebx, %k1" : + "=a" (cpu_info[0]), "=&r" (cpu_info[1]), + "=c" (cpu_info[2]), "=d" (cpu_info[3]) : + "0" (cpu_info_type), "2" (0U)); +# elif defined(__x86_64__) + __asm__ __volatile__ ("xchgq %%rbx, %q1; cpuid; xchgq %%rbx, %q1" : + "=a" (cpu_info[0]), "=&r" (cpu_info[1]), + "=c" (cpu_info[2]), "=d" (cpu_info[3]) : + "0" (cpu_info_type), "2" (0U)); +# else + __asm__ __volatile__ ("cpuid" : + "=a" (cpu_info[0]), "=b" (cpu_info[1]), + "=c" (cpu_info[2]), "=d" (cpu_info[3]) : + "0" (cpu_info_type), "2" (0U)); +# endif +#else + (void) cpu_info_type; + cpu_info[0] = cpu_info[1] = cpu_info[2] = cpu_info[3] = 0; +#endif +} + +static int +_sodium_runtime_intel_cpu_features(CPUFeatures * const cpu_features) +{ + unsigned int cpu_info[4]; + unsigned int id; + + _cpuid(cpu_info, 0x0); + if ((id = cpu_info[0]) == 0U) { + return -1; /* LCOV_EXCL_LINE */ + } + _cpuid(cpu_info, 0x00000001); +#if defined(HAVE_EMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + cpu_features->has_sse2 = ((cpu_info[3] & CPUID_EDX_SSE2) != 0x0); +#else + cpu_features->has_sse2 = 0; +#endif + +#if defined(HAVE_PMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + cpu_features->has_sse3 = ((cpu_info[2] & CPUID_ECX_SSE3) != 0x0); +#else + cpu_features->has_sse3 = 0; +#endif + +#if defined(HAVE_TMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + cpu_features->has_ssse3 = ((cpu_info[2] & CPUID_ECX_SSSE3) != 0x0); +#else + cpu_features->has_ssse3 = 0; +#endif + +#if defined(HAVE_SMMINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + cpu_features->has_sse41 = ((cpu_info[2] & CPUID_ECX_SSE41) != 0x0); +#else + cpu_features->has_sse41 = 0; +#endif + + cpu_features->has_avx = 0; +#if defined(HAVE_AVXINTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + if ((cpu_info[2] & (CPUID_ECX_AVX | CPUID_ECX_XSAVE | CPUID_ECX_OSXSAVE)) + == (CPUID_ECX_AVX | CPUID_ECX_XSAVE | CPUID_ECX_OSXSAVE)) { + uint32_t xcr0 = 0U; +# ifdef MSC_VER + __asm { + xor ecx, ecx + _asm _emit 0x0f _asm _emit 0x01 _asm _emit 0xd0 + mov xcr0, eax + } +# elif defined(HAVE_AVX_ASM) + __asm__ __volatile__ (".byte 0x0f, 0x01, 0xd0" /* XGETBV */ + : "=a"(xcr0) : "c"((uint32_t) 0U) : "%edx"); +# endif + if ((xcr0 & (XCR0_SSE | XCR0_AVX)) == (XCR0_SSE | XCR0_AVX)) { + cpu_features->has_avx = 1; + } + } +#endif + + cpu_features->has_avx2 = 0; +#if defined(HAVE_AVX2INTRIN_H) || \ + (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + if (cpu_features->has_avx) { + unsigned int cpu_info7[4]; + + _cpuid(cpu_info7, 0x00000007); + cpu_features->has_avx2 = ((cpu_info7[1] & CPUID_EBX_AVX2) != 0x0); + } +#endif + +#if defined(HAVE_WMMINTRIN_H) || \ + (defined(_MSC_VER) && _MSC_VER >= 1600 && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86))) + cpu_features->has_pclmul = ((cpu_info[2] & CPUID_ECX_PCLMUL) != 0x0); + cpu_features->has_aesni = ((cpu_info[2] & CPUID_ECX_AESNI) != 0x0); +#else + cpu_features->has_pclmul = 0; + cpu_features->has_aesni = 0; +#endif + + return 0; +} + +int +_sodium_runtime_get_cpu_features(void) +{ + int ret = -1; + + ret &= _sodium_runtime_arm_cpu_features(&_cpu_features); + ret &= _sodium_runtime_intel_cpu_features(&_cpu_features); + _cpu_features.initialized = 1; + + return ret; +} + +int +sodium_runtime_has_neon(void) { + return _cpu_features.has_neon; +} + +int +sodium_runtime_has_sse2(void) { + return _cpu_features.has_sse2; +} + +int +sodium_runtime_has_sse3(void) { + return _cpu_features.has_sse3; +} + +int +sodium_runtime_has_ssse3(void) { + return _cpu_features.has_ssse3; +} + +int +sodium_runtime_has_sse41(void) { + return _cpu_features.has_sse41; +} + +int +sodium_runtime_has_avx(void) { + return _cpu_features.has_avx; +} + +int +sodium_runtime_has_avx2(void) { + return _cpu_features.has_avx2; +} + +int +sodium_runtime_has_pclmul(void) { + return _cpu_features.has_pclmul; +} + +int +sodium_runtime_has_aesni(void) { + return _cpu_features.has_aesni; +} diff --git a/Example/Pods/libsodium/src/libsodium/sodium/utils.c b/Example/Pods/libsodium/src/libsodium/sodium/utils.c new file mode 100644 index 0000000..c9f11ba --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/sodium/utils.c @@ -0,0 +1,690 @@ +#ifndef __STDC_WANT_LIB_EXT1__ +# define __STDC_WANT_LIB_EXT1__ 1 +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_SYS_MMAN_H +# include +#endif + +#ifdef _WIN32 +# include +# include +#else +# include +#endif + +#include "utils.h" +#include "randombytes.h" + +#ifndef ENOSYS +# define ENOSYS ENXIO +#endif + +#if defined(_WIN32) && (!defined(WINAPI_FAMILY) || WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) +# define WINAPI_DESKTOP +#endif + +#define CANARY_SIZE 16U +#define GARBAGE_VALUE 0xd0 + +#ifndef MAP_NOCORE +# define MAP_NOCORE 0 +#endif +#if !defined(MAP_ANON) && defined(MAP_ANONYMOUS) +# define MAP_ANON MAP_ANONYMOUS +#endif +#if defined(WINAPI_DESKTOP) || (defined(MAP_ANON) && defined(HAVE_MMAP)) || defined(HAVE_POSIX_MEMALIGN) +# define HAVE_ALIGNED_MALLOC +#endif +#if defined(HAVE_MPROTECT) && !(defined(PROT_NONE) && defined(PROT_READ) && defined(PROT_WRITE)) +# undef HAVE_MPROTECT +#endif +#if defined(HAVE_ALIGNED_MALLOC) && (defined(WINAPI_DESKTOP) || defined(HAVE_MPROTECT)) +# define HAVE_PAGE_PROTECTION +#endif +#if !defined(MADV_DODUMP) && defined(MADV_CORE) +# define MADV_DODUMP MADV_CORE +# define MADV_DONTDUMP MADV_NOCORE +#endif + +static size_t page_size; +static unsigned char canary[CANARY_SIZE]; + +#ifdef HAVE_WEAK_SYMBOLS +__attribute__ ((weak)) void +_sodium_memzero_as_a_weak_symbol_to_prevent_lto(void * const pnt, const size_t len) +{ + unsigned char *pnt_ = (unsigned char *) pnt;; + size_t i = (size_t) 0U; + + while (i < len) { + pnt_[i++] = 0U; + } +} +#endif + +void +sodium_memzero(void * const pnt, const size_t len) +{ +#ifdef _WIN32 + SecureZeroMemory(pnt, len); +#elif defined(HAVE_MEMSET_S) + if (len > 0U && memset_s(pnt, (rsize_t) len, 0, (rsize_t) len) != 0) { + abort(); /* LCOV_EXCL_LINE */ + } +#elif defined(HAVE_EXPLICIT_BZERO) + explicit_bzero(pnt, len); +#elif HAVE_WEAK_SYMBOLS + _sodium_memzero_as_a_weak_symbol_to_prevent_lto(pnt, len); +#else + volatile unsigned char *volatile pnt_ = + (volatile unsigned char * volatile) pnt; + size_t i = (size_t) 0U; + + while (i < len) { + pnt_[i++] = 0U; + } +#endif +} + +#ifdef HAVE_WEAK_SYMBOLS +__attribute__ ((weak)) void +_sodium_dummy_symbol_to_prevent_memcmp_lto(const unsigned char *b1, + const unsigned char *b2, + const size_t len) +{ + (void) b1; + (void) b2; + (void) len; +} +#endif + +int +sodium_memcmp(const void * const b1_, const void * const b2_, size_t len) +{ +#ifdef HAVE_WEAK_SYMBOLS + const unsigned char *b1 = (const unsigned char *) b1_; + const unsigned char *b2 = (const unsigned char *) b2_; +#else + const volatile unsigned char *volatile b1 = + (const volatile unsigned char * volatile) b1_; + const volatile unsigned char *volatile b2 = + (const volatile unsigned char * volatile) b2_; +#endif + size_t i; + unsigned char d = (unsigned char) 0U; + +#if HAVE_WEAK_SYMBOLS + _sodium_dummy_symbol_to_prevent_memcmp_lto(b1, b2, len); +#endif + for (i = 0U; i < len; i++) { + d |= b1[i] ^ b2[i]; + } + return (1 & ((d - 1) >> 8)) - 1; +} + +#ifdef HAVE_WEAK_SYMBOLS +__attribute__ ((weak)) void +_sodium_dummy_symbol_to_prevent_compare_lto(const unsigned char *b1, + const unsigned char *b2, + const size_t len) +{ + (void) b1; + (void) b2; + (void) len; +} +#endif + +int +sodium_compare(const unsigned char *b1_, const unsigned char *b2_, size_t len) +{ +#ifdef HAVE_WEAK_SYMBOLS + const unsigned char *b1 = b1_; + const unsigned char *b2 = b2_; +#else + const volatile unsigned char * volatile b1 = + (const volatile unsigned char * volatile) b1_; + const volatile unsigned char * volatile b2 = + (const volatile unsigned char * volatile) b2_; +#endif + unsigned char gt = 0U; + unsigned char eq = 1U; + size_t i; + +#if HAVE_WEAK_SYMBOLS + _sodium_dummy_symbol_to_prevent_compare_lto(b1, b2, len); +#endif + i = len; + while (i != 0U) { + i--; + gt |= ((b2[i] - b1[i]) >> 8) & eq; + eq &= ((b2[i] ^ b1[i]) - 1) >> 8; + } + return (int) (gt + gt + eq) - 1; +} + +int +sodium_is_zero(const unsigned char *n, const size_t nlen) +{ + size_t i; + unsigned char d = 0U; + + for (i = 0U; i < nlen; i++) { + d |= n[i]; + } + return 1 & ((d - 1) >> 8); +} + +void +sodium_increment(unsigned char *n, const size_t nlen) +{ + size_t i = 0U; + uint_fast16_t c = 1U; + +#ifdef HAVE_AMD64_ASM + uint64_t t64, t64_2; + uint32_t t32; + + if (nlen == 12U) { + __asm__ __volatile__("xorq %[t64], %[t64] \n" + "xorl %[t32], %[t32] \n" + "stc \n" + "adcq %[t64], (%[out]) \n" + "adcl %[t32], 8(%[out]) \n" + : [t64] "=&r"(t64), [t32] "=&r" (t32) + : [out] "D"(n) + : "memory", "flags", "cc"); + return; + } else if (nlen == 24U) { + __asm__ __volatile__("movq $1, %[t64] \n" + "xorq %[t64_2], %[t64_2] \n" + "addq %[t64], (%[out]) \n" + "adcq %[t64_2], 8(%[out]) \n" + "adcq %[t64_2], 16(%[out]) \n" + : [t64] "=&r"(t64), [t64_2] "=&r" (t64_2) + : [out] "D"(n) + : "memory", "flags", "cc"); + return; + } else if (nlen == 8U) { + __asm__ __volatile__("incq (%[out]) \n" + : + : [out] "D"(n) + : "memory", "flags", "cc"); + return; + } +#endif + for (; i < nlen; i++) { + c += (uint_fast16_t) n[i]; + n[i] = (unsigned char) c; + c >>= 8; + } +} + +void +sodium_add(unsigned char *a, const unsigned char *b, const size_t len) +{ + size_t i = 0U; + uint_fast16_t c = 0U; + +#ifdef HAVE_AMD64_ASM + uint64_t t64, t64_2, t64_3; + uint32_t t32; + + if (len == 12U) { + __asm__ __volatile__("movq (%[in]), %[t64] \n" + "movl 8(%[in]), %[t32] \n" + "addq %[t64], (%[out]) \n" + "adcl %[t32], 8(%[out]) \n" + : [t64] "=&r"(t64), [t32] "=&r" (t32) + : [in] "S"(b), [out] "D"(a) + : "memory", "flags", "cc"); + return; + } else if (len == 24U) { + __asm__ __volatile__("movq (%[in]), %[t64] \n" + "movq 8(%[in]), %[t64_2] \n" + "movq 16(%[in]), %[t64_3] \n" + "addq %[t64], (%[out]) \n" + "adcq %[t64_2], 8(%[out]) \n" + "adcq %[t64_3], 16(%[out]) \n" + : [t64] "=&r"(t64), [t64_2] "=&r"(t64_2), [t64_3] "=&r"(t64_3) + : [in] "S"(b), [out] "D"(a) + : "memory", "flags", "cc"); + return; + } else if (len == 8U) { + __asm__ __volatile__("movq (%[in]), %[t64] \n" + "addq %[t64], (%[out]) \n" + : [t64] "=&r"(t64) + : [in] "S"(b), [out] "D"(a) + : "memory", "flags", "cc"); + return; + } +#endif + for (; i < len; i++) { + c += (uint_fast16_t) a[i] + (uint_fast16_t) b[i]; + a[i] = (unsigned char) c; + c >>= 8; + } +} + +/* Derived from original code by CodesInChaos */ +char * +sodium_bin2hex(char * const hex, const size_t hex_maxlen, + const unsigned char * const bin, const size_t bin_len) +{ + size_t i = (size_t) 0U; + unsigned int x; + int b; + int c; + + if (bin_len >= SIZE_MAX / 2 || hex_maxlen <= bin_len * 2U) { + abort(); /* LCOV_EXCL_LINE */ + } + while (i < bin_len) { + c = bin[i] & 0xf; + b = bin[i] >> 4; + x = (unsigned char) (87U + c + (((c - 10U) >> 8) & ~38U)) << 8 | + (unsigned char) (87U + b + (((b - 10U) >> 8) & ~38U)); + hex[i * 2U] = (char) x; + x >>= 8; + hex[i * 2U + 1U] = (char) x; + i++; + } + hex[i * 2U] = 0U; + + return hex; +} + +int +sodium_hex2bin(unsigned char * const bin, const size_t bin_maxlen, + const char * const hex, const size_t hex_len, + const char * const ignore, size_t * const bin_len, + const char ** const hex_end) +{ + size_t bin_pos = (size_t) 0U; + size_t hex_pos = (size_t) 0U; + int ret = 0; + unsigned char c; + unsigned char c_acc = 0U; + unsigned char c_alpha0, c_alpha; + unsigned char c_num0, c_num; + unsigned char c_val; + unsigned char state = 0U; + + while (hex_pos < hex_len) { + c = (unsigned char) hex[hex_pos]; + c_num = c ^ 48U; + c_num0 = (c_num - 10U) >> 8; + c_alpha = (c & ~32U) - 55U; + c_alpha0 = ((c_alpha - 10U) ^ (c_alpha - 16U)) >> 8; + if ((c_num0 | c_alpha0) == 0U) { + if (ignore != NULL && state == 0U && strchr(ignore, c) != NULL) { + hex_pos++; + continue; + } + break; + } + c_val = (c_num0 & c_num) | (c_alpha0 & c_alpha); + if (bin_pos >= bin_maxlen) { + ret = -1; + errno = ERANGE; + break; + } + if (state == 0U) { + c_acc = c_val * 16U; + } else { + bin[bin_pos++] = c_acc | c_val; + } + state = ~state; + hex_pos++; + } + if (state != 0U) { + hex_pos--; + } + if (hex_end != NULL) { + *hex_end = &hex[hex_pos]; + } + if (bin_len != NULL) { + *bin_len = bin_pos; + } + return ret; +} + +int +_sodium_alloc_init(void) +{ +#ifdef HAVE_ALIGNED_MALLOC +# if defined(_SC_PAGESIZE) + long page_size_ = sysconf(_SC_PAGESIZE); + if (page_size_ > 0L) { + page_size = (size_t) page_size_; + } +# elif defined(WINAPI_DESKTOP) + SYSTEM_INFO si; + GetSystemInfo(&si); + page_size = (size_t) si.dwPageSize; +# endif + if (page_size < CANARY_SIZE || page_size < sizeof(size_t)) { + abort(); /* LCOV_EXCL_LINE */ + } +#endif + randombytes_buf(canary, sizeof canary); + + return 0; +} + +int +sodium_mlock(void * const addr, const size_t len) +{ +#if defined(MADV_DONTDUMP) && defined(HAVE_MADVISE) + (void) madvise(addr, len, MADV_DONTDUMP); +#endif +#ifdef HAVE_MLOCK + return mlock(addr, len); +#elif defined(WINAPI_DESKTOP) + return -(VirtualLock(addr, len) == 0); +#else + errno = ENOSYS; + return -1; +#endif +} + +int +sodium_munlock(void * const addr, const size_t len) +{ + sodium_memzero(addr, len); +#if defined(MADV_DODUMP) && defined(HAVE_MADVISE) + (void) madvise(addr, len, MADV_DODUMP); +#endif +#ifdef HAVE_MLOCK + return munlock(addr, len); +#elif defined(WINAPI_DESKTOP) + return -(VirtualUnlock(addr, len) == 0); +#else + errno = ENOSYS; + return -1; +#endif +} + +static int +_mprotect_noaccess(void *ptr, size_t size) +{ +#ifdef HAVE_MPROTECT + return mprotect(ptr, size, PROT_NONE); +#elif defined(WINAPI_DESKTOP) + DWORD old; + return -(VirtualProtect(ptr, size, PAGE_NOACCESS, &old) == 0); +#else + errno = ENOSYS; + return -1; +#endif +} + +static int +_mprotect_readonly(void *ptr, size_t size) +{ +#ifdef HAVE_MPROTECT + return mprotect(ptr, size, PROT_READ); +#elif defined(WINAPI_DESKTOP) + DWORD old; + return -(VirtualProtect(ptr, size, PAGE_READONLY, &old) == 0); +#else + errno = ENOSYS; + return -1; +#endif +} + +static int +_mprotect_readwrite(void *ptr, size_t size) +{ +#ifdef HAVE_MPROTECT + return mprotect(ptr, size, PROT_READ | PROT_WRITE); +#elif defined(WINAPI_DESKTOP) + DWORD old; + return -(VirtualProtect(ptr, size, PAGE_READWRITE, &old) == 0); +#else + errno = ENOSYS; + return -1; +#endif +} + +#ifdef HAVE_ALIGNED_MALLOC + +__attribute__ ((noreturn)) static void +_out_of_bounds(void) +{ +# ifdef SIGSEGV + raise(SIGSEGV); +# elif defined(SIGKILL) + raise(SIGKILL); +# endif + abort(); +} /* LCOV_EXCL_LINE */ + +static inline size_t +_page_round(const size_t size) +{ + const size_t page_mask = page_size - 1U; + + return (size + page_mask) & ~page_mask; +} + +static __attribute__ ((malloc)) unsigned char * +_alloc_aligned(const size_t size) +{ + void *ptr; + +# if defined(MAP_ANON) && defined(HAVE_MMAP) + if ((ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, + MAP_ANON | MAP_PRIVATE | MAP_NOCORE, -1, 0)) == MAP_FAILED) { + ptr = NULL; /* LCOV_EXCL_LINE */ + } /* LCOV_EXCL_LINE */ +# elif defined(HAVE_POSIX_MEMALIGN) + if (posix_memalign(&ptr, page_size, size) != 0) { + ptr = NULL; /* LCOV_EXCL_LINE */ + } /* LCOV_EXCL_LINE */ +# elif defined(WINAPI_DESKTOP) + ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); +# else +# error Bug +# endif + return (unsigned char *) ptr; +} + +static void +_free_aligned(unsigned char * const ptr, const size_t size) +{ +# if defined(MAP_ANON) && defined(HAVE_MMAP) + (void) munmap(ptr, size); +# elif defined(HAVE_POSIX_MEMALIGN) + free(ptr); +# elif defined(WINAPI_DESKTOP) + VirtualFree(ptr, 0U, MEM_RELEASE); +# else +# error Bug +# endif +} + +static unsigned char * +_unprotected_ptr_from_user_ptr(void * const ptr) +{ + uintptr_t unprotected_ptr_u; + unsigned char *canary_ptr; + size_t page_mask; + + canary_ptr = ((unsigned char *) ptr) - sizeof canary; + page_mask = page_size - 1U; + unprotected_ptr_u = ((uintptr_t) canary_ptr & (uintptr_t) ~page_mask); + if (unprotected_ptr_u <= page_size * 2U) { + abort(); /* LCOV_EXCL_LINE */ + } + return (unsigned char *) unprotected_ptr_u; +} + +#endif /* HAVE_ALIGNED_MALLOC */ + +#ifndef HAVE_ALIGNED_MALLOC +static __attribute__ ((malloc)) void * +_sodium_malloc(const size_t size) +{ + return malloc(size > (size_t) 0U ? size : (size_t) 1U); +} +#else +static __attribute__ ((malloc)) void * +_sodium_malloc(const size_t size) +{ + void *user_ptr; + unsigned char *base_ptr; + unsigned char *canary_ptr; + unsigned char *unprotected_ptr; + size_t size_with_canary; + size_t total_size; + size_t unprotected_size; + + if (size >= (size_t) SIZE_MAX - page_size * 4U) { + errno = ENOMEM; + return NULL; + } + if (page_size <= sizeof canary || page_size < sizeof unprotected_size) { + abort(); /* LCOV_EXCL_LINE */ + } + size_with_canary = (sizeof canary) + size; + unprotected_size = _page_round(size_with_canary); + total_size = page_size + page_size + unprotected_size + page_size; + if ((base_ptr = _alloc_aligned(total_size)) == NULL) { + return NULL; /* LCOV_EXCL_LINE */ + } + unprotected_ptr = base_ptr + page_size * 2U; + _mprotect_noaccess(base_ptr + page_size, page_size); +# ifndef HAVE_PAGE_PROTECTION + memcpy(unprotected_ptr + unprotected_size, canary, sizeof canary); +# endif + _mprotect_noaccess(unprotected_ptr + unprotected_size, page_size); + sodium_mlock(unprotected_ptr, unprotected_size); + canary_ptr = unprotected_ptr + _page_round(size_with_canary) - + size_with_canary; + user_ptr = canary_ptr + sizeof canary; + memcpy(canary_ptr, canary, sizeof canary); + memcpy(base_ptr, &unprotected_size, sizeof unprotected_size); + _mprotect_readonly(base_ptr, page_size); + assert(_unprotected_ptr_from_user_ptr(user_ptr) == unprotected_ptr); + + return user_ptr; +} +#endif /* !HAVE_ALIGNED_MALLOC */ + +__attribute__ ((malloc)) void * +sodium_malloc(const size_t size) +{ + void *ptr; + + if ((ptr = _sodium_malloc(size)) == NULL) { + return NULL; + } + memset(ptr, (int) GARBAGE_VALUE, size); + + return ptr; +} + +__attribute__ ((malloc)) void * +sodium_allocarray(size_t count, size_t size) +{ + size_t total_size; + + if (count > (size_t) 0U && size >= (size_t) SIZE_MAX / count) { + errno = ENOMEM; + return NULL; + } + total_size = count * size; + + return sodium_malloc(total_size); +} + +#ifndef HAVE_ALIGNED_MALLOC +void +sodium_free(void *ptr) +{ + free(ptr); +} +#else +void +sodium_free(void *ptr) +{ + unsigned char *base_ptr; + unsigned char *canary_ptr; + unsigned char *unprotected_ptr; + size_t total_size; + size_t unprotected_size; + + if (ptr == NULL) { + return; + } + canary_ptr = ((unsigned char *) ptr) - sizeof canary; + unprotected_ptr = _unprotected_ptr_from_user_ptr(ptr); + base_ptr = unprotected_ptr - page_size * 2U; + memcpy(&unprotected_size, base_ptr, sizeof unprotected_size); + total_size = page_size + page_size + unprotected_size + page_size; + _mprotect_readwrite(base_ptr, total_size); + if (sodium_memcmp(canary_ptr, canary, sizeof canary) != 0) { + _out_of_bounds(); + } +# ifndef HAVE_PAGE_PROTECTION + if (sodium_memcmp(unprotected_ptr + unprotected_size, + canary, sizeof canary) != 0) { + _out_of_bounds(); + } +# endif + sodium_munlock(unprotected_ptr, unprotected_size); + _free_aligned(base_ptr, total_size); +} +#endif /* HAVE_ALIGNED_MALLOC */ + +#ifndef HAVE_PAGE_PROTECTION +static int +_sodium_mprotect(void *ptr, int (*cb)(void *ptr, size_t size)) +{ + (void) ptr; + (void) cb; + errno = ENOSYS; + return -1; +} +#else +static int +_sodium_mprotect(void *ptr, int (*cb)(void *ptr, size_t size)) +{ + unsigned char *base_ptr; + unsigned char *unprotected_ptr; + size_t unprotected_size; + + unprotected_ptr = _unprotected_ptr_from_user_ptr(ptr); + base_ptr = unprotected_ptr - page_size * 2U; + memcpy(&unprotected_size, base_ptr, sizeof unprotected_size); + + return cb(unprotected_ptr, unprotected_size); +} +#endif + +int +sodium_mprotect_noaccess(void *ptr) +{ + return _sodium_mprotect(ptr, _mprotect_noaccess); +} + +int +sodium_mprotect_readonly(void *ptr) +{ + return _sodium_mprotect(ptr, _mprotect_readonly); +} + +int +sodium_mprotect_readwrite(void *ptr) +{ + return _sodium_mprotect(ptr, _mprotect_readwrite); +} diff --git a/Example/Pods/libsodium/src/libsodium/sodium/version.c b/Example/Pods/libsodium/src/libsodium/sodium/version.c new file mode 100644 index 0000000..4083c81 --- /dev/null +++ b/Example/Pods/libsodium/src/libsodium/sodium/version.c @@ -0,0 +1,20 @@ + +#include "version.h" + +const char * +sodium_version_string(void) +{ + return SODIUM_VERSION_STRING; +} + +int +sodium_library_version_major(void) +{ + return SODIUM_LIBRARY_VERSION_MAJOR; +} + +int +sodium_library_version_minor(void) +{ + return SODIUM_LIBRARY_VERSION_MINOR; +} diff --git a/Example/Tests/Tests-Prefix.pch b/Example/Tests/Tests-Prefix.pch index 03fba25..b84cd59 100644 --- a/Example/Tests/Tests-Prefix.pch +++ b/Example/Tests/Tests-Prefix.pch @@ -4,7 +4,5 @@ @import Specta; @import Expecta; - @import FBSnapshotTestCase; - @import Expecta_Snapshots; #endif diff --git a/Example/Tests/Tests.m b/Example/Tests/Tests.m index c9ae6e7..5e8873a 100644 --- a/Example/Tests/Tests.m +++ b/Example/Tests/Tests.m @@ -2,8 +2,8 @@ // PNObjectTests.m // PNObjectTests // -// Created by Giuseppe Nucifora on 12/28/2015. -// Copyright (c) 2015 Giuseppe Nucifora. All rights reserved. +// Created by Giuseppe Nucifora on 12/28/2016. +// Copyright (c) 2016 Giuseppe Nucifora. All rights reserved. // // https://github.com/Specta/Specta diff --git a/LICENSE b/LICENSE index 5f646ce..dcf91e5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015 Giuseppe Nucifora +Copyright (c) 2016 Giuseppe Nucifora Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/PNObject.podspec b/PNObject.podspec index 89b940d..915bf8e 100644 --- a/PNObject.podspec +++ b/PNObject.podspec @@ -7,30 +7,27 @@ # Pod::Spec.new do |s| -s.name = "PNObject" -s.version = "0.9.0" -s.summary = "PNObject is a simple replica of the more complex ParseObject" + s.name = 'PNObject' + s.version = '1.0.0' + s.summary = 'PNObject is a simple replica of the more complex ParseObject' -# This description is used to generate tags and improve search results. -# * Think: What does it do? Why did you write it? What is the focus? -# * Try to keep it short, snappy and to the point. -# * Write the description between the DESC delimiters below. -# * Finally, don't worry about the indent, CocoaPods strips it! -# s.description = <<-DESC DESC -s.homepage = "https://git.giuseppenucifora.com/giuseppenucifora/PNObject" -# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" -s.license = 'MIT' -s.author = { "Giuseppe Nucifora" => "me@giuseppenucifora.com" } -s.source = { :git => "https://git.giuseppenucifora.com/giuseppenucifora/PNObject.git", :tag => s.version.to_s } -# s.social_media_url = 'https://twitter.com/' +#s.description = <<-DESC TODO: Add long description of the pod here. DESC -s.platform = :ios, '8.0' -s.requires_arc = true + s.homepage = "https://git.giuseppenucifora.com/giuseppenucifora/PNObject" + # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' + s.license = { :type => 'MIT', :file => 'LICENSE' } + s.author = { 'Giuseppe Nucifora' => 'me@giuseppenucifora.com' } + s.source = { :git => "https://git.giuseppenucifora.com/giuseppenucifora/PNObject.git", :tag => s.version.to_s } + # s.social_media_url = 'https://twitter.com/' -s.source_files = 'Pod/Classes/**/*' -# s.frameworks = 'UIKit', 'MapKit' + s.ios.deployment_target = '8.0' + s.source_files = 'PNObject/Classes/**/*' + + # s.resource_bundles = { + # 'PNObject' => ['PNObject/Assets/*.png'] + # } s.dependency 'AFNetworking' s.dependency 'PEAR-FileManager-iOS' @@ -43,10 +40,9 @@ s.dependency 'StrongestPasswordValidator' s.dependency 'FBSDKCoreKit' s.dependency 'FBSDKShareKit' s.dependency 'FBSDKLoginKit' -s.dependency 'NACrypto' +s.dependency 'NAChloride' +s.dependency 'DDDKeychainWrapper' s.dependency 'NSUserDefaults-AESEncryptor' s.dependency 'DJLocalization' s.dependency 'RZDataBinding' - - end diff --git a/Pod/Assets/.gitkeep b/PNObject/Assets/.gitkeep similarity index 100% rename from Pod/Assets/.gitkeep rename to PNObject/Assets/.gitkeep diff --git a/Pod/Classes/.gitkeep b/PNObject/Classes/.gitkeep similarity index 100% rename from Pod/Classes/.gitkeep rename to PNObject/Classes/.gitkeep diff --git a/Pod/Classes/PNClasses/PNAddress.h b/PNObject/Classes/PNClasses/PNAddress.h similarity index 100% rename from Pod/Classes/PNClasses/PNAddress.h rename to PNObject/Classes/PNClasses/PNAddress.h diff --git a/Pod/Classes/PNClasses/PNAddress.m b/PNObject/Classes/PNClasses/PNAddress.m similarity index 100% rename from Pod/Classes/PNClasses/PNAddress.m rename to PNObject/Classes/PNClasses/PNAddress.m diff --git a/Pod/Classes/PNClasses/PNInstallation.h b/PNObject/Classes/PNClasses/PNInstallation.h similarity index 100% rename from Pod/Classes/PNClasses/PNInstallation.h rename to PNObject/Classes/PNClasses/PNInstallation.h diff --git a/Pod/Classes/PNClasses/PNInstallation.m b/PNObject/Classes/PNClasses/PNInstallation.m similarity index 100% rename from Pod/Classes/PNClasses/PNInstallation.m rename to PNObject/Classes/PNClasses/PNInstallation.m diff --git a/Pod/Classes/PNClasses/PNLocation.h b/PNObject/Classes/PNClasses/PNLocation.h similarity index 100% rename from Pod/Classes/PNClasses/PNLocation.h rename to PNObject/Classes/PNClasses/PNLocation.h diff --git a/Pod/Classes/PNClasses/PNLocation.m b/PNObject/Classes/PNClasses/PNLocation.m similarity index 100% rename from Pod/Classes/PNClasses/PNLocation.m rename to PNObject/Classes/PNClasses/PNLocation.m diff --git a/Pod/Classes/PNClasses/PNObjcPassword.h b/PNObject/Classes/PNClasses/PNObjcPassword.h similarity index 100% rename from Pod/Classes/PNClasses/PNObjcPassword.h rename to PNObject/Classes/PNClasses/PNObjcPassword.h diff --git a/Pod/Classes/PNClasses/PNObjcPassword.m b/PNObject/Classes/PNClasses/PNObjcPassword.m similarity index 100% rename from Pod/Classes/PNClasses/PNObjcPassword.m rename to PNObject/Classes/PNClasses/PNObjcPassword.m diff --git a/Pod/Classes/PNClasses/PNUser.h b/PNObject/Classes/PNClasses/PNUser.h similarity index 95% rename from Pod/Classes/PNClasses/PNUser.h rename to PNObject/Classes/PNClasses/PNUser.h index acb46ec..e2b3f00 100644 --- a/Pod/Classes/PNClasses/PNUser.h +++ b/PNObject/Classes/PNClasses/PNUser.h @@ -85,6 +85,11 @@ + (void) socialLoginWithBlockSuccess:(nullable void (^)(PNUser * _Nullable responseObject))success failure:(nullable void (^)(NSError * _Nonnull error))failure; + ++ (void) socialUserFromViewController:(UIViewController* _Nullable) viewController + blockSuccess:(nullable void (^)(PNUser * _Nullable responseObject))success + failure:(nullable void (^)(NSError * _Nonnull error))failure; + /** * <#Description#> * diff --git a/Pod/Classes/PNClasses/PNUser.m b/PNObject/Classes/PNClasses/PNUser.m similarity index 81% rename from Pod/Classes/PNClasses/PNUser.m rename to PNObject/Classes/PNClasses/PNUser.m index 62a269a..a1b2684 100644 --- a/Pod/Classes/PNClasses/PNUser.m +++ b/PNObject/Classes/PNClasses/PNUser.m @@ -16,6 +16,7 @@ #import #import #import "PNObjcPassword.h" +#import "HTTPStatusCodes.h" @interface PNUser() @@ -282,7 +283,85 @@ static bool isFirstAccess = YES; } } -; ++ (void) socialUserFromViewController:(UIViewController* _Nullable) viewController + blockSuccess:(nullable void (^)(PNUser * _Nullable responseObject))success + failure:(nullable void (^)(NSError * _Nonnull error))failure { + + if (!viewController) { + viewController = [PNObjectUtilities topViewController]; + } + + if ([FBSDKAccessToken currentAccessToken]) { + //FBSDKProfile *user = [FBSDKProfile currentProfile]; + + [FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { + if (error) { + if (failure) { + failure(error); + } + } + else { + + FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"first_name, last_name, link, birthday, email, gender"}]; + + [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { + NSLogDebug(@"%@",result); + NSLogDebug(@"%@",error); + + if (error) { + if (failure) { + failure(error); + } + } + else { + [[PNObjectConfig sharedInstance] refreshTokenForUserWithFacebookID:[result objectForKey:@"id"] facebookToken:[FBSDKAccessToken currentAccessToken].tokenString withBlockSuccess:^(BOOL refreshSuccess) { + + PNUser *user = [[self class] new]; + + [user setFacebookId:[result objectForKey:@"id"]]; + [user setAuthenticated:YES]; + [user setFacebookUser:YES]; + [user saveLocally]; + [user reloadFormServer]; + + USER = user; + + if (success) { + success(user); + } + + } failure:^(NSError * _Nonnull error) { + if (failure) { + failure(error); + } + }]; + } + }]; + + } + }]; + } + else { + FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; + [login logInWithReadPermissions: @[@"public_profile",@"email",@"user_birthday"] fromViewController:viewController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { + if (error) { + NSLog(@"Process error"); + if (failure) { + failure(error); + } + } else if (result.isCancelled) { + NSLog(@"Cancelled"); + if (failure) { + NSError *error = [NSError errorWithDomain:NSLocalizedString(@"Request cancelled", @"") code:kHTTPStatusCodeMethodNotAllowed userInfo:nil]; + failure(error); + } + } else { + NSLog(@"Logged in"); + [self socialUserFromViewController:viewController blockSuccess:success failure:failure]; + } + }]; + } +} + (void) socialLoginWithBlockSuccess:(nullable void (^)(PNUser * _Nullable responseObject))success diff --git a/Pod/Classes/PNObject+PNObjectConnection.h b/PNObject/Classes/PNObject+PNObjectConnection.h similarity index 100% rename from Pod/Classes/PNObject+PNObjectConnection.h rename to PNObject/Classes/PNObject+PNObjectConnection.h diff --git a/Pod/Classes/PNObject+PNObjectConnection.m b/PNObject/Classes/PNObject+PNObjectConnection.m similarity index 100% rename from Pod/Classes/PNObject+PNObjectConnection.m rename to PNObject/Classes/PNObject+PNObjectConnection.m diff --git a/Pod/Classes/PNObject+Protected.h b/PNObject/Classes/PNObject+Protected.h similarity index 100% rename from Pod/Classes/PNObject+Protected.h rename to PNObject/Classes/PNObject+Protected.h diff --git a/Pod/Classes/PNObject+Protected.m b/PNObject/Classes/PNObject+Protected.m similarity index 100% rename from Pod/Classes/PNObject+Protected.m rename to PNObject/Classes/PNObject+Protected.m diff --git a/Pod/Classes/PNObject.h b/PNObject/Classes/PNObject.h similarity index 99% rename from Pod/Classes/PNObject.h rename to PNObject/Classes/PNObject.h index dd33515..171270a 100644 --- a/Pod/Classes/PNObject.h +++ b/PNObject/Classes/PNObject.h @@ -77,4 +77,4 @@ extern NSString* _Nonnull const PNObjectMappingSelector; @property (nonatomic, strong, nonnull) NSDictionary * JSONObjectMap; -@end \ No newline at end of file +@end diff --git a/Pod/Classes/PNObject.m b/PNObject/Classes/PNObject.m similarity index 99% rename from Pod/Classes/PNObject.m rename to PNObject/Classes/PNObject.m index 493107e..7a94178 100644 --- a/Pod/Classes/PNObject.m +++ b/PNObject/Classes/PNObject.m @@ -15,6 +15,7 @@ #import "objc/runtime.h" #import "PNObject+PNObjectConnection.m" #import +#import "HTTPStatusCodes.h" #define PNOBJECT_DIR @"PNObjects" diff --git a/Pod/Classes/PNObjectConfig.h b/PNObject/Classes/PNObjectConfig.h similarity index 100% rename from Pod/Classes/PNObjectConfig.h rename to PNObject/Classes/PNObjectConfig.h diff --git a/Pod/Classes/PNObjectConfig.m b/PNObject/Classes/PNObjectConfig.m similarity index 97% rename from Pod/Classes/PNObjectConfig.m rename to PNObject/Classes/PNObjectConfig.m index 3b746e8..709211c 100644 --- a/Pod/Classes/PNObjectConfig.m +++ b/PNObject/Classes/PNObjectConfig.m @@ -13,9 +13,10 @@ #import "NSString+Helper.h" #import "PNObject+Protected.h" #import "NSUserDefaults+AESEncryptor.h" -#import "NASecRandom.h" -#import "NAKeychain.h" #import +#import +#import +#import "HTTPStatusCodes.h" NSString * const PNObjectLocalNotificationRefreshTokenClientCredentialSuccess = @"PNObjectLocalNotificationRefreshTokenClientCredentialSuccess"; NSString * const PNObjectLocalNotificationRefreshTokenClientCredentialFail = @"PNObjectLocalNotificationRefreshTokenClientCredentialFail"; @@ -174,19 +175,18 @@ static bool isFirstAccess = YES; _headerFields = [[NSMutableDictionary alloc] init]; - NSLog(@"%@",[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey]); - if (![NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey]) { - NSError *error; + + if(![DDDKeychainWrapper dataForKey:PNObjectEncryptionKey]){ + NSData *key = [NARandom randomData:NASecretBoxKeySize]; + NSData *nonce = [NARandom randomData:NASecretBoxNonceSize]; - NSData *key = [NASecRandom randomData:32 error:&error]; - [NAKeychain addSymmetricKey:key applicationLabel:PNObjectEncryptionKey tag:nil label:nil]; - - NSData *nonce = [NASecRandom randomData:16 error:&error]; - [NAKeychain addSymmetricKey:nonce applicationLabel:PNObjectEncryptionNonce tag:nil label:nil]; + [DDDKeychainWrapper setData:key forKey:PNObjectEncryptionKey]; + [DDDKeychainWrapper setData:nonce forKey:PNObjectEncryptionNonce]; } + if (_oauthEnabled) { AFOAuthCredential *clientCredential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier]; diff --git a/Pod/Classes/PNObjectConstants.h b/PNObject/Classes/PNObjectConstants.h similarity index 95% rename from Pod/Classes/PNObjectConstants.h rename to PNObject/Classes/PNObjectConstants.h index fc70d65..5b20e56 100644 --- a/Pod/Classes/PNObjectConstants.h +++ b/PNObject/Classes/PNObjectConstants.h @@ -6,8 +6,6 @@ // // -#import "HTTPStatusCodes.h" - #ifndef PNObjectConstants_h #define PNObjectConstants_h diff --git a/Pod/Classes/PNObjectFormData.h b/PNObject/Classes/PNObjectFormData.h similarity index 100% rename from Pod/Classes/PNObjectFormData.h rename to PNObject/Classes/PNObjectFormData.h diff --git a/Pod/Classes/PNObjectFormData.m b/PNObject/Classes/PNObjectFormData.m similarity index 100% rename from Pod/Classes/PNObjectFormData.m rename to PNObject/Classes/PNObjectFormData.m diff --git a/Pod/Classes/PNObjectModel.h b/PNObject/Classes/PNObjectModel.h similarity index 100% rename from Pod/Classes/PNObjectModel.h rename to PNObject/Classes/PNObjectModel.h diff --git a/Pod/Classes/PNObjectModel.m b/PNObject/Classes/PNObjectModel.m similarity index 80% rename from Pod/Classes/PNObjectModel.m rename to PNObject/Classes/PNObjectModel.m index 9342d5b..fa68bc9 100644 --- a/Pod/Classes/PNObjectModel.m +++ b/PNObject/Classes/PNObjectModel.m @@ -10,12 +10,14 @@ #import "PNObject+Protected.h" #import "PEARFileManager.h" #import "PNObjectConstants.h" -#import +#import +#import +#import "HTTPStatusCodes.h" @interface PNObjectModel() @property (nonatomic, strong) PEARFileManager *fileManager; -@property (nonatomic, strong) NAAES *AES; +@property (nonatomic, strong) NASecretBox *secretBox; @end @implementation PNObjectModel @@ -120,7 +122,7 @@ static bool isFirstAccess = YES; [_fileManager setRootDirectory:k_ROOT_DIR_DOCUMENTS]; NSLogDebug(@"%@",[_fileManager getRootDirectoryPath]); - _AES = [[NAAES alloc] initWithAlgorithm:NAAESAlgorithm256CTR]; + _secretBox = [[NASecretBox alloc] init]; } return self; } @@ -145,11 +147,11 @@ static bool isFirstAccess = YES; @finally { if ([_fileManager checkPath:className]) { - + NSError *error = nil; - - NSData *data = [_AES decrypt:[_fileManager fetchFileDataWithPath:className] nonce:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionNonce] key:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey] error:&error]; // password:[[PNObjectConfig sharedInstance] encrypKey] error:&error]; - + + NSData *data = [_secretBox decrypt:[_fileManager fetchFileDataWithPath:className] nonce:[DDDKeychainWrapper dataForKey:PNObjectEncryptionNonce] key:[DDDKeychainWrapper dataForKey: PNObjectEncryptionKey] error:&error]; // password:[[PNObjectConfig sharedInstance] encrypKey] error:&error]; + return [NSKeyedUnarchiver unarchiveObjectWithData:data]; } else @@ -173,8 +175,8 @@ static bool isFirstAccess = YES; NSDictionary *objectDict = [(PNObject*) object reverseMapping]; - NSData *objectData = [_AES encrypt:[NSKeyedArchiver archivedDataWithRootObject:objectDict] nonce:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionNonce] key:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey] error:&error];//[RNCryptor encryptData:[NSKeyedArchiver archivedDataWithRootObject:objectDict] password:[[PNObjectConfig sharedInstance] encrypKey]]; - + NSData *objectData = [_secretBox encrypt:[NSKeyedArchiver archivedDataWithRootObject:objectDict] nonce:[DDDKeychainWrapper dataForKey: PNObjectEncryptionNonce] key:[DDDKeychainWrapper dataForKey: PNObjectEncryptionKey] error:&error];//[RNCryptor encryptData:[NSKeyedArchiver archivedDataWithRootObject:objectDict] password:[[PNObjectConfig sharedInstance] encrypKey]]; + if ([self issetPNObjectModelForObject:object]) { if ([_fileManager updateFileWithData:objectData filePath:[self objectName:object] permisson:@(0755)]) { return object; @@ -196,19 +198,19 @@ static bool isFirstAccess = YES; if ([self issetPNObjectModelForObject:object]) { //NSData * data = [_fileManager fetchFileDataWithPath:[self objectName:object]]; - - - NSData *data = [_AES decrypt:[_fileManager fetchFileDataWithPath:[self objectName:object]] nonce:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionNonce] key:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey] error:&error]; + + + NSData *data = [_secretBox decrypt:[_fileManager fetchFileDataWithPath:[self objectName:object]] nonce:[DDDKeychainWrapper dataForKey: PNObjectEncryptionNonce] key:[DDDKeychainWrapper dataForKey: PNObjectEncryptionKey] error:&error]; //[RNCryptor decryptData:[_fileManager fetchFileDataWithPath:[self objectName:object]] password:[[PNObjectConfig sharedInstance] encrypKey] error:&error]; - + NSMutableArray *objects = [[NSMutableArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:data]]; - NSDictionary *objectDict = [(PNObject*)object reverseMapping]; + NSDictionary *objectDict = [(PNObject*)object reverseMapping]; [objects addObject:objectDict]; - NSData *objectData = [_AES encrypt:[NSKeyedArchiver archivedDataWithRootObject:objects] nonce:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionNonce] key:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey] error:&error]; + NSData *objectData = [_secretBox encrypt:[NSKeyedArchiver archivedDataWithRootObject:objects] nonce:[DDDKeychainWrapper dataForKey: PNObjectEncryptionNonce] key:[DDDKeychainWrapper dataForKey:PNObjectEncryptionKey] error:&error]; //[RNCryptor encryptData:[NSKeyedArchiver archivedDataWithRootObject:objects] password:[[PNObjectConfig sharedInstance] encrypKey]]; if ([_fileManager updateFileWithData:objectData filePath:[self objectName:object] permisson:@(0755)]) { @@ -222,12 +224,12 @@ static bool isFirstAccess = YES; else { NSMutableArray *objects = [[NSMutableArray alloc] init]; - + NSDictionary *objectDict = [(PNObject*)object reverseMapping]; [objects addObject:objectDict]; - NSData *objectData = [_AES encrypt:[NSKeyedArchiver archivedDataWithRootObject:objects] nonce:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionNonce] key:[NAKeychain symmetricKeyWithApplicationLabel:PNObjectEncryptionKey] error:&error]; + NSData *objectData = [_secretBox encrypt:[NSKeyedArchiver archivedDataWithRootObject:objects] nonce:[DDDKeychainWrapper dataForKey:PNObjectEncryptionNonce] key:[DDDKeychainWrapper dataForKey:PNObjectEncryptionKey] error:&error]; //[RNCryptor encryptData:[NSKeyedArchiver archivedDataWithRootObject:objects] password:[[PNObjectConfig sharedInstance] encrypKey]]; if ([_fileManager createFileWithData:objectData filePath:[self objectName:object] permisson:@(0755)]) { @@ -249,8 +251,8 @@ static bool isFirstAccess = YES; } /*- (id _Nonnull) saveNSUSerDefautls:(id _Nonnull) object { - -}*/ + + }*/ - (BOOL) removeObjectLocally:(id _Nonnull) object { BOOL isPNObjectSubclass = [[object class] isSubclassOfClass:[PNObject class]]; diff --git a/Pod/Classes/PNObjectUtilities.h b/PNObject/Classes/PNObjectUtilities.h similarity index 100% rename from Pod/Classes/PNObjectUtilities.h rename to PNObject/Classes/PNObjectUtilities.h diff --git a/Pod/Classes/PNObjectUtilities.m b/PNObject/Classes/PNObjectUtilities.m similarity index 100% rename from Pod/Classes/PNObjectUtilities.m rename to PNObject/Classes/PNObjectUtilities.m diff --git a/Pod/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.h b/PNObject/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.h similarity index 100% rename from Pod/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.h rename to PNObject/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.h diff --git a/Pod/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.m b/PNObject/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.m similarity index 100% rename from Pod/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.m rename to PNObject/Classes/Vendors/AFJSONResponseSerializerWithData/AFJSONResponseSerializerWithData.m diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.h b/PNObject/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.h similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.h rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.h diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.m b/PNObject/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.m similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.m rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFHTTPRequestSerializer+OAuth2.m diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.h b/PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.h similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.h rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.h diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.m b/PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.m similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.m rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuth2Manager.m diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.h b/PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.h similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.h rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.h diff --git a/Pod/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.m b/PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.m similarity index 100% rename from Pod/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.m rename to PNObject/Classes/Vendors/AFOAuth2Manager/AFOAuthCredential.m diff --git a/Pod/Modulemap/module.modulemap b/Pod/Modulemap/module.modulemap deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md index 90fba49..1ef140c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![License](https://img.shields.io/cocoapods/l/PNObject.svg?style=flat)](http://cocoapods.org/pods/PNObject) [![Platform](https://img.shields.io/cocoapods/p/PNObject.svg?style=flat)](http://cocoapods.org/pods/PNObject) -## Usage +## Example To run the example project, clone the repo, and run `pod install` from the Example directory first. @@ -20,93 +20,6 @@ it, simply add the following line to your Podfile: pod "PNObject" ``` -#Usage Example - -##PNObject Subclass - -``` -//Customer.h - - -#import - -@interface Customer : PNObject - - @property (nonatomic, strong) NSString *name; - @property (nonatomic, strong) NSString *lastName; - @property (nonatomic, strong) NSString *email; - @property (nonatomic, strong) NSDate *birthDate; - @property (nonatomic, strong) PNAddress *address; - -@end -``` - -``` -#import "Customer.h" - -@implementation Customer - -+ (NSString *) objectClassName { - return @"Customer"; -} - - -+ (NSDictionary *) objcetMapping { - - NSDictionary *mapping = @{ - @"name":@"first_name", - @"surname":@"last_name", - @"email":@"email", - @"birthDate":@"birth_date", - @"address":@{ - @"key":@"address", - @"type":@"PNAddress" - }, - }; - - return mapping; -} -``` - -##Configure endpoints - - -``` -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - [PNObjectConfig initSharedInstanceForEnvironments: - @{ - EnvironmentDevelopment : @"http://domain.local/api/v1/", - EnvironmentStage : @"https://domain.stage/api/v1/", - EnvironmentProduction : @"http://domain.prod/api/v1/" - } - userSubclass:[PNUser class] - withOauth:YES - ]; - - ... -} -``` -###Set custom header -``` - [[PNObjectConfig sharedInstance] setHTTPHeaderValue:@"application/x-www-form-urlencoded" forKey:@"Content-Type"]; -``` - -###Set clients ID e client Secret for environments -``` - [[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentProduction]; - [[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentStage]; - [[PNObjectConfig sharedInstance] setClientID:@"XXXXXXXX" clientSecret:@"XXXXXXX" forEnv:EnvironmentDevelopment]; -``` - -###Enable specific Environment -``` -#ifdef DEBUG - [[PNObjectConfig sharedInstance] setEnvironment:EnvironmentStage]; -#endif -``` - - ## Author Giuseppe Nucifora, me@giuseppenucifora.com