.cra_name       = "__ghash",
                .cra_driver_name = "__driver-ghash-ce",
                .cra_priority   = 0,
-               .cra_flags      = CRYPTO_ALG_TYPE_SHASH | CRYPTO_ALG_INTERNAL,
+               .cra_flags      = CRYPTO_ALG_INTERNAL,
                .cra_blocksize  = GHASH_BLOCK_SIZE,
                .cra_ctxsize    = sizeof(struct ghash_key),
                .cra_module     = THIS_MODULE,
 
                .cra_name               = "sha1",
                .cra_driver_name        = "sha1-ce",
                .cra_priority           = 200,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA1_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-asm",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name               = "sha1",
                .cra_driver_name        = "sha1-neon",
                .cra_priority           = 250,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA1_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
                .cra_name               = "sha224",
                .cra_driver_name        = "sha224-ce",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
                .cra_name               = "sha256",
                .cra_driver_name        = "sha256-ce",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-asm",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-asm",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-neon",
                .cra_priority   =       250,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-neon",
                .cra_priority   =       250,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name               = "sha384",
                .cra_driver_name        = "sha384-arm",
                .cra_priority           = 250,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA512_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
                .cra_name               = "sha512",
                .cra_driver_name        = "sha512-arm",
                .cra_priority           = 250,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA512_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
                .cra_name               = "sha384",
                .cra_driver_name        = "sha384-neon",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA384_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
 
                .cra_name               = "sha512",
                .cra_driver_name        = "sha512-neon",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA512_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
        .base.cra_name          = "cmac(aes)",
        .base.cra_driver_name   = "cmac-aes-" MODE,
        .base.cra_priority      = PRIO,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct mac_tfm_ctx) +
                                  2 * AES_BLOCK_SIZE,
        .base.cra_name          = "xcbc(aes)",
        .base.cra_driver_name   = "xcbc-aes-" MODE,
        .base.cra_priority      = PRIO,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = AES_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct mac_tfm_ctx) +
                                  2 * AES_BLOCK_SIZE,
        .base.cra_name          = "cbcmac(aes)",
        .base.cra_driver_name   = "cbcmac-aes-" MODE,
        .base.cra_priority      = PRIO,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = 1,
        .base.cra_ctxsize       = sizeof(struct mac_tfm_ctx),
        .base.cra_module        = THIS_MODULE,
 
        .base.cra_name          = "ghash",
        .base.cra_driver_name   = "ghash-ce",
        .base.cra_priority      = 200,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = GHASH_BLOCK_SIZE,
        .base.cra_ctxsize       = sizeof(struct ghash_key),
        .base.cra_module        = THIS_MODULE,
 
                .cra_name               = "sha1",
                .cra_driver_name        = "sha1-ce",
                .cra_priority           = 200,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA1_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
                .cra_name               = "sha224",
                .cra_driver_name        = "sha224-ce",
                .cra_priority           = 200,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
                .cra_name               = "sha256",
                .cra_driver_name        = "sha256-ce",
                .cra_priority           = 200,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = SHA256_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        }
 
        .base.cra_name          = "sha256",
        .base.cra_driver_name   = "sha256-arm64",
        .base.cra_priority      = 100,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA256_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .base.cra_name          = "sha224",
        .base.cra_driver_name   = "sha224-arm64",
        .base.cra_priority      = 100,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA224_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 } };
        .base.cra_name          = "sha256",
        .base.cra_driver_name   = "sha256-arm64-neon",
        .base.cra_priority      = 150,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA256_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .base.cra_name          = "sha224",
        .base.cra_driver_name   = "sha224-arm64-neon",
        .base.cra_priority      = 150,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA224_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 } };
 
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-224",
        .base.cra_driver_name   = "sha3-224-ce",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_224_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
        .base.cra_priority      = 200,
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-256",
        .base.cra_driver_name   = "sha3-256-ce",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_256_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
        .base.cra_priority      = 200,
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-384",
        .base.cra_driver_name   = "sha3-384-ce",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_384_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
        .base.cra_priority      = 200,
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-512",
        .base.cra_driver_name   = "sha3-512-ce",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_512_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
        .base.cra_priority      = 200,
 
        .base.cra_name          = "sha384",
        .base.cra_driver_name   = "sha384-ce",
        .base.cra_priority      = 200,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA512_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .base.cra_name          = "sha512",
        .base.cra_driver_name   = "sha512-ce",
        .base.cra_priority      = 200,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA512_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 } };
 
        .base.cra_name          = "sha512",
        .base.cra_driver_name   = "sha512-arm64",
        .base.cra_priority      = 150,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA512_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .base.cra_name          = "sha384",
        .base.cra_driver_name   = "sha384-arm64",
        .base.cra_priority      = 150,
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA384_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 } };
 
        .descsize               = sizeof(struct sm3_state),
        .base.cra_name          = "sm3",
        .base.cra_driver_name   = "sm3-ce",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SM3_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
        .base.cra_priority      = 200,
 
                .cra_name       =       "md5",
                .cra_driver_name=       "octeon-md5",
                .cra_priority   =       OCTEON_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       MD5_HMAC_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "octeon-sha1",
                .cra_priority   =       OCTEON_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name=       "octeon-sha256",
                .cra_priority   =       OCTEON_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
        .base           =       {
                .cra_name       =       "sha224",
                .cra_driver_name=       "octeon-sha224",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha512",
                .cra_driver_name=       "octeon-sha512",
                .cra_priority   =       OCTEON_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name=       "octeon-sha384",
                .cra_priority   =       OCTEON_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "md5",
                .cra_driver_name=       "md5-ppc",
                .cra_priority   =       200,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       MD5_HMAC_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-ppc-spe",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .base           =       {
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-powerpc",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name=       "sha256-ppc-spe",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name=       "sha224-ppc-spe",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name               = "ghash",
                .cra_driver_name        = "ghash-s390",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = GHASH_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct ghash_ctx),
                .cra_module             = THIS_MODULE,
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-s390",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name=       "sha256-s390",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name=       "sha224-s390",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha512",
                .cra_driver_name=       "sha512-s390",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name=       "sha384-s390",
                .cra_priority   =       300,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_ctxsize    =       sizeof(struct s390_sha_ctx),
                .cra_module     =       THIS_MODULE,
 
                .cra_name       =       "md5",
                .cra_driver_name=       "md5-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       MD5_HMAC_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name=       "sha256-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name=       "sha224-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha512",
                .cra_driver_name=       "sha512-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name=       "sha384-sparc64",
                .cra_priority   =       SPARC_CR_OPCODE_PRIORITY,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name               = "__ghash",
                .cra_driver_name        = "__ghash-pclmulqdqni",
                .cra_priority           = 0,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH |
