Line 0
Link Here
|
|
|
1 |
--- domainkeys.c.orig 2018-10-12 20:09:34 UTC |
2 |
+++ domainkeys.c |
3 |
@@ -120,7 +120,11 @@ typedef struct |
4 |
{ |
5 |
/* STARTPRIV */ |
6 |
int dkmarker; /* in case somebody casts in */ |
7 |
- EVP_MD_CTX mdctx; /* the hash */ |
8 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
9 |
+ EVP_MD_CTX mdctx; |
10 |
+#else |
11 |
+ EVP_MD_CTX *mdctx; /* the hash */ |
12 |
+#endif |
13 |
int signing; /* our current signing/verifying state */ |
14 |
int in_headers; /* true if we're still processing headers */ |
15 |
char *header; /* points to a malloc'ed block for header. */ |
16 |
@@ -503,7 +507,11 @@ DK *dk_sign(DK_LIB *dklib, DK_STAT *statp, int canon) |
17 |
return NULL; |
18 |
} |
19 |
dk->canon = canon; /* TC13-simple, TC13-nofws */ |
20 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
21 |
EVP_SignInit(&dk->mdctx, dklib->md); |
22 |
+#else |
23 |
+ EVP_SignInit(dk->mdctx, dklib->md); |
24 |
+#endif |
25 |
|
26 |
if (statp) |
27 |
{ |
28 |
@@ -541,7 +549,11 @@ DK *dk_verify(DK_LIB *dklib, DK_STAT *statp) |
29 |
} |
30 |
return NULL; |
31 |
} |
32 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
33 |
EVP_VerifyInit(&dk->mdctx, dklib->md); |
34 |
+#else |
35 |
+ EVP_VerifyInit(dk->mdctx, dklib->md); |
36 |
+#endif |
37 |
|
38 |
if (statp) |
39 |
{ |
40 |
@@ -928,14 +940,22 @@ static void dkhash(DK *dk, const unsigned char *ptr) |
41 |
{ |
42 |
|
43 |
#ifndef DK_HASH_BUFF |
44 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
45 |
EVP_DigestUpdate(&dk->mdctx, "\r\n", 2); |
46 |
#else |
47 |
+ EVP_DigestUpdate(dk->mdctx, "\r\n", 2); |
48 |
+#endif |
49 |
+#else |
50 |
/* buffer hack */ |
51 |
dk->hash_buff[dk->hash_buff_len++] = '\r'; |
52 |
dk->hash_buff[dk->hash_buff_len++] = '\n'; |
53 |
if (dk->hash_buff_len >= (DK_BLOCK - 1)) |
54 |
{ |
55 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
56 |
EVP_DigestUpdate(&dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
57 |
+#else |
58 |
+ EVP_DigestUpdate(dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
59 |
+#endif |
60 |
dk->hash_buff_len = 0; |
61 |
} |
62 |
/* buffer hack */ |
63 |
@@ -955,13 +975,21 @@ static void dkhash(DK *dk, const unsigned char *ptr) |
64 |
if (dk->canon == DK_CANON_SIMPLE)//if nofws we ignore \r |
65 |
{ |
66 |
#ifndef DK_HASH_BUFF |
67 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
68 |
EVP_DigestUpdate(&dk->mdctx, "\r", 1); |
69 |
#else |
70 |
+ EVP_DigestUpdate(dk->mdctx, "\r", 1); |
71 |
+#endif |
72 |
+#else |
73 |
/* buffer hack */ |
74 |
dk->hash_buff[dk->hash_buff_len++] = '\r'; |
75 |
if (dk->hash_buff_len >= (DK_BLOCK - 1)) |
76 |
{ |
77 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
78 |
EVP_DigestUpdate(&dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
79 |
+#else |
80 |
+ EVP_DigestUpdate(dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
81 |
+#endif |
82 |
dk->hash_buff_len = 0; |
83 |
} |
84 |
/* buffer hack */ |
85 |
@@ -977,13 +1005,21 @@ static void dkhash(DK *dk, const unsigned char *ptr) |
86 |
dk->state --; |
87 |
} |
88 |
#ifndef DK_HASH_BUFF |
89 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
90 |
EVP_DigestUpdate(&dk->mdctx, ptr, 1); |
91 |
#else |
92 |
+ EVP_DigestUpdate(dk->mdctx, ptr, 1); |
93 |
+#endif |
94 |
+#else |
95 |
/* buffer hack */ |
96 |
dk->hash_buff[dk->hash_buff_len++] = *ptr; |
97 |
if (dk->hash_buff_len >= (DK_BLOCK - 1)) |
98 |
{ |
99 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
100 |
EVP_DigestUpdate(&dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
101 |
+#else |
102 |
+ EVP_DigestUpdate(dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
103 |
+#endif |
104 |
dk->hash_buff_len = 0; |
105 |
} |
106 |
/* buffer hack */ |
107 |
@@ -1746,11 +1782,19 @@ DK_STAT dk_end(DK *dk, DK_FLAGS *dkf) |
108 |
//clean out hash buffer |
109 |
dk->hash_buff[dk->hash_buff_len++] = '\r'; |
110 |
dk->hash_buff[dk->hash_buff_len++] = '\n'; |
111 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
112 |
EVP_DigestUpdate(&dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
113 |
+#else |
114 |
+ EVP_DigestUpdate(dk->mdctx, dk->hash_buff, dk->hash_buff_len); |
115 |
+#endif |
116 |
dk->hash_buff_len = 0; |
117 |
#else |
118 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
119 |
EVP_DigestUpdate(&dk->mdctx, "\r\n", 2); |
120 |
+#else |
121 |
+ EVP_DigestUpdate(dk->mdctx, "\r\n", 2); |
122 |
#endif |
123 |
+#endif |
124 |
#ifdef DK_DEBUG |
125 |
fprintf(stderr,"\r\n"); |
126 |
#endif |
127 |
@@ -1949,7 +1993,11 @@ DK_STAT dk_end(DK *dk, DK_FLAGS *dkf) |
128 |
} |
129 |
|
130 |
/* using that key, verify that the digest is properly signed */ |
131 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
132 |
i = EVP_VerifyFinal(&dk->mdctx, md_value, md_len, publickey); |
133 |
+#else |
134 |
+ i = EVP_VerifyFinal(dk->mdctx, md_value, md_len, publickey); |
135 |
+#endif |
136 |
|
137 |
if (i > 0) |
138 |
{ |
139 |
@@ -2058,7 +2106,11 @@ DK_STAT dk_getsig(DK *dk, void *privatekey, unsigned c |
140 |
|
141 |
siglen = EVP_PKEY_size(pkey); |
142 |
sig = (unsigned char*) OPENSSL_malloc(siglen); |
143 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
144 |
EVP_SignFinal(&dk->mdctx, sig, &siglen, pkey); |
145 |
+#else |
146 |
+ EVP_SignFinal(dk->mdctx, sig, &siglen, pkey); |
147 |
+#endif |
148 |
EVP_PKEY_free(pkey); |
149 |
|
150 |
bio = BIO_new(BIO_s_mem()); |
151 |
@@ -2152,14 +2204,20 @@ DK_STAT dk_free(DK *dk, int doClearErrState) |
152 |
#ifdef DK_HASH_BUFF |
153 |
DK_MFREE(dk->hash_buff); |
154 |
#endif |
155 |
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL |
156 |
EVP_MD_CTX_cleanup(&dk->mdctx); |
157 |
+#else |
158 |
+ EVP_MD_CTX_free(dk->mdctx); |
159 |
+#endif |
160 |
DK_MFREE(dk->header); /* alloc'ing dk->header is not optional. */ |
161 |
dk->dkmarker = ~DKMARK; |
162 |
DK_MFREE(dk); |
163 |
|
164 |
if (doClearErrState) |
165 |
{ |
166 |
+#ifdef HAVE_ERR_REMOVE_STATE |
167 |
ERR_remove_state(0); |
168 |
+#endif |
169 |
} |
170 |
return DK_STAT_OK; |
171 |
} |