Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/ftp/bsdftpd-ssl/files/patch-ssl_sslapp.c
18878 views
1
--- ssl/sslapp.c.orig 2005-01-10 23:34:59 UTC
2
+++ ssl/sslapp.c
3
@@ -113,10 +113,14 @@ do_ssleay_init(int server)
4
5
if (SSL_CTX_need_tmp_RSA(ssl_ctx)) {
6
RSA *rsa;
7
+ BIGNUM *e;
8
9
if (ssl_debug_flag)
10
ssl_log_msgn(bio_err, "Generating temp (512 bit) RSA key...");
11
- rsa = RSA_generate_key(512, RSA_F4, NULL, NULL);
12
+
13
+ e = BN_new();
14
+ BN_set_word(e, RSA_F4);
15
+ RSA_generate_key_ex(rsa, 512, e, NULL);
16
if (ssl_debug_flag)
17
ssl_log_msgn(bio_err, "Generation of temp (512 bit) RSA key done");
18
19
@@ -289,12 +293,13 @@ int
20
ssl_X509_STORE_lookup(X509_STORE *pStore, int nType,
21
X509_NAME *pName, X509_OBJECT *pObj)
22
{
23
- X509_STORE_CTX pStoreCtx;
24
+ X509_STORE_CTX *pStoreCtx;
25
int rc;
26
27
- X509_STORE_CTX_init(&pStoreCtx, pStore, NULL, NULL);
28
- rc = X509_STORE_get_by_subject(&pStoreCtx, nType, pName, pObj);
29
- X509_STORE_CTX_cleanup(&pStoreCtx);
30
+ pStoreCtx = X509_STORE_CTX_new();
31
+ X509_STORE_CTX_init(pStoreCtx, pStore, NULL, NULL);
32
+ rc = X509_STORE_get_by_subject(pStoreCtx, nType, pName, pObj);
33
+ X509_STORE_CTX_free(pStoreCtx);
34
return rc;
35
}
36
37
@@ -311,7 +316,7 @@ ssl_X509_STORE_lookup(X509_STORE *pStore, int nType,
38
int
39
verify_cb_CRL(int ok, X509_STORE_CTX *ctx)
40
{
41
- X509_OBJECT obj;
42
+ X509_OBJECT *obj;
43
X509_NAME *subject;
44
X509_NAME *issuer;
45
X509 *xs;
46
@@ -368,16 +373,16 @@ verify_cb_CRL(int ok, X509_STORE_CTX *ctx)
47
* Try to retrieve a CRL corresponding to the _subject_ of
48
* the current certificate in order to verify it's integrity.
49
*/
50
- memset((char *)&obj, 0, sizeof(obj));
51
- rc = ssl_X509_STORE_lookup(x509st_CRL, X509_LU_CRL, subject, &obj);
52
- crl = obj.data.crl;
53
+ obj = X509_OBJECT_new();
54
+ rc = ssl_X509_STORE_lookup(x509st_CRL, X509_LU_CRL, subject, obj);
55
+ crl = X509_OBJECT_get0_X509_CRL(obj);
56
if (rc > 0 && crl != NULL) {
57
/*
58
* Verify the signature on this CRL
59
*/
60
if (X509_CRL_verify(crl, X509_get_pubkey(xs)) <= 0) {
61
X509_STORE_CTX_set_error(ctx, X509_V_ERR_CRL_SIGNATURE_FAILURE);
62
- X509_OBJECT_free_contents(&obj);
63
+ X509_OBJECT_free(obj);
64
return 0;
65
}
66
67
@@ -387,24 +392,24 @@ verify_cb_CRL(int ok, X509_STORE_CTX *ctx)
68
i = X509_cmp_current_time(X509_CRL_get_nextUpdate(crl));
69
if (i == 0) {
70
X509_STORE_CTX_set_error(ctx, X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD);
71
- X509_OBJECT_free_contents(&obj);
72
+ X509_OBJECT_free(obj);
73
return 0;
74
}
75
if (i < 0) {
76
X509_STORE_CTX_set_error(ctx, X509_V_ERR_CRL_HAS_EXPIRED);
77
- X509_OBJECT_free_contents(&obj);
78
+ X509_OBJECT_free(obj);
79
return 0;
80
}
81
- X509_OBJECT_free_contents(&obj);
82
+ X509_OBJECT_free(obj);
83
}
84
85
/*
86
* Try to retrieve a CRL corresponding to the _issuer_ of
87
* the current certificate in order to check for revocation.
88
*/
89
- memset((char *)&obj, 0, sizeof(obj));
90
- rc = ssl_X509_STORE_lookup(x509st_CRL, X509_LU_CRL, issuer, &obj);
91
- crl = obj.data.crl;
92
+ obj = X509_OBJECT_new();
93
+ rc = ssl_X509_STORE_lookup(x509st_CRL, X509_LU_CRL, issuer, obj);
94
+ crl = X509_OBJECT_get0_X509_CRL(obj);
95
if (rc > 0 && crl != NULL) {
96
/*
97
* Check if the current certificate is revoked by this CRL
98
@@ -412,13 +417,14 @@ verify_cb_CRL(int ok, X509_STORE_CTX *ctx)
99
n = sk_X509_REVOKED_num(X509_CRL_get_REVOKED(crl));
100
for (i = 0; i < n; i++) {
101
revoked = sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i);
102
- if (ASN1_INTEGER_cmp(revoked->serialNumber, X509_get_serialNumber(xs)) == 0) {
103
+ if (ASN1_INTEGER_cmp(X509_REVOKED_get0_serialNumber(revoked),
104
+ X509_get_serialNumber(xs)) == 0) {
105
X509_STORE_CTX_set_error(ctx, X509_V_ERR_CERT_REVOKED);
106
- X509_OBJECT_free_contents(&obj);
107
+ X509_OBJECT_free(obj);
108
return 0;
109
}
110
}
111
- X509_OBJECT_free_contents(&obj);
112
+ X509_OBJECT_free(obj);
113
}
114
return ok;
115
}
116
117