crypto: ecc - Prevent ecc_digits_from_bytes from reading too many bytes
[linux-2.6-block.git] / include / crypto / internal / ecc.h
index 7ca1f463d1ecfb3478b0d6fb0136aff94f9b6a23..f7e75e1e71f3cc655cd2a3270481a34d91633ac6 100644 (file)
@@ -64,19 +64,8 @@ static inline void ecc_swap_digits(const void *in, u64 *out, unsigned int ndigit
  * @out       Output digits array
  * @ndigits:  Number of digits to create from byte array
  */
-static inline void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes,
-                                        u64 *out, unsigned int ndigits)
-{
-       unsigned int o = nbytes & 7;
-       __be64 msd = 0;
-
-       if (o) {
-               memcpy((u8 *)&msd + sizeof(msd) - o, in, o);
-               out[--ndigits] = be64_to_cpu(msd);
-               in += o;
-       }
-       ecc_swap_digits(in, out, ndigits);
-}
+void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes,
+                          u64 *out, unsigned int ndigits);
 
 /**
  * ecc_is_key_valid() - Validate a given ECDH private key