X509V3_add_i2d() needs to be able to allocate a
[openssl.git] / crypto / x509 / x509_ext.c
index 7495183e88801cb12c6bf3782f425e9a0e74f608..e7fdacb5e45a243994e47ce1d363957d44f304be 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/x509/x509_ext.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
  */
 
 #include <stdio.h>
-#include "stack.h"
+#include <openssl/stack.h>
 #include "cryptlib.h"
-#include "asn1.h"
-#include "objects.h"
-#include "evp.h"
-#include "x509.h"
+#include <openssl/asn1.h>
+#include <openssl/objects.h>
+#include <openssl/evp.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
 
-int X509_CRL_get_ext_count(x)
-X509_CRL *x;
+
+int X509_CRL_get_ext_count(X509_CRL *x)
        {
        return(X509v3_get_ext_count(x->crl->extensions));
        }
 
-int X509_CRL_get_ext_by_NID(x,nid,oldpos)
-X509_CRL *x;
-int nid;
-int oldpos;
+int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos)
        {
-       return(X509v3_get_ext_by_NID(x->crl->extensions,nid,oldpos));
+       return(X509v3_get_ext_by_NID(x->crl->extensions,nid,lastpos));
        }
 
-int X509_CRL_get_ext_by_OBJ(x,obj,oldpos)
-X509_CRL *x;
-ASN1_OBJECT *obj;
-int oldpos;
+int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos)
        {
-       return(X509v3_get_ext_by_OBJ(x->crl->extensions,obj,oldpos));
+       return(X509v3_get_ext_by_OBJ(x->crl->extensions,obj,lastpos));
        }
 
-int X509_CRL_get_ext_by_critical(x,crit,oldpos)
-X509_CRL *x;
-int crit;
-int oldpos;
+int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos)
        {
-       return(X509v3_get_ext_by_critical(x->crl->extensions,crit,oldpos));
+       return(X509v3_get_ext_by_critical(x->crl->extensions,crit,lastpos));
        }
 
-X509_EXTENSION *X509_CRL_get_ext(x,loc)
-X509_CRL *x;
-int loc;
+X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc)
        {
        return(X509v3_get_ext(x->crl->extensions,loc));
        }
 
-X509_EXTENSION *X509_CRL_delete_ext(x,loc)
-X509_CRL *x;
-int loc;
+X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
        {
        return(X509v3_delete_ext(x->crl->extensions,loc));
        }
 
-int X509_CRL_add_ext(x,ex,loc)
-X509_CRL *x;
-X509_EXTENSION *ex;
-int loc;
+void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx)
+{
+       return X509V3_get_d2i(x->crl->extensions, nid, crit, idx);
+}
+
+int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,
+                                                       unsigned long flags)
+{
+       return X509V3_add1_i2d(&x->crl->extensions, nid, value, crit, flags);
+}
+
+int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
        {
        return(X509v3_add_ext(&(x->crl->extensions),ex,loc) != NULL);
        }
 
-int X509_get_ext_count(x)
-X509 *x;
+int X509_get_ext_count(X509 *x)
        {
        return(X509v3_get_ext_count(x->cert_info->extensions));
        }
 
-int X509_get_ext_by_NID(x,nid,oldpos)
-X509 *x;
-int nid;
-int oldpos;
+int X509_get_ext_by_NID(X509 *x, int nid, int lastpos)
        {
-       return(X509v3_get_ext_by_NID(x->cert_info->extensions,nid,oldpos));
+       return(X509v3_get_ext_by_NID(x->cert_info->extensions,nid,lastpos));
        }
 
-int X509_get_ext_by_OBJ(x,obj,oldpos)
-X509 *x;
-ASN1_OBJECT *obj;
-int oldpos;
+int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos)
        {
-       return(X509v3_get_ext_by_OBJ(x->cert_info->extensions,obj,oldpos));
+       return(X509v3_get_ext_by_OBJ(x->cert_info->extensions,obj,lastpos));
        }
 
