diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-11 09:38:37 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-11 09:38:37 -0700 | 
| commit | 332a3392188e0ad966543c87b8da2b9d246f301d (patch) | |
| tree | ac0d570590bffdd1924426adc5b255857d2f3297 /include/crypto/algapi.h | |
| parent | a9c86d42599519f3d83b5f46bdab25046fe47b84 (diff) | |
| parent | 81bd5f6c966cf2f137c2759dfc78abdffcff055e (diff) | |
| download | olio-linux-3.10-332a3392188e0ad966543c87b8da2b9d246f301d.tar.xz olio-linux-3.10-332a3392188e0ad966543c87b8da2b9d246f301d.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (102 commits)
  crypto: sha-s390 - Fix warnings in import function
  crypto: vmac - New hash algorithm for intel_txt support
  crypto: api - Do not displace newly registered algorithms
  crypto: ansi_cprng - Fix module initialization
  crypto: xcbc - Fix alignment calculation of xcbc_tfm_ctx
  crypto: fips - Depend on ansi_cprng
  crypto: blkcipher - Do not use eseqiv on stream ciphers
  crypto: ctr - Use chainiv on raw counter mode
  Revert crypto: fips - Select CPRNG
  crypto: rng - Fix typo
  crypto: talitos - add support for 36 bit addressing
  crypto: talitos - align locks on cache lines
  crypto: talitos - simplify hmac data size calculation
  crypto: mv_cesa - Add support for Orion5X crypto engine
  crypto: cryptd - Add support to access underlaying shash
  crypto: gcm - Use GHASH digest algorithm
  crypto: ghash - Add GHASH digest algorithm for GCM
  crypto: authenc - Convert to ahash
  crypto: api - Fix aligned ctx helper
  crypto: hmac - Prehash ipad/opad
  ...
Diffstat (limited to 'include/crypto/algapi.h')
| -rw-r--r-- | include/crypto/algapi.h | 37 | 
1 files changed, 26 insertions, 11 deletions
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index 5a2bd1cc965..1ffb53f74d3 100644 --- a/include/crypto/algapi.h +++ b/include/crypto/algapi.h @@ -22,11 +22,9 @@ struct seq_file;  struct crypto_type {  	unsigned int (*ctxsize)(struct crypto_alg *alg, u32 type, u32 mask); -	unsigned int (*extsize)(struct crypto_alg *alg, -				const struct crypto_type *frontend); +	unsigned int (*extsize)(struct crypto_alg *alg);  	int (*init)(struct crypto_tfm *tfm, u32 type, u32 mask); -	int (*init_tfm)(struct crypto_tfm *tfm, -		        const struct crypto_type *frontend); +	int (*init_tfm)(struct crypto_tfm *tfm);  	void (*show)(struct seq_file *m, struct crypto_alg *alg);  	struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask); @@ -52,6 +50,7 @@ struct crypto_template {  	struct crypto_instance *(*alloc)(struct rtattr **tb);  	void (*free)(struct crypto_instance *inst); +	int (*create)(struct crypto_template *tmpl, struct rtattr **tb);  	char name[CRYPTO_MAX_ALG_NAME];  }; @@ -60,6 +59,7 @@ struct crypto_spawn {  	struct list_head list;  	struct crypto_alg *alg;  	struct crypto_instance *inst; +	const struct crypto_type *frontend;  	u32 mask;  }; @@ -114,11 +114,19 @@ int crypto_register_template(struct crypto_template *tmpl);  void crypto_unregister_template(struct crypto_template *tmpl);  struct crypto_template *crypto_lookup_template(const char *name); +int crypto_register_instance(struct crypto_template *tmpl, +			     struct crypto_instance *inst); +  int crypto_init_spawn(struct crypto_spawn *spawn, struct crypto_alg *alg,  		      struct crypto_instance *inst, u32 mask); +int crypto_init_spawn2(struct crypto_spawn *spawn, struct crypto_alg *alg, +		       struct crypto_instance *inst, +		       const struct crypto_type *frontend); +  void crypto_drop_spawn(struct crypto_spawn *spawn);  struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,  				    u32 mask); +void *crypto_spawn_tfm2(struct crypto_spawn *spawn);  static inline void crypto_set_spawn(struct crypto_spawn *spawn,  				    struct crypto_instance *inst) @@ -129,8 +137,19 @@ static inline void crypto_set_spawn(struct crypto_spawn *spawn,  struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);  int crypto_check_attr_type(struct rtattr **tb, u32 type);  const char *crypto_attr_alg_name(struct rtattr *rta); -struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask); +struct crypto_alg *crypto_attr_alg2(struct rtattr *rta, +				    const struct crypto_type *frontend, +				    u32 type, u32 mask); + +static inline struct crypto_alg *crypto_attr_alg(struct rtattr *rta, +						 u32 type, u32 mask) +{ +	return crypto_attr_alg2(rta, NULL, type, mask); +} +  int crypto_attr_u32(struct rtattr *rta, u32 *num); +void *crypto_alloc_instance2(const char *name, struct crypto_alg *alg, +			     unsigned int head);  struct crypto_instance *crypto_alloc_instance(const char *name,  					      struct crypto_alg *alg); @@ -157,12 +176,8 @@ int blkcipher_walk_virt_block(struct blkcipher_desc *desc,  static inline void *crypto_tfm_ctx_aligned(struct crypto_tfm *tfm)  { -	unsigned long addr = (unsigned long)crypto_tfm_ctx(tfm); -	unsigned long align = crypto_tfm_alg_alignmask(tfm); - -	if (align <= crypto_tfm_ctx_alignment()) -		align = 1; -	return (void *)ALIGN(addr, align); +	return PTR_ALIGN(crypto_tfm_ctx(tfm), +			 crypto_tfm_alg_alignmask(tfm) + 1);  }  static inline struct crypto_instance *crypto_tfm_alg_instance(  |