#include <linux/module.h>
#include <linux/string.h>
#include <linux/crypto.h>
+#include <linux/types.h>
#include <asm/byteorder.h>
#define MD5_DIGEST_SIZE 16
md5_transform(ctx->hash, ctx->block);
}
-static void md5_init(void *ctx)
+static void md5_init(struct crypto_tfm *tfm)
{
- struct md5_ctx *mctx = ctx;
+ struct md5_ctx *mctx = crypto_tfm_ctx(tfm);
mctx->hash[0] = 0x67452301;
mctx->hash[1] = 0xefcdab89;
mctx->byte_count = 0;
}
-static void md5_update(void *ctx, const u8 *data, unsigned int len)
+static void md5_update(struct crypto_tfm *tfm, const u8 *data, unsigned int len)
{
- struct md5_ctx *mctx = ctx;
+ struct md5_ctx *mctx = crypto_tfm_ctx(tfm);
const u32 avail = sizeof(mctx->block) - (mctx->byte_count & 0x3f);
mctx->byte_count += len;
memcpy(mctx->block, data, len);
}
-static void md5_final(void *ctx, u8 *out)
+static void md5_final(struct crypto_tfm *tfm, u8 *out)
{
- struct md5_ctx *mctx = ctx;
+ struct md5_ctx *mctx = crypto_tfm_ctx(tfm);
const unsigned int offset = mctx->byte_count & 0x3f;
char *p = (char *)mctx->block + offset;
int padding = 56 - (offset + 1);
.dia_final = md5_final } }
};
-static int __init init(void)
+static int __init md5_mod_init(void)
{
return crypto_register_alg(&alg);
}
-static void __exit fini(void)
+static void __exit md5_mod_fini(void)
{
crypto_unregister_alg(&alg);
}
-module_init(init);
-module_exit(fini);
+module_init(md5_mod_init);
+module_exit(md5_mod_fini);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("MD5 Message Digest Algorithm");