portable method to zeroize memory when destroying a mpz number

Vicente Benjumea vicente at lcc.uma.es
Thu Mar 20 13:42:11 UTC 2014


Hi,

when implementing public key cryptography algorithms, it would be nice
to have a portable method to zeroize (reset to zero) the memory that
holds the big-number bits before being destroyed, specially for private
keys.

For example, something similar to:

void
mpz_clear_zeroize (mpz_ptr m)
{
  if (PTR (m) != NULL) {
    memset(PTR (m), 0, ALLOC (m) * BYTES_PER_MP_LIMB);
  }
  (*__gmp_free_func) (PTR (m), ALLOC (m) * BYTES_PER_MP_LIMB);
  ALLOC (m) = 0;
  PTR (m) = 0;
  SIZ (m) = 0;
}

if this method appears in the public interface of GMP (mpz), then it can
be safely used even if the current internal implementation changes.

Thank you very much
Vicente




More information about the gmp-discuss mailing list