Lines Matching refs:skey
186 * @skey: received session key
211 struct tipc_aead_key *skey;
303 static int tipc_crypto_key_xmit(struct net *net, struct tipc_aead_key *skey,
308 static int tipc_aead_key_generate(struct tipc_aead_key *skey);
364 * @skey: input/output key with new content
368 static int tipc_aead_key_generate(struct tipc_aead_key *skey)
375 rc = crypto_rng_get_bytes(crypto_default_rng, skey->key,
376 skey->keylen);
1213 kfree(rx->skey);
1214 rx->skey = NULL;
1869 rx->nokey = !(rx->skey ||
2219 * @skey: the session key to be sent
2224 * The session key 'skey' is packed in a TIPC v2 'MSG_CRYPTO/KEY_DISTR_MSG'
2229 static int tipc_crypto_key_xmit(struct net *net, struct tipc_aead_key *skey,
2239 size = tipc_aead_key_size(skey);
2252 *((__be32 *)(data + TIPC_AEAD_ALG_NAME)) = htonl(skey->keylen);
2253 memcpy(data, skey->alg_name, TIPC_AEAD_ALG_NAME);
2254 memcpy(data + TIPC_AEAD_ALG_NAME + sizeof(__be32), skey->key,
2255 skey->keylen);
2281 struct tipc_aead_key *skey = NULL;
2303 if (unlikely(rx->skey || (key_gen == rx->key_gen && rx->key.keys))) {
2305 rx->skey, key_gen, rx->key_gen);
2310 skey = kmalloc(size, GFP_ATOMIC);
2311 if (unlikely(!skey)) {
2312 pr_err("%s: unable to allocate memory for skey\n", rx->name);
2317 skey->keylen = keylen;
2318 memcpy(skey->alg_name, data, TIPC_AEAD_ALG_NAME);
2319 memcpy(skey->key, data + TIPC_AEAD_ALG_NAME + sizeof(__be32),
2320 skey->keylen);
2324 rx->skey = skey;
2333 if (likely(skey && queue_delayed_work(tx->wq, &rx->work, 0)))
2375 if (rx->skey) {
2376 rc = tipc_crypto_key_init(rx, rx->skey, rx->skey_mode, false);
2378 pr_warn("%s: unable to attach received skey, err %d\n",
2388 kfree(rx->skey);
2389 rx->skey = NULL;
2439 struct tipc_aead_key *skey = NULL;
2457 skey = kmemdup(aead->key, tipc_aead_key_size(aead->key), GFP_ATOMIC);
2461 if (likely(skey)) {
2462 rc = tipc_aead_key_generate(skey) ?:
2463 tipc_crypto_key_init(tx, skey, PER_NODE_KEY, false);
2466 kfree_sensitive(skey);