added new functions
[gnutls.git] / lib / debug.c
blob86807c46faaf3b528ea841175d5992d201e6e5f5
1 /*
2 * Copyright (C) 2001-2012 Free Software Foundation, Inc.
4 * Author: Nikos Mavrogiannopoulos
6 * This file is part of GnuTLS.
8 * The GnuTLS is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; either version 3 of
11 * the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>
23 #include "gnutls_int.h"
24 #include "gnutls_errors.h"
25 #include <stdio.h>
26 #include <stdlib.h>
27 #include "debug.h"
28 #include <gnutls_mpi.h>
30 #ifdef DEBUG
31 void
32 _gnutls_dump_mpi (const char *prefix, bigint_t a)
34 char buf[400];
35 char buf_hex[2 * sizeof (buf)];
36 size_t n = sizeof buf;
38 if (_gnutls_mpi_print (a, buf, &n))
39 strcpy (buf, "[can't print value]"); /* Flawfinder: ignore */
40 _gnutls_debug_log ("MPI: length: %d\n\t%s%s\n", (int) n, prefix,
41 _gnutls_bin2hex (buf, n, buf_hex, sizeof (buf_hex),
42 NULL));
44 #endif
46 const char *
47 _gnutls_packet2str (content_type_t packet)
49 switch (packet)
51 case GNUTLS_CHANGE_CIPHER_SPEC:
52 return "ChangeCipherSpec";
53 case GNUTLS_ALERT:
54 return "Alert";
55 case GNUTLS_HANDSHAKE:
56 return "Handshake";
57 case GNUTLS_APPLICATION_DATA:
58 return "Application Data";
59 case GNUTLS_HEARTBEAT:
60 return "HeartBeat";
61 default:
62 return "Unknown Packet";
66 const char *
67 _gnutls_handshake2str (gnutls_handshake_description_t handshake)
70 switch (handshake)
72 case GNUTLS_HANDSHAKE_HELLO_REQUEST:
73 return "HELLO REQUEST";
74 break;
75 case GNUTLS_HANDSHAKE_CLIENT_HELLO:
76 return "CLIENT HELLO";
77 break;
78 case GNUTLS_HANDSHAKE_CLIENT_HELLO_V2:
79 return "SSL2 CLIENT HELLO";
80 break;
81 case GNUTLS_HANDSHAKE_SERVER_HELLO:
82 return "SERVER HELLO";
83 break;
84 case GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST:
85 return "HELLO VERIFY REQUEST";
86 break;
87 case GNUTLS_HANDSHAKE_CERTIFICATE_PKT:
88 return "CERTIFICATE";
89 break;
90 case GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE:
91 return "SERVER KEY EXCHANGE";
92 break;
93 case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST:
94 return "CERTIFICATE REQUEST";
95 break;
96 case GNUTLS_HANDSHAKE_SERVER_HELLO_DONE:
97 return "SERVER HELLO DONE";
98 break;
99 case GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY:
100 return "CERTIFICATE VERIFY";
101 break;
102 case GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE:
103 return "CLIENT KEY EXCHANGE";
104 break;
105 case GNUTLS_HANDSHAKE_FINISHED:
106 return "FINISHED";
107 break;
108 case GNUTLS_HANDSHAKE_SUPPLEMENTAL:
109 return "SUPPLEMENTAL";
110 break;
111 case GNUTLS_HANDSHAKE_CERTIFICATE_STATUS:
112 return "CERTIFICATE STATUS";
113 break;
114 case GNUTLS_HANDSHAKE_NEW_SESSION_TICKET:
115 return "NEW SESSION TICKET";
116 break;
117 case GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC:
118 return "CHANGE CIPHER SPEC";
119 break;
120 default:
121 return "Unknown Handshake packet";