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);
int (*init)(struct crypto_tfm *tfm, u32 type, u32 mask);
- void (*exit)(struct crypto_tfm *tfm);
+ int (*init_tfm)(struct crypto_tfm *tfm,
+ const struct crypto_type *frontend);
void (*show)(struct seq_file *m, struct crypto_alg *alg);
+ struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask);
+
+ unsigned int type;
+ unsigned int maskclear;
+ unsigned int maskset;
+ unsigned int tfmsize;
};
struct crypto_instance {
extern const struct crypto_type crypto_aead_type;
extern const struct crypto_type crypto_blkcipher_type;
extern const struct crypto_type crypto_hash_type;
-extern const struct crypto_type crypto_ahash_type;
void crypto_mod_put(struct crypto_alg *alg);
return __crypto_hash_cast(crypto_spawn_tfm(spawn, type, mask));
}
+static inline void *crypto_hash_ctx(struct crypto_hash *tfm)
+{
+ return crypto_tfm_ctx(&tfm->base);
+}
+
static inline void *crypto_hash_ctx_aligned(struct crypto_hash *tfm)
{
return crypto_tfm_ctx_aligned(&tfm->base);
return (type ^ CRYPTO_ALG_ASYNC) & mask & CRYPTO_ALG_ASYNC;
}
-static inline void *crypto_ahash_ctx(struct crypto_ahash *tfm)
-{
- return crypto_tfm_ctx(&tfm->base);
-}
-
-static inline struct ahash_alg *crypto_ahash_alg(
- struct crypto_ahash *tfm)
-{
- return &crypto_ahash_tfm(tfm)->__crt_alg->cra_ahash;
-}
-
-static inline int ahash_enqueue_request(struct crypto_queue *queue,
- struct ahash_request *request)
-{
- return crypto_enqueue_request(queue, &request->base);
-}
-
-static inline struct ahash_request *ahash_dequeue_request(
- struct crypto_queue *queue)
-{
- return ahash_request_cast(crypto_dequeue_request(queue));
-}
-
-static inline void *ahash_request_ctx(struct ahash_request *req)
-{
- return req->__ctx;
-}
-
-static inline int ahash_tfm_in_queue(struct crypto_queue *queue,
- struct crypto_ahash *tfm)
-{
- return crypto_tfm_in_queue(queue, crypto_ahash_tfm(tfm));
-}
-
-
#endif /* _CRYPTO_ALGAPI_H */