projects
/
BearSSL
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some cleanups (removed unused files, split i15 code into per-function files).
[BearSSL]
/
src
/
int
/
i15_bitlen.c
diff --git
a/src/ec/ec_prime_i31_secp384r1.c
b/src/int/i15_bitlen.c
similarity index 66%
rename from
src/ec/ec_prime_i31_secp384r1.c
rename to
src/int/i15_bitlen.c
index
9f92b4f
..
ad74467
100644
(file)
--- a/
src/ec/ec_prime_i31_secp384r1.c
+++ b/
src/int/i15_bitlen.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (c) 201
6
Thomas Pornin <pornin@bolet.org>
+ * Copyright (c) 201
7
Thomas Pornin <pornin@bolet.org>
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
@@
-24,25
+24,21
@@
#include "inner.h"
#include "inner.h"
-static const uint32_t P384_P[] = {
- 0x0000018C,
- 0x7FFFFFFF, 0x00000001, 0x00000000, 0x7FFFFFF8,
- 0x7FFFFFEF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF,
- 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF,
- 0x00000FFF
-};
+/* see inner.h */
+uint32_t
+br_i15_bit_length(uint16_t *x, size_t xlen)
+{
+ uint32_t tw, twk;
-static const uint32_t P384_B[] = {
- 0x0000018C,
- 0x6E666840, 0x070D0392, 0x5D810231, 0x7651D50C,
- 0x17E218D6, 0x1B192002, 0x44EFE441, 0x3A524E2B,
- 0x2719BA5F, 0x41F02209, 0x36C5643E, 0x5813EFFE,
- 0x000008A5
-};
+ tw = 0;
+ twk = 0;
+ while (xlen -- > 0) {
+ uint32_t w, c;
-/* see inner.h */
-const br_ec_prime_i31_curve br_ec_prime_i31_secp384r1 = {
- P384_P,
- P384_B,
- 0x00000001
-};
+ 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);
+}