Commit 7226bc87 authored by Herbert Xu's avatar Herbert Xu

[CRYPTO] api: Mark parts of cipher interface as deprecated

Mark the parts of the cipher interface that have been replaced by
block ciphers as deprecated.  Thanks to Andrew Morton for suggesting
doing this before removing them completely.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 03fd9cee
...@@ -23,6 +23,28 @@ ...@@ -23,6 +23,28 @@
#include "internal.h" #include "internal.h"
#include "scatterwalk.h" #include "scatterwalk.h"
struct cipher_alg_compat {
unsigned int cia_min_keysize;
unsigned int cia_max_keysize;
int (*cia_setkey)(struct crypto_tfm *tfm, const u8 *key,
unsigned int keylen);
void (*cia_encrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
void (*cia_decrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
unsigned int (*cia_encrypt_ecb)(const struct cipher_desc *desc,
u8 *dst, const u8 *src,
unsigned int nbytes);
unsigned int (*cia_decrypt_ecb)(const struct cipher_desc *desc,
u8 *dst, const u8 *src,
unsigned int nbytes);
unsigned int (*cia_encrypt_cbc)(const struct cipher_desc *desc,
u8 *dst, const u8 *src,
unsigned int nbytes);
unsigned int (*cia_decrypt_cbc)(const struct cipher_desc *desc,
u8 *dst, const u8 *src,
unsigned int nbytes);
};
static inline void xor_64(u8 *a, const u8 *b) static inline void xor_64(u8 *a, const u8 *b)
{ {
((u32 *)a)[0] ^= ((u32 *)b)[0]; ((u32 *)a)[0] ^= ((u32 *)b)[0];
...@@ -276,7 +298,7 @@ static int ecb_encrypt(struct crypto_tfm *tfm, ...@@ -276,7 +298,7 @@ static int ecb_encrypt(struct crypto_tfm *tfm,
struct scatterlist *src, unsigned int nbytes) struct scatterlist *src, unsigned int nbytes)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_encrypt; desc.crfn = cipher->cia_encrypt;
...@@ -291,7 +313,7 @@ static int ecb_decrypt(struct crypto_tfm *tfm, ...@@ -291,7 +313,7 @@ static int ecb_decrypt(struct crypto_tfm *tfm,
unsigned int nbytes) unsigned int nbytes)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_decrypt; desc.crfn = cipher->cia_decrypt;
...@@ -306,7 +328,7 @@ static int cbc_encrypt(struct crypto_tfm *tfm, ...@@ -306,7 +328,7 @@ static int cbc_encrypt(struct crypto_tfm *tfm,
unsigned int nbytes) unsigned int nbytes)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_encrypt; desc.crfn = cipher->cia_encrypt;
...@@ -322,7 +344,7 @@ static int cbc_encrypt_iv(struct crypto_tfm *tfm, ...@@ -322,7 +344,7 @@ static int cbc_encrypt_iv(struct crypto_tfm *tfm,
unsigned int nbytes, u8 *iv) unsigned int nbytes, u8 *iv)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_encrypt; desc.crfn = cipher->cia_encrypt;
...@@ -338,7 +360,7 @@ static int cbc_decrypt(struct crypto_tfm *tfm, ...@@ -338,7 +360,7 @@ static int cbc_decrypt(struct crypto_tfm *tfm,
unsigned int nbytes) unsigned int nbytes)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_decrypt; desc.crfn = cipher->cia_decrypt;
...@@ -354,7 +376,7 @@ static int cbc_decrypt_iv(struct crypto_tfm *tfm, ...@@ -354,7 +376,7 @@ static int cbc_decrypt_iv(struct crypto_tfm *tfm,
unsigned int nbytes, u8 *iv) unsigned int nbytes, u8 *iv)
{ {
struct cipher_desc desc; struct cipher_desc desc;
struct cipher_alg *cipher = &tfm->__crt_alg->cra_cipher; struct cipher_alg_compat *cipher = (void *)&tfm->__crt_alg->cra_cipher;
desc.tfm = tfm; desc.tfm = tfm;
desc.crfn = cipher->cia_decrypt; desc.crfn = cipher->cia_decrypt;
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include <asm/atomic.h> #include <asm/atomic.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/types.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/string.h> #include <linux/string.h>
...@@ -137,16 +136,16 @@ struct cipher_alg { ...@@ -137,16 +136,16 @@ struct cipher_alg {
unsigned int (*cia_encrypt_ecb)(const struct cipher_desc *desc, unsigned int (*cia_encrypt_ecb)(const struct cipher_desc *desc,
u8 *dst, const u8 *src, u8 *dst, const u8 *src,
unsigned int nbytes); unsigned int nbytes) __deprecated;
unsigned int (*cia_decrypt_ecb)(const struct cipher_desc *desc, unsigned int (*cia_decrypt_ecb)(const struct cipher_desc *desc,
u8 *dst, const u8 *src, u8 *dst, const u8 *src,
unsigned int nbytes); unsigned int nbytes) __deprecated;
unsigned int (*cia_encrypt_cbc)(const struct cipher_desc *desc, unsigned int (*cia_encrypt_cbc)(const struct cipher_desc *desc,
u8 *dst, const u8 *src, u8 *dst, const u8 *src,
unsigned int nbytes); unsigned int nbytes) __deprecated;
unsigned int (*cia_decrypt_cbc)(const struct cipher_desc *desc, unsigned int (*cia_decrypt_cbc)(const struct cipher_desc *desc,
u8 *dst, const u8 *src, u8 *dst, const u8 *src,
unsigned int nbytes); unsigned int nbytes) __deprecated;
}; };
struct digest_alg { struct digest_alg {
...@@ -358,18 +357,23 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) ...@@ -358,18 +357,23 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK; return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
} }
static unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm)
__deprecated;
static inline unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm) static inline unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm)
{ {
BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
return tfm->__crt_alg->cra_cipher.cia_min_keysize; return tfm->__crt_alg->cra_cipher.cia_min_keysize;
} }
static unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm)
__deprecated;
static inline unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm) static inline unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm)
{ {
BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
return tfm->__crt_alg->cra_cipher.cia_max_keysize; return tfm->__crt_alg->cra_cipher.cia_max_keysize;
} }
static unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm) __deprecated;
static inline unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm) static inline unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm)
{ {
BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
...@@ -622,6 +626,13 @@ static inline void crypto_cipher_clear_flags(struct crypto_cipher *tfm, ...@@ -622,6 +626,13 @@ static inline void crypto_cipher_clear_flags(struct crypto_cipher *tfm,
crypto_tfm_clear_flags(crypto_cipher_tfm(tfm), flags); crypto_tfm_clear_flags(crypto_cipher_tfm(tfm), flags);
} }
static inline int crypto_cipher_setkey(struct crypto_cipher *tfm,
const u8 *key, unsigned int keylen)
{
return crypto_cipher_crt(tfm)->cit_setkey(crypto_cipher_tfm(tfm),
key, keylen);
}
static inline void crypto_cipher_encrypt_one(struct crypto_cipher *tfm, static inline void crypto_cipher_encrypt_one(struct crypto_cipher *tfm,
u8 *dst, const u8 *src) u8 *dst, const u8 *src)
{ {
...@@ -671,13 +682,10 @@ static inline int crypto_digest_setkey(struct crypto_tfm *tfm, ...@@ -671,13 +682,10 @@ static inline int crypto_digest_setkey(struct crypto_tfm *tfm,
return tfm->crt_digest.dit_setkey(tfm, key, keylen); return tfm->crt_digest.dit_setkey(tfm, key, keylen);
} }
static inline int crypto_cipher_setkey(struct crypto_tfm *tfm, static int crypto_cipher_encrypt(struct crypto_tfm *tfm,
const u8 *key, unsigned int keylen) struct scatterlist *dst,
{ struct scatterlist *src,
BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER); unsigned int nbytes) __deprecated;
return tfm->crt_cipher.cit_setkey(tfm, key, keylen);
}
static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm, static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm,
struct scatterlist *dst, struct scatterlist *dst,
struct scatterlist *src, struct scatterlist *src,
...@@ -687,6 +695,10 @@ static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm, ...@@ -687,6 +695,10 @@ static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm,
return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes); return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes);
} }
static int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
struct scatterlist *dst,
struct scatterlist *src,
unsigned int nbytes, u8 *iv) __deprecated;
static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm, static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
struct scatterlist *dst, struct scatterlist *dst,
struct scatterlist *src, struct scatterlist *src,
...@@ -696,6 +708,10 @@ static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm, ...@@ -696,6 +708,10 @@ static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv); return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv);
} }
static int crypto_cipher_decrypt(struct crypto_tfm *tfm,
struct scatterlist *dst,
struct scatterlist *src,
unsigned int nbytes) __deprecated;
static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm, static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm,
struct scatterlist *dst, struct scatterlist *dst,
struct scatterlist *src, struct scatterlist *src,
...@@ -705,6 +721,10 @@ static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm, ...@@ -705,6 +721,10 @@ static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm,
return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes); return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes);
} }
static int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
struct scatterlist *dst,
struct scatterlist *src,
unsigned int nbytes, u8 *iv) __deprecated;
static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm, static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
struct scatterlist *dst, struct scatterlist *dst,
struct scatterlist *src, struct scatterlist *src,
...@@ -714,6 +734,8 @@ static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm, ...@@ -714,6 +734,8 @@ static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv); return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv);
} }
static void crypto_cipher_set_iv(struct crypto_tfm *tfm,
const u8 *src, unsigned int len) __deprecated;
static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm, static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
const u8 *src, unsigned int len) const u8 *src, unsigned int len)
{ {
...@@ -721,6 +743,8 @@ static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm, ...@@ -721,6 +743,8 @@ static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
memcpy(tfm->crt_cipher.cit_iv, src, len); memcpy(tfm->crt_cipher.cit_iv, src, len);
} }
static void crypto_cipher_get_iv(struct crypto_tfm *tfm,
u8 *dst, unsigned int len) __deprecated;
static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm, static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm,
u8 *dst, unsigned int len) u8 *dst, unsigned int len)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment