@@ -556,7 +556,10 @@ static int aead_set_sh_desc(struct crypto_aead *aead)
556
556
557
557
/* Read and write assoclen bytes */
558
558
append_math_add (desc , VARSEQINLEN , ZERO , REG3 , CAAM_CMD_SZ );
559
- append_math_add (desc , VARSEQOUTLEN , ZERO , REG3 , CAAM_CMD_SZ );
559
+ if (alg -> caam .geniv )
560
+ append_math_add_imm_u32 (desc , VARSEQOUTLEN , REG3 , IMM , ivsize );
561
+ else
562
+ append_math_add (desc , VARSEQOUTLEN , ZERO , REG3 , CAAM_CMD_SZ );
560
563
561
564
/* Skip assoc data */
562
565
append_seq_fifo_store (desc , 0 , FIFOST_TYPE_SKIP | FIFOLDST_VLF );
@@ -565,6 +568,14 @@ static int aead_set_sh_desc(struct crypto_aead *aead)
565
568
append_seq_fifo_load (desc , 0 , FIFOLD_CLASS_CLASS2 | FIFOLD_TYPE_MSG |
566
569
KEY_VLF );
567
570
571
+ if (alg -> caam .geniv ) {
572
+ append_seq_load (desc , ivsize , LDST_CLASS_1_CCB |
573
+ LDST_SRCDST_BYTE_CONTEXT |
574
+ (ctx1_iv_off << LDST_OFFSET_SHIFT ));
575
+ append_move (desc , MOVE_SRC_CLASS1CTX | MOVE_DEST_CLASS2INFIFO |
576
+ (ctx1_iv_off << MOVE_OFFSET_SHIFT ) | ivsize );
577
+ }
578
+
568
579
/* Load Counter into CONTEXT1 reg */
569
580
if (is_rfc3686 )
570
581
append_load_imm_u32 (desc , be32_to_cpu (1 ), LDST_IMM |
@@ -2150,7 +2161,7 @@ static void init_authenc_job(struct aead_request *req,
2150
2161
2151
2162
init_aead_job (req , edesc , all_contig , encrypt );
2152
2163
2153
- if (ivsize && (is_rfc3686 || !( alg -> caam .geniv && encrypt ) ))
2164
+ if (ivsize && (( is_rfc3686 && encrypt ) || !alg -> caam .geniv ))
2154
2165
append_load_as_imm (desc , req -> iv , ivsize ,
2155
2166
LDST_CLASS_1_CCB |
2156
2167
LDST_SRCDST_BYTE_CONTEXT |
@@ -2537,20 +2548,6 @@ static int aead_decrypt(struct aead_request *req)
2537
2548
return ret ;
2538
2549
}
2539
2550
2540
- static int aead_givdecrypt (struct aead_request * req )
2541
- {
2542
- struct crypto_aead * aead = crypto_aead_reqtfm (req );
2543
- unsigned int ivsize = crypto_aead_ivsize (aead );
2544
-
2545
- if (req -> cryptlen < ivsize )
2546
- return - EINVAL ;
2547
-
2548
- req -> cryptlen -= ivsize ;
2549
- req -> assoclen += ivsize ;
2550
-
2551
- return aead_decrypt (req );
2552
- }
2553
-
2554
2551
/*
2555
2552
* allocate and map the ablkcipher extended descriptor for ablkcipher
2556
2553
*/
@@ -3210,7 +3207,7 @@ static struct caam_aead_alg driver_aeads[] = {
3210
3207
.setkey = aead_setkey ,
3211
3208
.setauthsize = aead_setauthsize ,
3212
3209
.encrypt = aead_encrypt ,
3213
- .decrypt = aead_givdecrypt ,
3210
+ .decrypt = aead_decrypt ,
3214
3211
.ivsize = AES_BLOCK_SIZE ,
3215
3212
.maxauthsize = MD5_DIGEST_SIZE ,
3216
3213
},
@@ -3256,7 +3253,7 @@ static struct caam_aead_alg driver_aeads[] = {
3256
3253
.setkey = aead_setkey ,
3257
3254
.setauthsize = aead_setauthsize ,
3258
3255
.encrypt = aead_encrypt ,
3259
- .decrypt = aead_givdecrypt ,
3256
+ .decrypt = aead_decrypt ,
3260
3257
.ivsize = AES_BLOCK_SIZE ,
3261
3258
.maxauthsize = SHA1_DIGEST_SIZE ,
3262
3259
},
@@ -3302,7 +3299,7 @@ static struct caam_aead_alg driver_aeads[] = {
3302
3299
.setkey = aead_setkey ,
3303
3300
.setauthsize = aead_setauthsize ,
3304
3301
.encrypt = aead_encrypt ,
3305
- .decrypt = aead_givdecrypt ,
3302
+ .decrypt = aead_decrypt ,
3306
3303
.ivsize = AES_BLOCK_SIZE ,
3307
3304
.maxauthsize = SHA224_DIGEST_SIZE ,
3308
3305
},
@@ -3348,7 +3345,7 @@ static struct caam_aead_alg driver_aeads[] = {
3348
3345
.setkey = aead_setkey ,
3349
3346
.setauthsize = aead_setauthsize ,
3350
3347
.encrypt = aead_encrypt ,
3351
- .decrypt = aead_givdecrypt ,
3348
+ .decrypt = aead_decrypt ,
3352
3349
.ivsize = AES_BLOCK_SIZE ,
3353
3350
.maxauthsize = SHA256_DIGEST_SIZE ,
3354
3351
},
@@ -3394,7 +3391,7 @@ static struct caam_aead_alg driver_aeads[] = {
3394
3391
.setkey = aead_setkey ,
3395
3392
.setauthsize = aead_setauthsize ,
3396
3393
.encrypt = aead_encrypt ,
3397
- .decrypt = aead_givdecrypt ,
3394
+ .decrypt = aead_decrypt ,
3398
3395
.ivsize = AES_BLOCK_SIZE ,
3399
3396
.maxauthsize = SHA384_DIGEST_SIZE ,
3400
3397
},
@@ -3440,7 +3437,7 @@ static struct caam_aead_alg driver_aeads[] = {
3440
3437
.setkey = aead_setkey ,
3441
3438
.setauthsize = aead_setauthsize ,
3442
3439
.encrypt = aead_encrypt ,
3443
- .decrypt = aead_givdecrypt ,
3440
+ .decrypt = aead_decrypt ,
3444
3441
.ivsize = AES_BLOCK_SIZE ,
3445
3442
.maxauthsize = SHA512_DIGEST_SIZE ,
3446
3443
},
@@ -3486,7 +3483,7 @@ static struct caam_aead_alg driver_aeads[] = {
3486
3483
.setkey = aead_setkey ,
3487
3484
.setauthsize = aead_setauthsize ,
3488
3485
.encrypt = aead_encrypt ,
3489
- .decrypt = aead_givdecrypt ,
3486
+ .decrypt = aead_decrypt ,
3490
3487
.ivsize = DES3_EDE_BLOCK_SIZE ,
3491
3488
.maxauthsize = MD5_DIGEST_SIZE ,
3492
3489
},
@@ -3534,7 +3531,7 @@ static struct caam_aead_alg driver_aeads[] = {
3534
3531
.setkey = aead_setkey ,
3535
3532
.setauthsize = aead_setauthsize ,
3536
3533
.encrypt = aead_encrypt ,
3537
- .decrypt = aead_givdecrypt ,
3534
+ .decrypt = aead_decrypt ,
3538
3535
.ivsize = DES3_EDE_BLOCK_SIZE ,
3539
3536
.maxauthsize = SHA1_DIGEST_SIZE ,
3540
3537
},
@@ -3582,7 +3579,7 @@ static struct caam_aead_alg driver_aeads[] = {
3582
3579
.setkey = aead_setkey ,
3583
3580
.setauthsize = aead_setauthsize ,
3584
3581
.encrypt = aead_encrypt ,
3585
- .decrypt = aead_givdecrypt ,
3582
+ .decrypt = aead_decrypt ,
3586
3583
.ivsize = DES3_EDE_BLOCK_SIZE ,
3587
3584
.maxauthsize = SHA224_DIGEST_SIZE ,
3588
3585
},
@@ -3630,7 +3627,7 @@ static struct caam_aead_alg driver_aeads[] = {
3630
3627
.setkey = aead_setkey ,
3631
3628
.setauthsize = aead_setauthsize ,
3632
3629
.encrypt = aead_encrypt ,
3633
- .decrypt = aead_givdecrypt ,
3630
+ .decrypt = aead_decrypt ,
3634
3631
.ivsize = DES3_EDE_BLOCK_SIZE ,
3635
3632
.maxauthsize = SHA256_DIGEST_SIZE ,
3636
3633
},
@@ -3678,7 +3675,7 @@ static struct caam_aead_alg driver_aeads[] = {
3678
3675
.setkey = aead_setkey ,
3679
3676
.setauthsize = aead_setauthsize ,
3680
3677
.encrypt = aead_encrypt ,
3681
- .decrypt = aead_givdecrypt ,
3678
+ .decrypt = aead_decrypt ,
3682
3679
.ivsize = DES3_EDE_BLOCK_SIZE ,
3683
3680
.maxauthsize = SHA384_DIGEST_SIZE ,
3684
3681
},
@@ -3726,7 +3723,7 @@ static struct caam_aead_alg driver_aeads[] = {
3726
3723
.setkey = aead_setkey ,
3727
3724
.setauthsize = aead_setauthsize ,
3728
3725
.encrypt = aead_encrypt ,
3729
- .decrypt = aead_givdecrypt ,
3726
+ .decrypt = aead_decrypt ,
3730
3727
.ivsize = DES3_EDE_BLOCK_SIZE ,
3731
3728
.maxauthsize = SHA512_DIGEST_SIZE ,
3732
3729
},
@@ -3772,7 +3769,7 @@ static struct caam_aead_alg driver_aeads[] = {
3772
3769
.setkey = aead_setkey ,
3773
3770
.setauthsize = aead_setauthsize ,
3774
3771
.encrypt = aead_encrypt ,
3775
- .decrypt = aead_givdecrypt ,
3772
+ .decrypt = aead_decrypt ,
3776
3773
.ivsize = DES_BLOCK_SIZE ,
3777
3774
.maxauthsize = MD5_DIGEST_SIZE ,
3778
3775
},
@@ -3818,7 +3815,7 @@ static struct caam_aead_alg driver_aeads[] = {
3818
3815
.setkey = aead_setkey ,
3819
3816
.setauthsize = aead_setauthsize ,
3820
3817
.encrypt = aead_encrypt ,
3821
- .decrypt = aead_givdecrypt ,
3818
+ .decrypt = aead_decrypt ,
3822
3819
.ivsize = DES_BLOCK_SIZE ,
3823
3820
.maxauthsize = SHA1_DIGEST_SIZE ,
3824
3821
},
@@ -3864,7 +3861,7 @@ static struct caam_aead_alg driver_aeads[] = {
3864
3861
.setkey = aead_setkey ,
3865
3862
.setauthsize = aead_setauthsize ,
3866
3863
.encrypt = aead_encrypt ,
3867
- .decrypt = aead_givdecrypt ,
3864
+ .decrypt = aead_decrypt ,
3868
3865
.ivsize = DES_BLOCK_SIZE ,
3869
3866
.maxauthsize = SHA224_DIGEST_SIZE ,
3870
3867
},
@@ -3910,7 +3907,7 @@ static struct caam_aead_alg driver_aeads[] = {
3910
3907
.setkey = aead_setkey ,
3911
3908
.setauthsize = aead_setauthsize ,
3912
3909
.encrypt = aead_encrypt ,
3913
- .decrypt = aead_givdecrypt ,
3910
+ .decrypt = aead_decrypt ,
3914
3911
.ivsize = DES_BLOCK_SIZE ,
3915
3912
.maxauthsize = SHA256_DIGEST_SIZE ,
3916
3913
},
@@ -3956,7 +3953,7 @@ static struct caam_aead_alg driver_aeads[] = {
3956
3953
.setkey = aead_setkey ,
3957
3954
.setauthsize = aead_setauthsize ,
3958
3955
.encrypt = aead_encrypt ,
3959
- .decrypt = aead_givdecrypt ,
3956
+ .decrypt = aead_decrypt ,
3960
3957
.ivsize = DES_BLOCK_SIZE ,
3961
3958
.maxauthsize = SHA384_DIGEST_SIZE ,
3962
3959
},
@@ -4002,7 +3999,7 @@ static struct caam_aead_alg driver_aeads[] = {
4002
3999
.setkey = aead_setkey ,
4003
4000
.setauthsize = aead_setauthsize ,
4004
4001
.encrypt = aead_encrypt ,
4005
- .decrypt = aead_givdecrypt ,
4002
+ .decrypt = aead_decrypt ,
4006
4003
.ivsize = DES_BLOCK_SIZE ,
4007
4004
.maxauthsize = SHA512_DIGEST_SIZE ,
4008
4005
},
@@ -4051,7 +4048,7 @@ static struct caam_aead_alg driver_aeads[] = {
4051
4048
.setkey = aead_setkey ,
4052
4049
.setauthsize = aead_setauthsize ,
4053
4050
.encrypt = aead_encrypt ,
4054
- .decrypt = aead_givdecrypt ,
4051
+ .decrypt = aead_decrypt ,
4055
4052
.ivsize = CTR_RFC3686_IV_SIZE ,
4056
4053
.maxauthsize = MD5_DIGEST_SIZE ,
4057
4054
},
@@ -4102,7 +4099,7 @@ static struct caam_aead_alg driver_aeads[] = {
4102
4099
.setkey = aead_setkey ,
4103
4100
.setauthsize = aead_setauthsize ,
4104
4101
.encrypt = aead_encrypt ,
4105
- .decrypt = aead_givdecrypt ,
4102
+ .decrypt = aead_decrypt ,
4106
4103
.ivsize = CTR_RFC3686_IV_SIZE ,
4107
4104
.maxauthsize = SHA1_DIGEST_SIZE ,
4108
4105
},
@@ -4153,7 +4150,7 @@ static struct caam_aead_alg driver_aeads[] = {
4153
4150
.setkey = aead_setkey ,
4154
4151
.setauthsize = aead_setauthsize ,
4155
4152
.encrypt = aead_encrypt ,
4156
- .decrypt = aead_givdecrypt ,
4153
+ .decrypt = aead_decrypt ,
4157
4154
.ivsize = CTR_RFC3686_IV_SIZE ,
4158
4155
.maxauthsize = SHA224_DIGEST_SIZE ,
4159
4156
},
@@ -4204,7 +4201,7 @@ static struct caam_aead_alg driver_aeads[] = {
4204
4201
.setkey = aead_setkey ,
4205
4202
.setauthsize = aead_setauthsize ,
4206
4203
.encrypt = aead_encrypt ,
4207
- .decrypt = aead_givdecrypt ,
4204
+ .decrypt = aead_decrypt ,
4208
4205
.ivsize = CTR_RFC3686_IV_SIZE ,
4209
4206
.maxauthsize = SHA256_DIGEST_SIZE ,
4210
4207
},
@@ -4255,7 +4252,7 @@ static struct caam_aead_alg driver_aeads[] = {
4255
4252
.setkey = aead_setkey ,
4256
4253
.setauthsize = aead_setauthsize ,
4257
4254
.encrypt = aead_encrypt ,
4258
- .decrypt = aead_givdecrypt ,
4255
+ .decrypt = aead_decrypt ,
4259
4256
.ivsize = CTR_RFC3686_IV_SIZE ,
4260
4257
.maxauthsize = SHA384_DIGEST_SIZE ,
4261
4258
},
@@ -4306,7 +4303,7 @@ static struct caam_aead_alg driver_aeads[] = {
4306
4303
.setkey = aead_setkey ,
4307
4304
.setauthsize = aead_setauthsize ,
4308
4305
.encrypt = aead_encrypt ,
4309
- .decrypt = aead_givdecrypt ,
4306
+ .decrypt = aead_decrypt ,
4310
4307
.ivsize = CTR_RFC3686_IV_SIZE ,
4311
4308
.maxauthsize = SHA512_DIGEST_SIZE ,
4312
4309
},
0 commit comments