if (siz < 0) {
- fprintf(stderr, "ERROR %d\n", siz);
+ _gnutls_log( "ERROR %d\n", siz);
exit(1);
}
if (siz < 0) {
- fprintf(stderr, "ERROR %d\n", siz);
+ _gnutls_log( "ERROR %d\n", siz);
exit(1);
}
fwrite(b64, siz, 1, stdout);
if (gcry_mpi_print(GCRYMPI_FMT_HEX, buf, &n, a))
strcpy(buf, "[can't print value]");
- fprintf(stderr, "MPI: length: %d\n\t%s%s\n", (n-1)/2, prefix, buf);
+ _gnutls_log( "MPI: length: %d\n\t%s%s\n", (n-1)/2, prefix, buf);
}
void _gnutls_print_state(GNUTLS_STATE state)
{
- fprintf(stderr, "GNUTLS State:\n");
- fprintf(stderr, "Connection End: %d\n",
+ _gnutls_log( "GNUTLS State:\n");
+ _gnutls_log( "Connection End: %d\n",
state->security_parameters.entity);
- fprintf(stderr, "Cipher Algorithm: %d\n",
+ _gnutls_log( "Cipher Algorithm: %d\n",
state->security_parameters.read_bulk_cipher_algorithm);
- fprintf(stderr, "MAC algorithm: %d\n",
+ _gnutls_log( "MAC algorithm: %d\n",
state->security_parameters.read_mac_algorithm);
- fprintf(stderr, "Compression Algorithm: %d\n",
+ _gnutls_log( "Compression Algorithm: %d\n",
state->security_parameters.read_compression_algorithm);
- fprintf(stderr, "\n");
+ _gnutls_log( "\n");
}
typedef ssize_t (*RECV_FUNC)(SOCKET, void*, size_t,int);
typedef ssize_t (*SEND_FUNC)(SOCKET, const void*, size_t,int);
-
-RECV_FUNC _gnutls_recv_func;
-SEND_FUNC _gnutls_send_func;
+typedef void (*LOG_FUNC)( const char*);
void gnutls_global_set_send_func( SEND_FUNC send_func);
void gnutls_global_set_recv_func( RECV_FUNC recv_func);
#ifdef DEBUG
if (size > MAX_ELEM_SIZE) {
gnutls_assert();
- fprintf(stderr, "QSORT BUG\n");
+ _gnutls_log( "QSORT BUG\n");
exit(1);
}
#endif
}
#ifdef SORT_DEBUG
- fprintf(stderr, "Unsorted: \n");
+ _gnutls_log( "Unsorted: \n");
for (i = 0; i < count; i++)
- fprintf(stderr, "\t%d: %s\n", i,
+ _gnutls_log( "\t%d: %s\n", i,
_gnutls_cipher_suite_get_name((tmp_ciphers)[i]));
#endif
}
#ifdef SORT_DEBUG
- fprintf(stderr, "Sorted: \n");
+ _gnutls_log( "Sorted: \n");
for (i = 0; i < j; i++)
- fprintf(stderr, "\t%d: %s\n", i,
+ _gnutls_log( "\t%d: %s\n", i,
_gnutls_cipher_suite_get_name((*ciphers)[i]));
- fprintf(stderr, "SORT BUG\n");
+ _gnutls_log( "SORT BUG\n");
exit(0);
#endif
state->gnutls_internals.buffer.size += length;
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "BUFFER: Inserted %d bytes of Data(%d)\n", length, type);
+ _gnutls_log( "BUFFER: Inserted %d bytes of Data(%d)\n", length, type);
#endif
state->gnutls_internals.buffer.data =
gnutls_realloc(state->gnutls_internals.buffer.data,
state->gnutls_internals.buffer_handshake.size += length;
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "BUFFER: Inserted %d bytes of Data(%d)\n", length, type);
+ _gnutls_log( "BUFFER: Inserted %d bytes of Data(%d)\n", length, type);
#endif
state->gnutls_internals.buffer_handshake.data =
gnutls_realloc(state->gnutls_internals.buffer_handshake.data,
length = state->gnutls_internals.buffer.size;
}
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "BUFFER: Read %d bytes of Data(%d)\n", length, type);
+ _gnutls_log( "BUFFER: Read %d bytes of Data(%d)\n", length, type);
#endif
state->gnutls_internals.buffer.size -= length;
memcpy(data, state->gnutls_internals.buffer.data, length);
length = state->gnutls_internals.buffer_handshake.size;
}
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "BUFFER: Read %d bytes of Data(%d)\n", length, type);
+ _gnutls_log( "BUFFER: Read %d bytes of Data(%d)\n", length, type);
#endif
state->gnutls_internals.buffer_handshake.size -= length;
memcpy(data, state->gnutls_internals.buffer_handshake.data, length);
}
#ifdef READ_DEBUG
- fprintf(stderr, "READ: read %d bytes from %d\n", (sizeOfPtr-left), fd);
+ _gnutls_log( "READ: read %d bytes from %d\n", (sizeOfPtr-left), fd);
for (x=0;x<((sizeOfPtr-left)/16)+1;x++) {
- fprintf(stderr, "%.4x - ",x);
+ _gnutls_log( "%.4x - ",x);
for (j=0;j<16;j++) {
if (sum<(sizeOfPtr-left)) {
- fprintf(stderr, "%.2x ", ((unsigned char*)ptr)[sum++]);
+ _gnutls_log( "%.2x ", ((unsigned char*)ptr)[sum++]);
}
}
- fprintf(stderr, "\n");
+ _gnutls_log( "\n");
}
#endif
const char *ptr = iptr;
#ifdef WRITE_DEBUG
- fprintf(stderr, "WRITE: wrote %d bytes to %d\n", n, fd);
+ _gnutls_log( "WRITE: wrote %d bytes to %d\n", n, fd);
for (x=0;x<(n/16)+1;x++) {
- fprintf(stderr, "%.4x - ",x);
+ _gnutls_log( "%.4x - ",x);
for (j=0;j<16;j++) {
if (sum<n) {
- fprintf(stderr, "%.2x ", ((unsigned char*)ptr)[sum++]);
+ _gnutls_log( "%.2x ", ((unsigned char*)ptr)[sum++]);
}
}
- fprintf(stderr, "\n");
+ _gnutls_log( "\n");
}
#endif
state->gnutls_internals.hash_buffer.size += length;
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "HASH_BUFFER: Inserted %d bytes of Data\n", length);
+ _gnutls_log( "HASH_BUFFER: Inserted %d bytes of Data\n", length);
#endif
state->gnutls_internals.hash_buffer.data =
gnutls_realloc(state->gnutls_internals.hash_buffer.data,
length = state->gnutls_internals.hash_buffer.size;
}
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "HASH BUFFER: Got %d bytes of Data\n", length);
+ _gnutls_log( "HASH BUFFER: Got %d bytes of Data\n", length);
#endif
state->gnutls_internals.hash_buffer.size -= length;
memcpy(data, state->gnutls_internals.hash_buffer.data, length);
length = state->gnutls_internals.hash_buffer.size;
}
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "HASH BUFFER: Read %d bytes of Data\n", length);
+ _gnutls_log( "HASH BUFFER: Read %d bytes of Data\n", length);
#endif
memcpy(data, state->gnutls_internals.hash_buffer.data, length);
return length;
{
#ifdef BUFFERS_DEBUG
- fprintf(stderr, "HASH BUFFER: Cleared Data from buffer\n");
+ _gnutls_log( "HASH BUFFER: Cleared Data from buffer\n");
#endif
state->gnutls_internals.hash_buffer.size = 0;
if (state->gnutls_internals.hash_buffer.data!=NULL)
if (result != ASN_OK) {
/* couldn't decode DER */
#ifdef DEBUG
- fprintf(stderr, "Decoding error %d\n", result);
+ _gnutls_log( "Decoding error %d\n", result);
#endif
gnutls_assert();
return GNUTLS_E_ASN1_PARSING_ERROR;
*/
gnutls_assert();
#ifdef DEBUG
-fprintf(stderr, "ALGORITHM: %s\n", str);
+_gnutls_log( "ALGORITHM: %s\n", str);
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
#endif
gCert->subject_pk_algorithm = GNUTLS_PK_UNKNOWN;
if (key_block==NULL) return GNUTLS_E_MEMORY_ERROR;
#ifdef HARD_DEBUG
- fprintf(stderr, "KEY BLOCK[%d]: %s\n",block_size, _gnutls_bin2hex(key_block, block_size));
+ _gnutls_log( "KEY BLOCK[%d]: %s\n",block_size, _gnutls_bin2hex(key_block, block_size));
#endif
pos = 0;
_gnutls_set_read_keys(state);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Cipher Suite: %s\n",
+ _gnutls_log( "Cipher Suite: %s\n",
_gnutls_cipher_suite_get_name(state->
security_parameters.current_cipher_suite));
#endif
read_mac_algorithm);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Handshake: Initializing internal [read] cipher states\n");
+ _gnutls_log( "Handshake: Initializing internal [read] cipher states\n");
#endif
switch (state->security_parameters.entity) {
_gnutls_set_write_keys(state);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Cipher Suite: %s\n",
+ _gnutls_log( "Cipher Suite: %s\n",
_gnutls_cipher_suite_get_name(state->
security_parameters.current_cipher_suite));
#endif
write_mac_algorithm);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Handshake: Initializing internal [write] cipher states\n");
+ _gnutls_log( "Handshake: Initializing internal [write] cipher states\n");
#endif
switch (state->security_parameters.entity) {
#include "gnutls_errors.h"
+extern void (*_gnutls_log_func)( const char*);
+
#define GNUTLS_ERROR_ENTRY(name, fatal) \
{ #name, name, fatal }
GNUTLS_ERROR_ALG_LOOP(ret =
gnutls_strdup(p->name + sizeof("GNUTLS_E_") - 1));
- fprintf(stderr, "GNUTLS ERROR: %s\n", ret);
+ _gnutls_log( "GNUTLS ERROR: %s\n", ret);
free( ret);
}
return ret;
}
+
+/* this function will output a message using the
+ * caller provided function
+ */
+void _gnutls_log( const char *fmt, ...) {
+ va_list args;
+ char str[MAX_LOG_SIZE];
+ void (*log_func)() = _gnutls_log_func;
+
+ va_start(args,fmt);
+ vsprintf( str,fmt,args);
+ va_end(args);
+
+ log_func( str);
+
+ return;
+}
const char* gnutls_strerror(int error);
void gnutls_perror(int error);
int gnutls_is_fatal_error( int error);
+void _gnutls_log( const char *fmt, ...);
typedef ssize_t (*RECV_FUNC)(SOCKET, void*, size_t,int);
typedef ssize_t (*SEND_FUNC)(SOCKET, const void*, size_t,int);
+typedef void (*LOG_FUNC)( const char*);
RECV_FUNC _gnutls_recv_func;
SEND_FUNC _gnutls_send_func;
+LOG_FUNC _gnutls_log_func;
static node_asn *PKIX1_ASN;
static node_asn *PKCS1_ASN;
_gnutls_send_func = send_func;
}
+/**
+ * gnutls_global_set_log_func - This function sets the logging function
+ * @send_func: it's a send(2) like function
+ *
+ * This is the function were you set the logging function gnutls
+ * is going to use. Normaly you may not use this function since
+ * it is only used for debug reason.
+ **/
+void gnutls_global_set_log_func( LOG_FUNC log_func) {
+ _gnutls_log_func = log_func;
+}
+
int gnutls_is_secure_memory(const void* mem) {
return 0;
}
+/* default logging function */
+static void dlog( const char* str) {
+#ifdef DEBUG
+ fprintf( stderr, str);
+#endif
+}
+
/**
* gnutls_global_init - This function initializes the global state to defaults.
*
*/
_gnutls_recv_func = recv;
_gnutls_send_func = send;
+ _gnutls_log_func = dlog;
/* initialize parser
* This should not deal with files in the final
#include "gnutls_constate.h"
#ifdef HANDSHAKE_DEBUG
-#define ERR(x, y) fprintf(stderr, "GNUTLS Error: %s (%d)\n", x,y)
+#define ERR(x, y) _gnutls_log( "GNUTLS Error: %s (%d)\n", x,y)
#else
#define ERR(x, y)
#endif
DECR_LEN(len, 2);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Client's version: %d.%d\n", data[pos],
+ _gnutls_log( "Client's version: %d.%d\n", data[pos],
data[pos + 1]);
#endif
current_cipher_suite));
if (state->gnutls_internals.auth_struct == NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr,
+ _gnutls_log(
"Cannot find the appropriate handler for the KX algorithm\n");
#endif
gnutls_assert();
compression_method,
&data[pos], z);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Selected Compression Method: %s\n",
+ _gnutls_log( "Selected Compression Method: %s\n",
gnutls_compression_get_name(state->gnutls_internals.
compression_method));
#endif
x = _gnutls_remove_unwanted_ciphersuites(state, &ciphers, x);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Requested cipher suites: \n");
+ _gnutls_log( "Requested cipher suites: \n");
for (j = 0; j < datalen; j += 2)
- fprintf(stderr, "\t%s\n",
+ _gnutls_log( "\t%s\n",
_gnutls_cipher_suite_get_name(*
((GNUTLS_CipherSuite
*) & data[j])));
- fprintf(stderr, "Supported cipher suites: \n");
+ _gnutls_log( "Supported cipher suites: \n");
for (j = 0; j < x; j++)
- fprintf(stderr, "\t%s\n",
+ _gnutls_log( "\t%s\n",
_gnutls_cipher_suite_get_name(ciphers[j]));
#endif
memset(ret, '\0', 2);
if (memcmp(ciphers[i].CipherSuite, &data[j], 2) ==
0) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Selected cipher suite: ");
- fprintf(stderr, "%s\n",
+ _gnutls_log( "Selected cipher suite: ");
+ _gnutls_log( "%s\n",
_gnutls_cipher_suite_get_name(*
((GNUTLS_CipherSuite *) & data[j])));
#endif
memcpy(&data[pos], i_data, i_datasize - 4);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Handshake: %s was send [%ld bytes]\n",
+ _gnutls_log( "Handshake: %s was send [%ld bytes]\n",
_gnutls_handshake2str(type), i_datasize);
#endif
length32 = READuint24(&dataptr[1]);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Handshake: %s was received [%ld bytes]\n",
+ _gnutls_log( "Handshake: %s was received [%ld bytes]\n",
_gnutls_handshake2str(dataptr[0]),
length32 + HANDSHAKE_HEADERS_SIZE);
#endif
recv_type = dataptr[0];
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr,
+ _gnutls_log(
"Handshake: %s(v2) was received [%ld bytes]\n",
_gnutls_handshake2str(recv_type),
length32 + handshake_headers);
break;
case GNUTLS_CERTIFICATE_REQUEST:
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Requested Client Certificate!\n");
+ _gnutls_log( "Requested Client Certificate!\n");
#endif
/* FIXME: just ignore that message for the time being
* we have to parse it and the store the needed information
return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
}
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Server's version: %d.%d\n", data[pos],
+ _gnutls_log( "Server's version: %d.%d\n", data[pos],
data[pos + 1]);
#endif
DECR_LEN(len, 2);
DECR_LEN(len, session_id_len);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "SessionID length: %d\n", session_id_len);
- fprintf(stderr, "SessionID: %s\n",
+ _gnutls_log( "SessionID length: %d\n", session_id_len);
+ _gnutls_log( "SessionID: %s\n",
_gnutls_bin2hex(&data[pos], session_id_len));
#endif
if ((state->gnutls_internals.resumed_security_parameters.
cipher_suite.CipherSuite, 2);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Selected cipher suite: ");
- fprintf(stderr, "%s\n",
+ _gnutls_log( "Selected cipher suite: ");
+ _gnutls_log( "%s\n",
_gnutls_cipher_suite_get_name(state->
security_parameters.
current_cipher_suite));
(cipher_suite));
if (state->gnutls_internals.auth_struct == NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr,
+ _gnutls_log(
"Cannot find the appropriate handler for the KX algorithm\n");
#endif
gnutls_assert();
pos += session_id_len;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Handshake: SessionID: %s\n",
+ _gnutls_log( "Handshake: SessionID: %s\n",
_gnutls_bin2hex(SessionID, session_id_len));
#endif
#ifdef HANDSHAKE_DEBUG
if (state->gnutls_internals.resumed_security_parameters.
session_id_size > 0)
- fprintf(stderr, "Ask to resume: %s\n",
+ _gnutls_log( "Ask to resume: %s\n",
_gnutls_bin2hex(state->gnutls_internals.
resumed_security_parameters.
session_id,
*len = TLS_RANDOM_SIZE;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Generated SessionID: %s\n",
+ _gnutls_log( "Generated SessionID: %s\n",
_gnutls_bin2hex(session_id, TLS_RANDOM_SIZE));
#endif
return 0;
#define MAX_HASH_SIZE 20
#define MAX_X509_CERT_SIZE 10*1024
+#define MAX_LOG_SIZE 1024 /* maximum number of log message */
#define MAX_DNSNAME_SIZE 256
premaster = state->gnutls_key->key.data;
#ifdef HARD_DEBUG
- fprintf(stderr, "PREMASTER SECRET[%d]: %s\n", premaster_size, _gnutls_bin2hex(premaster, premaster_size));
- fprintf(stderr, "CLIENT RANDOM[%d]: %s\n", 32, _gnutls_bin2hex(state->security_parameters.client_random,32));
- fprintf(stderr, "SERVER RANDOM[%d]: %s\n", 32, _gnutls_bin2hex(state->security_parameters.server_random,32));
+ _gnutls_log( "PREMASTER SECRET[%d]: %s\n", premaster_size, _gnutls_bin2hex(premaster, premaster_size));
+ _gnutls_log( "CLIENT RANDOM[%d]: %s\n", 32, _gnutls_bin2hex(state->security_parameters.client_random,32));
+ _gnutls_log( "SERVER RANDOM[%d]: %s\n", 32, _gnutls_bin2hex(state->security_parameters.server_random,32));
#endif
if (_gnutls_version_ssl3(state->connection_state.version) == 0) {
if (master==NULL) return GNUTLS_E_MEMORY_ERROR;
#ifdef HARD_DEBUG
- fprintf(stderr, "MASTER SECRET: %s\n", _gnutls_bin2hex(master, TLS_MASTER_SIZE));
+ _gnutls_log( "MASTER SECRET: %s\n", _gnutls_bin2hex(master, TLS_MASTER_SIZE));
#endif
memcpy(state->security_parameters.master_secret, master, TLS_MASTER_SIZE);
secure_free(master);
return 0;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending server KX message\n");
+ _gnutls_log( "Sending server KX message\n");
#endif
data_size = state->gnutls_internals.auth_struct->gnutls_generate_server_kx2( state->gnutls_key, &data);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending server KX message2\n");
+ _gnutls_log( "Sending server KX message2\n");
#endif
if (data_size<0) {
return 0;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending client KX message\n");
+ _gnutls_log( "Sending client KX message\n");
#endif
data_size = state->gnutls_internals.auth_struct->gnutls_generate_client_kx( state->gnutls_key, &data);
return 0;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending client KX message0\n");
+ _gnutls_log( "Sending client KX message0\n");
#endif
data_size = state->gnutls_internals.auth_struct->gnutls_generate_client_kx0( state->gnutls_key, &data);
}
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending client certificate verify message\n");
+ _gnutls_log( "Sending client certificate verify message\n");
#endif
data_size = state->gnutls_internals.auth_struct->gnutls_generate_client_cert_vrfy( state->gnutls_key, &data);
if (data_size < 0)
if (state->gnutls_internals.auth_struct->gnutls_process_server_kx!=NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Receiving Server KX message\n");
+ _gnutls_log( "Receiving Server KX message\n");
#endif
ret =
if (state->gnutls_internals.auth_struct->gnutls_process_server_kx2 != NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Receiving Server KX message2\n");
+ _gnutls_log( "Receiving Server KX message2\n");
#endif
ret =
if (state->gnutls_internals.auth_struct->gnutls_process_client_kx != NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Receiving client KX message\n");
+ _gnutls_log( "Receiving client KX message\n");
#endif
ret =
if (state->gnutls_internals.auth_struct->gnutls_process_client_kx0 != NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Receiving client KX message0\n");
+ _gnutls_log( "Receiving client KX message0\n");
#endif
ret =
return 0;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending certificate message\n");
+ _gnutls_log( "Sending certificate message\n");
#endif
return 0;
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Sending Client Certificate\n");
+ _gnutls_log( "Sending Client Certificate\n");
#endif
return _gnutls_send_certificate(cd, state);
memcpy(&data[1], &desc, 1);
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Sending Alert[%d|%d] - %s\n", data[0], data[1], _gnutls_alert2str((int)data[1]));
+ _gnutls_log( "Record: Sending Alert[%d|%d] - %s\n", data[0], data[1], _gnutls_alert2str((int)data[1]));
#endif
return gnutls_send_int(cd, state, GNUTLS_ALERT, -1, data, 2, 0);
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Sending Packet[%d] %s(%d) with length: %d\n",
+ _gnutls_log( "Record: Sending Packet[%d] %s(%d) with length: %d\n",
(int) uint64touint32(&state->connection_state.write_sequence_number), _gnutls_packet2str(type), type, sizeofdata);
#endif
return GNUTLS_E_UNABLE_SEND_DATA;
}
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Sended Packet[%d] %s(%d) with length: %d\n",
+ _gnutls_log( "Record: Sended Packet[%d] %s(%d) with length: %d\n",
(int) uint64touint32(&state->connection_state.write_sequence_number), _gnutls_packet2str(type), type, cipher_size);
#endif
opaque data[1] = { GNUTLS_TYPE_CHANGE_CIPHER_SPEC };
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Record: Sending ChangeCipherSpec\n");
+ _gnutls_log( "Record: Sending ChangeCipherSpec\n");
#endif
return gnutls_send_int( cd, state, GNUTLS_CHANGE_CIPHER_SPEC, -1, data, 1, 0);
*/
state->gnutls_internals.v2_hello = length;
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: V2 packet received. Length: %d\n", length);
+ _gnutls_log( "Record: V2 packet received. Length: %d\n", length);
#endif
} else {
if ( (htype!=GNUTLS_CLIENT_HELLO && htype!=GNUTLS_SERVER_HELLO) && gnutls_get_current_version(state) != version) {
gnutls_assert();
# ifdef RECORD_DEBUG
- fprintf(stderr, "Record: INVALID VERSION PACKET: (%d/%d) %d.%d\n", headers[0], htype, headers[1], headers[2]);
+ _gnutls_log( "Record: INVALID VERSION PACKET: (%d/%d) %d.%d\n", headers[0], htype, headers[1], headers[2]);
# endif
if (type!=GNUTLS_ALERT) {
/* some browsers return garbage, when
#endif
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Expected Packet[%d] %s(%d) with length: %d\n",
+ _gnutls_log( "Record: Expected Packet[%d] %s(%d) with length: %d\n",
(int) uint64touint32(&state->connection_state.read_sequence_number), _gnutls_packet2str(type), type, sizeofdata);
- fprintf(stderr, "Record: Received Packet[%d] %s(%d) with length: %d\n",
+ _gnutls_log( "Record: Received Packet[%d] %s(%d) with length: %d\n",
(int) uint64touint32(&state->connection_state.read_sequence_number), _gnutls_packet2str(recv_type), recv_type, length);
#endif
if (length > MAX_RECV_SIZE) {
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: FATAL ERROR: Received packet with length: %d\n", length);
+ _gnutls_log( "Record: FATAL ERROR: Received packet with length: %d\n", length);
#endif
_gnutls_send_alert(cd, state, GNUTLS_FATAL, GNUTLS_RECORD_OVERFLOW);
state->gnutls_internals.valid_connection = VALID_FALSE;
*/
if (ret != length) {
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Received packet with length: %d\nExpected %d\n", ret, length);
+ _gnutls_log( "Record: Received packet with length: %d\nExpected %d\n", ret, length);
#endif
gnutls_free(ciphertext);
state->gnutls_internals.valid_connection = VALID_FALSE;
*/
if (type == GNUTLS_CHANGE_CIPHER_SPEC && recv_type == GNUTLS_CHANGE_CIPHER_SPEC) {
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: ChangeCipherSpec Packet was received\n");
+ _gnutls_log( "Record: ChangeCipherSpec Packet was received\n");
#endif
gnutls_free(ciphertext);
}
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Decrypted Packet[%d] %s(%d) with length: %d\n",
+ _gnutls_log( "Record: Decrypted Packet[%d] %s(%d) with length: %d\n",
(int) uint64touint32(&state->connection_state.read_sequence_number), _gnutls_packet2str(recv_type), recv_type, tmplen);
#endif
switch (recv_type) {
case GNUTLS_ALERT:
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Alert[%d|%d] - %s - was received\n", tmpdata[0], tmpdata[1], _gnutls_alert2str((int)tmpdata[1]));
+ _gnutls_log( "Record: Alert[%d|%d] - %s - was received\n", tmpdata[0], tmpdata[1], _gnutls_alert2str((int)tmpdata[1]));
#endif
state->gnutls_internals.last_alert = tmpdata[1];
break;
default:
#ifdef RECORD_DEBUG
- fprintf(stderr, "Record: Received Unknown packet %d expecting %d\n", recv_type, type);
+ _gnutls_log( "Record: Received Unknown packet %d expecting %d\n", recv_type, type);
#endif
gnutls_assert();
return GNUTLS_E_UNKNOWN_ERROR;
if (*hash==-1) {
#ifdef DEBUG
- fprintf(stderr, "HASH OID: %s\n", str);
+ _gnutls_log( "HASH OID: %s\n", str);
#endif
gnutls_assert();
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
return GNUTLS_CERT_TRUSTED;
}
#ifdef DEBUG
- fprintf(stderr, "PK: %d\n", issuer->subject_pk_algorithm);
+ _gnutls_log( "PK: %d\n", issuer->subject_pk_algorithm);
#endif
gnutls_assert();
x = _gnutls_remove_unwanted_ciphersuites( state, &ciphers, x);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "Requested cipher suites: \n");
+ _gnutls_log( "Requested cipher suites: \n");
for (j = 0; j < datalen; j += 3) {
if (data[j] == 0) { /* only print if in v2 compat mode */
- fprintf(stderr, "\t%s\n",
+ _gnutls_log( "\t%s\n",
_gnutls_cipher_suite_get_name(*
((GNUTLS_CipherSuite *) & data[j+1])));
}
}
- fprintf(stderr, "Supported cipher suites: \n");
+ _gnutls_log( "Supported cipher suites: \n");
for (j = 0; j < x; j++)
- fprintf(stderr, "\t%s\n",
+ _gnutls_log( "\t%s\n",
_gnutls_cipher_suite_get_name(ciphers[j]));
#endif
memset(ret, '\0', 2);
if ( memcmp(ciphers[i].CipherSuite, &data[j+1],
2) == 0) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr,
+ _gnutls_log(
"Selected cipher suite: ");
- fprintf(stderr, "%s\n",
+ _gnutls_log( "%s\n",
_gnutls_cipher_suite_get_name
(*
((GNUTLS_CipherSuite *) &
DECR_LEN(len, 2);
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr, "V2 Handshake: Client's version: %d.%d\n", data[pos],
+ _gnutls_log( "V2 Handshake: Client's version: %d.%d\n", data[pos],
data[pos + 1]);
#endif
current_cipher_suite));
if (state->gnutls_internals.auth_struct == NULL) {
#ifdef HANDSHAKE_DEBUG
- fprintf(stderr,
+ _gnutls_log(
"V2 Handshake: Cannot find the appropriate handler for the KX algorithm\n");
#endif
gnutls_assert();