summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authormsarda@chromium.org <msarda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-09 10:24:54 +0000
committermsarda@chromium.org <msarda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-09 10:24:54 +0000
commit271428d65bc85c4d3989a6782c8b3747c89564f4 (patch)
tree932b1c376875ec1cf4b6775bb2619fdd9df01a63 /crypto
parent9e56f798538a6c859ccb4d44bd014c552df951a4 (diff)
downloadchromium_src-271428d65bc85c4d3989a6782c8b3747c89564f4.zip
chromium_src-271428d65bc85c4d3989a6782c8b3747c89564f4.tar.gz
chromium_src-271428d65bc85c4d3989a6782c8b3747c89564f4.tar.bz2
Built crypto and crypto_unittests for iOS
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
Diffstat (limited to 'crypto')
-rw-r--r--crypto/crypto.gyp21
-rw-r--r--crypto/rsa_private_key.h8
-rw-r--r--crypto/run_all_unittests.cc5
3 files changed, 27 insertions, 7 deletions
diff --git a/crypto/crypto.gyp b/crypto/crypto.gyp
index e124423..33b6b17 100644
--- a/crypto/crypto.gyp
+++ b/crypto/crypto.gyp
@@ -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',
],
@@ -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$'],
@@ -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',
@@ -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': [
@@ -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',
diff --git a/crypto/rsa_private_key.h b/crypto/rsa_private_key.h
index 7a1dccd..ff368d8 100644
--- a/crypto/rsa_private_key.h
+++ b/crypto/rsa_private_key.h
@@ -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
@@ -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_; }
@@ -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_;
diff --git a/crypto/run_all_unittests.cc b/crypto/run_all_unittests.cc
index 9b6fc467..3d4cc479 100644
--- a/crypto/run_all_unittests.cc
+++ b/crypto/run_all_unittests.cc
@@ -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.