Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Aug 2015 07:20:34 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r286219 - in stable/10/usr.sbin: ctld iscsid
Message-ID:  <201508030720.t737KYpF070643@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Mon Aug  3 07:20:33 2015
New Revision: 286219
URL: https://svnweb.freebsd.org/changeset/base/286219

Log:
  MFC r285086:
  
  Remove OpenSSL dependency from iscsid(8) and ctld(8).
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/usr.sbin/ctld/Makefile
  stable/10/usr.sbin/ctld/chap.c
  stable/10/usr.sbin/ctld/ctld.h
  stable/10/usr.sbin/iscsid/Makefile
  stable/10/usr.sbin/iscsid/chap.c
  stable/10/usr.sbin/iscsid/iscsid.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/ctld/Makefile
==============================================================================
--- stable/10/usr.sbin/ctld/Makefile	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/ctld/Makefile	Mon Aug  3 07:20:33 2015	(r286219)
@@ -10,8 +10,8 @@ CFLAGS+=	-I${.CURDIR}/../../sys/dev/iscs
 #CFLAGS+=	-DICL_KERNEL_PROXY
 MAN=		ctld.8 ctl.conf.5
 
-DPADD=		${LIBBSDXML} ${LIBCRYPTO} ${LIBL} ${LIBSBUF} ${LIBUTIL}
-LDADD=		-lbsdxml -lcrypto -ll -lsbuf -lutil
+DPADD=		${LIBBSDXML} ${LIBL} ${LIBMD} ${LIBSBUF} ${LIBUTIL}
+LDADD=		-lbsdxml -ll -lmd -lsbuf -lutil
 
 YFLAGS+=	-v
 CLEANFILES=	y.tab.c y.tab.h y.output

Modified: stable/10/usr.sbin/ctld/chap.c
==============================================================================
--- stable/10/usr.sbin/ctld/chap.c	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/ctld/chap.c	Mon Aug  3 07:20:33 2015	(r286219)
@@ -32,12 +32,11 @@
 __FBSDID("$FreeBSD$");
 
 #include <assert.h>
+#include <stdlib.h>
 #include <string.h>
 #include <netinet/in.h>
 #include <resolv.h>
-#include <openssl/err.h>
-#include <openssl/md5.h>
-#include <openssl/rand.h>
+#include <md5.h>
 
 #include "ctld.h"
 
@@ -47,17 +46,14 @@ chap_compute_md5(const char id, const ch
     size_t response_len)
 {
 	MD5_CTX ctx;
-	int rv;
 
-	assert(response_len == MD5_DIGEST_LENGTH);
+	assert(response_len == CHAP_DIGEST_LEN);
 
-	MD5_Init(&ctx);
-	MD5_Update(&ctx, &id, sizeof(id));
-	MD5_Update(&ctx, secret, strlen(secret));
-	MD5_Update(&ctx, challenge, challenge_len);
-	rv = MD5_Final(response, &ctx);
-	if (rv != 1)
-		log_errx(1, "MD5_Final");
+	MD5Init(&ctx);
+	MD5Update(&ctx, &id, sizeof(id));
+	MD5Update(&ctx, secret, strlen(secret));
+	MD5Update(&ctx, challenge, challenge_len);
+	MD5Final(response, &ctx);
 }
 
 static int
@@ -235,7 +231,6 @@ struct chap *
 chap_new(void)
 {
 	struct chap *chap;
-	int rv;
 
 	chap = calloc(sizeof(*chap), 1);
 	if (chap == NULL)
@@ -244,16 +239,8 @@ chap_new(void)
 	/*
 	 * Generate the challenge.
 	 */
-	rv = RAND_bytes(chap->chap_challenge, sizeof(chap->chap_challenge));
-	if (rv != 1) {
-		log_errx(1, "RAND_bytes failed: %s",
-		    ERR_error_string(ERR_get_error(), NULL));
-	}
-	rv = RAND_bytes(&chap->chap_id, sizeof(chap->chap_id));
-	if (rv != 1) {
-		log_errx(1, "RAND_bytes failed: %s",
-		    ERR_error_string(ERR_get_error(), NULL));
-	}
+	arc4random_buf(chap->chap_challenge, sizeof(chap->chap_challenge));
+	arc4random_buf(&chap->chap_id, sizeof(chap->chap_id));
 
 	return (chap);
 }
