* cipher -> so log the fact and push the "what we have now" cipher
* (so the client is always told what we expect it to use)
*/
- const struct tls_session *session = &tls_multi->session[TM_ACTIVE];
- if (session->key[KS_PRIMARY].crypto_options.key_ctx_bi.initialized)
+ if (get_primary_key(tls_multi)->crypto_options.key_ctx_bi.initialized)
{
msg(M_INFO, "PUSH: client wants to negotiate cipher (NCP), but "
"server has already generated data channel keys, "
struct tls_session *session = &c->c2.tls_multi->session[TM_ACTIVE];
struct man_def_auth_context *mda = session->opt->mda_context;
struct env_set *es = session->opt->es;
- int key_id = session->key[KS_PRIMARY].key_id;
+ int key_id = get_primary_key(c->c2.tls_multi)->key_id;
management_notify_client_cr_response(key_id, mda, es, m);
"to %us", c->options.handshake_window,
min_uint(max_timeout, server_timeout));
- struct key_state *ks = &c->c2.tls_multi->session[TM_ACTIVE].key[KS_PRIMARY];
+ const struct key_state *ks = get_primary_key(c->c2.tls_multi);
c->c2.push_request_timeout = ks->established + min_uint(max_timeout, server_timeout);
}
send_auth_pending_messages(struct tls_multi *tls_multi, const char *extra,
unsigned int timeout)
{
- struct key_state *ks = &tls_multi->session[TM_ACTIVE].key[KS_PRIMARY];
+ struct key_state *ks = get_key_scan(tls_multi, 0);
static const char info_pre[] = "INFO_PRE,";
bool
send_push_request(struct context *c)
{
- struct tls_session *session = &c->c2.tls_multi->session[TM_ACTIVE];
- struct key_state *ks = &session->key[KS_PRIMARY];
+ const struct key_state *ks = get_primary_key(c->c2.tls_multi);
/* We timeout here under two conditions:
* a) we reached the hard limit of push_request_timeout
if (i == TM_SIZE && is_hard_reset_method2(op))
{
struct tls_session *session = &multi->session[TM_ACTIVE];
- struct key_state *ks = &session->key[KS_PRIMARY];
+ const struct key_state *ks = get_primary_key(multi);
/*
* If we have no session currently in progress, the initial packet will
const uint8_t *data,
int size)
{
- struct tls_session *session;
struct key_state *ks;
bool ret = false;
ASSERT(multi);
- session = &multi->session[TM_ACTIVE];
- ks = &session->key[KS_PRIMARY];
+ ks = get_key_scan(multi, 0);
if (ks->state >= S_ACTIVE)
{
tls_rec_payload(struct tls_multi *multi,
struct buffer *buf)
{
- struct tls_session *session;
- struct key_state *ks;
bool ret = false;
tls_clear_error();
ASSERT(multi);
- session = &multi->session[TM_ACTIVE];
- ks = &session->key[KS_PRIMARY];
+ struct key_state *ks = get_key_scan(multi, 0);
if (ks->state >= S_ACTIVE && BLEN(&ks->plaintext_read_buf))
{
{
if (multi)
{
- const struct key_state *ks = &multi->session[TM_ACTIVE].key[KS_PRIMARY];
+ const struct key_state *ks = get_primary_key(multi);
if (ks->state >= S_ACTIVE)
{
return BLEN(&ks->plaintext_read_buf);
}
}
+/** gets an item of \c key_state objects in the
+ * order they should be scanned by data
+ * channel modules. */
+static inline const struct key_state *
+get_primary_key(const struct tls_multi *multi)
+{
+ return &multi->session[TM_ACTIVE].key[KS_PRIMARY];
+}
+
#endif /* SSL_COMMON_H_ */