diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2012-07-11 07:19:55 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-08-01 05:47:24 -0400 |
commit | 738206d325a936d048bb66b5e0c70e3b1a8692be (patch) | |
tree | b40306002fa1c3dcadcbf4776527876c4849c67d | |
parent | 2d534926205db9ffce4bbbde67cb9b2cee4b835c (diff) |
crypto: tea - use crypto_[un]register_algs
Combine all crypto_alg to be registered and use new crypto_[un]register_algs
functions. This simplifies init/exit code.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | crypto/tea.c | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/crypto/tea.c b/crypto/tea.c index 412bc74f8179..0a572323ee4a 100644 --- a/crypto/tea.c +++ b/crypto/tea.c | |||
@@ -219,84 +219,55 @@ static void xeta_decrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src) | |||
219 | out[1] = cpu_to_le32(z); | 219 | out[1] = cpu_to_le32(z); |
220 | } | 220 | } |
221 | 221 | ||
222 | static struct crypto_alg tea_alg = { | 222 | static struct crypto_alg tea_algs[3] = { { |
223 | .cra_name = "tea", | 223 | .cra_name = "tea", |
224 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | 224 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, |
225 | .cra_blocksize = TEA_BLOCK_SIZE, | 225 | .cra_blocksize = TEA_BLOCK_SIZE, |
226 | .cra_ctxsize = sizeof (struct tea_ctx), | 226 | .cra_ctxsize = sizeof (struct tea_ctx), |
227 | .cra_alignmask = 3, | 227 | .cra_alignmask = 3, |
228 | .cra_module = THIS_MODULE, | 228 | .cra_module = THIS_MODULE, |
229 | .cra_list = LIST_HEAD_INIT(tea_alg.cra_list), | ||
230 | .cra_u = { .cipher = { | 229 | .cra_u = { .cipher = { |
231 | .cia_min_keysize = TEA_KEY_SIZE, | 230 | .cia_min_keysize = TEA_KEY_SIZE, |
232 | .cia_max_keysize = TEA_KEY_SIZE, | 231 | .cia_max_keysize = TEA_KEY_SIZE, |
233 | .cia_setkey = tea_setkey, | 232 | .cia_setkey = tea_setkey, |
234 | .cia_encrypt = tea_encrypt, | 233 | .cia_encrypt = tea_encrypt, |
235 | .cia_decrypt = tea_decrypt } } | 234 | .cia_decrypt = tea_decrypt } } |
236 | }; | 235 | }, { |
237 | |||
238 | static struct crypto_alg xtea_alg = { | ||
239 | .cra_name = "xtea", | 236 | .cra_name = "xtea", |
240 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | 237 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, |
241 | .cra_blocksize = XTEA_BLOCK_SIZE, | 238 | .cra_blocksize = XTEA_BLOCK_SIZE, |
242 | .cra_ctxsize = sizeof (struct xtea_ctx), | 239 | .cra_ctxsize = sizeof (struct xtea_ctx), |
243 | .cra_alignmask = 3, | 240 | .cra_alignmask = 3, |
244 | .cra_module = THIS_MODULE, | 241 | .cra_module = THIS_MODULE, |
245 | .cra_list = LIST_HEAD_INIT(xtea_alg.cra_list), | ||
246 | .cra_u = { .cipher = { | 242 | .cra_u = { .cipher = { |
247 | .cia_min_keysize = XTEA_KEY_SIZE, | 243 | .cia_min_keysize = XTEA_KEY_SIZE, |
248 | .cia_max_keysize = XTEA_KEY_SIZE, | 244 | .cia_max_keysize = XTEA_KEY_SIZE, |
249 | .cia_setkey = xtea_setkey, | 245 | .cia_setkey = xtea_setkey, |
250 | .cia_encrypt = xtea_encrypt, | 246 | .cia_encrypt = xtea_encrypt, |
251 | .cia_decrypt = xtea_decrypt } } | 247 | .cia_decrypt = xtea_decrypt } } |
252 | }; | 248 | }, { |
253 | |||
254 | static struct crypto_alg xeta_alg = { | ||
255 | .cra_name = "xeta", | 249 | .cra_name = "xeta", |
256 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, | 250 | .cra_flags = CRYPTO_ALG_TYPE_CIPHER, |
257 | .cra_blocksize = XTEA_BLOCK_SIZE, | 251 | .cra_blocksize = XTEA_BLOCK_SIZE, |
258 | .cra_ctxsize = sizeof (struct xtea_ctx), | 252 | .cra_ctxsize = sizeof (struct xtea_ctx), |
259 | .cra_alignmask = 3, | 253 | .cra_alignmask = 3, |
260 | .cra_module = THIS_MODULE, | 254 | .cra_module = THIS_MODULE, |
261 | .cra_list = LIST_HEAD_INIT(xtea_alg.cra_list), | ||
262 | .cra_u = { .cipher = { | 255 | .cra_u = { .cipher = { |
263 | .cia_min_keysize = XTEA_KEY_SIZE, | 256 | .cia_min_keysize = XTEA_KEY_SIZE, |
264 | .cia_max_keysize = XTEA_KEY_SIZE, | 257 | .cia_max_keysize = XTEA_KEY_SIZE, |
265 | .cia_setkey = xtea_setkey, | 258 | .cia_setkey = xtea_setkey, |
266 | .cia_encrypt = xeta_encrypt, | 259 | .cia_encrypt = xeta_encrypt, |
267 | .cia_decrypt = xeta_decrypt } } | 260 | .cia_decrypt = xeta_decrypt } } |
268 | }; | 261 | } }; |
269 | 262 | ||
270 | static int __init tea_mod_init(void) | 263 | static int __init tea_mod_init(void) |
271 | { | 264 | { |
272 | int ret = 0; | 265 | return crypto_register_algs(tea_algs, ARRAY_SIZE(tea_algs)); |
273 | |||
274 | ret = crypto_register_alg(&tea_alg); | ||
275 | if (ret < 0) | ||
276 | goto out; | ||
277 | |||
278 | ret = crypto_register_alg(&xtea_alg); | ||
279 | if (ret < 0) { | ||
280 | crypto_unregister_alg(&tea_alg); | ||
281 | goto out; | ||
282 | } | ||
283 | |||
284 | ret = crypto_register_alg(&xeta_alg); | ||
285 | if (ret < 0) { | ||
286 | crypto_unregister_alg(&tea_alg); | ||
287 | crypto_unregister_alg(&xtea_alg); | ||
288 | goto out; | ||
289 | } | ||
290 | |||
291 | out: | ||
292 | return ret; | ||
293 | } | 266 | } |
294 | 267 | ||
295 | static void __exit tea_mod_fini(void) | 268 | static void __exit tea_mod_fini(void) |
296 | { | 269 | { |
297 | crypto_unregister_alg(&tea_alg); | 270 | crypto_unregister_algs(tea_algs, ARRAY_SIZE(tea_algs)); |
298 | crypto_unregister_alg(&xtea_alg); | ||
299 | crypto_unregister_alg(&xeta_alg); | ||
300 | } | 271 | } |
301 | 272 | ||
302 | MODULE_ALIAS("xtea"); | 273 | MODULE_ALIAS("xtea"); |