| /* 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 */ |