Closed BasileiosKal closed 1 year ago
Updated the PR with the following
ABORT
(like in h2c). An operation will ABORT
if some of the Precoditions are not met. Any operation calling a function that ABORTed will also ABORT
.expand_message
ABORTs (which it may), hash_to_scalar
will also ABORT, so no need for checking explicitly its result (or require expand_len
to be defined in a way that will not cause expand_message
to fail, which may not always be possible).return INVALID
is used for errors in the Deserialization/Procedure (like getting an invalid signature or deserializing a malformed proof). A subroutine's INVALID result is explicitly handled by the calling operation.hash_to_scalar
and create_generators
to NOT check for 0, duplicates etc.IMO this gives the more readable result.
hash_to_scalar
removed the counter
create_generators
step 3, changed I2OSP(i, 4)
to I2OSP(i, 8)
("1." is because I removed the checks for 0 and "2." is to align the max number of messages with the max number of generators)
Ready for merge, subject to resolving the conflicts.
Implicitly handle errors form the utility sub-routines in the core operations + address point B from #246