Lines Matching refs:ssl
79 static int setup_read_buffer(SSL *ssl) { in setup_read_buffer() argument
80 SSL3_BUFFER *buf = &ssl->s3->read_buffer; in setup_read_buffer()
86 size_t header_len = ssl_record_prefix_len(ssl); in setup_read_buffer()
88 if (SSL_IS_DTLS(ssl)) { in setup_read_buffer()
97 uint8_t *ssl_read_buffer(SSL *ssl) { in ssl_read_buffer() argument
98 return ssl->s3->read_buffer.buf + ssl->s3->read_buffer.offset; in ssl_read_buffer()
101 size_t ssl_read_buffer_len(const SSL *ssl) { in ssl_read_buffer_len() argument
102 return ssl->s3->read_buffer.len; in ssl_read_buffer_len()
105 static int dtls_read_buffer_next_packet(SSL *ssl) { in dtls_read_buffer_next_packet() argument
106 SSL3_BUFFER *buf = &ssl->s3->read_buffer; in dtls_read_buffer_next_packet()
116 ssl->rwstate = SSL_READING; in dtls_read_buffer_next_packet()
117 int ret = BIO_read(ssl->rbio, buf->buf + buf->offset, (int)buf->cap); in dtls_read_buffer_next_packet()
121 ssl->rwstate = SSL_NOTHING; in dtls_read_buffer_next_packet()
127 static int tls_read_buffer_extend_to(SSL *ssl, size_t len) { in tls_read_buffer_extend_to() argument
128 SSL3_BUFFER *buf = &ssl->s3->read_buffer; in tls_read_buffer_extend_to()
139 ssl->rwstate = SSL_READING; in tls_read_buffer_extend_to()
140 int ret = BIO_read(ssl->rbio, buf->buf + buf->offset + buf->len, in tls_read_buffer_extend_to()
145 ssl->rwstate = SSL_NOTHING; in tls_read_buffer_extend_to()
154 int ssl_read_buffer_extend_to(SSL *ssl, size_t len) { in ssl_read_buffer_extend_to() argument
156 ssl_read_buffer_discard(ssl); in ssl_read_buffer_extend_to()
158 if (!setup_read_buffer(ssl)) { in ssl_read_buffer_extend_to()
162 if (ssl->rbio == NULL) { in ssl_read_buffer_extend_to()
170 if (SSL_IS_DTLS(ssl)) { in ssl_read_buffer_extend_to()
172 ret = dtls_read_buffer_next_packet(ssl); in ssl_read_buffer_extend_to()
174 ret = tls_read_buffer_extend_to(ssl, len); in ssl_read_buffer_extend_to()
180 ssl_read_buffer_discard(ssl); in ssl_read_buffer_extend_to()
185 void ssl_read_buffer_consume(SSL *ssl, size_t len) { in ssl_read_buffer_consume() argument
186 SSL3_BUFFER *buf = &ssl->s3->read_buffer; in ssl_read_buffer_consume()
189 if (!SSL_IS_DTLS(ssl)) { in ssl_read_buffer_consume()
199 void ssl_read_buffer_discard(SSL *ssl) { in ssl_read_buffer_discard() argument
200 if (ssl->s3->read_buffer.len == 0) { in ssl_read_buffer_discard()
201 ssl_read_buffer_clear(ssl); in ssl_read_buffer_discard()
205 void ssl_read_buffer_clear(SSL *ssl) { in ssl_read_buffer_clear() argument
206 clear_buffer(&ssl->s3->read_buffer); in ssl_read_buffer_clear()
210 int ssl_write_buffer_is_pending(const SSL *ssl) { in ssl_write_buffer_is_pending() argument
211 return ssl->s3->write_buffer.len > 0; in ssl_write_buffer_is_pending()
224 int ssl_write_buffer_init(SSL *ssl, uint8_t **out_ptr, size_t max_len) { in ssl_write_buffer_init() argument
225 SSL3_BUFFER *buf = &ssl->s3->write_buffer; in ssl_write_buffer_init()
232 size_t header_len = ssl_seal_prefix_len(ssl); in ssl_write_buffer_init()
237 if (SSL_IS_DTLS(ssl)) { in ssl_write_buffer_init()
241 if (ssl->mode & SSL_MODE_CBC_RECORD_SPLITTING) { in ssl_write_buffer_init()
258 void ssl_write_buffer_set_len(SSL *ssl, size_t len) { in ssl_write_buffer_set_len() argument
259 SSL3_BUFFER *buf = &ssl->s3->write_buffer; in ssl_write_buffer_set_len()
267 static int tls_write_buffer_flush(SSL *ssl) { in tls_write_buffer_flush() argument
268 SSL3_BUFFER *buf = &ssl->s3->write_buffer; in tls_write_buffer_flush()
271 ssl->rwstate = SSL_WRITING; in tls_write_buffer_flush()
272 int ret = BIO_write(ssl->wbio, buf->buf + buf->offset, buf->len); in tls_write_buffer_flush()
276 ssl->rwstate = SSL_NOTHING; in tls_write_buffer_flush()
279 ssl_write_buffer_clear(ssl); in tls_write_buffer_flush()
283 static int dtls_write_buffer_flush(SSL *ssl) { in dtls_write_buffer_flush() argument
284 SSL3_BUFFER *buf = &ssl->s3->write_buffer; in dtls_write_buffer_flush()
289 ssl->rwstate = SSL_WRITING; in dtls_write_buffer_flush()
290 int ret = BIO_write(ssl->wbio, buf->buf + buf->offset, buf->len); in dtls_write_buffer_flush()
295 ssl_write_buffer_clear(ssl); in dtls_write_buffer_flush()
298 ssl->rwstate = SSL_NOTHING; in dtls_write_buffer_flush()
299 ssl_write_buffer_clear(ssl); in dtls_write_buffer_flush()
303 int ssl_write_buffer_flush(SSL *ssl) { in ssl_write_buffer_flush() argument
304 if (ssl->wbio == NULL) { in ssl_write_buffer_flush()
310 if (SSL_IS_DTLS(ssl)) { in ssl_write_buffer_flush()
311 return dtls_write_buffer_flush(ssl); in ssl_write_buffer_flush()
313 return tls_write_buffer_flush(ssl); in ssl_write_buffer_flush()
317 void ssl_write_buffer_clear(SSL *ssl) { in ssl_write_buffer_clear() argument
318 clear_buffer(&ssl->s3->write_buffer); in ssl_write_buffer_clear()