Lines Matching refs:prep
90 static int rxrpc_preparse_xdr_rxkad(struct key_preparsed_payload *prep, in rxrpc_preparse_xdr_rxkad() argument
113 prep->quotalen = datalen + plen; in rxrpc_preparse_xdr_rxkad()
154 prep->payload.data[1] = (void *)((unsigned long)prep->payload.data[1] + 1); in rxrpc_preparse_xdr_rxkad()
157 for (pptoken = (struct rxrpc_key_token **)&prep->payload.data[0]; in rxrpc_preparse_xdr_rxkad()
163 if (expiry < prep->expiry) in rxrpc_preparse_xdr_rxkad()
164 prep->expiry = expiry; in rxrpc_preparse_xdr_rxkad()
431 static int rxrpc_preparse_xdr_rxk5(struct key_preparsed_payload *prep, in rxrpc_preparse_xdr_rxk5() argument
447 prep->quotalen = datalen + toklen; in rxrpc_preparse_xdr_rxk5()
534 for (pptoken = (struct rxrpc_key_token **)&prep->payload.data[0]; in rxrpc_preparse_xdr_rxk5()
540 if (expiry < prep->expiry) in rxrpc_preparse_xdr_rxk5()
541 prep->expiry = expiry; in rxrpc_preparse_xdr_rxk5()
559 static int rxrpc_preparse_xdr(struct key_preparsed_payload *prep) in rxrpc_preparse_xdr() argument
561 const __be32 *xdr = prep->data, *token; in rxrpc_preparse_xdr()
564 size_t datalen = prep->datalen; in rxrpc_preparse_xdr()
569 prep->datalen); in rxrpc_preparse_xdr()
650 ret = rxrpc_preparse_xdr_rxkad(prep, datalen, xdr, toklen); in rxrpc_preparse_xdr()
656 ret = rxrpc_preparse_xdr_rxk5(prep, datalen, xdr, toklen); in rxrpc_preparse_xdr()
694 static int rxrpc_preparse(struct key_preparsed_payload *prep) in rxrpc_preparse() argument
703 _enter("%zu", prep->datalen); in rxrpc_preparse()
706 if (!prep->data && prep->datalen == 0) in rxrpc_preparse()
710 if (prep->datalen > 7 * 4) { in rxrpc_preparse()
711 ret = rxrpc_preparse_xdr(prep); in rxrpc_preparse()
718 if (prep->datalen <= 4 || !prep->data) in rxrpc_preparse()
720 memcpy(&kver, prep->data, sizeof(kver)); in rxrpc_preparse()
721 prep->data += sizeof(kver); in rxrpc_preparse()
722 prep->datalen -= sizeof(kver); in rxrpc_preparse()
732 if (prep->datalen < sizeof(*v1)) in rxrpc_preparse()
735 v1 = prep->data; in rxrpc_preparse()
736 if (prep->datalen != sizeof(*v1) + v1->ticket_length) in rxrpc_preparse()
760 prep->quotalen = plen + sizeof(*token); in rxrpc_preparse()
778 prep->payload.data[1] = (void *)((unsigned long)prep->payload.data[1] + 1); in rxrpc_preparse()
781 pp = (struct rxrpc_key_token **)&prep->payload.data[0]; in rxrpc_preparse()
786 if (expiry < prep->expiry) in rxrpc_preparse()
787 prep->expiry = expiry; in rxrpc_preparse()
827 static void rxrpc_free_preparse(struct key_preparsed_payload *prep) in rxrpc_free_preparse() argument
829 rxrpc_free_token_list(prep->payload.data[0]); in rxrpc_free_preparse()
837 static int rxrpc_preparse_s(struct key_preparsed_payload *prep) in rxrpc_preparse_s() argument
841 _enter("%zu", prep->datalen); in rxrpc_preparse_s()
843 if (prep->datalen != 8) in rxrpc_preparse_s()
846 memcpy(&prep->payload.data[2], prep->data, 8); in rxrpc_preparse_s()
854 if (crypto_skcipher_setkey(ci, prep->data, 8) < 0) in rxrpc_preparse_s()
857 prep->payload.data[0] = ci; in rxrpc_preparse_s()
865 static void rxrpc_free_preparse_s(struct key_preparsed_payload *prep) in rxrpc_free_preparse_s() argument
867 if (prep->payload.data[0]) in rxrpc_free_preparse_s()
868 crypto_free_skcipher(prep->payload.data[0]); in rxrpc_free_preparse_s()