4848#include "bftpdutmp.h"
4949#include "main.h"
5050
51+ /* Foxconn add start, Ken Chen, 02/07/2017, no plain text in /etc/passwd */
52+ #include <openssl/sha.h>
53+ /* Foxconn add end, Ken Chen, 02/07/2017, no plain text in /etc/passwd */
54+
5155#ifdef WANT_PAM
5256char usepam = 0 ;
5357pam_handle_t * pamh = NULL ;
@@ -68,8 +72,8 @@ char userinfo_set = 0;
6872 #define P1MSG (args ...) fprintf(stderr, "%s-%04d: ", __FILE__, __LINE__) ; fprintf(stderr, ## args)
6973#endif // NDEBUG
7074
71- /* added start by Jenny Zhao, 06/10/2011 @USB log */
72- #include "bcmnvram.h"
75+ /* Foxconn added start by Jenny Zhao, 06/10/2011 @USB log */
76+ #include <acosNvramConfig.h>
7377#include <errno.h>
7478extern int g_isLanIp ;
7579extern char client_ip [32 ];
@@ -80,8 +84,8 @@ extern char client_ip[32];
8084int isLanSubnet (char * ipAddr )
8185{
8286 long netAddr , netMask , netIp ;
83- netAddr = inet_addr (nvram_safe_get ("lan_ipaddr" ));
84- netMask = inet_addr (nvram_safe_get ("lan_netmask" ));
87+ netAddr = inet_addr (acosNvramConfig_get ("lan_ipaddr" ));
88+ netMask = inet_addr (acosNvramConfig_get ("lan_netmask" ));
8589 netIp = inet_addr (ipAddr );
8690 if ((netAddr & netMask ) != (netIp & netMask ))
8791 {
@@ -704,7 +708,32 @@ int checkpass_pwd (char *password)
704708 P1MSG ("%s(%d)userinfo.pw_passwd=%s , password=%s \r\n" , __FUNCTION__ ,
705709 __LINE__ , userinfo .pw_passwd , password );
706710
707- if (strcmp (userinfo .pw_passwd , password ))
711+ /* Foxconn add start, Ken Chen, 02/07/2017, no plain text in /etc/passwd */
712+ int i ;
713+ char * pData = NULL ;
714+ #ifdef SHA256_DIGEST_LENGTH
715+ //using SHA256
716+ char password_hash [SHA256_DIGEST_LENGTH ] = "" ;
717+ char password_hash_str [2 * SHA256_DIGEST_LENGTH + 1 ] = "" ;
718+ pData = password_hash_str ;
719+ SHA256 (password , strlen (password ), password_hash );
720+ for (i = 0 ; i < SHA256_DIGEST_LENGTH ; i ++ ) {
721+ sprintf (pData ,"%02x" ,(unsigned char )password_hash [i ]);
722+ pData += 2 ;
723+ }
724+ #else
725+ //using SHA1
726+ char password_hash [SHA_DIGEST_LENGTH ] = "" ;
727+ char password_hash_str [2 * SHA_DIGEST_LENGTH + 1 ] = "" ;
728+ pData = password_hash_str ;
729+ SHA1 (password , strlen (password ), password_hash );
730+ for (i = 0 ; i < SHA_DIGEST_LENGTH ; i ++ ) {
731+ sprintf (pData ,"%02x" ,(unsigned char )password_hash [i ]);
732+ pData += 2 ;
733+ }
734+ #endif
735+ //if (strcmp (userinfo.pw_passwd, password))
736+ if (strcmp (userinfo .pw_passwd , password_hash_str ))
708737 {
709738/* add end, Jasmine Yang, 09/12/2007 */
710739#ifdef HAVE_SHADOW_H
0 commit comments