serpent_generic.c (0898782247ae533d1f4e47a06bc5d4870931b284) serpent_generic.c (9c1e8836edbbaf3656bc07437b59c04be034ac4e)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Cryptographic API.
4 *
5 * Serpent Cipher Algorithm.
6 *
7 * Copyright (C) 2002 Dag Arne Osvik <osvik@ii.uib.no>
8 * 2003 Herbert Valerio Riedel <hvr@gnu.org>

--- 435 unchanged lines hidden (view full) ---

444EXPORT_SYMBOL_GPL(__serpent_setkey);
445
446int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
447{
448 return __serpent_setkey(crypto_tfm_ctx(tfm), key, keylen);
449}
450EXPORT_SYMBOL_GPL(serpent_setkey);
451
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Cryptographic API.
4 *
5 * Serpent Cipher Algorithm.
6 *
7 * Copyright (C) 2002 Dag Arne Osvik <osvik@ii.uib.no>
8 * 2003 Herbert Valerio Riedel <hvr@gnu.org>

--- 435 unchanged lines hidden (view full) ---

444EXPORT_SYMBOL_GPL(__serpent_setkey);
445
446int serpent_setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
447{
448 return __serpent_setkey(crypto_tfm_ctx(tfm), key, keylen);
449}
450EXPORT_SYMBOL_GPL(serpent_setkey);
451
452void __serpent_encrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src)
452void __serpent_encrypt(const void *c, u8 *dst, const u8 *src)
453{
453{
454 const struct serpent_ctx *ctx = c;
454 const u32 *k = ctx->expkey;
455 const __le32 *s = (const __le32 *)src;
456 __le32 *d = (__le32 *)dst;
457 u32 r0, r1, r2, r3, r4;
458
459/*
460 * Note: The conversions between u8* and u32* might cause trouble
461 * on architectures with stricter alignment rules than x86

--- 47 unchanged lines hidden (view full) ---

509
510static void serpent_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
511{
512 struct serpent_ctx *ctx = crypto_tfm_ctx(tfm);
513
514 __serpent_encrypt(ctx, dst, src);
515}
516
455 const u32 *k = ctx->expkey;
456 const __le32 *s = (const __le32 *)src;
457 __le32 *d = (__le32 *)dst;
458 u32 r0, r1, r2, r3, r4;
459
460/*
461 * Note: The conversions between u8* and u32* might cause trouble
462 * on architectures with stricter alignment rules than x86

--- 47 unchanged lines hidden (view full) ---

510
511static void serpent_encrypt(struct crypto_tfm *tfm, u8 *dst, const u8 *src)
512{
513 struct serpent_ctx *ctx = crypto_tfm_ctx(tfm);
514
515 __serpent_encrypt(ctx, dst, src);
516}
517
517void __serpent_decrypt(struct serpent_ctx *ctx, u8 *dst, const u8 *src)
518void __serpent_decrypt(const void *c, u8 *dst, const u8 *src)
518{
519{
520 const struct serpent_ctx *ctx = c;
519 const u32 *k = ctx->expkey;
520 const __le32 *s = (const __le32 *)src;
521 __le32 *d = (__le32 *)dst;
522 u32 r0, r1, r2, r3, r4;
523
524 r0 = le32_to_cpu(s[0]);
525 r1 = le32_to_cpu(s[1]);
526 r2 = le32_to_cpu(s[2]);

--- 152 unchanged lines hidden ---
521 const u32 *k = ctx->expkey;
522 const __le32 *s = (const __le32 *)src;
523 __le32 *d = (__le32 *)dst;
524 u32 r0, r1, r2, r3, r4;
525
526 r0 = le32_to_cpu(s[0]);
527 r1 = le32_to_cpu(s[1]);
528 r2 = le32_to_cpu(s[2]);

--- 152 unchanged lines hidden ---