Lines Matching refs:skey

477 sctp_free_sharedkey(sctp_sharedkey_t *skey)
479 if (skey == NULL)
482 if (SCTP_DECREMENT_AND_CHECK_REFCOUNT(&skey->refcount)) {
483 if (skey->key != NULL)
484 sctp_free_key(skey->key);
485 SCTP_FREE(skey, SCTP_M_AUTH_KY);
492 sctp_sharedkey_t *skey;
494 LIST_FOREACH(skey, shared_keys, next) {
495 if (skey->keyid == key_id)
496 return (skey);
505 sctp_sharedkey_t *skey;
516 LIST_FOREACH(skey, shared_keys, next) {
517 if (new_skey->keyid < skey->keyid) {
519 LIST_INSERT_BEFORE(skey, new_skey, next);
521 } else if (new_skey->keyid == skey->keyid) {
524 if ((skey->deactivated) || (skey->refcount > 1)) {
533 LIST_INSERT_BEFORE(skey, new_skey, next);
534 LIST_REMOVE(skey, next);
535 sctp_free_sharedkey(skey);
538 if (LIST_NEXT(skey, next) == NULL) {
540 LIST_INSERT_AFTER(skey, new_skey, next);
551 sctp_sharedkey_t *skey;
554 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, key_id);
557 if (skey) {
558 atomic_add_int(&skey->refcount, 1);
561 __func__, (void *)stcb, key_id, skey->refcount);
572 sctp_sharedkey_t *skey;
575 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, key_id);
578 if (skey) {
581 __func__, (void *)stcb, key_id, skey->refcount);
584 if ((skey->refcount <= 2) && (skey->deactivated)) {
590 __func__, (void *)stcb, key_id, skey->refcount);
592 sctp_free_sharedkey(skey);
597 sctp_copy_sharedkey(const sctp_sharedkey_t *skey)
601 if (skey == NULL)
606 if (skey->key != NULL)
607 new_skey->key = sctp_set_key(skey->key->key, skey->key->keylen);
610 new_skey->keyid = skey->keyid;
617 sctp_sharedkey_t *skey, *new_skey;
622 LIST_FOREACH(skey, src, next) {
623 new_skey = sctp_copy_sharedkey(skey);
1231 sctp_sharedkey_t *skey;
1241 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, keyid);
1242 if (skey == NULL)
1246 if (skey->refcount > 1)
1250 LIST_REMOVE(skey, next);
1251 sctp_free_sharedkey(skey); /* frees skey->key as well */
1265 sctp_sharedkey_t *skey;
1275 skey = sctp_find_sharedkey(&inp->sctp_ep.shared_keys, keyid);
1276 if (skey == NULL)
1282 LIST_REMOVE(skey, next);
1283 sctp_free_sharedkey(skey); /* frees skey->key as well */
1297 sctp_sharedkey_t *skey = NULL;
1300 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, keyid);
1301 if (skey == NULL) {
1305 if ((skey->deactivated) && (skey->refcount > 1)) {
1313 skey->deactivated = 0;
1325 sctp_sharedkey_t *skey;
1328 skey = sctp_find_sharedkey(&inp->sctp_ep.shared_keys, keyid);
1329 if (skey == NULL) {
1344 sctp_sharedkey_t *skey;
1354 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, keyid);
1355 if (skey == NULL)
1359 if (skey->refcount == 1) {
1366 skey->deactivated = 1;
1378 sctp_sharedkey_t *skey;
1388 skey = sctp_find_sharedkey(&inp->sctp_ep.shared_keys, keyid);
1389 if (skey == NULL)
1395 LIST_REMOVE(skey, next);
1396 sctp_free_sharedkey(skey); /* frees skey->key as well */
1549 sctp_sharedkey_t *skey;
1566 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys, keyid);
1567 /* the only way skey is NULL is if null key id 0 is used */
1568 if (skey != NULL)
1569 key = skey->key;
1640 sctp_sharedkey_t *skey;
1693 skey = sctp_find_sharedkey(&stcb->asoc.shared_keys,
1696 if (skey == NULL) {
1718 stcb->asoc.authinfo.peer_random, skey->key);