From 66b67275204949a80479f7176e5f059a3ed03d46 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Tue, 14 Jul 2020 17:12:11 +0300 Subject: [PATCH 01/11] Avoid overflows on 32-bit systems (#677) * Avoid overflows in Secure Cell Themis Core C API works with buffer sizes expressed as "size_t" while in Go lengths are expressed as "int". Themis containers can typically contain up to 4 GB of data with internal length fields using "uint32_t". On typical 64-bit systems this does not cause overflows since uint32_t fits into both Go's int and C's size_t. However, on 32-bit system this can cause overflows. There, size_t is unsigned 32-bit value identical to uint32_t while int is 32-bit signed value, so the size may not fit into Go's size range. We can't do anything about that. On 32-bit systems the buffer sizes are typically limited to 2 GB anyway due to the way memory is distributed. However, if the overflow happens, Go will panic when trying to allocate (effectively) negatively-sized arrays. We should return an error instead. Add size checks before casting "C.size_t" into "int" and return an error if the size will overflow. Do this for all API, both new and old. Normally, Themis is not used to encrypt real 2+ GB messages, but this condition can easily happen if the data has been corrupted where the length field is stored. We don't want this to be a source of DOS attacks. * Reenable tests for corrupted data The panic condition has been originally detected by a couple of tests for Secure Cell's Token Protect mode which has the stars properly aligned for the issue to be visible. Now that the issue is fixed, we can enable these tests for 32-bit machines again. * Avoid overflows in Secure Compartor * Avoid overflows in key generation * Avoid overflows in Secure Message * Avoid overflows in Secure Session Just like Secure Cell, add more checks to other cryptosystems as well. Unfortunately, we have to duplicate the size check utility. GoThemis does not have a common utility module, and even if it did, it would not work due to the way CGo is implemented ("C.size_t" is a distinct type in different modules). (cherry picked from commit 8b83a714697905e110ab4eb5e23c18015d0a273d) --- CHANGELOG.md | 6 ++++++ gothemis/cell/cell.go | 17 ++++++++++++++++- gothemis/cell/context_imprint.go | 6 ++++++ gothemis/cell/seal.go | 6 ++++++ gothemis/cell/seal_pw.go | 6 ++++++ gothemis/cell/token_protect.go | 6 ++++++ gothemis/cell/token_protect_test.go | 14 -------------- gothemis/compare/compare.go | 17 ++++++++++++++++- gothemis/keys/keypair.go | 14 +++++++++++++- gothemis/keys/symmetric.go | 3 +++ gothemis/message/message.go | 14 +++++++++++++- gothemis/session/session.go | 28 ++++++++++++++++++++++++++-- 12 files changed, 117 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c09d1279b..83d5c7219 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ Changes that are currently in development and have not been released yet. +_Code:_ + +- **Go** + + - Fixed panics on 32-bit systems when processing corrupted data ([#677](https://github.com/cossacklabs/themis/pull/677)). + ## [0.13.0](https://github.com/cossacklabs/themis/releases/tag/0.13.0), July 8th 2020 **TL;DR:** diff --git a/gothemis/cell/cell.go b/gothemis/cell/cell.go index 0fd14b3b5..689c58d15 100644 --- a/gothemis/cell/cell.go +++ b/gothemis/cell/cell.go @@ -173,8 +173,9 @@ static bool decrypt(const void *key, size_t key_len, const void *prot, size_t pr */ import "C" import ( - "github.com/cossacklabs/themis/gothemis/errors" "unsafe" + + "github.com/cossacklabs/themis/gothemis/errors" ) // Errors returned by Secure Cell. @@ -185,6 +186,7 @@ var ( ErrMissingMessage = errors.NewWithCode(errors.InvalidParameter, "empty message for Secure Cell") ErrMissingToken = errors.NewWithCode(errors.InvalidParameter, "authentication token is required in Token Protect mode") ErrMissingContext = errors.NewWithCode(errors.InvalidParameter, "associated context is required in Context Imprint mode") + ErrOverflow = errors.NewWithCode(errors.NoMemory, "Secure Cell cannot allocate enough memory") ) // Secure Cell operation mode. @@ -225,6 +227,13 @@ func missing(data []byte) bool { return data == nil || len(data) == 0 } +// C returns sizes as size_t but Go expresses buffer lengths as int. +// Make sure that all sizes are representable in Go and there is no overflows. +func sizeOverflow(n C.size_t) bool { + const maxInt = int(^uint(0) >> 1) + return n > C.size_t(maxInt) +} + // Protect encrypts or signs data with optional user context (depending on the Cell mode). func (sc *SecureCell) Protect(data []byte, context []byte) ([]byte, []byte, error) { if (sc.mode < ModeSeal) || (sc.mode > ModeContextImprint) { @@ -266,6 +275,9 @@ func (sc *SecureCell) Protect(data []byte, context []byte) ([]byte, []byte, erro &addLen)) { return nil, nil, errors.New("Failed to get output size") } + if sizeOverflow(encLen) || sizeOverflow(addLen) { + return nil, nil, ErrOverflow + } var addData []byte var add unsafe.Pointer @@ -345,6 +357,9 @@ func (sc *SecureCell) Unprotect(protectedData []byte, additionalData []byte, con &decLen)) { return nil, errors.New("Failed to get output size") } + if sizeOverflow(decLen) { + return nil, ErrOverflow + } decData := make([]byte, decLen, decLen) if !bool(C.decrypt(unsafe.Pointer(&sc.key[0]), diff --git a/gothemis/cell/context_imprint.go b/gothemis/cell/context_imprint.go index 04f7ef76a..7fea1c21c 100644 --- a/gothemis/cell/context_imprint.go +++ b/gothemis/cell/context_imprint.go @@ -138,6 +138,9 @@ func encryptContextImprint(symmetricKey, plaintext, userContext, ciphertext []by bytesData(ciphertext), &ciphertextLength, ) + if sizeOverflow(ciphertextLength) { + return 0, errors.NoMemory + } return int(ciphertextLength), errors.ThemisErrorCode(err) } @@ -153,5 +156,8 @@ func decryptContextImprint(symmetricKey, ciphertext, userContext, plaintext []by bytesData(plaintext), &plaintextLength, ) + if sizeOverflow(plaintextLength) { + return 0, errors.NoMemory + } return int(plaintextLength), errors.ThemisErrorCode(err) } diff --git a/gothemis/cell/seal.go b/gothemis/cell/seal.go index 39485915a..c2836ac7a 100644 --- a/gothemis/cell/seal.go +++ b/gothemis/cell/seal.go @@ -137,6 +137,9 @@ func encryptSeal(symmetricKey, plaintext, userContext, ciphertext []byte) (int, bytesData(ciphertext), &ciphertextLength, ) + if sizeOverflow(ciphertextLength) { + return 0, errors.NoMemory + } return int(ciphertextLength), errors.ThemisErrorCode(err) } @@ -152,5 +155,8 @@ func decryptSeal(symmetricKey, ciphertext, userContext, plaintext []byte) (int, bytesData(plaintext), &plaintextLength, ) + if sizeOverflow(plaintextLength) { + return 0, errors.NoMemory + } return int(plaintextLength), errors.ThemisErrorCode(err) } diff --git a/gothemis/cell/seal_pw.go b/gothemis/cell/seal_pw.go index 8fc6dbe9d..b0d24d8d1 100644 --- a/gothemis/cell/seal_pw.go +++ b/gothemis/cell/seal_pw.go @@ -126,6 +126,9 @@ func encryptSealWithPassphrase(passphrase string, plaintext, userContext, cipher bytesData(ciphertext), &ciphertextLength, ) + if sizeOverflow(ciphertextLength) { + return 0, errors.NoMemory + } return int(ciphertextLength), errors.ThemisErrorCode(err) } @@ -141,5 +144,8 @@ func decryptSealWithPassphrase(passphrase string, ciphertext, userContext, plain bytesData(plaintext), &plaintextLength, ) + if sizeOverflow(plaintextLength) { + return 0, errors.NoMemory + } return int(plaintextLength), errors.ThemisErrorCode(err) } diff --git a/gothemis/cell/token_protect.go b/gothemis/cell/token_protect.go index 7347eee56..88a9170a4 100644 --- a/gothemis/cell/token_protect.go +++ b/gothemis/cell/token_protect.go @@ -148,6 +148,9 @@ func encryptTokenProtect(symmetricKey, plaintext, userContext, ciphertext, authT bytesData(ciphertext), &ciphertextLength, ) + if sizeOverflow(ciphertextLength) || sizeOverflow(authTokenLength) { + return 0, 0, errors.NoMemory + } return int(ciphertextLength), int(authTokenLength), errors.ThemisErrorCode(err) } @@ -165,5 +168,8 @@ func decryptTokenProtect(symmetricKey, ciphertext, authToken, userContext, plain bytesData(plaintext), &plaintextLength, ) + if sizeOverflow(plaintextLength) { + return 0, errors.NoMemory + } return int(plaintextLength), errors.ThemisErrorCode(err) } diff --git a/gothemis/cell/token_protect_test.go b/gothemis/cell/token_protect_test.go index 9b49d36be..5d77c19c6 100644 --- a/gothemis/cell/token_protect_test.go +++ b/gothemis/cell/token_protect_test.go @@ -359,13 +359,6 @@ func TestTokenProtectDetectExtendedData(t *testing.T) { } func TestTokenProtectDetectCorruptedToken(t *testing.T) { - // FIXME(ilammy, 2020-05-25): avoid capacity allocation panics (T1648) - // This tests panics on 32-bit architectures due to "int" overflow. - // The implementation needs to check for "int" range when casting "C.size_t". - if uint64(^uint(0)) == uint64(^uint32(0)) { - t.Skip("avoid panic on 32-bit machines") - } - key, err := keys.NewSymmetricKey() if err != nil { t.Fatal("cannot generate symmetric key", err) @@ -449,13 +442,6 @@ func TestTokenProtectDetectExtendedToken(t *testing.T) { } func TestTokenProtectSwapDataAndToken(t *testing.T) { - // FIXME(ilammy, 2020-05-25): avoid capacity allocation panics (T1648) - // This tests panics on 32-bit architectures due to "int" overflow. - // The implementation needs to check for "int" range when casting "C.size_t". - if uint64(^uint(0)) == uint64(^uint32(0)) { - t.Skip("avoid panic on 32-bit machines") - } - key, err := keys.NewSymmetricKey() if err != nil { t.Fatal("cannot generate symmetric key", err) diff --git a/gothemis/compare/compare.go b/gothemis/compare/compare.go index 9516931e4..bfd74a053 100644 --- a/gothemis/compare/compare.go +++ b/gothemis/compare/compare.go @@ -53,9 +53,10 @@ static int compare_result(void *ctx) */ import "C" import ( - "github.com/cossacklabs/themis/gothemis/errors" "runtime" "unsafe" + + "github.com/cossacklabs/themis/gothemis/errors" ) // Secure comparison result. @@ -78,6 +79,7 @@ const ( var ( ErrMissingSecret = errors.NewWithCode(errors.InvalidParameter, "empty secret for Secure Comparator") ErrMissingData = errors.NewWithCode(errors.InvalidParameter, "empty comparison message for Secure Comparator") + ErrOverflow = errors.NewWithCode(errors.NoMemory, "Secure Comparator cannot allocate enough memory") ) // SecureCompare is an interactive protocol for two parties that compares whether @@ -90,6 +92,13 @@ func finalize(sc *SecureCompare) { sc.Close() } +// C returns sizes as size_t but Go expresses buffer lengths as int. +// Make sure that all sizes are representable in Go and there is no overflows. +func sizeOverflow(n C.size_t) bool { + const maxInt = int(^uint(0) >> 1) + return n > C.size_t(maxInt) +} + // New prepares a new secure comparison. func New() (*SecureCompare, error) { ctx := C.compare_init() @@ -135,6 +144,9 @@ func (sc *SecureCompare) Begin() ([]byte, error) { if !bool(C.compare_begin_size(sc.ctx, &outLen)) { return nil, errors.New("Failed to get output size") } + if sizeOverflow(outLen) { + return nil, ErrOverflow + } out := make([]byte, outLen) @@ -157,6 +169,9 @@ func (sc *SecureCompare) Proceed(data []byte) ([]byte, error) { if !bool(C.compare_proceed_size(sc.ctx, unsafe.Pointer(&data[0]), C.size_t(len(data)), &outLen)) { return nil, errors.New("Failed to get output size") } + if sizeOverflow(outLen) { + return nil, ErrOverflow + } if 0 == outLen { outLen++ diff --git a/gothemis/keys/keypair.go b/gothemis/keys/keypair.go index 798cd652a..ff5abafed 100644 --- a/gothemis/keys/keypair.go +++ b/gothemis/keys/keypair.go @@ -54,8 +54,9 @@ static bool gen_keys(int key_type, void *private, size_t priv_len, void *public, import "C" import ( - "github.com/cossacklabs/themis/gothemis/errors" "unsafe" + + "github.com/cossacklabs/themis/gothemis/errors" ) // Type of Themis key. @@ -75,6 +76,7 @@ const ( // Errors returned by key generation. var ( ErrInvalidType = errors.NewWithCode(errors.InvalidParameter, "invalid key type specified") + ErrOverflow = errors.NewWithCode(errors.NoMemory, "key generator cannot allocate enough memory") ) // PrivateKey stores a ECDSA or RSA private key. @@ -103,6 +105,9 @@ func New(keytype int) (*Keypair, error) { if !bool(C.get_key_size(C.int(keytype), &privLen, &pubLen)) { return nil, errors.New("Failed to get needed key sizes") } + if sizeOverflow(privLen) || sizeOverflow(pubLen) { + return nil, ErrOverflow + } priv := make([]byte, int(privLen), int(privLen)) pub := make([]byte, int(pubLen), int(pubLen)) @@ -116,3 +121,10 @@ func New(keytype int) (*Keypair, error) { Public: &PublicKey{Value: pub}, }, nil } + +// C returns sizes as size_t but Go expresses buffer lengths as int. +// Make sure that all sizes are representable in Go and there is no overflows. +func sizeOverflow(n C.size_t) bool { + const maxInt = int(^uint(0) >> 1) + return n > C.size_t(maxInt) +} diff --git a/gothemis/keys/symmetric.go b/gothemis/keys/symmetric.go index 5def7457a..cd891aba1 100644 --- a/gothemis/keys/symmetric.go +++ b/gothemis/keys/symmetric.go @@ -36,6 +36,9 @@ func NewSymmetricKey() (*SymmetricKey, error) { if !bool(C.get_sym_key_size(&len)) { return nil, errors.New("Failed to get symmetric key size") } + if sizeOverflow(len) { + return nil, ErrOverflow + } key := make([]byte, int(len), int(len)) if !bool(C.gen_sym_key(unsafe.Pointer(&key[0]), len)) { diff --git a/gothemis/message/message.go b/gothemis/message/message.go index 67d2ee4dc..d6bfc2d8a 100644 --- a/gothemis/message/message.go +++ b/gothemis/message/message.go @@ -63,9 +63,10 @@ static bool process(const void *priv, size_t priv_len, const void *public, size_ */ import "C" import ( + "unsafe" + "github.com/cossacklabs/themis/gothemis/errors" "github.com/cossacklabs/themis/gothemis/keys" - "unsafe" ) const ( @@ -80,6 +81,7 @@ var ( ErrMissingMessage = errors.NewWithCode(errors.InvalidParameter, "empty message for Secure Cell") ErrMissingPublicKey = errors.NewWithCode(errors.InvalidParameter, "empty peer public key for Secure Message") ErrMissingPrivateKey = errors.NewWithCode(errors.InvalidParameter, "empty private key for Secure Message") + ErrOverflow = errors.NewWithCode(errors.NoMemory, "Secure Message cannot allocate enough memory") ) // SecureMessage provides a sequence-independent, stateless, contextless messaging system. @@ -95,6 +97,13 @@ func New(private *keys.PrivateKey, peerPublic *keys.PublicKey) *SecureMessage { return &SecureMessage{private, peerPublic} } +// C returns sizes as size_t but Go expresses buffer lengths as int. +// Make sure that all sizes are representable in Go and there is no overflows. +func sizeOverflow(n C.size_t) bool { + const maxInt = int(^uint(0) >> 1) + return n > C.size_t(maxInt) +} + func messageProcess(private *keys.PrivateKey, peerPublic *keys.PublicKey, message []byte, mode int) ([]byte, error) { if nil == message || 0 == len(message) { return nil, ErrMissingMessage @@ -128,6 +137,9 @@ func messageProcess(private *keys.PrivateKey, peerPublic *keys.PublicKey, messag &outputLength)) { return nil, errors.New("Failed to get output size") } + if sizeOverflow(outputLength) { + return nil, ErrOverflow + } output := make([]byte, int(outputLength), int(outputLength)) if !bool(C.process(priv, diff --git a/gothemis/session/session.go b/gothemis/session/session.go index 8097c72e3..0f4e0f94a 100644 --- a/gothemis/session/session.go +++ b/gothemis/session/session.go @@ -11,11 +11,12 @@ extern const int GOTHEMIS_SSESSION_SEND_OUTPUT_TO_PEER; */ import "C" import ( - "github.com/cossacklabs/themis/gothemis/errors" - "github.com/cossacklabs/themis/gothemis/keys" "reflect" "runtime" "unsafe" + + "github.com/cossacklabs/themis/gothemis/errors" + "github.com/cossacklabs/themis/gothemis/keys" ) // Secure Session states. @@ -39,6 +40,7 @@ var ( ErrMissingClientID = errors.NewWithCode(errors.InvalidParameter, "empty client ID for Secure Session") ErrMissingPrivateKey = errors.NewWithCode(errors.InvalidParameter, "empty client private key for Secure Session") ErrMissingMessage = errors.NewWithCode(errors.InvalidParameter, "empty message for Secure Session") + ErrOverflow = errors.NewWithCode(errors.NoMemory, "Secure Session cannot allocate enough memory") ) // SessionCallbacks implements a delegate for SecureSession. @@ -60,6 +62,13 @@ func finalize(ss *SecureSession) { ss.Close() } +// C returns sizes as size_t but Go expresses buffer lengths as int. +// Make sure that all sizes are representable in Go and there is no overflows. +func sizeOverflow(n C.size_t) bool { + const maxInt = int(^uint(0) >> 1) + return n > C.size_t(maxInt) +} + // New makes a new Secure Session with provided peer ID, private key, and callbacks. func New(id []byte, signKey *keys.PrivateKey, callbacks SessionCallbacks) (*SecureSession, error) { ss := &SecureSession{clb: callbacks} @@ -102,6 +111,9 @@ func (ss *SecureSession) Close() error { //export onPublicKeyForId func onPublicKeyForId(ssCtx unsafe.Pointer, idPtr unsafe.Pointer, idLen C.size_t, keyPtr unsafe.Pointer, keyLen C.size_t) int { var ss *SecureSession + if sizeOverflow(idLen) { + return int(C.THEMIS_NO_MEMORY) + } id := C.GoBytes(idPtr, C.int(idLen)) ss = (*SecureSession)(unsafe.Pointer(uintptr(ssCtx) - unsafe.Offsetof(ss.ctx))) @@ -140,6 +152,9 @@ func (ss *SecureSession) ConnectRequest() ([]byte, error) { &reqLen)) { return nil, errors.New("Failed to get request size") } + if sizeOverflow(reqLen) { + return nil, ErrOverflow + } req := make([]byte, reqLen) if !bool(C.session_connect(&ss.ctx, @@ -165,6 +180,9 @@ func (ss *SecureSession) Wrap(data []byte) ([]byte, error) { &outLen)) { return nil, errors.New("Failed to get wrapped size") } + if sizeOverflow(outLen) { + return nil, ErrOverflow + } out := make([]byte, outLen) if !bool(C.session_wrap(&ss.ctx, @@ -199,6 +217,9 @@ func (ss *SecureSession) Unwrap(data []byte) ([]byte, bool, error) { case (C.GOTHEMIS_BUFFER_TOO_SMALL != res): return nil, false, errors.New("Failed to get unwrapped size") } + if sizeOverflow(outLen) { + return nil, false, ErrOverflow + } out := make([]byte, outLen) @@ -232,6 +253,9 @@ func (ss *SecureSession) GetRemoteID() ([]byte, error) { if outLength == 0 { return nil, errors.NewCallbackError("Incorrect remote id length (0)") } + if sizeOverflow(outLength) { + return nil, ErrOverflow + } out := make([]byte, int(outLength)) if C.secure_session_get_remote_id(ss.ctx.session, (*C.uint8_t)(&out[0]), &outLength) != C.THEMIS_SUCCESS { return nil, errors.NewCallbackError("Failed to get session remote id") From bbf1456b04c47c7f2076e87c1d7ef93f99a4dd46 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Thu, 16 Jul 2020 17:17:08 +0300 Subject: [PATCH 02/11] Publish source and Javadoc JARs (#679) Add tasks and artifacts for publishing JARs with source code and generated Javadocs. These are required for admission to Bintray's JCenter -- well-known public repository of open-source libraries. With this, the users will be able to import Themis without adding Cossack Labs repository. It's highly likely that they already have JCenter added for other dependencies: repositories { jcenter() } Since it's the same package, the dependency is specified as before: dependencies { implementation 'com.cossacklabs.com:themis:0.13.0' } Many Bothans died to bring us this information. No, really, Gradle documentation on this is less than stellar, and Groovy does not make it make it easier. *sigh* Android ecosystem vOv (cherry picked from commit 23444841c7020d7f97d86358750d19f8a1dbd10d) --- CHANGELOG.md | 8 +++++ src/wrappers/themis/android/build.gradle | 43 ++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83d5c7219..d390561f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,18 @@ Changes that are currently in development and have not been released yet. _Code:_ +- **Android** + + - AndroidThemis is now available on JCenter ([#679](https://github.com/cossacklabs/themis/pull/679)). + - **Go** - Fixed panics on 32-bit systems when processing corrupted data ([#677](https://github.com/cossacklabs/themis/pull/677)). +_Infrastructure:_ + +- AndroidThemis is now available on JCenter ([#679](https://github.com/cossacklabs/themis/pull/679)). + ## [0.13.0](https://github.com/cossacklabs/themis/releases/tag/0.13.0), July 8th 2020 **TL;DR:** diff --git a/src/wrappers/themis/android/build.gradle b/src/wrappers/themis/android/build.gradle index ac71611f8..5b9a29cc6 100644 --- a/src/wrappers/themis/android/build.gradle +++ b/src/wrappers/themis/android/build.gradle @@ -72,8 +72,15 @@ android { // publishing and bitray upload tasks should not run for ':boringssl' project tasks.whenTaskAdded { task -> - println "executing $task ..." - if (task.name != 'bintrayUpload' && task.name != 'publishProductionPublicationToMavenLocal' && task.name != 'generatePomFileForProductionPublication') { + def excludeBoringSSL = [ + 'bintrayUpload', + 'publishProductionPublicationToMavenLocal', + 'generatePomFileForProductionPublication', + 'generateSourceJar', + 'generateJavadoc', + 'generateJavadocJar', + ] + if (!excludeBoringSSL.contains(task.name)) { task.dependsOn(':boringssl:' + task.name) } } @@ -94,6 +101,36 @@ android { } } +// Publishing on JCenter requires packages with Java source code and Javadocs. +// Note that "archiveClassifier" values are important for JCenter. + +task generateSourceJar(type: Jar) { + description = 'Assembles a JAR with Java source code' + archiveClassifier = 'sources' + from android.sourceSets.main.java.srcDirs +} + +task generateJavadoc(type: Javadoc) { + description = 'Generates Javadocs from the source code' + source = android.sourceSets.main.java.srcDirs + title = 'Themis API Reference' + // Javadoc chokes on non-Java files so exclude non-sources from the source dir. + excludes = ['build', 'build.gradle'] + // Add Android core system and all dependencies to classpath so that Javadoc + // finds their classes and links to them correctly. + classpath += files(android.bootClasspath) + android.libraryVariants.all { variant -> + classpath += variant.javaCompile.classpath + } +} + +task generateJavadocJar(type: Jar) { + description = 'Assembles a JAR with Javadocs' + archiveClassifier = 'javadoc' + from generateJavadoc.destinationDir + dependsOn 'generateJavadoc' +} + // distribution apply plugin: 'com.jfrog.bintray' @@ -103,6 +140,8 @@ publishing { publications { Production(MavenPublication) { artifact("build/outputs/aar/android.aar") + artifact generateSourceJar + artifact generateJavadocJar groupId 'com.cossacklabs.com' artifactId 'themis' version androidThemisVersion From d9bc1b3b5e83bc92a8c21247ccf466c94c5c3a5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2020 14:33:24 +0300 Subject: [PATCH 03/11] Bump lodash from 4.17.15 to 4.17.19 (#680) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] (cherry picked from commit 959e6d4d8d4d7b320fdeb080c329a7b832a696c3) --- CHANGELOG.md | 8 ++++++++ src/wrappers/themis/jsthemis/package-lock.json | 6 +++--- src/wrappers/themis/wasm/package-lock.json | 6 +++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d390561f9..6dcb3d35d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,14 @@ _Code:_ - Fixed panics on 32-bit systems when processing corrupted data ([#677](https://github.com/cossacklabs/themis/pull/677)). +- **Node.js** + + - Minor dependency updates making the world a better place ([#680](https://github.com/cossacklabs/themis/pull/680)). + +- **WebAssembly** + + - Minor dependency updates making the world a better place ([#680](https://github.com/cossacklabs/themis/pull/680)). + _Infrastructure:_ - AndroidThemis is now available on JCenter ([#679](https://github.com/cossacklabs/themis/pull/679)). diff --git a/src/wrappers/themis/jsthemis/package-lock.json b/src/wrappers/themis/jsthemis/package-lock.json index f59bcacc7..fb172bbdc 100644 --- a/src/wrappers/themis/jsthemis/package-lock.json +++ b/src/wrappers/themis/jsthemis/package-lock.json @@ -486,9 +486,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "log-symbols": { diff --git a/src/wrappers/themis/wasm/package-lock.json b/src/wrappers/themis/wasm/package-lock.json index 7c7338b2e..60d373b00 100644 --- a/src/wrappers/themis/wasm/package-lock.json +++ b/src/wrappers/themis/wasm/package-lock.json @@ -491,9 +491,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "log-symbols": { From 5667efaebddc9eb2e80cffe88a8137b18321031f Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Tue, 28 Jul 2020 16:34:42 +0300 Subject: [PATCH 04/11] Add missing OpenSSL includes (#684) * Add missing OpenSSL includes Add those files use BIGNUM API of OpenSSL but do not include relevant headers. Due to miraculous coincidence, this seems to somehow work for the OpenSSL versions we use, but only because either existing headers include this "bn.h" transitively, or because the compiler generates code that kinda works without function prototype being available. However, curiously enough, this breaks when building Themis for macOS with recent OpenSSL 1.1.1g but not with OpenSSL 1.0.2, or OpenSSL 1.1.1g on Linux. The issue manifests itself as missing "_BN_num_bytes" symbol. Indeed, there is no such symbol because this function is implemented as a macro via BN_num_bits(). However, because of the missing header, the compiler -- being C compiler -- decides that this must be a function "int BN_num_bytes()" and compiles it like a function call. Add the missing includes to define the necessary macros and prototype, resolving the issue with OpenSSL 1.1.1g. It must have stopped including transitively, revealing this issue. This is why you should always include and import stuff you use directly, not rely on transitive imports. P.S. A mystery for dessert: BoringSSL backend *includes* . * Treat warnings as errors in Xcode In order to prevent more silly issues in the future, tell Xcode to tell the compiler to treat all warnings as errors. That way the build should fail earlier, and the developers will be less likely to ignore warnings. * Fix implicit cast warnings Now that we treat warnings as errors, let's fix them. themis_auth_sym_kdf_context() accepts message length as "uint32_t" while it's callers use "size_t" to avoid early casts and temporary values. However, the message length has been checked earlier and will fit into "uint32_t", we can safely perform explicit casts here. * Suppress documentation warnings (temporarily) Some OpenSSL headers packaged with Marcin's OpenSSL that we use have borked documentation comments. This has been pointed out several times [1][2], but Marcin concluded this needs to be fixed upstream. [1]: https://github.com/krzyzanowskim/OpenSSL/pull/79 [2]: https://github.com/krzyzanowskim/OpenSSL/pull/41 Meanwhile, having those broken headers breaks the build if the warnings are treated as errors. Since we can't upgrade Marcin's OpenSSL due to other reasons (bitcode support), we have no hope to resolve this issue. For the time being, suppress the warnings about documentation comments. * Fix more implicit cast warnings There are more warnings actual only for 32-bit platforms. Some iOS targets are 32-bit, we should avoid warnings there as well. The themis_scell_auth_token_key_size() and themis_scell_auth_token_passphrase_size() functions compute the size of the autentication token from the header. They return uint64_t values to avoid overflows when working with corrupted input data on the decryption code path. However, they are also used on the encryption path where corruption is not possible. Normally, authentication tokens are small, they most definitely fit into uint32_t, and this is the type used in Secure Cell data format internally. It is not safe to assign arbitrary uint64_t to size_t on 32-bit platforms. However, in this case we are sure that auth tokenn length fits into uint32_t, which can be safely assigned to size_t. Note that we cast into uint32_t, not size_t. This is to still cause a warning on platforms with 16-bit size_t (not likely, but cleaner). (cherry picked from commit 1ca96de89b66391114f615658fbc4819aa248b9b) --- CHANGELOG.md | 4 ++++ ObjCThemis.xcodeproj/project.pbxproj | 16 +++++++++++++ src/soter/openssl/soter_ec_key.c | 1 + src/soter/openssl/soter_rsa_common.c | 1 + src/soter/openssl/soter_rsa_key.c | 1 + src/soter/openssl/soter_rsa_key_pair_gen.c | 1 + src/themis/secure_cell_seal_passphrase.c | 26 +++++++++++++++++----- src/themis/sym_enc_message.c | 10 ++++++--- 8 files changed, 52 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dcb3d35d..2f6b90b7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ Changes that are currently in development and have not been released yet. _Code:_ +- **Core** + + - Improved compatibility with OpenSSL 1.1.1 ([#684](https://github.com/cossacklabs/themis/pull/684)). + - **Android** - AndroidThemis is now available on JCenter ([#679](https://github.com/cossacklabs/themis/pull/679)). diff --git a/ObjCThemis.xcodeproj/project.pbxproj b/ObjCThemis.xcodeproj/project.pbxproj index c87103ba9..c437e07fb 100644 --- a/ObjCThemis.xcodeproj/project.pbxproj +++ b/ObjCThemis.xcodeproj/project.pbxproj @@ -1481,6 +1481,9 @@ "$(PROJECT_DIR)/Carthage/Build/Mac", ); FRAMEWORK_VERSION = A; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1498,6 +1501,7 @@ PRODUCT_NAME = objcthemis; SDKROOT = macosx; SKIP_INSTALL = YES; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Debug; }; @@ -1518,6 +1522,9 @@ "$(PROJECT_DIR)/Carthage/Build/Mac", ); FRAMEWORK_VERSION = A; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1535,6 +1542,7 @@ PRODUCT_NAME = objcthemis; SDKROOT = macosx; SKIP_INSTALL = YES; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Release; }; @@ -1553,6 +1561,9 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1575,6 +1586,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Debug; }; @@ -1593,6 +1605,9 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1615,6 +1630,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Release; }; diff --git a/src/soter/openssl/soter_ec_key.c b/src/soter/openssl/soter_ec_key.c index e13f6bb57..060e27647 100644 --- a/src/soter/openssl/soter_ec_key.c +++ b/src/soter/openssl/soter_ec_key.c @@ -18,6 +18,7 @@ #include +#include #include #include diff --git a/src/soter/openssl/soter_rsa_common.c b/src/soter/openssl/soter_rsa_common.c index 9a1331d9b..b92576315 100644 --- a/src/soter/openssl/soter_rsa_common.c +++ b/src/soter/openssl/soter_rsa_common.c @@ -16,6 +16,7 @@ #include "soter/openssl/soter_rsa_common.h" +#include #include #include diff --git a/src/soter/openssl/soter_rsa_key.c b/src/soter/openssl/soter_rsa_key.c index 918206507..2c2128f25 100644 --- a/src/soter/openssl/soter_rsa_key.c +++ b/src/soter/openssl/soter_rsa_key.c @@ -18,6 +18,7 @@ #include +#include #include #include diff --git a/src/soter/openssl/soter_rsa_key_pair_gen.c b/src/soter/openssl/soter_rsa_key_pair_gen.c index d76ec036d..a53ddb227 100644 --- a/src/soter/openssl/soter_rsa_key_pair_gen.c +++ b/src/soter/openssl/soter_rsa_key_pair_gen.c @@ -18,6 +18,7 @@ #include +#include #include #include diff --git a/src/themis/secure_cell_seal_passphrase.c b/src/themis/secure_cell_seal_passphrase.c index 105493367..dc0172078 100644 --- a/src/themis/secure_cell_seal_passphrase.c +++ b/src/themis/secure_cell_seal_passphrase.c @@ -99,7 +99,13 @@ static themis_status_t themis_auth_sym_derive_encryption_key_pbkdf2( goto error; } - res = themis_auth_sym_kdf_context(message_length, soter_kdf_context, &soter_kdf_context_length); + /* + * themis_auth_sym_encrypt_message_with_passphrase_() makes sure that + * message_length fits into uint32_t. + */ + res = themis_auth_sym_kdf_context((uint32_t)message_length, + soter_kdf_context, + &soter_kdf_context_length); if (res != THEMIS_SUCCESS) { goto error; } @@ -181,6 +187,7 @@ themis_status_t themis_auth_sym_encrypt_message_with_passphrase_(const uint8_t* uint8_t auth_tag[THEMIS_AUTH_SYM_AUTH_TAG_LENGTH] = {0}; uint8_t derived_key[THEMIS_AUTH_SYM_KEY_LENGTH / 8] = {0}; size_t derived_key_length = sizeof(derived_key); + size_t auth_token_real_length = 0; struct themis_scell_auth_token_passphrase hdr; /* Message length is currently stored as 32-bit integer, sorry */ @@ -233,8 +240,11 @@ themis_status_t themis_auth_sym_encrypt_message_with_passphrase_(const uint8_t* goto error; } - if (*auth_token_length < themis_scell_auth_token_passphrase_size(&hdr)) { - *auth_token_length = themis_scell_auth_token_passphrase_size(&hdr); + /* In valid Secure Cells auth token length always fits into uint32_t. */ + auth_token_real_length = (uint32_t)themis_scell_auth_token_passphrase_size(&hdr); + + if (*auth_token_length < auth_token_real_length) { + *auth_token_length = auth_token_real_length; res = THEMIS_BUFFER_TOO_SMALL; goto error; } @@ -242,7 +252,7 @@ themis_status_t themis_auth_sym_encrypt_message_with_passphrase_(const uint8_t* if (res != THEMIS_SUCCESS) { goto error; } - *auth_token_length = themis_scell_auth_token_passphrase_size(&hdr); + *auth_token_length = auth_token_real_length; *encrypted_message_length = message_length; error: @@ -324,7 +334,13 @@ static themis_status_t themis_auth_sym_derive_decryption_key_pbkdf2( goto error; } - res = themis_auth_sym_kdf_context(message_length, soter_kdf_context, &soter_kdf_context_length); + /* + * themis_auth_sym_decrypt_message_with_passphrase_() makes sure that + * message_length fits into uint32_t. + */ + res = themis_auth_sym_kdf_context((uint32_t)message_length, + soter_kdf_context, + &soter_kdf_context_length); if (res != THEMIS_SUCCESS) { goto error; } diff --git a/src/themis/sym_enc_message.c b/src/themis/sym_enc_message.c index 01fae57cc..b2768928e 100644 --- a/src/themis/sym_enc_message.c +++ b/src/themis/sym_enc_message.c @@ -277,6 +277,7 @@ themis_status_t themis_auth_sym_encrypt_message_(const uint8_t* key, uint8_t derived_key[THEMIS_AUTH_SYM_KEY_LENGTH / 8] = {0}; size_t kdf_context_length = sizeof(kdf_context); size_t derived_key_length = sizeof(derived_key); + size_t auth_token_real_length = 0; struct themis_scell_auth_token_key hdr; /* Message length is currently stored as 32-bit integer, sorry */ @@ -331,8 +332,11 @@ themis_status_t themis_auth_sym_encrypt_message_(const uint8_t* key, goto error; } - if (*auth_token_length < themis_scell_auth_token_key_size(&hdr)) { - *auth_token_length = themis_scell_auth_token_key_size(&hdr); + /* In valid Secure Cells auth token length always fits into uint32_t. */ + auth_token_real_length = (uint32_t)themis_scell_auth_token_key_size(&hdr); + + if (*auth_token_length < auth_token_real_length) { + *auth_token_length = auth_token_real_length; res = THEMIS_BUFFER_TOO_SMALL; goto error; } @@ -340,7 +344,7 @@ themis_status_t themis_auth_sym_encrypt_message_(const uint8_t* key, if (res != THEMIS_SUCCESS) { goto error; } - *auth_token_length = themis_scell_auth_token_key_size(&hdr); + *auth_token_length = auth_token_real_length; *encrypted_message_length = message_length; error: From 0cedd56b4818e5738fc40367e190ec48546f923e Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Wed, 12 Aug 2020 22:17:45 +0300 Subject: [PATCH 05/11] Update to OpenSSL 1.1.1g (#692) * Use cossacklabs/openssl-apple for Carthage Switch from using Marcin's OpenSSL [1] to our own build of OpenSSL [2] which provides newer OpenSSL 1.1.1g, bitcode, and other goodies. [1]: https://github.com/krzyzanowskim/OpenSSL [2]: https://github.com/cossacklabs/openssl-apple The new OpenSSL is distributed as a binary-only framework. It will be downloaded from GitHub instead of building it from source. This is not much different from what the previous vendor did, but is more stable. Carthage builds use the static flavor of the framework. We have run into issues with dynamic frameworks of OpenSSL when using Carthage, but static frameworks seems to do very good job: the resulting binaries are smaller, apps start a bit faster, and users are freed from the hassle of dealing with OpenSSL linkage to their app. Note that due to the way static linkage works, we will be exporting all OpenSSL symbols from ObjCThemis by default. In order to avoid conflicts, export only limited subset of symbols: Objective-C classes of ObjCThemis. * Use cossacklabs/openssl-apple for CocoaPods Switch from using Levi Groker's OpenSSL [1] to our own build [2] which provides newer OpenSSL 1.1.1g, bitcode, and other goodies. [1]: https://github.com/levigroker/GRKOpenSSLFramework [2]: https://github.com/cossacklabs/openssl-apple The new OpenSSL is distributed as a tricky pod, but for consumers like Themis it's just a pod. Introduce a separate subspec for the build with newer OpenSSL, and make it the default choice. We keep the old specs around in case someone needs them to share GRKOpenSSL or BoringSSL with other dependencies, as it is not possible to use CLOpenSSL simultaneously with them due to OpenSSL symbol conflicts. The new subspec has its oddities, but it's all (un)known magic that seems to be absolutely necessary to build Themis properly for iOS. * Note the update in CHANGELOG * Export global functions as well In Carthage builds, we need to export not only Objective-C classes from TS namespace but global functions as well. (Well, there is only one such function right now: TSGenerateSymmetricKey().) * Note Xcode 11 requirement in CHANGELOG It seems that Xcode 10 cannot handle bitcode data embedded into prebuilt OpenSSL frameworks we distribute which were built with Xcode 11.2. Make Xcode new minimum requirement for ObjCThemis and SwiftThemis. Xcode 11.0 is known to work. * Improve CocoaPods version hack for linting Turns out that the spell we used before is not effective. sed does not understand "\s" so replace it with "[ ]" to match the leading spaces. Now the podspec should be correctly edited for linting and validate as if the current commit is going to be published. (The hack will be disabled for production branches where we are linting the spec as is.) * Change comments to trigger CI (so high-tech) * Add arm64 to default architectures list Make sure that ObjCThemis is compiled for arm64e architecture as noted in Apple guidance [1]. This is important for the case when our users would like to test their apps with this architecture. Currently, Xcode does not build slices for this architecture by default, so Carthage builds will not include it. [1]: https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication * Explicitly enable bitcode for Carthage It seems that in some cases bitcode gets disabled in Xcode. Make sure that our project files keep it enabled at all times. * Do not claim arm64e support in changelog It seems that ObjCThemis does not support arm64e very well, after all. Let's not mention it in the changelog. Maybe the situation will improve before 0.14 is out though. (cherry picked from commit 6dacf9cb20d85d445d81aac7020bd5205eb6afa5) --- .github/workflows/test-objc.yaml | 4 +- CHANGELOG.md | 9 ++++ Cartfile | 12 ++--- Cartfile.resolved | 3 +- ObjCThemis.xcodeproj/project.pbxproj | 16 ++++++ Themis.xcodeproj/project.pbxproj | 16 ++++++ src/wrappers/themis/Obj-C/exported.symbols | 5 ++ themis.podspec | 57 +++++++++++++++++++++- 8 files changed, 109 insertions(+), 13 deletions(-) create mode 100644 src/wrappers/themis/Obj-C/exported.symbols diff --git a/.github/workflows/test-objc.yaml b/.github/workflows/test-objc.yaml index 28c5b70f0..1632c31b7 100644 --- a/.github/workflows/test-objc.yaml +++ b/.github/workflows/test-objc.yaml @@ -176,9 +176,9 @@ jobs: - name: Hack dependencies if: contains(env.HACK_DEPENDENCIES, 'true') run: | - # CocoaPods: podspec + # Use the current commit in CocoaPods podspec sed -E -i '' \ - -e "s|^(\s*s\.source = ).*$|\1{ :git => \"https://github.com/${HACK_REPOSITORY}.git\", :commit => \"$HACK_SHA\" }|" \ + -e "s|^([ ]*s\.source = ).*$|\1{ :git => \"https://github.com/${HACK_REPOSITORY}.git\", :commit => \"$HACK_SHA\" }|" \ themis.podspec # Note that CocoaPods is *really* strict with versioning, does not # allow modified podspec to be published, and issues a warning diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f6b90b7c..835454e1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,9 +26,18 @@ _Code:_ - Minor dependency updates making the world a better place ([#680](https://github.com/cossacklabs/themis/pull/680)). +- **Swift** + + - Updated OpenSSL to the latest 1.1.1g ([#692](https://github.com/cossacklabs/themis/pull/692)). + +- **Objective-C** + + - Updated OpenSSL to the latest 1.1.1g ([#692](https://github.com/cossacklabs/themis/pull/692)). + _Infrastructure:_ - AndroidThemis is now available on JCenter ([#679](https://github.com/cossacklabs/themis/pull/679)). +- ObjCThemis and SwiftThemis now require Xcode 11 ([#692](https://github.com/cossacklabs/themis/pull/692)). ## [0.13.0](https://github.com/cossacklabs/themis/releases/tag/0.13.0), July 8th 2020 diff --git a/Cartfile b/Cartfile index 7f503659e..7666db7ac 100644 --- a/Cartfile +++ b/Cartfile @@ -1,9 +1,3 @@ -# temporary use our fork due to errors in krzyzanowskim/OpenSSL 1.0.2.18 -# https://github.com/krzyzanowskim/OpenSSL/issues/64 -# https://github.com/krzyzanowskim/OpenSSL/issues/63 -# hash of 1.0.2.17 tag -github "krzyzanowskim/OpenSSL" "990bd88" - -# broken tag is 1.0.2.18 -# github "krzyzanowskim/OpenSSL" ~> 1.0.2 - +# OpenSSL 1.1.1g +binary "https://raw.githubusercontent.com/cossacklabs/openssl-apple/cossacklabs/carthage/openssl-static-iPhone.json" ~> 1.1.107 +binary "https://raw.githubusercontent.com/cossacklabs/openssl-apple/cossacklabs/carthage/openssl-static-MacOSX.json" ~> 1.1.107 diff --git a/Cartfile.resolved b/Cartfile.resolved index fc79f6e5f..b8def800e 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1,2 @@ -github "krzyzanowskim/OpenSSL" "990bd88219da80d7a77289aeae245b3eb400d834" +binary "https://raw.githubusercontent.com/cossacklabs/openssl-apple/cossacklabs/carthage/openssl-static-MacOSX.json" "1.1.107" +binary "https://raw.githubusercontent.com/cossacklabs/openssl-apple/cossacklabs/carthage/openssl-static-iPhone.json" "1.1.107" diff --git a/ObjCThemis.xcodeproj/project.pbxproj b/ObjCThemis.xcodeproj/project.pbxproj index c437e07fb..c2f71b227 100644 --- a/ObjCThemis.xcodeproj/project.pbxproj +++ b/ObjCThemis.xcodeproj/project.pbxproj @@ -1378,6 +1378,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_BITCODE = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1442,6 +1443,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1476,6 +1478,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", @@ -1517,6 +1520,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", @@ -1549,6 +1553,10 @@ 9F4A24A7223A8D7F005CB63A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD)", + arm64e, + ); CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; @@ -1557,6 +1565,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = YES; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -1593,6 +1603,10 @@ 9F4A24A8223A8D7F005CB63A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD)", + arm64e, + ); CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; @@ -1601,6 +1615,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = YES; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", diff --git a/Themis.xcodeproj/project.pbxproj b/Themis.xcodeproj/project.pbxproj index dc88cb358..1ecd3a8a5 100644 --- a/Themis.xcodeproj/project.pbxproj +++ b/Themis.xcodeproj/project.pbxproj @@ -1013,6 +1013,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_BITCODE = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1077,6 +1078,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1111,6 +1113,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", @@ -1148,6 +1151,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/Mac", @@ -1176,6 +1180,10 @@ 9F4A24A7223A8D7F005CB63A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD)", + arm64e, + ); CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; @@ -1184,6 +1192,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = YES; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", @@ -1215,6 +1225,10 @@ 9F4A24A8223A8D7F005CB63A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + "$(ARCHS_STANDARD)", + arm64e, + ); CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; @@ -1223,6 +1237,8 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = YES; + EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", diff --git a/src/wrappers/themis/Obj-C/exported.symbols b/src/wrappers/themis/Obj-C/exported.symbols new file mode 100644 index 000000000..acf8a3460 --- /dev/null +++ b/src/wrappers/themis/Obj-C/exported.symbols @@ -0,0 +1,5 @@ +# Export only Objective-C classes in TS (Themis) namespace +_OBJC_CLASS_$_TS* +_OBJC_METACLASS_$_TS* +# As well as global function from the said namespace too +_TS* diff --git a/themis.podspec b/themis.podspec index d8498de2e..730a77259 100644 --- a/themis.podspec +++ b/themis.podspec @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.author = {'cossacklabs' => 'info@cossacklabs.com'} s.module_name = 'themis' - s.default_subspec = 'themis-openssl' + s.default_subspec = 'openssl-1.1.1' s.ios.deployment_target = '8.0' s.osx.deployment_target = '10.9' @@ -20,6 +20,61 @@ Pod::Spec.new do |s| # If you update dependencies, please check whether we can remove "--allow-warnings" # from podspec validation in .github/workflows/test-objc.yaml + # This variant uses the current stable, non-legacy version of OpenSSL. + s.subspec 'openssl-1.1.1' do |so| + # OpenSSL 1.1.1g + so.dependency 'CLOpenSSL', '~> 1.1.107' + + # Enable Bitcode in projects that depend on Themis. + so.ios.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'YES' } + + # We're building some C code here which uses includes as it pleases. + # Allow this behavior, but we will have to control header mappings. + so.ios.xcconfig = { + 'OTHER_CFLAGS' => '-DLIBRESSL', + 'USE_HEADERMAP' => 'NO', + 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/themis/src" "${PODS_ROOT}/themis/src/wrappers/themis/Obj-C"', + 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES', + } + so.osx.xcconfig = { + 'OTHER_CFLAGS' => '-DLIBRESSL', + 'USE_HEADERMAP' => 'NO', + 'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/themis/src" "${PODS_ROOT}/themis/src/wrappers/themis/Obj-C"', + 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES', + } + + # We need to do this weird subspec matryoshka because CocoaPods + # insists on compiling everything as if it were a modular framework. + # Unfortunately, Themis has a lot of #include "themis/something.h" + # which break in modular compilation. The "header_dir" fixes it up, + # but we must set it differently for ObjCThemis. Hence two subspecs. + # End users should use "themis/openssl-1.1.1" only, not these ones. + so.subspec 'core' do |ss| + ss.source_files = [ + "src/themis/*.{c,h}", + "src/soter/*.{c,h}", + "src/soter/ed25519/*.{c,h}", + "src/soter/openssl/*.{c,h}", + ] + ss.header_dir = "src" + ss.header_mappings_dir = "src" + # Don't export Themis Core headers, make only ObjcThemis public. + ss.private_header_files = [ + "src/themis/*.h", + "src/soter/*.h", + "src/soter/ed25519/*.h", + "src/soter/openssl/*.h", + ] + end + so.subspec 'objcwrapper' do |ss| + ss.dependency 'themis/openssl-1.1.1/core' + ss.source_files = "src/wrappers/themis/Obj-C/objcthemis/*.{m,h}" + ss.header_dir = "objcthemis" + ss.header_mappings_dir = "src/wrappers/themis/Obj-C/objcthemis" + ss.public_header_files = "src/wrappers/themis/Obj-C/objcthemis/*.h" + end + end + # use `themis/themis-openssl` as separate target to use Themis with OpenSSL s.subspec 'themis-openssl' do |so| # Enable bitcode for openssl only, unfortunately boringssl with bitcode not available at the moment From b1abda67d025afed0d0f3401b51eb121d77c6232 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Thu, 9 Jul 2020 23:02:33 +0300 Subject: [PATCH 06/11] Update CocoaPods repository (#673) After restoring CocoaPods from cache we also need to fetch the latest updates which were not cached yet. This is not noticeable most of the time, but otherwise it breaks builds right after a new version of Themis is released on CocoaPods and we can't fetch it because the repo is not updated yet. (cherry picked from commit 89304e51d2af7e4c0b83435573f4c58a90645284) --- .github/workflows/test-objc.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test-objc.yaml b/.github/workflows/test-objc.yaml index 1632c31b7..1dba95bbe 100644 --- a/.github/workflows/test-objc.yaml +++ b/.github/workflows/test-objc.yaml @@ -78,6 +78,9 @@ jobs: with: path: ~/.cocoapods key: ${{ runner.os }}-cocoapods-common + - name: Update CocoaPods repo + run: | + pod repo update - name: Install Themis via CocoaPods run: | cd $GITHUB_WORKSPACE/tests/objcthemis @@ -234,6 +237,9 @@ jobs: with: path: ~/.cocoapods key: ${{ runner.os }}-cocoapods-common + - name: Update CocoaPods repo + run: | + pod repo update # Try building Themis for all iOS device architectures. We do it here # because CocoaPods does not allow to check that directly but with # example projects it's more or less possible. From 805fba7952682740d626ef4d6ae4df4021a64ce4 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Thu, 13 Aug 2020 15:34:11 +0300 Subject: [PATCH 07/11] GoThemis README (#699) pkg.go.dev does not look at the repository README, it needs a file (not a symlink) near the "go.mod" file. Use a short README for Go, similar to the one used by RustThemis, to minimize maintenance effort. Note that pkg.go.dev cannot resolve relative links to files outside of the Go module directory ("gothemis") so we can't link to examples and license like that. Instead, direct links to the master branch of the repository are provided. It's not optimal, but a good compromise. (cherry picked from commit 5d9d5ae9de4feffd5bb8e6d2b98547c119cb090e) --- CHANGELOG.md | 1 + gothemis/README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 gothemis/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 835454e1c..da445d19b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ _Code:_ - **Go** - Fixed panics on 32-bit systems when processing corrupted data ([#677](https://github.com/cossacklabs/themis/pull/677)). + - Improved GoThemis package README and documentation ([#699](https://github.com/cossacklabs/themis/pull/699)). - **Node.js** diff --git a/gothemis/README.md b/gothemis/README.md new file mode 100644 index 000000000..a5110d623 --- /dev/null +++ b/gothemis/README.md @@ -0,0 +1,42 @@ +# GoThemis + +[![pkg.go.dev][pkg-go-dev-badge]][pkg-go-dev] +[![CircleCI][circle-ci-badge]][circle-ci] +[![License][license-badge]][license] + +_Go_ wrapper for [**Themis** crypto library][themis]. + +Themis is an open-source high-level cryptographic services library that provides secure data exchange, authentication, and storage protection. +Themis provides ready-made building components, which simplifies the usage of core cryptographic security operations. + +[themis]: https://github.com/cossacklabs/themis +[pkg-go-dev]: https://pkg.go.dev/mod/github.com/cossacklabs/themis/gothemis +[pkg-go-dev-badge]: https://pkg.go.dev/badge/mod/github.com/cossacklabs/themis/gothemis +[circle-ci]: https://circleci.com/gh/cossacklabs/themis/tree/master +[circle-ci-badge]: https://circleci.com/gh/cossacklabs/themis/tree/master.svg?style=shield +[license]: https://github.com/cossacklabs/themis/blob/master/LICENSE +[license-badge]: https://img.shields.io/github/license/cossacklabs/themis + +## Getting started + +GoThemis requires a native Themis library. +Please refer to the [Installation guide][installation] for the instructions. + +See also: + + - [In-depth documentation on Cossack Labs Documentation Server][docs] + - [Go API documentation on pkg.go.dev][pkg-go-dev] + - [Changelog on GitHub][CHANGELOG] + +You can start experimenting with [Examples][examples] or take a look at [Tests][tests] +to get a feeling of how Themis can be used. + +[installation]: https://docs.cossacklabs.com/themis/languages/go/installation/ +[docs]: https://docs.cossacklabs.com/themis/ +[CHANGELOG]: https://github.com/cossacklabs/themis/blob/master/CHANGELOG.md +[examples]: https://github.com/cossacklabs/themis/tree/master/docs/examples/go +[tests]: https://github.com/cossacklabs/themis/tree/master/gothemis + +## Licensing + +The code is distributed under [Apache 2.0 license][license]. From 4cf9a8d222a015e83d8ac05064cd92d8cdd189f0 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Thu, 13 Aug 2020 17:47:21 +0300 Subject: [PATCH 08/11] Themis 0.13.1 (#697) * Bump selected versions to 0.13.1 * Cut Themis 0.13.1 in changelog --- CHANGELOG.md | 8 ++++++++ gradle.properties | 4 ++-- src/wrappers/themis/jsthemis/package-lock.json | 2 +- src/wrappers/themis/jsthemis/package.json | 2 +- src/wrappers/themis/wasm/package-lock.json | 2 +- src/wrappers/themis/wasm/package.json | 2 +- themis.podspec | 2 +- 7 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da445d19b..1561780db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ Changes that are currently in development and have not been released yet. +## [0.13.1](https://github.com/cossacklabs/themis/releases/tag/0.13.1), August 13th 2020 + +**TL;DR:** + +- AndroidThemis is now available on JCenter +- ObjCThemis and SwiftThemis get latest OpenSSL update +- Minor security fixes in GoThemis, JsThemis, WasmThemis + _Code:_ - **Core** diff --git a/gradle.properties b/gradle.properties index a2903b5ac..0f6359110 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,8 +10,8 @@ org.gradle.configureondemand=true # Versions of AndroidThemis and JavaThemis packages. -androidThemisVersion=0.13.0 -javaThemisVersion=0.13.0 +androidThemisVersion=0.13.1 +javaThemisVersion=0.13.1 # Android Studio insists that this is set to use JUnit test runner. android.useAndroidX=true diff --git a/src/wrappers/themis/jsthemis/package-lock.json b/src/wrappers/themis/jsthemis/package-lock.json index fb172bbdc..144f5008f 100644 --- a/src/wrappers/themis/jsthemis/package-lock.json +++ b/src/wrappers/themis/jsthemis/package-lock.json @@ -1,6 +1,6 @@ { "name": "jsthemis", - "version": "0.13.0", + "version": "0.13.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/wrappers/themis/jsthemis/package.json b/src/wrappers/themis/jsthemis/package.json index e144cec40..f7e94627a 100644 --- a/src/wrappers/themis/jsthemis/package.json +++ b/src/wrappers/themis/jsthemis/package.json @@ -1,6 +1,6 @@ { "name": "jsthemis", - "version": "0.13.0", + "version": "0.13.1", "description": "Themis is a convenient cryptographic library for data protection.", "main": "build/Release/jsthemis.node", "scripts": { diff --git a/src/wrappers/themis/wasm/package-lock.json b/src/wrappers/themis/wasm/package-lock.json index 60d373b00..99ecc531e 100644 --- a/src/wrappers/themis/wasm/package-lock.json +++ b/src/wrappers/themis/wasm/package-lock.json @@ -1,6 +1,6 @@ { "name": "wasm-themis", - "version": "0.13.0", + "version": "0.13.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/wrappers/themis/wasm/package.json b/src/wrappers/themis/wasm/package.json index 5917e3954..9c7724fed 100644 --- a/src/wrappers/themis/wasm/package.json +++ b/src/wrappers/themis/wasm/package.json @@ -1,6 +1,6 @@ { "name": "wasm-themis", - "version": "0.13.0", + "version": "0.13.1", "description": "Themis is a convenient cryptographic library for data protection.", "main": "src/index.js", "scripts": { diff --git a/themis.podspec b/themis.podspec index 730a77259..428dc81ec 100644 --- a/themis.podspec +++ b/themis.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "themis" - s.version = "0.13.0" + s.version = "0.13.1" s.summary = "Data security library for network communication and data storage for iOS and mac OS" s.description = "Themis is a convenient cryptographic library for data protection. It provides secure messaging with forward secrecy and secure data storage. Themis is aimed at modern development practices and has a unified API across 12 platforms, including iOS/macOS, Ruby, JavaScript, Python, and Java/Android." s.homepage = "https://cossacklabs.com" From b6d89867ae8712e3fcddec4c1c8b43a7d70c558c Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Fri, 14 Aug 2020 22:16:19 +0300 Subject: [PATCH 09/11] Remove ObjCThemis.xcodeproj (#704) * Remove ObjCThemis.xcodeproj The idea behind building "objcthemis.framework" has been to unify import syntax between Carthage and CocoaPods. Unfortunately, it turned out to be a mistake. "objcthemis.framework" does not work without "themis.framework" being present alongside it because of how module resolution works. Despite "objcthemis.framework" providing the same "themis" module as "themis.framework", the compiler will look for a framework named "themis.framework" when resolving "import themis". Moreover, the original issue that "objcthemis.framework" has been called to rectify can be resolved more elegantly by importing the module: @import themis; which work well with "themis.framework" in both Carthage and CocoaPods. Since "objcthemis.framework" does not bring any value, remove it. Move all new things added to ObjCThemis.xcodeproj into Themis.xcodeproj (such as testing Swift 4 vs 5). Remove the import warning. Now Carthage will build only one framework: "themis.framework" from Themis.xcodeproj. I am sorry for the trouble and confusion of this fizzled migration. * Change "product name" to "themis" Make sure that Xcode targets produce "themis.framework", not "objcthemis.framework". * Recreate Xcode schemes It seems that some components stick the schemes after renaming. Recreate them to make sure that we're building "themis.framework" and there are no traces of the old Xcode project. * Bring back proxy umbrella header "themis.h" Since the framework is named "themis.framework", its umbrella header is expected to be called "themis.h". The actual umbrella header for ObjCThemis is "objcthemis.h" which we simply include. * Use alternative imports in unit tests One of the reasons for "objcthemis.framework" existence was to run ObjCThemis unit tests from Xcode. Initially, "themis.framework" has prevented that due to import issues, and "objcthemis.framework" has allowed #import to work. Now that latter is gone, the unit-tests are broken again. However! It seems that using modular imports works for Xcode and Carthage (which uses Xcode project). The bad news here is that it *does not* work for CocoaPods, which still works only with the old form because CocoaPods does some special wicked magic with headers, putting them into the "objcthemis" directory. I do not have much time and willingness to deal with this stupidity anymore right now, so here's a compromise: Carthage uses its form, CocoaPods use their form, and you get this TODO to maybe get rid of this wart some time later. (cherry picked from commit 5522acee08f7037e5d7e9caf3616e354eaaeff8e) --- .github/workflows/test-objc.yaml | 12 +- CHANGELOG.md | 18 + ObjCThemis.xcodeproj/project.pbxproj | 1920 ----------------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../Test Themis (Swift 4, iOS).xcscheme | 77 - .../Test Themis (Swift 4, macOS).xcscheme | 77 - Themis.xcodeproj/project.pbxproj | 811 ++++++- .../contents.xcworkspacedata | 7 - .../Test Themis (Swift 4, iOS).xcscheme | 35 +- .../Test Themis (Swift 4, macOS).xcscheme | 35 +- .../Test Themis (Swift 5, iOS).xcscheme | 27 +- .../Test Themis (Swift 5, macOS).xcscheme | 27 +- .../xcschemes/Themis (iOS).xcscheme | 29 +- .../xcschemes/Themis (macOS).xcscheme | 15 +- src/wrappers/themis/Obj-C/Themis/themis.h | 6 +- tests/objcthemis/objthemis/SecureCellTests.m | 8 + .../objthemis/SecureComparatorTests.m | 8 + .../objcthemis/objthemis/SecureMessageTests.m | 11 +- tests/objcthemis/objthemis/StaticKeys.h | 2 + .../objthemis/objthemis-Bridging-Header.h | 10 +- 20 files changed, 810 insertions(+), 2333 deletions(-) delete mode 100644 ObjCThemis.xcodeproj/project.pbxproj delete mode 100644 ObjCThemis.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme delete mode 100644 ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme delete mode 100644 Themis.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (iOS).xcscheme => Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme (62%) rename ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (macOS).xcscheme => Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme (62%) rename {ObjCThemis.xcodeproj => Themis.xcodeproj}/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme (60%) rename {ObjCThemis.xcodeproj => Themis.xcodeproj}/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme (60%) diff --git a/.github/workflows/test-objc.yaml b/.github/workflows/test-objc.yaml index 1dba95bbe..2756e1728 100644 --- a/.github/workflows/test-objc.yaml +++ b/.github/workflows/test-objc.yaml @@ -124,7 +124,7 @@ jobs: rm -rf DerivedData xcodebuild \ -derivedDataPath DerivedData \ - -project ObjCThemis.xcodeproj \ + -project Themis.xcodeproj \ -scheme "Test Themis (Swift 4, macOS)" \ test - name: Run unit tests (Swift 5, macOS) @@ -133,7 +133,7 @@ jobs: rm -rf DerivedData xcodebuild \ -derivedDataPath DerivedData \ - -project ObjCThemis.xcodeproj \ + -project Themis.xcodeproj \ -scheme "Test Themis (Swift 5, macOS)" \ test - name: Run unit tests (Swift 4, iOS Simulator) @@ -142,7 +142,7 @@ jobs: rm -rf DerivedData xcodebuild \ -derivedDataPath DerivedData \ - -project ObjCThemis.xcodeproj \ + -project Themis.xcodeproj \ -scheme "Test Themis (Swift 4, iOS)" \ -sdk iphonesimulator \ -destination "platform=iOS Simulator,name=${TEST_IPAD}" \ @@ -153,7 +153,7 @@ jobs: rm -rf DerivedData xcodebuild \ -derivedDataPath DerivedData \ - -project ObjCThemis.xcodeproj \ + -project Themis.xcodeproj \ -scheme "Test Themis (Swift 5, iOS)" \ -sdk iphonesimulator \ -destination "platform=iOS Simulator,name=${TEST_IPHONE}" \ @@ -250,8 +250,8 @@ jobs: rm -rf DerivedData xcodebuild \ -derivedDataPath DerivedData \ - -project ObjCThemis.xcodeproj \ - -scheme "ObjCThemis (iOS)" \ + -project Themis.xcodeproj \ + -scheme "Themis (iOS)" \ -sdk iphoneos \ -destination "generic/platform=iOS" \ build diff --git a/CHANGELOG.md b/CHANGELOG.md index 1561780db..6b2122688 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,24 @@ Changes that are currently in development and have not been released yet. +**Breaking changes and deprecations:** + +- ObjCThemis framework built by Carthage is now called `themis.framework` once again ([read more](#0.13.2-revert-objcthemis-rename)). + +_Code:_ + +- **Objective-C** + + - **Breaking changes** + + - ObjCThemis framework built by Carthage is now called `themis.framework` once again ([#704](https://github.com/cossacklabs/themis/pull/704)). + + [ObjCThemis 0.13.0](#0.13.0-objcthemis-rename) has initiated renaming of the framework produced by Carthage into `objcthemis.framework` from its historical name `themis.framework`. This decision has been a mistake. More information is available in the pull request linked above. + + `objcthemis.framework` is removed and should not be used. + + Please continue linking your applications to `themis.framework`. Note as well that starting with ObjCThemis 0.13.1, you do not have to embed `openssl.framework` anymore when ObjCThemis is installed via Carthage. + ## [0.13.1](https://github.com/cossacklabs/themis/releases/tag/0.13.1), August 13th 2020 **TL;DR:** diff --git a/ObjCThemis.xcodeproj/project.pbxproj b/ObjCThemis.xcodeproj/project.pbxproj deleted file mode 100644 index c2f71b227..000000000 --- a/ObjCThemis.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1920 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8EE223C1A8C00EC1EF3 /* scell_context_imprint.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B4223A8FA8005CB63A /* scell_context_imprint.m */; }; - 9F00E8EF223C1A8C00EC1EF3 /* scell_seal.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B0223A8FA7005CB63A /* scell_seal.m */; }; - 9F00E8F0223C1A8C00EC1EF3 /* scell_token.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BD223A8FA8005CB63A /* scell_token.m */; }; - 9F00E8F1223C1A8C00EC1EF3 /* scell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BE223A8FA8005CB63A /* scell.m */; }; - 9F00E8F2223C1A8C00EC1EF3 /* scomparator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B6223A8FA8005CB63A /* scomparator.m */; }; - 9F00E8F3223C1A8C00EC1EF3 /* skeygen.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B7223A8FA8005CB63A /* skeygen.m */; }; - 9F00E8F4223C1A8C00EC1EF3 /* smessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B8223A8FA8005CB63A /* smessage.m */; }; - 9F00E8F5223C1A8C00EC1EF3 /* ssession_transport_interface.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B2223A8FA7005CB63A /* ssession_transport_interface.m */; }; - 9F00E8F6223C1A8C00EC1EF3 /* ssession.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BA223A8FA8005CB63A /* ssession.m */; }; - 9F00E8F7223C1A9600EC1EF3 /* fe_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B3223A745B005CB63A /* fe_0.c */; }; - 9F00E8F8223C1A9600EC1EF3 /* fe_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CF223A745C005CB63A /* fe_1.c */; }; - 9F00E8F9223C1A9600EC1EF3 /* fe_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B1223A745A005CB63A /* fe_add.c */; }; - 9F00E8FA223C1A9600EC1EF3 /* fe_cmov.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A8223A745A005CB63A /* fe_cmov.c */; }; - 9F00E8FB223C1A9600EC1EF3 /* fe_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B6223A745B005CB63A /* fe_copy.c */; }; - 9F00E8FC223C1A9600EC1EF3 /* fe_frombytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AC223A745A005CB63A /* fe_frombytes.c */; }; - 9F00E8FD223C1A9600EC1EF3 /* fe_invert.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D3223A745D005CB63A /* fe_invert.c */; }; - 9F00E8FE223C1A9600EC1EF3 /* fe_isnegative.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BE223A745B005CB63A /* fe_isnegative.c */; }; - 9F00E8FF223C1A9600EC1EF3 /* fe_isnonzero.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B9223A745B005CB63A /* fe_isnonzero.c */; }; - 9F00E900223C1A9600EC1EF3 /* fe_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D1223A745C005CB63A /* fe_mul.c */; }; - 9F00E901223C1A9600EC1EF3 /* fe_neg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BC223A745B005CB63A /* fe_neg.c */; }; - 9F00E902223C1A9600EC1EF3 /* fe_pow22523.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DD223A745D005CB63A /* fe_pow22523.c */; }; - 9F00E903223C1A9600EC1EF3 /* fe_sq.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23E0223A745D005CB63A /* fe_sq.c */; }; - 9F00E904223C1A9600EC1EF3 /* fe_sq2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B8223A745B005CB63A /* fe_sq2.c */; }; - 9F00E905223C1A9600EC1EF3 /* fe_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A9223A745A005CB63A /* fe_sub.c */; }; - 9F00E906223C1A9600EC1EF3 /* fe_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D2223A745D005CB63A /* fe_tobytes.c */; }; - 9F00E907223C1A9600EC1EF3 /* ge_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DA223A745D005CB63A /* ge_add.c */; }; - 9F00E908223C1AA500EC1EF3 /* ge_cmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C0223A745B005CB63A /* ge_cmp.c */; }; - 9F00E909223C1AA500EC1EF3 /* ge_double_scalarmult.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BA223A745B005CB63A /* ge_double_scalarmult.c */; }; - 9F00E90A223C1AA500EC1EF3 /* ge_frombytes_no_negate.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D5223A745D005CB63A /* ge_frombytes_no_negate.c */; }; - 9F00E90B223C1AA500EC1EF3 /* ge_frombytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A7223A745A005CB63A /* ge_frombytes.c */; }; - 9F00E90C223C1AA500EC1EF3 /* ge_madd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DB223A745D005CB63A /* ge_madd.c */; }; - 9F00E90D223C1AA500EC1EF3 /* ge_msub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C6223A745C005CB63A /* ge_msub.c */; }; - 9F00E90E223C1AA500EC1EF3 /* ge_p1p1_to_p2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CC223A745C005CB63A /* ge_p1p1_to_p2.c */; }; - 9F00E90F223C1AA500EC1EF3 /* ge_p1p1_to_p3.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DC223A745D005CB63A /* ge_p1p1_to_p3.c */; }; - 9F00E910223C1AA500EC1EF3 /* ge_p2_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D7223A745D005CB63A /* ge_p2_0.c */; }; - 9F00E911223C1AA500EC1EF3 /* ge_p2_dbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B4223A745B005CB63A /* ge_p2_dbl.c */; }; - 9F00E912223C1AB100EC1EF3 /* ge_p2_to_p3.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B2223A745A005CB63A /* ge_p2_to_p3.c */; }; - 9F00E913223C1AB100EC1EF3 /* ge_p3_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BB223A745B005CB63A /* ge_p3_0.c */; }; - 9F00E914223C1AB100EC1EF3 /* ge_p3_dbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B0223A745A005CB63A /* ge_p3_dbl.c */; }; - 9F00E915223C1AB100EC1EF3 /* ge_p3_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AA223A745A005CB63A /* ge_p3_sub.c */; }; - 9F00E916223C1AB100EC1EF3 /* ge_p3_to_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B7223A745B005CB63A /* ge_p3_to_cached.c */; }; - 9F00E917223C1AB100EC1EF3 /* ge_p3_to_p2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C7223A745C005CB63A /* ge_p3_to_p2.c */; }; - 9F00E918223C1AB100EC1EF3 /* ge_p3_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C9223A745C005CB63A /* ge_p3_tobytes.c */; }; - 9F00E919223C1AB100EC1EF3 /* ge_precomp_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BF223A745B005CB63A /* ge_precomp_0.c */; }; - 9F00E91A223C1AB100EC1EF3 /* ge_scalarmult_base.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DF223A745D005CB63A /* ge_scalarmult_base.c */; }; - 9F00E91B223C1AB100EC1EF3 /* ge_scalarmult.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23E1223A745E005CB63A /* ge_scalarmult.c */; }; - 9F00E91C223C1AB100EC1EF3 /* ge_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B5223A745B005CB63A /* ge_sub.c */; }; - 9F00E91D223C1AB100EC1EF3 /* ge_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AD223A745A005CB63A /* ge_tobytes.c */; }; - 9F00E91E223C1AB100EC1EF3 /* gen_rand_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D8223A745D005CB63A /* gen_rand_32.c */; }; - 9F00E91F223C1AB100EC1EF3 /* sc_muladd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CE223A745C005CB63A /* sc_muladd.c */; }; - 9F00E920223C1AB100EC1EF3 /* sc_reduce.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C2223A745B005CB63A /* sc_reduce.c */; }; - 9F00E921223C1AC000EC1EF3 /* soter_asym_cipher.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238F223A7426005CB63A /* soter_asym_cipher.c */; }; - 9F00E922223C1AC000EC1EF3 /* soter_asym_ka.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2388223A7425005CB63A /* soter_asym_ka.c */; }; - 9F00E923223C1AC000EC1EF3 /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2392223A7426005CB63A /* soter_ec_key.c */; }; - 9F00E924223C1AC000EC1EF3 /* soter_ecdsa_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2387223A7425005CB63A /* soter_ecdsa_common.c */; }; - 9F00E925223C1AC000EC1EF3 /* soter_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2390223A7426005CB63A /* soter_hash.c */; }; - 9F00E926223C1AC000EC1EF3 /* soter_rand.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238E223A7426005CB63A /* soter_rand.c */; }; - 9F00E927223C1AC000EC1EF3 /* soter_rsa_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2386223A7425005CB63A /* soter_rsa_common.c */; }; - 9F00E928223C1AC000EC1EF3 /* soter_rsa_key_pair_gen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238A223A7425005CB63A /* soter_rsa_key_pair_gen.c */; }; - 9F00E929223C1AC000EC1EF3 /* soter_rsa_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2385223A7425005CB63A /* soter_rsa_key.c */; }; - 9F00E92A223C1AC000EC1EF3 /* soter_sign_ecdsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2389223A7425005CB63A /* soter_sign_ecdsa.c */; }; - 9F00E92B223C1AC000EC1EF3 /* soter_sign_rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238C223A7425005CB63A /* soter_sign_rsa.c */; }; - 9F00E92C223C1AC000EC1EF3 /* soter_sym.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2394223A7426005CB63A /* soter_sym.c */; }; - 9F00E92D223C1AC000EC1EF3 /* soter_verify_ecdsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2393223A7426005CB63A /* soter_verify_ecdsa.c */; }; - 9F00E92E223C1AC000EC1EF3 /* soter_verify_rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238D223A7426005CB63A /* soter_verify_rsa.c */; }; - 9F00E92F223C1ACF00EC1EF3 /* soter_container.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2348223A73B0005CB63A /* soter_container.c */; }; - 9F00E930223C1ACF00EC1EF3 /* soter_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A234D223A73B0005CB63A /* soter_crc32.c */; }; - 9F00E931223C1ACF00EC1EF3 /* soter_hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2353223A73B1005CB63A /* soter_hmac.c */; }; - 9F00E932223C1ACF00EC1EF3 /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2357223A73B1005CB63A /* soter_kdf.c */; }; - 9F00E933223C1ACF00EC1EF3 /* soter_sign.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2351223A73B1005CB63A /* soter_sign.c */; }; - 9F00E934223C1AE600EC1EF3 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A242A223A74AF005CB63A /* message.c */; }; - 9F00E935223C1AE600EC1EF3 /* secure_cell.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A241E223A74AE005CB63A /* secure_cell.c */; }; - 9F00E936223C1AE600EC1EF3 /* secure_comparator.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2432223A74AF005CB63A /* secure_comparator.c */; }; - 9F00E937223C1AE600EC1EF3 /* secure_keygen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2427223A74AE005CB63A /* secure_keygen.c */; }; - 9F00E938223C1AE600EC1EF3 /* secure_message_wrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2422223A74AE005CB63A /* secure_message_wrapper.c */; }; - 9F00E939223C1AE600EC1EF3 /* secure_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2437223A74AF005CB63A /* secure_message.c */; }; - 9F00E93A223C1AE600EC1EF3 /* secure_session_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2435223A74AF005CB63A /* secure_session_message.c */; }; - 9F00E93B223C1AE600EC1EF3 /* secure_session_peer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2429223A74AF005CB63A /* secure_session_peer.c */; }; - 9F00E93C223C1AE600EC1EF3 /* secure_session_serialize.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2425223A74AE005CB63A /* secure_session_serialize.c */; }; - 9F00E93D223C1AE600EC1EF3 /* secure_session_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A242E223A74AF005CB63A /* secure_session_utils.c */; }; - 9F00E93E223C1AE600EC1EF3 /* secure_session.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2438223A74AF005CB63A /* secure_session.c */; }; - 9F00E93F223C1AE600EC1EF3 /* sym_enc_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2431223A74AF005CB63A /* sym_enc_message.c */; }; - 9F00E941223C1AFA00EC1EF3 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; - 9F33485823B38D9B00368291 /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F33485723B38D9B00368291 /* soter_kdf.c */; }; - 9F33485923B38D9B00368291 /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F33485723B38D9B00368291 /* soter_kdf.c */; }; - 9F4A24C4223A8FA9005CB63A /* scell_seal.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B0223A8FA7005CB63A /* scell_seal.m */; }; - 9F4A24C6223A8FA9005CB63A /* ssession_transport_interface.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B2223A8FA7005CB63A /* ssession_transport_interface.m */; }; - 9F4A24C8223A8FA9005CB63A /* scell_context_imprint.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B4223A8FA8005CB63A /* scell_context_imprint.m */; }; - 9F4A24CA223A8FA9005CB63A /* scomparator.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B6223A8FA8005CB63A /* scomparator.m */; }; - 9F4A24CB223A8FA9005CB63A /* skeygen.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B7223A8FA8005CB63A /* skeygen.m */; }; - 9F4A24CC223A8FA9005CB63A /* smessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B8223A8FA8005CB63A /* smessage.m */; }; - 9F4A24CE223A8FA9005CB63A /* ssession.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BA223A8FA8005CB63A /* ssession.m */; }; - 9F4A24D1223A8FA9005CB63A /* scell_token.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BD223A8FA8005CB63A /* scell_token.m */; }; - 9F4A24D2223A8FA9005CB63A /* scell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BE223A8FA8005CB63A /* scell.m */; }; - 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24DD223A918A005CB63A /* scell_token.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24DE223A918A005CB63A /* scell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24DF223A918A005CB63A /* scomparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24E0223A918A005CB63A /* serror.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24E1223A918A005CB63A /* skeygen.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24E2223A918A005CB63A /* smessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A24E4223A918A005CB63A /* ssession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F4A25DA223ABEB6005CB63A /* fe_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B3223A745B005CB63A /* fe_0.c */; }; - 9F4A25DB223ABEB6005CB63A /* fe_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CF223A745C005CB63A /* fe_1.c */; }; - 9F4A25DC223ABEB6005CB63A /* fe_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B1223A745A005CB63A /* fe_add.c */; }; - 9F4A25DD223ABEB6005CB63A /* fe_cmov.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A8223A745A005CB63A /* fe_cmov.c */; }; - 9F4A25DE223ABEB6005CB63A /* fe_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B6223A745B005CB63A /* fe_copy.c */; }; - 9F4A25DF223ABEB6005CB63A /* fe_frombytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AC223A745A005CB63A /* fe_frombytes.c */; }; - 9F4A25E0223ABEB6005CB63A /* fe_invert.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D3223A745D005CB63A /* fe_invert.c */; }; - 9F4A25E1223ABEB6005CB63A /* fe_isnegative.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BE223A745B005CB63A /* fe_isnegative.c */; }; - 9F4A25E2223ABEB6005CB63A /* fe_isnonzero.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B9223A745B005CB63A /* fe_isnonzero.c */; }; - 9F4A25E3223ABEB6005CB63A /* fe_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D1223A745C005CB63A /* fe_mul.c */; }; - 9F4A25E4223ABEB6005CB63A /* fe_neg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BC223A745B005CB63A /* fe_neg.c */; }; - 9F4A25E5223ABEB6005CB63A /* fe_pow22523.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DD223A745D005CB63A /* fe_pow22523.c */; }; - 9F4A25E6223ABEB6005CB63A /* fe_sq.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23E0223A745D005CB63A /* fe_sq.c */; }; - 9F4A25E7223ABEB6005CB63A /* fe_sq2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B8223A745B005CB63A /* fe_sq2.c */; }; - 9F4A25E8223ABEB6005CB63A /* fe_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A9223A745A005CB63A /* fe_sub.c */; }; - 9F4A25E9223ABEB6005CB63A /* fe_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D2223A745D005CB63A /* fe_tobytes.c */; }; - 9F4A25EA223ABEB6005CB63A /* ge_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DA223A745D005CB63A /* ge_add.c */; }; - 9F4A25EB223ABEB6005CB63A /* ge_cmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C0223A745B005CB63A /* ge_cmp.c */; }; - 9F4A25EC223ABEB6005CB63A /* ge_double_scalarmult.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BA223A745B005CB63A /* ge_double_scalarmult.c */; }; - 9F4A25ED223ABEB6005CB63A /* ge_frombytes_no_negate.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D5223A745D005CB63A /* ge_frombytes_no_negate.c */; }; - 9F4A25EE223ABEB6005CB63A /* ge_frombytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23A7223A745A005CB63A /* ge_frombytes.c */; }; - 9F4A25EF223ABEB6005CB63A /* ge_madd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DB223A745D005CB63A /* ge_madd.c */; }; - 9F4A25F0223ABEB6005CB63A /* ge_msub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C6223A745C005CB63A /* ge_msub.c */; }; - 9F4A25F1223ABEB6005CB63A /* ge_p1p1_to_p2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CC223A745C005CB63A /* ge_p1p1_to_p2.c */; }; - 9F4A25F2223ABEB6005CB63A /* ge_p1p1_to_p3.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DC223A745D005CB63A /* ge_p1p1_to_p3.c */; }; - 9F4A25F3223ABEB6005CB63A /* ge_p2_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D7223A745D005CB63A /* ge_p2_0.c */; }; - 9F4A25F4223ABEB6005CB63A /* ge_p2_dbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B4223A745B005CB63A /* ge_p2_dbl.c */; }; - 9F4A25F5223ABEB6005CB63A /* ge_p2_to_p3.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B2223A745A005CB63A /* ge_p2_to_p3.c */; }; - 9F4A25F6223ABEB6005CB63A /* ge_p3_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BB223A745B005CB63A /* ge_p3_0.c */; }; - 9F4A25F7223ABEB6005CB63A /* ge_p3_dbl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B0223A745A005CB63A /* ge_p3_dbl.c */; }; - 9F4A25F8223ABEB6005CB63A /* ge_p3_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AA223A745A005CB63A /* ge_p3_sub.c */; }; - 9F4A25F9223ABEB6005CB63A /* ge_p3_to_cached.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B7223A745B005CB63A /* ge_p3_to_cached.c */; }; - 9F4A25FA223ABEB6005CB63A /* ge_p3_to_p2.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C7223A745C005CB63A /* ge_p3_to_p2.c */; }; - 9F4A25FB223ABEB6005CB63A /* ge_p3_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C9223A745C005CB63A /* ge_p3_tobytes.c */; }; - 9F4A25FC223ABEB6005CB63A /* ge_precomp_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23BF223A745B005CB63A /* ge_precomp_0.c */; }; - 9F4A25FD223ABEB6005CB63A /* ge_scalarmult_base.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23DF223A745D005CB63A /* ge_scalarmult_base.c */; }; - 9F4A25FE223ABEB6005CB63A /* ge_scalarmult.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23E1223A745E005CB63A /* ge_scalarmult.c */; }; - 9F4A25FF223ABEB6005CB63A /* ge_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B5223A745B005CB63A /* ge_sub.c */; }; - 9F4A2600223ABEB6005CB63A /* ge_tobytes.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23AD223A745A005CB63A /* ge_tobytes.c */; }; - 9F4A2601223ABEB6005CB63A /* gen_rand_32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23D8223A745D005CB63A /* gen_rand_32.c */; }; - 9F4A2602223ABEB6005CB63A /* sc_muladd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CE223A745C005CB63A /* sc_muladd.c */; }; - 9F4A2603223ABEB6005CB63A /* sc_reduce.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23C2223A745B005CB63A /* sc_reduce.c */; }; - 9F4A2604223ABECC005CB63A /* soter_asym_cipher.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238F223A7426005CB63A /* soter_asym_cipher.c */; }; - 9F4A2605223ABECC005CB63A /* soter_asym_ka.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2388223A7425005CB63A /* soter_asym_ka.c */; }; - 9F4A2606223ABECC005CB63A /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2392223A7426005CB63A /* soter_ec_key.c */; }; - 9F4A2607223ABECC005CB63A /* soter_ecdsa_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2387223A7425005CB63A /* soter_ecdsa_common.c */; }; - 9F4A2608223ABECC005CB63A /* soter_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2390223A7426005CB63A /* soter_hash.c */; }; - 9F4A2609223ABECC005CB63A /* soter_rand.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238E223A7426005CB63A /* soter_rand.c */; }; - 9F4A260A223ABECC005CB63A /* soter_rsa_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2386223A7425005CB63A /* soter_rsa_common.c */; }; - 9F4A260B223ABECC005CB63A /* soter_rsa_key_pair_gen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238A223A7425005CB63A /* soter_rsa_key_pair_gen.c */; }; - 9F4A260C223ABECC005CB63A /* soter_rsa_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2385223A7425005CB63A /* soter_rsa_key.c */; }; - 9F4A260D223ABECC005CB63A /* soter_sign_ecdsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2389223A7425005CB63A /* soter_sign_ecdsa.c */; }; - 9F4A260E223ABECC005CB63A /* soter_sign_rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238C223A7425005CB63A /* soter_sign_rsa.c */; }; - 9F4A260F223ABECC005CB63A /* soter_sym.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2394223A7426005CB63A /* soter_sym.c */; }; - 9F4A2610223ABECC005CB63A /* soter_verify_ecdsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2393223A7426005CB63A /* soter_verify_ecdsa.c */; }; - 9F4A2611223ABECC005CB63A /* soter_verify_rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A238D223A7426005CB63A /* soter_verify_rsa.c */; }; - 9F4A2612223ABEDF005CB63A /* soter_container.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2348223A73B0005CB63A /* soter_container.c */; }; - 9F4A2613223ABEDF005CB63A /* soter_crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A234D223A73B0005CB63A /* soter_crc32.c */; }; - 9F4A2614223ABEDF005CB63A /* soter_hmac.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2353223A73B1005CB63A /* soter_hmac.c */; }; - 9F4A2615223ABEDF005CB63A /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2357223A73B1005CB63A /* soter_kdf.c */; }; - 9F4A2616223ABEDF005CB63A /* soter_sign.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2351223A73B1005CB63A /* soter_sign.c */; }; - 9F4A2617223ABEF2005CB63A /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A242A223A74AF005CB63A /* message.c */; }; - 9F4A2618223ABEF2005CB63A /* secure_cell.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A241E223A74AE005CB63A /* secure_cell.c */; }; - 9F4A2619223ABEF2005CB63A /* secure_comparator.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2432223A74AF005CB63A /* secure_comparator.c */; }; - 9F4A261A223ABEF2005CB63A /* secure_keygen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2427223A74AE005CB63A /* secure_keygen.c */; }; - 9F4A261B223ABEF2005CB63A /* secure_message_wrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2422223A74AE005CB63A /* secure_message_wrapper.c */; }; - 9F4A261C223ABEF2005CB63A /* secure_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2437223A74AF005CB63A /* secure_message.c */; }; - 9F4A261D223ABEF2005CB63A /* secure_session_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2435223A74AF005CB63A /* secure_session_message.c */; }; - 9F4A261E223ABEF2005CB63A /* secure_session_peer.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2429223A74AF005CB63A /* secure_session_peer.c */; }; - 9F4A261F223ABEF2005CB63A /* secure_session_serialize.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2425223A74AE005CB63A /* secure_session_serialize.c */; }; - 9F4A2620223ABEF2005CB63A /* secure_session_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A242E223A74AF005CB63A /* secure_session_utils.c */; }; - 9F4A2621223ABEF2005CB63A /* secure_session.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2438223A74AF005CB63A /* secure_session.c */; }; - 9F4A2622223ABEF2005CB63A /* sym_enc_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2431223A74AF005CB63A /* sym_enc_message.c */; }; - 9F6B385523D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */; }; - 9F6B385623D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */; }; - 9F70B2C1241D0FEC009CB629 /* objcthemis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B2D0241D1043009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; - 9F70B2D1241D1043009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; - 9F70B2D2241D1043009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; - 9F70B2D3241D1043009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; - 9F70B2D5241D1043009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; - 9F70B2D6241D1043009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; - 9F70B2D8241D1064009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; - 9F70B2D9241D1065009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; - 9F70B2DD241D16B4009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; - 9F70B2E1241D1753009CB629 /* objcthemis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */; }; - 9F70B2E2241D175E009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B2EC241D17A3009CB629 /* objcthemis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */; }; - 9F70B2F3241D17BF009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; - 9F70B2F4241D17C2009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; - 9F70B2F5241D17CB009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; - 9F70B2F6241D17CD009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; - 9F70B2F7241D17CE009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; - 9F70B2F8241D17D0009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; - 9F70B2F9241D17D1009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; - 9F70B2FA241D17D3009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; - 9F70B2FB241D17D8009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; - 9F70B2FD241D17F0009CB629 /* objcthemis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B2FE241D17F2009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B3072420E16E009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; - 9F70B3082420E16E009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; - 9F70B30A2420E16E009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; - 9F70B30B2420E16E009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; - 9F70B30C2420E16E009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; - 9F70B30D2420E16E009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; - 9F70B30E2420E16E009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; - 9F70B30F2420E16E009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; - 9F70B3112420E16E009CB629 /* objcthemis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */; }; - 9F70B3122420E16E009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; - 9F70B3142420E16E009CB629 /* objcthemis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B3152420E16E009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B31F2420E176009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; - 9F70B3202420E176009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; - 9F70B3222420E176009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; - 9F70B3232420E176009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; - 9F70B3242420E176009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; - 9F70B3252420E176009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; - 9F70B3262420E176009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; - 9F70B3272420E176009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; - 9F70B3292420E176009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; - 9F70B32A2420E176009CB629 /* objcthemis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */; }; - 9F70B32C2420E176009CB629 /* objcthemis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F70B32D2420E176009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9F874AB322CCB0D100E8DECA /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */; }; - 9F874AB422CCB0D100E8DECA /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */; }; - 9F874AB522CCB0D100E8DECA /* soter_rsa_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */; }; - 9F874AB622CCB0D100E8DECA /* soter_rsa_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */; }; - 9F98F32822CCEB0E008E14E6 /* soter_wipe.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F98F32722CCEB0E008E14E6 /* soter_wipe.c */; }; - 9F98F32922CCEB0E008E14E6 /* soter_wipe.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F98F32722CCEB0E008E14E6 /* soter_wipe.c */; }; - 9FBD853D223BFB5E009EAEB3 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 9F70B2C2241D0FEC009CB629 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 738B81062239809D00A9947C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9F00E8D6223C197900EC1EF3; - remoteInfo = "Themis (macOS)"; - }; - 9F70B2ED241D17A3009CB629 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 738B81062239809D00A9947C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9F4A24A0223A8D7F005CB63A; - remoteInfo = "Themis (iOS)"; - }; - 9F70B3052420E16E009CB629 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 738B81062239809D00A9947C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9F4A24A0223A8D7F005CB63A; - remoteInfo = "Themis (iOS)"; - }; - 9F70B31D2420E176009CB629 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 738B81062239809D00A9947C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9F00E8D6223C197900EC1EF3; - remoteInfo = "Themis (macOS)"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9F70B2DE241D172E009CB629 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 9F70B2C1241D0FEC009CB629 /* objcthemis.framework in Embed Frameworks */, - 9F70B2E2241D175E009CB629 /* openssl.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2FC241D17E4009CB629 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 9F70B2FD241D17F0009CB629 /* objcthemis.framework in Embed Frameworks */, - 9F70B2FE241D17F2009CB629 /* openssl.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3132420E16E009CB629 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 9F70B3142420E16E009CB629 /* objcthemis.framework in Embed Frameworks */, - 9F70B3152420E16E009CB629 /* openssl.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B32B2420E176009CB629 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 9F70B32C2420E176009CB629 /* objcthemis.framework in Embed Frameworks */, - 9F70B32D2420E176009CB629 /* openssl.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objcthemis.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F00E940223C1AFA00EC1EF3 /* openssl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = openssl.framework; path = Carthage/Build/Mac/openssl.framework; sourceTree = ""; }; - 9F33485723B38D9B00368291 /* soter_kdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_kdf.c; path = src/soter/openssl/soter_kdf.c; sourceTree = ""; }; - 9F34EA3023D9CA0A0079A1D7 /* secure_cell_seal_passphrase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = secure_cell_seal_passphrase.h; path = src/themis/secure_cell_seal_passphrase.h; sourceTree = ""; }; - 9F4A2342223A73B0005CB63A /* soter_hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_hash.h; path = src/soter/soter_hash.h; sourceTree = ""; }; - 9F4A2343223A73B0005CB63A /* soter_asym_cipher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_asym_cipher.h; path = src/soter/soter_asym_cipher.h; sourceTree = ""; }; - 9F4A2344223A73B0005CB63A /* soter_sign_rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_sign_rsa.h; path = src/soter/soter_sign_rsa.h; sourceTree = ""; }; - 9F4A2345223A73B0005CB63A /* soter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter.h; path = src/soter/soter.h; sourceTree = ""; }; - 9F4A2346223A73B0005CB63A /* soter_t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_t.h; path = src/soter/soter_t.h; sourceTree = ""; }; - 9F4A2347223A73B0005CB63A /* soter_rsa_key.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_rsa_key.h; path = src/soter/soter_rsa_key.h; sourceTree = ""; }; - 9F4A2348223A73B0005CB63A /* soter_container.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_container.c; path = src/soter/soter_container.c; sourceTree = ""; }; - 9F4A2349223A73B0005CB63A /* soter_hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_hmac.h; path = src/soter/soter_hmac.h; sourceTree = ""; }; - 9F4A234A223A73B0005CB63A /* soter_rsa_key_pair_gen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_rsa_key_pair_gen.h; path = src/soter/soter_rsa_key_pair_gen.h; sourceTree = ""; }; - 9F4A234B223A73B0005CB63A /* soter_asym_ka.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_asym_ka.h; path = src/soter/soter_asym_ka.h; sourceTree = ""; }; - 9F4A234C223A73B0005CB63A /* soter_error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_error.h; path = src/soter/soter_error.h; sourceTree = ""; }; - 9F4A234D223A73B0005CB63A /* soter_crc32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_crc32.c; path = src/soter/soter_crc32.c; sourceTree = ""; }; - 9F4A234E223A73B0005CB63A /* soter_crc32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_crc32.h; path = src/soter/soter_crc32.h; sourceTree = ""; }; - 9F4A234F223A73B1005CB63A /* soter_kdf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_kdf.h; path = src/soter/soter_kdf.h; sourceTree = ""; }; - 9F4A2350223A73B1005CB63A /* soter_asym_sign.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_asym_sign.h; path = src/soter/soter_asym_sign.h; sourceTree = ""; }; - 9F4A2351223A73B1005CB63A /* soter_sign.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_sign.c; path = src/soter/soter_sign.c; sourceTree = ""; }; - 9F4A2352223A73B1005CB63A /* soter_ec_key.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_ec_key.h; path = src/soter/soter_ec_key.h; sourceTree = ""; }; - 9F4A2353223A73B1005CB63A /* soter_hmac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_hmac.c; path = src/soter/soter_hmac.c; sourceTree = ""; }; - 9F4A2354223A73B1005CB63A /* soter_rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_rand.h; path = src/soter/soter_rand.h; sourceTree = ""; }; - 9F4A2355223A73B1005CB63A /* soter_sign_ecdsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_sign_ecdsa.h; path = src/soter/soter_sign_ecdsa.h; sourceTree = ""; }; - 9F4A2356223A73B1005CB63A /* soter_sym.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_sym.h; path = src/soter/soter_sym.h; sourceTree = ""; }; - 9F4A2357223A73B1005CB63A /* soter_kdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_kdf.c; path = src/soter/soter_kdf.c; sourceTree = ""; }; - 9F4A2358223A73B1005CB63A /* soter_container.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_container.h; path = src/soter/soter_container.h; sourceTree = ""; }; - 9F4A2384223A7425005CB63A /* soter_ecdsa_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_ecdsa_common.h; path = src/soter/openssl/soter_ecdsa_common.h; sourceTree = ""; }; - 9F4A2385223A7425005CB63A /* soter_rsa_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rsa_key.c; path = src/soter/openssl/soter_rsa_key.c; sourceTree = ""; }; - 9F4A2386223A7425005CB63A /* soter_rsa_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rsa_common.c; path = src/soter/openssl/soter_rsa_common.c; sourceTree = ""; }; - 9F4A2387223A7425005CB63A /* soter_ecdsa_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_ecdsa_common.c; path = src/soter/openssl/soter_ecdsa_common.c; sourceTree = ""; }; - 9F4A2388223A7425005CB63A /* soter_asym_ka.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_asym_ka.c; path = src/soter/openssl/soter_asym_ka.c; sourceTree = ""; }; - 9F4A2389223A7425005CB63A /* soter_sign_ecdsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_sign_ecdsa.c; path = src/soter/openssl/soter_sign_ecdsa.c; sourceTree = ""; }; - 9F4A238A223A7425005CB63A /* soter_rsa_key_pair_gen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rsa_key_pair_gen.c; path = src/soter/openssl/soter_rsa_key_pair_gen.c; sourceTree = ""; }; - 9F4A238B223A7425005CB63A /* soter_engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_engine.h; path = src/soter/openssl/soter_engine.h; sourceTree = ""; }; - 9F4A238C223A7425005CB63A /* soter_sign_rsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_sign_rsa.c; path = src/soter/openssl/soter_sign_rsa.c; sourceTree = ""; }; - 9F4A238D223A7426005CB63A /* soter_verify_rsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_verify_rsa.c; path = src/soter/openssl/soter_verify_rsa.c; sourceTree = ""; }; - 9F4A238E223A7426005CB63A /* soter_rand.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rand.c; path = src/soter/openssl/soter_rand.c; sourceTree = ""; }; - 9F4A238F223A7426005CB63A /* soter_asym_cipher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_asym_cipher.c; path = src/soter/openssl/soter_asym_cipher.c; sourceTree = ""; }; - 9F4A2390223A7426005CB63A /* soter_hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_hash.c; path = src/soter/openssl/soter_hash.c; sourceTree = ""; }; - 9F4A2391223A7426005CB63A /* soter_rsa_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_rsa_common.h; path = src/soter/openssl/soter_rsa_common.h; sourceTree = ""; }; - 9F4A2392223A7426005CB63A /* soter_ec_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_ec_key.c; path = src/soter/openssl/soter_ec_key.c; sourceTree = ""; }; - 9F4A2393223A7426005CB63A /* soter_verify_ecdsa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_verify_ecdsa.c; path = src/soter/openssl/soter_verify_ecdsa.c; sourceTree = ""; }; - 9F4A2394223A7426005CB63A /* soter_sym.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_sym.c; path = src/soter/openssl/soter_sym.c; sourceTree = ""; }; - 9F4A23A7223A745A005CB63A /* ge_frombytes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_frombytes.c; path = src/soter/ed25519/ge_frombytes.c; sourceTree = ""; }; - 9F4A23A8223A745A005CB63A /* fe_cmov.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_cmov.c; path = src/soter/ed25519/fe_cmov.c; sourceTree = ""; }; - 9F4A23A9223A745A005CB63A /* fe_sub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_sub.c; path = src/soter/ed25519/fe_sub.c; sourceTree = ""; }; - 9F4A23AA223A745A005CB63A /* ge_p3_sub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_sub.c; path = src/soter/ed25519/ge_p3_sub.c; sourceTree = ""; }; - 9F4A23AB223A745A005CB63A /* ge_p2_dbl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_p2_dbl.h; path = src/soter/ed25519/ge_p2_dbl.h; sourceTree = ""; }; - 9F4A23AC223A745A005CB63A /* fe_frombytes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_frombytes.c; path = src/soter/ed25519/fe_frombytes.c; sourceTree = ""; }; - 9F4A23AD223A745A005CB63A /* ge_tobytes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_tobytes.c; path = src/soter/ed25519/ge_tobytes.c; sourceTree = ""; }; - 9F4A23AE223A745A005CB63A /* pow22523.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pow22523.h; path = src/soter/ed25519/pow22523.h; sourceTree = ""; }; - 9F4A23AF223A745A005CB63A /* pow225521.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pow225521.h; path = src/soter/ed25519/pow225521.h; sourceTree = ""; }; - 9F4A23B0223A745A005CB63A /* ge_p3_dbl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_dbl.c; path = src/soter/ed25519/ge_p3_dbl.c; sourceTree = ""; }; - 9F4A23B1223A745A005CB63A /* fe_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_add.c; path = src/soter/ed25519/fe_add.c; sourceTree = ""; }; - 9F4A23B2223A745A005CB63A /* ge_p2_to_p3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p2_to_p3.c; path = src/soter/ed25519/ge_p2_to_p3.c; sourceTree = ""; }; - 9F4A23B3223A745B005CB63A /* fe_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_0.c; path = src/soter/ed25519/fe_0.c; sourceTree = ""; }; - 9F4A23B4223A745B005CB63A /* ge_p2_dbl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p2_dbl.c; path = src/soter/ed25519/ge_p2_dbl.c; sourceTree = ""; }; - 9F4A23B5223A745B005CB63A /* ge_sub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_sub.c; path = src/soter/ed25519/ge_sub.c; sourceTree = ""; }; - 9F4A23B6223A745B005CB63A /* fe_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_copy.c; path = src/soter/ed25519/fe_copy.c; sourceTree = ""; }; - 9F4A23B7223A745B005CB63A /* ge_p3_to_cached.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_to_cached.c; path = src/soter/ed25519/ge_p3_to_cached.c; sourceTree = ""; }; - 9F4A23B8223A745B005CB63A /* fe_sq2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_sq2.c; path = src/soter/ed25519/fe_sq2.c; sourceTree = ""; }; - 9F4A23B9223A745B005CB63A /* fe_isnonzero.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_isnonzero.c; path = src/soter/ed25519/fe_isnonzero.c; sourceTree = ""; }; - 9F4A23BA223A745B005CB63A /* ge_double_scalarmult.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_double_scalarmult.c; path = src/soter/ed25519/ge_double_scalarmult.c; sourceTree = ""; }; - 9F4A23BB223A745B005CB63A /* ge_p3_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_0.c; path = src/soter/ed25519/ge_p3_0.c; sourceTree = ""; }; - 9F4A23BC223A745B005CB63A /* fe_neg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_neg.c; path = src/soter/ed25519/fe_neg.c; sourceTree = ""; }; - 9F4A23BD223A745B005CB63A /* d2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = d2.h; path = src/soter/ed25519/d2.h; sourceTree = ""; }; - 9F4A23BE223A745B005CB63A /* fe_isnegative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_isnegative.c; path = src/soter/ed25519/fe_isnegative.c; sourceTree = ""; }; - 9F4A23BF223A745B005CB63A /* ge_precomp_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_precomp_0.c; path = src/soter/ed25519/ge_precomp_0.c; sourceTree = ""; }; - 9F4A23C0223A745B005CB63A /* ge_cmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_cmp.c; path = src/soter/ed25519/ge_cmp.c; sourceTree = ""; }; - 9F4A23C1223A745B005CB63A /* ge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge.h; path = src/soter/ed25519/ge.h; sourceTree = ""; }; - 9F4A23C2223A745B005CB63A /* sc_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sc_reduce.c; path = src/soter/ed25519/sc_reduce.c; sourceTree = ""; }; - 9F4A23C3223A745B005CB63A /* sc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sc.h; path = src/soter/ed25519/sc.h; sourceTree = ""; }; - 9F4A23C4223A745C005CB63A /* sqrtm1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sqrtm1.h; path = src/soter/ed25519/sqrtm1.h; sourceTree = ""; }; - 9F4A23C5223A745C005CB63A /* ge_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_utils.h; path = src/soter/ed25519/ge_utils.h; sourceTree = ""; }; - 9F4A23C6223A745C005CB63A /* ge_msub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_msub.c; path = src/soter/ed25519/ge_msub.c; sourceTree = ""; }; - 9F4A23C7223A745C005CB63A /* ge_p3_to_p2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_to_p2.c; path = src/soter/ed25519/ge_p3_to_p2.c; sourceTree = ""; }; - 9F4A23C8223A745C005CB63A /* base2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = base2.h; path = src/soter/ed25519/base2.h; sourceTree = ""; }; - 9F4A23C9223A745C005CB63A /* ge_p3_tobytes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p3_tobytes.c; path = src/soter/ed25519/ge_p3_tobytes.c; sourceTree = ""; }; - 9F4A23CA223A745C005CB63A /* ge_sub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_sub.h; path = src/soter/ed25519/ge_sub.h; sourceTree = ""; }; - 9F4A23CB223A745C005CB63A /* ge_add.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_add.h; path = src/soter/ed25519/ge_add.h; sourceTree = ""; }; - 9F4A23CC223A745C005CB63A /* ge_p1p1_to_p2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p1p1_to_p2.c; path = src/soter/ed25519/ge_p1p1_to_p2.c; sourceTree = ""; }; - 9F4A23CD223A745C005CB63A /* ge_madd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_madd.h; path = src/soter/ed25519/ge_madd.h; sourceTree = ""; }; - 9F4A23CE223A745C005CB63A /* sc_muladd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sc_muladd.c; path = src/soter/ed25519/sc_muladd.c; sourceTree = ""; }; - 9F4A23CF223A745C005CB63A /* fe_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_1.c; path = src/soter/ed25519/fe_1.c; sourceTree = ""; }; - 9F4A23D0223A745C005CB63A /* ge_msub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ge_msub.h; path = src/soter/ed25519/ge_msub.h; sourceTree = ""; }; - 9F4A23D1223A745C005CB63A /* fe_mul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_mul.c; path = src/soter/ed25519/fe_mul.c; sourceTree = ""; }; - 9F4A23D2223A745D005CB63A /* fe_tobytes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_tobytes.c; path = src/soter/ed25519/fe_tobytes.c; sourceTree = ""; }; - 9F4A23D3223A745D005CB63A /* fe_invert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_invert.c; path = src/soter/ed25519/fe_invert.c; sourceTree = ""; }; - 9F4A23D4223A745D005CB63A /* base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = base.h; path = src/soter/ed25519/base.h; sourceTree = ""; }; - 9F4A23D5223A745D005CB63A /* ge_frombytes_no_negate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_frombytes_no_negate.c; path = src/soter/ed25519/ge_frombytes_no_negate.c; sourceTree = ""; }; - 9F4A23D6223A745D005CB63A /* api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = api.h; path = src/soter/ed25519/api.h; sourceTree = ""; }; - 9F4A23D7223A745D005CB63A /* ge_p2_0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p2_0.c; path = src/soter/ed25519/ge_p2_0.c; sourceTree = ""; }; - 9F4A23D8223A745D005CB63A /* gen_rand_32.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gen_rand_32.c; path = src/soter/ed25519/gen_rand_32.c; sourceTree = ""; }; - 9F4A23D9223A745D005CB63A /* d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = d.h; path = src/soter/ed25519/d.h; sourceTree = ""; }; - 9F4A23DA223A745D005CB63A /* ge_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_add.c; path = src/soter/ed25519/ge_add.c; sourceTree = ""; }; - 9F4A23DB223A745D005CB63A /* ge_madd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_madd.c; path = src/soter/ed25519/ge_madd.c; sourceTree = ""; }; - 9F4A23DC223A745D005CB63A /* ge_p1p1_to_p3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_p1p1_to_p3.c; path = src/soter/ed25519/ge_p1p1_to_p3.c; sourceTree = ""; }; - 9F4A23DD223A745D005CB63A /* fe_pow22523.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_pow22523.c; path = src/soter/ed25519/fe_pow22523.c; sourceTree = ""; }; - 9F4A23DE223A745D005CB63A /* fe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fe.h; path = src/soter/ed25519/fe.h; sourceTree = ""; }; - 9F4A23DF223A745D005CB63A /* ge_scalarmult_base.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_scalarmult_base.c; path = src/soter/ed25519/ge_scalarmult_base.c; sourceTree = ""; }; - 9F4A23E0223A745D005CB63A /* fe_sq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fe_sq.c; path = src/soter/ed25519/fe_sq.c; sourceTree = ""; }; - 9F4A23E1223A745E005CB63A /* ge_scalarmult.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ge_scalarmult.c; path = src/soter/ed25519/ge_scalarmult.c; sourceTree = ""; }; - 9F4A241E223A74AE005CB63A /* secure_cell.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_cell.c; path = src/themis/secure_cell.c; sourceTree = ""; }; - 9F4A241F223A74AE005CB63A /* secure_comparator_t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_comparator_t.h; path = src/themis/secure_comparator_t.h; sourceTree = ""; }; - 9F4A2420223A74AE005CB63A /* secure_message_wrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_message_wrapper.h; path = src/themis/secure_message_wrapper.h; sourceTree = ""; }; - 9F4A2421223A74AE005CB63A /* secure_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_message.h; path = src/themis/secure_message.h; sourceTree = ""; }; - 9F4A2422223A74AE005CB63A /* secure_message_wrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_message_wrapper.c; path = src/themis/secure_message_wrapper.c; sourceTree = ""; }; - 9F4A2424223A74AE005CB63A /* secure_keygen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_keygen.h; path = src/themis/secure_keygen.h; sourceTree = ""; }; - 9F4A2425223A74AE005CB63A /* secure_session_serialize.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_session_serialize.c; path = src/themis/secure_session_serialize.c; sourceTree = ""; }; - 9F4A2426223A74AE005CB63A /* secure_session_t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_session_t.h; path = src/themis/secure_session_t.h; sourceTree = ""; }; - 9F4A2427223A74AE005CB63A /* secure_keygen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_keygen.c; path = src/themis/secure_keygen.c; sourceTree = ""; }; - 9F4A2428223A74AE005CB63A /* secure_session_peer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_session_peer.h; path = src/themis/secure_session_peer.h; sourceTree = ""; }; - 9F4A2429223A74AF005CB63A /* secure_session_peer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_session_peer.c; path = src/themis/secure_session_peer.c; sourceTree = ""; }; - 9F4A242A223A74AF005CB63A /* message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = message.c; path = src/themis/message.c; sourceTree = ""; }; - 9F4A242B223A74AF005CB63A /* sym_enc_message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sym_enc_message.h; path = src/themis/sym_enc_message.h; sourceTree = ""; }; - 9F4A242C223A74AF005CB63A /* secure_cell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_cell.h; path = src/themis/secure_cell.h; sourceTree = ""; }; - 9F4A242D223A74AF005CB63A /* secure_session.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_session.h; path = src/themis/secure_session.h; sourceTree = ""; }; - 9F4A242E223A74AF005CB63A /* secure_session_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_session_utils.c; path = src/themis/secure_session_utils.c; sourceTree = ""; }; - 9F4A242F223A74AF005CB63A /* themis_error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = themis_error.h; path = src/themis/themis_error.h; sourceTree = ""; }; - 9F4A2430223A74AF005CB63A /* secure_cell_alg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_cell_alg.h; path = src/themis/secure_cell_alg.h; sourceTree = ""; }; - 9F4A2431223A74AF005CB63A /* sym_enc_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sym_enc_message.c; path = src/themis/sym_enc_message.c; sourceTree = ""; }; - 9F4A2432223A74AF005CB63A /* secure_comparator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_comparator.c; path = src/themis/secure_comparator.c; sourceTree = ""; }; - 9F4A2433223A74AF005CB63A /* themis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = themis.h; path = src/themis/themis.h; sourceTree = ""; }; - 9F4A2434223A74AF005CB63A /* secure_comparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_comparator.h; path = src/themis/secure_comparator.h; sourceTree = ""; }; - 9F4A2435223A74AF005CB63A /* secure_session_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_session_message.c; path = src/themis/secure_session_message.c; sourceTree = ""; }; - 9F4A2436223A74AF005CB63A /* message.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = message.h; path = src/themis/message.h; sourceTree = ""; }; - 9F4A2437223A74AF005CB63A /* secure_message.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_message.c; path = src/themis/secure_message.c; sourceTree = ""; }; - 9F4A2438223A74AF005CB63A /* secure_session.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_session.c; path = src/themis/secure_session.c; sourceTree = ""; }; - 9F4A2439223A74AF005CB63A /* secure_session_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_session_utils.h; path = src/themis/secure_session_utils.h; sourceTree = ""; }; - 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = objcthemis.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F4A24AA223A8E15005CB63A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "src/wrappers/themis/Obj-C/Themis/Info.plist"; sourceTree = ""; }; - 9F4A24B0223A8FA7005CB63A /* scell_seal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scell_seal.m; path = "src/wrappers/themis/Obj-C/objcthemis/scell_seal.m"; sourceTree = ""; }; - 9F4A24B1223A8FA7005CB63A /* ssession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ssession.h; path = "src/wrappers/themis/Obj-C/objcthemis/ssession.h"; sourceTree = ""; }; - 9F4A24B2223A8FA7005CB63A /* ssession_transport_interface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ssession_transport_interface.m; path = "src/wrappers/themis/Obj-C/objcthemis/ssession_transport_interface.m"; sourceTree = ""; }; - 9F4A24B3223A8FA7005CB63A /* scell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scell.h; path = "src/wrappers/themis/Obj-C/objcthemis/scell.h"; sourceTree = ""; }; - 9F4A24B4223A8FA8005CB63A /* scell_context_imprint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scell_context_imprint.m; path = "src/wrappers/themis/Obj-C/objcthemis/scell_context_imprint.m"; sourceTree = ""; }; - 9F4A24B5223A8FA8005CB63A /* objcthemis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = objcthemis.h; path = "src/wrappers/themis/Obj-C/objcthemis/objcthemis.h"; sourceTree = ""; }; - 9F4A24B6223A8FA8005CB63A /* scomparator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scomparator.m; path = "src/wrappers/themis/Obj-C/objcthemis/scomparator.m"; sourceTree = ""; }; - 9F4A24B7223A8FA8005CB63A /* skeygen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = skeygen.m; path = "src/wrappers/themis/Obj-C/objcthemis/skeygen.m"; sourceTree = ""; }; - 9F4A24B8223A8FA8005CB63A /* smessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = smessage.m; path = "src/wrappers/themis/Obj-C/objcthemis/smessage.m"; sourceTree = ""; }; - 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scell_context_imprint.h; path = "src/wrappers/themis/Obj-C/objcthemis/scell_context_imprint.h"; sourceTree = ""; }; - 9F4A24BA223A8FA8005CB63A /* ssession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ssession.m; path = "src/wrappers/themis/Obj-C/objcthemis/ssession.m"; sourceTree = ""; }; - 9F4A24BB223A8FA8005CB63A /* serror.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = serror.h; path = "src/wrappers/themis/Obj-C/objcthemis/serror.h"; sourceTree = ""; }; - 9F4A24BC223A8FA8005CB63A /* scell_seal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scell_seal.h; path = "src/wrappers/themis/Obj-C/objcthemis/scell_seal.h"; sourceTree = ""; }; - 9F4A24BD223A8FA8005CB63A /* scell_token.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scell_token.m; path = "src/wrappers/themis/Obj-C/objcthemis/scell_token.m"; sourceTree = ""; }; - 9F4A24BE223A8FA8005CB63A /* scell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scell.m; path = "src/wrappers/themis/Obj-C/objcthemis/scell.m"; sourceTree = ""; }; - 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ssession_transport_interface.h; path = "src/wrappers/themis/Obj-C/objcthemis/ssession_transport_interface.h"; sourceTree = ""; }; - 9F4A24C0223A8FA8005CB63A /* scomparator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scomparator.h; path = "src/wrappers/themis/Obj-C/objcthemis/scomparator.h"; sourceTree = ""; }; - 9F4A24C1223A8FA8005CB63A /* skeygen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = skeygen.h; path = "src/wrappers/themis/Obj-C/objcthemis/skeygen.h"; sourceTree = ""; }; - 9F4A24C2223A8FA8005CB63A /* smessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smessage.h; path = "src/wrappers/themis/Obj-C/objcthemis/smessage.h"; sourceTree = ""; }; - 9F4A24C3223A8FA8005CB63A /* scell_token.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scell_token.h; path = "src/wrappers/themis/Obj-C/objcthemis/scell_token.h"; sourceTree = ""; }; - 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_cell_seal_passphrase.c; path = src/themis/secure_cell_seal_passphrase.c; sourceTree = ""; }; - 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 5, macOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureComparatorTests.m; path = tests/objcthemis/objthemis/SecureComparatorTests.m; sourceTree = ""; }; - 9F70B2C8241D1042009CB629 /* SecureCellTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureCellTests.m; path = tests/objcthemis/objthemis/SecureCellTests.m; sourceTree = ""; }; - 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "objthemis-Bridging-Header.h"; path = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; sourceTree = ""; }; - 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureComparatorTestsSwift.swift; path = tests/objcthemis/objthemis/SecureComparatorTestsSwift.swift; sourceTree = ""; }; - 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureMessageTestsSwift.swift; path = tests/objcthemis/objthemis/SecureMessageTestsSwift.swift; sourceTree = ""; }; - 9F70B2CC241D1043009CB629 /* StaticKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StaticKeys.h; path = tests/objcthemis/objthemis/StaticKeys.h; sourceTree = ""; }; - 9F70B2CD241D1043009CB629 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = tests/objcthemis/objthemis/Info.plist; sourceTree = ""; }; - 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureMessageTests.m; path = tests/objcthemis/objthemis/SecureMessageTests.m; sourceTree = ""; }; - 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureCellTestsSwift.swift; path = tests/objcthemis/objthemis/SecureCellTestsSwift.swift; sourceTree = ""; }; - 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 5, iOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 4, iOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 4, macOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_ec_key.c; path = src/soter/soter_ec_key.c; sourceTree = ""; }; - 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rsa_key.c; path = src/soter/soter_rsa_key.c; sourceTree = ""; }; - 9F98F32422CCEA5D008E14E6 /* soter_wipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_wipe.h; path = src/soter/soter_wipe.h; sourceTree = ""; }; - 9F98F32722CCEB0E008E14E6 /* soter_wipe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_wipe.c; path = src/soter/openssl/soter_wipe.c; sourceTree = ""; }; - 9FB1BC9A233BEC9900930861 /* themis_portable_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = themis_portable_endian.h; path = src/themis/themis_portable_endian.h; sourceTree = ""; }; - 9FB1BC9D233BECB900930861 /* soter_portable_endian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_portable_endian.h; path = src/soter/soter_portable_endian.h; sourceTree = ""; }; - 9FBD853C223BFB5E009EAEB3 /* openssl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = openssl.framework; path = Carthage/Build/iOS/openssl.framework; sourceTree = ""; }; - 9FD4C3522260D41700132A88 /* soter_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = soter_api.h; path = src/soter/soter_api.h; sourceTree = ""; }; - 9FD4C3532260D43B00132A88 /* themis_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = themis_api.h; path = src/themis/themis_api.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 9F00E8D4223C197900EC1EF3 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F00E941223C1AFA00EC1EF3 /* openssl.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F4A249E223A8D7F005CB63A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9FBD853D223BFB5E009EAEB3 /* openssl.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2B9241D0FEC009CB629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2DD241D16B4009CB629 /* openssl.framework in Frameworks */, - 9F70B2E1241D1753009CB629 /* objcthemis.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2E4241D17A3009CB629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2EC241D17A3009CB629 /* objcthemis.framework in Frameworks */, - 9F70B2FB241D17D8009CB629 /* openssl.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3102420E16E009CB629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B3112420E16E009CB629 /* objcthemis.framework in Frameworks */, - 9F70B3122420E16E009CB629 /* openssl.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3282420E176009CB629 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B3292420E176009CB629 /* openssl.framework in Frameworks */, - 9F70B32A2420E176009CB629 /* objcthemis.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 738B81052239809D00A9947C = { - isa = PBXGroup; - children = ( - 9F4A24A9223A8E01005CB63A /* Themis */, - 9F70B2B7241D0FA9009CB629 /* Tests */, - 738B81102239809D00A9947C /* Products */, - 9F4A2476223A885F005CB63A /* Frameworks */, - ); - sourceTree = ""; - }; - 738B81102239809D00A9947C /* Products */ = { - isa = PBXGroup; - children = ( - 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */, - 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */, - 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */, - 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */, - 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */, - 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */, - ); - name = Products; - sourceTree = ""; - }; - 9F4A2370223A73B6005CB63A /* soter */ = { - isa = PBXGroup; - children = ( - 9F4A23A6223A742F005CB63A /* ed25519 */, - 9F4A2383223A740E005CB63A /* openssl */, - 9FD4C3522260D41700132A88 /* soter_api.h */, - 9F4A2343223A73B0005CB63A /* soter_asym_cipher.h */, - 9F4A234B223A73B0005CB63A /* soter_asym_ka.h */, - 9F4A2350223A73B1005CB63A /* soter_asym_sign.h */, - 9F4A2348223A73B0005CB63A /* soter_container.c */, - 9F4A2358223A73B1005CB63A /* soter_container.h */, - 9F4A234D223A73B0005CB63A /* soter_crc32.c */, - 9F4A234E223A73B0005CB63A /* soter_crc32.h */, - 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */, - 9F4A2352223A73B1005CB63A /* soter_ec_key.h */, - 9F4A234C223A73B0005CB63A /* soter_error.h */, - 9F4A2342223A73B0005CB63A /* soter_hash.h */, - 9F4A2353223A73B1005CB63A /* soter_hmac.c */, - 9F4A2349223A73B0005CB63A /* soter_hmac.h */, - 9F4A2357223A73B1005CB63A /* soter_kdf.c */, - 9F4A234F223A73B1005CB63A /* soter_kdf.h */, - 9FB1BC9D233BECB900930861 /* soter_portable_endian.h */, - 9F4A2354223A73B1005CB63A /* soter_rand.h */, - 9F4A234A223A73B0005CB63A /* soter_rsa_key_pair_gen.h */, - 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */, - 9F4A2347223A73B0005CB63A /* soter_rsa_key.h */, - 9F4A2355223A73B1005CB63A /* soter_sign_ecdsa.h */, - 9F4A2344223A73B0005CB63A /* soter_sign_rsa.h */, - 9F4A2351223A73B1005CB63A /* soter_sign.c */, - 9F4A2356223A73B1005CB63A /* soter_sym.h */, - 9F98F32422CCEA5D008E14E6 /* soter_wipe.h */, - 9F4A2346223A73B0005CB63A /* soter_t.h */, - 9F4A2345223A73B0005CB63A /* soter.h */, - ); - name = soter; - sourceTree = ""; - }; - 9F4A2383223A740E005CB63A /* openssl */ = { - isa = PBXGroup; - children = ( - 9F4A238F223A7426005CB63A /* soter_asym_cipher.c */, - 9F4A2388223A7425005CB63A /* soter_asym_ka.c */, - 9F4A2392223A7426005CB63A /* soter_ec_key.c */, - 9F4A2387223A7425005CB63A /* soter_ecdsa_common.c */, - 9F4A2384223A7425005CB63A /* soter_ecdsa_common.h */, - 9F4A238B223A7425005CB63A /* soter_engine.h */, - 9F4A2390223A7426005CB63A /* soter_hash.c */, - 9F33485723B38D9B00368291 /* soter_kdf.c */, - 9F4A238E223A7426005CB63A /* soter_rand.c */, - 9F4A2386223A7425005CB63A /* soter_rsa_common.c */, - 9F4A2391223A7426005CB63A /* soter_rsa_common.h */, - 9F4A238A223A7425005CB63A /* soter_rsa_key_pair_gen.c */, - 9F4A2385223A7425005CB63A /* soter_rsa_key.c */, - 9F4A2389223A7425005CB63A /* soter_sign_ecdsa.c */, - 9F4A238C223A7425005CB63A /* soter_sign_rsa.c */, - 9F4A2394223A7426005CB63A /* soter_sym.c */, - 9F4A2393223A7426005CB63A /* soter_verify_ecdsa.c */, - 9F4A238D223A7426005CB63A /* soter_verify_rsa.c */, - 9F98F32722CCEB0E008E14E6 /* soter_wipe.c */, - ); - name = openssl; - sourceTree = ""; - }; - 9F4A23A6223A742F005CB63A /* ed25519 */ = { - isa = PBXGroup; - children = ( - 9F4A23D6223A745D005CB63A /* api.h */, - 9F4A23D4223A745D005CB63A /* base.h */, - 9F4A23C8223A745C005CB63A /* base2.h */, - 9F4A23D9223A745D005CB63A /* d.h */, - 9F4A23BD223A745B005CB63A /* d2.h */, - 9F4A23B3223A745B005CB63A /* fe_0.c */, - 9F4A23CF223A745C005CB63A /* fe_1.c */, - 9F4A23B1223A745A005CB63A /* fe_add.c */, - 9F4A23A8223A745A005CB63A /* fe_cmov.c */, - 9F4A23B6223A745B005CB63A /* fe_copy.c */, - 9F4A23AC223A745A005CB63A /* fe_frombytes.c */, - 9F4A23D3223A745D005CB63A /* fe_invert.c */, - 9F4A23BE223A745B005CB63A /* fe_isnegative.c */, - 9F4A23B9223A745B005CB63A /* fe_isnonzero.c */, - 9F4A23D1223A745C005CB63A /* fe_mul.c */, - 9F4A23BC223A745B005CB63A /* fe_neg.c */, - 9F4A23DD223A745D005CB63A /* fe_pow22523.c */, - 9F4A23E0223A745D005CB63A /* fe_sq.c */, - 9F4A23B8223A745B005CB63A /* fe_sq2.c */, - 9F4A23A9223A745A005CB63A /* fe_sub.c */, - 9F4A23D2223A745D005CB63A /* fe_tobytes.c */, - 9F4A23DE223A745D005CB63A /* fe.h */, - 9F4A23DA223A745D005CB63A /* ge_add.c */, - 9F4A23CB223A745C005CB63A /* ge_add.h */, - 9F4A23C0223A745B005CB63A /* ge_cmp.c */, - 9F4A23BA223A745B005CB63A /* ge_double_scalarmult.c */, - 9F4A23D5223A745D005CB63A /* ge_frombytes_no_negate.c */, - 9F4A23A7223A745A005CB63A /* ge_frombytes.c */, - 9F4A23DB223A745D005CB63A /* ge_madd.c */, - 9F4A23CD223A745C005CB63A /* ge_madd.h */, - 9F4A23C6223A745C005CB63A /* ge_msub.c */, - 9F4A23D0223A745C005CB63A /* ge_msub.h */, - 9F4A23CC223A745C005CB63A /* ge_p1p1_to_p2.c */, - 9F4A23DC223A745D005CB63A /* ge_p1p1_to_p3.c */, - 9F4A23D7223A745D005CB63A /* ge_p2_0.c */, - 9F4A23B4223A745B005CB63A /* ge_p2_dbl.c */, - 9F4A23AB223A745A005CB63A /* ge_p2_dbl.h */, - 9F4A23B2223A745A005CB63A /* ge_p2_to_p3.c */, - 9F4A23BB223A745B005CB63A /* ge_p3_0.c */, - 9F4A23B0223A745A005CB63A /* ge_p3_dbl.c */, - 9F4A23AA223A745A005CB63A /* ge_p3_sub.c */, - 9F4A23B7223A745B005CB63A /* ge_p3_to_cached.c */, - 9F4A23C7223A745C005CB63A /* ge_p3_to_p2.c */, - 9F4A23C9223A745C005CB63A /* ge_p3_tobytes.c */, - 9F4A23BF223A745B005CB63A /* ge_precomp_0.c */, - 9F4A23DF223A745D005CB63A /* ge_scalarmult_base.c */, - 9F4A23E1223A745E005CB63A /* ge_scalarmult.c */, - 9F4A23B5223A745B005CB63A /* ge_sub.c */, - 9F4A23CA223A745C005CB63A /* ge_sub.h */, - 9F4A23AD223A745A005CB63A /* ge_tobytes.c */, - 9F4A23C5223A745C005CB63A /* ge_utils.h */, - 9F4A23C1223A745B005CB63A /* ge.h */, - 9F4A23D8223A745D005CB63A /* gen_rand_32.c */, - 9F4A23AE223A745A005CB63A /* pow22523.h */, - 9F4A23AF223A745A005CB63A /* pow225521.h */, - 9F4A23CE223A745C005CB63A /* sc_muladd.c */, - 9F4A23C2223A745B005CB63A /* sc_reduce.c */, - 9F4A23C3223A745B005CB63A /* sc.h */, - 9F4A23C4223A745C005CB63A /* sqrtm1.h */, - ); - name = ed25519; - sourceTree = ""; - }; - 9F4A241D223A7493005CB63A /* themis */ = { - isa = PBXGroup; - children = ( - 9F4A242A223A74AF005CB63A /* message.c */, - 9F4A2436223A74AF005CB63A /* message.h */, - 9F4A2430223A74AF005CB63A /* secure_cell_alg.h */, - 9F4A241E223A74AE005CB63A /* secure_cell.c */, - 9F4A242C223A74AF005CB63A /* secure_cell.h */, - 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */, - 9F34EA3023D9CA0A0079A1D7 /* secure_cell_seal_passphrase.h */, - 9F4A241F223A74AE005CB63A /* secure_comparator_t.h */, - 9F4A2432223A74AF005CB63A /* secure_comparator.c */, - 9F4A2434223A74AF005CB63A /* secure_comparator.h */, - 9F4A2427223A74AE005CB63A /* secure_keygen.c */, - 9F4A2424223A74AE005CB63A /* secure_keygen.h */, - 9F4A2422223A74AE005CB63A /* secure_message_wrapper.c */, - 9F4A2420223A74AE005CB63A /* secure_message_wrapper.h */, - 9F4A2437223A74AF005CB63A /* secure_message.c */, - 9F4A2421223A74AE005CB63A /* secure_message.h */, - 9F4A2435223A74AF005CB63A /* secure_session_message.c */, - 9F4A2429223A74AF005CB63A /* secure_session_peer.c */, - 9F4A2428223A74AE005CB63A /* secure_session_peer.h */, - 9F4A2425223A74AE005CB63A /* secure_session_serialize.c */, - 9F4A2426223A74AE005CB63A /* secure_session_t.h */, - 9F4A242E223A74AF005CB63A /* secure_session_utils.c */, - 9F4A2439223A74AF005CB63A /* secure_session_utils.h */, - 9F4A2438223A74AF005CB63A /* secure_session.c */, - 9F4A242D223A74AF005CB63A /* secure_session.h */, - 9F4A2431223A74AF005CB63A /* sym_enc_message.c */, - 9F4A242B223A74AF005CB63A /* sym_enc_message.h */, - 9FD4C3532260D43B00132A88 /* themis_api.h */, - 9F4A242F223A74AF005CB63A /* themis_error.h */, - 9FB1BC9A233BEC9900930861 /* themis_portable_endian.h */, - 9F4A2433223A74AF005CB63A /* themis.h */, - ); - name = themis; - sourceTree = ""; - }; - 9F4A2476223A885F005CB63A /* Frameworks */ = { - isa = PBXGroup; - children = ( - 9F70B2DC241D16A9009CB629 /* iOS */, - 9F70B2DB241D16A2009CB629 /* macOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 9F4A24A9223A8E01005CB63A /* Themis */ = { - isa = PBXGroup; - children = ( - 9F4A24AF223A8F85005CB63A /* objcthemis */, - 9F4A2370223A73B6005CB63A /* soter */, - 9F4A241D223A7493005CB63A /* themis */, - 9F4A24AA223A8E15005CB63A /* Info.plist */, - ); - name = Themis; - sourceTree = ""; - }; - 9F4A24AF223A8F85005CB63A /* objcthemis */ = { - isa = PBXGroup; - children = ( - 9F4A24B5223A8FA8005CB63A /* objcthemis.h */, - 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */, - 9F4A24B4223A8FA8005CB63A /* scell_context_imprint.m */, - 9F4A24BC223A8FA8005CB63A /* scell_seal.h */, - 9F4A24B0223A8FA7005CB63A /* scell_seal.m */, - 9F4A24C3223A8FA8005CB63A /* scell_token.h */, - 9F4A24BD223A8FA8005CB63A /* scell_token.m */, - 9F4A24B3223A8FA7005CB63A /* scell.h */, - 9F4A24BE223A8FA8005CB63A /* scell.m */, - 9F4A24C0223A8FA8005CB63A /* scomparator.h */, - 9F4A24B6223A8FA8005CB63A /* scomparator.m */, - 9F4A24BB223A8FA8005CB63A /* serror.h */, - 9F4A24C1223A8FA8005CB63A /* skeygen.h */, - 9F4A24B7223A8FA8005CB63A /* skeygen.m */, - 9F4A24C2223A8FA8005CB63A /* smessage.h */, - 9F4A24B8223A8FA8005CB63A /* smessage.m */, - 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */, - 9F4A24B2223A8FA7005CB63A /* ssession_transport_interface.m */, - 9F4A24B1223A8FA7005CB63A /* ssession.h */, - 9F4A24BA223A8FA8005CB63A /* ssession.m */, - ); - name = objcthemis; - sourceTree = ""; - }; - 9F70B2B7241D0FA9009CB629 /* Tests */ = { - isa = PBXGroup; - children = ( - 9F70B2C8241D1042009CB629 /* SecureCellTests.m */, - 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */, - 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */, - 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */, - 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */, - 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */, - 9F70B2CC241D1043009CB629 /* StaticKeys.h */, - 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */, - 9F70B2CD241D1043009CB629 /* Info.plist */, - ); - name = Tests; - sourceTree = ""; - }; - 9F70B2DB241D16A2009CB629 /* macOS */ = { - isa = PBXGroup; - children = ( - 9F00E940223C1AFA00EC1EF3 /* openssl.framework */, - ); - name = macOS; - sourceTree = ""; - }; - 9F70B2DC241D16A9009CB629 /* iOS */ = { - isa = PBXGroup; - children = ( - 9FBD853C223BFB5E009EAEB3 /* openssl.framework */, - ); - name = iOS; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 9F00E8D2223C197900EC1EF3 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers */, - 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers */, - 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers */, - 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers */, - 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers */, - 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers */, - 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers */, - 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers */, - 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers */, - 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers */, - 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F4A249C223A8D7F005CB63A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers */, - 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers */, - 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers */, - 9F4A24DD223A918A005CB63A /* scell_token.h in Headers */, - 9F4A24DE223A918A005CB63A /* scell.h in Headers */, - 9F4A24DF223A918A005CB63A /* scomparator.h in Headers */, - 9F4A24E0223A918A005CB63A /* serror.h in Headers */, - 9F4A24E1223A918A005CB63A /* skeygen.h in Headers */, - 9F4A24E2223A918A005CB63A /* smessage.h in Headers */, - 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers */, - 9F4A24E4223A918A005CB63A /* ssession.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2D7241D105D009CB629 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2D8241D1064009CB629 /* objthemis-Bridging-Header.h in Headers */, - 9F70B2D9241D1065009CB629 /* StaticKeys.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2F2241D17B9009CB629 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2F3241D17BF009CB629 /* objthemis-Bridging-Header.h in Headers */, - 9F70B2F4241D17C2009CB629 /* StaticKeys.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3062420E16E009CB629 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B3072420E16E009CB629 /* objthemis-Bridging-Header.h in Headers */, - 9F70B3082420E16E009CB629 /* StaticKeys.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B31E2420E176009CB629 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B31F2420E176009CB629 /* objthemis-Bridging-Header.h in Headers */, - 9F70B3202420E176009CB629 /* StaticKeys.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F00E8DE223C197A00EC1EF3 /* Build configuration list for PBXNativeTarget "Themis (macOS)" */; - buildPhases = ( - 9F00E8D2223C197900EC1EF3 /* Headers */, - 9F00E8D3223C197900EC1EF3 /* Sources */, - 9F00E8D4223C197900EC1EF3 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Themis (macOS)"; - productName = "Themis (macOS)"; - productReference = 9F00E8D7223C197900EC1EF3 /* objcthemis.framework */; - productType = "com.apple.product-type.framework"; - }; - 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F4A24A6223A8D7F005CB63A /* Build configuration list for PBXNativeTarget "Themis (iOS)" */; - buildPhases = ( - 9F4A249C223A8D7F005CB63A /* Headers */, - 9F4A249D223A8D7F005CB63A /* Sources */, - 9F4A249E223A8D7F005CB63A /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Themis (iOS)"; - productName = Themis; - productReference = 9F4A24A1223A8D7F005CB63A /* objcthemis.framework */; - productType = "com.apple.product-type.framework"; - }; - 9F70B2BB241D0FEC009CB629 /* Test Themis (Swift 5, macOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F70B2C4241D0FEC009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, macOS)" */; - buildPhases = ( - 9F70B2D7241D105D009CB629 /* Headers */, - 9F70B2B8241D0FEC009CB629 /* Sources */, - 9F70B2B9241D0FEC009CB629 /* Frameworks */, - 9F70B2DE241D172E009CB629 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 9F70B2C3241D0FEC009CB629 /* PBXTargetDependency */, - ); - name = "Test Themis (Swift 5, macOS)"; - productName = "Test Themis (macOS)"; - productReference = 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 9F70B2E6241D17A3009CB629 /* Test Themis (Swift 5, iOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F70B2EF241D17A3009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, iOS)" */; - buildPhases = ( - 9F70B2F2241D17B9009CB629 /* Headers */, - 9F70B2E3241D17A3009CB629 /* Sources */, - 9F70B2E4241D17A3009CB629 /* Frameworks */, - 9F70B2FC241D17E4009CB629 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 9F70B2EE241D17A3009CB629 /* PBXTargetDependency */, - ); - name = "Test Themis (Swift 5, iOS)"; - productName = "Test Themis (iOS)"; - productReference = 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 9F70B3032420E16E009CB629 /* Test Themis (Swift 4, iOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F70B3162420E16E009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, iOS)" */; - buildPhases = ( - 9F70B3062420E16E009CB629 /* Headers */, - 9F70B3092420E16E009CB629 /* Sources */, - 9F70B3102420E16E009CB629 /* Frameworks */, - 9F70B3132420E16E009CB629 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 9F70B3042420E16E009CB629 /* PBXTargetDependency */, - ); - name = "Test Themis (Swift 4, iOS)"; - productName = "Test Themis (iOS)"; - productReference = 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 9F70B31B2420E176009CB629 /* Test Themis (Swift 4, macOS) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9F70B32E2420E176009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, macOS)" */; - buildPhases = ( - 9F70B31E2420E176009CB629 /* Headers */, - 9F70B3212420E176009CB629 /* Sources */, - 9F70B3282420E176009CB629 /* Frameworks */, - 9F70B32B2420E176009CB629 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 9F70B31C2420E176009CB629 /* PBXTargetDependency */, - ); - name = "Test Themis (Swift 4, macOS)"; - productName = "Test Themis (macOS)"; - productReference = 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 738B81062239809D00A9947C /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1120; - ORGANIZATIONNAME = "Cossack Labs"; - TargetAttributes = { - 9F00E8D6223C197900EC1EF3 = { - CreatedOnToolsVersion = 10.1; - }; - 9F4A24A0223A8D7F005CB63A = { - CreatedOnToolsVersion = 10.1; - }; - 9F70B2BB241D0FEC009CB629 = { - CreatedOnToolsVersion = 11.2.1; - LastSwiftMigration = 1120; - }; - 9F70B2E6241D17A3009CB629 = { - CreatedOnToolsVersion = 11.2.1; - }; - }; - }; - buildConfigurationList = 738B81092239809D00A9947C /* Build configuration list for PBXProject "ObjCThemis" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 738B81052239809D00A9947C; - productRefGroup = 738B81102239809D00A9947C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */, - 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */, - 9F70B3032420E16E009CB629 /* Test Themis (Swift 4, iOS) */, - 9F70B31B2420E176009CB629 /* Test Themis (Swift 4, macOS) */, - 9F70B2E6241D17A3009CB629 /* Test Themis (Swift 5, iOS) */, - 9F70B2BB241D0FEC009CB629 /* Test Themis (Swift 5, macOS) */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 9F00E8D3223C197900EC1EF3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F00E934223C1AE600EC1EF3 /* message.c in Sources */, - 9F00E935223C1AE600EC1EF3 /* secure_cell.c in Sources */, - 9F00E936223C1AE600EC1EF3 /* secure_comparator.c in Sources */, - 9F00E937223C1AE600EC1EF3 /* secure_keygen.c in Sources */, - 9F00E938223C1AE600EC1EF3 /* secure_message_wrapper.c in Sources */, - 9F00E939223C1AE600EC1EF3 /* secure_message.c in Sources */, - 9F00E93A223C1AE600EC1EF3 /* secure_session_message.c in Sources */, - 9F00E93B223C1AE600EC1EF3 /* secure_session_peer.c in Sources */, - 9F00E93C223C1AE600EC1EF3 /* secure_session_serialize.c in Sources */, - 9F00E93D223C1AE600EC1EF3 /* secure_session_utils.c in Sources */, - 9F00E93E223C1AE600EC1EF3 /* secure_session.c in Sources */, - 9F00E93F223C1AE600EC1EF3 /* sym_enc_message.c in Sources */, - 9F00E92F223C1ACF00EC1EF3 /* soter_container.c in Sources */, - 9F00E930223C1ACF00EC1EF3 /* soter_crc32.c in Sources */, - 9F00E931223C1ACF00EC1EF3 /* soter_hmac.c in Sources */, - 9F00E932223C1ACF00EC1EF3 /* soter_kdf.c in Sources */, - 9F00E933223C1ACF00EC1EF3 /* soter_sign.c in Sources */, - 9F00E921223C1AC000EC1EF3 /* soter_asym_cipher.c in Sources */, - 9F00E922223C1AC000EC1EF3 /* soter_asym_ka.c in Sources */, - 9F00E923223C1AC000EC1EF3 /* soter_ec_key.c in Sources */, - 9F00E924223C1AC000EC1EF3 /* soter_ecdsa_common.c in Sources */, - 9F00E925223C1AC000EC1EF3 /* soter_hash.c in Sources */, - 9F00E926223C1AC000EC1EF3 /* soter_rand.c in Sources */, - 9F874AB422CCB0D100E8DECA /* soter_ec_key.c in Sources */, - 9F6B385623D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */, - 9F00E927223C1AC000EC1EF3 /* soter_rsa_common.c in Sources */, - 9F00E928223C1AC000EC1EF3 /* soter_rsa_key_pair_gen.c in Sources */, - 9F00E929223C1AC000EC1EF3 /* soter_rsa_key.c in Sources */, - 9F33485923B38D9B00368291 /* soter_kdf.c in Sources */, - 9F98F32922CCEB0E008E14E6 /* soter_wipe.c in Sources */, - 9F00E92A223C1AC000EC1EF3 /* soter_sign_ecdsa.c in Sources */, - 9F00E92B223C1AC000EC1EF3 /* soter_sign_rsa.c in Sources */, - 9F00E92C223C1AC000EC1EF3 /* soter_sym.c in Sources */, - 9F00E92D223C1AC000EC1EF3 /* soter_verify_ecdsa.c in Sources */, - 9F00E92E223C1AC000EC1EF3 /* soter_verify_rsa.c in Sources */, - 9F00E912223C1AB100EC1EF3 /* ge_p2_to_p3.c in Sources */, - 9F00E913223C1AB100EC1EF3 /* ge_p3_0.c in Sources */, - 9F874AB622CCB0D100E8DECA /* soter_rsa_key.c in Sources */, - 9F00E914223C1AB100EC1EF3 /* ge_p3_dbl.c in Sources */, - 9F00E915223C1AB100EC1EF3 /* ge_p3_sub.c in Sources */, - 9F00E916223C1AB100EC1EF3 /* ge_p3_to_cached.c in Sources */, - 9F00E917223C1AB100EC1EF3 /* ge_p3_to_p2.c in Sources */, - 9F00E918223C1AB100EC1EF3 /* ge_p3_tobytes.c in Sources */, - 9F00E919223C1AB100EC1EF3 /* ge_precomp_0.c in Sources */, - 9F00E91A223C1AB100EC1EF3 /* ge_scalarmult_base.c in Sources */, - 9F00E91B223C1AB100EC1EF3 /* ge_scalarmult.c in Sources */, - 9F00E91C223C1AB100EC1EF3 /* ge_sub.c in Sources */, - 9F00E91D223C1AB100EC1EF3 /* ge_tobytes.c in Sources */, - 9F00E91E223C1AB100EC1EF3 /* gen_rand_32.c in Sources */, - 9F00E91F223C1AB100EC1EF3 /* sc_muladd.c in Sources */, - 9F00E920223C1AB100EC1EF3 /* sc_reduce.c in Sources */, - 9F00E908223C1AA500EC1EF3 /* ge_cmp.c in Sources */, - 9F00E909223C1AA500EC1EF3 /* ge_double_scalarmult.c in Sources */, - 9F00E90A223C1AA500EC1EF3 /* ge_frombytes_no_negate.c in Sources */, - 9F00E90B223C1AA500EC1EF3 /* ge_frombytes.c in Sources */, - 9F00E90C223C1AA500EC1EF3 /* ge_madd.c in Sources */, - 9F00E90D223C1AA500EC1EF3 /* ge_msub.c in Sources */, - 9F00E90E223C1AA500EC1EF3 /* ge_p1p1_to_p2.c in Sources */, - 9F00E90F223C1AA500EC1EF3 /* ge_p1p1_to_p3.c in Sources */, - 9F00E910223C1AA500EC1EF3 /* ge_p2_0.c in Sources */, - 9F00E911223C1AA500EC1EF3 /* ge_p2_dbl.c in Sources */, - 9F00E8F7223C1A9600EC1EF3 /* fe_0.c in Sources */, - 9F00E8F8223C1A9600EC1EF3 /* fe_1.c in Sources */, - 9F00E8F9223C1A9600EC1EF3 /* fe_add.c in Sources */, - 9F00E8FA223C1A9600EC1EF3 /* fe_cmov.c in Sources */, - 9F00E8FB223C1A9600EC1EF3 /* fe_copy.c in Sources */, - 9F00E8FC223C1A9600EC1EF3 /* fe_frombytes.c in Sources */, - 9F00E8FD223C1A9600EC1EF3 /* fe_invert.c in Sources */, - 9F00E8FE223C1A9600EC1EF3 /* fe_isnegative.c in Sources */, - 9F00E8FF223C1A9600EC1EF3 /* fe_isnonzero.c in Sources */, - 9F00E900223C1A9600EC1EF3 /* fe_mul.c in Sources */, - 9F00E901223C1A9600EC1EF3 /* fe_neg.c in Sources */, - 9F00E902223C1A9600EC1EF3 /* fe_pow22523.c in Sources */, - 9F00E903223C1A9600EC1EF3 /* fe_sq.c in Sources */, - 9F00E904223C1A9600EC1EF3 /* fe_sq2.c in Sources */, - 9F00E905223C1A9600EC1EF3 /* fe_sub.c in Sources */, - 9F00E906223C1A9600EC1EF3 /* fe_tobytes.c in Sources */, - 9F00E907223C1A9600EC1EF3 /* ge_add.c in Sources */, - 9F00E8EE223C1A8C00EC1EF3 /* scell_context_imprint.m in Sources */, - 9F00E8EF223C1A8C00EC1EF3 /* scell_seal.m in Sources */, - 9F00E8F0223C1A8C00EC1EF3 /* scell_token.m in Sources */, - 9F00E8F1223C1A8C00EC1EF3 /* scell.m in Sources */, - 9F00E8F2223C1A8C00EC1EF3 /* scomparator.m in Sources */, - 9F00E8F3223C1A8C00EC1EF3 /* skeygen.m in Sources */, - 9F00E8F4223C1A8C00EC1EF3 /* smessage.m in Sources */, - 9F00E8F5223C1A8C00EC1EF3 /* ssession_transport_interface.m in Sources */, - 9F00E8F6223C1A8C00EC1EF3 /* ssession.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F4A249D223A8D7F005CB63A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F4A2617223ABEF2005CB63A /* message.c in Sources */, - 9F4A2618223ABEF2005CB63A /* secure_cell.c in Sources */, - 9F4A2619223ABEF2005CB63A /* secure_comparator.c in Sources */, - 9F4A261A223ABEF2005CB63A /* secure_keygen.c in Sources */, - 9F4A261B223ABEF2005CB63A /* secure_message_wrapper.c in Sources */, - 9F4A261C223ABEF2005CB63A /* secure_message.c in Sources */, - 9F4A261D223ABEF2005CB63A /* secure_session_message.c in Sources */, - 9F4A261E223ABEF2005CB63A /* secure_session_peer.c in Sources */, - 9F4A261F223ABEF2005CB63A /* secure_session_serialize.c in Sources */, - 9F4A2620223ABEF2005CB63A /* secure_session_utils.c in Sources */, - 9F4A2621223ABEF2005CB63A /* secure_session.c in Sources */, - 9F4A2622223ABEF2005CB63A /* sym_enc_message.c in Sources */, - 9F4A2612223ABEDF005CB63A /* soter_container.c in Sources */, - 9F4A2613223ABEDF005CB63A /* soter_crc32.c in Sources */, - 9F4A2614223ABEDF005CB63A /* soter_hmac.c in Sources */, - 9F4A2615223ABEDF005CB63A /* soter_kdf.c in Sources */, - 9F4A2616223ABEDF005CB63A /* soter_sign.c in Sources */, - 9F4A2604223ABECC005CB63A /* soter_asym_cipher.c in Sources */, - 9F4A2605223ABECC005CB63A /* soter_asym_ka.c in Sources */, - 9F4A2606223ABECC005CB63A /* soter_ec_key.c in Sources */, - 9F4A2607223ABECC005CB63A /* soter_ecdsa_common.c in Sources */, - 9F4A2608223ABECC005CB63A /* soter_hash.c in Sources */, - 9F4A2609223ABECC005CB63A /* soter_rand.c in Sources */, - 9F874AB322CCB0D100E8DECA /* soter_ec_key.c in Sources */, - 9F6B385523D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */, - 9F4A260A223ABECC005CB63A /* soter_rsa_common.c in Sources */, - 9F4A260B223ABECC005CB63A /* soter_rsa_key_pair_gen.c in Sources */, - 9F4A260C223ABECC005CB63A /* soter_rsa_key.c in Sources */, - 9F33485823B38D9B00368291 /* soter_kdf.c in Sources */, - 9F98F32822CCEB0E008E14E6 /* soter_wipe.c in Sources */, - 9F4A260D223ABECC005CB63A /* soter_sign_ecdsa.c in Sources */, - 9F4A260E223ABECC005CB63A /* soter_sign_rsa.c in Sources */, - 9F4A260F223ABECC005CB63A /* soter_sym.c in Sources */, - 9F4A2610223ABECC005CB63A /* soter_verify_ecdsa.c in Sources */, - 9F4A2611223ABECC005CB63A /* soter_verify_rsa.c in Sources */, - 9F4A25DA223ABEB6005CB63A /* fe_0.c in Sources */, - 9F4A25DB223ABEB6005CB63A /* fe_1.c in Sources */, - 9F874AB522CCB0D100E8DECA /* soter_rsa_key.c in Sources */, - 9F4A25DC223ABEB6005CB63A /* fe_add.c in Sources */, - 9F4A25DD223ABEB6005CB63A /* fe_cmov.c in Sources */, - 9F4A25DE223ABEB6005CB63A /* fe_copy.c in Sources */, - 9F4A25DF223ABEB6005CB63A /* fe_frombytes.c in Sources */, - 9F4A25E0223ABEB6005CB63A /* fe_invert.c in Sources */, - 9F4A25E1223ABEB6005CB63A /* fe_isnegative.c in Sources */, - 9F4A25E2223ABEB6005CB63A /* fe_isnonzero.c in Sources */, - 9F4A25E3223ABEB6005CB63A /* fe_mul.c in Sources */, - 9F4A25E4223ABEB6005CB63A /* fe_neg.c in Sources */, - 9F4A25E5223ABEB6005CB63A /* fe_pow22523.c in Sources */, - 9F4A25E6223ABEB6005CB63A /* fe_sq.c in Sources */, - 9F4A25E7223ABEB6005CB63A /* fe_sq2.c in Sources */, - 9F4A25E8223ABEB6005CB63A /* fe_sub.c in Sources */, - 9F4A25E9223ABEB6005CB63A /* fe_tobytes.c in Sources */, - 9F4A25EA223ABEB6005CB63A /* ge_add.c in Sources */, - 9F4A25EB223ABEB6005CB63A /* ge_cmp.c in Sources */, - 9F4A25EC223ABEB6005CB63A /* ge_double_scalarmult.c in Sources */, - 9F4A25ED223ABEB6005CB63A /* ge_frombytes_no_negate.c in Sources */, - 9F4A25EE223ABEB6005CB63A /* ge_frombytes.c in Sources */, - 9F4A25EF223ABEB6005CB63A /* ge_madd.c in Sources */, - 9F4A25F0223ABEB6005CB63A /* ge_msub.c in Sources */, - 9F4A25F1223ABEB6005CB63A /* ge_p1p1_to_p2.c in Sources */, - 9F4A25F2223ABEB6005CB63A /* ge_p1p1_to_p3.c in Sources */, - 9F4A25F3223ABEB6005CB63A /* ge_p2_0.c in Sources */, - 9F4A25F4223ABEB6005CB63A /* ge_p2_dbl.c in Sources */, - 9F4A25F5223ABEB6005CB63A /* ge_p2_to_p3.c in Sources */, - 9F4A25F6223ABEB6005CB63A /* ge_p3_0.c in Sources */, - 9F4A25F7223ABEB6005CB63A /* ge_p3_dbl.c in Sources */, - 9F4A25F8223ABEB6005CB63A /* ge_p3_sub.c in Sources */, - 9F4A25F9223ABEB6005CB63A /* ge_p3_to_cached.c in Sources */, - 9F4A25FA223ABEB6005CB63A /* ge_p3_to_p2.c in Sources */, - 9F4A25FB223ABEB6005CB63A /* ge_p3_tobytes.c in Sources */, - 9F4A25FC223ABEB6005CB63A /* ge_precomp_0.c in Sources */, - 9F4A25FD223ABEB6005CB63A /* ge_scalarmult_base.c in Sources */, - 9F4A25FE223ABEB6005CB63A /* ge_scalarmult.c in Sources */, - 9F4A25FF223ABEB6005CB63A /* ge_sub.c in Sources */, - 9F4A2600223ABEB6005CB63A /* ge_tobytes.c in Sources */, - 9F4A2601223ABEB6005CB63A /* gen_rand_32.c in Sources */, - 9F4A2602223ABEB6005CB63A /* sc_muladd.c in Sources */, - 9F4A2603223ABEB6005CB63A /* sc_reduce.c in Sources */, - 9F4A24D2223A8FA9005CB63A /* scell.m in Sources */, - 9F4A24C6223A8FA9005CB63A /* ssession_transport_interface.m in Sources */, - 9F4A24CC223A8FA9005CB63A /* smessage.m in Sources */, - 9F4A24CE223A8FA9005CB63A /* ssession.m in Sources */, - 9F4A24D1223A8FA9005CB63A /* scell_token.m in Sources */, - 9F4A24C8223A8FA9005CB63A /* scell_context_imprint.m in Sources */, - 9F4A24C4223A8FA9005CB63A /* scell_seal.m in Sources */, - 9F4A24CB223A8FA9005CB63A /* skeygen.m in Sources */, - 9F4A24CA223A8FA9005CB63A /* scomparator.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2B8241D0FEC009CB629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2D6241D1043009CB629 /* SecureCellTestsSwift.swift in Sources */, - 9F70B2D3241D1043009CB629 /* SecureMessageTestsSwift.swift in Sources */, - 9F70B2D1241D1043009CB629 /* SecureCellTests.m in Sources */, - 9F70B2D0241D1043009CB629 /* SecureComparatorTests.m in Sources */, - 9F70B2D2241D1043009CB629 /* SecureComparatorTestsSwift.swift in Sources */, - 9F70B2D5241D1043009CB629 /* SecureMessageTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B2E3241D17A3009CB629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B2F8241D17D0009CB629 /* SecureComparatorTestsSwift.swift in Sources */, - 9F70B2F7241D17CE009CB629 /* SecureComparatorTests.m in Sources */, - 9F70B2F5241D17CB009CB629 /* SecureCellTests.m in Sources */, - 9F70B2FA241D17D3009CB629 /* SecureMessageTestsSwift.swift in Sources */, - 9F70B2F9241D17D1009CB629 /* SecureMessageTests.m in Sources */, - 9F70B2F6241D17CD009CB629 /* SecureCellTestsSwift.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3092420E16E009CB629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B30A2420E16E009CB629 /* SecureComparatorTestsSwift.swift in Sources */, - 9F70B30B2420E16E009CB629 /* SecureComparatorTests.m in Sources */, - 9F70B30C2420E16E009CB629 /* SecureCellTests.m in Sources */, - 9F70B30D2420E16E009CB629 /* SecureMessageTestsSwift.swift in Sources */, - 9F70B30E2420E16E009CB629 /* SecureMessageTests.m in Sources */, - 9F70B30F2420E16E009CB629 /* SecureCellTestsSwift.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F70B3212420E176009CB629 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F70B3222420E176009CB629 /* SecureCellTestsSwift.swift in Sources */, - 9F70B3232420E176009CB629 /* SecureMessageTestsSwift.swift in Sources */, - 9F70B3242420E176009CB629 /* SecureCellTests.m in Sources */, - 9F70B3252420E176009CB629 /* SecureComparatorTests.m in Sources */, - 9F70B3262420E176009CB629 /* SecureComparatorTestsSwift.swift in Sources */, - 9F70B3272420E176009CB629 /* SecureMessageTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 9F70B2C3241D0FEC009CB629 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */; - targetProxy = 9F70B2C2241D0FEC009CB629 /* PBXContainerItemProxy */; - }; - 9F70B2EE241D17A3009CB629 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */; - targetProxy = 9F70B2ED241D17A3009CB629 /* PBXContainerItemProxy */; - }; - 9F70B3042420E16E009CB629 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */; - targetProxy = 9F70B3052420E16E009CB629 /* PBXContainerItemProxy */; - }; - 9F70B31C2420E176009CB629 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */; - targetProxy = 9F70B31D2420E176009CB629 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 738B81152239809D00A9947C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - 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; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = 1; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 738B81162239809D00A9947C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - 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; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = 1; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 9F00E8DC223C197A00EC1EF3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - FRAMEWORK_VERSION = A; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", - ); - INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; - PRODUCT_MODULE_NAME = themis; - PRODUCT_NAME = objcthemis; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Debug; - }; - 9F00E8DD223C197A00EC1EF3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - FRAMEWORK_VERSION = A; - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", - ); - INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; - PRODUCT_MODULE_NAME = themis; - PRODUCT_NAME = objcthemis; - SDKROOT = macosx; - SKIP_INSTALL = YES; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Release; - }; - 9F4A24A7223A8D7F005CB63A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - "$(ARCHS_STANDARD)", - arm64e, - ); - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", - ); - INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; - PRODUCT_MODULE_NAME = themis; - PRODUCT_NAME = objcthemis; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Debug; - }; - 9F4A24A8223A8D7F005CB63A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - "$(ARCHS_STANDARD)", - arm64e, - ); - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - EXPORTED_SYMBOLS_FILE = "$(PROJECT_DIR)/src/wrappers/themis/Obj-C/exported.symbols"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", - ); - INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; - PRODUCT_MODULE_NAME = themis; - PRODUCT_NAME = objcthemis; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Release; - }; - 9F70B2C5241D0FEC009CB629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 9F70B2C6241D0FEC009CB629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 9F70B2F0241D17A3009CB629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 9F70B2F1241D17A3009CB629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 9F70B3172420E16E009CB629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 9F70B3182420E16E009CB629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 9F70B32F2420E176009CB629 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - 9F70B3302420E176009CB629 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/Mac", - ); - INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; - PRODUCT_MODULE_NAME = themis_test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 738B81092239809D00A9947C /* Build configuration list for PBXProject "ObjCThemis" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 738B81152239809D00A9947C /* Debug */, - 738B81162239809D00A9947C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F00E8DE223C197A00EC1EF3 /* Build configuration list for PBXNativeTarget "Themis (macOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F00E8DC223C197A00EC1EF3 /* Debug */, - 9F00E8DD223C197A00EC1EF3 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F4A24A6223A8D7F005CB63A /* Build configuration list for PBXNativeTarget "Themis (iOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F4A24A7223A8D7F005CB63A /* Debug */, - 9F4A24A8223A8D7F005CB63A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F70B2C4241D0FEC009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, macOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F70B2C5241D0FEC009CB629 /* Debug */, - 9F70B2C6241D0FEC009CB629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F70B2EF241D17A3009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, iOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F70B2F0241D17A3009CB629 /* Debug */, - 9F70B2F1241D17A3009CB629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F70B3162420E16E009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, iOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F70B3172420E16E009CB629 /* Debug */, - 9F70B3182420E16E009CB629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9F70B32E2420E176009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, macOS)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9F70B32F2420E176009CB629 /* Debug */, - 9F70B3302420E176009CB629 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 738B81062239809D00A9947C /* Project object */; -} diff --git a/ObjCThemis.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ObjCThemis.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/ObjCThemis.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme b/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme deleted file mode 100644 index c9aa95008..000000000 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme b/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme deleted file mode 100644 index 307208c31..000000000 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Themis.xcodeproj/project.pbxproj b/Themis.xcodeproj/project.pbxproj index 1ecd3a8a5..6cbe4ab2f 100644 --- a/Themis.xcodeproj/project.pbxproj +++ b/Themis.xcodeproj/project.pbxproj @@ -7,19 +7,17 @@ objects = { /* Begin PBXBuildFile section */ - 9F00E8DF223C19D900EC1EF3 /* themis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24AB223A8E15005CB63A /* themis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E0223C19E000EC1EF3 /* themis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24AB223A8E15005CB63A /* themis.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; }; - 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; }; - 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; }; - 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; }; - 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; }; - 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; }; - 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; }; - 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; }; - 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; }; - 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; }; - 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; }; + 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9F00E8EE223C1A8C00EC1EF3 /* scell_context_imprint.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B4223A8FA8005CB63A /* scell_context_imprint.m */; }; 9F00E8EF223C1A8C00EC1EF3 /* scell_seal.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B0223A8FA7005CB63A /* scell_seal.m */; }; 9F00E8F0223C1A8C00EC1EF3 /* scell_token.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BD223A8FA8005CB63A /* scell_token.m */; }; @@ -103,6 +101,8 @@ 9F00E93E223C1AE600EC1EF3 /* secure_session.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2438223A74AF005CB63A /* secure_session.c */; }; 9F00E93F223C1AE600EC1EF3 /* sym_enc_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2431223A74AF005CB63A /* sym_enc_message.c */; }; 9F00E941223C1AFA00EC1EF3 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; + 9F0BBCE924E6FC820073CA52 /* themis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F0BBCE824E6FC810073CA52 /* themis.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F0BBCEA24E6FC820073CA52 /* themis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F0BBCE824E6FC810073CA52 /* themis.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9F33485823B38D9B00368291 /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F33485723B38D9B00368291 /* soter_kdf.c */; }; 9F33485923B38D9B00368291 /* soter_kdf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F33485723B38D9B00368291 /* soter_kdf.c */; }; 9F4A24C4223A8FA9005CB63A /* scell_seal.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24B0223A8FA7005CB63A /* scell_seal.m */; }; @@ -114,17 +114,17 @@ 9F4A24CE223A8FA9005CB63A /* ssession.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BA223A8FA8005CB63A /* ssession.m */; }; 9F4A24D1223A8FA9005CB63A /* scell_token.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BD223A8FA8005CB63A /* scell_token.m */; }; 9F4A24D2223A8FA9005CB63A /* scell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A24BE223A8FA8005CB63A /* scell.m */; }; - 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; }; - 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; }; - 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; }; - 9F4A24DD223A918A005CB63A /* scell_token.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; }; - 9F4A24DE223A918A005CB63A /* scell.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; }; - 9F4A24DF223A918A005CB63A /* scomparator.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; }; - 9F4A24E0223A918A005CB63A /* serror.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; }; - 9F4A24E1223A918A005CB63A /* skeygen.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; }; - 9F4A24E2223A918A005CB63A /* smessage.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; }; - 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; }; - 9F4A24E4223A918A005CB63A /* ssession.h in Headers: objcthemis */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; }; + 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B5223A8FA8005CB63A /* objcthemis.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B9223A8FA8005CB63A /* scell_context_imprint.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BC223A8FA8005CB63A /* scell_seal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24DD223A918A005CB63A /* scell_token.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C3223A8FA8005CB63A /* scell_token.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24DE223A918A005CB63A /* scell.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B3223A8FA7005CB63A /* scell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24DF223A918A005CB63A /* scomparator.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C0223A8FA8005CB63A /* scomparator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24E0223A918A005CB63A /* serror.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BB223A8FA8005CB63A /* serror.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24E1223A918A005CB63A /* skeygen.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C1223A8FA8005CB63A /* skeygen.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24E2223A918A005CB63A /* smessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24C2223A8FA8005CB63A /* smessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24BF223A8FA8005CB63A /* ssession_transport_interface.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F4A24E4223A918A005CB63A /* ssession.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F4A24B1223A8FA7005CB63A /* ssession.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9F4A25DA223ABEB6005CB63A /* fe_0.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B3223A745B005CB63A /* fe_0.c */; }; 9F4A25DB223ABEB6005CB63A /* fe_1.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23CF223A745C005CB63A /* fe_1.c */; }; 9F4A25DC223ABEB6005CB63A /* fe_add.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A23B1223A745A005CB63A /* fe_add.c */; }; @@ -200,6 +200,54 @@ 9F4A2622223ABEF2005CB63A /* sym_enc_message.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F4A2431223A74AF005CB63A /* sym_enc_message.c */; }; 9F6B385523D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */; }; 9F6B385623D9D11600EA5D1B /* secure_cell_seal_passphrase.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */; }; + 9F70B2C1241D0FEC009CB629 /* themis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* themis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B2D0241D1043009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; + 9F70B2D1241D1043009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; + 9F70B2D2241D1043009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; + 9F70B2D3241D1043009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; + 9F70B2D5241D1043009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; + 9F70B2D6241D1043009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; + 9F70B2D8241D1064009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; + 9F70B2D9241D1065009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; + 9F70B2DD241D16B4009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; + 9F70B2E1241D1753009CB629 /* themis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* themis.framework */; }; + 9F70B2E2241D175E009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B2EC241D17A3009CB629 /* themis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* themis.framework */; }; + 9F70B2F3241D17BF009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; + 9F70B2F4241D17C2009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; + 9F70B2F5241D17CB009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; + 9F70B2F6241D17CD009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; + 9F70B2F7241D17CE009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; + 9F70B2F8241D17D0009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; + 9F70B2F9241D17D1009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; + 9F70B2FA241D17D3009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; + 9F70B2FB241D17D8009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; + 9F70B2FD241D17F0009CB629 /* themis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* themis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B2FE241D17F2009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B3072420E16E009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; + 9F70B3082420E16E009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; + 9F70B30A2420E16E009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; + 9F70B30B2420E16E009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; + 9F70B30C2420E16E009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; + 9F70B30D2420E16E009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; + 9F70B30E2420E16E009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; + 9F70B30F2420E16E009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; + 9F70B3112420E16E009CB629 /* themis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* themis.framework */; }; + 9F70B3122420E16E009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; + 9F70B3142420E16E009CB629 /* themis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F4A24A1223A8D7F005CB63A /* themis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B3152420E16E009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B31F2420E176009CB629 /* objthemis-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */; }; + 9F70B3202420E176009CB629 /* StaticKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F70B2CC241D1043009CB629 /* StaticKeys.h */; }; + 9F70B3222420E176009CB629 /* SecureCellTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */; }; + 9F70B3232420E176009CB629 /* SecureMessageTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */; }; + 9F70B3242420E176009CB629 /* SecureCellTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C8241D1042009CB629 /* SecureCellTests.m */; }; + 9F70B3252420E176009CB629 /* SecureComparatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */; }; + 9F70B3262420E176009CB629 /* SecureComparatorTestsSwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */; }; + 9F70B3272420E176009CB629 /* SecureMessageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */; }; + 9F70B3292420E176009CB629 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; }; + 9F70B32A2420E176009CB629 /* themis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* themis.framework */; }; + 9F70B32C2420E176009CB629 /* themis.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E8D7223C197900EC1EF3 /* themis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9F70B32D2420E176009CB629 /* openssl.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9F00E940223C1AFA00EC1EF3 /* openssl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 9F874AB322CCB0D100E8DECA /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */; }; 9F874AB422CCB0D100E8DECA /* soter_ec_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */; }; 9F874AB522CCB0D100E8DECA /* soter_rsa_key.c in Sources */ = {isa = PBXBuildFile; fileRef = 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */; }; @@ -209,47 +257,84 @@ 9FBD853D223BFB5E009EAEB3 /* openssl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9FBD853C223BFB5E009EAEB3 /* openssl.framework */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 9F70B2C2241D0FEC009CB629 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 738B81062239809D00A9947C /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9F00E8D6223C197900EC1EF3; + remoteInfo = "Themis (macOS)"; + }; + 9F70B2ED241D17A3009CB629 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 738B81062239809D00A9947C /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9F4A24A0223A8D7F005CB63A; + remoteInfo = "Themis (iOS)"; + }; + 9F70B3052420E16E009CB629 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 738B81062239809D00A9947C /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9F4A24A0223A8D7F005CB63A; + remoteInfo = "Themis (iOS)"; + }; + 9F70B31D2420E176009CB629 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 738B81062239809D00A9947C /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9F00E8D6223C197900EC1EF3; + remoteInfo = "Themis (macOS)"; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXCopyFilesBuildPhase section */ - 9F00E8E1223C1A0A00EC1EF3 /* Headers: objcthemis */ = { + 9F70B2DE241D172E009CB629 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 9F70B2C1241D0FEC009CB629 /* themis.framework in Embed Frameworks */, + 9F70B2E2241D175E009CB629 /* openssl.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B2FC241D17E4009CB629 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/objcthemis"; - dstSubfolderSpec = 16; + dstPath = ""; + dstSubfolderSpec = 10; files = ( - 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers: objcthemis */, - 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers: objcthemis */, - 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers: objcthemis */, - 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers: objcthemis */, - 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers: objcthemis */, - 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers: objcthemis */, - 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers: objcthemis */, - 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers: objcthemis */, - 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers: objcthemis */, - 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers: objcthemis */, - 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers: objcthemis */, + 9F70B2FD241D17F0009CB629 /* themis.framework in Embed Frameworks */, + 9F70B2FE241D17F2009CB629 /* openssl.framework in Embed Frameworks */, ); - name = "Headers: objcthemis"; + name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 9F4A24D9223A915E005CB63A /* Headers: objcthemis */ = { + 9F70B3132420E16E009CB629 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$(PUBLIC_HEADERS_FOLDER_PATH)/objcthemis"; - dstSubfolderSpec = 16; + dstPath = ""; + dstSubfolderSpec = 10; files = ( - 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers: objcthemis */, - 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers: objcthemis */, - 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers: objcthemis */, - 9F4A24DD223A918A005CB63A /* scell_token.h in Headers: objcthemis */, - 9F4A24DE223A918A005CB63A /* scell.h in Headers: objcthemis */, - 9F4A24DF223A918A005CB63A /* scomparator.h in Headers: objcthemis */, - 9F4A24E0223A918A005CB63A /* serror.h in Headers: objcthemis */, - 9F4A24E1223A918A005CB63A /* skeygen.h in Headers: objcthemis */, - 9F4A24E2223A918A005CB63A /* smessage.h in Headers: objcthemis */, - 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers: objcthemis */, - 9F4A24E4223A918A005CB63A /* ssession.h in Headers: objcthemis */, + 9F70B3142420E16E009CB629 /* themis.framework in Embed Frameworks */, + 9F70B3152420E16E009CB629 /* openssl.framework in Embed Frameworks */, ); - name = "Headers: objcthemis"; + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B32B2420E176009CB629 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 9F70B32C2420E176009CB629 /* themis.framework in Embed Frameworks */, + 9F70B32D2420E176009CB629 /* openssl.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ @@ -257,6 +342,7 @@ /* Begin PBXFileReference section */ 9F00E8D7223C197900EC1EF3 /* themis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = themis.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9F00E940223C1AFA00EC1EF3 /* openssl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = openssl.framework; path = Carthage/Build/Mac/openssl.framework; sourceTree = ""; }; + 9F0BBCE824E6FC810073CA52 /* themis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = themis.h; path = "src/wrappers/themis/Obj-C/Themis/themis.h"; sourceTree = ""; }; 9F33485723B38D9B00368291 /* soter_kdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_kdf.c; path = src/soter/openssl/soter_kdf.c; sourceTree = ""; }; 9F34EA3023D9CA0A0079A1D7 /* secure_cell_seal_passphrase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = secure_cell_seal_passphrase.h; path = src/themis/secure_cell_seal_passphrase.h; sourceTree = ""; }; 9F4A2342223A73B0005CB63A /* soter_hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_hash.h; path = src/soter/soter_hash.h; sourceTree = ""; }; @@ -387,7 +473,6 @@ 9F4A2439223A74AF005CB63A /* secure_session_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = secure_session_utils.h; path = src/themis/secure_session_utils.h; sourceTree = ""; }; 9F4A24A1223A8D7F005CB63A /* themis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = themis.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9F4A24AA223A8E15005CB63A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = "src/wrappers/themis/Obj-C/Themis/Info.plist"; sourceTree = ""; }; - 9F4A24AB223A8E15005CB63A /* themis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = themis.h; path = "src/wrappers/themis/Obj-C/Themis/themis.h"; sourceTree = ""; }; 9F4A24B0223A8FA7005CB63A /* scell_seal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = scell_seal.m; path = "src/wrappers/themis/Obj-C/objcthemis/scell_seal.m"; sourceTree = ""; }; 9F4A24B1223A8FA7005CB63A /* ssession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ssession.h; path = "src/wrappers/themis/Obj-C/objcthemis/ssession.h"; sourceTree = ""; }; 9F4A24B2223A8FA7005CB63A /* ssession_transport_interface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ssession_transport_interface.m; path = "src/wrappers/themis/Obj-C/objcthemis/ssession_transport_interface.m"; sourceTree = ""; }; @@ -409,6 +494,19 @@ 9F4A24C2223A8FA8005CB63A /* smessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smessage.h; path = "src/wrappers/themis/Obj-C/objcthemis/smessage.h"; sourceTree = ""; }; 9F4A24C3223A8FA8005CB63A /* scell_token.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scell_token.h; path = "src/wrappers/themis/Obj-C/objcthemis/scell_token.h"; sourceTree = ""; }; 9F6B385423D9D11600EA5D1B /* secure_cell_seal_passphrase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = secure_cell_seal_passphrase.c; path = src/themis/secure_cell_seal_passphrase.c; sourceTree = ""; }; + 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 5, macOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureComparatorTests.m; path = tests/objcthemis/objthemis/SecureComparatorTests.m; sourceTree = ""; }; + 9F70B2C8241D1042009CB629 /* SecureCellTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureCellTests.m; path = tests/objcthemis/objthemis/SecureCellTests.m; sourceTree = ""; }; + 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "objthemis-Bridging-Header.h"; path = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; sourceTree = ""; }; + 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureComparatorTestsSwift.swift; path = tests/objcthemis/objthemis/SecureComparatorTestsSwift.swift; sourceTree = ""; }; + 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureMessageTestsSwift.swift; path = tests/objcthemis/objthemis/SecureMessageTestsSwift.swift; sourceTree = ""; }; + 9F70B2CC241D1043009CB629 /* StaticKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StaticKeys.h; path = tests/objcthemis/objthemis/StaticKeys.h; sourceTree = ""; }; + 9F70B2CD241D1043009CB629 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = tests/objcthemis/objthemis/Info.plist; sourceTree = ""; }; + 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SecureMessageTests.m; path = tests/objcthemis/objthemis/SecureMessageTests.m; sourceTree = ""; }; + 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SecureCellTestsSwift.swift; path = tests/objcthemis/objthemis/SecureCellTestsSwift.swift; sourceTree = ""; }; + 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 5, iOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 4, iOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Test Themis (Swift 4, macOS).xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 9F874AB122CCB0D100E8DECA /* soter_ec_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_ec_key.c; path = src/soter/soter_ec_key.c; sourceTree = ""; }; 9F874AB222CCB0D100E8DECA /* soter_rsa_key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soter_rsa_key.c; path = src/soter/soter_rsa_key.c; sourceTree = ""; }; 9F98F32422CCEA5D008E14E6 /* soter_wipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soter_wipe.h; path = src/soter/soter_wipe.h; sourceTree = ""; }; @@ -437,6 +535,42 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9F70B2B9241D0FEC009CB629 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2DD241D16B4009CB629 /* openssl.framework in Frameworks */, + 9F70B2E1241D1753009CB629 /* themis.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B2E4241D17A3009CB629 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2EC241D17A3009CB629 /* themis.framework in Frameworks */, + 9F70B2FB241D17D8009CB629 /* openssl.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B3102420E16E009CB629 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B3112420E16E009CB629 /* themis.framework in Frameworks */, + 9F70B3122420E16E009CB629 /* openssl.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B3282420E176009CB629 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B3292420E176009CB629 /* openssl.framework in Frameworks */, + 9F70B32A2420E176009CB629 /* themis.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -444,6 +578,7 @@ isa = PBXGroup; children = ( 9F4A24A9223A8E01005CB63A /* Themis */, + 9F70B2B7241D0FA9009CB629 /* Tests */, 738B81102239809D00A9947C /* Products */, 9F4A2476223A885F005CB63A /* Frameworks */, ); @@ -454,6 +589,10 @@ children = ( 9F4A24A1223A8D7F005CB63A /* themis.framework */, 9F00E8D7223C197900EC1EF3 /* themis.framework */, + 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */, + 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */, + 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */, + 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */, ); name = Products; sourceTree = ""; @@ -628,8 +767,8 @@ 9F4A2476223A885F005CB63A /* Frameworks */ = { isa = PBXGroup; children = ( - 9F00E940223C1AFA00EC1EF3 /* openssl.framework */, - 9FBD853C223BFB5E009EAEB3 /* openssl.framework */, + 9F70B2DC241D16A9009CB629 /* iOS */, + 9F70B2DB241D16A2009CB629 /* macOS */, ); name = Frameworks; sourceTree = ""; @@ -641,7 +780,7 @@ 9F4A2370223A73B6005CB63A /* soter */, 9F4A241D223A7493005CB63A /* themis */, 9F4A24AA223A8E15005CB63A /* Info.plist */, - 9F4A24AB223A8E15005CB63A /* themis.h */, + 9F0BBCE824E6FC810073CA52 /* themis.h */, ); name = Themis; sourceTree = ""; @@ -673,6 +812,38 @@ name = objcthemis; sourceTree = ""; }; + 9F70B2B7241D0FA9009CB629 /* Tests */ = { + isa = PBXGroup; + children = ( + 9F70B2C8241D1042009CB629 /* SecureCellTests.m */, + 9F70B2CF241D1043009CB629 /* SecureCellTestsSwift.swift */, + 9F70B2C7241D1042009CB629 /* SecureComparatorTests.m */, + 9F70B2CA241D1042009CB629 /* SecureComparatorTestsSwift.swift */, + 9F70B2CE241D1043009CB629 /* SecureMessageTests.m */, + 9F70B2CB241D1042009CB629 /* SecureMessageTestsSwift.swift */, + 9F70B2CC241D1043009CB629 /* StaticKeys.h */, + 9F70B2C9241D1042009CB629 /* objthemis-Bridging-Header.h */, + 9F70B2CD241D1043009CB629 /* Info.plist */, + ); + name = Tests; + sourceTree = ""; + }; + 9F70B2DB241D16A2009CB629 /* macOS */ = { + isa = PBXGroup; + children = ( + 9F00E940223C1AFA00EC1EF3 /* openssl.framework */, + ); + name = macOS; + sourceTree = ""; + }; + 9F70B2DC241D16A9009CB629 /* iOS */ = { + isa = PBXGroup; + children = ( + 9FBD853C223BFB5E009EAEB3 /* openssl.framework */, + ); + name = iOS; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -680,7 +851,18 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9F00E8E0223C19E000EC1EF3 /* themis.h in Headers */, + 9F0BBCEA24E6FC820073CA52 /* themis.h in Headers */, + 9F00E8E2223C1A3300EC1EF3 /* objcthemis.h in Headers */, + 9F00E8E3223C1A3300EC1EF3 /* scell_context_imprint.h in Headers */, + 9F00E8E4223C1A3300EC1EF3 /* scell_seal.h in Headers */, + 9F00E8E5223C1A3300EC1EF3 /* scell_token.h in Headers */, + 9F00E8E6223C1A3300EC1EF3 /* scell.h in Headers */, + 9F00E8E7223C1A3300EC1EF3 /* scomparator.h in Headers */, + 9F00E8E8223C1A3300EC1EF3 /* serror.h in Headers */, + 9F00E8E9223C1A3300EC1EF3 /* skeygen.h in Headers */, + 9F00E8EA223C1A3300EC1EF3 /* smessage.h in Headers */, + 9F00E8EB223C1A3300EC1EF3 /* ssession_transport_interface.h in Headers */, + 9F00E8EC223C1A3300EC1EF3 /* ssession.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -688,7 +870,54 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9F00E8DF223C19D900EC1EF3 /* themis.h in Headers */, + 9F0BBCE924E6FC820073CA52 /* themis.h in Headers */, + 9F4A24DA223A918A005CB63A /* objcthemis.h in Headers */, + 9F4A24DB223A918A005CB63A /* scell_context_imprint.h in Headers */, + 9F4A24DC223A918A005CB63A /* scell_seal.h in Headers */, + 9F4A24DD223A918A005CB63A /* scell_token.h in Headers */, + 9F4A24DE223A918A005CB63A /* scell.h in Headers */, + 9F4A24DF223A918A005CB63A /* scomparator.h in Headers */, + 9F4A24E0223A918A005CB63A /* serror.h in Headers */, + 9F4A24E1223A918A005CB63A /* skeygen.h in Headers */, + 9F4A24E2223A918A005CB63A /* smessage.h in Headers */, + 9F4A24E3223A918A005CB63A /* ssession_transport_interface.h in Headers */, + 9F4A24E4223A918A005CB63A /* ssession.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B2D7241D105D009CB629 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2D8241D1064009CB629 /* objthemis-Bridging-Header.h in Headers */, + 9F70B2D9241D1065009CB629 /* StaticKeys.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B2F2241D17B9009CB629 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2F3241D17BF009CB629 /* objthemis-Bridging-Header.h in Headers */, + 9F70B2F4241D17C2009CB629 /* StaticKeys.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B3062420E16E009CB629 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B3072420E16E009CB629 /* objthemis-Bridging-Header.h in Headers */, + 9F70B3082420E16E009CB629 /* StaticKeys.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B31E2420E176009CB629 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B31F2420E176009CB629 /* objthemis-Bridging-Header.h in Headers */, + 9F70B3202420E176009CB629 /* StaticKeys.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -700,10 +929,8 @@ buildConfigurationList = 9F00E8DE223C197A00EC1EF3 /* Build configuration list for PBXNativeTarget "Themis (macOS)" */; buildPhases = ( 9F00E8D2223C197900EC1EF3 /* Headers */, - 9F00E8E1223C1A0A00EC1EF3 /* Headers: objcthemis */, 9F00E8D3223C197900EC1EF3 /* Sources */, 9F00E8D4223C197900EC1EF3 /* Frameworks */, - 9F00E8D5223C197900EC1EF3 /* Resources */, ); buildRules = ( ); @@ -719,10 +946,8 @@ buildConfigurationList = 9F4A24A6223A8D7F005CB63A /* Build configuration list for PBXNativeTarget "Themis (iOS)" */; buildPhases = ( 9F4A249C223A8D7F005CB63A /* Headers */, - 9F4A24D9223A915E005CB63A /* Headers: objcthemis */, 9F4A249D223A8D7F005CB63A /* Sources */, 9F4A249E223A8D7F005CB63A /* Frameworks */, - 9F4A249F223A8D7F005CB63A /* Resources */, ); buildRules = ( ); @@ -733,13 +958,89 @@ productReference = 9F4A24A1223A8D7F005CB63A /* themis.framework */; productType = "com.apple.product-type.framework"; }; + 9F70B2BB241D0FEC009CB629 /* Test Themis (Swift 5, macOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F70B2C4241D0FEC009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, macOS)" */; + buildPhases = ( + 9F70B2D7241D105D009CB629 /* Headers */, + 9F70B2B8241D0FEC009CB629 /* Sources */, + 9F70B2B9241D0FEC009CB629 /* Frameworks */, + 9F70B2DE241D172E009CB629 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 9F70B2C3241D0FEC009CB629 /* PBXTargetDependency */, + ); + name = "Test Themis (Swift 5, macOS)"; + productName = "Test Themis (macOS)"; + productReference = 9F70B2BC241D0FEC009CB629 /* Test Themis (Swift 5, macOS).xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 9F70B2E6241D17A3009CB629 /* Test Themis (Swift 5, iOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F70B2EF241D17A3009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, iOS)" */; + buildPhases = ( + 9F70B2F2241D17B9009CB629 /* Headers */, + 9F70B2E3241D17A3009CB629 /* Sources */, + 9F70B2E4241D17A3009CB629 /* Frameworks */, + 9F70B2FC241D17E4009CB629 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 9F70B2EE241D17A3009CB629 /* PBXTargetDependency */, + ); + name = "Test Themis (Swift 5, iOS)"; + productName = "Test Themis (iOS)"; + productReference = 9F70B2E7241D17A3009CB629 /* Test Themis (Swift 5, iOS).xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 9F70B3032420E16E009CB629 /* Test Themis (Swift 4, iOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F70B3162420E16E009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, iOS)" */; + buildPhases = ( + 9F70B3062420E16E009CB629 /* Headers */, + 9F70B3092420E16E009CB629 /* Sources */, + 9F70B3102420E16E009CB629 /* Frameworks */, + 9F70B3132420E16E009CB629 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 9F70B3042420E16E009CB629 /* PBXTargetDependency */, + ); + name = "Test Themis (Swift 4, iOS)"; + productName = "Test Themis (iOS)"; + productReference = 9F70B3192420E16F009CB629 /* Test Themis (Swift 4, iOS).xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 9F70B31B2420E176009CB629 /* Test Themis (Swift 4, macOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9F70B32E2420E176009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, macOS)" */; + buildPhases = ( + 9F70B31E2420E176009CB629 /* Headers */, + 9F70B3212420E176009CB629 /* Sources */, + 9F70B3282420E176009CB629 /* Frameworks */, + 9F70B32B2420E176009CB629 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 9F70B31C2420E176009CB629 /* PBXTargetDependency */, + ); + name = "Test Themis (Swift 4, macOS)"; + productName = "Test Themis (macOS)"; + productReference = 9F70B3312420E176009CB629 /* Test Themis (Swift 4, macOS).xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 738B81062239809D00A9947C /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1010; + LastUpgradeCheck = 1120; ORGANIZATIONNAME = "Cossack Labs"; TargetAttributes = { 9F00E8D6223C197900EC1EF3 = { @@ -748,6 +1049,13 @@ 9F4A24A0223A8D7F005CB63A = { CreatedOnToolsVersion = 10.1; }; + 9F70B2BB241D0FEC009CB629 = { + CreatedOnToolsVersion = 11.2.1; + LastSwiftMigration = 1120; + }; + 9F70B2E6241D17A3009CB629 = { + CreatedOnToolsVersion = 11.2.1; + }; }; }; buildConfigurationList = 738B81092239809D00A9947C /* Build configuration list for PBXProject "Themis" */; @@ -756,6 +1064,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = 738B81052239809D00A9947C; productRefGroup = 738B81102239809D00A9947C /* Products */; @@ -764,27 +1073,14 @@ targets = ( 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */, 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */, + 9F70B3032420E16E009CB629 /* Test Themis (Swift 4, iOS) */, + 9F70B31B2420E176009CB629 /* Test Themis (Swift 4, macOS) */, + 9F70B2E6241D17A3009CB629 /* Test Themis (Swift 5, iOS) */, + 9F70B2BB241D0FEC009CB629 /* Test Themis (Swift 5, macOS) */, ); }; /* End PBXProject section */ -/* Begin PBXResourcesBuildPhase section */ - 9F00E8D5223C197900EC1EF3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9F4A249F223A8D7F005CB63A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 9F00E8D3223C197900EC1EF3 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -974,8 +1270,83 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9F70B2B8241D0FEC009CB629 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2D6241D1043009CB629 /* SecureCellTestsSwift.swift in Sources */, + 9F70B2D3241D1043009CB629 /* SecureMessageTestsSwift.swift in Sources */, + 9F70B2D1241D1043009CB629 /* SecureCellTests.m in Sources */, + 9F70B2D0241D1043009CB629 /* SecureComparatorTests.m in Sources */, + 9F70B2D2241D1043009CB629 /* SecureComparatorTestsSwift.swift in Sources */, + 9F70B2D5241D1043009CB629 /* SecureMessageTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B2E3241D17A3009CB629 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B2F8241D17D0009CB629 /* SecureComparatorTestsSwift.swift in Sources */, + 9F70B2F7241D17CE009CB629 /* SecureComparatorTests.m in Sources */, + 9F70B2F5241D17CB009CB629 /* SecureCellTests.m in Sources */, + 9F70B2FA241D17D3009CB629 /* SecureMessageTestsSwift.swift in Sources */, + 9F70B2F9241D17D1009CB629 /* SecureMessageTests.m in Sources */, + 9F70B2F6241D17CD009CB629 /* SecureCellTestsSwift.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B3092420E16E009CB629 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B30A2420E16E009CB629 /* SecureComparatorTestsSwift.swift in Sources */, + 9F70B30B2420E16E009CB629 /* SecureComparatorTests.m in Sources */, + 9F70B30C2420E16E009CB629 /* SecureCellTests.m in Sources */, + 9F70B30D2420E16E009CB629 /* SecureMessageTestsSwift.swift in Sources */, + 9F70B30E2420E16E009CB629 /* SecureMessageTests.m in Sources */, + 9F70B30F2420E16E009CB629 /* SecureCellTestsSwift.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9F70B3212420E176009CB629 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F70B3222420E176009CB629 /* SecureCellTestsSwift.swift in Sources */, + 9F70B3232420E176009CB629 /* SecureMessageTestsSwift.swift in Sources */, + 9F70B3242420E176009CB629 /* SecureCellTests.m in Sources */, + 9F70B3252420E176009CB629 /* SecureComparatorTests.m in Sources */, + 9F70B3262420E176009CB629 /* SecureComparatorTestsSwift.swift in Sources */, + 9F70B3272420E176009CB629 /* SecureMessageTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 9F70B2C3241D0FEC009CB629 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */; + targetProxy = 9F70B2C2241D0FEC009CB629 /* PBXContainerItemProxy */; + }; + 9F70B2EE241D17A3009CB629 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */; + targetProxy = 9F70B2ED241D17A3009CB629 /* PBXContainerItemProxy */; + }; + 9F70B3042420E16E009CB629 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9F4A24A0223A8D7F005CB63A /* Themis (iOS) */; + targetProxy = 9F70B3052420E16E009CB629 /* PBXContainerItemProxy */; + }; + 9F70B31C2420E176009CB629 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9F00E8D6223C197900EC1EF3 /* Themis (macOS) */; + targetProxy = 9F70B31D2420E176009CB629 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 738B81152239809D00A9947C /* Debug */ = { isa = XCBuildConfiguration; @@ -1035,8 +1406,8 @@ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -1093,8 +1464,8 @@ MACOSX_DEPLOYMENT_TARGET = 10.9; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - SDKROOT = iphoneos; SUPPORTS_MACCATALYST = NO; + TARGETED_DEVICE_FAMILY = 1; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1104,7 +1475,7 @@ 9F00E8DC223C197A00EC1EF3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 2; @@ -1119,6 +1490,9 @@ "$(PROJECT_DIR)/Carthage/Build/Mac", ); FRAMEWORK_VERSION = A; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1130,12 +1504,13 @@ "@executable_path/../Frameworks", "@loader_path/Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 10.9; MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.Themis; + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; + PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; SDKROOT = macosx; SKIP_INSTALL = YES; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Debug; }; @@ -1157,6 +1532,9 @@ "$(PROJECT_DIR)/Carthage/Build/Mac", ); FRAMEWORK_VERSION = A; + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", @@ -1168,12 +1546,13 @@ "@executable_path/../Frameworks", "@loader_path/Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 10.9; MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.Themis; + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; + PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; SDKROOT = macosx; SKIP_INSTALL = YES; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Release; }; @@ -1184,7 +1563,7 @@ "$(ARCHS_STANDARD)", arm64e, ); - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; DEFINES_MODULE = YES; @@ -1198,27 +1577,32 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", ); INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.Themis; + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; + PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = "-Wno-documentation"; }; name = Debug; }; @@ -1243,27 +1627,230 @@ "$(inherited)", "$(PROJECT_DIR)/Carthage/Build/iOS", ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", "$(PROJECT_DIR)/src/wrappers/themis/Obj-C", ); INFOPLIST_FILE = "src/wrappers/themis/Obj-c/Themis/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 0.13.0; - PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.Themis; + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; + PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTS_MACCATALYST = NO; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = "-Wno-documentation"; + }; + name = Release; + }; + 9F70B2C5241D0FEC009CB629 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 9F70B2C6241D0FEC009CB629 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 9F70B2F0241D17A3009CB629 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 9F70B2F1241D17A3009CB629 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 9F70B3172420E16E009CB629 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 9F70B3182420E16E009CB629 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/iOS", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; + 9F70B32F2420E176009CB629 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + }; + name = Debug; + }; + 9F70B3302420E176009CB629 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Carthage/Build/Mac", + ); + INFOPLIST_FILE = tests/objcthemis/objthemis/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis.tests; + PRODUCT_MODULE_NAME = themis_test; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_OBJC_BRIDGING_HEADER = "tests/objcthemis/objthemis/objthemis-Bridging-Header.h"; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -1297,6 +1884,42 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9F70B2C4241D0FEC009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, macOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F70B2C5241D0FEC009CB629 /* Debug */, + 9F70B2C6241D0FEC009CB629 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9F70B2EF241D17A3009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 5, iOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F70B2F0241D17A3009CB629 /* Debug */, + 9F70B2F1241D17A3009CB629 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9F70B3162420E16E009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, iOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F70B3172420E16E009CB629 /* Debug */, + 9F70B3182420E16E009CB629 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9F70B32E2420E176009CB629 /* Build configuration list for PBXNativeTarget "Test Themis (Swift 4, macOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F70B32F2420E176009CB629 /* Debug */, + 9F70B3302420E176009CB629 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 738B81062239809D00A9947C /* Project object */; diff --git a/Themis.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Themis.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 6fb6177f6..000000000 --- a/Themis.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (iOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme similarity index 62% rename from ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (iOS).xcscheme rename to Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme index a833fb1ba..82afce8e2 100644 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (iOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, iOS).xcscheme @@ -5,22 +5,6 @@ - - - - - - + + + + - - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (macOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme similarity index 62% rename from ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (macOS).xcscheme rename to Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme index d897d1f4a..72a4ba1ef 100644 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/ObjCThemis (macOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 4, macOS).xcscheme @@ -5,22 +5,6 @@ - - - - - - + + + + - - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme similarity index 60% rename from ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme rename to Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme index 8129272f1..ab3b1a467 100644 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, iOS).xcscheme @@ -5,22 +5,6 @@ - - - - - - + ReferencedContainer = "container:Themis.xcodeproj"> @@ -57,15 +41,6 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> - - - - diff --git a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme similarity index 60% rename from ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme rename to Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme index a4a9280eb..41c3f8417 100644 --- a/ObjCThemis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Test Themis (Swift 5, macOS).xcscheme @@ -5,22 +5,6 @@ - - - - - - + ReferencedContainer = "container:Themis.xcodeproj"> @@ -57,15 +41,6 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> - - - - diff --git a/Themis.xcodeproj/xcshareddata/xcschemes/Themis (iOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Themis (iOS).xcscheme index a97c7e79f..a49bc28bf 100644 --- a/Themis.xcodeproj/xcshareddata/xcschemes/Themis (iOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Themis (iOS).xcscheme @@ -1,6 +1,6 @@ - - - - - - + + - - - - diff --git a/Themis.xcodeproj/xcshareddata/xcschemes/Themis (macOS).xcscheme b/Themis.xcodeproj/xcshareddata/xcschemes/Themis (macOS).xcscheme index 85095f152..fc06338fb 100644 --- a/Themis.xcodeproj/xcshareddata/xcschemes/Themis (macOS).xcscheme +++ b/Themis.xcodeproj/xcshareddata/xcschemes/Themis (macOS).xcscheme @@ -1,6 +1,6 @@ - - - - - - - - is deprecated since Themis 0.13. \ -Please use #import instead. \ -See https://github.com/cossacklabs/themis/blob/master/CHANGELOG.md#0.13.0-objcthemis-rename +#import "objcthemis.h" diff --git a/tests/objcthemis/objthemis/SecureCellTests.m b/tests/objcthemis/objthemis/SecureCellTests.m index e1cb1051a..fead6a725 100644 --- a/tests/objcthemis/objthemis/SecureCellTests.m +++ b/tests/objcthemis/objthemis/SecureCellTests.m @@ -6,7 +6,15 @@ // #import + +// TODO: use a unified import here +// CocoaPods tests do not work with canonical import of Themis for some reason. +// Please fix this if you have any idea how. +#if COCOAPODS #import +#else +@import themis; +#endif @interface SecureCellKeygen : XCTestCase @end diff --git a/tests/objcthemis/objthemis/SecureComparatorTests.m b/tests/objcthemis/objthemis/SecureComparatorTests.m index 3a6743769..f7d740def 100644 --- a/tests/objcthemis/objthemis/SecureComparatorTests.m +++ b/tests/objcthemis/objthemis/SecureComparatorTests.m @@ -6,7 +6,15 @@ // #import + +// TODO: use a unified import here +// CocoaPods tests do not work with canonical import of Themis for some reason. +// Please fix this if you have any idea how. +#if COCOAPODS #import +#else +@import themis; +#endif @interface SecureComparatorTests : XCTestCase diff --git a/tests/objcthemis/objthemis/SecureMessageTests.m b/tests/objcthemis/objthemis/SecureMessageTests.m index b5593374f..71d3f5c8d 100644 --- a/tests/objcthemis/objthemis/SecureMessageTests.m +++ b/tests/objcthemis/objthemis/SecureMessageTests.m @@ -6,9 +6,18 @@ // #import -#import + #import "StaticKeys.h" +// TODO: use a unified import here +// CocoaPods tests do not work with canonical import of Themis for some reason. +// Please fix this if you have any idea how. +#if COCOAPODS +#import +#else +@import themis; +#endif + @interface SecureMessageTests : XCTestCase @end diff --git a/tests/objcthemis/objthemis/StaticKeys.h b/tests/objcthemis/objthemis/StaticKeys.h index 65c4b7e54..7bfa3c346 100644 --- a/tests/objcthemis/objthemis/StaticKeys.h +++ b/tests/objcthemis/objthemis/StaticKeys.h @@ -8,6 +8,8 @@ #ifndef StaticKeys_h #define StaticKeys_h +#import + static NSString * privateKeyEc256 = @"UkVDMgAAAC1JhwRrAPIGB33HHFmhjzn8lIE/nsW6cG+TCI3jhYJb+D/Gnwvf"; static NSString * publicKeyEc256 = @"VUVDMgAAAC11WDPUAhLfH+nqSBHh+XGOJBHL/cCjbtasiLZEwpokhO5QTD6g"; diff --git a/tests/objcthemis/objthemis/objthemis-Bridging-Header.h b/tests/objcthemis/objthemis/objthemis-Bridging-Header.h index 0da73d44e..0e939b154 100644 --- a/tests/objcthemis/objthemis/objthemis-Bridging-Header.h +++ b/tests/objcthemis/objthemis/objthemis-Bridging-Header.h @@ -6,7 +6,15 @@ #ifndef objcthemis_Bridging_Header_h #define objcthemis_Bridging_Header_h - #import #import "StaticKeys.h" +// TODO: use a unified import here +// CocoaPods tests do not work with canonical import of Themis for some reason. +// Please fix this if you have any idea how. +#if COCOAPODS +#import +#else +@import themis; +#endif + #endif /* objcthemis_Bridging_Header_h */ From f6a755c16a7fe6141e4212d519d3e44029c48173 Mon Sep 17 00:00:00 2001 From: Alexei Lozovsky Date: Fri, 14 Aug 2020 23:04:08 +0300 Subject: [PATCH 10/11] Themis 0.13.2 (#705) Hotfix for Carthage, removing dysfunctional ObjCThemis.xcodeproj. --- CHANGELOG.md | 2 ++ Themis.xcodeproj/project.pbxproj | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b2122688..5d8a515ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ Changes that are currently in development and have not been released yet. +## [0.13.2](https://github.com/cossacklabs/themis/releases/tag/0.13.2), August 14th 2020 + **Breaking changes and deprecations:** - ObjCThemis framework built by Carthage is now called `themis.framework` once again ([read more](#0.13.2-revert-objcthemis-rename)). diff --git a/Themis.xcodeproj/project.pbxproj b/Themis.xcodeproj/project.pbxproj index 6cbe4ab2f..30679406f 100644 --- a/Themis.xcodeproj/project.pbxproj +++ b/Themis.xcodeproj/project.pbxproj @@ -1478,7 +1478,7 @@ CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1504,7 +1504,7 @@ "@executable_path/../Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.13.2; PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; @@ -1520,7 +1520,7 @@ CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1546,7 +1546,7 @@ "@executable_path/../Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.13.2; PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; @@ -1565,7 +1565,7 @@ ); CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1591,7 +1591,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.13.2; PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; @@ -1615,7 +1615,7 @@ ); CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_COMPATIBILITY_VERSION = 1; @@ -1641,7 +1641,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.13.2; PRODUCT_BUNDLE_IDENTIFIER = com.cossacklabs.themis; PRODUCT_MODULE_NAME = themis; PRODUCT_NAME = themis; From 7472f22a8689db25b29cf68e0b63e58584713190 Mon Sep 17 00:00:00 2001 From: vixentael Date: Mon, 12 Oct 2020 14:26:51 +0300 Subject: [PATCH 11/11] Hotfix for Themis CocoaPods podspec: support Xcode12 (#719) * update podspec to fix builds on xcode12 * ok, use 0.13.2 as podspec version * set ios deployment target to 10.0 for cocoapods projects * update themis podspec for 0.13.3 tag --- CHANGELOG.md | 15 +++++++++ docs/examples/Themis-server/Obj-C/Podfile | 2 +- docs/examples/Themis-server/swift/Podfile | 2 +- docs/examples/objc/iOS-CocoaPods/Podfile | 2 +- docs/examples/swift/iOS-CocoaPods/Podfile | 2 +- tests/objcthemis/Podfile | 5 ++- themis.podspec | 37 +++++++++++++++++------ 7 files changed, 51 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d8a515ee..280996f98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,21 @@ Changes that are currently in development and have not been released yet. + +## [0.13.3](https://github.com/cossacklabs/themis/releases/tag/0.13.3), October 12th 2020 + +**Hotfix for Themis CocoaPods and Xcode12:** + +- Default Themis podspec is using OpenSSL 1.0.2u again ("themis/themis-openssl"). OpenSSL 1.1.1g podspec ("themis/openssl") might be broken for Xcode12, fixing is in progress. BoringSSL podspec ("themis/themis-boringssl") is available too. + +_Code:_ + +- **Objective-C / Swift** + + - Themis CocoaPods podspec is updated with bitcode fixes and disabling arm64 simulator in order to support Xcode12 builds. This is a podspec change only, no changes in code, headers or whatsoever. Default podspec is set as "themis/themis-openssl", which uses OpenSSL 1.0.2u. Fixes for "themis/openssl" podspec (OpenSSL 1.1.1g) might arrive soon. + + + ## [0.13.2](https://github.com/cossacklabs/themis/releases/tag/0.13.2), August 14th 2020 **Breaking changes and deprecations:** diff --git a/docs/examples/Themis-server/Obj-C/Podfile b/docs/examples/Themis-server/Obj-C/Podfile index d4dba723b..1969b93f3 100644 --- a/docs/examples/Themis-server/Obj-C/Podfile +++ b/docs/examples/Themis-server/Obj-C/Podfile @@ -16,7 +16,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '10.0' project 'WorkingWithThemisServer/WorkingWithThemisServer.xcodeproj' inhibit_all_warnings! use_frameworks! diff --git a/docs/examples/Themis-server/swift/Podfile b/docs/examples/Themis-server/swift/Podfile index 1579cf87a..9cb84f959 100644 --- a/docs/examples/Themis-server/swift/Podfile +++ b/docs/examples/Themis-server/swift/Podfile @@ -16,7 +16,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '10.0' project 'SwiftThemisServerExample/SwiftThemisServerExample.xcodeproj' inhibit_all_warnings! use_frameworks! diff --git a/docs/examples/objc/iOS-CocoaPods/Podfile b/docs/examples/objc/iOS-CocoaPods/Podfile index db9279f16..3619c5e00 100644 --- a/docs/examples/objc/iOS-CocoaPods/Podfile +++ b/docs/examples/objc/iOS-CocoaPods/Podfile @@ -16,7 +16,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '10.0' project 'ThemisTest/ThemisTest.xcodeproj' inhibit_all_warnings! use_frameworks! diff --git a/docs/examples/swift/iOS-CocoaPods/Podfile b/docs/examples/swift/iOS-CocoaPods/Podfile index 7a7f517a8..94a08aa2e 100644 --- a/docs/examples/swift/iOS-CocoaPods/Podfile +++ b/docs/examples/swift/iOS-CocoaPods/Podfile @@ -16,7 +16,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '10.0' project 'ThemisSwift/ThemisSwift.xcodeproj' inhibit_all_warnings! use_frameworks! diff --git a/tests/objcthemis/Podfile b/tests/objcthemis/Podfile index c7eaf6aa0..3328e4388 100644 --- a/tests/objcthemis/Podfile +++ b/tests/objcthemis/Podfile @@ -16,7 +16,7 @@ source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' +platform :ios, '10.0' inhibit_all_warnings! target "objthemis" do @@ -26,6 +26,9 @@ target "objthemis" do end +#TODO: add tests for openssl1.1.1 target? + + target "objthemis_boring" do # example should work with head diff --git a/themis.podspec b/themis.podspec index 428dc81ec..dd4ab94af 100644 --- a/themis.podspec +++ b/themis.podspec @@ -1,25 +1,28 @@ Pod::Spec.new do |s| s.name = "themis" - s.version = "0.13.1" + s.version = "0.13.3" s.summary = "Data security library for network communication and data storage for iOS and mac OS" s.description = "Themis is a convenient cryptographic library for data protection. It provides secure messaging with forward secrecy and secure data storage. Themis is aimed at modern development practices and has a unified API across 12 platforms, including iOS/macOS, Ruby, JavaScript, Python, and Java/Android." s.homepage = "https://cossacklabs.com" s.license = { :type => 'Apache 2.0'} s.source = { :git => "https://github.com/cossacklabs/themis.git", :tag => "#{s.version}" } + s.author = {'cossacklabs' => 'info@cossacklabs.com'} s.module_name = 'themis' - s.default_subspec = 'openssl-1.1.1' + s.default_subspec = 'themis-openssl' - s.ios.deployment_target = '8.0' - s.osx.deployment_target = '10.9' + s.ios.deployment_target = '10.0' + s.osx.deployment_target = '10.11' s.ios.frameworks = 'UIKit', 'Foundation' # TODO(ilammy, 2020-03-02): resolve "pod spec lint" warnings due to dependencies # If you update dependencies, please check whether we can remove "--allow-warnings" # from podspec validation in .github/workflows/test-objc.yaml + # TODO(vixentael, 11 oct 2020): as xcode12 introduces new arm64 architecture, our own openssl framework doesn't work yet + # Change openssl-1.1.1 to default when fix our openssl # This variant uses the current stable, non-legacy version of OpenSSL. s.subspec 'openssl-1.1.1' do |so| # OpenSSL 1.1.1g @@ -77,17 +80,33 @@ Pod::Spec.new do |s| # use `themis/themis-openssl` as separate target to use Themis with OpenSSL s.subspec 'themis-openssl' do |so| - # Enable bitcode for openssl only, unfortunately boringssl with bitcode not available at the moment - so.ios.pod_target_xcconfig = {'ENABLE_BITCODE' => 'YES' } - + # Enable bitcode for OpenSSL in a very specific way, but it works, thanks to @deszip + #so.ios.pod_target_xcconfig = {'ENABLE_BITCODE' => 'YES' } + so.ios.pod_target_xcconfig = { + 'OTHER_CFLAGS[config=Debug]' => '$(inherited) -fembed-bitcode-marker', + 'OTHER_CFLAGS[config=Release]' => '$(inherited) -fembed-bitcode', + 'BITCODE_GENERATION_MODE[config=Release]' => 'bitcode', + 'BITCODE_GENERATION_MODE[config=Debug]' => 'bitcode-marker' + } + + # Xcode12, arm64 simulator issues https://stackoverflow.com/a/63955114 + # disable building for arm64 simulator for now + + so.ios.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + so.ios.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + + # TODO: due to error in symbols in GRKOpenSSLFramework 219 release, we've manually switched to 218 # which doesn't sound like a good decision, so when GRKOpenSSLFramework will be updated – # please bring back correct dependency version # https://github.com/cossacklabs/themis/issues/538 # 26 sept 2019 #so.dependency 'GRKOpenSSLFramework', '~> 1.0.1' # <-- this is good + # 11 oct 2020 update: trying 1.0.2.20, but it also gives linking errors, so postponed + # https://github.com/levigroker/GRKOpenSSLFramework/issues/10 + #so.dependency 'GRKOpenSSLFramework', '1.0.2.20' # 1.0.2u, latest in 1.0.2 branch - so.dependency 'GRKOpenSSLFramework', '1.0.2.18' # <-- this is bad and temp + so.dependency 'GRKOpenSSLFramework', '1.0.2.18' # <-- this is temp so.ios.xcconfig = { 'OTHER_CFLAGS' => '-DLIBRESSL', 'USE_HEADERMAP' => 'NO', @@ -146,4 +165,4 @@ Pod::Spec.new do |s| ss.dependency 'themis/themis-boringssl/core' end end -end +end \ No newline at end of file