cleanse.c 438 B

123456789101112131415161718
  1. #include <string.h>
  2. unsigned char cleanse_ctr = 0;
  3. void OPENSSL_cleanse(void *ptr, size_t len)
  4. {
  5. unsigned char *p = (unsigned char *) ptr;
  6. size_t loop = len;
  7. while(loop--)
  8. {
  9. *(p++) = cleanse_ctr;
  10. cleanse_ctr += (17 + (unsigned char)((int)p & 0xF));
  11. }
  12. if(memchr(ptr, cleanse_ctr, len))
  13. cleanse_ctr += 63;
  14. }