tree checksum vpatch file split hunks

all signers: bvt diana_coman asciilifeform

antecedents: ffa_ch16_miller_rabin.kv ffa_ch20d_litmus_nested_fix.kv ffa_ch21a_bis_fix_ch15_gcd.kv

press order:

ffa_ch1_genesis.kvasciilifeform bvt diana_coman
ffa_ch2_logicals.kvasciilifeform bvt diana_coman
ffa_ch3_shifts.kvasciilifeform bvt diana_coman
ffa_ch4_ffacalc.kvasciilifeform bvt diana_coman
ffa_ch5_egypt.kvasciilifeform bvt diana_coman
ffa_ch6_simplest_rsa.kvasciilifeform bvt diana_coman
ffa_ch7_turbo_egyptians.kvasciilifeform bvt diana_coman
ffa_ch8_randomism.kvasciilifeform bvt diana_coman
ffa_ch9_exodus.kvasciilifeform bvt diana_coman
ffa_ch10_karatsuba.kvasciilifeform bvt diana_coman
ffa_ch11_tuning_and_api.kvasciilifeform bvt diana_coman
ffa_ch12_karatsuba_redux.kvasciilifeform diana_coman
ffa_w_borrow_expr.kvasciilifeform diana_coman
ffa_ch13_measure_and_qshifts.kvasciilifeform diana_coman
ffa_ch14_barrett.kvasciilifeform diana_coman
ffa_ch15_gcd.kvasciilifeform diana_coman
ffa_ch16_miller_rabin.kvasciilifeform diana_coman
ffa_ch17_peh.kvasciilifeform diana_coman
ffa_ch18_subroutines.kvasciilifeform diana_coman
ffa_ch19_peh_tuning_and_demos.kvasciilifeform diana_coman
ffa_ch20_litmus.kvasciilifeform
ffa_ch20b_litmus_legacy_hashes.kvasciilifeform
ffa_ch20c_litmus_clearsigned.kvasciilifeform
ffa_ch20d_litmus_nested_fix.kvasciilifeform
ffa_ch21a_bis_fix_ch15_gcd.kvasciilifeform
ffa_ch21a_ter_ch14_ch20_errata.kvasciilifeform

patch:

