Changed every memcpy to SCA equivalent mbedtls_platform_memcpy
This makes physical attacks more difficult.
diff --git a/library/pem.c b/library/pem.c
index d554801..5e2fca9 100644
--- a/library/pem.c
+++ b/library/pem.c
@@ -103,11 +103,11 @@
if( keylen <= 16 )
{
- memcpy( key, md5sum, keylen );
+ mbedtls_platform_memcpy( key, md5sum, keylen );
goto exit;
}
- memcpy( key, md5sum, 16 );
+ mbedtls_platform_memcpy( key, md5sum, 16 );
/*
* key[16..23] = MD5(key[ 0..15] || pwd || IV])
@@ -127,7 +127,7 @@
if( keylen < 32 )
use_len = keylen - 16;
- memcpy( key + 16, md5sum, use_len );
+ mbedtls_platform_memcpy( key + 16, md5sum, use_len );
exit:
mbedtls_md5_free( &md5_ctx );
@@ -463,21 +463,21 @@
return( ret );
}
- memcpy( p, header, strlen( header ) );
+ mbedtls_platform_memcpy( p, header, strlen( header ) );
p += strlen( header );
c = encode_buf;
while( use_len )
{
len = ( use_len > 64 ) ? 64 : use_len;
- memcpy( p, c, len );
+ mbedtls_platform_memcpy( p, c, len );
use_len -= len;
p += len;
c += len;
*p++ = '\n';
}
- memcpy( p, footer, strlen( footer ) );
+ mbedtls_platform_memcpy( p, footer, strlen( footer ) );
p += strlen( footer );
*p++ = '\0';