algif_skcipher.c (0f6bb83cb12e4617e696ffa566f3fc6c092686e2) | algif_skcipher.c (bc97e57eb21f8db55bf0e1f182d384e75b2e3c99) |
---|---|
1/* 2 * algif_skcipher: User-space interface for skcipher algorithms 3 * 4 * This file provides the user-space API for symmetric key ciphers. 5 * 6 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 7 * 8 * This program is free software; you can redistribute it and/or modify it --- 440 unchanged lines hidden (view full) --- 449 if (!used) { 450 err = skcipher_wait_for_data(sk, flags); 451 if (err) 452 goto unlock; 453 } 454 455 used = min_t(unsigned long, used, seglen); 456 | 1/* 2 * algif_skcipher: User-space interface for skcipher algorithms 3 * 4 * This file provides the user-space API for symmetric key ciphers. 5 * 6 * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 7 * 8 * This program is free software; you can redistribute it and/or modify it --- 440 unchanged lines hidden (view full) --- 449 if (!used) { 450 err = skcipher_wait_for_data(sk, flags); 451 if (err) 452 goto unlock; 453 } 454 455 used = min_t(unsigned long, used, seglen); 456 |
457 used = af_alg_make_sg(&ctx->rsgl, from, used, 1); 458 err = used; 459 if (err < 0) 460 goto unlock; 461 |
|
457 if (ctx->more || used < ctx->used) 458 used -= used % bs; 459 460 err = -EINVAL; 461 if (!used) | 462 if (ctx->more || used < ctx->used) 463 used -= used % bs; 464 465 err = -EINVAL; 466 if (!used) |
462 goto unlock; | 467 goto free; |
463 | 468 |
464 used = af_alg_make_sg(&ctx->rsgl, from, used, 1); 465 err = used; 466 if (err < 0) 467 goto unlock; 468 | |
469 ablkcipher_request_set_crypt(&ctx->req, sg, 470 ctx->rsgl.sg, used, 471 ctx->iv); 472 473 err = af_alg_wait_for_completion( 474 ctx->enc ? 475 crypto_ablkcipher_encrypt(&ctx->req) : 476 crypto_ablkcipher_decrypt(&ctx->req), 477 &ctx->completion); 478 | 469 ablkcipher_request_set_crypt(&ctx->req, sg, 470 ctx->rsgl.sg, used, 471 ctx->iv); 472 473 err = af_alg_wait_for_completion( 474 ctx->enc ? 475 crypto_ablkcipher_encrypt(&ctx->req) : 476 crypto_ablkcipher_decrypt(&ctx->req), 477 &ctx->completion); 478 |
479free: |
|
479 af_alg_free_sg(&ctx->rsgl); 480 481 if (err) 482 goto unlock; 483 484 copied += used; 485 from += used; 486 seglen -= used; --- 145 unchanged lines hidden --- | 480 af_alg_free_sg(&ctx->rsgl); 481 482 if (err) 483 goto unlock; 484 485 copied += used; 486 from += used; 487 seglen -= used; --- 145 unchanged lines hidden --- |