- D4399061359144B2040DBB4CB55E906423FB89666279365C37897A6EA67323C03187EA14CF2FD60635EADF30EF454B122727AAD4C2EE3CD1593FBA90134FCEF3
+ FC1BDEA6EE6BF8BB8C53A2012690CF585F482216A44FC7E0AAAD542064A9F1B0C9F6F060CB539DDA8B54759544A7F12AA87AC46121628A02EB3A43711741CB17
ffa/MANIFEST.TXT
(23 . 3)(23 . 4)
5 612395 ffa_ch20c_litmus_clearsigned "Support for 'clearsigned' GPG texts in Litmus."
6 612828 ffa_ch20d_litmus_nested_fix "Fix for bug where nested 'clearsigned' sigs were rejected."
7 629424 ffa_ch21a_bis_fix_ch15_gcd "Fix for lethal flaw in Ch.15's Greatest Common Divisor."
8 659788 ffa_ch21a_ter_ch14_ch20_errata "Fix for false alarm in Ch.14; Removal of two mutually-canceling bugs in Litmus."
- A6F142145B954FC7938DF34435542376D3D7D2609AEC6B7367AD49414E3730960EC4E213B6AA0EDE2C8A4714F44224970738C8DA938B6C1AE426188491F22C06
+ F0D41124D72A3B364F70EA8DD1F9A434230F9BA965C89C3C48DD78071D7AC59C68BA407EF4818F326339BCE5A3261C5BA10B8DE8612E7C0778513B928E681988
ffa/contrib/litmus/litmus.sh
(42 . 6)(42 . 13)
13 # All Other Cases:
14 RET_EGGOG=-1
15
16 # Verify that all of the necessary external programs in fact exist:
17 for i in $EXTERNALS
18 do
19 command -v $i >/dev/null && continue || \
20 { echo "$i is required but was not found! Please install it." >&2 ; \
21 exit $RET_EGGOG; }
22 done
23
24 # Terminations:
25
(216 . 14)(223 . 6)
27 exit $RET_EGGOG
28 fi
29
30 # Verify that all of the necessary external programs in fact exist:
31 for i in $EXTERNALS
32 do
33 command -v $i >/dev/null && continue || \
34 { echo "$i is required but was not found! Please install it." >&2 ; \
35 exit $RET_EGGOG; }
36 done
37
38 # 'ASCII-Armoured' PGP signatures have mandatory start and end markers:
39 START_MARKER="^\-\-\-\-\-BEGIN PGP SIGNATURE\-\-\-\-\-"
40 END_MARKER="^\-\-\-\-\-END PGP SIGNATURE\-\-\-\-\-"
(458 . 6)(457 . 7)
42 # Calculate length (bytes) of the ASN turd for the digest used in the sig:
43 ASN_LEN=$((${#ASN} / 2))
44
45 # Read the hashed and unhashed sections :
46
47 # Hashed Section Length
48 get_sig_bytes 2
(471 . 7)(471 . 7)
50 sig_hashed=$r
51
52 # Unhashed Section Length
53 get_sig_bytes 1
54 get_sig_bytes 2
55 hex_to_int
56 sig_unhashed_len=$r
57
(491 . 16)(491 . 7)
59 # Convert to upper case
60 hash=$(echo $hash | tr 'a-z' 'A-Z')
61
62 # Parse the RSA Signature portion of the Sig file:
63
64 # RSA Packet Length (how many bytes to read)
65 get_sig_bytes 1
66 hex_to_int
67 rsa_packet_len=$r
68
69 # The RSA Packet itself
70 get_sig_bytes $rsa_packet_len
71 rsa_packet=$r
72 # Read and validate digest prefix :
73
74 # Digest Prefix (2 bytes)
75 get_sig_bytes 2
- 13553A8EAFBC60A349FB364BC26DB59B7C4E3A998DA325BD725D960A2F1E6F16C96BE9EB6C373B5307545B042AA7B37BB0E995C7008516FE7C4016ADE21AC524
+ F9F61342605D6250A2C2A2B1F6B4329B029D152CA25CE89CFFDDD62FA181B15F69045445FE3F8C199D232EB6712583BC991589EBAADD5621878FEFF6CFB227C7
ffa/libffa/ffa.ads
(45 . 7)(45 . 7)
80 --- Current 'deg. Kelvin' Version of FFA
81 ----------------------------------------------------------------------------
82
83 FFA_K_Version : constant Natural := 200;
84 FFA_K_Version : constant Natural := 199;
85
86 ----------------------------------------------------------------------------
87 --- Fundamental Types and Sizes
- BAEFDDB79033F5D5657EC6C1685BBD6EC468F41535215B0D88CACC9089BBBD0CE073352C8EBC287C81EAD2BE8A33972A0CE6BB4F3DFC19B0CD8A048121173ACE
+ E814458F807C46977A169A9F23E6BAA2577E33AFA4A367FE4D56C9096203C807904C2616CF15B7E791FBC049F7F6195C6F282C2536D56C66AC2088D2DE5DE1BF
ffa/libffa/fz_barr.adb
(247 . 9)(247 . 13)
92 -- Borrow from the gated subtractions
93 C : WBool;
94
95 -- Barring cosmic ray, no underflow can take place in (4) and (5)
96 -- Barring cosmic ray, no underflow can take place in (4)
97 NoCarry : WZeroOrDie := 0;
98
99 -- Borrow from Subtraction in (5) is meaningless, and is discarded
100 IgnoreC : WBool;
101 pragma Unreferenced(IgnoreC);
102
103 begin
104
105 -- Result is initially zero (and will stay zero if Modulus = 1)
(277 . 7)(281 . 7)
107
108 -- (5) R := X - Q (we only need Rl-sized segments of X and Q here)
109 FZ_Sub(X => X(1 .. Rl), Y => Q(1 .. Rl),
110 Difference => R, Underflow => NoCarry);
111 Difference => R, Underflow => IgnoreC); -- Borrow is discarded
112
113 -- (6) S1 := R - M, C1 := Borrow (1st gated subtraction of Modulus)
114 FZ_Sub(X => R, Y => Bar.ZXM, Difference => S, Underflow => C);