I wouldn't have thought so no. The more garbage that gets written the
better, provided it gets written to the right place that is.
Correct, there is no reason to serialize OPENSSL_cleanse.
FWIW. There's a measurable performance increase reverting that to memset()
and adding tests to ensure that the compiler hasn't in fact optimized it
away.
Or one can optimize OPENSSL_cleanse, because the way it's written
prevents compiler from holding cleanse_ctr value in register. Tricking
compiler to allocate register for it improves performance of e.g. sha1
smallest block benchmark by 66% on my x86.
unsigned char cleanse_ctr = 0;
void OPENSSL_cleanse(void *ptr, size_t len)
{
unsigned char *p = ptr;
size_t loop = len, ctr = cleanse_ctr;
while(loop--)
{
*(p++) = (unsigned char)ctr;
ctr += (17 + ((size_t)p & 0xF));
}
if(memchr(ptr, (unsigned char)ctr, len))
ctr += (63 + (size_t)p);
cleanse_ctr = (unsigned char)ctr;
}
A.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]