-int X509_get_ext_by_critical(x,crit,oldpos)
-X509 *x;
-int crit;
-int oldpos;
+int X509_get_ext_by_critical(X509 *x, int crit, int lastpos)
        {
-       return(X509v3_get_ext_by_critical(x->cert_info->extensions,crit,oldpos));
+       return(X509v3_get_ext_by_critical(x->cert_info->extensions,crit,lastpos));
        }
 
-X509_EXTENSION *X509_get_ext(x,loc)
-X509 *x;
-int loc;
+X509_EXTENSION *X509_get_ext(X509 *x, int loc)
        {
        return(X509v3_get_ext(x->cert_info->extensions,loc));
        }
 
-X509_EXTENSION *X509_delete_ext(x,loc)
-X509 *x;
-int loc;
+X509_EXTENSION *X509_delete_ext(X509 *x, int loc)
        {
        return(X509v3_delete_ext(x->cert_info->extensions,loc));
        }
 
-int X509_add_ext(x,ex,loc)
-X509 *x;
-X509_EXTENSION *ex;
-int loc;
+int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc)
        {
        return(X509v3_add_ext(&(x->cert_info->extensions),ex,loc) != NULL);
        }
 
-int X509_REVOKED_get_ext_count(x)
-X509_REVOKED *x;
+void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx)
+{
+       return X509V3_get_d2i(x->cert_info->extensions, nid, crit, idx);
+}
+
+int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,
+                                                       unsigned long flags)
+{
+       return X509V3_add1_i2d(&x->cert_info->extensions, nid, value, crit,
+                                                       flags);
+}
+
+int X509_REVOKED_get_ext_count(X509_REVOKED *x)
        {
        return(X509v3_get_ext_count(x->extensions));
        }
 
-int X509_REVOKED_get_ext_by_NID(x,nid,oldpos)
-X509_REVOKED *x;
-int nid;
-int oldpos;
+int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos)
        {
-       return(X509v3_get_ext_by_NID(x->extensions,nid,oldpos));
+       return(X509v3_get_ext_by_NID(x->extensions,nid,lastpos));
        }
 
-int X509_REVOKED_get_ext_by_OBJ(x,obj,oldpos)
-X509_REVOKED *x;
-ASN1_OBJECT *obj;
-int oldpos;
+int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj,
+            int lastpos)
        {
-       return(X509v3_get_ext_by_OBJ(x->extensions,obj,oldpos));
+       return(X509v3_get_ext_by_OBJ(x->extensions,obj,lastpos));
        }
 
-int X509_REVOKED_get_ext_by_critical(x,crit,oldpos)
-X509_REVOKED *x;
-int crit;
-int oldpos;
+int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos)
        {
-       return(X509v3_get_ext_by_critical(x->extensions,crit,oldpos));
+       return(X509v3_get_ext_by_critical(x->extensions,crit,lastpos));
        }
 
-X509_EXTENSION *X509_REVOKED_get_ext(x,loc)
-X509_REVOKED *x;
-int loc;
+X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc)
        {
        return(X509v3_get_ext(x->extensions,loc));
        }
 
-X509_EXTENSION *X509_REVOKED_delete_ext(x,loc)
-X509_REVOKED *x;
-int loc;
+X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)
        {
        return(X509v3_delete_ext(x->extensions,loc));
        }
 
-int X509_REVOKED_add_ext(x,ex,loc)
-X509_REVOKED *x;
-X509_EXTENSION *ex;
-int loc;
+int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
        {
        return(X509v3_add_ext(&(x->extensions),ex,loc) != NULL);
        }
 
+void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx)
+{
+       return X509V3_get_d2i(x->extensions, nid, crit, idx);
+}
+
+int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit,
+                                                       unsigned long flags)
+{
+       return X509V3_add1_i2d(&x->extensions, nid, value, crit, flags);
+}
+
+IMPLEMENT_STACK_OF(X509_EXTENSION)
+IMPLEMENT_ASN1_SET_OF(X509_EXTENSION)