View | Details | Raw Unified | Return to bug 212149 | Differences between
and this patch

Collapse All | Expand All

(-)security/strongswan/files/patch-src_libstrongswan_plugins_openssl_openssl__plugin.c (-2 / +13 lines)
Lines 1-6 Link Here
1
--- src/libstrongswan/plugins/openssl/openssl_plugin.c.orig	2016-06-30 14:20:10 UTC
1
--- src/libstrongswan/plugins/openssl/openssl_plugin.c.orig	2016-10-08 12:17:09 UTC
2
+++ src/libstrongswan/plugins/openssl/openssl_plugin.c
2
+++ src/libstrongswan/plugins/openssl/openssl_plugin.c
3
@@ -573,7 +573,7 @@ plugin_t *openssl_plugin_create()
3
@@ -20,6 +20,10 @@
4
 #include <threading/mutex.h>
5
 #include <threading/thread_value.h>
6
 
7
+#ifdef LIBRESSL_VERSION_NUMBER
8
+#define OPENSSL_VERSION_NUMBER 0x1000107fL
9
+#endif
10
+
11
 #include <openssl/err.h>
12
 #include <openssl/evp.h>
13
 #include <openssl/conf.h>
14
@@ -623,7 +627,7 @@ plugin_t *openssl_plugin_create()
4
 		},
15
 		},
5
 	);
16
 	);
6
 
17
 
(-)security/strongswan/files/patch-src_libstrongswan_plugins_openssl_openssl__rsa__public__key.h (+104 lines)
Line 0 Link Here
1
--- src/libstrongswan/plugins/openssl/openssl_rsa_public_key.h.orig	2016-04-22 20:01:35 UTC
2
+++ src/libstrongswan/plugins/openssl/openssl_rsa_public_key.h
3
@@ -21,6 +21,101 @@
4
 #ifndef OPENSSL_RSA_PUBLIC_KEY_H_
5
 #define OPENSSL_RSA_PUBLIC_KEY_H_
6
 
7
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
8
+/**
9
+ * OpenSSL compat functions
10
+ * From https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
11
+*/
12
+
13
+#include <string.h>
14
+#include <openssl/engine.h>
15
+
16
+int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
17
+{
18
+   /* If the fields n and e in r are NULL, the corresponding input
19
+    * parameters MUST be non-NULL for n and e.  d may be
20
+    * left NULL (in case only the public key is used).
21
+    */
22
+   if ((r->n == NULL && n == NULL)
23
+       || (r->e == NULL && e == NULL))
24
+       return 0;
25
+
26
+   if (n != NULL) {
27
+       BN_free(r->n);
28
+       r->n = n;
29
+   }
30
+   if (e != NULL) {
31
+       BN_free(r->e);
32
+       r->e = e;
33
+   }
34
+   if (d != NULL) {
35
+       BN_free(r->d);
36
+       r->d = d;
37
+   }
38
+
39
+   return 1;
40
+}
41
+
42
+int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
43
+{
44
+   /* If the fields p and q in r are NULL, the corresponding input
45
+    * parameters MUST be non-NULL.
46
+    */
47
+   if ((r->p == NULL && p == NULL)
48
+       || (r->q == NULL && q == NULL))
49
+       return 0;
50
+
51
+   if (p != NULL) {
52
+       BN_free(r->p);
53
+       r->p = p;
54
+   }
55
+   if (q != NULL) {
56
+       BN_free(r->q);
57
+       r->q = q;
58
+   }
59
+
60
+   return 1;
61
+}
62
+
63
+int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
64
+{
65
+   /* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
66
+    * parameters MUST be non-NULL.
67
+    */
68
+   if ((r->dmp1 == NULL && dmp1 == NULL)
69
+       || (r->dmq1 == NULL && dmq1 == NULL)
70
+       || (r->iqmp == NULL && iqmp == NULL))
71
+       return 0;
72
+
73
+   if (dmp1 != NULL) {
74
+       BN_free(r->dmp1);
75
+       r->dmp1 = dmp1;
76
+   }
77
+   if (dmq1 != NULL) {
78
+       BN_free(r->dmq1);
79
+       r->dmq1 = dmq1;
80
+   }
81
+   if (iqmp != NULL) {
82
+       BN_free(r->iqmp);
83
+       r->iqmp = iqmp;
84
+   }
85
+
86
+   return 1;
87
+}
88
+
89
+void RSA_get0_key(const RSA *r,
90
+                  const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
91
+{
92
+   if (n != NULL)
93
+       *n = r->n;
94
+   if (e != NULL)
95
+       *e = r->e;
96
+   if (d != NULL)
97
+       *d = r->d;
98
+}
99
+
100
+#endif
101
+
102
 typedef struct openssl_rsa_public_key_t openssl_rsa_public_key_t;
103
 
104
 #include <credentials/keys/public_key.h>

Return to bug 212149