Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion ed448-goldilocks/src/sign/verifying_key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -279,9 +279,14 @@ impl VerifyingKey {
return Err(SigningError::InvalidSignatureSComponent.into());
}

// RFC 8032 mandates context length <= 255 bytes. Enforce consistently with signing path.
if ctx.len() > 255 {
return Err(SigningError::PrehashedContextLength.into());
}

// SHAKE256(dom4(F, C) || R || A || PH(M), 114) -> scalar k
let mut bytes = WideEdwardsScalarBytes::default();
let ctx_len = ctx.len() as u8;
let ctx_len = u8::try_from(ctx.len()).map_err(|_| SigningError::PrehashedContextLength.into())?;
let mut reader = Shake256::default()
.chain(HASH_HEAD)
.chain([phflag])
Expand Down
Loading