summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/old/info
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/bn/old/info')
-rw-r--r--src/lib/libcrypto/bn/old/info22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/libcrypto/bn/old/info b/src/lib/libcrypto/bn/old/info
new file mode 100644
index 0000000000..5ac99c3b23
--- /dev/null
+++ b/src/lib/libcrypto/bn/old/info
@@ -0,0 +1,22 @@
1Given A1A0 * B1B0 == S3S2S1S0
2
3S0= low(A0*B0)
4S1= low( (A1-A0)*(B0-B1)) +low( A1*B1) +high(A0*B0)
5S2= high((A1-A0)*(B0-B1)) +high(A1*B1) +low( A1*B1)
6S3= high(A1*B1);
7
8Assume we know S1 and S0, and can calulate A1*B1 and high((A1-A0)*(B0-B1))
9
10k0= S0 == low(A0*B0)
11k1= S1
12k2= low( A1*B1)
13k3= high(A1*B1)
14k4= high((A1-A0)*(B0-B1))
15
16k1= low((A1-A0)*(B0-B1)) +k2 +high(A0*B0)
17S2= k4 +k3 +k2
18S3= k3
19
20S1-k2= low((A1-A0)*(B0-B1)) +high(A0*B0)
21
22We potentially have a carry or a borrow from S1