Lines Matching refs:token

49  * parse an RxKAD type XDR format token
56 struct rxrpc_key_token *token, **pptoken;
74 plen = sizeof(*token) + sizeof(*token->kad) + tktlen;
77 plen -= sizeof(*token);
78 token = kzalloc(sizeof(*token), GFP_KERNEL);
79 if (!token)
82 token->kad = kzalloc(plen, GFP_KERNEL);
83 if (!token->kad) {
84 kfree(token);
88 token->security_index = RXRPC_SECURITY_RXKAD;
89 token->kad->ticket_len = tktlen;
90 token->kad->vice_id = ntohl(xdr[0]);
91 token->kad->kvno = ntohl(xdr[1]);
92 token->kad->start = ntohl(xdr[4]);
93 token->kad->expiry = ntohl(xdr[5]);
94 token->kad->primary_flag = ntohl(xdr[6]);
95 memcpy(&token->kad->session_key, &xdr[2], 8);
96 memcpy(&token->kad->ticket, &xdr[8], tktlen);
98 _debug("SCIX: %u", token->security_index);
99 _debug("TLEN: %u", token->kad->ticket_len);
100 _debug("EXPY: %x", token->kad->expiry);
101 _debug("KVNO: %u", token->kad->kvno);
102 _debug("PRIM: %u", token->kad->primary_flag);
104 token->kad->session_key[0], token->kad->session_key[1],
105 token->kad->session_key[2], token->kad->session_key[3],
106 token->kad->session_key[4], token->kad->session_key[5],
107 token->kad->session_key[6], token->kad->session_key[7]);
108 if (token->kad->ticket_len >= 8)
110 token->kad->ticket[0], token->kad->ticket[1],
111 token->kad->ticket[2], token->kad->ticket[3],
112 token->kad->ticket[4], token->kad->ticket[5],
113 token->kad->ticket[6], token->kad->ticket[7]);
123 *pptoken = token;
124 expiry = rxrpc_u32_to_time64(token->kad->expiry);
138 const __be32 *xdr = prep->data, *token, *p;
182 /* get the token count */
191 /* check each token wrapper */
200 _debug("token: [%x/%zx] %x", toklen, datalen, sec_ix);
219 token = xdr;
222 sec_ix = ntohl(*token++);
229 ret2 = rxrpc_preparse_xdr_rxkad(prep, datalen, token, toklen);
280 struct rxrpc_key_token *token, **pp;
342 plen = sizeof(*token->kad) + v1->ticket_length;
343 prep->quotalen = plen + sizeof(*token);
346 token = kzalloc(sizeof(*token), GFP_KERNEL);
347 if (!token)
349 token->kad = kzalloc(plen, GFP_KERNEL);
350 if (!token->kad)
353 token->security_index = RXRPC_SECURITY_RXKAD;
354 token->kad->ticket_len = v1->ticket_length;
355 token->kad->expiry = v1->expiry;
356 token->kad->kvno = v1->kvno;
357 memcpy(&token->kad->session_key, &v1->session_key, 8);
358 memcpy(&token->kad->ticket, v1->ticket, v1->ticket_length);
367 *pp = token;
368 expiry = rxrpc_u32_to_time64(token->kad->expiry);
371 token = NULL;
375 kfree(token);
381 * Free token list.
383 static void rxrpc_free_token_list(struct rxrpc_key_token *token)
387 for (; token; token = next) {
388 next = token->next;
389 switch (token->security_index) {
391 kfree(token->kad);
394 pr_err("Unknown token type %x on rxrpc key\n",
395 token->security_index);
399 kfree(token);
424 const struct rxrpc_key_token *token;
429 for (token = key->payload.data[0]; token; token = token->next) {
432 switch (token->security_index) {
437 seq_printf(m, "%u", token->security_index);
565 const struct rxrpc_key_token *token;
584 size += 1 * 4; /* token count */
587 for (token = key->payload.data[0]; token; token = token->next) {
590 switch (token->security_index) {
594 if (!token->no_leak_key)
595 toksize += RND(token->kad->ticket_len);
599 pr_err("Unsupported key token type (%u)\n",
600 token->security_index);
604 _debug("token[%u]: toksize=%u", ntoks, toksize);
609 size += toksize + 4; /* each token has a length word */
657 for (token = key->payload.data[0]; token; token = token->next) {
661 ENCODE(token->security_index);
663 switch (token->security_index) {
665 ENCODE(token->kad->vice_id);
666 ENCODE(token->kad->kvno);
667 ENCODE_BYTES(8, token->kad->session_key);
668 ENCODE(token->kad->start);
669 ENCODE(token->kad->expiry);
670 ENCODE(token->kad->primary_flag);
671 if (token->no_leak_key)
674 ENCODE_DATA(token->kad->ticket_len, token->kad->ticket);
678 pr_err("Unsupported key token type (%u)\n",
679 token->security_index);