Skip to content

Commit f874d87

Browse files
committed
AES-XTS-streaming: refactor API to eliminate caller-supplied tweak_block. instead, caller-supplied iv is used as a readwrite buffer.
1 parent 9e06524 commit f874d87

3 files changed

Lines changed: 93 additions & 103 deletions

File tree

linuxkm/lkcapi_glue.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,6 @@ static int km_AesXtsEncrypt(struct skcipher_request *req)
909909
} else {
910910
int tail = req->cryptlen % AES_BLOCK_SIZE;
911911
struct skcipher_request subreq;
912-
byte tweak_block[AES_BLOCK_SIZE];
913912

914913
if (tail > 0) {
915914
int blocks = DIV_ROUND_UP(req->cryptlen, AES_BLOCK_SIZE) - 2;
@@ -931,8 +930,7 @@ static int km_AesXtsEncrypt(struct skcipher_request *req)
931930
tail = 0;
932931
}
933932

934-
err = wc_AesXtsEncryptStart(ctx->aesXts, walk.iv, walk.ivsize,
935-
tweak_block);
933+
err = wc_AesXtsEncryptStart(ctx->aesXts, walk.iv, walk.ivsize);
936934

937935
if (unlikely(err)) {
938936
pr_err("%s: wc_AesXtsEncryptStart failed: %d\n",
@@ -946,7 +944,7 @@ static int km_AesXtsEncrypt(struct skcipher_request *req)
946944

947945
err = wc_AesXtsEncryptUpdate(ctx->aesXts, walk.dst.virt.addr,
948946
walk.src.virt.addr, nbytes,
949-
tweak_block);
947+
walk.iv);
950948

951949
if (unlikely(err)) {
952950
pr_err("%s: wc_AesXtsEncryptUpdate failed: %d\n",
@@ -980,7 +978,7 @@ static int km_AesXtsEncrypt(struct skcipher_request *req)
980978

981979
err = wc_AesXtsEncryptUpdate(ctx->aesXts, walk.dst.virt.addr,
982980
walk.src.virt.addr, walk.nbytes,
983-
tweak_block);
981+
walk.iv);
984982

985983
if (unlikely(err)) {
986984
pr_err("%s: wc_AesXtsEncryptUpdate failed: %d\n",
@@ -1034,7 +1032,6 @@ static int km_AesXtsDecrypt(struct skcipher_request *req)
10341032
} else {
10351033
int tail = req->cryptlen % AES_BLOCK_SIZE;
10361034
struct skcipher_request subreq;
1037-
byte tweak_block[AES_BLOCK_SIZE];
10381035

10391036
if (unlikely(tail > 0)) {
10401037
int blocks = DIV_ROUND_UP(req->cryptlen, AES_BLOCK_SIZE) - 2;
@@ -1056,8 +1053,7 @@ static int km_AesXtsDecrypt(struct skcipher_request *req)
10561053
tail = 0;
10571054
}
10581055

1059-
err = wc_AesXtsDecryptStart(ctx->aesXts, walk.iv, walk.ivsize,
1060-
tweak_block);
1056+
err = wc_AesXtsDecryptStart(ctx->aesXts, walk.iv, walk.ivsize);
10611057

10621058
if (unlikely(err)) {
10631059
pr_err("%s: wc_AesXtsDecryptStart failed: %d\n",
@@ -1071,7 +1067,7 @@ static int km_AesXtsDecrypt(struct skcipher_request *req)
10711067

10721068
err = wc_AesXtsDecryptUpdate(ctx->aesXts, walk.dst.virt.addr,
10731069
walk.src.virt.addr, nbytes,
1074-
tweak_block);
1070+
walk.iv);
10751071

10761072
if (unlikely(err)) {
10771073
pr_err("%s: wc_AesXtsDecryptUpdate failed: %d\n",
@@ -1105,7 +1101,7 @@ static int km_AesXtsDecrypt(struct skcipher_request *req)
11051101

11061102
err = wc_AesXtsDecryptUpdate(ctx->aesXts, walk.dst.virt.addr,
11071103
walk.src.virt.addr, walk.nbytes,
1108-
tweak_block);
1104+
walk.iv);
11091105

11101106
if (unlikely(err)) {
11111107
pr_err("%s: wc_AesXtsDecryptUpdate failed: %d\n",

0 commit comments

Comments
 (0)