Skip to content

Commit

Permalink
Built crypto and crypto_unittests for iOS
Browse files Browse the repository at this point in the history
Adds iOS support to crypto.gyp. Both targets now build, but the tests may not
run correctly, and not all the crypto code is correct yet for iOS.

BUG=NONE

Review URL: https://chromiumcodereview.appspot.com/10830183

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150775 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
msarda@chromium.org committed Aug 9, 2012
1 parent 9e56f79 commit 271428d
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 11 deletions.
2 changes: 1 addition & 1 deletion build/all.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
'dependencies': [
'some.gyp:*',
'../base/base.gyp:*',
'../crypto/crypto.gyp:*',
'../net/net.gyp:*',
'../sql/sql.gyp:*',
'../testing/gtest.gyp:*',
Expand All @@ -32,7 +33,6 @@
'dependencies': [
'../chrome/chrome.gyp:*',
'../content/content.gyp:*',
'../crypto/crypto.gyp:*',
'../gpu/gpu.gyp:*',
'../gpu/tools/tools.gyp:*',
'../ipc/ipc.gyp:*',
Expand Down
21 changes: 15 additions & 6 deletions crypto/crypto.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
4018,
],
'conditions': [
[ 'os_posix == 1 and OS != "mac" and OS != "android"', {
[ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
'dependencies': [
'../build/linux/system.gyp:ssl',
],
Expand All @@ -48,7 +48,7 @@
},
],
],
}, { # os_posix != 1 or OS == "mac" or OS == "android"
}, { # os_posix != 1 or OS == "mac" or OS == "ios" or OS == "android"
'sources/': [
['exclude', '_nss\.cc$'],
['include', 'ec_private_key_nss\.cc$'],
Expand Down Expand Up @@ -100,7 +100,7 @@
'mac_security_services_lock.h',
],
}],
[ 'OS == "mac" or OS == "win"', {
[ 'OS == "mac" or OS == "ios" or OS == "win"', {
'dependencies': [
'../third_party/nss/nss.gyp:nspr',
'../third_party/nss/nss.gyp:nss',
Expand Down Expand Up @@ -262,7 +262,7 @@
'../testing/gtest.gyp:gtest',
],
'conditions': [
[ 'os_posix == 1 and OS != "mac" and OS != "android"', {
[ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
'conditions': [
[ 'linux_use_tcmalloc==1', {
'dependencies': [
Expand All @@ -274,17 +274,26 @@
'dependencies': [
'../build/linux/system.gyp:ssl',
],
}, { # os_posix != 1 or OS == "mac" or OS == "android"
}, { # os_posix != 1 or OS == "mac" or OS == "android" or OS == "ios"
'sources!': [
'rsa_private_key_nss_unittest.cc',
'openpgp_symmetric_encryption_unittest.cc',
]
}],
[ 'OS == "mac" or OS == "win"', {
[ 'OS == "mac" or OS == "ios" or OS == "win"', {
'dependencies': [
'../third_party/nss/nss.gyp:nss',
],
}],
['OS == "ios"', {
'sources!': [
# These tests are excluded because they test classes that are not
# implemented on iOS.
'rsa_private_key_unittest.cc',
'signature_creator_unittest.cc',
'signature_verifier_unittest.cc',
],
}],
[ 'OS == "mac"', {
'dependencies': [
'../third_party/nss/nss.gyp:nspr',
Expand Down
8 changes: 8 additions & 0 deletions crypto/rsa_private_key.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ typedef struct evp_pkey_st EVP_PKEY;
// Forward declaration.
struct SECKEYPrivateKeyStr;
struct SECKEYPublicKeyStr;
#elif defined(OS_IOS)
#include <Security/Security.h>
#elif defined(OS_MACOSX)
#include <Security/cssm.h>
#endif
Expand Down Expand Up @@ -217,6 +219,9 @@ class CRYPTO_EXPORT RSAPrivateKey {
#elif defined(OS_WIN)
HCRYPTPROV provider() { return provider_; }
HCRYPTKEY key() { return key_; }
#elif defined(OS_IOS)
SecKeyRef key() { return key_; }
SecKeyRef public_key() { return public_key_; }
#elif defined(OS_MACOSX)
CSSM_KEY_PTR key() { return &key_; }
CSSM_KEY_PTR public_key() { return &public_key_; }
Expand Down Expand Up @@ -263,6 +268,9 @@ class CRYPTO_EXPORT RSAPrivateKey {

ScopedHCRYPTPROV provider_;
ScopedHCRYPTKEY key_;
#elif defined(OS_IOS)
SecKeyRef key_;
SecKeyRef public_key_;
#elif defined(OS_MACOSX)
CSSM_KEY key_;
CSSM_KEY public_key_;
Expand Down
5 changes: 4 additions & 1 deletion crypto/run_all_unittests.cc
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/test/main_hook.h"
#include "base/test/test_suite.h"
#include "crypto/nss_util.h"

int main(int argc, char** argv) {
MainHook hook(main, argc, argv);

#if defined(USE_NSS)
// This is most likely not needed, but it basically replaces a similar call
// that was performed on test_support_base.
Expand Down
4 changes: 1 addition & 3 deletions net/net.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
'../base/base.gyp:base_i18n',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
'../build/temp_gyp/googleurl.gyp:googleurl',
'../crypto/crypto.gyp:crypto',
'../sdch/sdch.gyp:sdch',
'../third_party/icu/icu.gyp:icui18n',
'../third_party/icu/icu.gyp:icuuc',
Expand Down Expand Up @@ -811,9 +812,6 @@
'conditions': [
['OS != "ios"', {
'dependencies': [
# TODO(ios): This is temporary; Move this back to the main
# dependencies section once crypto builds for iOS.
'../crypto/crypto.gyp:crypto',
# The v8 gyp file is not available in the iOS tree.
'../v8/tools/gyp/v8.gyp:v8',
],
Expand Down

0 comments on commit 271428d

Please sign in to comment.