OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 OpenSSLKeyPair::~OpenSSLKeyPair() { | 167 OpenSSLKeyPair::~OpenSSLKeyPair() { |
168 EVP_PKEY_free(pkey_); | 168 EVP_PKEY_free(pkey_); |
169 } | 169 } |
170 | 170 |
171 OpenSSLKeyPair* OpenSSLKeyPair::GetReference() { | 171 OpenSSLKeyPair* OpenSSLKeyPair::GetReference() { |
172 AddReference(); | 172 AddReference(); |
173 return new OpenSSLKeyPair(pkey_); | 173 return new OpenSSLKeyPair(pkey_); |
174 } | 174 } |
175 | 175 |
176 void OpenSSLKeyPair::AddReference() { | 176 void OpenSSLKeyPair::AddReference() { |
| 177 #if defined(OPENSSL_IS_BORINGSSL) |
177 EVP_PKEY_up_ref(pkey_); | 178 EVP_PKEY_up_ref(pkey_); |
| 179 #else |
| 180 CRYPTO_add(&pkey_->references, 1, CRYPTO_LOCK_EVP_PKEY); |
| 181 #endif |
178 } | 182 } |
179 | 183 |
180 #if !defined(NDEBUG) | 184 #if !defined(NDEBUG) |
181 // Print a certificate to the log, for debugging. | 185 // Print a certificate to the log, for debugging. |
182 static void PrintCert(X509* x509) { | 186 static void PrintCert(X509* x509) { |
183 BIO* temp_memory_bio = BIO_new(BIO_s_mem()); | 187 BIO* temp_memory_bio = BIO_new(BIO_s_mem()); |
184 if (!temp_memory_bio) { | 188 if (!temp_memory_bio) { |
185 LOG_F(LS_ERROR) << "Failed to allocate temporary memory bio"; | 189 LOG_F(LS_ERROR) << "Failed to allocate temporary memory bio"; |
186 return; | 190 return; |
187 } | 191 } |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 FATAL() << "unreachable code"; | 354 FATAL() << "unreachable code"; |
351 } | 355 } |
352 char* data; | 356 char* data; |
353 size_t length = BIO_get_mem_data(bio, &data); | 357 size_t length = BIO_get_mem_data(bio, &data); |
354 der_buffer->SetData(data, length); | 358 der_buffer->SetData(data, length); |
355 BIO_free(bio); | 359 BIO_free(bio); |
356 } | 360 } |
357 | 361 |
358 void OpenSSLCertificate::AddReference() const { | 362 void OpenSSLCertificate::AddReference() const { |
359 ASSERT(x509_ != NULL); | 363 ASSERT(x509_ != NULL); |
| 364 #if defined(OPENSSL_IS_BORINGSSL) |
360 X509_up_ref(x509_); | 365 X509_up_ref(x509_); |
| 366 #else |
| 367 CRYPTO_add(&x509_->references, 1, CRYPTO_LOCK_X509); |
| 368 #endif |
361 } | 369 } |
362 | 370 |
363 // Documented in sslidentity.h. | 371 // Documented in sslidentity.h. |
364 int64_t OpenSSLCertificate::CertificateExpirationTime() const { | 372 int64_t OpenSSLCertificate::CertificateExpirationTime() const { |
365 ASN1_TIME* expire_time = X509_get_notAfter(x509_); | 373 ASN1_TIME* expire_time = X509_get_notAfter(x509_); |
366 bool long_format; | 374 bool long_format; |
367 | 375 |
368 if (expire_time->type == V_ASN1_UTCTIME) { | 376 if (expire_time->type == V_ASN1_UTCTIME) { |
369 long_format = false; | 377 long_format = false; |
370 } else if (expire_time->type == V_ASN1_GENERALIZEDTIME) { | 378 } else if (expire_time->type == V_ASN1_GENERALIZEDTIME) { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 SSL_CTX_use_PrivateKey(ctx, key_pair_->pkey()) != 1) { | 469 SSL_CTX_use_PrivateKey(ctx, key_pair_->pkey()) != 1) { |
462 LogSSLErrors("Configuring key and certificate"); | 470 LogSSLErrors("Configuring key and certificate"); |
463 return false; | 471 return false; |
464 } | 472 } |
465 return true; | 473 return true; |
466 } | 474 } |
467 | 475 |
468 } // namespace rtc | 476 } // namespace rtc |
469 | 477 |
470 #endif // HAVE_OPENSSL_SSL_H | 478 #endif // HAVE_OPENSSL_SSL_H |
OLD | NEW |