xcrypt 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +106 -0
  3. data/ext/libxcrypt/AUTHORS +38 -0
  4. data/ext/libxcrypt/COPYING.LIB +502 -0
  5. data/ext/libxcrypt/ChangeLog +239 -0
  6. data/ext/libxcrypt/INSTALL +380 -0
  7. data/ext/libxcrypt/LICENSING +152 -0
  8. data/ext/libxcrypt/Makefile.am +704 -0
  9. data/ext/libxcrypt/Makefile.in +4110 -0
  10. data/ext/libxcrypt/NEWS +630 -0
  11. data/ext/libxcrypt/README +1 -0
  12. data/ext/libxcrypt/README.md +179 -0
  13. data/ext/libxcrypt/THANKS +13 -0
  14. data/ext/libxcrypt/TODO +1 -0
  15. data/ext/libxcrypt/TODO.md +100 -0
  16. data/ext/libxcrypt/aclocal.m4 +2617 -0
  17. data/ext/libxcrypt/autogen.sh +33 -0
  18. data/ext/libxcrypt/autom4te.cache/output.0 +19884 -0
  19. data/ext/libxcrypt/autom4te.cache/output.1 +19884 -0
  20. data/ext/libxcrypt/autom4te.cache/output.2 +19884 -0
  21. data/ext/libxcrypt/autom4te.cache/output.3 +19885 -0
  22. data/ext/libxcrypt/autom4te.cache/requests +714 -0
  23. data/ext/libxcrypt/autom4te.cache/traces.0 +4088 -0
  24. data/ext/libxcrypt/autom4te.cache/traces.1 +1060 -0
  25. data/ext/libxcrypt/autom4te.cache/traces.2 +4088 -0
  26. data/ext/libxcrypt/autom4te.cache/traces.3 +1060 -0
  27. data/ext/libxcrypt/build-aux/ci/ci-log-dependency-versions +79 -0
  28. data/ext/libxcrypt/build-aux/ci/ci-log-logfiles +22 -0
  29. data/ext/libxcrypt/build-aux/ci/clang-gcov-wrapper +2 -0
  30. data/ext/libxcrypt/build-aux/ci/configure-wrapper +10 -0
  31. data/ext/libxcrypt/build-aux/ci/summarize-coverage +24 -0
  32. data/ext/libxcrypt/build-aux/m4/ax_append_compile_flags.m4 +46 -0
  33. data/ext/libxcrypt/build-aux/m4/ax_append_flag.m4 +50 -0
  34. data/ext/libxcrypt/build-aux/m4/ax_check_compile_flag.m4 +53 -0
  35. data/ext/libxcrypt/build-aux/m4/ax_check_vscript.m4 +142 -0
  36. data/ext/libxcrypt/build-aux/m4/ax_gcc_func_attribute.m4 +246 -0
  37. data/ext/libxcrypt/build-aux/m4/ax_require_defined.m4 +37 -0
  38. data/ext/libxcrypt/build-aux/m4/ax_valgrind_check.m4 +239 -0
  39. data/ext/libxcrypt/build-aux/m4/libtool.m4 +8488 -0
  40. data/ext/libxcrypt/build-aux/m4/ltoptions.m4 +467 -0
  41. data/ext/libxcrypt/build-aux/m4/ltsugar.m4 +124 -0
  42. data/ext/libxcrypt/build-aux/m4/ltversion.m4 +24 -0
  43. data/ext/libxcrypt/build-aux/m4/lt~obsolete.m4 +99 -0
  44. data/ext/libxcrypt/build-aux/m4/pkg_compat.m4 +88 -0
  45. data/ext/libxcrypt/build-aux/m4/zw_alignment.m4 +90 -0
  46. data/ext/libxcrypt/build-aux/m4/zw_automodern.m4 +307 -0
  47. data/ext/libxcrypt/build-aux/m4/zw_detect_asan.m4 +24 -0
  48. data/ext/libxcrypt/build-aux/m4/zw_endianness.m4 +152 -0
  49. data/ext/libxcrypt/build-aux/m4/zw_ld_wrap.m4 +47 -0
  50. data/ext/libxcrypt/build-aux/m4/zw_prog_perl.m4 +40 -0
  51. data/ext/libxcrypt/build-aux/m4/zw_simple_warnings.m4 +150 -0
  52. data/ext/libxcrypt/build-aux/m4/zw_static_assert.m4 +68 -0
  53. data/ext/libxcrypt/build-aux/m4-autogen/compile +364 -0
  54. data/ext/libxcrypt/build-aux/m4-autogen/config.guess +1815 -0
  55. data/ext/libxcrypt/build-aux/m4-autogen/config.sub +2354 -0
  56. data/ext/libxcrypt/build-aux/m4-autogen/depcomp +792 -0
  57. data/ext/libxcrypt/build-aux/m4-autogen/install-sh +541 -0
  58. data/ext/libxcrypt/build-aux/m4-autogen/ltmain.sh +11524 -0
  59. data/ext/libxcrypt/build-aux/m4-autogen/missing +236 -0
  60. data/ext/libxcrypt/build-aux/m4-autogen/test-driver +160 -0
  61. data/ext/libxcrypt/build-aux/scripts/BuildCommon.pm +712 -0
  62. data/ext/libxcrypt/build-aux/scripts/check-perlcritic-config +76 -0
  63. data/ext/libxcrypt/build-aux/scripts/compute-symver-floor +116 -0
  64. data/ext/libxcrypt/build-aux/scripts/expand-selected-hashes +80 -0
  65. data/ext/libxcrypt/build-aux/scripts/gen-crypt-h +131 -0
  66. data/ext/libxcrypt/build-aux/scripts/gen-crypt-hashes-h +141 -0
  67. data/ext/libxcrypt/build-aux/scripts/gen-crypt-symbol-vers-h +150 -0
  68. data/ext/libxcrypt/build-aux/scripts/gen-libcrypt-map +67 -0
  69. data/ext/libxcrypt/build-aux/scripts/move-if-change +84 -0
  70. data/ext/libxcrypt/build-aux/scripts/skip-if-exec-format-error +78 -0
  71. data/ext/libxcrypt/codecov.yml +4 -0
  72. data/ext/libxcrypt/config.h.in +303 -0
  73. data/ext/libxcrypt/configure +19885 -0
  74. data/ext/libxcrypt/configure.ac +549 -0
  75. data/ext/libxcrypt/doc/crypt.3 +512 -0
  76. data/ext/libxcrypt/doc/crypt.5 +343 -0
  77. data/ext/libxcrypt/doc/crypt_checksalt.3 +106 -0
  78. data/ext/libxcrypt/doc/crypt_gensalt.3 +285 -0
  79. data/ext/libxcrypt/doc/crypt_gensalt_ra.3 +1 -0
  80. data/ext/libxcrypt/doc/crypt_gensalt_rn.3 +1 -0
  81. data/ext/libxcrypt/doc/crypt_preferred_method.3 +68 -0
  82. data/ext/libxcrypt/doc/crypt_r.3 +1 -0
  83. data/ext/libxcrypt/doc/crypt_ra.3 +1 -0
  84. data/ext/libxcrypt/doc/crypt_rn.3 +1 -0
  85. data/ext/libxcrypt/lib/alg-des-tables.c +3858 -0
  86. data/ext/libxcrypt/lib/alg-des.c +269 -0
  87. data/ext/libxcrypt/lib/alg-des.h +74 -0
  88. data/ext/libxcrypt/lib/alg-gost3411-2012-const.h +313 -0
  89. data/ext/libxcrypt/lib/alg-gost3411-2012-core.c +238 -0
  90. data/ext/libxcrypt/lib/alg-gost3411-2012-core.h +51 -0
  91. data/ext/libxcrypt/lib/alg-gost3411-2012-hmac.c +78 -0
  92. data/ext/libxcrypt/lib/alg-gost3411-2012-hmac.h +46 -0
  93. data/ext/libxcrypt/lib/alg-gost3411-2012-precalc.h +1426 -0
  94. data/ext/libxcrypt/lib/alg-gost3411-2012-ref.h +67 -0
  95. data/ext/libxcrypt/lib/alg-hmac-sha1.c +140 -0
  96. data/ext/libxcrypt/lib/alg-hmac-sha1.h +35 -0
  97. data/ext/libxcrypt/lib/alg-md4.c +270 -0
  98. data/ext/libxcrypt/lib/alg-md4.h +43 -0
  99. data/ext/libxcrypt/lib/alg-md5.c +291 -0
  100. data/ext/libxcrypt/lib/alg-md5.h +43 -0
  101. data/ext/libxcrypt/lib/alg-sha1.c +288 -0
  102. data/ext/libxcrypt/lib/alg-sha1.h +34 -0
  103. data/ext/libxcrypt/lib/alg-sha256.c +630 -0
  104. data/ext/libxcrypt/lib/alg-sha256.h +123 -0
  105. data/ext/libxcrypt/lib/alg-sha512.c +311 -0
  106. data/ext/libxcrypt/lib/alg-sha512.h +81 -0
  107. data/ext/libxcrypt/lib/alg-sm3-hmac.c +113 -0
  108. data/ext/libxcrypt/lib/alg-sm3-hmac.h +42 -0
  109. data/ext/libxcrypt/lib/alg-sm3.c +449 -0
  110. data/ext/libxcrypt/lib/alg-sm3.h +63 -0
  111. data/ext/libxcrypt/lib/alg-yescrypt-common.c +713 -0
  112. data/ext/libxcrypt/lib/alg-yescrypt-opt.c +1568 -0
  113. data/ext/libxcrypt/lib/alg-yescrypt-platform.c +106 -0
  114. data/ext/libxcrypt/lib/alg-yescrypt.h +360 -0
  115. data/ext/libxcrypt/lib/byteorder.h +164 -0
  116. data/ext/libxcrypt/lib/crypt-bcrypt.c +1061 -0
  117. data/ext/libxcrypt/lib/crypt-des-obsolete.c +215 -0
  118. data/ext/libxcrypt/lib/crypt-des.c +491 -0
  119. data/ext/libxcrypt/lib/crypt-gensalt-static.c +40 -0
  120. data/ext/libxcrypt/lib/crypt-gost-yescrypt.c +182 -0
  121. data/ext/libxcrypt/lib/crypt-md5.c +232 -0
  122. data/ext/libxcrypt/lib/crypt-nthash.c +134 -0
  123. data/ext/libxcrypt/lib/crypt-obsolete.h +40 -0
  124. data/ext/libxcrypt/lib/crypt-pbkdf1-sha1.c +260 -0
  125. data/ext/libxcrypt/lib/crypt-port.h +514 -0
  126. data/ext/libxcrypt/lib/crypt-scrypt.c +247 -0
  127. data/ext/libxcrypt/lib/crypt-sha256.c +308 -0
  128. data/ext/libxcrypt/lib/crypt-sha512.c +323 -0
  129. data/ext/libxcrypt/lib/crypt-sm3-yescrypt.c +189 -0
  130. data/ext/libxcrypt/lib/crypt-sm3.c +308 -0
  131. data/ext/libxcrypt/lib/crypt-static.c +44 -0
  132. data/ext/libxcrypt/lib/crypt-sunmd5.c +314 -0
  133. data/ext/libxcrypt/lib/crypt-yescrypt.c +177 -0
  134. data/ext/libxcrypt/lib/crypt.c +421 -0
  135. data/ext/libxcrypt/lib/crypt.h.in +249 -0
  136. data/ext/libxcrypt/lib/gen-des-tables.c +363 -0
  137. data/ext/libxcrypt/lib/hashes.conf +59 -0
  138. data/ext/libxcrypt/lib/libcrypt.map.in +48 -0
  139. data/ext/libxcrypt/lib/libcrypt.minver +97 -0
  140. data/ext/libxcrypt/lib/libxcrypt.pc.in +15 -0
  141. data/ext/libxcrypt/lib/util-base64.c +26 -0
  142. data/ext/libxcrypt/lib/util-gensalt-sha.c +88 -0
  143. data/ext/libxcrypt/lib/util-get-random-bytes.c +154 -0
  144. data/ext/libxcrypt/lib/util-make-failure-token.c +48 -0
  145. data/ext/libxcrypt/lib/util-xbzero.c +43 -0
  146. data/ext/libxcrypt/lib/util-xstrcpy.c +42 -0
  147. data/ext/libxcrypt/lib/xcrypt.h.in +58 -0
  148. data/ext/libxcrypt/libxcrypt.spec.rpkg +481 -0
  149. data/ext/libxcrypt/rpkg.conf +2 -0
  150. data/ext/libxcrypt/rpkg.macros +86 -0
  151. data/ext/libxcrypt/test/TestCommon.pm +326 -0
  152. data/ext/libxcrypt/test/alg-des.c +80 -0
  153. data/ext/libxcrypt/test/alg-gost3411-2012-hmac.c +90 -0
  154. data/ext/libxcrypt/test/alg-gost3411-2012.c +191 -0
  155. data/ext/libxcrypt/test/alg-hmac-sha1.c +187 -0
  156. data/ext/libxcrypt/test/alg-md4.c +111 -0
  157. data/ext/libxcrypt/test/alg-md5.c +134 -0
  158. data/ext/libxcrypt/test/alg-pbkdf-hmac-sha256.c +269 -0
  159. data/ext/libxcrypt/test/alg-sha1.c +111 -0
  160. data/ext/libxcrypt/test/alg-sha256.c +141 -0
  161. data/ext/libxcrypt/test/alg-sha512.c +170 -0
  162. data/ext/libxcrypt/test/alg-sm3-hmac.c +149 -0
  163. data/ext/libxcrypt/test/alg-sm3.c +168 -0
  164. data/ext/libxcrypt/test/alg-yescrypt.c +466 -0
  165. data/ext/libxcrypt/test/badsalt.c +726 -0
  166. data/ext/libxcrypt/test/badsetting.c +350 -0
  167. data/ext/libxcrypt/test/byteorder.c +254 -0
  168. data/ext/libxcrypt/test/checksalt.c +265 -0
  169. data/ext/libxcrypt/test/compile-strong-alias.c +43 -0
  170. data/ext/libxcrypt/test/crypt-badargs.c +392 -0
  171. data/ext/libxcrypt/test/crypt-gost-yescrypt.c +149 -0
  172. data/ext/libxcrypt/test/crypt-nested-call.c +180 -0
  173. data/ext/libxcrypt/test/crypt-sm3-yescrypt.c +149 -0
  174. data/ext/libxcrypt/test/crypt-too-long-phrase.c +157 -0
  175. data/ext/libxcrypt/test/des-cases.h +196 -0
  176. data/ext/libxcrypt/test/des-obsolete.c +206 -0
  177. data/ext/libxcrypt/test/des-obsolete_r.c +207 -0
  178. data/ext/libxcrypt/test/explicit-bzero.c +334 -0
  179. data/ext/libxcrypt/test/gensalt-bcrypt_x.c +54 -0
  180. data/ext/libxcrypt/test/gensalt-extradata.c +246 -0
  181. data/ext/libxcrypt/test/gensalt-nested-call.c +126 -0
  182. data/ext/libxcrypt/test/gensalt-nthash.c +65 -0
  183. data/ext/libxcrypt/test/gensalt.c +599 -0
  184. data/ext/libxcrypt/test/getrandom-fallbacks.c +295 -0
  185. data/ext/libxcrypt/test/getrandom-interface.c +211 -0
  186. data/ext/libxcrypt/test/ka-table-gen.py +945 -0
  187. data/ext/libxcrypt/test/ka-table.inc +5849 -0
  188. data/ext/libxcrypt/test/ka-tester.c +240 -0
  189. data/ext/libxcrypt/test/preferred-method.c +133 -0
  190. data/ext/libxcrypt/test/short-outbuf.c +119 -0
  191. data/ext/libxcrypt/test/special-char-salt.c +1160 -0
  192. data/ext/libxcrypt/test/symbols-compat.pl +137 -0
  193. data/ext/libxcrypt/test/symbols-renames.pl +107 -0
  194. data/ext/libxcrypt/test/symbols-static.pl +87 -0
  195. data/ext/xcrypt/xcrypt.c +9 -0
  196. data/lib/xcrypt/ffi.rb +76 -0
  197. data/lib/xcrypt/version.rb +5 -0
  198. data/lib/xcrypt.rb +89 -0
  199. metadata +267 -0
