1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/*
* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation
*
* Author: Nikos Mavrogiannopoulos
*
* This file is part of GNUTLS.
*
* The GNUTLS library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA
*
*/
#include "gnutls_int.h"
#include "gnutls_errors.h"
#include <stdio.h>
#include <stdlib.h>
#include "debug.h"
#ifdef DEBUG
void
_gnutls_print_state (gnutls_session_t session)
{
_gnutls_debug_log ("GNUTLS State:\n");
_gnutls_debug_log ("Connection End: %d\n",
session->security_parameters.entity);
_gnutls_debug_log ("Cipher Algorithm: %d\n",
session->security_parameters.read_bulk_cipher_algorithm);
_gnutls_debug_log ("MAC algorithm: %d\n",
session->security_parameters.read_mac_algorithm);
_gnutls_debug_log ("Compression Algorithm: %d\n",
session->security_parameters.read_compression_algorithm);
_gnutls_debug_log ("\n");
}
#endif
const char *
_gnutls_packet2str (content_type_t packet)
{
switch (packet)
{
case GNUTLS_CHANGE_CIPHER_SPEC:
return "Change Cipher Spec";
case GNUTLS_ALERT:
return "Alert";
case GNUTLS_HANDSHAKE:
return "Handshake";
case GNUTLS_APPLICATION_DATA:
return "Application Data";
case GNUTLS_INNER_APPLICATION:
return "Inner Application";
default:
return "Unknown Packet";
}
}
const char *
_gnutls_handshake2str (gnutls_handshake_description_t handshake)
{
switch (handshake)
{
case GNUTLS_HANDSHAKE_HELLO_REQUEST:
return "HELLO REQUEST";
break;
case GNUTLS_HANDSHAKE_CLIENT_HELLO:
return "CLIENT HELLO";
break;
case GNUTLS_HANDSHAKE_SERVER_HELLO:
return "SERVER HELLO";
break;
case GNUTLS_HANDSHAKE_CERTIFICATE_PKT:
return "CERTIFICATE";
break;
case GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE:
return "SERVER KEY EXCHANGE";
break;
case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST:
return "CERTIFICATE REQUEST";
break;
case GNUTLS_HANDSHAKE_SERVER_HELLO_DONE:
return "SERVER HELLO DONE";
break;
case GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY:
return "CERTIFICATE VERIFY";
break;
case GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE:
return "CLIENT KEY EXCHANGE";
break;
case GNUTLS_HANDSHAKE_FINISHED:
return "FINISHED";
break;
case GNUTLS_HANDSHAKE_SUPPLEMENTAL:
return "SUPPLEMENTAL";
break;
default:
return "Unknown Handshake packet";
}
}
void
_gnutls_dump_mpi (const char *prefix, bigint_t a)
{
opaque mpi_buf[1024];
opaque buf[1024];
size_t n = sizeof buf;
if (_gnutls_mpi_print (a, mpi_buf, &n) < 0)
strcpy (buf, "[can't print value]"); /* Flawfinder: ignore */
else
_gnutls_bin2hex (mpi_buf, n, buf, sizeof (buf));
_gnutls_hard_log ("MPI: length: %d\n\t%s%s\n", n, prefix, buf);
}
|