~ubuntu-branches/ubuntu/trusty/gnutls26/trusty-security

« back to all changes in this revision

Viewing changes to tests/tlsia.c

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Metzler
  • Date: 2010-04-22 19:29:52 UTC
  • mto: (12.4.3 experimental) (1.5.1)
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: james.westby@ubuntu.com-20100422192952-gbj6cvaan8e4ejck
Tags: upstream-2.9.10
ImportĀ upstreamĀ versionĀ 2.9.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation
 
2
 * Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010 Free Software
 
3
 * Foundation, Inc.
3
4
 *
4
5
 * Author: Simon Josefsson
5
6
 *
57
58
  static int iter = 0;
58
59
  const char *p;
59
60
 
60
 
  if (last)
61
 
    printf ("client: received %d bytes AVP: `%.*s'\n",
62
 
            lastlen, (int) lastlen, last);
63
 
  else
64
 
    printf ("client: new application phase\n");
 
61
  if (debug)
 
62
    {
 
63
      if (last)
 
64
        printf ("client: received %d bytes AVP: `%.*s'\n",
 
65
                (int) lastlen, (int) lastlen, last);
 
66
      else
 
67
        printf ("client: new application phase\n");
 
68
    }
65
69
 
66
70
  switch (iter)
67
71
    {
93
97
    return -1;
94
98
  *newlen = strlen (*new);
95
99
 
96
 
  printf ("client: sending %d bytes AVP: `%s'\n", *newlen, *new);
 
100
  if (debug)
 
101
    printf ("client: sending %d bytes AVP: `%s'\n", (int) *newlen, *new);
97
102
 
98
103
  gnutls_ia_permute_inner_secret (session, 3, "foo");
99
104
 
155
160
    }
156
161
  else
157
162
    {
158
 
      success ("client: Handshake was completed\n");
 
163
      if (debug)
 
164
        success ("client: Handshake was completed\n");
159
165
    }
160
166
 
161
167
  /*
169
175
    fail ("client: No TLS/IA negotiation\n");
170
176
  else
171
177
    {
172
 
      success ("client: TLS/IA handshake\n");
 
178
      if (debug)
 
179
        success ("client: TLS/IA handshake\n");
173
180
 
174
181
      ret = gnutls_ia_handshake (session);
175
182
 
181
188
        }
182
189
      else
183
190
        {
184
 
          success ("client: TLS/IA Handshake was completed\n");
 
191
          if (debug)
 
192
            success ("client: TLS/IA Handshake was completed\n");
185
193
        }
186
194
    }
187
195
 
190
198
  ret = gnutls_record_recv (session, buffer, MAX_BUF);
191
199
  if (ret == 0)
192
200
    {
193
 
      success ("client: Peer has closed the TLS connection\n");
 
201
      if (debug)
 
202
        success ("client: Peer has closed the TLS connection\n");
194
203
      goto end;
195
204
    }
196
205
  else if (ret < 0)
289
298
  static int iter = 0;
290
299
  const char *p;
291
300
 
292
 
  if (last)
 
301
  if (last && debug)
293
302
    printf ("server: received %d bytes AVP: `%.*s'\n",
294
 
            lastlen, (int) lastlen, last);
 
303
            (int) lastlen, (int) lastlen, last);
295
304
 
296
305
  gnutls_ia_permute_inner_secret (session, 3, "foo");
297
306
 
340
349
 
341
350
  if (strcmp (p, "1") == 0)
342
351
    {
343
 
      success ("server: Sending IntermediatePhaseFinished...\n");
 
352
      if (debug)
 
353
        success ("server: Sending IntermediatePhaseFinished...\n");
344
354
      return 1;
345
355
    }
346
356
 
347
357
  if (strcmp (p, "2") == 0)
348
358
    {
349
 
      success ("server: Sending FinalPhaseFinished...\n");
 
359
      if (debug)
 
360
        success ("server: Sending FinalPhaseFinished...\n");
350
361
      return 2;
351
362
    }
352
363
 
355
366
    return -1;
356
367
  *newlen = strlen (*new);
357
368
 
358
 
  printf ("server: sending %d bytes AVP: `%s'\n", *newlen, *new);
 
369
  if (debug)
 
370
    printf ("server: sending %d bytes AVP: `%s'\n", (int) *newlen, *new);
359
371
 
360
372
  return 0;
361
373
}
397
409
      return;
398
410
    }
399
411
 
400
 
  success ("server: ready. Listening to port '%d'\n", PORT);
 
412
  if (debug)
 
413
    success ("server: ready. Listening to port '%d'\n", PORT);
401
414
}
402
415
 
403
416
static void
415
428
  gnutls_anon_allocate_server_credentials (&anoncred);
416
429
  gnutls_ia_allocate_server_credentials (&iacred);
417
430
 
418
 
  success ("Launched, generating DH parameters...\n");
 
431
  if (debug)
 
432
    success ("Launched, generating DH parameters...\n");
419
433
 
420
434
  generate_dh_params ();
421
435
 
427
441
 
428
442
  sd = accept (listen_sd, (SA *) & sa_cli, &client_len);
429
443
 
430
 
  success ("server: connection from %s, port %d\n",
431
 
           inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
432
 
                      sizeof (topbuf)), ntohs (sa_cli.sin_port));
 
444
  if (debug)
 
445
    success ("server: connection from %s, port %d\n",
 
446
             inet_ntop (AF_INET, &sa_cli.sin_addr, topbuf,
 
447
                        sizeof (topbuf)), ntohs (sa_cli.sin_port));
433
448
 
434
449
  gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);
435
450
 
445
460
      fail ("server: Handshake has failed (%s)\n\n", gnutls_strerror (ret));
446
461
      return;
447
462
    }
448
 
  success ("server: Handshake was completed\n");
 
463
  if (debug)
 
464
    success ("server: Handshake was completed\n");
449
465
 
450
466
  if (!gnutls_ia_handshake_p (session))
451
467
    fail ("server: No TLS/IA negotiation\n");
452
468
  else
453
469
    {
454
 
      success ("server: TLS/IA handshake\n");
 
470
      if (debug)
 
471
        success ("server: TLS/IA handshake\n");
455
472
 
456
473
      ret = gnutls_ia_handshake (session);
457
474
 
463
480
        }
464
481
      else
465
482
        {
466
 
          success ("server: TLS/IA Handshake was completed\n");
 
483
          if (debug)
 
484
            success ("server: TLS/IA Handshake was completed\n");
467
485
        }
468
486
    }
469
487
 
478
496
 
479
497
      if (ret == 0)
480
498
        {
481
 
          success ("server: Peer has closed the GNUTLS connection\n");
 
499
          if (debug)
 
500
            success ("server: Peer has closed the GNUTLS connection\n");
482
501
          break;
483
502
        }
484
503
      else if (ret < 0)
520
539
 
521
540
  gnutls_global_deinit ();
522
541
 
523
 
  success ("server: finished\n");
 
542
  if (debug)
 
543
    success ("server: finished\n");
524
544
}
525
545
 
526
546
void