Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

s2n-bignum update 2024-12-05 #2037

Closed
wants to merge 595 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
595 commits
Select commit Hold shift + click to select a range
49e8793
Merge pull request #65 from aqjune/sim-ci
jargh Jun 30, 2023
83b3b41
Merge branch 'awslabs:main' into main
jargh Jul 10, 2023
6cfb46b
Fix up extra proofs with MAYCHANGE_REGS_AND_FLAGS_PERMITTED_BY_ABI
jargh Jul 11, 2023
12001ba
Add SMULH to ARM model
jargh Jul 14, 2023
89be3de
Clean up handling of 32-bit operations in x86 model
jargh Jul 18, 2023
3750058
Avoid using assembler macros and rename labels in the functions for RSA
aqjune-aws Jul 22, 2023
ea341f6
Merge pull request #71 from aqjune-aws/fips
jargh Jul 24, 2023
1584fa3
Add support for UZP2, XTN
aqjune-aws Jun 27, 2023
f170040
Merge pull request #72 from aqjune-aws/uzp2xtn
jargh Jul 26, 2023
d185d63
Merge branch 'awslabs:main' into main
jargh Jul 26, 2023
5e9277b
Add divstep-based modular inverse for curve25519 prime
jargh Jul 27, 2023
36a214d
Add NEON versions of functions for RSA 2048 and 4096
aqjune May 24, 2023
ec076f9
Merge pull request #73 from aqjune/rsa-neon2
jargh Jul 27, 2023
b48ab18
Add s2n-bignum-x86-sematests build project to CI
aqjune-aws Jul 27, 2023
04f64a0
Merge branch 'awslabs:main' into main
jargh Jul 27, 2023
5a9aea7
Merge pull request #74 from aqjune-aws/x86-sematest
jargh Jul 27, 2023
7471046
Adding support for platform specific conversions
kwancarl Jul 4, 2023
047e403
Merge branch 'awslabs:main' into main
jargh Jul 28, 2023
e6024ae
Merge pull request #70 from kwancarl/main
jargh Jul 29, 2023
c7dbd1f
Merge branch 'awslabs:main' into main
jargh Jul 29, 2023
56d91fe
Make bignum_emontredc_8n's spec equal to its neon version
aqjune-aws Jul 31, 2023
7b3d7ff
Merge pull request #76 from aqjune-aws/refactor
jargh Aug 15, 2023
b794965
Upload x86 simulator and link it to s2n-bignum-x86-sematests
aqjune-aws Aug 1, 2023
08c5568
Merge pull request #77 from aqjune-aws/x86sematests
jargh Aug 16, 2023
367283c
Merge branch 'awslabs:main' into main
jargh Aug 16, 2023
d445f5e
Add curve25519 / edwards25519 group order modulus
jargh Aug 26, 2023
0844746
Add curve25519 / edwards25519 basepoint order modulus
jargh Aug 29, 2023
1d01537
Add two ARM instructions and add print_log flags
aqjune-aws Sep 8, 2023
20ad76e
Merge pull request #79 from aqjune-aws/tablelookup-updatesplit
jargh Sep 12, 2023
b2bf71c
Merge branch 'awslabs:main' into main
jargh Sep 12, 2023
f1ad23c
Add bignum_copy_row_from_table and its Neon-variants for AArch64
aqjune-aws Aug 28, 2023
50aa85b
Merge pull request #81 from aqjune-aws/tablelookup
jargh Sep 16, 2023
74d34c3
Merge branch 'awslabs:main' into main
jargh Sep 16, 2023
c95c470
Improve `ORTHOGONAL_COMPONENTS_BYTES64_TAC` for Arm's `stp` with base…
aqjune-aws Sep 25, 2023
56eebbc
Add modular square root for curve25519 field
jargh Sep 26, 2023
e4b1d06
Add modular inverse square root for curve25519 field
jargh Sep 28, 2023
67430be
Add Ed25519 point compression encoding
jargh Oct 5, 2023
883b777
Merge pull request #84 from aqjune-aws/orthogonal
jargh Oct 11, 2023
b49b4f9
Merge branch 'awslabs:main' into main
jargh Oct 11, 2023
97f7493
Add Ed25519 point decoding function
jargh Oct 14, 2023
e23fd30
Add generic size curve25519/edwards25519 basepoint modulus
jargh Oct 18, 2023
13db58e
Let NONOVERLAPPING_TAC deal with more cases, improvements for speed
aqjune-aws Oct 13, 2023
7fc5883
Add multiply-add modulo the curve25519/edwards25519 basepoint order
jargh Oct 20, 2023
71602f8
Merge pull request #85 from aqjune-aws/valid
jargh Oct 20, 2023
2c8e273
Merge branch 'awslabs:main' into main
jargh Oct 20, 2023
d830e3c
Slightly optimize x86 version of bignum_inv_p25519
jargh Oct 21, 2023
5e11cba
Isolate re-usable core of bignum_inv_p25519 in the proof
jargh Oct 24, 2023
d87a828
Improve symbolic simulation efficiency via CLARIFY_TAC
jargh Oct 26, 2023
7a76569
Clean up implementation of CLARIFY_TAC
jargh Oct 27, 2023
777d574
Switch curve25519 operations to divstep-based modular inverse
jargh Oct 28, 2023
8d4c2e4
Document that x25519 function does not implement zero-check
torben-hansen Nov 1, 2023
5c4b15a
Merge pull request #88 from torben-hansen/document_x25519_zero_check_no
jargh Nov 1, 2023
73ec55a
Merge branch 'awslabs:main' into main
jargh Nov 1, 2023
7e7b18e
Switch edwards25519 operations to divstep-based modular inverse
jargh Nov 2, 2023
03a969e
Force full constant-expression reduction in ARM simulator
jargh Nov 2, 2023
db8409d
Merge pull request #87 from jargh/main
jargh Nov 3, 2023
e1224c1
Add BFM, BIC, FCSEL, INS, SUB, TRN1, TRN2, USHR, ZIP2 to ARM model
jargh Nov 4, 2023
58a6bdf
Merge branch 'awslabs:main' into main
jargh Nov 4, 2023
f1caaf1
Merge pull request #90 from jargh/main
jargh Nov 6, 2023
2482ca7
Use vfree_in instead of free_in if valid
aqjune-aws Nov 1, 2023
a20acba
Update x86 simulator.ml to add the latest cases
aqjune-aws Nov 13, 2023
131756a
Merge pull request #89 from aqjune-aws/vfree_in
jargh Nov 14, 2023
d2759c4
Merge pull request #91 from aqjune-aws/x86sim
jargh Nov 14, 2023
df4f617
Slightly optimize slow-ARM field squaring for P-256, secp256k1 and SM2
jargh Nov 14, 2023
ccefa2a
Improve integer operation support in BOUNDER_RULE and BOUNDER_TAC
jargh Nov 14, 2023
e6ef86f
Avoid duplicate labels in ed25519 x86 implementation
torben-hansen Nov 15, 2023
f629458
Merge pull request #92 from torben-hansen/fix_duplicate_labels_ed25519
jargh Nov 16, 2023
c1fbdb5
Merge branch 'awslabs:main' into main
jargh Nov 16, 2023
cb13eb8
Add basic 64-bit SIMD loads and stores to ARM model
jargh Nov 16, 2023
06781d2
Merge pull request #94 from jargh/main
aqjune-aws Nov 17, 2023
286d596
Fix GNU-stacz typo
torben-hansen Nov 21, 2023
e57af82
Merge pull request #95 from torben-hansen/fix_stacz_typy
aqjune-aws Nov 22, 2023
75711e1
Replace static array qualifier with macro that maps to nothing if it …
torben-hansen Nov 22, 2023
9e60dfc
Merge pull request #98 from torben-hansen/fix_static_array_qualifier_…
aqjune-aws Nov 22, 2023
d93670d
Make parameter to ed25519 decode function const
torben-hansen Nov 27, 2023
4097178
Merge pull request #99 from torben-hansen/ed25519_decode_signature_in…
aqjune-aws Nov 28, 2023
76a8cf5
Print running times of proofs, factor out proof runner
aqjune-aws Jan 4, 2024
e21b2e7
Merge pull request #102 from aqjune-aws/ci-log-time2
aqjune-aws Jan 5, 2024
a987ef4
Add verified bignum_copy_row_from_table for x86
aqjune Dec 27, 2023
00611a1
Merge pull request #100 from aqjune-aws/tablelookup-x86
jargh Jan 9, 2024
48fb153
Allow MIT-0 license as well as Apache-2.0 and ISC (#104)
jargh Jan 23, 2024
5b5c41e
Fix decoding of MOVSXD in the x86 model
jargh Jan 31, 2024
fa20a60
Merge pull request #105 from jargh/main
jargh Feb 1, 2024
17c1380
Remove predefined instructions list from x86 cosimulator
aqjune-aws Feb 6, 2024
f68bdb8
Add Google GPG key to apt to resolve apt update error
aqjune-aws Feb 7, 2024
e6ab3bc
Merge pull request #107 from aqjune-aws/issue106
jargh Feb 8, 2024
d0d5219
Specify the behavior of bignum_inv_p25519 in degenerate cases
jargh Feb 8, 2024
b2e7f4c
Refine ARM ABI specifications for Q8-Q15
jargh Feb 8, 2024
516c849
Enable testing bignum_copy_row_from_table on x86
aqjune Feb 11, 2024
fc0b9bf
Switch non-alt ARM X25519 to unsaturated code following Lenngren
jargh Feb 9, 2024
f82da8f
Tweak attribution of SLOTHY work
jargh Feb 14, 2024
57eb68a
Merge pull request #108 from jargh/main
jargh Feb 15, 2024
26bfe44
Merge pull request #109 from aqjune-aws/table-benchmark
aqjune-aws Feb 15, 2024
031e4cb
Update test,benchmark to assume that arm has the Neon extension
aqjune-aws Feb 15, 2024
e9685d0
Merge pull request #110 from aqjune-aws/neontest
aqjune-aws Feb 22, 2024
e14394d
Tidy up Montgomery ladders
jargh Feb 22, 2024
6265957
Modify specification style for Weierstrass curve point operations
jargh Feb 23, 2024
9d9510d
Liberalize aliasing specifications for Weierstrass point doublings
jargh Feb 27, 2024
5f4d3a2
Save a few registers in ARM bignum_mul_p256k1
jargh Feb 29, 2024
3b4f73c
Update curve25519_x25519{_byte} to make AWS-LC's delocator work
aqjune-aws Mar 5, 2024
88324d8
Merge pull request #112 from aqjune-aws/fips25519
jargh Mar 6, 2024
303cf37
Merge branch 'awslabs:main' into main
jargh Mar 6, 2024
aa9d9a7
Remove one redundant instruction, tidy a few proofs with WORD_BLAST
jargh Mar 7, 2024
38c6501
Bifurcate microarchitectural variants of Weierstrass doublings
jargh Mar 8, 2024
bc7c5fe
Make `make proofs` fail early, use hol.sh
aqjune-aws Mar 15, 2024
0965149
Define program equivalence and rewrite `bignum_{mul,sqr}_8_16_neon` p…
aqjune-aws Nov 10, 2023
acbb18e
Merge pull request #113 from aqjune-aws/equiv-muls
jargh Mar 18, 2024
3293dff
Merge branch 'main' into ci-failearly
aqjune-aws Mar 18, 2024
787003f
Merge pull request #114 from aqjune-aws/ci-failearly
jargh Mar 21, 2024
298e538
Upgrade OCaml version to 4.14, fix an error in Arm simulator
aqjune-aws Mar 19, 2024
d7323e5
Check axioms at the end of run-proof.sh
aqjune-aws Mar 23, 2024
f71fed3
Merge pull request #116 from aqjune-aws/check_axioms
jargh Mar 26, 2024
b0edd62
Merge pull request #115 from aqjune-aws/ocaml4.14
jargh Mar 28, 2024
ff76e72
Merge branch 'awslabs:main' into main
jargh Mar 28, 2024
8c27977
Switch inlining to subroutines in non-alt ARM P-521 point doubling
jargh Apr 4, 2024
8ec370c
Merge pull request #117 from jargh/main
aqjune-aws Apr 4, 2024
00382f8
Update Codebuild to switch to Zarith, use num instead of Int
aqjune-aws Apr 4, 2024
d21d810
Merge pull request #119 from aqjune-aws/zarith
jargh Apr 5, 2024
2898583
Maintain a list of specification theorems and check against it
aqjune-aws Apr 11, 2024
91a2d19
Merge pull request #120 from aqjune-aws/spec-check
jargh Apr 17, 2024
0752997
Add bignum_mont{sqr,mul}_p256_neon for Arm
aqjune-aws Mar 13, 2024
f06ec79
Liberalize aliasing requirements for Weierstrass point additions
jargh Apr 20, 2024
0a3b3f3
Merge pull request #118 from aqjune-aws/equiv-muls2
jargh Apr 20, 2024
729a27e
Merge branch 'awslabs:main' into main
jargh Apr 20, 2024
72ccfda
Handle zero inputs in Weierstrass mixed additions
jargh Apr 25, 2024
4d49cc4
Avoid conditional move from memory in even/odd tests
jargh Apr 30, 2024
061ea51
Handle zero inputs in Weierstrass point additions
jargh Apr 30, 2024
acd4fd3
Bifurcate microarchitectural variants of Weierstrass point additions
jargh May 5, 2024
b9266e7
Merge pull request #123 from jargh/main
jargh May 8, 2024
d3a7b19
Add `bignum_mont{mul,sqr}_p384_neon`, speed improvements/refactoring …
aqjune-aws Apr 26, 2024
cbef866
Merge pull request #122 from aqjune-aws/equiv-p384
jargh May 10, 2024
80ceb1f
Use make switch to set up environment
aqjune-aws May 13, 2024
b1e8e29
Merge pull request #125 from aqjune-aws/makeswitch
jargh May 20, 2024
d192114
Mention which tool s2n-bignum relies on to check proofs
aqjune-aws May 13, 2024
3dabdbd
Merge pull request #124 from aqjune-aws/readme
jargh Jun 4, 2024
a000155
Add `needs "{arm,x86}/proofs/base.ml"` to proofs
aqjune-aws May 27, 2024
b05de4d
Merge pull request #126 from aqjune-aws/addbase
jargh Jun 4, 2024
b0cde4b
Add custom modular inverse for P-256 prime
jargh Jun 13, 2024
86a6c7f
Add new P-256 modular inverses to specifications list.
jargh Jun 13, 2024
1ce4dd8
Merge pull request #128 from jargh/main
aqjune-aws Jun 13, 2024
6808659
Add alternative vector forms to ARM allowed instructions list
jargh Jun 13, 2024
6c8fa63
Remove linear scan of decoded instruction in symbolic execution tactics
aqjune-aws Jun 12, 2024
94db339
Merge pull request #127 from aqjune-aws/faster_decode
aqjune-aws Jun 15, 2024
65f046e
Add `bignum_mont{sqr,mul}_p521_neon`
aqjune-aws Jun 6, 2024
e6ac9bd
Merge pull request #129 from aqjune-aws/equiv-p521
aqjune-aws Jun 20, 2024
e600752
Merge branch 'awslabs:main' into main
jargh Jun 20, 2024
02df8e4
Add `bignum_{sqr,mul}_p521_neon`
aqjune-aws Jun 20, 2024
b559a56
Merge pull request #130 from aqjune-aws/equiv-p521_2
aqjune-aws Jun 26, 2024
96086bb
Merge branch 'awslabs:main' into main
jargh Jun 26, 2024
f218286
Optimize ARM bignum_montmul_p256_alt
jargh Jun 29, 2024
627607f
Copy Montgomery multiplication optimization in ARM alt-form point ops
jargh Jun 30, 2024
57839c2
Refine nondegeneracy specifications for Jacobian point additions
jargh Jul 1, 2024
c08d6d2
Reshuffle field operations in P-256 point doublings
jargh Jul 6, 2024
eb5f774
Add P-256 general scalar multiplication operation
jargh Jul 10, 2024
f76651c
Readme: Add top-level paragraph about performance & assurance goals
hanno-becker Jul 11, 2024
af68a48
Merge pull request #132 from hanno-becker/readme_update
jargh Jul 12, 2024
2237fe8
Merge pull request #131 from jargh/main
jargh Jul 15, 2024
47771fa
Avoid using term_match for performance, do small refactoring to equiv…
aqjune-aws Jul 11, 2024
3b99505
Merge pull request #133 from aqjune-aws/term_match
aqjune-aws Jul 16, 2024
829a8ee
Make subroutine simulation tactic robust for write-free subroutines
jargh Jul 20, 2024
79605ab
Fix out-of-step AT&T version of x86 code for P-256 inversion
jargh Jul 25, 2024
b3c320c
Add P-256 precomputed point scalar multiplication operation
jargh Jul 25, 2024
37c69f1
Merge pull request #135 from jargh/main
jargh Aug 6, 2024
c07aee5
Add custom Montgomery inverse for P-256 prime
jargh Aug 6, 2024
6919315
Add global assumptions paragraph
aqjune-aws Aug 8, 2024
3d4b79e
Add hybrid `p256_montjadd/double` for Arm, slow multipliers
aqjune-aws Jul 26, 2024
aa7778d
Update Arm cosimulator to check that opcodes appear, add x86_att test…
aqjune-aws Aug 10, 2024
0a8a754
Add P-256 Montgomery-Jacobian scalar multiplication operation
jargh Aug 10, 2024
9639f32
Add word-level popcount operation
jargh Aug 12, 2024
d61796f
Merge pull request #138 from aqjune-aws/env
aqjune-aws Aug 12, 2024
3eb104f
Merge pull request #139 from aqjune-aws/ciupdates
aqjune-aws Aug 12, 2024
c6da080
Merge branch 'awslabs:main' into main
jargh Aug 12, 2024
7ff619c
Merge pull request #137 from aqjune-aws/p256-opt
aqjune-aws Aug 15, 2024
9824dd0
Merge branch 'awslabs:main' into main
jargh Aug 15, 2024
4451534
Update point operations in non-alt ARM p256_montjscalarmul
jargh Aug 16, 2024
2bbaf04
Add P-384 Montgomery-Jacobian scalar multiplication operation
jargh Aug 16, 2024
eacef33
Fix comment banner descriptions of p384_montjscalarmul argument sizes
jargh Aug 19, 2024
08bf556
Merge pull request #140 from jargh/main
jargh Aug 19, 2024
c97c521
Add custom modular inverse for P-384 prime
jargh Aug 21, 2024
95b4d64
Add custom Montgomery inverse for P-384 prime
jargh Aug 22, 2024
9aa8155
Make some new P-256 and P-384 functions delocator-proof
jargh Aug 23, 2024
4207da6
Make a few more tiny tweaks to satisfy the delocator
jargh Aug 23, 2024
4d86ede
Add missing specification file entry for Windows bignum_montinv_p384
jargh Aug 24, 2024
9019f26
Fix a few cut-and-paste errors in comments for new P-384 functions.
jargh Aug 29, 2024
d85c6b5
Merge pull request #144 from jargh/main
jargh Sep 16, 2024
0af76bc
Adopt the Arm SIMD-optimized p384 fields to point operations
aqjune-aws Aug 10, 2024
6248d16
Merge pull request #142 from aqjune-aws/p384-opt
jargh Sep 18, 2024
c241557
Add basic P-521 Jacobian coordinate scalar multiplication
jargh Sep 18, 2024
f22ee62
Merge arm Makefile changes
jargh Sep 18, 2024
11c5ef5
Add custom modular inverse for P-521 prime
jargh Sep 19, 2024
879457e
Refine the rewriting with current state in macro simulation
jargh Sep 21, 2024
54f11bf
Switch P-521 scalar multiplication from inlining to subroutines
jargh Sep 22, 2024
d5cf6fd
Add a newly used but unexercised iclass to the simulator
jargh Sep 23, 2024
6122bb8
Merge pull request #147 from jargh/main
jargh Sep 23, 2024
1f745d6
Update Arm `p521_jadd/jdouble` to use the neon field operations
aqjune-aws Aug 23, 2024
6a89082
Update p521_jscalarmul of arm to use the faster field operations
aqjune-aws Sep 27, 2024
f90f6d1
bignum_copy_row_from_table neon: correct head comment
ctz Sep 28, 2024
e205f0a
bignum_emontredc_8n_neon: fix typo in head comment
ctz Sep 28, 2024
c5f2bd5
bignum_mont{mul,sqr}_p256_alt: add mentioned mc parameter
ctz Sep 29, 2024
4bbd348
Merge pull request #145 from aqjune-aws/p521-opt
aqjune-aws Sep 30, 2024
b4eec0f
Merge pull request #149 from ctz/jbp-minor-fixes
aqjune-aws Sep 30, 2024
221812e
Add custom modular inverse for SM2 prime
jargh Oct 3, 2024
2859ee5
Add custom Montgomery inverse for SM2 prime
jargh Oct 4, 2024
6ed5a39
Hoist term/type parsings and remove unnecessary term_matchs and unuse…
aqjune-aws Oct 5, 2024
ec993c1
Reorder field operations in SM2 point doublings
jargh Oct 7, 2024
0f88701
Merge pull request #150 from aqjune-aws/proofopt
jargh Oct 8, 2024
555a101
Merge branch 'awslabs:main' into main
jargh Oct 8, 2024
6194075
Minor fixes to support native compilation
aqjune-aws Oct 9, 2024
a7a4f77
Add SM2 Montgomery-Jacobian scalar multiplication operation
jargh Oct 10, 2024
cab24fc
Merge pull request #151 from aqjune-aws/natcomp
jargh Oct 10, 2024
47b53b9
Merge branch 'awslabs:main' into main
jargh Oct 10, 2024
caaa042
Merge pull request #152 from jargh/main
jargh Oct 11, 2024
2722292
Bump Ocaml version to 5.2 by using make switch-5
aqjune-aws Oct 12, 2024
d4fe93d
Reduce codebuild proofs core number because OCaml5 hits max memory
aqjune-aws Oct 13, 2024
4d00271
Merge pull request #153 from aqjune-aws/ocaml5
aqjune-aws Oct 14, 2024
45b0df9
Make BOUNDER_RULE and BOUNDER_TAC handle 2s-complement integer ival
jargh Oct 23, 2024
0ec642a
Generalize handling of ARM dup instruction
jargh Nov 5, 2024
1e92d5d
Check usage of the x18 register in Arm
aqjune-aws Nov 5, 2024
91fc4ec
Add further SIMD load/store variants to the ARM decoder
jargh Nov 6, 2024
3547232
Add SIMD multiplication by a single element to the ARM model
jargh Nov 7, 2024
d32508b
Add SIMD signed saturating doubling high multiplication to ARM model
jargh Nov 8, 2024
2d3ea07
Add SIMD instructions MLS, SRSHR and SSHR to the ARM model
jargh Nov 8, 2024
c92f1b2
Fix HOL Light commit hash to explicitly state which version was used
aqjune-aws Nov 6, 2024
7928c07
Merge pull request #157 from aqjune-aws/fix-commit
jargh Nov 9, 2024
a9046c9
Merge branch 'awslabs:main' into main
jargh Nov 9, 2024
efa579c
Merge pull request #158 from jargh/main
aqjune-aws Nov 11, 2024
5d2557f
Merge branch 'main' into arm-no-x18
aqjune-aws Nov 11, 2024
013949a
Add '-' at the end of line, remove the obj file
aqjune-aws Nov 12, 2024
8f2d5ba
Use native OCaml compiler to build & run proofs
aqjune-aws Nov 12, 2024
3a80293
Merge pull request #156 from aqjune-aws/arm-no-x18
aqjune-aws Nov 12, 2024
ec5bdae
Merge branch 'main' into compile
aqjune-aws Nov 12, 2024
c9c0b6a
tools: redirect the results of cd to /dev/null
aqjune-aws Nov 14, 2024
b26b8da
Merge pull request #159 from aqjune-aws/compile
aqjune-aws Nov 14, 2024
24a288a
Avoid underflow of negative constant immediates in load/stores
aqjune-aws Nov 18, 2024
715265f
Merge pull request #160 from aqjune-aws/nonegofs
jargh Nov 21, 2024
6ba5430
Update NONOVERLAPPING_TAC to successfully process subtractions
aqjune-aws Nov 22, 2024
62707fd
Use Compute to evaluate Arm's decode function
aqjune-aws Nov 22, 2024
6b47abe
Merge pull request #163 from aqjune-aws/decode
jargh Nov 25, 2024
839457e
Merge branch 'main' into nonoverlapping_sub
aqjune-aws Nov 26, 2024
6cc9096
Enable SHA512 intrinsics from Arm simulator
aqjune-aws Nov 26, 2024
440e006
Add missing QLANE rule to Arm decoder, fix error check in run-semates…
aqjune-aws Nov 26, 2024
8bdeb97
Merge pull request #166 from aqjune-aws/sha512
jargh Nov 27, 2024
d35a6cd
Adding instructions for SHA3 (#165)
pennyannn Nov 27, 2024
69fb86a
Merge pull request #162 from aqjune-aws/nonoverlapping_sub
jargh Nov 28, 2024
f91afba
Compile simulators for speed
aqjune-aws Dec 2, 2024
57953c2
Merge pull request #168 from aqjune-aws/nativesim
jargh Dec 4, 2024
3b81be6
Add tutorial for Arm
aqjune-aws Dec 3, 2024
aca320c
Do not check GPG when doing apt update
aqjune-aws Dec 4, 2024
44b2c9d
Merge pull request #169 from aqjune-aws/tutorial
jargh Dec 5, 2024
0228057
Merge branch 's2n-bignum-2024-12-05' into aws-lc-s2n-bignum-update-20…
Dec 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions third_party/s2n-bignum/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.ml linguist-language=OCaml
11 changes: 11 additions & 0 deletions third_party/s2n-bignum/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
*.a
*.correct
*.native
*.o
*.obj
.vscode
tests/test
tests/ctCheck
benchmarks/benchmark
x86/x86-insns.ml
arm/simulator_iclasses_log.txt
4 changes: 4 additions & 0 deletions third_party/s2n-bignum/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.
59 changes: 59 additions & 0 deletions third_party/s2n-bignum/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Contributing Guidelines

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
information to effectively respond to your bug report or contribution.


## Reporting Bugs/Feature Requests

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

* A reproducible test case or series of steps
* The version of our code being used
* Any modifications you've made relevant to the bug
* Anything unusual about your environment or deployment


## Contributing via Pull Requests
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the *main* branch.
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.

To send us a pull request, please:

1. Fork the repository.
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
3. Ensure local tests pass.
4. Commit to your fork using clear commit messages.
5. Send us a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).


## Finding contributions to work on
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.


## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.


## Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.


## Licensing

See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
222 changes: 222 additions & 0 deletions third_party/s2n-bignum/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
SPDX-License-Identifier: Apache-2.0 OR ISC or MIT-0


Apache 2.0 license
-------------------------------------


Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS


ISC license
-------------------------------------

Copyright Amazon.com, Inc. or its affiliates.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


MIT-0 license
-------------------------------------

Copyright 2021-2024 Amazon.com, Inc. or its affiliates.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
1 change: 1 addition & 0 deletions third_party/s2n-bignum/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
Loading
Loading