-                                         CRYPTO_ALG_INTERNAL,
+               .cra_flags              = CRYPTO_ALG_INTERNAL,
                .cra_blocksize          = GHASH_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct ghash_ctx),
                .cra_module             = THIS_MODULE,
 
                .cra_name               = "poly1305",
                .cra_driver_name        = "poly1305-simd",
                .cra_priority           = 300,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = POLY1305_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        },
 
                .cra_name       =       "sha1",
                .cra_driver_name =      "sha1-ssse3",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha1",
                .cra_driver_name =      "sha1-avx",
                .cra_priority   =       160,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha1",
                .cra_driver_name =      "sha1-avx2",
                .cra_priority   =       170,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha1",
                .cra_driver_name =      "sha1-ni",
                .cra_priority   =       250,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-ssse3",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-ssse3",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-avx",
                .cra_priority   =       160,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-avx",
                .cra_priority   =       160,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-avx2",
                .cra_priority   =       170,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-avx2",
                .cra_priority   =       170,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha256",
                .cra_driver_name =      "sha256-ni",
                .cra_priority   =       250,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name =      "sha224-ni",
                .cra_priority   =       250,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha512",
                .cra_driver_name =      "sha512-ssse3",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name =      "sha384-ssse3",
                .cra_priority   =       150,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha512",
                .cra_driver_name =      "sha512-avx",
                .cra_priority   =       160,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name =      "sha384-avx",
                .cra_priority   =       160,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha512",
                .cra_driver_name =      "sha512-avx2",
                .cra_priority   =       170,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name =      "sha384-avx2",
                .cra_priority   =       170,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .final                  =       null_final,
        .base                   =       {
                .cra_name               =       "digest_null",
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       NULL_BLOCK_SIZE,
                .cra_module             =       THIS_MODULE,
        }
 
                .cra_name               = "ghash",
                .cra_driver_name        = "ghash-generic",
                .cra_priority           = 100,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = GHASH_BLOCK_SIZE,
                .cra_ctxsize            = sizeof(struct ghash_ctx),
                .cra_module             = THIS_MODULE,
 
        .descsize       =       sizeof(struct md4_ctx),
        .base           =       {
                .cra_name       =       "md4",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       MD4_HMAC_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .statesize      =       sizeof(struct md5_state),
        .base           =       {
                .cra_name       =       "md5",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       MD5_HMAC_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name               = "poly1305",
                .cra_driver_name        = "poly1305-generic",
                .cra_priority           = 100,
-               .cra_flags              = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          = POLY1305_BLOCK_SIZE,
                .cra_module             = THIS_MODULE,
        },
 
        .descsize       =       sizeof(struct rmd128_ctx),
        .base           =       {
                .cra_name        =      "rmd128",
-               .cra_flags       =      CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   =      RMD128_BLOCK_SIZE,
                .cra_module      =      THIS_MODULE,
        }
 
        .descsize       =       sizeof(struct rmd160_ctx),
        .base           =       {
                .cra_name        =      "rmd160",
-               .cra_flags       =      CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   =      RMD160_BLOCK_SIZE,
                .cra_module      =      THIS_MODULE,
        }
 
        .descsize       =       sizeof(struct rmd256_ctx),
        .base           =       {
                .cra_name        =      "rmd256",
-               .cra_flags       =      CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   =      RMD256_BLOCK_SIZE,
                .cra_module      =      THIS_MODULE,
        }
 
        .descsize       =       sizeof(struct rmd320_ctx),
        .base           =       {
                .cra_name        =      "rmd320",
-               .cra_flags       =      CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   =      RMD320_BLOCK_SIZE,
                .cra_module      =      THIS_MODULE,
        }
 
                .cra_name       =       "sha1",
                .cra_driver_name=       "sha1-generic",
                .cra_priority   =       100,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA1_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name       =       "sha256",
                .cra_driver_name=       "sha256-generic",
                .cra_priority   =       100,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA256_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha224",
                .cra_driver_name=       "sha224-generic",
                .cra_priority   =       100,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA224_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-224",
        .base.cra_driver_name   = "sha3-224-generic",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_224_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-256",
        .base.cra_driver_name   = "sha3-256-generic",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_256_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-384",
        .base.cra_driver_name   = "sha3-384-generic",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_384_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 }, {
        .descsize               = sizeof(struct sha3_state),
        .base.cra_name          = "sha3-512",
        .base.cra_driver_name   = "sha3-512-generic",
-       .base.cra_flags         = CRYPTO_ALG_TYPE_SHASH,
        .base.cra_blocksize     = SHA3_512_BLOCK_SIZE,
        .base.cra_module        = THIS_MODULE,
 } };
 
                .cra_name       =       "sha512",
                .cra_driver_name =      "sha512-generic",
                .cra_priority   =       100,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
                .cra_name       =       "sha384",
                .cra_driver_name =      "sha384-generic",
                .cra_priority   =       100,
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       SHA384_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .base           =       {
                .cra_name        =      "sm3",
                .cra_driver_name =      "sm3-generic",
-               .cra_flags       =      CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   =      SM3_BLOCK_SIZE,
                .cra_module      =      THIS_MODULE,
        }
 
        .descsize       =       sizeof(struct tgr192_ctx),
        .base           =       {
                .cra_name       =       "tgr192",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       TGR192_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
        .descsize       =       sizeof(struct tgr192_ctx),
        .base           =       {
                .cra_name       =       "tgr160",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       TGR192_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
        .descsize       =       sizeof(struct tgr192_ctx),
        .base           =       {
                .cra_name       =       "tgr128",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       TGR192_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
        .descsize       =       sizeof(struct wp512_ctx),
        .base           =       {
                .cra_name       =       "wp512",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       WP512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
        .descsize       =       sizeof(struct wp512_ctx),
        .base           =       {
                .cra_name       =       "wp384",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       WP512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
        .descsize       =       sizeof(struct wp512_ctx),
        .base           =       {
                .cra_name       =       "wp256",
-               .cra_flags      =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize  =       WP512_BLOCK_SIZE,
                .cra_module     =       THIS_MODULE,
        }
 
                .cra_name        = "xcbc(aes)",
                .cra_driver_name = "xcbc-aes-nx",
                .cra_priority    = 300,
-               .cra_flags       = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   = AES_BLOCK_SIZE,
                .cra_module      = THIS_MODULE,
                .cra_ctxsize     = sizeof(struct nx_crypto_ctx),
 
                .cra_name        = "sha256",
                .cra_driver_name = "sha256-nx",
                .cra_priority    = 300,
-               .cra_flags       = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   = SHA256_BLOCK_SIZE,
                .cra_module      = THIS_MODULE,
                .cra_ctxsize     = sizeof(struct nx_crypto_ctx),
 
                .cra_name        = "sha512",
                .cra_driver_name = "sha512-nx",
                .cra_priority    = 300,
-               .cra_flags       = CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize   = SHA512_BLOCK_SIZE,
                .cra_module      = THIS_MODULE,
                .cra_ctxsize     = sizeof(struct nx_crypto_ctx),
 
                .cra_name               =       "sha1",
                .cra_driver_name        =       "sha1-padlock",
                .cra_priority           =       PADLOCK_CRA_PRIORITY,
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH |
-                                               CRYPTO_ALG_NEED_FALLBACK,
+               .cra_flags              =       CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          =       SHA1_BLOCK_SIZE,
                .cra_ctxsize            =       sizeof(struct padlock_sha_ctx),
                .cra_module             =       THIS_MODULE,
                .cra_name               =       "sha256",
                .cra_driver_name        =       "sha256-padlock",
                .cra_priority           =       PADLOCK_CRA_PRIORITY,
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH |
-                                               CRYPTO_ALG_NEED_FALLBACK,
+               .cra_flags              =       CRYPTO_ALG_NEED_FALLBACK,
                .cra_blocksize          =       SHA256_BLOCK_SIZE,
                .cra_ctxsize            =       sizeof(struct padlock_sha_ctx),
                .cra_module             =       THIS_MODULE,
                .cra_name               =       "sha1",
                .cra_driver_name        =       "sha1-padlock-nano",
                .cra_priority           =       PADLOCK_CRA_PRIORITY,
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       SHA1_BLOCK_SIZE,
                .cra_module             =       THIS_MODULE,
        }
                .cra_name               =       "sha256",
                .cra_driver_name        =       "sha256-padlock-nano",
                .cra_priority           =       PADLOCK_CRA_PRIORITY,
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       SHA256_BLOCK_SIZE,
                .cra_module             =       THIS_MODULE,
        }
 
                 .cra_name = "ghash",
                 .cra_driver_name = "p8_ghash",
                 .cra_priority = 1000,
-                .cra_flags = CRYPTO_ALG_TYPE_SHASH | CRYPTO_ALG_NEED_FALLBACK,
+                .cra_flags = CRYPTO_ALG_NEED_FALLBACK,
                 .cra_blocksize = GHASH_BLOCK_SIZE,
                 .cra_ctxsize = sizeof(struct p8_ghash_ctx),
                 .cra_module = THIS_MODULE,
 
        .base           =       {
                .cra_name               =       "skein256",
                .cra_driver_name        =       "skein",
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       SKEIN_256_BLOCK_BYTES,
                .cra_module             =       THIS_MODULE,
        }
        .base           =       {
                .cra_name               =       "skein512",
                .cra_driver_name        =       "skein",
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       SKEIN_512_BLOCK_BYTES,
                .cra_module             =       THIS_MODULE,
        }
        .base           =       {
                .cra_name               =       "skein1024",
                .cra_driver_name        =       "skein",
-               .cra_flags              =       CRYPTO_ALG_TYPE_SHASH,
                .cra_blocksize          =       SKEIN_1024_BLOCK_BYTES,
                .cra_module             =       THIS_MODULE,
        }