Skip to content

Commit

Permalink
src: move crypto_bio/clienthello to crypto ns
Browse files Browse the repository at this point in the history
Currently, node_crypto_bio and node_crypto_clienthello are not in the
crypto namespace but simply in the node namespace. Not sure if this was
intentional or not, but I think it would make sense to move them to be
consistent.

PR-URL: #13957
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
danbev authored and addaleax committed Jul 18, 2017
1 parent 071ecb0 commit ef67f7c
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 13 deletions.
2 changes: 2 additions & 0 deletions src/node_crypto_bio.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <string.h>

namespace node {
namespace crypto {

const BIO_METHOD NodeBIO::method = {
BIO_TYPE_MEM,
Expand Down Expand Up @@ -488,4 +489,5 @@ NodeBIO::~NodeBIO() {
write_head_ = nullptr;
}

} // namespace crypto
} // namespace node
2 changes: 2 additions & 0 deletions src/node_crypto_bio.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "v8.h"

namespace node {
namespace crypto {

class NodeBIO {
public:
Expand Down Expand Up @@ -156,6 +157,7 @@ class NodeBIO {
Buffer* write_head_;
};

} // namespace crypto
} // namespace node

#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
Expand Down
2 changes: 2 additions & 0 deletions src/node_crypto_clienthello-inl.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "util-inl.h"

namespace node {
namespace crypto {

inline void ClientHelloParser::Reset() {
frame_len_ = 0;
Expand Down Expand Up @@ -74,6 +75,7 @@ inline bool ClientHelloParser::IsPaused() const {
return state_ == kPaused;
}

} // namespace crypto
} // namespace node

#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
Expand Down
2 changes: 2 additions & 0 deletions src/node_crypto_clienthello.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "node_crypto_clienthello-inl.h"

namespace node {
namespace crypto {

void ClientHelloParser::Parse(const uint8_t* data, size_t avail) {
switch (state_) {
Expand Down Expand Up @@ -244,4 +245,5 @@ bool ClientHelloParser::ParseTLSClientHello(const uint8_t* data, size_t avail) {
return true;
}

} // namespace crypto
} // namespace node
2 changes: 2 additions & 0 deletions src/node_crypto_clienthello.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <stdlib.h> // nullptr

namespace node {
namespace crypto {

class ClientHelloParser {
public:
Expand Down Expand Up @@ -133,6 +134,7 @@ class ClientHelloParser {
const uint8_t* tls_ticket_;
};

} // namespace crypto
} // namespace node

#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
Expand Down
24 changes: 13 additions & 11 deletions src/tls_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,10 @@ void TLSWrap::NewSessionDoneCb() {

void TLSWrap::InitSSL() {
// Initialize SSL
enc_in_ = NodeBIO::New();
enc_out_ = NodeBIO::New();
NodeBIO::FromBIO(enc_in_)->AssignEnvironment(env());
NodeBIO::FromBIO(enc_out_)->AssignEnvironment(env());
enc_in_ = crypto::NodeBIO::New();
enc_out_ = crypto::NodeBIO::New();
crypto::NodeBIO::FromBIO(enc_in_)->AssignEnvironment(env());
crypto::NodeBIO::FromBIO(enc_out_)->AssignEnvironment(env());

SSL_set_bio(ssl_, enc_in_, enc_out_);

Expand Down Expand Up @@ -170,15 +170,15 @@ void TLSWrap::InitSSL() {
SSL_set_accept_state(ssl_);
} else if (is_client()) {
// Enough space for server response (hello, cert)
NodeBIO::FromBIO(enc_in_)->set_initial(kInitialClientBufferLength);
crypto::NodeBIO::FromBIO(enc_in_)->set_initial(kInitialClientBufferLength);
SSL_set_connect_state(ssl_);
} else {
// Unexpected
ABORT();
}

// Initialize ring for queud clear data
clear_in_ = new NodeBIO();
clear_in_ = new crypto::NodeBIO();
clear_in_->AssignEnvironment(env());
}

Expand Down Expand Up @@ -310,7 +310,9 @@ void TLSWrap::EncOut() {
char* data[kSimultaneousBufferCount];
size_t size[arraysize(data)];
size_t count = arraysize(data);
write_size_ = NodeBIO::FromBIO(enc_out_)->PeekMultiple(data, size, &count);
write_size_ = crypto::NodeBIO::FromBIO(enc_out_)->PeekMultiple(data,
size,
&count);
CHECK(write_size_ != 0 && count != 0);

Local<Object> req_wrap_obj =
Expand Down Expand Up @@ -356,7 +358,7 @@ void TLSWrap::EncOutCb(WriteWrap* req_wrap, int status) {
}

// Commit
NodeBIO::FromBIO(wrap->enc_out_)->Read(nullptr, wrap->write_size_);
crypto::NodeBIO::FromBIO(wrap->enc_out_)->Read(nullptr, wrap->write_size_);

// Ensure that the progress will be made and `InvokeQueued` will be called.
wrap->ClearIn();
Expand Down Expand Up @@ -674,7 +676,7 @@ void TLSWrap::OnAllocImpl(size_t suggested_size, uv_buf_t* buf, void* ctx) {
}

size_t size = 0;
buf->base = NodeBIO::FromBIO(wrap->enc_in_)->PeekWritable(&size);
buf->base = crypto::NodeBIO::FromBIO(wrap->enc_in_)->PeekWritable(&size);
buf->len = size;
}

Expand Down Expand Up @@ -737,7 +739,7 @@ void TLSWrap::DoRead(ssize_t nread,
}

// Commit read data
NodeBIO* enc_in = NodeBIO::FromBIO(enc_in_);
crypto::NodeBIO* enc_in = crypto::NodeBIO::FromBIO(enc_in_);
enc_in->Commit(nread);

// Parse ClientHello first
Expand Down Expand Up @@ -808,7 +810,7 @@ void TLSWrap::EnableSessionCallbacks(
"EnableSessionCallbacks after destroySSL");
}
wrap->enable_session_callbacks();
NodeBIO::FromBIO(wrap->enc_in_)->set_initial(kMaxHelloLength);
crypto::NodeBIO::FromBIO(wrap->enc_in_)->set_initial(kMaxHelloLength);
wrap->hello_parser_.Start(SSLWrap<TLSWrap>::OnClientHello,
OnClientHelloParseEnd,
wrap);
Expand Down
4 changes: 2 additions & 2 deletions src/tls_wrap.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@
namespace node {

// Forward-declarations
class NodeBIO;
class WriteWrap;
namespace crypto {
class SecureContext;
class NodeBIO;
}

class TLSWrap : public AsyncWrap,
Expand Down Expand Up @@ -172,7 +172,7 @@ class TLSWrap : public AsyncWrap,
StreamBase* stream_;
BIO* enc_in_;
BIO* enc_out_;
NodeBIO* clear_in_;
crypto::NodeBIO* clear_in_;
size_t write_size_;
typedef ListHead<WriteItem, &WriteItem::member_> WriteItemList;
WriteItemList write_item_queue_;
Expand Down

0 comments on commit ef67f7c

Please sign in to comment.