Lines Matching defs:req
42 static void krb5enc_request_complete(struct aead_request *req, int err)
45 aead_request_complete(req, err);
128 struct aead_request *req = data;
130 krb5enc_request_complete(req, err);
137 static int krb5enc_dispatch_encrypt(struct aead_request *req,
140 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
144 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
150 src = scatterwalk_ffwd(areq_ctx->src, req->src, req->assoclen);
151 if (req->src == req->dst)
154 dst = scatterwalk_ffwd(areq_ctx->dst, req->dst, req->assoclen);
157 skcipher_request_set_callback(skreq, aead_request_flags(req),
158 krb5enc_encrypt_done, req);
159 skcipher_request_set_crypt(skreq, src, dst, req->cryptlen, req->iv);
168 static void krb5enc_insert_checksum(struct aead_request *req, u8 *hash)
170 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
172 scatterwalk_map_and_copy(hash, req->dst,
173 req->assoclen + req->cryptlen,
183 struct aead_request *req = data;
184 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
187 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
191 return krb5enc_request_complete(req, err);
193 krb5enc_insert_checksum(req, ahreq->result);
195 err = krb5enc_dispatch_encrypt(req, 0);
197 aead_request_complete(req, err);
205 static int krb5enc_dispatch_encrypt_hash(struct aead_request *req)
207 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
212 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
217 ahash_request_set_callback(ahreq, aead_request_flags(req),
218 krb5enc_encrypt_ahash_done, req);
220 ahash_request_set_crypt(ahreq, req->src, hash, req->assoclen + req->cryptlen);
226 krb5enc_insert_checksum(req, hash);
234 static int krb5enc_encrypt(struct aead_request *req)
238 err = krb5enc_dispatch_encrypt_hash(req);
242 return krb5enc_dispatch_encrypt(req, aead_request_flags(req));
245 static int krb5enc_verify_hash(struct aead_request *req)
247 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
250 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
256 scatterwalk_map_and_copy(msg_hash, req->src, ahreq->nbytes, authsize, 0);
265 struct aead_request *req = data;
268 return krb5enc_request_complete(req, err);
270 err = krb5enc_verify_hash(req);
271 krb5enc_request_complete(req, err);
277 static int krb5enc_dispatch_decrypt_hash(struct aead_request *req)
279 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
283 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
291 ahash_request_set_crypt(ahreq, req->dst, hash,
292 req->assoclen + req->cryptlen - authsize);
293 ahash_request_set_callback(ahreq, aead_request_flags(req),
294 krb5enc_decrypt_hash_done, req);
300 return krb5enc_verify_hash(req);
306 static int krb5enc_dispatch_decrypt(struct aead_request *req)
308 struct crypto_aead *krb5enc = crypto_aead_reqtfm(req);
312 struct krb5enc_request_ctx *areq_ctx = aead_request_ctx(req);
318 src = scatterwalk_ffwd(areq_ctx->src, req->src, req->assoclen);
321 if (req->src != req->dst)
322 dst = scatterwalk_ffwd(areq_ctx->dst, req->dst, req->assoclen);
325 skcipher_request_set_callback(skreq, aead_request_flags(req),
326 req->base.complete, req->base.data);
328 req->cryptlen - authsize, req->iv);
333 static int krb5enc_decrypt(struct aead_request *req)
337 err = krb5enc_dispatch_decrypt(req);
341 return krb5enc_dispatch_decrypt_hash(req);