diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-18 18:24:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-18 18:24:05 -0500 |
commit | a18d3afefa0104419b5e069af5922bb57a302426 (patch) | |
tree | 4bcc6010e2eb46d5d40454c4c9276f1ec6c7fd73 | |
parent | 34ddc81a230b15c0e345b6b253049db731499f7e (diff) | |
parent | f2ea0f5f04c97b48c88edccba52b0682fbe45087 (diff) |
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:
crypto: sha512 - use standard ror64()
-rw-r--r-- | crypto/sha512_generic.c | 13 | ||||
-rw-r--r-- | include/linux/bitops.h | 20 |
2 files changed, 24 insertions, 9 deletions
diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c index f04af931a682..107f6f7be5e1 100644 --- a/crypto/sha512_generic.c +++ b/crypto/sha512_generic.c | |||
@@ -31,11 +31,6 @@ static inline u64 Maj(u64 x, u64 y, u64 z) | |||
31 | return (x & y) | (z & (x | y)); | 31 | return (x & y) | (z & (x | y)); |
32 | } | 32 | } |
33 | 33 | ||
34 | static inline u64 RORu64(u64 x, u64 y) | ||
35 | { | ||
36 | return (x >> y) | (x << (64 - y)); | ||
37 | } | ||
38 | |||
39 | static const u64 sha512_K[80] = { | 34 | static const u64 sha512_K[80] = { |
40 | 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, | 35 | 0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL, |
41 | 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, | 36 | 0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, |
@@ -66,10 +61,10 @@ static const u64 sha512_K[80] = { | |||
66 | 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL, | 61 | 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL, |
67 | }; | 62 | }; |
68 | 63 | ||
69 | #define e0(x) (RORu64(x,28) ^ RORu64(x,34) ^ RORu64(x,39)) | 64 | #define e0(x) (ror64(x,28) ^ ror64(x,34) ^ ror64(x,39)) |
70 | #define e1(x) (RORu64(x,14) ^ RORu64(x,18) ^ RORu64(x,41)) | 65 | #define e1(x) (ror64(x,14) ^ ror64(x,18) ^ ror64(x,41)) |
71 | #define s0(x) (RORu64(x, 1) ^ RORu64(x, 8) ^ (x >> 7)) | 66 | #define s0(x) (ror64(x, 1) ^ ror64(x, 8) ^ (x >> 7)) |
72 | #define s1(x) (RORu64(x,19) ^ RORu64(x,61) ^ (x >> 6)) | 67 | #define s1(x) (ror64(x,19) ^ ror64(x,61) ^ (x >> 6)) |
73 | 68 | ||
74 | static inline void LOAD_OP(int I, u64 *W, const u8 *input) | 69 | static inline void LOAD_OP(int I, u64 *W, const u8 *input) |
75 | { | 70 | { |
diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 3c1063acb2ab..94300fe46cce 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h | |||
@@ -56,6 +56,26 @@ static inline unsigned long hweight_long(unsigned long w) | |||
56 | } | 56 | } |
57 | 57 | ||
58 | /** | 58 | /** |
59 | * rol64 - rotate a 64-bit value left | ||
60 | * @word: value to rotate | ||
61 | * @shift: bits to roll | ||
62 | */ | ||
63 | static inline __u64 rol64(__u64 word, unsigned int shift) | ||
64 | { | ||
65 | return (word << shift) | (word >> (64 - shift)); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * ror64 - rotate a 64-bit value right | ||
70 | * @word: value to rotate | ||
71 | * @shift: bits to roll | ||
72 | */ | ||
73 | static inline __u64 ror64(__u64 word, unsigned int shift) | ||
74 | { | ||
75 | return (word >> shift) | (word << (64 - shift)); | ||
76 | } | ||
77 | |||
78 | /** | ||
59 | * rol32 - rotate a 32-bit value left | 79 | * rol32 - rotate a 32-bit value left |
60 | * @word: value to rotate | 80 | * @word: value to rotate |
61 | * @shift: bits to roll | 81 | * @shift: bits to roll |