UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
test_des.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int test_des (void)
 

Function Documentation

◆ test_des()

int test_des ( void )

Definition at line 180 of file test_des.c.

181{
182 int i, j;
183 unsigned char key[8], plain[8], crypt[8], buffer[8];
184 unsigned char cbc_buffer[32], cbc_iv_buf[8];
185
186 printf
187 ("Testing DES in ECB mode .................................................. ");
188 fflush(stdout);
189 for (i = 0; i < NUM_TESTS; i++) {
190 for (j = 0; j < 8; j++) {
191 key[j] = key_data[i][j];
192 plain[j] = plain_data[i][j];
193 crypt[j] = crypt_data[i][j];
194 }
195 memcpy(buffer, crypt, 8);
196 qfDES_ECB_d(key, buffer, 8);
197 if (memcmp(buffer, plain, 8) != 0) {
198 printf("FAIL\n");
199 goto abort_ecb;
200 }
201 memcpy(buffer, plain, 8);
202 qfDES_ECB_e(key, buffer, 8);
203 if (memcmp(buffer, crypt, 8) != 0) {
204 printf("FAIL\n");
205 goto abort_ecb;
206 }
207 qfDES_ECB_d(key, buffer, 8);
208 if (memcmp(buffer, plain, 8) != 0) {
209 printf("FAIL\n");
210 goto abort_ecb;
211 }
212 }
213 printf("Ok\n");
214 abort_ecb:
215
216 printf
217 ("Testing DES in CBC mode .................................................. ");
218 fflush(stdout);
219 memcpy(cbc_buffer, cbc_data, 32);
220 memcpy(cbc_iv_buf, cbc_iv, 8);
221 qfDES_CBC_e(cbc_key, cbc_buffer, 32, cbc_iv_buf);
222 if (memcmp(cbc_buffer, cbc_ok, 32) != 0) {
223 printf("FAIL\n");
224 return -1;
225 }
226 memcpy(cbc_iv_buf, cbc_iv, 8);
227 qfDES_CBC_d(cbc_key, cbc_buffer, 32, cbc_iv_buf);
228 if (memcmp(cbc_buffer, cbc_data, 32) != 0) {
229 printf("FAIL\n");
230 return -1;
231 }
232 printf("Ok\n");
233 return 0;
234}
#define qfDES_ECB_e(_key, _data, _size)
Definition crypt_des.h:34
#define qfDES_ECB_d(_key, _data, _size)
Definition crypt_des.h:35
#define qfDES_CBC_e(_key, _data, _size, _initVec)
Definition crypt_des.h:37
#define qfDES_CBC_d(_key, _data, _size, _initVec)
Definition crypt_des.h:38
#define NUM_TESTS
Definition test_des.c:48
static unsigned char cbc_ok[32]
Definition test_des.c:173
static unsigned char cbc_iv[8]
Definition test_des.c:169
static unsigned char cbc_key[8]
Definition test_des.c:167
static unsigned char crypt_data[NUM_TESTS][8]
Definition test_des.c:128
static unsigned char key_data[NUM_TESTS][8]
Definition test_des.c:50
static unsigned char cbc_data[32]
Definition test_des.c:171
static unsigned char plain_data[NUM_TESTS][8]
Definition test_des.c:89
const char * key
Definition cineform.cpp:125

References cbc_data, cbc_iv, cbc_key, cbc_ok, crypt_data, key, key_data, NUM_TESTS, plain_data, qfDES_CBC_d, qfDES_CBC_e, qfDES_ECB_d, and qfDES_ECB_e.