]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
UBUNTU: SAUCE: s390/crypto: Adjust s390 aes and paes cipher
authorHarald Freudenberger <freude@linux.vnet.ibm.com>
Mon, 9 Apr 2018 15:41:06 +0000 (11:41 -0400)
committerSeth Forshee <seth.forshee@canonical.com>
Tue, 10 Apr 2018 14:36:19 +0000 (09:36 -0500)
BugLink: http://bugs.launchpad.net/bugs/1762353
Tests with paes-xts and debugging investigations showed
that the ciphers are not always correctly resolved.
The rules for cipher priorities seem to be:
 - Ecb-aes should have a prio greater than the
   generic ecb-aes.
 - The mode specialized ciphers (like cbc-aes-s390)
   should have a prio greater than the sum of the
   more generic combinations (like cbs(aes)).

This patch adjusts the cipher priorities for the
s390 aes and paes in kernel crypto implementations.

Signed-off-by: Harald Freudenberger <freude@linux.vnet.ibm.com>
Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
arch/s390/crypto/aes_s390.c
arch/s390/crypto/paes_s390.c

index fa9b7dd1a513ffa45d74734444212f4b1e133321..ad47abd086308d3040c12807c54174f84e2e35d6 100644 (file)
@@ -329,7 +329,7 @@ static void fallback_exit_blk(struct crypto_tfm *tfm)
 static struct crypto_alg ecb_aes_alg = {
        .cra_name               =       "ecb(aes)",
        .cra_driver_name        =       "ecb-aes-s390",
-       .cra_priority           =       400,    /* combo: aes + ecb */
+       .cra_priority           =       401,    /* combo: aes + ecb + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER |
                                        CRYPTO_ALG_NEED_FALLBACK,
        .cra_blocksize          =       AES_BLOCK_SIZE,
@@ -426,7 +426,7 @@ static int cbc_aes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg cbc_aes_alg = {
        .cra_name               =       "cbc(aes)",
        .cra_driver_name        =       "cbc-aes-s390",
-       .cra_priority           =       400,    /* combo: aes + cbc */
+       .cra_priority           =       402,    /* ecb-aes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER |
                                        CRYPTO_ALG_NEED_FALLBACK,
        .cra_blocksize          =       AES_BLOCK_SIZE,
@@ -633,7 +633,7 @@ static void xts_fallback_exit(struct crypto_tfm *tfm)
 static struct crypto_alg xts_aes_alg = {
        .cra_name               =       "xts(aes)",
        .cra_driver_name        =       "xts-aes-s390",
-       .cra_priority           =       400,    /* combo: aes + xts */
+       .cra_priority           =       402,    /* ecb-aes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER |
                                        CRYPTO_ALG_NEED_FALLBACK,
        .cra_blocksize          =       AES_BLOCK_SIZE,
@@ -763,7 +763,7 @@ static int ctr_aes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg ctr_aes_alg = {
        .cra_name               =       "ctr(aes)",
        .cra_driver_name        =       "ctr-aes-s390",
-       .cra_priority           =       400,    /* combo: aes + ctr */
+       .cra_priority           =       402,    /* ecb-aes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER |
                                        CRYPTO_ALG_NEED_FALLBACK,
        .cra_blocksize          =       1,
index 003932db8d12d04bfc479d17d9a6677068059293..80b27294c1de0844f07d01c5aecbb5410a38602e 100644 (file)
@@ -138,7 +138,7 @@ static int ecb_paes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg ecb_paes_alg = {
        .cra_name               =       "ecb(paes)",
        .cra_driver_name        =       "ecb-paes-s390",
-       .cra_priority           =       400,    /* combo: aes + ecb */
+       .cra_priority           =       401,    /* combo: aes + ecb + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER,
        .cra_blocksize          =       AES_BLOCK_SIZE,
        .cra_ctxsize            =       sizeof(struct s390_paes_ctx),
@@ -241,7 +241,7 @@ static int cbc_paes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg cbc_paes_alg = {
        .cra_name               =       "cbc(paes)",
        .cra_driver_name        =       "cbc-paes-s390",
-       .cra_priority           =       400,    /* combo: aes + cbc */
+       .cra_priority           =       402,    /* ecb-paes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER,
        .cra_blocksize          =       AES_BLOCK_SIZE,
        .cra_ctxsize            =       sizeof(struct s390_paes_ctx),
@@ -377,7 +377,7 @@ static int xts_paes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg xts_paes_alg = {
        .cra_name               =       "xts(paes)",
        .cra_driver_name        =       "xts-paes-s390",
-       .cra_priority           =       400,    /* combo: aes + xts */
+       .cra_priority           =       402,    /* ecb-paes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER,
        .cra_blocksize          =       AES_BLOCK_SIZE,
        .cra_ctxsize            =       sizeof(struct s390_pxts_ctx),
@@ -523,7 +523,7 @@ static int ctr_paes_decrypt(struct blkcipher_desc *desc,
 static struct crypto_alg ctr_paes_alg = {
        .cra_name               =       "ctr(paes)",
        .cra_driver_name        =       "ctr-paes-s390",
-       .cra_priority           =       400,    /* combo: aes + ctr */
+       .cra_priority           =       402,    /* ecb-paes-s390 + 1 */
        .cra_flags              =       CRYPTO_ALG_TYPE_BLKCIPHER,
        .cra_blocksize          =       1,
        .cra_ctxsize            =       sizeof(struct s390_paes_ctx),