blob: 8fab5e4154a340c4156a65f5c7a7a5295283a075 [file] [log] [blame]
Paul Bakker33b43f12013-08-20 11:48:36 +02001/* BEGIN_HEADER */
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +00002#include "mbedtls/des.h"
Paul Bakker33b43f12013-08-20 11:48:36 +02003/* END_HEADER */
Paul Bakkere896fea2009-07-06 06:40:23 +00004
Paul Bakker33b43f12013-08-20 11:48:36 +02005/* BEGIN_DEPENDENCIES
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +02006 * depends_on:MBEDTLS_DES_C
Paul Bakker33b43f12013-08-20 11:48:36 +02007 * END_DEPENDENCIES
8 */
Paul Bakker5690efc2011-05-26 13:16:06 +00009
Paul Bakker33b43f12013-08-20 11:48:36 +020010/* BEGIN_CASE */
Azim Khand30ca132017-06-09 04:32:58 +010011void des_check_weak( HexParam_t * key, int ret )
Manuel Pégourié-Gonnard9ce7e842014-03-29 17:06:43 +010012{
Azim Khand30ca132017-06-09 04:32:58 +010013 TEST_ASSERT( mbedtls_des_key_check_weak( key->x ) == ret );
Manuel Pégourié-Gonnard9ce7e842014-03-29 17:06:43 +010014}
15/* END_CASE */
16
17/* BEGIN_CASE */
Azim Khand30ca132017-06-09 04:32:58 +010018void des_encrypt_ecb( HexParam_t * key_str, HexParam_t * src_str,
19 HexParam_t * hex_dst_string )
Paul Bakkere896fea2009-07-06 06:40:23 +000020{
Paul Bakkere896fea2009-07-06 06:40:23 +000021 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020022 mbedtls_des_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +000023
Paul Bakkere896fea2009-07-06 06:40:23 +000024 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020025 mbedtls_des_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000026
Paul Bakkere896fea2009-07-06 06:40:23 +000027
Azim Khand30ca132017-06-09 04:32:58 +010028 mbedtls_des_setkey_enc( &ctx, key_str->x );
29 TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +000030
Azim Khand30ca132017-06-09 04:32:58 +010031 TEST_ASSERT( hexcmp( output, hex_dst_string->x, 8, hex_dst_string->len ) == 0 );
Paul Bakker8cfd9d82014-06-18 11:16:11 +020032
Paul Bakkerbd51b262014-07-10 15:26:12 +020033exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020034 mbedtls_des_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000035}
Paul Bakker33b43f12013-08-20 11:48:36 +020036/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000037
Paul Bakker33b43f12013-08-20 11:48:36 +020038/* BEGIN_CASE */
Azim Khand30ca132017-06-09 04:32:58 +010039void des_decrypt_ecb( HexParam_t * key_str, HexParam_t * src_str,
40 HexParam_t * hex_dst_string )
Paul Bakkere896fea2009-07-06 06:40:23 +000041{
Paul Bakkere896fea2009-07-06 06:40:23 +000042 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020043 mbedtls_des_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +000044
Paul Bakkere896fea2009-07-06 06:40:23 +000045 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020046 mbedtls_des_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000047
Paul Bakkere896fea2009-07-06 06:40:23 +000048
Azim Khand30ca132017-06-09 04:32:58 +010049 mbedtls_des_setkey_dec( &ctx, key_str->x );
50 TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +000051
Azim Khand30ca132017-06-09 04:32:58 +010052 TEST_ASSERT( hexcmp( output, hex_dst_string->x, 8, hex_dst_string->len ) == 0 );
Paul Bakker8cfd9d82014-06-18 11:16:11 +020053
Paul Bakkerbd51b262014-07-10 15:26:12 +020054exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020055 mbedtls_des_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000056}
Paul Bakker33b43f12013-08-20 11:48:36 +020057/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000058
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020059/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Azim Khand30ca132017-06-09 04:32:58 +010060void des_encrypt_cbc( HexParam_t * key_str, HexParam_t * iv_str,
61 HexParam_t * src_str, HexParam_t * hex_dst_string,
Azim Khanf1aaec92017-05-30 14:23:15 +010062 int cbc_result )
Paul Bakkere896fea2009-07-06 06:40:23 +000063{
Paul Bakkere896fea2009-07-06 06:40:23 +000064 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020065 mbedtls_des_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +000066
Paul Bakkere896fea2009-07-06 06:40:23 +000067 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020068 mbedtls_des_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000069
Paul Bakkere896fea2009-07-06 06:40:23 +000070
Azim Khand30ca132017-06-09 04:32:58 +010071 mbedtls_des_setkey_enc( &ctx, key_str->x );
72 TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
Paul Bakker33b43f12013-08-20 11:48:36 +020073 if( cbc_result == 0 )
Paul Bakkerf3ccc682010-03-18 21:21:02 +000074 {
Paul Bakkere896fea2009-07-06 06:40:23 +000075
Azim Khand30ca132017-06-09 04:32:58 +010076 TEST_ASSERT( hexcmp( output, hex_dst_string->x, src_str->len, hex_dst_string->len ) == 0 );
Paul Bakkerf3ccc682010-03-18 21:21:02 +000077 }
Paul Bakker8cfd9d82014-06-18 11:16:11 +020078
Paul Bakkerbd51b262014-07-10 15:26:12 +020079exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020080 mbedtls_des_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000081}
Paul Bakker33b43f12013-08-20 11:48:36 +020082/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +000083
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020084/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Azim Khand30ca132017-06-09 04:32:58 +010085void des_decrypt_cbc( HexParam_t * key_str, HexParam_t * iv_str,
86 HexParam_t * src_str, HexParam_t * hex_dst_string,
Azim Khanf1aaec92017-05-30 14:23:15 +010087 int cbc_result )
Paul Bakkere896fea2009-07-06 06:40:23 +000088{
Paul Bakkere896fea2009-07-06 06:40:23 +000089 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020090 mbedtls_des_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +000091
Paul Bakkere896fea2009-07-06 06:40:23 +000092 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020093 mbedtls_des_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +000094
Paul Bakkere896fea2009-07-06 06:40:23 +000095
Azim Khand30ca132017-06-09 04:32:58 +010096 mbedtls_des_setkey_dec( &ctx, key_str->x );
97 TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
Paul Bakker33b43f12013-08-20 11:48:36 +020098 if( cbc_result == 0 )
Paul Bakkerf3ccc682010-03-18 21:21:02 +000099 {
Paul Bakkere896fea2009-07-06 06:40:23 +0000100
Azim Khand30ca132017-06-09 04:32:58 +0100101 TEST_ASSERT( hexcmp( output, hex_dst_string->x, src_str->len, hex_dst_string->len ) == 0 );
Paul Bakkerf3ccc682010-03-18 21:21:02 +0000102 }
Paul Bakker8cfd9d82014-06-18 11:16:11 +0200103
Paul Bakkerbd51b262014-07-10 15:26:12 +0200104exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200105 mbedtls_des_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000106}
Paul Bakker33b43f12013-08-20 11:48:36 +0200107/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000108
Paul Bakker33b43f12013-08-20 11:48:36 +0200109/* BEGIN_CASE */
Azim Khand30ca132017-06-09 04:32:58 +0100110void des3_encrypt_ecb( int key_count, HexParam_t * key_str,
111 HexParam_t * src_str, HexParam_t * hex_dst_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000112{
Paul Bakkere896fea2009-07-06 06:40:23 +0000113 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200114 mbedtls_des3_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000115
Paul Bakkere896fea2009-07-06 06:40:23 +0000116 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200117 mbedtls_des3_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000118
Paul Bakkere896fea2009-07-06 06:40:23 +0000119
Paul Bakker33b43f12013-08-20 11:48:36 +0200120 if( key_count == 2 )
Azim Khand30ca132017-06-09 04:32:58 +0100121 mbedtls_des3_set2key_enc( &ctx, key_str->x );
Paul Bakker33b43f12013-08-20 11:48:36 +0200122 else if( key_count == 3 )
Azim Khand30ca132017-06-09 04:32:58 +0100123 mbedtls_des3_set3key_enc( &ctx, key_str->x );
Paul Bakkere896fea2009-07-06 06:40:23 +0000124 else
125 TEST_ASSERT( 0 );
126
Azim Khand30ca132017-06-09 04:32:58 +0100127 TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000128
Azim Khand30ca132017-06-09 04:32:58 +0100129 TEST_ASSERT( hexcmp( output, hex_dst_string->x, 8, hex_dst_string->len ) == 0 );
Paul Bakker8cfd9d82014-06-18 11:16:11 +0200130
Paul Bakkerbd51b262014-07-10 15:26:12 +0200131exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200132 mbedtls_des3_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000133}
Paul Bakker33b43f12013-08-20 11:48:36 +0200134/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000135
Paul Bakker33b43f12013-08-20 11:48:36 +0200136/* BEGIN_CASE */
Azim Khand30ca132017-06-09 04:32:58 +0100137void des3_decrypt_ecb( int key_count, HexParam_t * key_str,
138 HexParam_t * src_str, HexParam_t * hex_dst_string )
Paul Bakkere896fea2009-07-06 06:40:23 +0000139{
Paul Bakkere896fea2009-07-06 06:40:23 +0000140 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200141 mbedtls_des3_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000142
Paul Bakkere896fea2009-07-06 06:40:23 +0000143 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200144 mbedtls_des3_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000145
Paul Bakkere896fea2009-07-06 06:40:23 +0000146
Paul Bakker33b43f12013-08-20 11:48:36 +0200147 if( key_count == 2 )
Azim Khand30ca132017-06-09 04:32:58 +0100148 mbedtls_des3_set2key_dec( &ctx, key_str->x );
Paul Bakker33b43f12013-08-20 11:48:36 +0200149 else if( key_count == 3 )
Azim Khand30ca132017-06-09 04:32:58 +0100150 mbedtls_des3_set3key_dec( &ctx, key_str->x );
Paul Bakkere896fea2009-07-06 06:40:23 +0000151 else
152 TEST_ASSERT( 0 );
153
Azim Khand30ca132017-06-09 04:32:58 +0100154 TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000155
Azim Khand30ca132017-06-09 04:32:58 +0100156 TEST_ASSERT( hexcmp( output, hex_dst_string->x, 8, hex_dst_string->len ) == 0 );
Paul Bakker8cfd9d82014-06-18 11:16:11 +0200157
Paul Bakkerbd51b262014-07-10 15:26:12 +0200158exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200159 mbedtls_des3_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000160}
Paul Bakker33b43f12013-08-20 11:48:36 +0200161/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000162
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200163/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Azim Khand30ca132017-06-09 04:32:58 +0100164void des3_encrypt_cbc( int key_count, HexParam_t * key_str,
165 HexParam_t * iv_str, HexParam_t * src_str,
166 HexParam_t * hex_dst_string, int cbc_result )
Paul Bakkere896fea2009-07-06 06:40:23 +0000167{
Paul Bakkere896fea2009-07-06 06:40:23 +0000168 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200169 mbedtls_des3_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000170
Paul Bakkere896fea2009-07-06 06:40:23 +0000171 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200172 mbedtls_des3_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000173
Paul Bakkere896fea2009-07-06 06:40:23 +0000174
Paul Bakker33b43f12013-08-20 11:48:36 +0200175 if( key_count == 2 )
Azim Khand30ca132017-06-09 04:32:58 +0100176 mbedtls_des3_set2key_enc( &ctx, key_str->x );
Paul Bakker33b43f12013-08-20 11:48:36 +0200177 else if( key_count == 3 )
Azim Khand30ca132017-06-09 04:32:58 +0100178 mbedtls_des3_set3key_enc( &ctx, key_str->x );
Paul Bakkere896fea2009-07-06 06:40:23 +0000179 else
180 TEST_ASSERT( 0 );
181
Azim Khand30ca132017-06-09 04:32:58 +0100182 TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
Paul Bakker02722ea2011-05-25 11:34:44 +0000183
Paul Bakker33b43f12013-08-20 11:48:36 +0200184 if( cbc_result == 0 )
Paul Bakkerf3ccc682010-03-18 21:21:02 +0000185 {
Paul Bakkere896fea2009-07-06 06:40:23 +0000186
Azim Khand30ca132017-06-09 04:32:58 +0100187 TEST_ASSERT( hexcmp( output, hex_dst_string->x, src_str->len, hex_dst_string->len ) == 0 );
Paul Bakkerf3ccc682010-03-18 21:21:02 +0000188 }
Paul Bakker8cfd9d82014-06-18 11:16:11 +0200189
Paul Bakkerbd51b262014-07-10 15:26:12 +0200190exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200191 mbedtls_des3_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000192}
Paul Bakker33b43f12013-08-20 11:48:36 +0200193/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000194
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200195/* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */
Azim Khand30ca132017-06-09 04:32:58 +0100196void des3_decrypt_cbc( int key_count, HexParam_t * key_str,
197 HexParam_t * iv_str, HexParam_t * src_str,
198 HexParam_t * hex_dst_string, int cbc_result )
Paul Bakkere896fea2009-07-06 06:40:23 +0000199{
Paul Bakkere896fea2009-07-06 06:40:23 +0000200 unsigned char output[100];
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200201 mbedtls_des3_context ctx;
Paul Bakkere896fea2009-07-06 06:40:23 +0000202
Paul Bakkere896fea2009-07-06 06:40:23 +0000203 memset(output, 0x00, 100);
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200204 mbedtls_des3_init( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000205
Paul Bakkere896fea2009-07-06 06:40:23 +0000206
Paul Bakker33b43f12013-08-20 11:48:36 +0200207 if( key_count == 2 )
Azim Khand30ca132017-06-09 04:32:58 +0100208 mbedtls_des3_set2key_dec( &ctx, key_str->x );
Paul Bakker33b43f12013-08-20 11:48:36 +0200209 else if( key_count == 3 )
Azim Khand30ca132017-06-09 04:32:58 +0100210 mbedtls_des3_set3key_dec( &ctx, key_str->x );
Paul Bakkere896fea2009-07-06 06:40:23 +0000211 else
212 TEST_ASSERT( 0 );
213
Azim Khand30ca132017-06-09 04:32:58 +0100214 TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result );
Paul Bakker02722ea2011-05-25 11:34:44 +0000215
Paul Bakker33b43f12013-08-20 11:48:36 +0200216 if( cbc_result == 0 )
Paul Bakkerf3ccc682010-03-18 21:21:02 +0000217 {
Paul Bakkere896fea2009-07-06 06:40:23 +0000218
Azim Khand30ca132017-06-09 04:32:58 +0100219 TEST_ASSERT( hexcmp( output, hex_dst_string->x, src_str->len, hex_dst_string->len ) == 0 );
Paul Bakkerf3ccc682010-03-18 21:21:02 +0000220 }
Paul Bakker8cfd9d82014-06-18 11:16:11 +0200221
Paul Bakkerbd51b262014-07-10 15:26:12 +0200222exit:
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200223 mbedtls_des3_free( &ctx );
Paul Bakkere896fea2009-07-06 06:40:23 +0000224}
Paul Bakker33b43f12013-08-20 11:48:36 +0200225/* END_CASE */
Paul Bakkere896fea2009-07-06 06:40:23 +0000226
Paul Bakker33b43f12013-08-20 11:48:36 +0200227/* BEGIN_CASE */
Azim Khanf1aaec92017-05-30 14:23:15 +0100228void des_key_parity_run( )
Paul Bakker1f87fb62011-01-15 17:32:24 +0000229{
230 int i, j, cnt;
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200231 unsigned char key[MBEDTLS_DES_KEY_SIZE];
Paul Bakker1f87fb62011-01-15 17:32:24 +0000232 unsigned int parity;
233
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200234 memset( key, 0, MBEDTLS_DES_KEY_SIZE );
Paul Bakker1f87fb62011-01-15 17:32:24 +0000235 cnt = 0;
236
237 // Iterate through all possible byte values
238 //
239 for( i = 0; i < 32; i++ )
240 {
241 for( j = 0; j < 8; j++ )
242 key[j] = cnt++;
243
244 // Set the key parity according to the table
245 //
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200246 mbedtls_des_key_set_parity( key );
Paul Bakker1f87fb62011-01-15 17:32:24 +0000247
248 // Check the parity with a function
249 //
250 for( j = 0; j < 8; j++ )
251 {
252 parity = key[j] ^ ( key[j] >> 4 );
253 parity = parity ^
254 ( parity >> 1 ) ^
255 ( parity >> 2 ) ^
256 ( parity >> 3 );
257 parity &= 1;
258
259 if( parity != 1 )
260 TEST_ASSERT( 0 );
261 }
262
263 // Check the parity with the table
264 //
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200265 TEST_ASSERT( mbedtls_des_key_check_key_parity( key ) == 0 );
Paul Bakker1f87fb62011-01-15 17:32:24 +0000266 }
267}
Paul Bakker33b43f12013-08-20 11:48:36 +0200268/* END_CASE */
Paul Bakker1f87fb62011-01-15 17:32:24 +0000269
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200270/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */
Azim Khanf1aaec92017-05-30 14:23:15 +0100271void des_selftest( )
Paul Bakkere896fea2009-07-06 06:40:23 +0000272{
Andres AG93012e82016-09-09 09:10:28 +0100273 TEST_ASSERT( mbedtls_des_self_test( 1 ) == 0 );
Paul Bakkere896fea2009-07-06 06:40:23 +0000274}
Paul Bakker33b43f12013-08-20 11:48:36 +0200275/* END_CASE */