From af95368c0f30955f0e13b587d5d6d4989fd5a83e Mon Sep 17 00:00:00 2001
From: Guus Sliepen <guus@tinc-vpn.org>
Date: Sun, 19 Mar 2006 13:06:21 +0000
Subject: [PATCH] Fix signedness compiler warnings.

---
 src/meta.c          |  6 +++---
 src/net.c           |  6 +++---
 src/net_packet.c    | 20 ++++++++++----------
 src/net_setup.c     |  4 ++--
 src/net_socket.c    |  3 ++-
 src/protocol_auth.c | 20 ++++++++++----------
 src/protocol_key.c  |  2 +-
 src/protocol_misc.c |  2 +-
 8 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/src/meta.c b/src/meta.c
index e376c33b..77203f60 100644
--- a/src/meta.c
+++ b/src/meta.c
@@ -60,8 +60,8 @@ bool send_meta(connection_t *c, const char *buffer, int length)
 
 	/* Add our data to buffer */
 	if(c->status.encryptout) {
-		result = EVP_EncryptUpdate(c->outctx, c->outbuf + c->outbufstart + c->outbuflen,
-				&outlen, buffer, length);
+		result = EVP_EncryptUpdate(c->outctx, (unsigned char *)c->outbuf + c->outbufstart + c->outbuflen,
+				&outlen, (unsigned char *)buffer, length);
 		if(!result || outlen < length) {
 			logger(LOG_ERR, _("Error while encrypting metadata to %s (%s): %s"),
 					c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
@@ -169,7 +169,7 @@ bool receive_meta(connection_t *c)
 		/* Decrypt */
 
 		if(c->status.decryptin && !decrypted) {
-			result = EVP_DecryptUpdate(c->inctx, inbuf, &lenout, c->buffer + oldlen, lenin);
+			result = EVP_DecryptUpdate(c->inctx, (unsigned char *)inbuf, &lenout, (unsigned char *)c->buffer + oldlen, lenin);
 			if(!result || lenout != lenin) {
 				logger(LOG_ERR, _("Error while decrypting metadata from %s (%s): %s"),
 						c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
diff --git a/src/net.c b/src/net.c
index a21850af..055d08b2 100644
--- a/src/net.c
+++ b/src/net.c
@@ -288,7 +288,7 @@ static void check_network_activity(fd_set * readset, fd_set * writeset)
 	connection_t *c;
 	avl_node_t *node;
 	int result, i;
-	int len = sizeof(result);
+	socklen_t len = sizeof(result);
 	vpn_packet_t packet;
 
 	cp();
@@ -411,9 +411,9 @@ int main_loop(void)
 			if(keyexpires < now) {
 				ifdebug(STATUS) logger(LOG_INFO, _("Regenerating symmetric key"));
 
-				RAND_pseudo_bytes(myself->key, myself->keylength);
+				RAND_pseudo_bytes((unsigned char *)myself->key, myself->keylength);
 				if(myself->cipher)
-					EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len);
+					EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, (unsigned char *)myself->key, (unsigned char *)myself->key + myself->cipher->key_len);
 				send_key_changed(broadcast, myself);
 				keyexpires = now + keylifetime;
 			}
diff --git a/src/net_packet.c b/src/net_packet.c
index 06afc0b0..d3e25c5e 100644
--- a/src/net_packet.c
+++ b/src/net_packet.c
@@ -174,7 +174,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
 	int nextpkt = 0;
 	vpn_packet_t *outpkt = pkt[0];
 	int outlen, outpad;
-	char hmac[EVP_MAX_MD_SIZE];
+	unsigned char hmac[EVP_MAX_MD_SIZE];
 	int i;
 
 	cp();
@@ -192,7 +192,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
 	if(myself->digest && myself->maclength) {
 		inpkt->len -= myself->maclength;
 		HMAC(myself->digest, myself->key, myself->keylength,
-			 (char *) &inpkt->seqno, inpkt->len, hmac, NULL);
+			 (unsigned char *) &inpkt->seqno, inpkt->len, (unsigned char *)hmac, NULL);
 
 		if(memcmp(hmac, (char *) &inpkt->seqno + inpkt->len, myself->maclength)) {
 			ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Got unauthenticated packet from %s (%s)"),
@@ -207,9 +207,9 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
 		outpkt = pkt[nextpkt++];
 
 		if(!EVP_DecryptInit_ex(&packet_ctx, NULL, NULL, NULL, NULL)
-				|| !EVP_DecryptUpdate(&packet_ctx, (char *) &outpkt->seqno, &outlen,
-					(char *) &inpkt->seqno, inpkt->len)
-				|| !EVP_DecryptFinal_ex(&packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
+				|| !EVP_DecryptUpdate(&packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
+					(unsigned char *) &inpkt->seqno, inpkt->len)
+				|| !EVP_DecryptFinal_ex(&packet_ctx, (unsigned char *) &outpkt->seqno + outlen, &outpad)) {
 			ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Error decrypting packet from %s (%s): %s"),
 						n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
 			return;
@@ -352,9 +352,9 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
 		outpkt = pkt[nextpkt++];
 
 		if(!EVP_EncryptInit_ex(&n->packet_ctx, NULL, NULL, NULL, NULL)
-				|| !EVP_EncryptUpdate(&n->packet_ctx, (char *) &outpkt->seqno, &outlen,
-					(char *) &inpkt->seqno, inpkt->len)
-				|| !EVP_EncryptFinal_ex(&n->packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
+				|| !EVP_EncryptUpdate(&n->packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
+					(unsigned char *) &inpkt->seqno, inpkt->len)
+				|| !EVP_EncryptFinal_ex(&n->packet_ctx, (unsigned char *) &outpkt->seqno + outlen, &outpad)) {
 			ifdebug(TRAFFIC) logger(LOG_ERR, _("Error while encrypting packet to %s (%s): %s"),
 						n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
 			goto end;
@@ -367,8 +367,8 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
 	/* Add the message authentication code */
 
 	if(n->digest && n->maclength) {
-		HMAC(n->digest, n->key, n->keylength, (char *) &inpkt->seqno,
-			 inpkt->len, (char *) &inpkt->seqno + inpkt->len, &outlen);
+		HMAC(n->digest, n->key, n->keylength, (unsigned char *) &inpkt->seqno,
+			 inpkt->len, (unsigned char *) &inpkt->seqno + inpkt->len, NULL);
 		inpkt->len += n->maclength;
 	}
 
diff --git a/src/net_setup.c b/src/net_setup.c
index e0f15696..e447a1f9 100644
--- a/src/net_setup.c
+++ b/src/net_setup.c
@@ -368,7 +368,7 @@ bool setup_myself(void)
 	myself->connection->outcipher = EVP_bf_ofb();
 
 	myself->key = xmalloc(myself->keylength);
-	RAND_pseudo_bytes(myself->key, myself->keylength);
+	RAND_pseudo_bytes((unsigned char *)myself->key, myself->keylength);
 
 	if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
 		keylifetime = 3600;
@@ -377,7 +377,7 @@ bool setup_myself(void)
 	
 	if(myself->cipher) {
 		EVP_CIPHER_CTX_init(&packet_ctx);
-		if(!EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len)) {
+		if(!EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, (unsigned char *)myself->key, (unsigned char *)myself->key + myself->cipher->key_len)) {
 			logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
 					myself->name, myself->hostname, ERR_error_string(ERR_get_error(), NULL));
 			return false;
diff --git a/src/net_socket.c b/src/net_socket.c
index fb776f89..fcd5fecb 100644
--- a/src/net_socket.c
+++ b/src/net_socket.c
@@ -391,7 +391,8 @@ bool handle_new_meta_connection(int sock)
 	int option;
 	connection_t *c;
 	sockaddr_t sa;
-	int fd, len = sizeof(sa);
+	int fd;
+	socklen_t len = sizeof(sa);
 
 	cp();
 
diff --git a/src/protocol_auth.c b/src/protocol_auth.c
index c44c6d01..4c885623 100644
--- a/src/protocol_auth.c
+++ b/src/protocol_auth.c
@@ -138,7 +138,7 @@ bool send_metakey(connection_t *c)
 	cp();
 	/* Copy random data to the buffer */
 
-	RAND_pseudo_bytes(c->outkey, len);
+	RAND_pseudo_bytes((unsigned char *)c->outkey, len);
 
 	/* The message we send must be smaller than the modulus of the RSA key.
 	   By definition, for a key of k bits, the following formula holds:
@@ -166,7 +166,7 @@ bool send_metakey(connection_t *c)
 	   with a length equal to that of the modulus of the RSA key.
 	 */
 
-	if(RSA_public_encrypt(len, c->outkey, buffer, c->rsa_key, RSA_NO_PADDING) != len) {
+	if(RSA_public_encrypt(len, (unsigned char *)c->outkey, (unsigned char *)buffer, c->rsa_key, RSA_NO_PADDING) != len) {
 		logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
 			   c->name, c->hostname);
 		return false;
@@ -188,8 +188,8 @@ bool send_metakey(connection_t *c)
 
 	if(c->outcipher) {
 		if(!EVP_EncryptInit(c->outctx, c->outcipher,
-					c->outkey + len - c->outcipher->key_len,
-					c->outkey + len - c->outcipher->key_len -
+					(unsigned char *)c->outkey + len - c->outcipher->key_len,
+					(unsigned char *)c->outkey + len - c->outcipher->key_len -
 					c->outcipher->iv_len)) {
 			logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
 					c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
@@ -239,7 +239,7 @@ bool metakey_h(connection_t *c)
 
 	/* Decrypt the meta key */
 
-	if(RSA_private_decrypt(len, buffer, c->inkey, myself->connection->rsa_key, RSA_NO_PADDING) != len) {	/* See challenge() */
+	if(RSA_private_decrypt(len, (unsigned char *)buffer, (unsigned char *)c->inkey, myself->connection->rsa_key, RSA_NO_PADDING) != len) {	/* See challenge() */
 		logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
 			   c->name, c->hostname);
 		return false;
@@ -264,8 +264,8 @@ bool metakey_h(connection_t *c)
 		}
 
 		if(!EVP_DecryptInit(c->inctx, c->incipher,
-					c->inkey + len - c->incipher->key_len,
-					c->inkey + len - c->incipher->key_len -
+					(unsigned char *)c->inkey + len - c->incipher->key_len,
+					(unsigned char *)c->inkey + len - c->incipher->key_len -
 					c->incipher->iv_len)) {
 			logger(LOG_ERR, _("Error during initialisation of cipher from %s (%s): %s"),
 					c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
@@ -322,7 +322,7 @@ bool send_challenge(connection_t *c)
 
 	/* Copy random data to the buffer */
 
-	RAND_pseudo_bytes(c->hischallenge, len);
+	RAND_pseudo_bytes((unsigned char *)c->hischallenge, len);
 
 	/* Convert to hex */
 
@@ -384,7 +384,7 @@ bool send_chal_reply(connection_t *c)
 
 	if(!EVP_DigestInit(&ctx, c->indigest)
 			|| !EVP_DigestUpdate(&ctx, c->mychallenge, RSA_size(myself->connection->rsa_key))
-			|| !EVP_DigestFinal(&ctx, hash, NULL)) {
+			|| !EVP_DigestFinal(&ctx, (unsigned char *)hash, NULL)) {
 		logger(LOG_ERR, _("Error during calculation of response for %s (%s): %s"),
 			c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
 		return false;
@@ -430,7 +430,7 @@ bool chal_reply_h(connection_t *c)
 
 	if(!EVP_DigestInit(&ctx, c->outdigest)
 			|| !EVP_DigestUpdate(&ctx, c->hischallenge, RSA_size(c->rsa_key))
-			|| !EVP_DigestFinal(&ctx, myhash, NULL)) {
+			|| !EVP_DigestFinal(&ctx, (unsigned char *)myhash, NULL)) {
 		logger(LOG_ERR, _("Error during calculation of response from %s (%s): %s"),
 			c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
 		return false;
diff --git a/src/protocol_key.c b/src/protocol_key.c
index e393dd64..591bb660 100644
--- a/src/protocol_key.c
+++ b/src/protocol_key.c
@@ -262,7 +262,7 @@ bool ans_key_h(connection_t *c)
 	from->compression = compression;
 
 	if(from->cipher)
-		if(!EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, from->key, from->key + from->cipher->key_len)) {
+		if(!EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, (unsigned char *)from->key, (unsigned char *)from->key + from->cipher->key_len)) {
 			logger(LOG_ERR, _("Error during initialisation of key from %s (%s): %s"),
 					from->name, from->hostname, ERR_error_string(ERR_get_error(), NULL));
 			return false;
diff --git a/src/protocol_misc.c b/src/protocol_misc.c
index b2f6ddc5..0b893a67 100644
--- a/src/protocol_misc.c
+++ b/src/protocol_misc.c
@@ -163,7 +163,7 @@ bool send_tcppacket(connection_t *c, vpn_packet_t *packet)
 	if(!send_request(c, "%d %hd", PACKET, packet->len))
 		return false;
 
-	return send_meta(c, packet->data, packet->len);
+	return send_meta(c, (char *)packet->data, packet->len);
 }
 
 bool tcppacket_h(connection_t *c)
-- 
2.39.5