Skip to content

Commit 8c82507

Browse files
authored
Merge pull request #31 from itzmeanjan/bump-sha3-version
Bump Sha3 Version
2 parents eec746d + dfecbf8 commit 8c82507

8 files changed

+668
-1637
lines changed

.github/workflows/test_ci.yml

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,44 +20,30 @@ jobs:
2020
steps:
2121
- uses: actions/checkout@v4
2222

23-
- name: Setup Google Test
24-
uses: Bacondish2023/setup-googletest@v1
25-
with:
26-
tag: v1.15.2
27-
23+
- name: Setup Google-Test
24+
run: |
25+
pushd ~
26+
git clone https://github.com/google/googletest.git -b v1.16.0
27+
pushd googletest
28+
mkdir build
29+
pushd build
30+
cmake .. -DBUILD_GMOCK=OFF
31+
make
32+
sudo make install
33+
popd
34+
popd
35+
popd
2836
2937
- name: Build and Test (${{ matrix.compiler }}, ${{ matrix.build_type }}, ${{ matrix.test_type }})
3038
run: |
3139
CXX=${{ matrix.compiler }}
3240
if [[ ${{ matrix.test_type }} == "standard" ]]; then
33-
make test -j 2>&1 | tee build.log
41+
make test -j
3442
else
35-
make ${{ matrix.build_type }}_${{ matrix.test_type }}_test -j 2>&1 | tee build.log
43+
make ${{ matrix.build_type }}_${{ matrix.test_type }}_test -j
3644
fi
37-
if [ $? -ne 0 ]; then
38-
echo "Build or Test Failed! See build.log for details."
39-
exit 1
40-
fi
41-
42-
- name: Upload Build Log
43-
uses: actions/upload-artifact@v3
44-
with:
45-
name: build-log-${{ matrix.compiler }}-${{ matrix.build_type }}-${{ matrix.test_type }}
46-
path: build.log
47-
4845
4946
- name: Run Examples
5047
if: ${{ matrix.test_type == 'standard' && matrix.build_type == 'release' }}
5148
run: |
52-
CXX=${{ matrix.compiler }} make example -j 2>&1 | tee example.log
53-
if [ $? -ne 0 ]; then
54-
echo "Example execution Failed! See example.log for details."
55-
exit 1
56-
fi
57-
58-
- name: Upload Example Log (if failed)
59-
if: ${{ steps.Run_Examples.outcome != 'success' && matrix.test_type == 'standard' && matrix.build_type == 'release' }}
60-
uses: actions/upload-artifact@v3
61-
with:
62-
name: example-log-${{ matrix.compiler }}
63-
path: example.log
49+
CXX=${{ matrix.compiler }} make example -j

README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,14 @@ Verify | It takes a ML-DSA public key, N (>=0) -bytes message, an optional conte
1919

2020
Here I'm maintaining `ml-dsa` as a C++20 header-only `constexpr` library, implementing NIST FIPS 204 ML-DSA, supporting ML-DSA-{44, 65, 87} parameter sets, as defined in table 1 of ML-DSA standard. For more details on using this library, see [below](#usage). It shows following performance characteristics on desktop and server grade CPUs.
2121

22-
ML-DSA-65 Algorithm | Time taken on "12th Gen Intel(R) Core(TM) i7-1260P" | Time taken on "Raspberry Pi 4B" | Time taken on "AWS EC2 Instance c8g.large"
23-
--- | --: | --: | --:
24-
keygen | 94.4 us | 442.9 us | 143 us
25-
sign | 115.7 us | 2364.7 us | 427 us
26-
verify | 98.5 us | 492.1 us | 151 us
22+
ML-DSA-65 Algorithm | Time taken on "12th Gen Intel(R) Core(TM) i7-1260P" | Time taken on "AWS EC2 Instance c8g.large"
23+
--- | --: | --:
24+
keygen | 92.9 us | 126.2 us
25+
sign | 160.5 us | 231.7 us
26+
verify | 94.8 us | 134.4 us
27+
28+
> [!NOTE]
29+
> All numbers in the table above represent the median time required to execute a specific algorithm, except for signing. In the case of signing, the number represents the minimum time required to sign a 32B message. To understand why this is done for signing, please refer to [this](#benchmarking) section.
2730
2831
> [!NOTE]
2932
> Find ML-DSA standard @ https://doi.org/10.6028/NIST.FIPS.204, which you should refer to when understanding intricate details of this implementation.
@@ -113,16 +116,10 @@ make perf -j # If you have built google-benchmark library with libPFM supp
113116
> Ensure you've put all CPU cores on **performance** mode, before running benchmarks, follow guide @ https://github.com/google/benchmark/blob/main/docs/reducing_variance.md.
114117
115118
### On 12th Gen Intel(R) Core(TM) i7-1260P
116-
117-
Benchmark result in JSON format @ [bench_result_on_Linux_6.11.0-9-generic_x86_64_with_g++_14.json](./bench_result_on_Linux_6.11.0-9-generic_x86_64_with_g++_14.json).
118-
119-
### On Raspberry Pi 4B
120-
121-
Benchmark result in JSON format @ [bench_result_on_Linux_6.6.51+rpt-rpi-v8_aarch64_with_g++_12.json](./bench_result_on_Linux_6.6.51+rpt-rpi-v8_aarch64_with_g++_12.json).
119+
Benchmark result in JSON format @ [bench_result_on_Linux_6.11.0-19-generic_x86_64_with_g++_14.json](./bench_result_on_Linux_6.11.0-19-generic_x86_64_with_g++_14.json).
122120

123121
### On AWS EC2 Instance `c8g.large` i.e. AWS Graviton4
124-
125-
Benchmark result in JSON format @ [bench_result_on_Linux_6.8.0-1016-aws_aarch64_with_g++_13.json](./bench_result_on_Linux_6.8.0-1016-aws_aarch64_with_g++_13.json).
122+
Benchmark result in JSON format @ [bench_result_on_Linux_6.8.0-1021-aws_aarch64_with_g++_13.json](./bench_result_on_Linux_6.8.0-1021-aws_aarch64_with_g++_13.json).
126123

127124
More about this EC2 instance @ https://aws.amazon.com/ec2/instance-types/c8g.
128125

0 commit comments

Comments
 (0)