kernel - Remove NETSMBCRYPTO option (make it the default)
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 2 Dec 2016 21:33:19 +0000 (13:33 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 2 Dec 2016 21:58:13 +0000 (13:58 -0800)
* Remove the NETSMBCRYPTO option entirely, and make its function the
  default.

sys/conf/files
sys/conf/options
sys/config/LINT64
sys/netproto/smb/smb_crypt.c
sys/netproto/smb/smb_smb.c
sys/vfs/smbfs/Makefile

index af532fb..034d2da 100644 (file)
@@ -1670,9 +1670,9 @@ netproto/smb/smb_smb.c            optional netsmb
 netproto/smb/smb_subr.c                optional netsmb
 netproto/smb/smb_trantcp.c     optional netsmb
 netproto/smb/smb_usr.c         optional netsmb
-crypto/des/des_ecb.c           optional netsmbcrypto
-crypto/des/des_enc.c           optional netsmbcrypto
-crypto/des/des_setkey.c                optional netsmbcrypto
+crypto/des/des_ecb.c           optional netsmb
+crypto/des/des_enc.c           optional netsmb
+crypto/des/des_setkey.c                optional netsmb
 vfs/nfs/nfs_bio.c              optional nfs
 vfs/nfs/nfs_node.c             optional nfs
 vfs/nfs/nfs_serv.c             optional nfs
index e2cffe0..820b624 100644 (file)
@@ -151,7 +151,6 @@ NTFS_ICONV  opt_dontuse.h
 
 # SMB/CIFS requester
 NETSMB         opt_netsmb.h
-NETSMBCRYPTO   opt_netsmb.h
 
 # If you are following the conditions in the copyright,
 # you can enable soft-updates which will speed up a lot of things
index 93aa5c4..84c3d90 100644 (file)
@@ -255,9 +255,7 @@ options     MPLS                    #Multi-Protocol Label Switching
 # SMB/CIFS requester
 # NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV
 # options.
-# NETSMBCRYPTO enables support for encrypted passwords.
 options        NETSMB                  #SMB/CIFS requester
-options        NETSMBCRYPTO            #encrypted password support for SMB
 
 # mchain library. It can be either loaded as KLD or compiled into kernel
 options        LIBMCHAIN               #mbuf management library
index 2379d23..a66a1ce 100644 (file)
@@ -62,8 +62,6 @@
 
 #include "opt_netsmb.h"
 
-#ifdef NETSMBCRYPTO
-
 #include <crypto/des/des.h>
 
 static u_char N8[] = {0x4b, 0x47, 0x53, 0x21, 0x40, 0x23, 0x24, 0x25};
@@ -88,13 +86,10 @@ smb_E(const u_char *key, u_char *data, u_char *dest)
        des_ecb_encrypt((des_cblock *)data, (des_cblock *)dest, *ksp, 1);
        kfree(ksp, M_SMBTEMP);
 }
