|  | /* BEGIN_HEADER */ | 
|  | #include <polarssl/ssl.h> | 
|  | /* END_HEADER */ | 
|  |  | 
|  | /* BEGIN_DEPENDENCIES | 
|  | * depends_on:POLARSSL_SSL_TLS_C | 
|  | * END_DEPENDENCIES | 
|  | */ | 
|  |  | 
|  | /* BEGIN_CASE depends_on:POLARSSL_SSL_DTLS_ANTI_REPLAY */ | 
|  | void ssl_dtls_replay( char *prevs, char *new, int ret ) | 
|  | { | 
|  | ssl_context ssl; | 
|  | char *end_prevs = prevs + strlen( prevs ) + 1; | 
|  |  | 
|  | TEST_ASSERT( ssl_init( &ssl ) == 0 ); | 
|  | TEST_ASSERT( ssl_set_transport( &ssl, SSL_TRANSPORT_DATAGRAM ) == 0 ); | 
|  |  | 
|  | /* Read previous record numbers */ | 
|  | for( ; end_prevs - prevs >= 13; prevs += 13 ) | 
|  | { | 
|  | prevs[12] = '\0'; | 
|  | unhexify( ssl.in_ctr + 2, prevs ); | 
|  | ssl_dtls_replay_update( &ssl ); | 
|  | } | 
|  |  | 
|  | /* Check new number */ | 
|  | unhexify( ssl.in_ctr + 2, new ); | 
|  | TEST_ASSERT( ssl_dtls_replay_check( &ssl ) == ret ); | 
|  |  | 
|  | ssl_free( &ssl ); | 
|  | } | 
|  | /* END_CASE */ |