|
@@ -2192,8 +2192,8 @@ static int chcr_gcm_setkey(struct crypto_aead *aead, const u8 *key,
|
|
|
unsigned int ck_size;
|
|
|
int ret = 0, key_ctx_size = 0;
|
|
|
|
|
|
- if (get_aead_subtype(aead) ==
|
|
|
- CRYPTO_ALG_SUB_TYPE_AEAD_RFC4106) {
|
|
|
+ if (get_aead_subtype(aead) == CRYPTO_ALG_SUB_TYPE_AEAD_RFC4106 &&
|
|
|
+ keylen > 3) {
|
|
|
keylen -= 4; /* nonce/salt is present in the last 4 bytes */
|
|
|
memcpy(aeadctx->salt, key + keylen, 4);
|
|
|
}
|