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

feat: make sure random bytes are non-zero #135

Merged
merged 2 commits into from
Apr 25, 2024
Merged

Conversation

matthewkeil
Copy link
Member

@matthewkeil matthewkeil commented Apr 25, 2024

Caught an issue with verification

Ensure rand bytes are never all 0.

Was originally like this in the old blst

const rand = randomBytesNonZero(RAND_BYTES);

@matthewkeil matthewkeil requested a review from a team as a code owner April 25, 2024 08:10
Copy link

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 85851c9 Previous: - Ratio
PublicKey serialization 1.1600 us/op
PublicKey deserialize 22.501 us/op
PublicKey deserialize and validate - 1 keys 83.733 us/op
PublicKey deserialize and validate - 100 keys 8.3303 ms/op
PublicKey deserialize and validate - 10000 keys 831.04 ms/op
SecretKey.fromKeygen 3.5550 us/op
SecretKey serialization 1.1260 us/op
SecretKey deserialization 1.6380 us/op
SecretKey.toPublicKey 138.53 us/op
SecretKey.sign 532.29 us/op
Signature serialization 1.2990 us/op
Signature deserialize 44.310 us/op
Signatures deserialize and validate - 1 sets 121.02 us/op
Signatures deserialize and validate - 100 sets 12.023 ms/op
Signatures deserialize and validate - 10000 sets 1.1988 s/op
aggregatePublicKeys - 1 sets 2.4970 us/op
aggregatePublicKeys - 8 sets 10.604 us/op
aggregatePublicKeys - 32 sets 38.592 us/op
aggregatePublicKeys - 128 sets 149.04 us/op
aggregatePublicKeys - 256 sets 299.24 us/op
aggregateSignatures - 1 sets 4.2330 us/op
aggregateSignatures - 8 sets 24.161 us/op
aggregateSignatures - 32 sets 91.528 us/op
aggregateSignatures - 128 sets 362.10 us/op
aggregateSignatures - 256 sets 730.11 us/op
aggregateVerify - 1 sets 1.5905 ms/op
aggregateVerify - 8 sets 5.7645 ms/op
aggregateVerify - 32 sets 20.472 ms/op
aggregateVerify - 128 sets 79.173 ms/op
aggregateVerify - 256 sets 157.81 ms/op
verifyMultipleAggregateSignatures - 1 sets 1.6445 ms/op
verifyMultipleAggregateSignatures - 8 sets 6.1784 ms/op
verifyMultipleAggregateSignatures - 32 sets 22.107 ms/op
verifyMultipleAggregateSignatures - 128 sets 85.978 ms/op
verifyMultipleAggregateSignatures - 256 sets 170.94 ms/op
Same message - 1 sets 1.7178 ms/op
Same message - 8 sets 2.5895 ms/op
Same message - 32 sets 5.5460 ms/op
Same message - 128 sets 17.380 ms/op
Same message - 256 sets 33.296 ms/op
libuv multithreading - addVerificationRandomness true 20.624 s/op
libuv multithreading - addVerificationRandomness false 20.666 s/op

by benchmarkbot/action

@matthewkeil matthewkeil merged commit 3d6d015 into master Apr 25, 2024
23 checks passed
@wemeetagain wemeetagain deleted the mkeil/non-zero-bytes branch July 22, 2024 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants