0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00

src: crypto::UseSNIContext to use BaseObjectPtr

Extracted from the QUIC PR. Not specific to QUIC.

Signed-off-by: James M Snell <jasnell@gmail.com>

PR-URL: https://github.com/nodejs/node/pull/33107
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
This commit is contained in:
James M Snell 2020-04-27 13:40:30 -07:00
parent 80b9777888
commit 7acaf4ed50
3 changed files with 4 additions and 3 deletions

View File

@ -2486,7 +2486,7 @@ void SSLWrap<Base>::CertCbDone(const FunctionCallbackInfo<Value>& args) {
// Store the SNI context for later use.
w->sni_context_ = BaseObjectPtr<SecureContext>(sc);
if (UseSNIContext(w->ssl_, sc) && !w->SetCACerts(sc)) {
if (UseSNIContext(w->ssl_, w->sni_context_) && !w->SetCACerts(sc)) {
// Not clear why sometimes we throw error, and sometimes we call
// onerror(). Both cause .destroy(), but onerror does a bit more.
unsigned long err = ERR_get_error(); // NOLINT(runtime/int)

View File

@ -1,3 +1,4 @@
#include "base_object-inl.h"
#include "env-inl.h"
#include "node_buffer.h"
#include "node_crypto.h"
@ -223,7 +224,7 @@ long VerifyPeerCertificate( // NOLINT(runtime/int)
return err;
}
int UseSNIContext(const SSLPointer& ssl, SecureContext* context) {
int UseSNIContext(const SSLPointer& ssl, BaseObjectPtr<SecureContext> context) {
SSL_CTX* ctx = context->ctx_.get();
X509* x509 = SSL_CTX_get0_certificate(ctx);
EVP_PKEY* pkey = SSL_CTX_get0_privatekey(ctx);

View File

@ -71,7 +71,7 @@ long VerifyPeerCertificate( // NOLINT(runtime/int)
const SSLPointer& ssl,
long def = X509_V_ERR_UNSPECIFIED); // NOLINT(runtime/int)
int UseSNIContext(const SSLPointer& ssl, SecureContext* context);
int UseSNIContext(const SSLPointer& ssl, BaseObjectPtr<SecureContext> context);
const char* GetClientHelloALPN(const SSLPointer& ssl);