27
27
#include "crys_ecpki_domain.h"
28
28
#include "crys_ec_edw_api.h"
29
29
#include "mbedtls/platform.h"
30
+ #include "mbedtls/platform_util.h"
30
31
#include "cc_internal.h"
31
32
32
- /* Implementation that should never be optimized out by the compiler */
33
- static void mbedtls_zeroize ( void * v , size_t n ) {
34
- volatile unsigned char * p = (unsigned char * )v ;
35
- while ( n -- ) * p ++ = 0 ;
36
- }
37
-
38
33
static CRYS_ECPKI_HASH_OpMode_t message_size_to_hash_mode ( size_t blen )
39
34
{
40
35
CRYS_ECPKI_HASH_OpMode_t hash_mode ;
@@ -110,7 +105,7 @@ int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
110
105
if ( CrysRet != CRYS_OK )
111
106
{
112
107
ret = convert_CrysError_to_mbedtls_err ( CrysRet );
113
- mbedtls_zeroize ( temp_buf , sizeof (temp_buf ) );
108
+ mbedtls_platform_zeroize ( temp_buf , sizeof (temp_buf ) );
114
109
goto cleanup ;
115
110
}
116
111
@@ -123,7 +118,7 @@ int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
123
118
blen ,
124
119
pSignature ,
125
120
& signature_size );
126
- mbedtls_zeroize ( temp_buf , sizeof (temp_buf ) );
121
+ mbedtls_platform_zeroize ( temp_buf , sizeof (temp_buf ) );
127
122
if ( CrysRet != CRYS_OK )
128
123
{
129
124
ret = convert_CrysError_to_mbedtls_err ( CrysRet );
@@ -145,13 +140,13 @@ int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
145
140
146
141
if ( pHeap )
147
142
{
148
- mbedtls_zeroize ( pHeap , heapSize );
143
+ mbedtls_platform_zeroize ( pHeap , heapSize );
149
144
mbedtls_free ( pHeap );
150
145
}
151
146
152
147
if ( pSignature )
153
148
{
154
- mbedtls_zeroize ( pSignature , signature_size_for_heap );
149
+ mbedtls_platform_zeroize ( pSignature , signature_size_for_heap );
155
150
mbedtls_free ( pSignature );
156
151
157
152
}
@@ -232,13 +227,13 @@ int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp,
232
227
233
228
if ( pHeap )
234
229
{
235
- mbedtls_zeroize ( pHeap , heapSize );
230
+ mbedtls_platform_zeroize ( pHeap , heapSize );
236
231
mbedtls_free ( pHeap );
237
232
}
238
233
239
234
if ( pSignature )
240
235
{
241
- mbedtls_zeroize ( pSignature , signature_size );
236
+ mbedtls_platform_zeroize ( pSignature , signature_size );
242
237
mbedtls_free ( pSignature );
243
238
244
239
}
@@ -301,12 +296,12 @@ int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
301
296
if ( CrysRet != CRYS_OK )
302
297
{
303
298
ret = convert_CrysError_to_mbedtls_err ( CrysRet );
304
- mbedtls_zeroize ( temp_buf , sizeof (temp_buf ) );
299
+ mbedtls_platform_zeroize ( temp_buf , sizeof (temp_buf ) );
305
300
goto cleanup ;
306
301
}
307
302
308
303
ret = mbedtls_mpi_read_binary ( & ctx -> d , temp_buf , (ctx -> grp .nbits + 7 )/8 );
309
- mbedtls_zeroize ( temp_buf , sizeof (temp_buf ) );
304
+ mbedtls_platform_zeroize ( temp_buf , sizeof (temp_buf ) );
310
305
if ( ret != 0 )
311
306
{
312
307
goto cleanup ;
@@ -319,7 +314,7 @@ int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
319
314
cleanup :
320
315
if ( pHeap )
321
316
{
322
- mbedtls_zeroize ( pHeap , heapSize );
317
+ mbedtls_platform_zeroize ( pHeap , heapSize );
323
318
mbedtls_free ( pHeap );
324
319
}
325
320
return ( ret );
0 commit comments