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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 | 100 |
101 // serial number | 101 // serial number |
102 // temporary reference to serial number inside x509 struct | 102 // temporary reference to serial number inside x509 struct |
103 ASN1_INTEGER* asn1_serial_number; | 103 ASN1_INTEGER* asn1_serial_number; |
104 if ((serial_number = BN_new()) == NULL || | 104 if ((serial_number = BN_new()) == NULL || |
105 !BN_pseudo_rand(serial_number, SERIAL_RAND_BITS, 0, 0) || | 105 !BN_pseudo_rand(serial_number, SERIAL_RAND_BITS, 0, 0) || |
106 (asn1_serial_number = X509_get_serialNumber(x509)) == NULL || | 106 (asn1_serial_number = X509_get_serialNumber(x509)) == NULL || |
107 !BN_to_ASN1_INTEGER(serial_number, asn1_serial_number)) | 107 !BN_to_ASN1_INTEGER(serial_number, asn1_serial_number)) |
108 goto error; | 108 goto error; |
109 | 109 |
110 if (!X509_set_version(x509, 0L)) // version 1 | 110 if (!X509_set_version(x509, 2L)) // version 3 |
111 goto error; | 111 goto error; |
112 | 112 |
113 // There are a lot of possible components for the name entries. In | 113 // There are a lot of possible components for the name entries. In |
114 // our P2P SSL mode however, the certificates are pre-exchanged | 114 // our P2P SSL mode however, the certificates are pre-exchanged |
115 // (through the secure XMPP channel), and so the certificate | 115 // (through the secure XMPP channel), and so the certificate |
116 // identification is arbitrary. It can't be empty, so we set some | 116 // identification is arbitrary. It can't be empty, so we set some |
117 // arbitrary common_name. Note that this certificate goes out in | 117 // arbitrary common_name. Note that this certificate goes out in |
118 // clear during SSL negotiation, so there may be a privacy issue in | 118 // clear during SSL negotiation, so there may be a privacy issue in |
119 // putting anything recognizable here. | 119 // putting anything recognizable here. |
120 if ((name = X509_NAME_new()) == NULL || | 120 if ((name = X509_NAME_new()) == NULL || |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
461 SSL_CTX_use_PrivateKey(ctx, key_pair_->pkey()) != 1) { | 461 SSL_CTX_use_PrivateKey(ctx, key_pair_->pkey()) != 1) { |
462 LogSSLErrors("Configuring key and certificate"); | 462 LogSSLErrors("Configuring key and certificate"); |
463 return false; | 463 return false; |
464 } | 464 } |
465 return true; | 465 return true; |
466 } | 466 } |
467 | 467 |
468 } // namespace rtc | 468 } // namespace rtc |
469 | 469 |
470 #endif // HAVE_OPENSSL_SSL_H | 470 #endif // HAVE_OPENSSL_SSL_H |
OLD | NEW |