]> jfr.im git - irc/hexchat/hexchat.git/commitdiff
Final fixup of OpenSSL 1.1.0 changes
authorPatrick Griffis <redacted>
Sun, 23 Oct 2016 07:26:43 +0000 (03:26 -0400)
committerPatrick Griffis <redacted>
Sun, 23 Oct 2016 07:34:15 +0000 (03:34 -0400)
plugins/fishlim/dh1080.c
src/common/ssl.c

index 5afb1c6316d887ef1ff6e47a41450e81ab3b0d95..ff6e5794e2e8ffc4164bc39d76cf2b75297b7850 100644 (file)
@@ -64,12 +64,23 @@ dh1080_init (void)
        if ((g_dh = DH_new()))
        {
                int codes;
+               BIGNUM *p, *g;
 
-               g_dh->p = BN_bin2bn (prime1080, DH1080_PRIME_BYTES, NULL);
-               g_dh->g = BN_new ();
+               p = BN_bin2bn (prime1080, DH1080_PRIME_BYTES, NULL);
+               g = BN_new ();
 
-               g_assert (g_dh->p != NULL && g_dh->g != NULL);
-               BN_set_word(g_dh->g, 2);
+               if (p == NULL || g == NULL)
+                       return 1;
+
+               BN_set_word (g, 2);
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+               g_dh->p = p;
+               g_dh->g = g;
+#else
+               if (!DH_set0_pqg (g_dh, p, NULL, g))
+                       return 1;
+#endif
 
                if (DH_check (g_dh, &codes))
                        return codes == 0;
@@ -136,6 +147,7 @@ dh1080_generate_key (char **priv_key, char **pub_key)
        guchar buf[DH1080_PRIME_BYTES];
        int len;
        DH *dh;
+       const BIGNUM *dh_priv_key, *dh_pub_key;
 
        g_assert (priv_key != NULL);
        g_assert (pub_key != NULL);
@@ -150,12 +162,19 @@ dh1080_generate_key (char **priv_key, char **pub_key)
                return 0;
        }
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+       dh_pub_key = dh->pub_key;
+       dh_priv_key = dh->priv_key;
+#else
+       DH_get0_key (dh, &dh_pub_key, &dh_priv_key);
+#endif
+
        MEMZERO (buf);
-       len = BN_bn2bin (dh->priv_key, buf);
+       len = BN_bn2bin (dh_priv_key, buf);
        *priv_key = dh1080_encode_b64 (buf, len);
 
        MEMZERO (buf);
-       len = BN_bn2bin(dh->pub_key, buf);
+       len = BN_bn2bin (dh_pub_key, buf);
        *pub_key = dh1080_encode_b64 (buf, len);
 
        OPENSSL_cleanse (buf, sizeof (buf));
@@ -190,9 +209,15 @@ dh1080_compute_key (const char *priv_key, const char *pub_key, char **secret_key
                char *priv_key_data;
                gsize priv_key_len;
                int shared_len;
+               BIGNUM *priv_key_num;
 
                priv_key_data = dh1080_decode_b64 (priv_key, &priv_key_len);
-               dh->priv_key = BN_bin2bn(priv_key_data, priv_key_len, NULL);
+               priv_key_num = BN_bin2bn(priv_key_data, priv_key_len, NULL);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+               dh->priv_key = priv_key_num;
+#else
+               DH_set0_key (dh, NULL, priv_key_num);
+#endif
 
                shared_len = DH_compute_key (shared_key, pk, dh);
                SHA256(shared_key, shared_len, sha256);
index ad83d070848435f9de6a91911abb3b258c05805a..cb58ce255d00164cc1f7dce4623eb206ad57986a 100644 (file)
@@ -176,7 +176,11 @@ _SSL_get_cert_info (struct cert_info *cert_info, SSL * ssl)
                return 1;
 
        alg = OBJ_obj2nid (algor->algorithm);
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
        sign_alg = OBJ_obj2nid (peer_cert->sig_alg->algorithm);
+#else
+       sign_alg = X509_get_signature_nid (peer_cert);
+#endif
        ASN1_TIME_snprintf (notBefore, sizeof (notBefore),
                                                          X509_get_notBefore (peer_cert));
        ASN1_TIME_snprintf (notAfter, sizeof (notAfter),