QUIC: converted ngx_quic_keys_set_encryption_secret() to NGX codes.

While here, removed check for encryption level zero, redundant by its nature.
This commit is contained in:
Sergey Kandaurov 2021-12-07 15:42:10 +03:00
parent d1bc1da950
commit 1bd3cae959
3 changed files with 27 additions and 17 deletions

View File

@ -649,7 +649,8 @@ failed:
} }
int ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_write, ngx_int_t
ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_write,
ngx_quic_keys_t *keys, enum ssl_encryption_level_t level, ngx_quic_keys_t *keys, enum ssl_encryption_level_t level,
const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len) const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len)
{ {
@ -667,11 +668,7 @@ int ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_write,
if (key_len == NGX_ERROR) { if (key_len == NGX_ERROR) {
ngx_ssl_error(NGX_LOG_INFO, pool->log, 0, "unexpected cipher"); ngx_ssl_error(NGX_LOG_INFO, pool->log, 0, "unexpected cipher");
return 0; return NGX_ERROR;
}
if (level == ssl_encryption_initial) {
return 0;
} }
peer_secret->secret.data = ngx_pnalloc(pool, secret_len); peer_secret->secret.data = ngx_pnalloc(pool, secret_len);
@ -702,11 +699,11 @@ int ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_write,
seq[i].secret, secret_len) seq[i].secret, secret_len)
!= NGX_OK) != NGX_OK)
{ {
return 0; return NGX_ERROR;
} }
} }
return 1; return NGX_OK;
} }

View File

@ -20,9 +20,10 @@
ngx_quic_keys_t *ngx_quic_keys_new(ngx_pool_t *pool); ngx_quic_keys_t *ngx_quic_keys_new(ngx_pool_t *pool);
ngx_int_t ngx_quic_keys_set_initial_secret(ngx_pool_t *pool, ngx_int_t ngx_quic_keys_set_initial_secret(ngx_pool_t *pool,
ngx_quic_keys_t *keys, ngx_str_t *secret, uint32_t version); ngx_quic_keys_t *keys, ngx_str_t *secret, uint32_t version);
int ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool, ngx_uint_t is_write, ngx_int_t ngx_quic_keys_set_encryption_secret(ngx_pool_t *pool,
ngx_quic_keys_t *keys, enum ssl_encryption_level_t level, ngx_uint_t is_write, ngx_quic_keys_t *keys,
const SSL_CIPHER *cipher, const uint8_t *secret, size_t secret_len); enum ssl_encryption_level_t level, const SSL_CIPHER *cipher,
const uint8_t *secret, size_t secret_len);
ngx_uint_t ngx_quic_keys_available(ngx_quic_keys_t *keys, ngx_uint_t ngx_quic_keys_available(ngx_quic_keys_t *keys,
enum ssl_encryption_level_t level); enum ssl_encryption_level_t level);
void ngx_quic_keys_discard(ngx_quic_keys_t *keys, void ngx_quic_keys_discard(ngx_quic_keys_t *keys,

View File

@ -75,7 +75,7 @@ ngx_quic_set_read_secret(ngx_ssl_conn_t *ssl_conn,
if (ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level, if (ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level,
cipher, rsecret, secret_len) cipher, rsecret, secret_len)
!= 1) != NGX_OK)
{ {
return 0; return 0;
} }
@ -109,8 +109,14 @@ ngx_quic_set_write_secret(ngx_ssl_conn_t *ssl_conn,
secret_len, wsecret); secret_len, wsecret);
#endif #endif
return ngx_quic_keys_set_encryption_secret(c->pool, 1, qc->keys, level, if (ngx_quic_keys_set_encryption_secret(c->pool, 1, qc->keys, level,
cipher, wsecret, secret_len); cipher, wsecret, secret_len)
!= NGX_OK)
{
return 0;
}
return 1;
} }
#else #else
@ -139,7 +145,7 @@ ngx_quic_set_encryption_secrets(ngx_ssl_conn_t *ssl_conn,
if (ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level, if (ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level,
cipher, rsecret, secret_len) cipher, rsecret, secret_len)
!= 1) != NGX_OK)
{ {
return 0; return 0;
} }
@ -158,8 +164,14 @@ ngx_quic_set_encryption_secrets(ngx_ssl_conn_t *ssl_conn,
secret_len, wsecret); secret_len, wsecret);
#endif #endif
return ngx_quic_keys_set_encryption_secret(c->pool, 1, qc->keys, level, if (ngx_quic_keys_set_encryption_secret(c->pool, 1, qc->keys, level,
cipher, wsecret, secret_len); cipher, wsecret, secret_len)
!= NGX_OK)
{
return 0;
}
return 1;
} }
#endif #endif