Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu: "This fixes the following issues: - Fix AVX detection to prevent use of non-existent AESNI. - Some SPARC ciphers did not set their IV size which may lead to memory corruption" * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: ahash - ensure statesize is non-zero crypto: camellia_aesni_avx - Fix CPU feature checks crypto: sparc - initialize blkcipher.ivsize
This commit is contained in:
commit
6006d4521b
@ -433,6 +433,7 @@ static struct crypto_alg algs[] = { {
|
|||||||
.blkcipher = {
|
.blkcipher = {
|
||||||
.min_keysize = AES_MIN_KEY_SIZE,
|
.min_keysize = AES_MIN_KEY_SIZE,
|
||||||
.max_keysize = AES_MAX_KEY_SIZE,
|
.max_keysize = AES_MAX_KEY_SIZE,
|
||||||
|
.ivsize = AES_BLOCK_SIZE,
|
||||||
.setkey = aes_set_key,
|
.setkey = aes_set_key,
|
||||||
.encrypt = cbc_encrypt,
|
.encrypt = cbc_encrypt,
|
||||||
.decrypt = cbc_decrypt,
|
.decrypt = cbc_decrypt,
|
||||||
@ -452,6 +453,7 @@ static struct crypto_alg algs[] = { {
|
|||||||
.blkcipher = {
|
.blkcipher = {
|
||||||
.min_keysize = AES_MIN_KEY_SIZE,
|
.min_keysize = AES_MIN_KEY_SIZE,
|
||||||
.max_keysize = AES_MAX_KEY_SIZE,
|
.max_keysize = AES_MAX_KEY_SIZE,
|
||||||
|
.ivsize = AES_BLOCK_SIZE,
|
||||||
.setkey = aes_set_key,
|
.setkey = aes_set_key,
|
||||||
.encrypt = ctr_crypt,
|
.encrypt = ctr_crypt,
|
||||||
.decrypt = ctr_crypt,
|
.decrypt = ctr_crypt,
|
||||||
|
@ -274,6 +274,7 @@ static struct crypto_alg algs[] = { {
|
|||||||
.blkcipher = {
|
.blkcipher = {
|
||||||
.min_keysize = CAMELLIA_MIN_KEY_SIZE,
|
.min_keysize = CAMELLIA_MIN_KEY_SIZE,
|
||||||
.max_keysize = CAMELLIA_MAX_KEY_SIZE,
|
.max_keysize = CAMELLIA_MAX_KEY_SIZE,
|
||||||
|
.ivsize = CAMELLIA_BLOCK_SIZE,
|
||||||
.setkey = camellia_set_key,
|
.setkey = camellia_set_key,
|
||||||
.encrypt = cbc_encrypt,
|
.encrypt = cbc_encrypt,
|
||||||
.decrypt = cbc_decrypt,
|
.decrypt = cbc_decrypt,
|
||||||
|
@ -429,6 +429,7 @@ static struct crypto_alg algs[] = { {
|
|||||||
.blkcipher = {
|
.blkcipher = {
|
||||||
.min_keysize = DES_KEY_SIZE,
|
.min_keysize = DES_KEY_SIZE,
|
||||||
.max_keysize = DES_KEY_SIZE,
|
.max_keysize = DES_KEY_SIZE,
|
||||||
|
.ivsize = DES_BLOCK_SIZE,
|
||||||
.setkey = des_set_key,
|
.setkey = des_set_key,
|
||||||
.encrypt = cbc_encrypt,
|
.encrypt = cbc_encrypt,
|
||||||
.decrypt = cbc_decrypt,
|
.decrypt = cbc_decrypt,
|
||||||
@ -485,6 +486,7 @@ static struct crypto_alg algs[] = { {
|
|||||||
.blkcipher = {
|
.blkcipher = {
|
||||||
.min_keysize = DES3_EDE_KEY_SIZE,
|
.min_keysize = DES3_EDE_KEY_SIZE,
|
||||||
.max_keysize = DES3_EDE_KEY_SIZE,
|
.max_keysize = DES3_EDE_KEY_SIZE,
|
||||||
|
.ivsize = DES3_EDE_BLOCK_SIZE,
|
||||||
.setkey = des3_ede_set_key,
|
.setkey = des3_ede_set_key,
|
||||||
.encrypt = cbc3_encrypt,
|
.encrypt = cbc3_encrypt,
|
||||||
.decrypt = cbc3_decrypt,
|
.decrypt = cbc3_decrypt,
|
||||||
|
@ -554,6 +554,11 @@ static int __init camellia_aesni_init(void)
|
|||||||
{
|
{
|
||||||
const char *feature_name;
|
const char *feature_name;
|
||||||
|
|
||||||
|
if (!cpu_has_avx || !cpu_has_aes || !cpu_has_osxsave) {
|
||||||
|
pr_info("AVX or AES-NI instructions are not detected.\n");
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
if (!cpu_has_xfeatures(XSTATE_SSE | XSTATE_YMM, &feature_name)) {
|
if (!cpu_has_xfeatures(XSTATE_SSE | XSTATE_YMM, &feature_name)) {
|
||||||
pr_info("CPU feature '%s' is not supported.\n", feature_name);
|
pr_info("CPU feature '%s' is not supported.\n", feature_name);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
@ -544,7 +544,8 @@ static int ahash_prepare_alg(struct ahash_alg *alg)
|
|||||||
struct crypto_alg *base = &alg->halg.base;
|
struct crypto_alg *base = &alg->halg.base;
|
||||||
|
|
||||||
if (alg->halg.digestsize > PAGE_SIZE / 8 ||
|
if (alg->halg.digestsize > PAGE_SIZE / 8 ||
|
||||||
alg->halg.statesize > PAGE_SIZE / 8)
|
alg->halg.statesize > PAGE_SIZE / 8 ||
|
||||||
|
alg->halg.statesize == 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
base->cra_type = &crypto_ahash_type;
|
base->cra_type = &crypto_ahash_type;
|
||||||
|
Loading…
Reference in New Issue
Block a user