OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_SSL_SCOPED_OPENSSL_TYPES_H_ | 5 #ifndef NET_SSL_SCOPED_OPENSSL_TYPES_H_ |
6 #define NET_SSL_SCOPED_OPENSSL_TYPES_H_ | 6 #define NET_SSL_SCOPED_OPENSSL_TYPES_H_ |
7 | 7 |
8 #include <openssl/ssl.h> | 8 #include <openssl/ssl.h> |
| 9 #include <openssl/stack.h> |
9 #include <openssl/x509.h> | 10 #include <openssl/x509.h> |
10 | 11 |
11 #include "crypto/scoped_openssl_types.h" | 12 #include "crypto/scoped_openssl_types.h" |
12 | 13 |
13 namespace net { | 14 namespace net { |
14 | 15 |
| 16 inline void FreeX509Stack(STACK_OF(X509)* ptr) { |
| 17 sk_X509_pop_free(ptr, X509_free); |
| 18 } |
| 19 |
| 20 inline void FreeX509NameStack(STACK_OF(X509_NAME)* ptr) { |
| 21 sk_X509_NAME_pop_free(ptr, X509_NAME_free); |
| 22 } |
| 23 |
15 using ScopedPKCS8_PRIV_KEY_INFO = | 24 using ScopedPKCS8_PRIV_KEY_INFO = |
16 crypto::ScopedOpenSSL<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free>; | 25 crypto::ScopedOpenSSL<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_free>; |
17 using ScopedSSL = crypto::ScopedOpenSSL<SSL, SSL_free>; | 26 using ScopedSSL = crypto::ScopedOpenSSL<SSL, SSL_free>; |
18 using ScopedSSL_CTX = crypto::ScopedOpenSSL<SSL_CTX, SSL_CTX_free>; | 27 using ScopedSSL_CTX = crypto::ScopedOpenSSL<SSL_CTX, SSL_CTX_free>; |
19 using ScopedSSL_SESSION = crypto::ScopedOpenSSL<SSL_SESSION, SSL_SESSION_free>; | 28 using ScopedSSL_SESSION = crypto::ScopedOpenSSL<SSL_SESSION, SSL_SESSION_free>; |
20 using ScopedX509 = crypto::ScopedOpenSSL<X509, X509_free>; | 29 using ScopedX509 = crypto::ScopedOpenSSL<X509, X509_free>; |
| 30 using ScopedX509_NAME = crypto::ScopedOpenSSL<X509_NAME, X509_NAME_free>; |
| 31 using ScopedX509Stack = crypto::ScopedOpenSSL<STACK_OF(X509), FreeX509Stack>; |
| 32 using ScopedX509NameStack = |
| 33 crypto::ScopedOpenSSL<STACK_OF(X509_NAME), FreeX509NameStack>; |
21 | 34 |
22 } // namespace net | 35 } // namespace net |
23 | 36 |
24 #endif // NET_SSL_SCOPED_OPENSSL_TYPES_H_ | 37 #endif // NET_SSL_SCOPED_OPENSSL_TYPES_H_ |
OLD | NEW |