projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Embed X509_CINF
[openssl.git]
/
crypto
/
x509
/
x509_lu.c
diff --git
a/crypto/x509/x509_lu.c
b/crypto/x509/x509_lu.c
index 20862253e6c9792718b6a7080956d766d95394fc..71a22d0385994a81b9b2e55a3adaece11aff3194 100644
(file)
--- a/
crypto/x509/x509_lu.c
+++ b/
crypto/x509/x509_lu.c
@@
-60,6
+60,7
@@
#include "internal/cryptlib.h"
#include <openssl/lhash.h>
#include <openssl/x509.h>
#include "internal/cryptlib.h"
#include <openssl/lhash.h>
#include <openssl/x509.h>
+#include "internal/x509_int.h"
#include <openssl/x509v3.h>
#include "x509_lcl.h"
#include <openssl/x509v3.h>
#include "x509_lcl.h"
@@
-67,15
+68,11
@@
X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method)
{
X509_LOOKUP *ret;
{
X509_LOOKUP *ret;
- ret = OPENSSL_
m
alloc(sizeof(*ret));
+ ret = OPENSSL_
z
alloc(sizeof(*ret));
if (ret == NULL)
return NULL;
if (ret == NULL)
return NULL;
- ret->init = 0;
- ret->skip = 0;
ret->method = method;
ret->method = method;
- ret->method_data = NULL;
- ret->store_ctx = NULL;
if ((method->new_item != NULL) && !method->new_item(ret)) {
OPENSSL_free(ret);
return NULL;
if ((method->new_item != NULL) && !method->new_item(ret)) {
OPENSSL_free(ret);
return NULL;
@@
-184,27
+181,15
@@
X509_STORE *X509_STORE_new(void)
{
X509_STORE *ret;
{
X509_STORE *ret;
- if ((ret = OPENSSL_
m
alloc(sizeof(*ret))) == NULL)
+ if ((ret = OPENSSL_
z
alloc(sizeof(*ret))) == NULL)
return NULL;
ret->objs = sk_X509_OBJECT_new(x509_object_cmp);
ret->cache = 1;
ret->get_cert_methods = sk_X509_LOOKUP_new_null();
return NULL;
ret->objs = sk_X509_OBJECT_new(x509_object_cmp);
ret->cache = 1;
ret->get_cert_methods = sk_X509_LOOKUP_new_null();
- ret->verify = 0;
- ret->verify_cb = 0;
if ((ret->param = X509_VERIFY_PARAM_new()) == NULL)
return NULL;
if ((ret->param = X509_VERIFY_PARAM_new()) == NULL)
return NULL;
- ret->get_issuer = 0;
- ret->check_issued = 0;
- ret->check_revocation = 0;
- ret->get_crl = 0;
- ret->check_crl = 0;
- ret->cert_crl = 0;
- ret->lookup_certs = 0;
- ret->lookup_crls = 0;
- ret->cleanup = 0;
-
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data)) {
sk_X509_OBJECT_free(ret->objs);
OPENSSL_free(ret);
if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data)) {
sk_X509_OBJECT_free(ret->objs);
OPENSSL_free(ret);
@@
-294,8
+279,8
@@
X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
}
}
}
}
-int X509_STORE_get_by_subject(X509_STORE_CTX *vs,
int type, X509_NAME *nam
e,
- X509_OBJECT *ret)
+int X509_STORE_get_by_subject(X509_STORE_CTX *vs,
X509_LOOKUP_TYPE typ
e,
+ X509_
NAME *name, X509_
OBJECT *ret)
{
X509_STORE *ctx = vs->ctx;
X509_LOOKUP *lu;
{
X509_STORE *ctx = vs->ctx;
X509_LOOKUP *lu;
@@
-403,11
+388,13
@@
int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
void X509_OBJECT_up_ref_count(X509_OBJECT *a)
{
switch (a->type) {
void X509_OBJECT_up_ref_count(X509_OBJECT *a)
{
switch (a->type) {
+ default:
+ break;
case X509_LU_X509:
case X509_LU_X509:
-
CRYPTO_add(&a->data.x509->references, 1, CRYPTO_LOCK_X
509);
+
X509_up_ref(a->data.x
509);
break;
case X509_LU_CRL:
break;
case X509_LU_CRL:
-
CRYPTO_add(&a->data.crl->references, 1, CRYPTO_LOCK_X509_CRL
);
+
X509_CRL_up_ref(a->data.crl
);
break;
}
}
break;
}
}
@@
-417,6
+404,8
@@
void X509_OBJECT_free_contents(X509_OBJECT *a)
if (!a)
return;
switch (a->type) {
if (!a)
return;
switch (a->type) {
+ default:
+ break;
case X509_LU_X509:
X509_free(a->data.x509);
break;
case X509_LU_X509:
X509_free(a->data.x509);
break;
@@
-431,22
+420,18
@@
static int x509_object_idx_cnt(STACK_OF(X509_OBJECT) *h, int type,
{
X509_OBJECT stmp;
X509 x509_s;
{
X509_OBJECT stmp;
X509 x509_s;
- X509_CINF cinf_s;
X509_CRL crl_s;
X509_CRL crl_s;
- X509_CRL_INFO crl_info_s;
int idx;
stmp.type = type;
switch (type) {
case X509_LU_X509:
stmp.data.x509 = &x509_s;
int idx;
stmp.type = type;
switch (type) {
case X509_LU_X509:
stmp.data.x509 = &x509_s;
- x509_s.cert_info = &cinf_s;
- cinf_s.subject = name;
+ x509_s.cert_info.subject = name;
break;
case X509_LU_CRL:
stmp.data.crl = &crl_s;
break;
case X509_LU_CRL:
stmp.data.crl = &crl_s;
- crl_s.crl = &crl_info_s;
- crl_info_s.issuer = name;
+ crl_s.crl.issuer = name;
break;
default:
/* abort(); */
break;
default:
/* abort(); */
@@
-517,7
+502,7
@@
STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
for (i = 0; i < cnt; i++, idx++) {
obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
x = obj->data.x509;
for (i = 0; i < cnt; i++, idx++) {
obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
x = obj->data.x509;
-
CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509
);
+
X509_up_ref(x
);
if (!sk_X509_push(sk, x)) {
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
X509_free(x);
if (!sk_X509_push(sk, x)) {
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
X509_free(x);
@@
-561,7
+546,7
@@
STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *ctx, X509_NAME *nm)
for (i = 0; i < cnt; i++, idx++) {
obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
x = obj->data.crl;
for (i = 0; i < cnt; i++, idx++) {
obj = sk_X509_OBJECT_value(ctx->ctx->objs, idx);
x = obj->data.crl;
-
CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509_CRL
);
+
X509_CRL_up_ref(x
);
if (!sk_X509_CRL_push(sk, x)) {
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
X509_CRL_free(x);
if (!sk_X509_CRL_push(sk, x)) {
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
X509_CRL_free(x);
@@
-672,7
+657,7
@@
int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x)
}
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
if (*issuer)
}
CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
if (*issuer)
-
CRYPTO_add(&(*issuer)->references, 1, CRYPTO_LOCK_X509
);
+
X509_up_ref(*issuer
);
return ret;
}
return ret;
}