@@ -0,0 +1,704 @@
1
+ #
2
+ # Copyright (c) 2002, 2007 SuSE Linux AG, Germany
3
+ #
4
+ # Author: Thorsten Kukuk <kukuk@suse.de>
5
+ #
6
+
7
+ AUTOMAKE_OPTIONS = \
8
+ 1.14 \
9
+ dist-bzip2 \
10
+ dist-xz \
11
+ filename-length-max=99 \
12
+ gnits \
13
+ subdir-objects
14
+
15
+ ACLOCAL_AMFLAGS = -I build-aux/m4
16
+
17
+ AM_CPPFLAGS = -I$(srcdir)/lib
18
+ AM_CFLAGS = $(WARN_CFLAGS) $(OPTI_FLAGS)
19
+ AM_LDFLAGS = $(RELRO_FLAG) $(BINDNOW_FLAG)
20
+
21
+ SCRIPTS_AUX = $(srcdir)/build-aux/scripts
22
+ STAMP = echo timestamp >
23
+
24
+ @VALGRIND_CHECK_RULES@
25
+
26
+ TEST_EXTENSIONS = .pl
27
+
28
+ EXTRA_DIST = \
29
+ LICENSING \
30
+ THANKS \
31
+ lib/alg-yescrypt-platform.c \
32
+ lib/crypt.h.in \
33
+ lib/hashes.conf \
34
+ lib/libcrypt.map.in \
35
+ lib/libcrypt.minver \
36
+ lib/xcrypt.h.in \
37
+ build-aux/scripts/BuildCommon.pm \
38
+ build-aux/scripts/check-perlcritic-config \
39
+ build-aux/scripts/compute-symver-floor \
40
+ build-aux/scripts/expand-selected-hashes \
41
+ build-aux/scripts/gen-crypt-h \
42
+ build-aux/scripts/gen-crypt-hashes-h \
43
+ build-aux/scripts/gen-crypt-symbol-vers-h \
44
+ build-aux/scripts/gen-libcrypt-map \
45
+ build-aux/scripts/move-if-change \
46
+ build-aux/scripts/skip-if-exec-format-error \
47
+ test/TestCommon.pm \
48
+ test/symbols-compat.pl \
49
+ test/symbols-renames.pl \
50
+ test/symbols-static.pl
51
+
52
+ notrans_dist_man3_MANS = \
53
+ doc/crypt.3 \
54
+ doc/crypt_checksalt.3 \
55
+ doc/crypt_gensalt.3 \
56
+ doc/crypt_gensalt_ra.3 \
57
+ doc/crypt_gensalt_rn.3 \
58
+ doc/crypt_preferred_method.3 \
59
+ doc/crypt_r.3 \
60
+ doc/crypt_ra.3 \
61
+ doc/crypt_rn.3
62
+ notrans_dist_man5_MANS = \
63
+ doc/crypt.5
64
+
65
+ nodist_include_HEADERS = \
66
+ crypt.h
67
+ nodist_noinst_HEADERS = \
68
+ crypt-hashes.h \
69
+ crypt-symbol-vers.h
70
+ noinst_HEADERS = \
71
+ lib/alg-des.h \
72
+ lib/alg-gost3411-2012-const.h \
73
+ lib/alg-gost3411-2012-core.h \
74
+ lib/alg-gost3411-2012-hmac.h \
75
+ lib/alg-gost3411-2012-precalc.h \
76
+ lib/alg-gost3411-2012-ref.h \
77
+ lib/alg-hmac-sha1.h \
78
+ lib/alg-md4.h \
79
+ lib/alg-md5.h \
80
+ lib/alg-sha1.h \
81
+ lib/alg-sha256.h \
82
+ lib/alg-sha512.h \
83
+ lib/alg-sm3.h \
84
+ lib/alg-sm3-hmac.h \
85
+ lib/alg-yescrypt.h \
86
+ lib/byteorder.h \
87
+ lib/crypt-obsolete.h \
88
+ lib/crypt-port.h \
89
+ test/des-cases.h \
90
+ test/ka-table.inc
91
+
92
+ if ENABLE_XCRYPT_COMPAT_FILES
93
+ nodist_include_HEADERS += xcrypt.h
94
+ endif
95
+
96
+ noinst_PROGRAMS = \
97
+ lib/gen-des-tables
98
+
99
+ lib_LTLIBRARIES = \
100
+ libcrypt.la
101
+
102
+ libcrypt_la_SOURCES = \
103
+ lib/alg-des-tables.c \
104
+ lib/alg-des.c \
105
+ lib/alg-gost3411-2012-core.c \
106
+ lib/alg-gost3411-2012-hmac.c \
107
+ lib/alg-hmac-sha1.c \
108
+ lib/alg-md4.c \
109
+ lib/alg-md5.c \
110
+ lib/alg-sha1.c \
111
+ lib/alg-sha256.c \
112
+ lib/alg-sha512.c \
113
+ lib/alg-sm3.c \
114
+ lib/alg-sm3-hmac.c \
115
+ lib/alg-yescrypt-common.c \
116
+ lib/alg-yescrypt-opt.c \
117
+ lib/crypt-bcrypt.c \
118
+ lib/crypt-des.c \
119
+ lib/crypt-gensalt-static.c \
120
+ lib/crypt-gost-yescrypt.c \
121
+ lib/crypt-sm3-yescrypt.c \
122
+ lib/crypt-md5.c \
123
+ lib/crypt-nthash.c \
124
+ lib/crypt-pbkdf1-sha1.c \
125
+ lib/crypt-scrypt.c \
126
+ lib/crypt-sha256.c \
127
+ lib/crypt-sha512.c \
128
+ lib/crypt-sm3.c \
129
+ lib/crypt-static.c \
130
+ lib/crypt-sunmd5.c \
131
+ lib/crypt-yescrypt.c \
132
+ lib/crypt.c \
133
+ lib/util-base64.c \
134
+ lib/util-gensalt-sha.c \
135
+ lib/util-get-random-bytes.c \
136
+ lib/util-make-failure-token.c \
137
+ lib/util-xbzero.c \
138
+ lib/util-xstrcpy.c
139
+
140
+ pkgconfig_DATA = libxcrypt.pc
141
+
142
+ # Install libcrypt.pc symlink to libxcrypt.pc file.
143
+ phony_targets = \
144
+ install-data-hook-pkgconfig uninstall-hook-pkgconfig
145
+ install-data-hook: install-data-hook-pkgconfig
146
+ uninstall_hook_targets = \
147
+ uninstall-hook-pkgconfig
148
+ install-data-hook-pkgconfig:
149
+ cd $(DESTDIR)$(pkgconfigdir) && \
150
+ $(LN_S) -f libxcrypt.pc libcrypt.pc
151
+ uninstall-hook-pkgconfig:
152
+ -rm -f $(DESTDIR)$(pkgconfigdir)/libcrypt.pc
153
+
154
+ # Build libcrypt.so.2 if obsolete APIs are excluded, libcrypt.so.1 otherwise.
155
+ if ENABLE_OBSOLETE_API
156
+ libcrypt_la_VERSION = 2:0:1
157
+ else
158
+ libcrypt_la_VERSION = 2:0:0
159
+ endif
160
+
161
+ libcrypt_la_LDFLAGS = -version-info $(libcrypt_la_VERSION)
162
+
163
+ if HAVE_VSCRIPT
164
+ libcrypt_la_LDFLAGS += $(VSCRIPT_LDFLAGS),$(builddir)/libcrypt.map
165
+ APPLY_SYMVERS = yes
166
+ else
167
+ APPLY_SYMVERS = no
168
+ endif
169
+
170
+ libcrypt_la_LDFLAGS += $(UNDEF_FLAG) $(TEXT_RELOC_FLAG) $(AM_LDFLAGS)
171
+
172
+ libcrypt_la_CPPFLAGS = $(AM_CPPFLAGS) -DIN_LIBCRYPT
173
+
174
+ CONFIG_STATUS_DEPENDENCIES = lib/libcrypt.minver
175
+ EXTRA_libcrypt_la_DEPENDENCIES = libcrypt.map
176
+ CLEANFILES = \
177
+ Makefile.deps Makefile.deps.T \
178
+ libcrypt.map libcrypt.map.T libcrypt.map.stamp \
179
+ crypt-symbol-vers.h crypt-symbol-vers.h.T crypt-symbol-vers.h.stamp \
180
+ crypt-hashes.h crypt-hashes.h.T crypt-hashes.h.stamp \
181
+ crypt.h crypt.h.T crypt.h.stamp \
182
+ xcrypt.h xcrypt.h.T xcrypt.h.stamp \
183
+ ./*.gcda ./*.gcno \
184
+ lib/*.gcda lib/*.gcno \
185
+ test/*.gcda test/*.gcno
186
+
187
+ DISTCLEANFILES = .deps/*.Plo
188
+
189
+ # Force generated headers to be generated before any source files that
190
+ # might depend on them are compiled.
191
+ Makefile.deps: crypt.h crypt-hashes.h crypt-symbol-vers.h
192
+ $(AM_V_GEN)LC_ALL=C echo "# Deps" > Makefile.deps.T
193
+ $(AM_V_at)mv -f Makefile.deps.T Makefile.deps
194
+
195
+ # Almost everything depends on the generated headers; the generated
196
+ # headers depend on the Makefile; *most* changes to the Makefile won't
197
+ # affect the contents of the generated headers. Arrange for the
198
+ # timestamps of the generated headers not to change if their contents
199
+ # haven't. The rule idiom used here was borrowed from GCC's Makefile;
200
+ # in https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/Makefile.in;hb=HEAD
201
+ # search for the phrase "On the use of stamps".
202
+ AM_V_GENS = $(am__v_GENS_@AM_V@)
203
+ am__v_GENS_ = $(am__v_GENS_@AM_DEFAULT_V@)
204
+ am__v_GENS_0 = @echo " GEN " $(@:.stamp=);
205
+ am__v_GENS_1 =
206
+
207
+ libcrypt.map: libcrypt.map.stamp; @:
208
+ libcrypt.map.stamp: \
209
+ lib/libcrypt.map.in $(SCRIPTS_AUX)/gen-libcrypt-map \
210
+ $(SCRIPTS_AUX)/BuildCommon.pm Makefile
211
+ $(AM_V_GENS)LC_ALL=C $(PERL) $(SCRIPTS_AUX)/gen-libcrypt-map \
212
+ SYMVER_MIN=$(SYMVER_MIN) \
213
+ SYMVER_FLOOR=$(SYMVER_FLOOR) \
214
+ COMPAT_ABI=$(COMPAT_ABI) \
215
+ $(srcdir)/lib/libcrypt.map.in > libcrypt.map.T
216
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change libcrypt.map.T libcrypt.map
217
+ $(AM_V_at)$(STAMP) libcrypt.map.stamp
218
+
219
+ crypt-hashes.h: crypt-hashes.h.stamp; @:
220
+ crypt-hashes.h.stamp: \
221
+ $(SCRIPTS_AUX)/gen-crypt-hashes-h $(SCRIPTS_AUX)/BuildCommon.pm \
222
+ lib/hashes.conf Makefile
223
+ $(AM_V_GENS)LC_ALL=C $(PERL) \
224
+ $(SCRIPTS_AUX)/gen-crypt-hashes-h \
225
+ $(srcdir)/lib/hashes.conf $(hashes_enabled) > crypt-hashes.h.T
226
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change crypt-hashes.h.T crypt-hashes.h
227
+ $(AM_V_at)$(STAMP) crypt-hashes.h.stamp
228
+
229
+ crypt-symbol-vers.h: crypt-symbol-vers.h.stamp; @:
230
+ crypt-symbol-vers.h.stamp: \
231
+ $(SCRIPTS_AUX)/gen-crypt-symbol-vers-h \
232
+ $(SCRIPTS_AUX)/BuildCommon.pm \
233
+ lib/libcrypt.map.in Makefile
234
+ $(AM_V_GENS)LC_ALL=C $(PERL) \
235
+ $(SCRIPTS_AUX)/gen-crypt-symbol-vers-h \
236
+ $(APPLY_SYMVERS) \
237
+ SYMVER_MIN=$(SYMVER_MIN) \
238
+ SYMVER_FLOOR=$(SYMVER_FLOOR) \
239
+ COMPAT_ABI=$(COMPAT_ABI) \
240
+ $(srcdir)/lib/libcrypt.map.in > crypt-symbol-vers.h.T
241
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change crypt-symbol-vers.h.T crypt-symbol-vers.h
242
+ $(AM_V_at)$(STAMP) crypt-symbol-vers.h.stamp
243
+
244
+ crypt.h: crypt.h.stamp; @:
245
+ crypt.h.stamp: \
246
+ $(SCRIPTS_AUX)/gen-crypt-h $(SCRIPTS_AUX)/BuildCommon.pm \
247
+ lib/crypt.h.in lib/hashes.conf config.h Makefile
248
+ $(AM_V_GENS)LC_ALL=C $(PERL) \
249
+ $(SCRIPTS_AUX)/gen-crypt-h \
250
+ $(srcdir)/lib/crypt.h.in config.h \
251
+ $(srcdir)/lib/hashes.conf $(hashes_enabled) \
252
+ > crypt.h.T
253
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change crypt.h.T crypt.h
254
+ $(AM_V_at)$(STAMP) crypt.h.stamp
255
+
256
+ xcrypt.h: xcrypt.h.stamp; @:
257
+ xcrypt.h.stamp: \
258
+ $(SCRIPTS_AUX)/gen-crypt-h $(SCRIPTS_AUX)/BuildCommon.pm \
259
+ lib/xcrypt.h.in config.h
260
+ $(AM_V_GENS)LC_ALL=C $(PERL) \
261
+ $(SCRIPTS_AUX)/gen-crypt-h \
262
+ $(srcdir)/lib/xcrypt.h.in config.h \
263
+ > xcrypt.h.T
264
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change xcrypt.h.T xcrypt.h
265
+ $(AM_V_at)$(STAMP) xcrypt.h.stamp
266
+
267
+ install_exec_hook_targets =
268
+
269
+ if ENABLE_XCRYPT_COMPAT_FILES
270
+ if ENABLE_STATIC
271
+ # Install libxcrypt.a symlink to libcrypt.a file.
272
+ phony_targets += \
273
+ install-exec-hook-xcrypt-static uninstall-hook-xcrypt-static
274
+ install_exec_hook_targets += \
275
+ install-exec-hook-xcrypt-static
276
+ uninstall_hook_targets += \
277
+ uninstall-hook-xcrypt-static
278
+ install-exec-hook-xcrypt-static:
279
+ cd $(DESTDIR)$(libdir) && \
280
+ $(LN_S) -f libcrypt.a libxcrypt.a
281
+ uninstall-hook-xcrypt-static:
282
+ -rm -f $(DESTDIR)$(libdir)/libxcrypt.a
283
+ endif
284
+
285
+ if ENABLE_SHARED
286
+ # Install libxcrypt.so symlink to libcrypt.so file.
287
+ phony_targets += \
288
+ install-exec-hook-xcrypt-shared uninstall-hook-xcrypt-shared
289
+ install_exec_hook_targets += \
290
+ install-exec-hook-xcrypt-shared
291
+ uninstall_hook_targets += \
292
+ uninstall-hook-xcrypt-shared
293
+ install-exec-hook-xcrypt-shared:
294
+ cd $(DESTDIR)$(libdir) && \
295
+ $(LN_S) -f libcrypt.so libxcrypt.so
296
+ uninstall-hook-xcrypt-shared:
297
+ -rm -f $(DESTDIR)$(libdir)/libxcrypt.so
298
+ endif
299
+ endif
300
+
301
+ if ENABLE_COMPAT_SUSE
302
+ # When we are being binary compatible, also install symbolic links to
303
+ # mimic SUSE's libowcrypt; any program that uses -lowcrypt in its
304
+ # build, or already has a NEEDED entry for libowcrypt.so.1, will be
305
+ # redirected to libcrypt. The OW_CRYPT_1.0 symbol versions are already
306
+ # present in libcrypt.so.1.
307
+ #
308
+ # Caution: this hardwires the expected (so)names of the shared
309
+ # libraries involved, libcrypt.so.1 and libowcrypt.so.1. (We should
310
+ # be able to get away with this because in any circumstance where the
311
+ # soname of libcrypt isn't libcrypt.so.1, ENABLE_OBSOLETE_API should
312
+ # be automatically turned off, and as best I can tell, SUSE only ever
313
+ # shipped libowcrypt.so.1.)
314
+ if ENABLE_OBSOLETE_API
315
+ if ENABLE_STATIC
316
+ phony_targets += \
317
+ install-exec-hook-libstatic uninstall-hook-libstatic
318
+ install_exec_hook_targets += \
319
+ install-exec-hook-libstatic
320
+ uninstall_hook_targets += \
321
+ uninstall-hook-libstatic
322
+ install-exec-hook-libstatic:
323
+ cd $(DESTDIR)$(libdir) && \
324
+ $(LN_S) -f libcrypt.a libowcrypt.a
325
+ uninstall-hook-libstatic:
326
+ -rm -f $(DESTDIR)$(libdir)/libowcrypt.a
327
+ endif
328
+ if ENABLE_SHARED
329
+ phony_targets += \
330
+ install-exec-hook-libshared uninstall-hook-libshared
331
+ install_exec_hook_targets += \
332
+ install-exec-hook-libshared
333
+ uninstall_hook_targets += \
334
+ uninstall-hook-libshared
335
+ install-exec-hook-libshared:
336
+ cd $(DESTDIR)$(libdir) && \
337
+ $(LN_S) -f libcrypt.so libowcrypt.so && \
338
+ $(LN_S) -f libcrypt.so.1 libowcrypt.so.1
339
+ uninstall-hook-libshared:
340
+ -rm -f $(DESTDIR)$(libdir)/libowcrypt.so \
341
+ $(DESTDIR)$(libdir)/libowcrypt.so.1
342
+ endif
343
+ endif
344
+ endif
345
+
346
+ # The ka-* tests are first in this list because they are the slowest.
347
+ # The list should otherwise be kept in alphabetical order.
348
+
349
+ check_PROGRAMS = \
350
+ test/ka-bcrypt \
351
+ test/ka-bcrypt-a \
352
+ test/ka-bcrypt-x \
353
+ test/ka-bcrypt-y \
354
+ test/ka-bigcrypt \
355
+ test/ka-bsdicrypt \
356
+ test/ka-descrypt \
357
+ test/ka-gost-yescrypt \
358
+ test/ka-md5crypt \
359
+ test/ka-nt \
360
+ test/ka-scrypt \
361
+ test/ka-sha1crypt \
362
+ test/ka-sha256crypt \
363
+ test/ka-sha512crypt \
364
+ test/ka-sm3crypt \
365
+ test/ka-sm3-yescrypt \
366
+ test/ka-sunmd5 \
367
+ test/ka-yescrypt \
368
+ test/alg-des \
369
+ test/alg-gost3411-2012 \
370
+ test/alg-gost3411-2012-hmac \
371
+ test/alg-hmac-sha1 \
372
+ test/alg-md4 \
373
+ test/alg-md5 \
374
+ test/alg-pbkdf-hmac-sha256 \
375
+ test/alg-sha1 \
376
+ test/alg-sha256 \
377
+ test/alg-sha512 \
378
+ test/alg-sm3 \
379
+ test/alg-sm3-hmac \
380
+ test/alg-yescrypt \
381
+ test/badsalt \
382
+ test/badsetting \
383
+ test/byteorder \
384
+ test/checksalt \
385
+ test/compile-strong-alias \
386
+ test/crypt-badargs \
387
+ test/crypt-gost-yescrypt \
388
+ test/crypt-nested-call \
389
+ test/crypt-sm3-yescrypt \
390
+ test/crypt-too-long-phrase \
391
+ test/explicit-bzero \
392
+ test/gensalt \
393
+ test/gensalt-bcrypt_x \
394
+ test/gensalt-extradata \
395
+ test/gensalt-nested-call \
396
+ test/gensalt-nthash \
397
+ test/getrandom-fallbacks \
398
+ test/getrandom-interface \
399
+ test/preferred-method \
400
+ test/short-outbuf \
401
+ test/special-char-salt
402
+
403
+ # All of the known-answer tests are compiled from the same source file,
404
+ # with different macros defined.
405
+ test_ka_bcrypt_SOURCES = test/ka-tester.c
406
+ test_ka_bcrypt_a_SOURCES = test/ka-tester.c
407
+ test_ka_bcrypt_x_SOURCES = test/ka-tester.c
408
+ test_ka_bcrypt_y_SOURCES = test/ka-tester.c
409
+ test_ka_bigcrypt_SOURCES = test/ka-tester.c
410
+ test_ka_bsdicrypt_SOURCES = test/ka-tester.c
411
+ test_ka_descrypt_SOURCES = test/ka-tester.c
412
+ test_ka_gost_yescrypt_SOURCES = test/ka-tester.c
413
+ test_ka_md5crypt_SOURCES = test/ka-tester.c
414
+ test_ka_nt_SOURCES = test/ka-tester.c
415
+ test_ka_scrypt_SOURCES = test/ka-tester.c
416
+ test_ka_sha1crypt_SOURCES = test/ka-tester.c
417
+ test_ka_sha256crypt_SOURCES = test/ka-tester.c
418
+ test_ka_sha512crypt_SOURCES = test/ka-tester.c
419
+ test_ka_sm3crypt_SOURCES = test/ka-tester.c
420
+ test_ka_sm3_yescrypt_SOURCES = test/ka-tester.c
421
+ test_ka_sunmd5_SOURCES = test/ka-tester.c
422
+ test_ka_yescrypt_SOURCES = test/ka-tester.c
423
+
424
+ test_ka_bcrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bcrypt
425
+ test_ka_bcrypt_a_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bcrypt_a
426
+ test_ka_bcrypt_x_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bcrypt_x
427
+ test_ka_bcrypt_y_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bcrypt_y
428
+ test_ka_bigcrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bigcrypt
429
+ test_ka_bsdicrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_bsdicrypt
430
+ test_ka_descrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_descrypt
431
+ test_ka_gost_yescrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_gost_yescrypt
432
+ test_ka_md5crypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_md5crypt
433
+ test_ka_nt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_nt
434
+ test_ka_scrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_scrypt
435
+ test_ka_sha1crypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sha1crypt
436
+ test_ka_sha256crypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sha256crypt
437
+ test_ka_sha512crypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sha512crypt
438
+ test_ka_sm3crypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sm3crypt
439
+ test_ka_sm3_yescrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sm3_yescrypt
440
+ test_ka_sunmd5_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_sunmd5
441
+ test_ka_yescrypt_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_yescrypt
442
+
443
+ if ENABLE_KA_TABLE_GEN
444
+ if ENABLE_SHARED
445
+ # test/ka-table.inc can be regenerated by running test/ka-table-gen.py.
446
+ # This is very slow and requires nonstandard Python libraries and a shared
447
+ # library build of libcrypt already present in the build-tree, so we only
448
+ # do it when explicitly requested.
449
+ regen-ka-table: libcrypt.la
450
+ $(PYTHON) $(srcdir)/test/ka-table-gen.py > ka-table.inc.T
451
+ @if cmp -s ka-table.inc.T $(srcdir)/test/ka-table.inc; \
452
+ then echo ka-table.inc is unchanged; rm ka-table.inc.T; \
453
+ else echo mv -f ka-table.inc.T $(srcdir)/test/ka-table.inc; \
454
+ mv -f ka-table.inc.T $(srcdir)/test/ka-table.inc; fi
455
+ phony_targets += regen-ka-table
456
+ CLEANFILES += ka-table.inc.T
457
+ endif
458
+ endif
459
+
460
+ if ENABLE_OBSOLETE_API
461
+ libcrypt_la_SOURCES += lib/crypt-des-obsolete.c
462
+ check_PROGRAMS += test/des-obsolete test/des-obsolete_r
463
+ endif
464
+
465
+ TESTS = $(check_PROGRAMS)
466
+
467
+ if ENABLE_STATIC
468
+ TESTS += test/symbols-static.pl test/symbols-renames.pl
469
+ endif
470
+
471
+ if ENABLE_OBSOLETE_API
472
+ TESTS += test/symbols-compat.pl
473
+ endif
474
+
475
+ AM_TESTS_ENVIRONMENT = \
476
+ lib_la="./libcrypt.la"; \
477
+ lib_map="$(srcdir)/lib/libcrypt.map.in"; \
478
+ HAVE_CPP_dD="$(HAVE_CPP_dD)"; \
479
+ SYMBOL_PREFIX="$(SYMBOL_PREFIX)"; \
480
+ CC="$(CC)"; \
481
+ CPP="$(CPP)"; \
482
+ CPPFLAGS="$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)"; \
483
+ CPPFLAGS="$${CPPFLAGS} $(AM_CPPFLAGS) $(CPPFLAGS)"; \
484
+ CFLAGS="$(CFLAGS)"; \
485
+ LDFLAGS="$(LDFLAGS)"; \
486
+ NM="$(NM)"; \
487
+ SHELL="$(SHELL)"; \
488
+ export lib_la lib_map HAVE_CPP_dD SYMBOL_PREFIX; \
489
+ export CC CPP CPPFLAGS CFLAGS LDFLAGS NM SHELL;
490
+
491
+ PL_LOG_COMPILER = $(PERL)
492
+ if CROSS_COMPILING
493
+ LOG_COMPILER = $(PERL) $(SCRIPTS_AUX)/skip-if-exec-format-error
494
+ endif
495
+
496
+ test/symbols-compat.log test/symbols-compat.trs: test/TestCommon.pm
497
+ test/symbols-renames.log test/symbols-renames.trs: test/TestCommon.pm
498
+ test/symbols-static.log test/symbols-static.trs: test/TestCommon.pm
499
+
500
+ COMMON_TEST_OBJECTS = libcrypt.la
501
+
502
+ test_badsalt_LDADD = $(COMMON_TEST_OBJECTS)
503
+ test_badsetting_LDADD = $(COMMON_TEST_OBJECTS)
504
+ test_gensalt_bcrypt_x_LDADD = $(COMMON_TEST_OBJECTS)
505
+ test_gensalt_nested_call_LDADD = $(COMMON_TEST_OBJECTS)
506
+ test_gensalt_nthash_LDADD = $(COMMON_TEST_OBJECTS)
507
+ test_gensalt_extradata_LDADD = $(COMMON_TEST_OBJECTS)
508
+ test_checksalt_LDADD = $(COMMON_TEST_OBJECTS)
509
+ test_des_obsolete_LDADD = $(COMMON_TEST_OBJECTS)
510
+ test_des_obsolete_r_LDADD = $(COMMON_TEST_OBJECTS)
511
+ test_crypt_badargs_LDADD = $(COMMON_TEST_OBJECTS)
512
+ test_crypt_nested_call_LDADD = $(COMMON_TEST_OBJECTS)
513
+ test_crypt_too_long_phrase_LDADD = $(COMMON_TEST_OBJECTS)
514
+ test_preferred_method_LDADD = $(COMMON_TEST_OBJECTS)
515
+ test_short_outbuf_LDADD = $(COMMON_TEST_OBJECTS)
516
+ test_special_char_salt_LDADD = $(COMMON_TEST_OBJECTS)
517
+
518
+ test_ka_bcrypt_LDADD = $(COMMON_TEST_OBJECTS)
519
+ test_ka_bcrypt_a_LDADD = $(COMMON_TEST_OBJECTS)
520
+ test_ka_bcrypt_x_LDADD = $(COMMON_TEST_OBJECTS)
521
+ test_ka_bcrypt_y_LDADD = $(COMMON_TEST_OBJECTS)
522
+ test_ka_bigcrypt_LDADD = $(COMMON_TEST_OBJECTS)
523
+ test_ka_bsdicrypt_LDADD = $(COMMON_TEST_OBJECTS)
524
+ test_ka_descrypt_LDADD = $(COMMON_TEST_OBJECTS)
525
+ test_ka_gost_yescrypt_LDADD = $(COMMON_TEST_OBJECTS)
526
+ test_ka_md5crypt_LDADD = $(COMMON_TEST_OBJECTS)
527
+ test_ka_nt_LDADD = $(COMMON_TEST_OBJECTS)
528
+ test_ka_scrypt_LDADD = $(COMMON_TEST_OBJECTS)
529
+ test_ka_sha1crypt_LDADD = $(COMMON_TEST_OBJECTS)
530
+ test_ka_sha256crypt_LDADD = $(COMMON_TEST_OBJECTS)
531
+ test_ka_sha512crypt_LDADD = $(COMMON_TEST_OBJECTS)
532
+ test_ka_sm3crypt_LDADD = $(COMMON_TEST_OBJECTS)
533
+ test_ka_sm3_yescrypt_LDADD = $(COMMON_TEST_OBJECTS)
534
+ test_ka_sunmd5_LDADD = $(COMMON_TEST_OBJECTS)
535
+ test_ka_yescrypt_LDADD = $(COMMON_TEST_OBJECTS)
536
+
537
+ # These tests call internal APIs that may not be accessible from the
538
+ # fully linked shared library.
539
+ # Refer to object files that are linked into libxcrypt with the
540
+ # qualified name, lib/libcrypt_la-foobar.lo, to prevent them from
541
+ # being compiled a second time.
542
+ test_gensalt_LDADD = \
543
+ lib/libcrypt_la-util-xstrcpy.lo \
544
+ $(COMMON_TEST_OBJECTS)
545
+ test_alg_des_LDADD = \
546
+ lib/libcrypt_la-alg-des.lo \
547
+ lib/libcrypt_la-alg-des-tables.lo \
548
+ $(COMMON_TEST_OBJECTS)
549
+ test_alg_gost3411_2012_LDADD = \
550
+ lib/libcrypt_la-alg-gost3411-2012-core.lo \
551
+ lib/libcrypt_la-alg-gost3411-2012-hmac.lo \
552
+ lib/libcrypt_la-util-xbzero.lo \
553
+ $(COMMON_TEST_OBJECTS)
554
+ test_alg_gost3411_2012_hmac_LDADD = \
555
+ lib/libcrypt_la-alg-gost3411-2012-core.lo \
556
+ lib/libcrypt_la-alg-gost3411-2012-hmac.lo \
557
+ lib/libcrypt_la-util-xbzero.lo \
558
+ $(COMMON_TEST_OBJECTS)
559
+ test_alg_hmac_sha1_LDADD = \
560
+ lib/libcrypt_la-alg-sha1.lo \
561
+ lib/libcrypt_la-alg-hmac-sha1.lo \
562
+ lib/libcrypt_la-util-xbzero.lo \
563
+ $(COMMON_TEST_OBJECTS)
564
+ test_alg_md4_LDADD = \
565
+ lib/libcrypt_la-alg-md4.lo \
566
+ lib/libcrypt_la-util-xbzero.lo \
567
+ $(COMMON_TEST_OBJECTS)
568
+ test_alg_md5_LDADD = \
569
+ lib/libcrypt_la-alg-md5.lo \
570
+ lib/libcrypt_la-util-xbzero.lo \
571
+ $(COMMON_TEST_OBJECTS)
572
+ test_alg_pbkdf_hmac_sha256_LDADD = \
573
+ lib/libcrypt_la-alg-sha256.lo \
574
+ lib/libcrypt_la-util-xbzero.lo \
575
+ $(COMMON_TEST_OBJECTS)
576
+ test_alg_sha1_LDADD = \
577
+ lib/libcrypt_la-alg-sha1.lo \
578
+ lib/libcrypt_la-util-xbzero.lo \
579
+ $(COMMON_TEST_OBJECTS)
580
+ test_alg_sha256_LDADD = \
581
+ lib/libcrypt_la-alg-sha256.lo \
582
+ lib/libcrypt_la-util-xbzero.lo \
583
+ $(COMMON_TEST_OBJECTS)
584
+ test_alg_sha512_LDADD = \
585
+ lib/libcrypt_la-alg-sha512.lo \
586
+ lib/libcrypt_la-util-xbzero.lo \
587
+ $(COMMON_TEST_OBJECTS)
588
+ test_alg_sm3_LDADD = \
589
+ lib/libcrypt_la-alg-sm3.lo \
590
+ lib/libcrypt_la-util-xbzero.lo \
591
+ $(COMMON_TEST_OBJECTS)
592
+ test_alg_sm3_hmac_LDADD = \
593
+ lib/libcrypt_la-alg-sm3.lo \
594
+ lib/libcrypt_la-alg-sm3-hmac.lo \
595
+ lib/libcrypt_la-util-xbzero.lo \
596
+ $(COMMON_TEST_OBJECTS)
597
+ test_alg_yescrypt_LDADD = \
598
+ lib/libcrypt_la-alg-sha256.lo \
599
+ lib/libcrypt_la-alg-yescrypt-common.lo \
600
+ lib/libcrypt_la-alg-yescrypt-opt.lo \
601
+ lib/libcrypt_la-util-base64.lo \
602
+ lib/libcrypt_la-util-xbzero.lo \
603
+ $(COMMON_TEST_OBJECTS)
604
+ test_crypt_gost_yescrypt_LDADD = \
605
+ lib/libcrypt_la-alg-gost3411-2012-core.lo \
606
+ lib/libcrypt_la-alg-gost3411-2012-hmac.lo \
607
+ lib/libcrypt_la-alg-sha256.lo \
608
+ lib/libcrypt_la-alg-yescrypt-common.lo \
609
+ lib/libcrypt_la-alg-yescrypt-opt.lo \
610
+ lib/libcrypt_la-crypt-yescrypt.lo \
611
+ lib/libcrypt_la-util-base64.lo \
612
+ lib/libcrypt_la-util-xbzero.lo \
613
+ lib/libcrypt_la-util-xstrcpy.lo \
614
+ $(COMMON_TEST_OBJECTS)
615
+ test_crypt_sm3_yescrypt_LDADD = \
616
+ lib/libcrypt_la-alg-sm3.lo \
617
+ lib/libcrypt_la-alg-sm3-hmac.lo \
618
+ lib/libcrypt_la-alg-sha256.lo \
619
+ lib/libcrypt_la-alg-yescrypt-common.lo \
620
+ lib/libcrypt_la-alg-yescrypt-opt.lo \
621
+ lib/libcrypt_la-crypt-yescrypt.lo \
622
+ lib/libcrypt_la-util-base64.lo \
623
+ lib/libcrypt_la-util-xbzero.lo \
624
+ lib/libcrypt_la-util-xstrcpy.lo \
625
+ $(COMMON_TEST_OBJECTS)
626
+
627
+ test_explicit_bzero_LDADD = \
628
+ lib/libcrypt_la-util-xbzero.lo
629
+ test_getrandom_interface_LDADD = \
630
+ lib/libcrypt_la-util-get-random-bytes.lo \
631
+ lib/libcrypt_la-util-xbzero.lo
632
+ test_getrandom_fallbacks_LDADD = \
633
+ lib/libcrypt_la-util-get-random-bytes.lo \
634
+ lib/libcrypt_la-util-xbzero.lo
635
+
636
+
637
+ if HAVE_LD_WRAP
638
+ test_getrandom_fallbacks_LDFLAGS = \
639
+ -Wl,--wrap,getentropy -Wl,--wrap,getrandom -Wl,--wrap,syscall \
640
+ -Wl,--wrap,open -Wl,--wrap,open64 -Wl,--wrap,read -Wl,--wrap,close \
641
+ $(AM_LDFLAGS)
642
+ endif
643
+
644
+ # CI sometimes wants to compile all the test programs but not run them.
645
+ test-programs: $(check_PROGRAMS)
646
+ phony_targets += test-programs
647
+
648
+ # Additional checks to run in `make distcheck'.
649
+ distcheck-hook:
650
+ cd $(top_srcdir) && \
651
+ $(PERL) ./$(SCRIPTS_AUX)/check-perlcritic-config && \
652
+ perlcritic --quiet ./
653
+
654
+ # Target for generating a signed release tarball.
655
+ release: libxcrypt-$(VERSION).tar.xz.sha256sum libxcrypt-gpgkey.asc
656
+ phony_targets += release
657
+
658
+ libxcrypt-$(VERSION).tar.xz.asc: dist-xz
659
+ $(GPG2) \
660
+ --quiet \
661
+ --armor \
662
+ --detach-sign \
663
+ --default-key F52E98007594C21D \
664
+ --output libxcrypt-$(VERSION).tar.xz.asc.T \
665
+ libxcrypt-$(VERSION).tar.xz
666
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change \
667
+ libxcrypt-$(VERSION).tar.xz.asc.T \
668
+ libxcrypt-$(VERSION).tar.xz.asc
669
+
670
+ libxcrypt-$(VERSION).tar.xz.sha256sum: libxcrypt-$(VERSION).tar.xz.asc
671
+ $(SHA256SUM) \
672
+ libxcrypt-$(VERSION).tar.xz \
673
+ libxcrypt-$(VERSION).tar.xz.asc \
674
+ > libxcrypt-$(VERSION).tar.xz.sha256sum.T
675
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change \
676
+ libxcrypt-$(VERSION).tar.xz.sha256sum.T \
677
+ libxcrypt-$(VERSION).tar.xz.sha256sum
678
+
679
+ libxcrypt-gpgkey.asc:
680
+ $(GPG2) \
681
+ --armor \
682
+ --export \
683
+ --export-options \
684
+ export-minimal \
685
+ F52E98007594C21D \
686
+ > libxcrypt-gpgkey.asc.T
687
+ $(AM_V_at)$(SCRIPTS_AUX)/move-if-change \
688
+ libxcrypt-gpgkey.asc.T \
689
+ libxcrypt-gpgkey.asc
690
+
691
+ CLEANFILES += \
692
+ libxcrypt-$(VERSION).tar.xz.asc* \
693
+ libxcrypt-$(VERSION).tar.xz.sha256sum* \
694
+ libxcrypt-gpgkey.asc*
695
+
696
+ # Every object file depends on crypt-symbol-vers.h and crypt-hashes.h,
697
+ # which are generated files, so automatic dependency generation is not
698
+ # sufficient.
699
+ include $(builddir)/Makefile.deps
700
+
701
+ # Add additional targets
702
+ .PHONY: $(phony_targets)
703
+ install-exec-hook: $(install_exec_hook_targets)
704
+ uninstall-hook: $(uninstall_hook_targets)