From 8cae51152ce73084a8897ddc5aee5ae6ccf958ab Mon Sep 17 00:00:00 2001 From: yunjia_w Date: Thu, 9 Feb 2023 11:25:51 +0800 Subject: [PATCH] SM3 patch is compatible with version 4.13 Signed-off-by: yunjia_w --- shadow-add-sm3-crypt-support.patch | 24 ++++++++++++------------ shadow.spec | 5 ++++- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/shadow-add-sm3-crypt-support.patch b/shadow-add-sm3-crypt-support.patch index d9b6cf4..bfb5184 100644 --- a/shadow-add-sm3-crypt-support.patch +++ b/shadow-add-sm3-crypt-support.patch @@ -25,7 +25,7 @@ index 924254a..dde1de8 100644 [AS_HELP_STRING([--with-sha-crypt], [allow the SHA256 and SHA512 password encryption algorithms @<:@default=yes@:>@])], [with_sha_crypt=$withval], [with_sha_crypt=yes]) +AC_ARG_WITH(sm3-crypt, -+ [AC_HELP_STRING([--with-sm3-crypt], [allow the SM3 password encryption algorithms @<:@default=yes@:>@])], ++ [AS_HELP_STRING([--with-sm3-crypt], [allow the SM3 password encryption algorithms @<:@default=yes@:>@])], + [with_sm3_crypt=$withval], [with_sm3_crypt=yes]) AC_ARG_WITH(bcrypt, [AS_HELP_STRING([--with-bcrypt], [allow the bcrypt password encryption algorithm @<:@default=no@:>@])], @@ -297,7 +297,7 @@ index d17acb6..9b00520 100644 +#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT) || defined(USE_SM3_CRYPT) static bool sflg = false; -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ static /*@null@*//*@observer@*/const char *crypt_method = NULL; #define cflg (NULL != crypt_method) @@ -331,7 +331,7 @@ index d17acb6..9b00520 100644 " or YESCRYPT crypt algorithms\n"), usageout); -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ (void) fputs ("\n", usageout); exit (status); @@ -343,7 +343,7 @@ index d17acb6..9b00520 100644 +#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT) || defined(USE_SM3_CRYPT) int bad_s; -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ static struct option long_options[] = { {"crypt-method", required_argument, NULL, 'c'}, {"encrypted", no_argument, NULL, 'e'}, @@ -354,7 +354,7 @@ index d17acb6..9b00520 100644 +#if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT) || defined(USE_SM3_CRYPT) {"sha-rounds", required_argument, NULL, 's'}, -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ {NULL, 0, NULL, '\0'} }; while ((c = getopt_long (argc, argv, @@ -390,7 +390,7 @@ index d17acb6..9b00520 100644 } break; -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ default: usage (E_USAGE); @@ -539,7 +539,7 @@ index 48d5178..9003c18 100644 } break; -#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT */ -+#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT*/ ++#endif /* USE_SHA_CRYPT || USE_BCRYPT || USE_YESCRYPT || USE_SM3_CRYPT */ default: usage (E_USAGE); @@ -557,7 +557,7 @@ index 48d5178..9003c18 100644 &&(!IS_CRYPT_METHOD("SHA512")) #endif /* USE_SHA_CRYPT */ +#ifdef USE_SM3_CRYPT -+ && (0 != strcmp (crypt_method, "SM3")) ++ &&(!IS_CRYPT_METHOD("SM3")) +#endif /* USE_SM3_CRYPT */ #ifdef USE_BCRYPT &&(!IS_CRYPT_METHOD("BCRYPT")) @@ -567,9 +567,9 @@ index 48d5178..9003c18 100644 } #endif /* USE_YESCRYPT */ +#if defined(USE_SM3_CRYPT) -+ if (0 == strcmp (crypt_method, "SM3")) { -+ arg = &sm3_rounds; -+ } ++ if (IS_CRYPT_METHOD("SM3")) { ++ arg = &sm3_rounds; ++ } +#endif /* USE_SM3_CRYPT */ } #endif @@ -773,7 +773,7 @@ index 8c6f81a..00711da 100644 #endif /* USE_YESCRYPT*/ +#ifdef USE_SM3_CRYPT + || (strcmp (method, "SM3") == 0) -+#endif /* USE_SM3_CRYPT*/ ++#endif /* USE_SM3_CRYPT */ ) { pass_max_len = -1; diff --git a/shadow.spec b/shadow.spec index 6c8d180..78e0bbe 100644 --- a/shadow.spec +++ b/shadow.spec @@ -1,6 +1,6 @@ Name: shadow Version: 4.13 -Release: 1 +Release: 2 Epoch: 2 License: BSD and GPLv2+ Summary: Tools for managing accounts and shadow password files @@ -186,6 +186,9 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/libsubid.{la,a} %{_mandir}/*/* %changelog +* Thu Feb 9 2023 yunjia_w - 2:4.13-2 +- SM3 patch is compatible with version 4.13 + * Wed Feb 8 2023 yunjia_w - 2:4.13-1 - update version to 4.13