Some cleanups (removed unused files, split i15 code into per-function files).
[BearSSL] / src / int / i15_fmont.c
similarity index 61%
rename from src/int/i15_ext1.c
rename to src/int/i15_fmont.c
index a99ac1a..3450b72 100644 (file)
 
 #include "inner.h"
 
 
 #include "inner.h"
 
-/*
- * This file contains some additional functions for "i15" big integers.
- * These functions are needed to support ECDSA.
- */
-
-/* see inner.h */
-void
-br_i15_rshift(uint16_t *x, int count)
-{
-       size_t u, len;
-       unsigned r;
-
-       len = (x[0] + 15) >> 4;
-       if (len == 0) {
-               return;
-       }
-       r = x[1] >> count;
-       for (u = 2; u <= len; u ++) {
-               unsigned w;
-
-               w = x[u];
-               x[u - 1] = ((w << (15 - count)) | r) & 0x7FFF;
-               r = w >> count;
-       }
-       x[len] = r;
-}
-
-/* see inner.h */
-uint32_t
-br_i15_bit_length(uint16_t *x, size_t xlen)
-{
-       uint32_t tw, twk;
-
-       tw = 0;
-       twk = 0;
-       while (xlen -- > 0) {
-               uint32_t w, c;
-
-               c = EQ(tw, 0);
-               w = x[xlen];
-               tw = MUX(c, w, tw);
-               twk = MUX(c, (uint32_t)xlen, twk);
-       }
-       return (twk << 4) + BIT_LENGTH(tw);
-}
-
-/* see inner.h */
-void
-br_i15_decode(uint16_t *x, const void *src, size_t len)
-{
-       const unsigned char *buf;
-       size_t v;
-       uint32_t acc;
-       int acc_len;
-
-       buf = src;
-       v = 1;
-       acc = 0;
-       acc_len = 0;
-       while (len -- > 0) {
-               uint32_t b;
-
-               b = buf[len];
-               acc |= (b << acc_len);
-               acc_len += 8;
-               if (acc_len >= 15) {
-                       x[v ++] = acc & 0x7FFF;
-                       acc_len -= 15;
-                       acc >>= 15;
-               }
-       }
-       if (acc_len != 0) {
-               x[v ++] = acc;
-       }
-       x[0] = br_i15_bit_length(x + 1, v - 1);
-}
-
 /* see inner.h */
 void
 br_i15_from_monty(uint16_t *x, const uint16_t *m, uint16_t m0i)
 /* see inner.h */
 void
 br_i15_from_monty(uint16_t *x, const uint16_t *m, uint16_t m0i)