From c79acc0e083322d2769f18389cd37ef04d6982e6 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 12 Aug 2021 13:40:56 +0100 Subject: [PATCH] Fix length of output Vec for `SharedSecret::batch_to_affine` It was too long, and `group::Curve::batch_normalize` panics if its inputs are not the same length (which would be the case if a batch included an output with an invalid `ephemeral_key`). --- src/keys.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/keys.rs b/src/keys.rs index 4ed263a9..5ea66bd2 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -573,7 +573,7 @@ impl SharedSecret { .iter() .filter_map(|s| s.as_ref().map(|s| *(s.0))) .collect(); - let mut secrets_affine = vec![pallas::Affine::identity(); shared_secrets.len()]; + let mut secrets_affine = vec![pallas::Affine::identity(); secrets.len()]; group::Curve::batch_normalize(&secrets, &mut secrets_affine); secrets_affine }