stack
authorBen Laurie <ben@openssl.org>
Wed, 2 Jun 1999 22:01:56 +0000 (22:01 +0000)
committerBen Laurie <ben@openssl.org>
Wed, 2 Jun 1999 22:01:56 +0000 (22:01 +0000)
crypto/x509/x509_lu.c
crypto/x509/x509_vfy.h

index 2ef8e3fff1f516a8bbe4faf34b084cde0bb0fcf1..18bfecb11ed2b2834a7e134fb72b2b397c5fb009 100644 (file)
@@ -201,7 +201,7 @@ X509_STORE *X509_STORE_new(void)
                return(NULL);
        ret->certs=lh_new(x509_object_hash,x509_object_cmp);
        ret->cache=1;
-       ret->get_cert_methods=sk_new_null();
+       ret->get_cert_methods=sk_X509_LOOKUP_new_null();
        ret->verify=NULL;
        ret->verify_cb=NULL;
        memset(&ret->ex_data,0,sizeof(CRYPTO_EX_DATA));
@@ -229,20 +229,20 @@ static void cleanup(X509_OBJECT *a)
 void X509_STORE_free(X509_STORE *vfy)
        {
        int i;
-       STACK *sk;
+       STACK_OF(X509_LOOKUP) *sk;
        X509_LOOKUP *lu;
 
        if(vfy == NULL)
            return;
 
        sk=vfy->get_cert_methods;
-       for (i=0; i<sk_num(sk); i++)
+       for (i=0; i<sk_X509_LOOKUP_num(sk); i++)
                {
-               lu=(X509_LOOKUP *)sk_value(sk,i);
+               lu=sk_X509_LOOKUP_value(sk,i);
                X509_LOOKUP_shutdown(lu);
                X509_LOOKUP_free(lu);
                }
-       sk_free(sk);
+       sk_X509_LOOKUP_free(sk);
 
        CRYPTO_free_ex_data(x509_store_meth,(char *)vfy,&vfy->ex_data);
        lh_doall(vfy->certs,cleanup);
@@ -253,13 +253,13 @@ void X509_STORE_free(X509_STORE *vfy)
 X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
        {
        int i;
-       STACK *sk;
+       STACK_OF(X509_LOOKUP) *sk;
        X509_LOOKUP *lu;
 
        sk=v->get_cert_methods;
-       for (i=0; i<sk_num(sk); i++)
+       for (i=0; i<sk_X509_LOOKUP_num(sk); i++)
                {
-               lu=(X509_LOOKUP *)sk_value(sk,i);
+               lu=sk_X509_LOOKUP_value(sk,i);
                if (m == lu->method)
                        {
                        return(lu);
@@ -272,7 +272,7 @@ X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
        else
                {
                lu->store_ctx=v;
-               if (sk_push(v->get_cert_methods,(char *)lu))
+               if (sk_X509_LOOKUP_push(v->get_cert_methods,lu))
                        return(lu);
                else
                        {
@@ -294,9 +294,9 @@ int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name,
 
        if (tmp == NULL)
                {
-               for (i=vs->current_method; i<sk_num(ctx->get_cert_methods); i++)
+               for (i=vs->current_method; i<sk_X509_LOOKUP_num(ctx->get_cert_methods); i++)
                        {
-                       lu=(X509_LOOKUP *)sk_value(ctx->get_cert_methods,i);
+                       lu=sk_X509_LOOKUP_value(ctx->get_cert_methods,i);
                        j=X509_LOOKUP_by_subject(lu,type,name,&stmp);
                        if (j < 0)
                                {
@@ -408,3 +408,4 @@ void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
        memset(&ctx->ex_data,0,sizeof(CRYPTO_EX_DATA));
        }
 
+IMPLEMENT_STACK_OF(X509_LOOKUP)
index ea28359babdc13568b6c7e50443543d4d3a6d8de..ecfd4cf9edac31cc03faf5e12ca0543dab71804f 100644 (file)
@@ -127,6 +127,8 @@ typedef struct x509_object_st
 
 typedef struct x509_lookup_st X509_LOOKUP;
 
+DECLARE_STACK_OF(X509_LOOKUP)
+
 /* This is a static that defines the function interface */
 typedef struct x509_lookup_method_st
        {
@@ -164,7 +166,7 @@ typedef struct x509_store_st
 #endif
 
        /* These are external lookup methods */
-       STACK *get_cert_methods;/* X509_LOOKUP */
+       STACK_OF(X509_LOOKUP) *get_cert_methods;
        int (*verify)(X509_STORE_CTX *ctx);     /* called to verify a certificate */
        int (*verify_cb)(int ok,X509_STORE_CTX *ctx);   /* error callback */