The original curve448 code was templated to allow for a 25519
implementation. We've just imported the 448 stuff - but a remnant of
the original templated approach remained. This just simplifies that.
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
(Merged from https://github.com/openssl/openssl/pull/5105)
static void clamp(uint8_t secret_scalar_ser[EDDSA_448_PRIVATE_BYTES])
{
- uint8_t hibit = (1 << 0) >> 1;
-
- /* Blarg */
secret_scalar_ser[0] &= -COFACTOR;
- if (hibit == 0) {
- secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 1] = 0;
- secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 2] |= 0x80;
- } else {
- secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 1] &= hibit - 1;
- secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 1] |= hibit;
- }
+ secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 1] = 0;
+ secret_scalar_ser[EDDSA_448_PRIVATE_BYTES - 2] |= 0x80;
}
static c448_error_t hash_init_with_dom(EVP_MD_CTX *hashctx, uint8_t prehashed,