Lines Matching refs:token
56 struct rxrpc_key_token *token, **pptoken; in rxrpc_preparse_xdr_rxkad() local
74 plen = sizeof(*token) + sizeof(*token->kad) + tktlen; in rxrpc_preparse_xdr_rxkad()
77 plen -= sizeof(*token); in rxrpc_preparse_xdr_rxkad()
78 token = kzalloc(sizeof(*token), GFP_KERNEL); in rxrpc_preparse_xdr_rxkad()
79 if (!token) in rxrpc_preparse_xdr_rxkad()
82 token->kad = kzalloc(plen, GFP_KERNEL); in rxrpc_preparse_xdr_rxkad()
83 if (!token->kad) { in rxrpc_preparse_xdr_rxkad()
84 kfree(token); in rxrpc_preparse_xdr_rxkad()
88 token->security_index = RXRPC_SECURITY_RXKAD; in rxrpc_preparse_xdr_rxkad()
89 token->kad->ticket_len = tktlen; in rxrpc_preparse_xdr_rxkad()
90 token->kad->vice_id = ntohl(xdr[0]); in rxrpc_preparse_xdr_rxkad()
91 token->kad->kvno = ntohl(xdr[1]); in rxrpc_preparse_xdr_rxkad()
92 token->kad->start = ntohl(xdr[4]); in rxrpc_preparse_xdr_rxkad()
93 token->kad->expiry = ntohl(xdr[5]); in rxrpc_preparse_xdr_rxkad()
94 token->kad->primary_flag = ntohl(xdr[6]); in rxrpc_preparse_xdr_rxkad()
95 memcpy(&token->kad->session_key, &xdr[2], 8); in rxrpc_preparse_xdr_rxkad()
96 memcpy(&token->kad->ticket, &xdr[8], tktlen); in rxrpc_preparse_xdr_rxkad()
98 _debug("SCIX: %u", token->security_index); in rxrpc_preparse_xdr_rxkad()
99 _debug("TLEN: %u", token->kad->ticket_len); in rxrpc_preparse_xdr_rxkad()
100 _debug("EXPY: %x", token->kad->expiry); in rxrpc_preparse_xdr_rxkad()
101 _debug("KVNO: %u", token->kad->kvno); in rxrpc_preparse_xdr_rxkad()
102 _debug("PRIM: %u", token->kad->primary_flag); in rxrpc_preparse_xdr_rxkad()
104 token->kad->session_key[0], token->kad->session_key[1], in rxrpc_preparse_xdr_rxkad()
105 token->kad->session_key[2], token->kad->session_key[3], in rxrpc_preparse_xdr_rxkad()
106 token->kad->session_key[4], token->kad->session_key[5], in rxrpc_preparse_xdr_rxkad()
107 token->kad->session_key[6], token->kad->session_key[7]); in rxrpc_preparse_xdr_rxkad()
108 if (token->kad->ticket_len >= 8) in rxrpc_preparse_xdr_rxkad()
110 token->kad->ticket[0], token->kad->ticket[1], in rxrpc_preparse_xdr_rxkad()
111 token->kad->ticket[2], token->kad->ticket[3], in rxrpc_preparse_xdr_rxkad()
112 token->kad->ticket[4], token->kad->ticket[5], in rxrpc_preparse_xdr_rxkad()
113 token->kad->ticket[6], token->kad->ticket[7]); in rxrpc_preparse_xdr_rxkad()
123 *pptoken = token; in rxrpc_preparse_xdr_rxkad()
124 expiry = rxrpc_u32_to_time64(token->kad->expiry); in rxrpc_preparse_xdr_rxkad()
169 struct rxrpc_key_token *token, **pptoken; in rxrpc_preparse_xdr_yfs_rxgk() local
201 plen = sizeof(*token) + sizeof(*token->rxgk) + tktlen + keylen; in rxrpc_preparse_xdr_yfs_rxgk()
204 plen -= sizeof(*token); in rxrpc_preparse_xdr_yfs_rxgk()
205 token = kzalloc(sizeof(*token), GFP_KERNEL); in rxrpc_preparse_xdr_yfs_rxgk()
206 if (!token) in rxrpc_preparse_xdr_yfs_rxgk()
209 token->rxgk = kzalloc(sizeof(*token->rxgk) + keylen, GFP_KERNEL); in rxrpc_preparse_xdr_yfs_rxgk()
210 if (!token->rxgk) in rxrpc_preparse_xdr_yfs_rxgk()
213 token->security_index = RXRPC_SECURITY_YFS_RXGK; in rxrpc_preparse_xdr_yfs_rxgk()
214 token->rxgk->begintime = xdr_dec64(xdr + 0 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
215 token->rxgk->endtime = xdr_dec64(xdr + 1 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
216 token->rxgk->level = tmp = xdr_dec64(xdr + 2 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
219 token->rxgk->lifetime = xdr_dec64(xdr + 3 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
220 token->rxgk->bytelife = xdr_dec64(xdr + 4 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
221 token->rxgk->enctype = tmp = xdr_dec64(xdr + 5 * 2); in rxrpc_preparse_xdr_yfs_rxgk()
224 token->rxgk->key.len = ntohl(key[-1]); in rxrpc_preparse_xdr_yfs_rxgk()
225 token->rxgk->key.data = token->rxgk->_key; in rxrpc_preparse_xdr_yfs_rxgk()
226 token->rxgk->ticket.len = ntohl(ticket[-1]); in rxrpc_preparse_xdr_yfs_rxgk()
228 if (token->rxgk->endtime != 0) { in rxrpc_preparse_xdr_yfs_rxgk()
229 expiry = rxrpc_s64_to_time64(token->rxgk->endtime); in rxrpc_preparse_xdr_yfs_rxgk()
236 memcpy(token->rxgk->key.data, key, token->rxgk->key.len); in rxrpc_preparse_xdr_yfs_rxgk()
239 token->rxgk->ticket.data = kzalloc(round_up(token->rxgk->ticket.len, 4), in rxrpc_preparse_xdr_yfs_rxgk()
241 if (!token->rxgk->ticket.data) in rxrpc_preparse_xdr_yfs_rxgk()
243 memcpy(token->rxgk->ticket.data, ticket, token->rxgk->ticket.len); in rxrpc_preparse_xdr_yfs_rxgk()
245 _debug("SCIX: %u", token->security_index); in rxrpc_preparse_xdr_yfs_rxgk()
246 _debug("EXPY: %llx", token->rxgk->endtime); in rxrpc_preparse_xdr_yfs_rxgk()
247 _debug("LIFE: %llx", token->rxgk->lifetime); in rxrpc_preparse_xdr_yfs_rxgk()
248 _debug("BYTE: %llx", token->rxgk->bytelife); in rxrpc_preparse_xdr_yfs_rxgk()
249 _debug("ENC : %u", token->rxgk->enctype); in rxrpc_preparse_xdr_yfs_rxgk()
250 _debug("LEVL: %u", token->rxgk->level); in rxrpc_preparse_xdr_yfs_rxgk()
251 _debug("KLEN: %u", token->rxgk->key.len); in rxrpc_preparse_xdr_yfs_rxgk()
252 _debug("TLEN: %u", token->rxgk->ticket.len); in rxrpc_preparse_xdr_yfs_rxgk()
253 _debug("KEY0: %*phN", token->rxgk->key.len, token->rxgk->key.data); in rxrpc_preparse_xdr_yfs_rxgk()
255 min_t(u32, token->rxgk->ticket.len, 32), token->rxgk->ticket.data); in rxrpc_preparse_xdr_yfs_rxgk()
265 *pptoken = token; in rxrpc_preparse_xdr_yfs_rxgk()
271 kfree(token->rxgk); in rxrpc_preparse_xdr_yfs_rxgk()
273 kfree(token); in rxrpc_preparse_xdr_yfs_rxgk()
277 kfree(token); in rxrpc_preparse_xdr_yfs_rxgk()
281 kfree(token->rxgk); in rxrpc_preparse_xdr_yfs_rxgk()
282 kfree(token); in rxrpc_preparse_xdr_yfs_rxgk()
292 const __be32 *xdr = prep->data, *token, *p; in rxrpc_preparse_xdr() local
373 token = xdr; in rxrpc_preparse_xdr()
376 sec_ix = ntohl(*token++); in rxrpc_preparse_xdr()
383 ret2 = rxrpc_preparse_xdr_rxkad(prep, datalen, token, toklen); in rxrpc_preparse_xdr()
386 ret2 = rxrpc_preparse_xdr_yfs_rxgk(prep, datalen, token, toklen); in rxrpc_preparse_xdr()
437 struct rxrpc_key_token *token, **pp; in rxrpc_preparse() local
499 plen = sizeof(*token->kad) + v1->ticket_length; in rxrpc_preparse()
500 prep->quotalen = plen + sizeof(*token); in rxrpc_preparse()
503 token = kzalloc(sizeof(*token), GFP_KERNEL); in rxrpc_preparse()
504 if (!token) in rxrpc_preparse()
506 token->kad = kzalloc(plen, GFP_KERNEL); in rxrpc_preparse()
507 if (!token->kad) in rxrpc_preparse()
510 token->security_index = RXRPC_SECURITY_RXKAD; in rxrpc_preparse()
511 token->kad->ticket_len = v1->ticket_length; in rxrpc_preparse()
512 token->kad->expiry = v1->expiry; in rxrpc_preparse()
513 token->kad->kvno = v1->kvno; in rxrpc_preparse()
514 memcpy(&token->kad->session_key, &v1->session_key, 8); in rxrpc_preparse()
515 memcpy(&token->kad->ticket, v1->ticket, v1->ticket_length); in rxrpc_preparse()
524 *pp = token; in rxrpc_preparse()
525 expiry = rxrpc_u32_to_time64(token->kad->expiry); in rxrpc_preparse()
528 token = NULL; in rxrpc_preparse()
532 kfree(token); in rxrpc_preparse()
540 static void rxrpc_free_token_list(struct rxrpc_key_token *token) in rxrpc_free_token_list() argument
544 for (; token; token = next) { in rxrpc_free_token_list()
545 next = token->next; in rxrpc_free_token_list()
546 switch (token->security_index) { in rxrpc_free_token_list()
548 kfree(token->kad); in rxrpc_free_token_list()
551 kfree(token->rxgk->ticket.data); in rxrpc_free_token_list()
552 kfree(token->rxgk); in rxrpc_free_token_list()
556 token->security_index); in rxrpc_free_token_list()
560 kfree(token); in rxrpc_free_token_list()
585 const struct rxrpc_key_token *token; in rxrpc_describe() local
590 for (token = key->payload.data[0]; token; token = token->next) { in rxrpc_describe()
593 switch (token->security_index) { in rxrpc_describe()
601 seq_printf(m, "%u", token->security_index); in rxrpc_describe()
731 const struct rxrpc_key_token *token; in rxrpc_read() local
753 for (token = key->payload.data[0]; token; token = token->next) { in rxrpc_read()
756 switch (token->security_index) { in rxrpc_read()
760 if (!token->no_leak_key) in rxrpc_read()
761 toksize += RND(token->kad->ticket_len); in rxrpc_read()
766 if (!token->no_leak_key) in rxrpc_read()
767 toksize += RND(token->rxgk->key.len); in rxrpc_read()
768 toksize += RND(token->rxgk->ticket.len); in rxrpc_read()
773 token->security_index); in rxrpc_read()
830 for (token = key->payload.data[0]; token; token = token->next) { in rxrpc_read()
834 ENCODE(token->security_index); in rxrpc_read()
836 switch (token->security_index) { in rxrpc_read()
838 ENCODE(token->kad->vice_id); in rxrpc_read()
839 ENCODE(token->kad->kvno); in rxrpc_read()
840 ENCODE_BYTES(8, token->kad->session_key); in rxrpc_read()
841 ENCODE(token->kad->start); in rxrpc_read()
842 ENCODE(token->kad->expiry); in rxrpc_read()
843 ENCODE(token->kad->primary_flag); in rxrpc_read()
844 if (token->no_leak_key) in rxrpc_read()
847 ENCODE_DATA(token->kad->ticket_len, token->kad->ticket); in rxrpc_read()
851 ENCODE64(token->rxgk->begintime); in rxrpc_read()
852 ENCODE64(token->rxgk->endtime); in rxrpc_read()
853 ENCODE64(token->rxgk->level); in rxrpc_read()
854 ENCODE64(token->rxgk->lifetime); in rxrpc_read()
855 ENCODE64(token->rxgk->bytelife); in rxrpc_read()
856 ENCODE64(token->rxgk->enctype); in rxrpc_read()
857 if (token->no_leak_key) in rxrpc_read()
860 ENCODE_DATA(token->rxgk->key.len, token->rxgk->key.data); in rxrpc_read()
861 ENCODE_DATA(token->rxgk->ticket.len, token->rxgk->ticket.data); in rxrpc_read()
866 token->security_index); in rxrpc_read()