--- a/libpurple/plugins/ssl/ssl-nss.c Tue Sep 30 23:58:44 2014 -0700
+++ b/libpurple/plugins/ssl/ssl-nss.c Fri Oct 03 11:14:09 2014 -0400
@@ -923,7 +923,7 @@
-x509_times (PurpleCertificate *crt, time_t *activation, time_t *expiration)
+x509_times (PurpleCertificate *crt, gint64 *activation, gint64 *expiration) CERTCertificate *crt_dat;
PRTime nss_activ, nss_expir;
@@ -949,49 +949,37 @@
- /** Hack to deal with dates past the 32-bit barrier.
- Handling is different for signed vs unsigned 32-bit types.
- if (*activation != nss_activ) {
- purple_debug_warning("nss",
- "Setting Activation Date to epoch to handle pre-epoch value\n");
- purple_debug_error("nss",
- "Activation date past 32-bit barrier, forcing invalidity\n");
- if (*expiration != nss_expir) {
- if (*expiration < nss_expir) {
- purple_debug_warning("nss",
- "Setting Expiration Date to 32-bit signed max\n");
- *expiration = PR_INT32_MAX;
- purple_debug_warning("nss",
- "Setting Expiration Date to 32-bit unsigned max\n");
- *expiration = PR_UINT32_MAX;
- purple_debug_error("nss",
- "Expiration date prior to unix epoch, forcing invalidity\n");
+x509_get_der_data(PurpleCertificate *crt) + CERTCertificate *crt_dat; + crt_dat = X509_NSS_DATA(crt); + g_return_val_if_fail(crt_dat, NULL); + dercrt = SEC_ASN1EncodeItem(NULL, NULL, crt_dat, + SEC_ASN1_GET(SEC_SignedCertificateTemplate)); + g_return_val_if_fail(dercrt != NULL, FALSE); + data = g_byte_array_sized_new(dercrt->len); + memcpy(data->data, dercrt->data, dercrt->len); + data->len = dercrt->len; + SECITEM_FreeItem(dercrt, PR_TRUE); static PurpleCertificateScheme x509_nss = {
"x509", /* Scheme name */
N_("X.509 Certificates"), /* User-visible scheme name */
@@ -1007,9 +995,8 @@
x509_check_name, /* Check subject name */
x509_times, /* Activation/Expiration time */
x509_importcerts_from_file, /* Multiple certificate import function */
+ x509_get_der_data, /* Binary DER data */
@@ -1026,6 +1013,7 @@
--- a/libpurple/win32/global.mak Tue Sep 30 23:58:44 2014 -0700
+++ b/libpurple/win32/global.mak Fri Oct 03 11:14:09 2014 -0400
@@ -75,6 +75,7 @@
CC_HARDENING_OPTIONS ?= -Wstack-protector -fwrapv -fno-strict-overflow -Wno-missing-field-initializers -Wformat-security -fstack-protector-all --param ssp-buffer-size=1
LD_HARDENING_OPTIONS ?= -Wl,--dynamicbase -Wl,--nxcompat
+TAG := @$(PURPLE_TOP)/tag.sh # parse the version number from the configure.ac file if it is newer
#m4_define([purple_major_version], [2])
@@ -116,18 +117,45 @@
ifeq "$(origin CC)" "default"
-GMSGFMT ?= $(WIN32_DEV_TOP)/gettext-0.17/bin/msgfmt
+# comment out the next line to make output more verbose +CC := $(TAG) "auto" $(CC) +GMSGFMT ?= $(GETTEXT_TOP)/bin/msgfmt -INTLTOOL_MERGE ?= $(WIN32_DEV_TOP)/intltool_0.40.4-1_win32/bin/intltool-merge
+INTLTOOL_MERGE ?= $(INTLTOOL_TOP)/bin/intltool-merge MONO_SIGNCODE ?= signcode
+GLIB_GENMARSHAL ?= $(GTK_BIN)/glib-genmarshal +GLIB_MKENUMS ?= $(GTK_BIN)/glib-mkenums PIDGIN_COMMON_RULES := $(PURPLE_TOP)/win32/rules.mak
PIDGIN_COMMON_TARGETS := $(PURPLE_TOP)/win32/targets.mak
MINGW_MAKEFILE := Makefile.mingw
+ -I$(GSTREAMER_TOP)/include/gstreamer-0.10 \ + -I$(GSTREAMER_TOP)/include/farstream-0.1 \ + -I$(LIBXML2_TOP)/include/libxml2 +DEFINES += -DUSE_GSTREAMER -DUSE_VV INSTALL_SSL_CERTIFICATES ?= 1