forked from mirrors/nixpkgs
45ab55e6e2
Co-Authored-By: Josef Kemetmüller <josef.kemetmueller@gmail.com>
161 lines
6 KiB
Diff
161 lines
6 KiB
Diff
Fix build against 10.10 SDK
|
|
|
|
The SecKey part perhaps could be fixed by implementing a revert to
|
|
https://chromium.googlesource.com/chromium/src.git/+/8418e098b9cbedf884878b61dcd3292c515845cf%5E%21/#F0
|
|
|
|
--- a/src/3rdparty/chromium/content/browser/renderer_host/input/web_input_event_builders_mac.mm
|
|
+++ b/src/3rdparty/chromium/content/browser/renderer_host/input/web_input_event_builders_mac.mm
|
|
@@ -1,3 +1,4 @@
|
|
+#define NSEventTypeScrollWheel 22
|
|
// Copyright 2015 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.
|
|
--- a/src/3rdparty/chromium/net/ssl/ssl_platform_key_mac.cc
|
|
+++ b/src/3rdparty/chromium/net/ssl/ssl_platform_key_mac.cc
|
|
@@ -48,21 +48,6 @@ namespace net {
|
|
|
|
namespace {
|
|
|
|
-// TODO(davidben): Remove this when we switch to building to the 10.13
|
|
-// SDK. https://crbug.com/780980
|
|
-#if !defined(MAC_OS_X_VERSION_10_13) || \
|
|
- MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13
|
|
-API_AVAILABLE(macosx(10.13))
|
|
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA256 =
|
|
- CFSTR("algid:sign:RSA:digest-PSS:SHA256:SHA256:32");
|
|
-API_AVAILABLE(macosx(10.13))
|
|
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA384 =
|
|
- CFSTR("algid:sign:RSA:digest-PSS:SHA384:SHA384:48");
|
|
-API_AVAILABLE(macosx(10.13))
|
|
-const SecKeyAlgorithm kSecKeyAlgorithmRSASignatureDigestPSSSHA512 =
|
|
- CFSTR("algid:sign:RSA:digest-PSS:SHA512:SHA512:64");
|
|
-#endif
|
|
-
|
|
class ScopedCSSM_CC_HANDLE {
|
|
public:
|
|
ScopedCSSM_CC_HANDLE() : handle_(0) {}
|
|
@@ -187,109 +172,6 @@ class SSLPlatformKeyCSSM : public ThreadedSSLPrivateKey::Delegate {
|
|
DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyCSSM);
|
|
};
|
|
|
|
-// Returns the corresponding SecKeyAlgorithm or nullptr if unrecognized.
|
|
-API_AVAILABLE(macosx(10.12))
|
|
-SecKeyAlgorithm GetSecKeyAlgorithm(uint16_t algorithm) {
|
|
- switch (algorithm) {
|
|
- case SSL_SIGN_RSA_PKCS1_SHA512:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA512;
|
|
- case SSL_SIGN_RSA_PKCS1_SHA384:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA384;
|
|
- case SSL_SIGN_RSA_PKCS1_SHA256:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA256;
|
|
- case SSL_SIGN_RSA_PKCS1_SHA1:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA1;
|
|
- case SSL_SIGN_RSA_PKCS1_MD5_SHA1:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPKCS1v15Raw;
|
|
- case SSL_SIGN_ECDSA_SECP521R1_SHA512:
|
|
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA512;
|
|
- case SSL_SIGN_ECDSA_SECP384R1_SHA384:
|
|
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA384;
|
|
- case SSL_SIGN_ECDSA_SECP256R1_SHA256:
|
|
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA256;
|
|
- case SSL_SIGN_ECDSA_SHA1:
|
|
- return kSecKeyAlgorithmECDSASignatureDigestX962SHA1;
|
|
- }
|
|
-
|
|
- if (base::mac::IsAtLeastOS10_13()) {
|
|
- switch (algorithm) {
|
|
- case SSL_SIGN_RSA_PSS_SHA512:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA512;
|
|
- case SSL_SIGN_RSA_PSS_SHA384:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA384;
|
|
- case SSL_SIGN_RSA_PSS_SHA256:
|
|
- return kSecKeyAlgorithmRSASignatureDigestPSSSHA256;
|
|
- }
|
|
- }
|
|
-
|
|
- return nullptr;
|
|
-}
|
|
-
|
|
-class API_AVAILABLE(macosx(10.12)) SSLPlatformKeySecKey
|
|
- : public ThreadedSSLPrivateKey::Delegate {
|
|
- public:
|
|
- SSLPlatformKeySecKey(int type, size_t max_length, SecKeyRef key)
|
|
- : key_(key, base::scoped_policy::RETAIN) {
|
|
- // Determine the algorithms supported by the key.
|
|
- for (uint16_t algorithm : SSLPrivateKey::DefaultAlgorithmPreferences(
|
|
- type, true /* include PSS */)) {
|
|
- SecKeyAlgorithm sec_algorithm = GetSecKeyAlgorithm(algorithm);
|
|
- if (sec_algorithm &&
|
|
- SecKeyIsAlgorithmSupported(key_.get(), kSecKeyOperationTypeSign,
|
|
- sec_algorithm)) {
|
|
- preferences_.push_back(algorithm);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- ~SSLPlatformKeySecKey() override {}
|
|
-
|
|
- std::vector<uint16_t> GetAlgorithmPreferences() override {
|
|
- return preferences_;
|
|
- }
|
|
-
|
|
- Error Sign(uint16_t algorithm,
|
|
- base::span<const uint8_t> input,
|
|
- std::vector<uint8_t>* signature) override {
|
|
- SecKeyAlgorithm sec_algorithm = GetSecKeyAlgorithm(algorithm);
|
|
- if (!sec_algorithm) {
|
|
- NOTREACHED();
|
|
- return ERR_FAILED;
|
|
- }
|
|
-
|
|
- const EVP_MD* md = SSL_get_signature_algorithm_digest(algorithm);
|
|
- uint8_t digest[EVP_MAX_MD_SIZE];
|
|
- unsigned digest_len;
|
|
- if (!md || !EVP_Digest(input.data(), input.size(), digest, &digest_len, md,
|
|
- nullptr)) {
|
|
- return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED;
|
|
- }
|
|
-
|
|
- base::ScopedCFTypeRef<CFDataRef> digest_ref(CFDataCreateWithBytesNoCopy(
|
|
- kCFAllocatorDefault, digest, base::checked_cast<CFIndex>(digest_len),
|
|
- kCFAllocatorNull));
|
|
-
|
|
- base::ScopedCFTypeRef<CFErrorRef> error;
|
|
- base::ScopedCFTypeRef<CFDataRef> signature_ref(SecKeyCreateSignature(
|
|
- key_, sec_algorithm, digest_ref, error.InitializeInto()));
|
|
- if (!signature_ref) {
|
|
- LOG(ERROR) << error;
|
|
- return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED;
|
|
- }
|
|
-
|
|
- signature->assign(
|
|
- CFDataGetBytePtr(signature_ref),
|
|
- CFDataGetBytePtr(signature_ref) + CFDataGetLength(signature_ref));
|
|
- return OK;
|
|
- }
|
|
-
|
|
- private:
|
|
- std::vector<uint16_t> preferences_;
|
|
- base::ScopedCFTypeRef<SecKeyRef> key_;
|
|
-
|
|
- DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeySecKey);
|
|
-};
|
|
-
|
|
scoped_refptr<SSLPrivateKey> CreateSSLPrivateKeyForSecKey(
|
|
const X509Certificate* certificate,
|
|
SecKeyRef private_key) {
|
|
@@ -298,13 +180,6 @@ scoped_refptr<SSLPrivateKey> CreateSSLPrivateKeyForSecKey(
|
|
if (!GetClientCertInfo(certificate, &key_type, &max_length))
|
|
return nullptr;
|
|
|
|
- if (base::mac::IsAtLeastOS10_12()) {
|
|
- return base::MakeRefCounted<ThreadedSSLPrivateKey>(
|
|
- std::make_unique<SSLPlatformKeySecKey>(key_type, max_length,
|
|
- private_key),
|
|
- GetSSLPlatformKeyTaskRunner());
|
|
- }
|
|
-
|
|
const CSSM_KEY* cssm_key;
|
|
OSStatus status = SecKeyGetCSSMKey(private_key, &cssm_key);
|
|
if (status != noErr) {
|