@@ -320,7 +307,7 @@ chap_receive(struct chap *chap, const ch
 int
 chap_authenticate(struct chap *chap, const char *secret)
 {
-	char expected_response[MD5_DIGEST_LENGTH];
+	char expected_response[CHAP_DIGEST_LEN];
 
 	chap_compute_md5(chap->chap_id, secret,
 	    chap->chap_challenge, sizeof(chap->chap_challenge),
@@ -397,7 +384,7 @@ rchap_get_response_bin(struct rchap *rch
     void **responsep, size_t *response_lenp)
 {
 	void *response_bin;
-	size_t response_bin_len = MD5_DIGEST_LENGTH;
+	size_t response_bin_len = CHAP_DIGEST_LEN;
 
 	response_bin = calloc(response_bin_len, 1);
 	if (response_bin == NULL)

Modified: stable/10/usr.sbin/ctld/ctld.h
==============================================================================
--- stable/10/usr.sbin/ctld/ctld.h	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/ctld/ctld.h	Mon Aug  3 07:20:33 2015	(r286219)
@@ -39,7 +39,6 @@
 #include <sys/socket.h>
 #include <stdbool.h>
 #include <libutil.h>
-#include <openssl/md5.h>
 
 #define	DEFAULT_CONFIG_PATH		"/etc/ctl.conf"
 #define	DEFAULT_PIDFILE			"/var/run/ctld.pid"
@@ -261,11 +260,12 @@ struct keys {
 };
 
 #define	CHAP_CHALLENGE_LEN	1024
+#define	CHAP_DIGEST_LEN		16 /* Equal to MD5 digest size. */
 
 struct chap {
 	unsigned char	chap_id;
 	char		chap_challenge[CHAP_CHALLENGE_LEN];
-	char		chap_response[MD5_DIGEST_LENGTH];
+	char		chap_response[CHAP_DIGEST_LEN];
 };
 
 struct rchap {

Modified: stable/10/usr.sbin/iscsid/Makefile
==============================================================================
--- stable/10/usr.sbin/iscsid/Makefile	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/iscsid/Makefile	Mon Aug  3 07:20:33 2015	(r286219)
@@ -8,8 +8,8 @@ CFLAGS+=	-I${.CURDIR}/../../sys/dev/iscs
 #CFLAGS+=	-DICL_KERNEL_PROXY
 MAN=		iscsid.8
 
-DPADD=		${LIBCRYPTO} ${LIBSSL} ${LIBUTIL}
-LDADD=		-lcrypto -lssl -lutil
+DPADD=		${LIBMD} ${LIBUTIL}
+LDADD=		-lmd -lutil
 
 WARNS=		6
 

Modified: stable/10/usr.sbin/iscsid/chap.c
==============================================================================
--- stable/10/usr.sbin/iscsid/chap.c	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/iscsid/chap.c	Mon Aug  3 07:20:33 2015	(r286219)
@@ -32,12 +32,11 @@
 __FBSDID("$FreeBSD$");
 
 #include <assert.h>
+#include <stdlib.h>
 #include <string.h>
 #include <netinet/in.h>
 #include <resolv.h>
-#include <openssl/err.h>
-#include <openssl/md5.h>
-#include <openssl/rand.h>
+#include <md5.h>
 
 #include "iscsid.h"
 
@@ -47,17 +46,14 @@ chap_compute_md5(const char id, const ch
     size_t response_len)
 {
 	MD5_CTX ctx;
-	int rv;
 
-	assert(response_len == MD5_DIGEST_LENGTH);
+	assert(response_len == CHAP_DIGEST_LEN);
 
-	MD5_Init(&ctx);
-	MD5_Update(&ctx, &id, sizeof(id));
-	MD5_Update(&ctx, secret, strlen(secret));
-	MD5_Update(&ctx, challenge, challenge_len);
-	rv = MD5_Final(response, &ctx);
-	if (rv != 1)
-		log_errx(1, "MD5_Final");
+	MD5Init(&ctx);
+	MD5Update(&ctx, &id, sizeof(id));
+	MD5Update(&ctx, secret, strlen(secret));
+	MD5Update(&ctx, challenge, challenge_len);
+	MD5Final(response, &ctx);
 }
 
 static int
@@ -235,7 +231,6 @@ struct chap *
 chap_new(void)
 {
 	struct chap *chap;
-	int rv;
 
 	chap = calloc(sizeof(*chap), 1);
 	if (chap == NULL)
@@ -244,16 +239,8 @@ chap_new(void)
 	/*
 	 * Generate the challenge.
 	 */
-	rv = RAND_bytes(chap->chap_challenge, sizeof(chap->chap_challenge));
-	if (rv != 1) {
-		log_errx(1, "RAND_bytes failed: %s",
-		    ERR_error_string(ERR_get_error(), NULL));
-	}
-	rv = RAND_bytes(&chap->chap_id, sizeof(chap->chap_id));
-	if (rv != 1) {
-		log_errx(1, "RAND_bytes failed: %s",
-		    ERR_error_string(ERR_get_error(), NULL));
-	}
+	arc4random_buf(chap->chap_challenge, sizeof(chap->chap_challenge));
+	arc4random_buf(&chap->chap_id, sizeof(chap->chap_id));
 
 	return (chap);
 }
@@ -320,7 +307,7 @@ chap_receive(struct chap *chap, const ch
 int
 chap_authenticate(struct chap *chap, const char *secret)
 {
-	char expected_response[MD5_DIGEST_LENGTH];
+	char expected_response[CHAP_DIGEST_LEN];
 
 	chap_compute_md5(chap->chap_id, secret,
 	    chap->chap_challenge, sizeof(chap->chap_challenge),
@@ -397,7 +384,7 @@ rchap_get_response_bin(struct rchap *rch
     void **responsep, size_t *response_lenp)
 {
 	void *response_bin;
-	size_t response_bin_len = MD5_DIGEST_LENGTH;
+	size_t response_bin_len = CHAP_DIGEST_LEN;
 
 	response_bin = calloc(response_bin_len, 1);
 	if (response_bin == NULL)

Modified: stable/10/usr.sbin/iscsid/iscsid.h
==============================================================================
--- stable/10/usr.sbin/iscsid/iscsid.h	Mon Aug  3 06:06:56 2015	(r286218)
+++ stable/10/usr.sbin/iscsid/iscsid.h	Mon Aug  3 07:20:33 2015	(r286219)
@@ -34,7 +34,6 @@
 
 #include <stdbool.h>
 #include <stdint.h>
-#include <openssl/md5.h>
 
 #include <iscsi_ioctl.h>
 
@@ -82,11 +81,12 @@ struct keys {
 };
 
 #define	CHAP_CHALLENGE_LEN	1024
+#define	CHAP_DIGEST_LEN		16 /* Equal to MD5 digest size. */
 
 struct chap {
 	unsigned char	chap_id;
 	char		chap_challenge[CHAP_CHALLENGE_LEN];
-	char		chap_response[MD5_DIGEST_LENGTH];
+	char		chap_response[CHAP_DIGEST_LEN];
 };
 
 struct rchap {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508030720.t737KYpF070643>