Blame SOURCES/openslp-2.0.0-openssl-1.1-fix.patch

e632d0
diff -up openslp-2.0.0/common/slp_crypto.c.orig openslp-2.0.0/common/slp_crypto.c
e632d0
--- openslp-2.0.0/common/slp_crypto.c.orig	2012-12-07 21:13:28.000000000 +0100
e632d0
+++ openslp-2.0.0/common/slp_crypto.c	2017-10-04 09:38:48.469999889 +0200
e632d0
@@ -88,11 +88,24 @@ SLPCryptoDSAKey * SLPCryptoDSAKeyDup(SLP
e632d0
    result =  DSA_new();
e632d0
    if (result)
e632d0
    {
e632d0
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
e632d0
+      const BIGNUM *p, *q, *g;
e632d0
+      const BIGNUM *priv_key, *pub_key;
e632d0
+
e632d0
+      DSA_get0_pqg(dsa, &p, &q, &g);
e632d0
+      DSA_get0_key(dsa, &pub_key, &priv_key);
e632d0
+
e632d0
+      /* would be nice to check return values, but
e632d0
+       * original code for OpenSSL < 1.1 didn't do that either... */
e632d0
+      DSA_set0_pqg(result, BN_dup(p), BN_dup(q), BN_dup(g));
e632d0
+      DSA_set0_key(result, BN_dup(pub_key), BN_dup(priv_key));
e632d0
+#else
e632d0
       result->p = BN_dup(dsa->p);
e632d0
       result->q = BN_dup(dsa->q);
e632d0
       result->g = BN_dup(dsa->g);
e632d0
       result->priv_key = BN_dup(dsa->priv_key);
e632d0
       result->pub_key = BN_dup(dsa->pub_key);
e632d0
+#endif
e632d0
    }
e632d0
    return result;
e632d0
 }