Function rejectNonCanonical [src]

Reject a scalar whose encoding is not canonical.

Prototype

pub fn rejectNonCanonical(s: CompressedScalar) NonCanonicalError!void

Parameters

s: CompressedScalar

Possible Errors

NonCanonical NonCanonicalError

Source

pub fn rejectNonCanonical(s: CompressedScalar) NonCanonicalError!void { var c: u8 = 0; var n: u8 = 1; var i: usize = 31; while (true) : (i -= 1) { const xs = @as(u16, s[i]); const xfield_order_s = @as(u16, field_order_s[i]); c |= @as(u8, @intCast(((xs -% xfield_order_s) >> 8) & n)); n &= @as(u8, @intCast(((xs ^ xfield_order_s) -% 1) >> 8)); if (i == 0) break; } if (c == 0) { return error.NonCanonical; } }