[Asterisk-cvs] asterisk/res res_crypto.c,1.12,1.13

markster at lists.digium.com markster at lists.digium.com
Sat Aug 14 17:42:22 CDT 2004


Update of /usr/cvsroot/asterisk/res
In directory localhost.localdomain:/tmp/cvs-serv14537/res

Modified Files:
	res_crypto.c 
Log Message:
Oops, forgot message length


Index: res_crypto.c
===================================================================
RCS file: /usr/cvsroot/asterisk/res/res_crypto.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- res_crypto.c	14 Aug 2004 20:19:38 -0000	1.12
+++ res_crypto.c	14 Aug 2004 21:28:30 -0000	1.13
@@ -296,7 +296,7 @@
 
 #endif
 
-int ast_sign_bin(struct ast_key *key, char *msg, unsigned char *dsig)
+int ast_sign_bin(struct ast_key *key, char *msg, int msglen, unsigned char *dsig)
 {
 	unsigned char digest[20];
 	int siglen = sizeof(dsig);
@@ -308,7 +308,7 @@
 	}
 
 	/* Calculate digest of message */
-	SHA1((unsigned char *)msg, strlen(msg), digest);
+	SHA1((unsigned char *)msg, msglen, digest);
 
 	/* Verify signature */
 	res = RSA_sign(NID_sha1, digest, sizeof(digest), dsig, &siglen, key->rsa);
@@ -332,7 +332,7 @@
 	unsigned char dsig[128];
 	int siglen = sizeof(dsig);
 	int res;
-	res = ast_sign_bin(key, msg, dsig);
+	res = ast_sign_bin(key, msg, strlen(msg), dsig);
 	if (!res)
 		/* Success -- encode (256 bytes max as documented) */
 		ast_base64encode(sig, dsig, siglen, 256);
@@ -340,7 +340,7 @@
 	
 }
 
-int ast_check_signature_bin(struct ast_key *key, char *msg, unsigned char *dsig)
+int ast_check_signature_bin(struct ast_key *key, char *msg, int msglen, unsigned char *dsig)
 {
 	unsigned char digest[20];
 	int res;
@@ -353,7 +353,7 @@
 	}
 
 	/* Calculate digest of message */
-	SHA1((unsigned char *)msg, strlen(msg), digest);
+	SHA1((unsigned char *)msg, msglen, digest);
 
 	/* Verify signature */
 	res = RSA_verify(NID_sha1, digest, sizeof(digest), dsig, sizeof(dsig), key->rsa);
@@ -377,7 +377,7 @@
 		ast_log(LOG_WARNING, "Signature improper length (expect %d, got %d)\n", (int)sizeof(dsig), (int)res);
 		return -1;
 	}
-	res = ast_check_signature_bin(key, msg, dsig);
+	res = ast_check_signature_bin(key, msg, strlen(msg), dsig);
 	return res;
 }
 




More information about the svn-commits mailing list