mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 00:21:32 +00:00
crypto: omap-aes-gcm - add missing .setauthsize hooks
GCM only permits certain tag lengths, so populate the .setauthsize hooks which ensure that only permitted sizes are accepted by the implementation. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Tero Kristo <t-kristo@ti.com> Tested-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
46d57443ec
commit
12adf9d63e
@ -413,3 +413,14 @@ int omap_aes_4106gcm_setkey(struct crypto_aead *tfm, const u8 *key,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int omap_aes_gcm_setauthsize(struct crypto_aead *tfm, unsigned int authsize)
|
||||||
|
{
|
||||||
|
return crypto_gcm_check_authsize(authsize);
|
||||||
|
}
|
||||||
|
|
||||||
|
int omap_aes_4106gcm_setauthsize(struct crypto_aead *parent,
|
||||||
|
unsigned int authsize)
|
||||||
|
{
|
||||||
|
return crypto_rfc4106_check_authsize(authsize);
|
||||||
|
}
|
||||||
|
@ -787,6 +787,7 @@ static struct aead_alg algs_aead_gcm[] = {
|
|||||||
.ivsize = GCM_AES_IV_SIZE,
|
.ivsize = GCM_AES_IV_SIZE,
|
||||||
.maxauthsize = AES_BLOCK_SIZE,
|
.maxauthsize = AES_BLOCK_SIZE,
|
||||||
.setkey = omap_aes_gcm_setkey,
|
.setkey = omap_aes_gcm_setkey,
|
||||||
|
.setauthsize = omap_aes_gcm_setauthsize,
|
||||||
.encrypt = omap_aes_gcm_encrypt,
|
.encrypt = omap_aes_gcm_encrypt,
|
||||||
.decrypt = omap_aes_gcm_decrypt,
|
.decrypt = omap_aes_gcm_decrypt,
|
||||||
},
|
},
|
||||||
@ -807,6 +808,7 @@ static struct aead_alg algs_aead_gcm[] = {
|
|||||||
.maxauthsize = AES_BLOCK_SIZE,
|
.maxauthsize = AES_BLOCK_SIZE,
|
||||||
.ivsize = GCM_RFC4106_IV_SIZE,
|
.ivsize = GCM_RFC4106_IV_SIZE,
|
||||||
.setkey = omap_aes_4106gcm_setkey,
|
.setkey = omap_aes_4106gcm_setkey,
|
||||||
|
.setauthsize = omap_aes_4106gcm_setauthsize,
|
||||||
.encrypt = omap_aes_4106gcm_encrypt,
|
.encrypt = omap_aes_4106gcm_encrypt,
|
||||||
.decrypt = omap_aes_4106gcm_decrypt,
|
.decrypt = omap_aes_4106gcm_decrypt,
|
||||||
},
|
},
|
||||||
|
@ -202,8 +202,11 @@ int omap_aes_4106gcm_setkey(struct crypto_aead *tfm, const u8 *key,
|
|||||||
unsigned int keylen);
|
unsigned int keylen);
|
||||||
int omap_aes_gcm_encrypt(struct aead_request *req);
|
int omap_aes_gcm_encrypt(struct aead_request *req);
|
||||||
int omap_aes_gcm_decrypt(struct aead_request *req);
|
int omap_aes_gcm_decrypt(struct aead_request *req);
|
||||||
|
int omap_aes_gcm_setauthsize(struct crypto_aead *tfm, unsigned int authsize);
|
||||||
int omap_aes_4106gcm_encrypt(struct aead_request *req);
|
int omap_aes_4106gcm_encrypt(struct aead_request *req);
|
||||||
int omap_aes_4106gcm_decrypt(struct aead_request *req);
|
int omap_aes_4106gcm_decrypt(struct aead_request *req);
|
||||||
|
int omap_aes_4106gcm_setauthsize(struct crypto_aead *parent,
|
||||||
|
unsigned int authsize);
|
||||||
int omap_aes_write_ctrl(struct omap_aes_dev *dd);
|
int omap_aes_write_ctrl(struct omap_aes_dev *dd);
|
||||||
int omap_aes_crypt_dma_start(struct omap_aes_dev *dd);
|
int omap_aes_crypt_dma_start(struct omap_aes_dev *dd);
|
||||||
int omap_aes_crypt_dma_stop(struct omap_aes_dev *dd);
|
int omap_aes_crypt_dma_stop(struct omap_aes_dev *dd);
|
||||||
|
Loading…
Reference in New Issue
Block a user