| /* BEGIN_HEADER */ |
| #include "mbedtls/base64.h" |
| /* END_HEADER */ |
| |
| /* BEGIN_DEPENDENCIES |
| * depends_on:MBEDTLS_BASE64_C |
| * END_DEPENDENCIES |
| */ |
| |
| /* BEGIN_CASE */ |
| void mbedtls_base64_encode( char *src_string, char *dst_string, int dst_buf_size, |
| int result ) |
| { |
| unsigned char src_str[1000]; |
| unsigned char dst_str[1000]; |
| size_t len = dst_buf_size; |
| |
| memset(src_str, 0x00, 1000); |
| memset(dst_str, 0x00, 1000); |
| |
| strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 ); |
| TEST_ASSERT( mbedtls_base64_encode( dst_str, &len, src_str, strlen( (char *) src_str ) ) == result ); |
| if( result == 0 ) |
| { |
| TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 ); |
| } |
| } |
| /* END_CASE */ |
| |
| /* BEGIN_CASE */ |
| void mbedtls_base64_decode( char *src_string, char *dst_string, int result ) |
| { |
| unsigned char src_str[1000]; |
| unsigned char dst_str[1000]; |
| size_t len = 1000; |
| int res; |
| |
| memset(src_str, 0x00, 1000); |
| memset(dst_str, 0x00, 1000); |
| |
| strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 ); |
| res = mbedtls_base64_decode( dst_str, &len, src_str, strlen( (char *) src_str ) ); |
| TEST_ASSERT( res == result ); |
| if( result == 0 ) |
| { |
| TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 ); |
| } |
| } |
| /* END_CASE */ |
| |
| /* BEGIN_CASE */ |
| void base64_encode_hex( char *src_hex, char *dst, int dst_buf_size, |
| int result ) |
| { |
| unsigned char *src = NULL, *res = NULL; |
| size_t len = dst_buf_size, src_len; |
| |
| src = unhexify_alloc( src_hex, &src_len ); |
| res = zero_alloc( dst_buf_size ); |
| |
| TEST_ASSERT( mbedtls_base64_encode( res, &len, src, src_len ) == result ); |
| if( result == 0 ) |
| { |
| TEST_ASSERT( len == strlen( dst ) ); |
| TEST_ASSERT( memcmp( dst, res, len ) == 0 ); |
| } |
| |
| exit: |
| mbedtls_free( src ); |
| mbedtls_free( res ); |
| } |
| /* END_CASE */ |
| |
| /* BEGIN_CASE */ |
| void base64_decode_hex( char *src, char *dst_hex, int dst_buf_size, |
| int result ) |
| { |
| unsigned char *dst = NULL, *res = NULL; |
| size_t len = dst_buf_size, dst_len; |
| |
| dst = unhexify_alloc( dst_hex, &dst_len ); |
| res = zero_alloc( dst_buf_size ); |
| |
| TEST_ASSERT( mbedtls_base64_decode( res, &len, (unsigned char *) src, |
| strlen( src ) ) == result ); |
| if( result == 0 ) |
| { |
| TEST_ASSERT( len == dst_len ); |
| TEST_ASSERT( memcmp( dst, res, len ) == 0 ); |
| } |
| |
| exit: |
| mbedtls_free( dst ); |
| mbedtls_free( res ); |
| } |
| /* END_CASE */ |
| |
| /* BEGIN_CASE */ |
| void base64_decode_hex_src( char *src_hex, char *dst_ref, int result ) |
| { |
| unsigned char dst[1000] = { 0 }; |
| unsigned char *src; |
| size_t src_len, len; |
| |
| src = unhexify_alloc( src_hex, &src_len ); |
| |
| len = sizeof( dst ); |
| TEST_ASSERT( mbedtls_base64_decode( dst, &len, src, src_len ) == result ); |
| if( result == 0 ) |
| { |
| TEST_ASSERT( len == strlen( dst_ref ) ); |
| TEST_ASSERT( memcmp( dst, dst_ref, len ) == 0 ); |
| } |
| |
| exit: |
| mbedtls_free( src ); |
| } |
| /* END_CASE */ |
| |
| /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ |
| void base64_selftest() |
| { |
| TEST_ASSERT( mbedtls_base64_self_test( 0 ) == 0 ); |
| } |
| /* END_CASE */ |