-#endif
-
 
 int
 smb_encrypt(const u_char *apwd, u_char *C8, u_char *RN)
 {
-#ifdef NETSMBCRYPTO
        u_char *p, *P14, *S21;
 
        p = kmalloc(14 + 21, M_SMBTEMP, M_WAITOK | M_ZERO);
@@ -112,17 +107,11 @@ smb_encrypt(const u_char *apwd, u_char *C8, u_char *RN)
        smb_E(S21 + 14, C8, RN + 16);
        kfree(p, M_SMBTEMP);
        return 0;
-#else
-       SMBERROR("password encryption is not available\n");
-       bzero(RN, 24);
-       return EAUTH;
-#endif
 }
 
 int
 smb_ntencrypt(const u_char *apwd, u_char *C8, u_char *RN)
 {
-#ifdef NETSMBCRYPTO
        u_char S21[21];
        u_int16_t *unipwd;
        MD4_CTX *ctxp;
@@ -146,11 +135,6 @@ smb_ntencrypt(const u_char *apwd, u_char *C8, u_char *RN)
        smb_E(S21 + 7, C8, RN + 8);
        smb_E(S21 + 14, C8, RN + 16);
        return 0;
-#else
-       SMBERROR("password encryption is not available\n");
-       bzero(RN, 24);
-       return EAUTH;
-#endif
 }
 
 /*
@@ -159,7 +143,6 @@ smb_ntencrypt(const u_char *apwd, u_char *C8, u_char *RN)
 int
 smb_calcmackey(struct smb_vc *vcp)
 {
-#ifdef NETSMBCRYPTO
        const char *pwd;
        u_int16_t *unipwd;
        int len;
@@ -210,10 +193,6 @@ smb_calcmackey(struct smb_vc *vcp)
        smb_E(S21 + 14, vcp->vc_ch, vcp->vc_mackey + 32);
 
        return (0);
-#else
-       panic("smb_calcmackey: encryption not available");
-       return (0);
-#endif /* NETSMBCRYPTO */
 }
 
 /*
@@ -222,7 +201,6 @@ smb_calcmackey(struct smb_vc *vcp)
 int
 smb_rq_sign(struct smb_rq *rqp)
 {
-#ifdef NETSMBCRYPTO
        struct smb_vc *vcp = rqp->sr_vc;
        struct mbchain *mbp;
        struct mbuf *mb;
@@ -278,10 +256,6 @@ smb_rq_sign(struct smb_rq *rqp)
        bcopy(digest, rqp->sr_rqsig, 8);
 
        return (0);
-#else
-       panic("smb_rq_sign: encryption not available");
-       return (0);
-#endif /* NETSMBCRYPTO */
 }
 
 /*
@@ -290,7 +264,6 @@ smb_rq_sign(struct smb_rq *rqp)
 int
 smb_rq_verify(struct smb_rq *rqp)
 {
-#ifdef NETSMBCRYPTO
        struct smb_vc *vcp = rqp->sr_vc;
        struct mdchain *mdp;
        u_char sigbuf[8];
@@ -332,8 +305,4 @@ smb_rq_verify(struct smb_rq *rqp)
                return (EAUTH);
 
        return (0);
-#else
-       panic("smb_rq_verify: encryption not available");
-       return (0);
-#endif /* NETSMBCRYPTO */
 }
index 2bec1f5..e8a0668 100644 (file)
@@ -164,10 +164,8 @@ smb_smb_negotiate(struct smb_vc *vcp, struct smb_cred *scred)
                                vcp->vc_chlen = sblen;
                                vcp->obj.co_flags |= SMBV_ENCRYPT;
                        }
-#ifdef NETSMBCRYPTO
                        if (sp->sv_sm & SMB_SM_SIGS_REQUIRE)
                                vcp->vc_hflags2 |= SMB_FLAGS2_SECURITY_SIGNATURE;
-#endif
                        vcp->vc_hflags2 |= SMB_FLAGS2_KNOWS_LONG_NAMES;
                        if (dp->d_id == SMB_DIALECT_NTLM0_12 &&
                            sp->sv_maxtx < 4096 &&
index 5ecae5f..b465f08 100644 (file)
@@ -16,13 +16,7 @@ SRCS=        opt_inet.h \
        smbfs_vfsops.c smbfs_node.c smbfs_io.c smbfs_vnops.c \
        smbfs_subr.c smbfs_smb.c
 
-.if exists(${.CURDIR}/../../crypto/des/des.h)
-NETSMBCRYPTO=yes
-.endif
-
-.if defined(NETSMBCRYPTO)
 SRCS+= des_ecb.c des_enc.c des_setkey.c
-.endif
 
 # Build with INET support (1|0)
 SMB_INET?=     1
@@ -36,9 +30,6 @@ opt_inet.h:
 
 opt_netsmb.h:
        echo "#define NETSMB    1"  > ${.TARGET}
-.if defined(NETSMBCRYPTO)
-       echo "#define NETSMBCRYPTO 1" >> ${.TARGET}
-.endif
 .endif
 
 .include <bsd.kmod.mk>