@ -117,10 +117,10 @@ void TLSWrap::NewSessionDoneCb() {
void TLSWrap : : InitSSL ( ) {
void TLSWrap : : InitSSL ( ) {
// Initialize SSL
// Initialize SSL
enc_in_ = NodeBIO : : New ( ) ;
enc_in_ = crypto : : NodeBIO : : New ( ) ;
enc_out_ = NodeBIO : : New ( ) ;
enc_out_ = crypto : : NodeBIO : : New ( ) ;
NodeBIO : : FromBIO ( enc_in_ ) - > AssignEnvironment ( env ( ) ) ;
crypto : : NodeBIO : : FromBIO ( enc_in_ ) - > AssignEnvironment ( env ( ) ) ;
NodeBIO : : FromBIO ( enc_out_ ) - > AssignEnvironment ( env ( ) ) ;
crypto : : NodeBIO : : FromBIO ( enc_out_ ) - > AssignEnvironment ( env ( ) ) ;
SSL_set_bio ( ssl_ , enc_in_ , enc_out_ ) ;
SSL_set_bio ( ssl_ , enc_in_ , enc_out_ ) ;
@ -149,7 +149,7 @@ void TLSWrap::InitSSL() {
SSL_set_accept_state ( ssl_ ) ;
SSL_set_accept_state ( ssl_ ) ;
} else if ( is_client ( ) ) {
} else if ( is_client ( ) ) {
// Enough space for server response (hello, cert)
// 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_ ) ;
SSL_set_connect_state ( ssl_ ) ;
} else {
} else {
// Unexpected
// Unexpected
@ -157,7 +157,7 @@ void TLSWrap::InitSSL() {
}
}
// Initialize ring for queud clear data
// Initialize ring for queud clear data
clear_in_ = new NodeBIO ( ) ;
clear_in_ = new crypto : : NodeBIO ( ) ;
clear_in_ - > AssignEnvironment ( env ( ) ) ;
clear_in_ - > AssignEnvironment ( env ( ) ) ;
}
}
@ -289,7 +289,9 @@ void TLSWrap::EncOut() {
char * data [ kSimultaneousBufferCount ] ;
char * data [ kSimultaneousBufferCount ] ;
size_t size [ arraysize ( data ) ] ;
size_t size [ arraysize ( data ) ] ;
size_t count = 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 ) ;
CHECK ( write_size_ ! = 0 & & count ! = 0 ) ;
Local < Object > req_wrap_obj =
Local < Object > req_wrap_obj =
@ -335,7 +337,7 @@ void TLSWrap::EncOutCb(WriteWrap* req_wrap, int status) {
}
}
// Commit
// 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.
// Ensure that the progress will be made and `InvokeQueued` will be called.
wrap - > ClearIn ( ) ;
wrap - > ClearIn ( ) ;
@ -653,7 +655,7 @@ void TLSWrap::OnAllocImpl(size_t suggested_size, uv_buf_t* buf, void* ctx) {
}
}
size_t size = 0 ;
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 ;
buf - > len = size ;
}
}
@ -717,7 +719,7 @@ void TLSWrap::DoRead(ssize_t nread,
}
}
// Commit read data
// Commit read data
NodeBIO * enc_in = NodeBIO : : FromBIO ( enc_in_ ) ;
crypto : : NodeBIO * enc_in = crypto : : NodeBIO : : FromBIO ( enc_in_ ) ;
enc_in - > Commit ( nread ) ;
enc_in - > Commit ( nread ) ;
// Parse ClientHello first
// Parse ClientHello first
@ -788,7 +790,7 @@ void TLSWrap::EnableSessionCallbacks(
" EnableSessionCallbacks after destroySSL " ) ;
" EnableSessionCallbacks after destroySSL " ) ;
}
}
wrap - > enable_session_callbacks ( ) ;
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 ,
wrap - > hello_parser_ . Start ( SSLWrap < TLSWrap > : : OnClientHello ,
OnClientHelloParseEnd ,
OnClientHelloParseEnd ,
wrap ) ;
wrap ) ;