... | ... |
@@ -251,7 +251,7 @@ libfreshclam_la_OBJECTS = $(am_libfreshclam_la_OBJECTS) |
251 | 251 |
AM_V_lt = $(am__v_lt_@AM_V@) |
252 | 252 |
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) |
253 | 253 |
am__v_lt_0 = --silent |
254 |
-am__v_lt_1 = |
|
254 |
+am__v_lt_1 = |
|
255 | 255 |
libfreshclam_la_LINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ |
256 | 256 |
$(LIBTOOLFLAGS) --mode=link $(OBJCLD) $(AM_OBJCFLAGS) \ |
257 | 257 |
$(OBJCFLAGS) $(libfreshclam_la_LDFLAGS) $(LDFLAGS) -o $@ |
... | ... |
@@ -262,11 +262,11 @@ am__v_P_1 = : |
262 | 262 |
AM_V_GEN = $(am__v_GEN_@AM_V@) |
263 | 263 |
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) |
264 | 264 |
am__v_GEN_0 = @echo " GEN " $@; |
265 |
-am__v_GEN_1 = |
|
265 |
+am__v_GEN_1 = |
|
266 | 266 |
AM_V_at = $(am__v_at_@AM_V@) |
267 | 267 |
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) |
268 | 268 |
am__v_at_0 = @ |
269 |
-am__v_at_1 = |
|
269 |
+am__v_at_1 = |
|
270 | 270 |
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/libclammspack |
271 | 271 |
depcomp = $(SHELL) $(top_srcdir)/config/depcomp |
272 | 272 |
am__depfiles_maybe = depfiles |
... | ... |
@@ -280,7 +280,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
280 | 280 |
AM_V_CC = $(am__v_CC_@AM_V@) |
281 | 281 |
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) |
282 | 282 |
am__v_CC_0 = @echo " CC " $@; |
283 |
-am__v_CC_1 = |
|
283 |
+am__v_CC_1 = |
|
284 | 284 |
CCLD = $(CC) |
285 | 285 |
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
286 | 286 |
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
... | ... |
@@ -288,7 +288,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ |
288 | 288 |
AM_V_CCLD = $(am__v_CCLD_@AM_V@) |
289 | 289 |
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) |
290 | 290 |
am__v_CCLD_0 = @echo " CCLD " $@; |
291 |
-am__v_CCLD_1 = |
|
291 |
+am__v_CCLD_1 = |
|
292 | 292 |
OBJCCOMPILE = $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ |
293 | 293 |
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) |
294 | 294 |
LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ |
... | ... |
@@ -298,7 +298,7 @@ LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ |
298 | 298 |
AM_V_OBJC = $(am__v_OBJC_@AM_V@) |
299 | 299 |
am__v_OBJC_ = $(am__v_OBJC_@AM_DEFAULT_V@) |
300 | 300 |
am__v_OBJC_0 = @echo " OBJC " $@; |
301 |
-am__v_OBJC_1 = |
|
301 |
+am__v_OBJC_1 = |
|
302 | 302 |
OBJCLD = $(OBJC) |
303 | 303 |
OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
304 | 304 |
--mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \ |
... | ... |
@@ -306,7 +306,7 @@ OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
306 | 306 |
AM_V_OBJCLD = $(am__v_OBJCLD_@AM_V@) |
307 | 307 |
am__v_OBJCLD_ = $(am__v_OBJCLD_@AM_DEFAULT_V@) |
308 | 308 |
am__v_OBJCLD_0 = @echo " OBJCLD " $@; |
309 |
-am__v_OBJCLD_1 = |
|
309 |
+am__v_OBJCLD_1 = |
|
310 | 310 |
SOURCES = $(libfreshclam_la_SOURCES) |
311 | 311 |
DIST_SOURCES = $(am__libfreshclam_la_SOURCES_DIST) |
312 | 312 |
am__can_run_installinfo = \ |
... | ... |
@@ -588,6 +588,7 @@ libfreshclam_la_LDFLAGS = @CURL_LDFLAGS@ @SSL_LDFLAGS@ @TH_SAFE@ \ |
588 | 588 |
@JSON_LDFLAGS@ @ICONV_LDFLAGS@ $(XML_LIBS) -version-info \ |
589 | 589 |
@LIBFRESHCLAM_VERSION@ -no-undefined $(am__append_1) \ |
590 | 590 |
$(am__append_2) |
591 |
+AM_LIBTOOLFLAGS = --tag CXX |
|
591 | 592 |
EXTRA_DIST = libfreshclam.map |
592 | 593 |
include_HEADERS = libfreshclam.h |
593 | 594 |
libfreshclam_la_SOURCES = $(top_srcdir)/shared/output.c \ |
... | ... |
@@ -675,7 +676,7 @@ clean-libLTLIBRARIES: |
675 | 675 |
rm -f $${locs}; \ |
676 | 676 |
} |
677 | 677 |
|
678 |
-libfreshclam.la: $(libfreshclam_la_OBJECTS) $(libfreshclam_la_DEPENDENCIES) $(EXTRA_libfreshclam_la_DEPENDENCIES) |
|
678 |
+libfreshclam.la: $(libfreshclam_la_OBJECTS) $(libfreshclam_la_DEPENDENCIES) $(EXTRA_libfreshclam_la_DEPENDENCIES) |
|
679 | 679 |
$(AM_V_OBJCLD)$(libfreshclam_la_LINK) -rpath $(libdir) $(libfreshclam_la_OBJECTS) $(libfreshclam_la_LIBADD) $(LIBS) |
680 | 680 |
|
681 | 681 |
mostlyclean-compile: |
... | ... |
@@ -77,4 +77,17 @@ void cert_store_free_cert_list_int(cert_list_t *cert_list); |
77 | 77 |
*/ |
78 | 78 |
cl_error_t cert_store_set_trusted_int(X509 **trusted_certs, size_t trusted_cert_count); |
79 | 79 |
|
80 |
+/** |
|
81 |
+ * @brief Get the name from an X509 certificate. |
|
82 |
+ * Required if OPENSSL_VERSION_NUMBER >= 0x10100000L ( 1.1.0+ ) |
|
83 |
+ * because the X509 structure is now opaque. |
|
84 |
+ * |
|
85 |
+ * The name must be free()'d by the caller. |
|
86 |
+ * |
|
87 |
+ * @param[in] cert - The cert in question. |
|
88 |
+ * @param[out] name - The NULL terminated name. |
|
89 |
+ * @return cl_error_t CL_SUCCESS on success. |
|
90 |
+ */ |
|
91 |
+cl_error_t x509_get_cert_name(X509 *cert, char **name); |
|
92 |
+ |
|
80 | 93 |
#endif |
... | ... |
@@ -332,17 +332,27 @@ cl_error_t cert_store_load(X509 **trusted_certs, size_t trusted_cert_count) |
332 | 332 |
const unsigned char *der = CFDataGetBytePtr(cert_data); |
333 | 333 |
CFIndex length = CFDataGetLength(cert_data); |
334 | 334 |
|
335 |
+ char *name = NULL; |
|
335 | 336 |
X509 *x509 = d2i_X509(NULL, &der, length); |
336 | 337 |
|
338 |
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L |
|
339 |
+ x509_get_cert_name(x509, &name); |
|
340 |
+#else |
|
341 |
+ name = x509->name; |
|
342 |
+#endif |
|
343 |
+ |
|
337 | 344 |
if (x509) { |
338 | 345 |
mprintf("*Found %s trusted certificate %s\n", |
339 | 346 |
kc_info.name, |
340 |
- (x509->name ? x509->name : "<no name>")); |
|
347 |
+ (name ? name : "<no name>")); |
|
341 | 348 |
|
342 | 349 |
store->system_certs.certificates[store->system_certs.count++] = x509; |
343 | 350 |
} else { |
344 | 351 |
mprintf("!Failed conversion of DER format to X.509\n"); |
345 | 352 |
} |
353 |
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L |
|
354 |
+ free(name); |
|
355 |
+#endif |
|
346 | 356 |
|
347 | 357 |
CFRelease(cert_data); |
348 | 358 |
cert_data = NULL; |