Lines Matching defs:call

148 static int rxkad_how_much_data(struct rxrpc_call *call, size_t remain,
153 switch (call->conn->security_level) {
230 * Allocate and prepare the crypto request on a call. For any particular call,
233 static struct skcipher_request *rxkad_get_call_crypto(struct rxrpc_call *call)
235 struct crypto_skcipher *tfm = &call->conn->rxkad.cipher->base;
241 * Clean up the crypto on a call.
243 static void rxkad_free_call_crypto(struct rxrpc_call *call)
250 static int rxkad_secure_packet_auth(const struct rxrpc_call *call,
278 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
291 static int rxkad_secure_packet_encrypt(const struct rxrpc_call *call,
320 token = call->conn->key->payload.data[0];
324 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
335 static int rxkad_secure_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb)
347 call->debug_id, key_serial(call->conn->key),
350 if (!call->conn->rxkad.cipher)
353 ret = key_validate(call->conn->key);
357 req = rxkad_get_call_crypto(call);
362 memcpy(&iv, call->conn->rxkad.csum_iv.x, sizeof(iv));
371 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
383 switch (call->conn->security_level) {
388 ret = rxkad_secure_packet_auth(call, txb, req);
391 ret = rxkad_secure_packet_encrypt(call, txb, req);
406 static int rxkad_verify_packet_1(struct rxrpc_call *call, struct sk_buff *skb,
421 return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON,
435 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
443 return rxrpc_abort_eproto(call, skb, RXKADDATALEN,
452 check ^= seq ^ call->call_id;
455 return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON,
458 return rxrpc_abort_eproto(call, skb, RXKADDATALEN,
469 static int rxkad_verify_packet_2(struct rxrpc_call *call, struct sk_buff *skb,
485 return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON,
510 token = call->conn->key->payload.data[0];
513 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
523 return rxrpc_abort_eproto(call, skb, RXKADDATALEN,
532 check ^= seq ^ call->call_id;
535 return rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON,
539 return rxrpc_abort_eproto(call, skb, RXKADDATALEN,
550 static int rxkad_verify_packet(struct rxrpc_call *call, struct sk_buff *skb)
565 call->debug_id, key_serial(call->conn->key), seq);
567 if (!call->conn->rxkad.cipher)
570 req = rxkad_get_call_crypto(call);
575 memcpy(&iv, call->conn->rxkad.csum_iv.x, sizeof(iv));
578 x = (call->cid & RXRPC_CHANNELMASK) << (32 - RXRPC_CIDSHIFT);
580 crypto.buf[0] = htonl(call->call_id);
584 skcipher_request_set_sync_tfm(req, call->conn->rxkad.cipher);
596 ret = rxrpc_abort_eproto(call, skb, RXKADSEALEDINCON,
601 switch (call->conn->security_level) {
606 ret = rxkad_verify_packet_1(call, skb, seq, req);
609 ret = rxkad_verify_packet_2(call, skb, seq, req);
1144 if (conn->channels[i].call) {