Before this change, we had the signatures generated by v3.public be tested to be reproducible. Such that we given the same input could generate the same token. This is possible because we employ deterministic nonces.
New test vectors for v3.public have been issued (https://github.com/paseto-standard/test-vectors/releases/tag/v1.3.0) to only include low-S/normalized S. These test vectors we can't reproduce the tokens for, and thus that part of the tests have been removed. Justification of removal:
The spec doesn't require use of deterministic nonces, which pasetors uses, but encourages it: https://github.com/paseto-standard/paseto-spec/blob/master/docs/01-Protocol-Versions/Version3.md#sign This is what enabled us to perform the reproducebility tests in the first place. Since it isn't a requirement, we won't be incompatible with the spec when not testing for this (other impls cannot be expected to be deterministic for example).
Note: During tests with the new vectors and using elliptic-curve's provided normalize_s() internally for the signature, didn't reproduce either, suggesting maybe the new test vectors were generated non-deterministically or the normalization routine used in generation of them differed somehow.
closes #122
Before this change, we had the signatures generated by
v3.public
be tested to be reproducible. Such that we given the same input could generate the same token. This is possible because we employ deterministic nonces.New test vectors for
v3.public
have been issued (https://github.com/paseto-standard/test-vectors/releases/tag/v1.3.0) to only include low-S/normalized S. These test vectors we can't reproduce the tokens for, and thus that part of the tests have been removed. Justification of removal:pasetors
uses, but encourages it: https://github.com/paseto-standard/paseto-spec/blob/master/docs/01-Protocol-Versions/Version3.md#sign This is what enabled us to perform the reproducebility tests in the first place. Since it isn't a requirement, we won't be incompatible with the spec when not testing for this (other impls cannot be expected to be deterministic for example).v3.public
into consideration.Note: During tests with the new vectors and using
elliptic-curve
's providednormalize_s()
internally for the signature, didn't reproduce either, suggesting maybe the new test vectors were generated non-deterministically or the normalization routine used in generation of them differed somehow.