My main guideline is that the canonicalization process
does not undermine the meaning of the data.
I don't understand why preserving the "meaning" of the data is at all
relevant. The canonicalized form is, after all, a transient not intended to
be used in place of the true or original form at all. The true form remains
unchanged and only the signer/verifier consumes the canonicalized form and
surely it doesn't care at all what the "meaning" of the data is. So, I
don't understand why "meaning" must be preserved in the canonicalization
routine. As long as the signer and verifier agree on how the
canonicalization is performed it wouldn't matter even if we strrev'ed the
entire input would it?
--
Arvel