diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index e19294a65..18837c532 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -83,6 +83,36 @@ int verify_print( void *data, x509_crt *crt, int certificate_depth, int *flags ) return( 0 ); } #endif /* POLARSSL_X509_CRT_PARSE_C */ + +/* strsep() not available on Windows */ +char *mystrsep(char **stringp, const char *delim) +{ + const char *p; + char *ret = *stringp; + + if( *stringp == NULL ) + return( NULL ); + + for( ; ; (*stringp)++ ) + { + if( **stringp == '\0' ) + { + *stringp = NULL; + goto done; + } + + for( p = delim; *p != '\0'; p++ ) + if( **stringp == *p ) + { + **stringp = '\0'; + (*stringp)++; + goto done; + } + } + +done: + return( ret ); +} /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -457,7 +487,7 @@ void x509_crt_verify_chain( char *chain_paths, char *trusted_ca, int flags_resu x509_crt_init( &chain ); x509_crt_init( &trusted ); - while( ( act = strsep( &chain_paths, " " ) ) != NULL ) + while( ( act = mystrsep( &chain_paths, " " ) ) != NULL ) TEST_ASSERT( x509_crt_parse_file( &chain, act ) == 0 ); TEST_ASSERT( x509_crt_parse_file( &trusted, trusted_ca ) == 0 );