diff options
author | Luis Henriques <luis.henriques@canonical.com> | 2014-01-19 16:50:51 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-01-24 15:58:44 -0500 |
commit | c692554bf4fe50a0187744663acc935d10e210a2 (patch) | |
tree | e93c2027de64946c7f0903eb37f3e8b0bcbb999e /net/sunrpc | |
parent | d50e61361c68a05a9cd7d54617522f99f278ac8a (diff) |
gss_krb5: use lcm from kernel lib
Replace hardcoded lowest common multiple algorithm by the lcm()
function in kernel lib.
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_keys.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/net/sunrpc/auth_gss/gss_krb5_keys.c b/net/sunrpc/auth_gss/gss_krb5_keys.c index 76e42e6be755..24589bd2a4b6 100644 --- a/net/sunrpc/auth_gss/gss_krb5_keys.c +++ b/net/sunrpc/auth_gss/gss_krb5_keys.c | |||
@@ -59,6 +59,7 @@ | |||
59 | #include <linux/crypto.h> | 59 | #include <linux/crypto.h> |
60 | #include <linux/sunrpc/gss_krb5.h> | 60 | #include <linux/sunrpc/gss_krb5.h> |
61 | #include <linux/sunrpc/xdr.h> | 61 | #include <linux/sunrpc/xdr.h> |
62 | #include <linux/lcm.h> | ||
62 | 63 | ||
63 | #ifdef RPC_DEBUG | 64 | #ifdef RPC_DEBUG |
64 | # define RPCDBG_FACILITY RPCDBG_AUTH | 65 | # define RPCDBG_FACILITY RPCDBG_AUTH |
@@ -72,7 +73,7 @@ | |||
72 | static void krb5_nfold(u32 inbits, const u8 *in, | 73 | static void krb5_nfold(u32 inbits, const u8 *in, |
73 | u32 outbits, u8 *out) | 74 | u32 outbits, u8 *out) |
74 | { | 75 | { |
75 | int a, b, c, lcm; | 76 | unsigned long ulcm; |
76 | int byte, i, msbit; | 77 | int byte, i, msbit; |
77 | 78 | ||
78 | /* the code below is more readable if I make these bytes | 79 | /* the code below is more readable if I make these bytes |
@@ -82,17 +83,7 @@ static void krb5_nfold(u32 inbits, const u8 *in, | |||
82 | outbits >>= 3; | 83 | outbits >>= 3; |
83 | 84 | ||
84 | /* first compute lcm(n,k) */ | 85 | /* first compute lcm(n,k) */ |
85 | 86 | ulcm = lcm(inbits, outbits); | |
86 | a = outbits; | ||
87 | b = inbits; | ||
88 | |||
89 | while (b != 0) { | ||
90 | c = b; | ||
91 | b = a%b; | ||
92 | a = c; | ||
93 | } | ||
94 | |||
95 | lcm = outbits*inbits/a; | ||
96 | 87 | ||
97 | /* now do the real work */ | 88 | /* now do the real work */ |
98 | 89 | ||
@@ -101,7 +92,7 @@ static void krb5_nfold(u32 inbits, const u8 *in, | |||
101 | 92 | ||
102 | /* this will end up cycling through k lcm(k,n)/k times, which | 93 | /* this will end up cycling through k lcm(k,n)/k times, which |
103 | is correct */ | 94 | is correct */ |
104 | for (i = lcm-1; i >= 0; i--) { | 95 | for (i = ulcm-1; i >= 0; i--) { |
105 | /* compute the msbit in k which gets added into this byte */ | 96 | /* compute the msbit in k which gets added into this byte */ |
106 | msbit = ( | 97 | msbit = ( |
107 | /* first, start with the msbit in the first, | 98 | /* first, start with the msbit in the first, |