The NO_ASN1_OLD define was introduced in 0.9.7, 8 years ago, to allow for
authormiod <miod@openbsd.org>
Tue, 15 Apr 2014 20:19:55 +0000 (20:19 +0000)
committermiod <miod@openbsd.org>
Tue, 15 Apr 2014 20:19:55 +0000 (20:19 +0000)
obsolete (and mostly internal) routines to be compiled out.

We don't expect any reasonable software to stick to these interfaces, so better
clean up the view and unifdef -DNO_ASN1_OLD.

The astute reader will notice the existence of NO_OLD_ASN1 which serves a
similar purpose, but is more entangled. Its time will come, soon.

21 files changed:
lib/libcrypto/asn1/a_digest.c
lib/libcrypto/asn1/a_set.c [deleted file]
lib/libcrypto/asn1/a_sign.c
lib/libcrypto/asn1/a_verify.c
lib/libcrypto/asn1/asn1.h
lib/libcrypto/asn1/asn1_mac.h
lib/libcrypto/asn1/asn_pack.c
lib/libcrypto/crypto/Makefile
lib/libcrypto/stack/safestack.h
lib/libcrypto/util/mkstack.pl
lib/libcrypto/x509/x509.h
lib/libssl/src/crypto/asn1/a_digest.c
lib/libssl/src/crypto/asn1/a_set.c [deleted file]
lib/libssl/src/crypto/asn1/a_sign.c
lib/libssl/src/crypto/asn1/a_verify.c
lib/libssl/src/crypto/asn1/asn1.h
lib/libssl/src/crypto/asn1/asn1_mac.h
lib/libssl/src/crypto/asn1/asn_pack.c
lib/libssl/src/crypto/stack/safestack.h
lib/libssl/src/crypto/x509/x509.h
lib/libssl/src/util/mkstack.pl

index cbdeea6..8a4b24a 100644 (file)
 #include <openssl/buffer.h>
 #include <openssl/x509.h>
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
-               unsigned char *md, unsigned int *len)
-       {
-       int i;
-       unsigned char *str,*p;
-
-       i=i2d(data,NULL);
-       if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_DIGEST,ERR_R_MALLOC_FAILURE);
-               return(0);
-               }
-       p=str;
-       i2d(data,&p);
-
-       if (!EVP_Digest(str, i, md, len, type, NULL))
-               return 0;
-       OPENSSL_free(str);
-       return(1);
-       }
-
-#endif
-
-
 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
                unsigned char *md, unsigned int *len)
        {
@@ -110,4 +84,3 @@ int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
        OPENSSL_free(str);
        return(1);
        }
-
diff --git a/lib/libcrypto/asn1/a_set.c b/lib/libcrypto/asn1/a_set.c
deleted file mode 100644 (file)
index d726c8d..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-/* crypto/asn1/a_set.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/asn1_mac.h>
-
-#ifndef NO_ASN1_OLD
-
-typedef struct
-    {
-    unsigned char *pbData;
-    int cbData;
-    } MYBLOB;
-
-/* SetBlobCmp
- * This function compares two elements of SET_OF block
- */
-static int SetBlobCmp(const void *elem1, const void *elem2 )
-    {
-    const MYBLOB *b1 = (const MYBLOB *)elem1;
-    const MYBLOB *b2 = (const MYBLOB *)elem2;
-    int r;
-
-    r = memcmp(b1->pbData, b2->pbData,
-              b1->cbData < b2->cbData ? b1->cbData : b2->cbData);
-    if(r != 0)
-       return r;
-    return b1->cbData-b2->cbData;
-    }
-
-/* int is_set:  if TRUE, then sort the contents (i.e. it isn't a SEQUENCE)    */
-int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp,
-                i2d_of_void *i2d, int ex_tag, int ex_class,
-                int is_set)
-       {
-       int ret=0,r;
-       int i;
-       unsigned char *p;
-        unsigned char *pStart, *pTempMem;
-        MYBLOB *rgSetBlob;
-        int totSize;
-
-       if (a == NULL) return(0);
-       for (i=sk_OPENSSL_BLOCK_num(a)-1; i>=0; i--)
-               ret+=i2d(sk_OPENSSL_BLOCK_value(a,i),NULL);
-       r=ASN1_object_size(1,ret,ex_tag);
-       if (pp == NULL) return(r);
-
-       p= *pp;
-       ASN1_put_object(&p,1,ret,ex_tag,ex_class);
-
-/* Modified by gp@nsj.co.jp */
-       /* And then again by Ben */
-       /* And again by Steve */
-
-       if(!is_set || (sk_OPENSSL_BLOCK_num(a) < 2))
-               {
-               for (i=0; i<sk_OPENSSL_BLOCK_num(a); i++)
-                       i2d(sk_OPENSSL_BLOCK_value(a,i),&p);
-
-               *pp=p;
-               return(r);
-               }
-
-        pStart  = p; /* Catch the beg of Setblobs*/
-               /* In this array we will store the SET blobs */
-               rgSetBlob = OPENSSL_malloc(sk_OPENSSL_BLOCK_num(a) * sizeof(MYBLOB));
-               if (rgSetBlob == NULL)
-                       {
-                       ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       return(0);
-                       }
-
-        for (i=0; i<sk_OPENSSL_BLOCK_num(a); i++)
-               {
-                rgSetBlob[i].pbData = p;  /* catch each set encode blob */
-                i2d(sk_OPENSSL_BLOCK_value(a,i),&p);
-                rgSetBlob[i].cbData = p - rgSetBlob[i].pbData; /* Length of this
-SetBlob
-*/
-               }
-        *pp=p;
-        totSize = p - pStart; /* This is the total size of all set blobs */
-
- /* Now we have to sort the blobs. I am using a simple algo.
-    *Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/
-        qsort( rgSetBlob, sk_OPENSSL_BLOCK_num(a), sizeof(MYBLOB), SetBlobCmp);
-               if (!(pTempMem = OPENSSL_malloc(totSize)))
-                       {
-                       ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       return(0);
-                       }
-
-/* Copy to temp mem */
-        p = pTempMem;
-        for(i=0; i<sk_OPENSSL_BLOCK_num(a); ++i)
-               {
-                memcpy(p, rgSetBlob[i].pbData, rgSetBlob[i].cbData);
-                p += rgSetBlob[i].cbData;
-               }
-
-/* Copy back to user mem*/
-        memcpy(pStart, pTempMem, totSize);
-        OPENSSL_free(pTempMem);
-        OPENSSL_free(rgSetBlob);
-
-        return(r);
-        }
-
-STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a,
-                             const unsigned char **pp,
-                             long length, d2i_of_void *d2i,
-                             void (*free_func)(OPENSSL_BLOCK), int ex_tag,
-                             int ex_class)
-       {
-       ASN1_const_CTX c;
-       STACK_OF(OPENSSL_BLOCK) *ret=NULL;
-
-       if ((a == NULL) || ((*a) == NULL))
-               {
-               if ((ret=sk_OPENSSL_BLOCK_new_null()) == NULL)
-                       {
-                       ASN1err(ASN1_F_D2I_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       goto err;
-                       }
-               }
-       else
-               ret=(*a);
-
-       c.p= *pp;
-       c.max=(length == 0)?0:(c.p+length);
-
-       c.inf=ASN1_get_object(&c.p,&c.slen,&c.tag,&c.xclass,c.max-c.p);
-       if (c.inf & 0x80) goto err;
-       if (ex_class != c.xclass)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_BAD_CLASS);
-               goto err;
-               }
-       if (ex_tag != c.tag)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_BAD_TAG);
-               goto err;
-               }
-       if ((c.slen+c.p) > c.max)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_LENGTH_ERROR);
-               goto err;
-               }
-       /* check for infinite constructed - it can be as long
-        * as the amount of data passed to us */
-       if (c.inf == (V_ASN1_CONSTRUCTED+1))
-               c.slen=length+ *pp-c.p;
-       c.max=c.p+c.slen;
-
-       while (c.p < c.max)
-               {
-               char *s;
-
-               if (M_ASN1_D2I_end_sequence()) break;
-               /* XXX: This was called with 4 arguments, incorrectly, it seems
-                  if ((s=func(NULL,&c.p,c.slen,c.max-c.p)) == NULL) */
-               if ((s=d2i(NULL,&c.p,c.slen)) == NULL)
-                       {
-                       ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_ERROR_PARSING_SET_ELEMENT);
-                       asn1_add_error(*pp,(int)(c.p- *pp));
-                       goto err;
-                       }
-               if (!sk_OPENSSL_BLOCK_push(ret,s)) goto err;
-               }
-       if (a != NULL) (*a)=ret;
-       *pp=c.p;
-       return(ret);
-err:
-       if ((ret != NULL) && ((a == NULL) || (*a != ret)))
-               {
-               if (free_func != NULL)
-                       sk_OPENSSL_BLOCK_pop_free(ret,free_func);
-               else
-                       sk_OPENSSL_BLOCK_free(ret);
-               }
-       return(NULL);
-       }
-
-#endif
index 7b4a193..01b6292 100644 (file)
 #include <openssl/buffer.h>
 #include "asn1_locl.h"
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2,
-             ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey,
-             const EVP_MD *type)
-       {
-       EVP_MD_CTX ctx;
-       unsigned char *p,*buf_in=NULL,*buf_out=NULL;
-       int i,inl=0,outl=0,outll=0;
-       X509_ALGOR *a;
-
-       EVP_MD_CTX_init(&ctx);
-       for (i=0; i<2; i++)
-               {
-               if (i == 0)
-                       a=algor1;
-               else
-                       a=algor2;
-               if (a == NULL) continue;
-                if (type->pkey_type == NID_dsaWithSHA1)
-                       {
-                       /* special case: RFC 2459 tells us to omit 'parameters'
-                        * with id-dsa-with-sha1 */
-                       ASN1_TYPE_free(a->parameter);
-                       a->parameter = NULL;
-                       }
-               else if ((a->parameter == NULL) || 
-                       (a->parameter->type != V_ASN1_NULL))
-                       {
-                       ASN1_TYPE_free(a->parameter);
-                       if ((a->parameter=ASN1_TYPE_new()) == NULL) goto err;
-                       a->parameter->type=V_ASN1_NULL;
-                       }
-               ASN1_OBJECT_free(a->algorithm);
-               a->algorithm=OBJ_nid2obj(type->pkey_type);
-               if (a->algorithm == NULL)
-                       {
-                       ASN1err(ASN1_F_ASN1_SIGN,ASN1_R_UNKNOWN_OBJECT_TYPE);
-                       goto err;
-                       }
-               if (a->algorithm->length == 0)
-                       {
-                       ASN1err(ASN1_F_ASN1_SIGN,ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD);
-                       goto err;
-                       }
-               }
-       inl=i2d(data,NULL);
-       buf_in=(unsigned char *)OPENSSL_malloc((unsigned int)inl);
-       outll=outl=EVP_PKEY_size(pkey);
-       buf_out=(unsigned char *)OPENSSL_malloc((unsigned int)outl);
-       if ((buf_in == NULL) || (buf_out == NULL))
-               {
-               outl=0;
-               ASN1err(ASN1_F_ASN1_SIGN,ERR_R_MALLOC_FAILURE);
-               goto err;
-               }
-       p=buf_in;
-
-       i2d(data,&p);
-       if (!EVP_SignInit_ex(&ctx,type, NULL)
-               || !EVP_SignUpdate(&ctx,(unsigned char *)buf_in,inl)
-               || !EVP_SignFinal(&ctx,(unsigned char *)buf_out,
-                       (unsigned int *)&outl,pkey))
-               {
-               outl=0;
-               ASN1err(ASN1_F_ASN1_SIGN,ERR_R_EVP_LIB);
-               goto err;
-               }
-       if (signature->data != NULL) OPENSSL_free(signature->data);
-       signature->data=buf_out;
-       buf_out=NULL;
-       signature->length=outl;
-       /* In the interests of compatibility, I'll make sure that
-        * the bit string has a 'not-used bits' value of 0
-        */
-       signature->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
-       signature->flags|=ASN1_STRING_FLAG_BITS_LEFT;
-err:
-       EVP_MD_CTX_cleanup(&ctx);
-       if (buf_in != NULL)
-               { OPENSSL_cleanse((char *)buf_in,(unsigned int)inl); OPENSSL_free(buf_in); }
-       if (buf_out != NULL)
-               { OPENSSL_cleanse((char *)buf_out,outll); OPENSSL_free(buf_out); }
-       return(outl);
-       }
-
-#endif
-
 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
             ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey,
             const EVP_MD *type)
index fc84cd3..5eb47d7 100644 (file)
 #include <openssl/buffer.h>
 #include <openssl/evp.h>
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,
-               char *data, EVP_PKEY *pkey)
-       {
-       EVP_MD_CTX ctx;
-       const EVP_MD *type;
-       unsigned char *p,*buf_in=NULL;
-       int ret= -1,i,inl;
-
-       EVP_MD_CTX_init(&ctx);
-       i=OBJ_obj2nid(a->algorithm);
-       type=EVP_get_digestbyname(OBJ_nid2sn(i));
-       if (type == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM);
-               goto err;
-               }
-       
-       inl=i2d(data,NULL);
-       buf_in=OPENSSL_malloc((unsigned int)inl);
-       if (buf_in == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_MALLOC_FAILURE);
-               goto err;
-               }
-       p=buf_in;
-
-       i2d(data,&p);
-       if (!EVP_VerifyInit_ex(&ctx,type, NULL)
-               || !EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl))
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
-               ret=0;
-               goto err;
-               }
-
-       OPENSSL_cleanse(buf_in,(unsigned int)inl);
-       OPENSSL_free(buf_in);
-
-       if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data,
-                       (unsigned int)signature->length,pkey) <= 0)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
-               ret=0;
-               goto err;
-               }
-       /* we don't need to zero the 'ctx' because we just checked
-        * public information */
-       /* memset(&ctx,0,sizeof(ctx)); */
-       ret=1;
-err:
-       EVP_MD_CTX_cleanup(&ctx);
-       return(ret);
-       }
-
-#endif
-
-
 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
                ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey)
        {
index c48ce3c..c4fa8c6 100644 (file)
@@ -765,10 +765,6 @@ typedef struct BIT_STRING_BITNAME_st {
                (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\
                ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING)
 
-  /* for the is_set parameter to i2d_ASN1_SET */
-#define IS_SEQUENCE    0
-#define IS_SET         1
-
 DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE)
 
 int ASN1_TYPE_get(ASN1_TYPE *a);
@@ -888,15 +884,6 @@ int ASN1_TIME_check(ASN1_TIME *t);
 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);
 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
 
-int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp,
-                i2d_of_void *i2d, int ex_tag, int ex_class,
-                int is_set);
-STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a,
-                             const unsigned char **pp,
-                             long length, d2i_of_void *d2i,
-                             void (*free_func)(OPENSSL_BLOCK), int ex_tag,
-                             int ex_class);
-
 #ifndef OPENSSL_NO_BIO
 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
 int a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size);
@@ -1047,19 +1034,7 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num,
        unsigned char *data, int max_len);
 
-STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len,
-                                d2i_of_void *d2i, void (*free_func)(OPENSSL_BLOCK));
-unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d,
-                            unsigned char **buf, int *len );
-void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i);
 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
-ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
-                             ASN1_OCTET_STRING **oct);
-
-#define ASN1_pack_string_of(type,obj,i2d,oct) \
-    (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \
-                     CHECKED_I2D_OF(type, i2d), \
-                     oct))
 
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
 
index 87bd0e9..c60b197 100644 (file)
@@ -176,19 +176,10 @@ err:\
                M_ASN1_D2I_get_imp(b,func, type);\
                }
 
-#define M_ASN1_D2I_get_set(r,func,free_func) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func, \
-                       V_ASN1_SET,V_ASN1_UNIVERSAL);
-
 #define M_ASN1_D2I_get_set_type(type,r,func,free_func) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \
                        V_ASN1_SET,V_ASN1_UNIVERSAL);
 
-#define M_ASN1_D2I_get_set_opt(r,func,free_func) \
-       if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
-               V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
-               { M_ASN1_D2I_get_set(r,func,free_func); }
-
 #define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \
        if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
                V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
@@ -210,15 +201,6 @@ err:\
        if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
 
-#define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
-       if ((c.slen != 0) && \
-               (M_ASN1_next == \
-               (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\
-               { \
-               M_ASN1_D2I_get_imp_set(b,func,free_func,\
-                       tag,V_ASN1_CONTEXT_SPECIFIC); \
-               }
-
 #define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \
        if ((c.slen != 0) && \
                (M_ASN1_next == \
@@ -228,39 +210,19 @@ err:\
                        tag,V_ASN1_CONTEXT_SPECIFIC); \
                }
 
-#define M_ASN1_D2I_get_seq(r,func,free_func) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func,\
-                       V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
-
 #define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
                                            V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
 
-#define M_ASN1_D2I_get_seq_opt(r,func,free_func) \
-       if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
-               V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
-               { M_ASN1_D2I_get_seq(r,func,free_func); }
-
 #define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \
        if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
                V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
                { M_ASN1_D2I_get_seq_type(type,r,func,free_func); }
 
-#define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func,\
-                       x,V_ASN1_CONTEXT_SPECIFIC);
-
 #define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
                        x,V_ASN1_CONTEXT_SPECIFIC);
 
-#define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \
-       c.q=c.p; \
-       if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\
-               (void (*)())free_func,a,b) == NULL) \
-               { c.line=__LINE__; goto err; } \
-       c.slen-=(c.p-c.q);
-
 #define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \
        c.q=c.p; \
        if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\
@@ -299,33 +261,6 @@ err:\
                c.slen-=(c.p-c.q); \
                }
 
-#define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \
-       if ((c.slen != 0) && (M_ASN1_next == \
-               (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
-               { \
-               int Tinf,Ttag,Tclass; \
-               long Tlen; \
-               \
-               c.q=c.p; \
-               Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \
-               if (Tinf & 0x80) \
-                       { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
-                       c.line=__LINE__; goto err; } \
-               if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
-                                       Tlen = c.slen - (c.p - c.q) - 2; \
-               if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \
-                       (void (*)())free_func, \
-                       b,V_ASN1_UNIVERSAL) == NULL) \
-                       { c.line=__LINE__; goto err; } \
-               if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
-                       Tlen = c.slen - (c.p - c.q); \
-                       if(!ASN1_check_infinite_end(&c.p, Tlen)) \
-                               { c.error=ERR_R_MISSING_ASN1_EOS; \
-                               c.line=__LINE__; goto err; } \
-               }\
-               c.slen-=(c.p-c.q); \
-               }
-
 #define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \
        if ((c.slen != 0) && (M_ASN1_next == \
                (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
@@ -384,17 +319,10 @@ err:\
 #define M_ASN1_I2D_len(a,f)    ret+=f(a,NULL)
 #define M_ASN1_I2D_len_IMP_opt(a,f)    if (a != NULL) M_ASN1_I2D_len(a,f)
 
-#define M_ASN1_I2D_len_SET(a,f) \
-               ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET);
-
 #define M_ASN1_I2D_len_SET_type(type,a,f) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \
                                            V_ASN1_UNIVERSAL,IS_SET);
 
-#define M_ASN1_I2D_len_SEQUENCE(a,f) \
-               ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
-                                 IS_SEQUENCE);
-
 #define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \
                                            V_ASN1_UNIVERSAL,IS_SEQUENCE)
@@ -407,32 +335,15 @@ err:\
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
 
-#define M_ASN1_I2D_len_IMP_SET(a,f,x) \
-               ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
-
 #define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
                                            V_ASN1_CONTEXT_SPECIFIC,IS_SET);
 
-#define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                         IS_SET);
-
 #define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
                                               V_ASN1_CONTEXT_SPECIFIC,IS_SET);
 
-#define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \
-               ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                 IS_SEQUENCE);
-
-#define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                         IS_SEQUENCE);
-
 #define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
@@ -446,21 +357,6 @@ err:\
                        ret+=ASN1_object_size(1,v,mtag); \
                        }
 
-#define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0))\
-                       { \
-                       v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
-                       ret+=ASN1_object_size(1,v,mtag); \
-                       }
-
-#define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0))\
-                       { \
-                       v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \
-                                      IS_SEQUENCE); \
-                       ret+=ASN1_object_size(1,v,mtag); \
-                       }
-
 #define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
                if ((a != NULL) && (sk_##type##_num(a) != 0))\
                        { \
@@ -481,19 +377,10 @@ err:\
                        *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\
                        }
 
-#define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\
-                       V_ASN1_UNIVERSAL,IS_SET)
 #define M_ASN1_I2D_put_SET_type(type,a,f) \
      i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET)
-#define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
-                       V_ASN1_CONTEXT_SPECIFIC,IS_SET)
 #define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \
      i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET)
-#define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
-                       V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)
-
-#define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\
-                                            V_ASN1_UNIVERSAL,IS_SEQUENCE)
 
 #define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \
      i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
@@ -503,22 +390,12 @@ err:\
                if ((a != NULL) && (sk_num(a) != 0)) \
                        M_ASN1_I2D_put_SEQUENCE(a,f);
 
-#define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                      IS_SET); }
-
 #define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
                                                 V_ASN1_CONTEXT_SPECIFIC, \
                                                 IS_SET); }
 
-#define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                      IS_SEQUENCE); }
-
 #define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
@@ -532,20 +409,6 @@ err:\
                        f(a,&p); \
                        }
 
-#define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { \
-                       ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
-                       i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
-                       }
-
-#define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { \
-                       ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
-                       i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \
-                       }
-
 #define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { \
index ad73821..1886508 100644 (file)
 #include "cryptlib.h"
 #include <openssl/asn1.h>
 
-#ifndef NO_ASN1_OLD
-
-/* ASN1 packing and unpacking functions */
-
-/* Turn an ASN1 encoded SEQUENCE OF into a STACK of structures */
-
-STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len,
-                        d2i_of_void *d2i, void (*free_func)(OPENSSL_BLOCK))
-{
-    STACK_OF(OPENSSL_BLOCK) *sk;
-    const unsigned char *pbuf;
-    pbuf =  buf;
-    if (!(sk = d2i_ASN1_SET(NULL, &pbuf, len, d2i, free_func,
-                                       V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL)))
-                ASN1err(ASN1_F_ASN1_SEQ_UNPACK,ASN1_R_DECODE_ERROR);
-    return sk;
-}
-
-/* Turn a STACK structures into an ASN1 encoded SEQUENCE OF structure in a
- * OPENSSL_malloc'ed buffer
- */
-
-unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d,
-                            unsigned char **buf, int *len)
-{
-       int safelen;
-       unsigned char *safe, *p;
-       if (!(safelen = i2d_ASN1_SET(safes, NULL, i2d, V_ASN1_SEQUENCE,
-                                             V_ASN1_UNIVERSAL, IS_SEQUENCE))) {
-               ASN1err(ASN1_F_ASN1_SEQ_PACK,ASN1_R_ENCODE_ERROR);
-               return NULL;
-       }
-       if (!(safe = OPENSSL_malloc (safelen))) {
-               ASN1err(ASN1_F_ASN1_SEQ_PACK,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       p = safe;
-       i2d_ASN1_SET(safes, &p, i2d, V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL,
-                                                                IS_SEQUENCE);
-       if (len) *len = safelen;
-       if (buf) *buf = safe;
-       return safe;
-}
-
-/* Extract an ASN1 object from an ASN1_STRING */
-
-void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i)
-{
-       const unsigned char *p;
-       char *ret;
-
-       p = oct->data;
-       if(!(ret = d2i(NULL, &p, oct->length)))
-               ASN1err(ASN1_F_ASN1_UNPACK_STRING,ASN1_R_DECODE_ERROR);
-       return ret;
-}
-
-/* Pack an ASN1 object into an ASN1_STRING */
-
-ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, ASN1_STRING **oct)
-{
-       unsigned char *p;
-       ASN1_STRING *octmp;
-
-       if (!oct || !*oct) {
-               if (!(octmp = ASN1_STRING_new ())) {
-                       ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);
-                       return NULL;
-               }
-               if (oct) *oct = octmp;
-       } else octmp = *oct;
-               
-       if (!(octmp->length = i2d(obj, NULL))) {
-               ASN1err(ASN1_F_ASN1_PACK_STRING,ASN1_R_ENCODE_ERROR);
-               return NULL;
-       }
-       if (!(p = OPENSSL_malloc (octmp->length))) {
-               ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       octmp->data = p;
-       i2d (obj, &p);
-       return octmp;
-}
-
-#endif
-
 /* ASN1_ITEM versions of the above */
 
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING **oct)
index dacca0d..8139cad 100644 (file)
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.10 2014/04/15 20:13:07 miod Exp $
+# $OpenBSD: Makefile,v 1.11 2014/04/15 20:19:55 miod Exp $
 
 LIB=   crypto
 
@@ -51,7 +51,7 @@ SRCS+= aes_ctr.c aes_ige.c aes_wrap.c
 
 # asn1/
 SRCS+= a_object.c a_bitstr.c a_utctm.c a_gentm.c a_time.c a_int.c a_octet.c
-SRCS+= a_print.c a_type.c a_set.c a_dup.c a_d2i_fp.c a_i2d_fp.c
+SRCS+= a_print.c a_type.c a_dup.c a_d2i_fp.c a_i2d_fp.c
 SRCS+= a_enum.c a_utf8.c a_sign.c a_digest.c a_verify.c a_mbstr.c a_strex.c
 SRCS+= x_algor.c x_val.c x_pubkey.c x_sig.c x_req.c x_attrib.c x_bignum.c
 SRCS+= x_long.c x_name.c x_x509.c x_x509a.c x_crl.c x_info.c x_spki.c nsseq.c
index ea3aa0d..56978a2 100644 (file)
@@ -178,26 +178,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)
 #define SKM_sk_is_sorted(type, st) \
        sk_is_sorted(CHECKED_STACK_OF(type, st))
 
-#define        SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
-  (STACK_OF(type) *)d2i_ASN1_SET( \
-                               (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \
-                               pp, length, \
-                               CHECKED_D2I_OF(type, d2i_func), \
-                               CHECKED_SK_FREE_FUNC(type, free_func), \
-                               ex_tag, ex_class)
-
-#define        SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \
-  i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \
-                               CHECKED_I2D_OF(type, i2d_func), \
-                               ex_tag, ex_class, is_set)
-
-#define        SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \
-       ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \
-                       CHECKED_I2D_OF(type, i2d_func), buf, len)
-
-#define        SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \
-       (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func))
-
 #define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \
        (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \
                                CHECKED_D2I_OF(type, d2i_func), \
@@ -2198,226 +2178,126 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)
        SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func))
 
 #define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \
        SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq))
index f708610..77b0ec4 100644 (file)
@@ -129,19 +129,6 @@ EOF
 EOF
        }
 
-       foreach $type_thing (sort @asn1setlst) {
-               $new_stackfile .= <<EOF;
-
-#define d2i_ASN1_SET_OF_${type_thing}(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \\
-       SKM_ASN1_SET_OF_d2i($type_thing, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
-#define i2d_ASN1_SET_OF_${type_thing}(st, pp, i2d_func, ex_tag, ex_class, is_set) \\
-       SKM_ASN1_SET_OF_i2d($type_thing, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_${type_thing}(st, i2d_func, buf, len) \\
-       SKM_ASN1_seq_pack($type_thing, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_${type_thing}(buf, len, d2i_func, free_func) \\
-       SKM_ASN1_seq_unpack($type_thing, (buf), (len), (d2i_func), (free_func))
-EOF
-       }
        foreach $type_thing (sort @p12stklst) {
                $new_stackfile .= <<EOF;
 
index 121847b..27befbb 100644 (file)
@@ -697,7 +697,6 @@ int i2d_RSA_PUBKEY_fp(FILE *fp,RSA *rsa);
 #ifndef OPENSSL_NO_DSA
 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
-DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa);
 #endif
 #ifndef OPENSSL_NO_EC
@@ -881,16 +880,6 @@ X509_INFO *        X509_INFO_new(void);
 void           X509_INFO_free(X509_INFO *a);
 char *         X509_NAME_oneline(X509_NAME *a,char *buf,int size);
 
-int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1,
-               ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey);
-
-int ASN1_digest(i2d_of_void *i2d,const EVP_MD *type,char *data,
-               unsigned char *md,unsigned int *len);
-
-int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1,
-             X509_ALGOR *algor2, ASN1_BIT_STRING *signature,
-             char *data,EVP_PKEY *pkey, const EVP_MD *type);
-
 int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data,
        unsigned char *md,unsigned int *len);
 
index cbdeea6..8a4b24a 100644 (file)
 #include <openssl/buffer.h>
 #include <openssl/x509.h>
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
-               unsigned char *md, unsigned int *len)
-       {
-       int i;
-       unsigned char *str,*p;
-
-       i=i2d(data,NULL);
-       if ((str=(unsigned char *)OPENSSL_malloc(i)) == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_DIGEST,ERR_R_MALLOC_FAILURE);
-               return(0);
-               }
-       p=str;
-       i2d(data,&p);
-
-       if (!EVP_Digest(str, i, md, len, type, NULL))
-               return 0;
-       OPENSSL_free(str);
-       return(1);
-       }
-
-#endif
-
-
 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
                unsigned char *md, unsigned int *len)
        {
@@ -110,4 +84,3 @@ int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *asn,
        OPENSSL_free(str);
        return(1);
        }
-
diff --git a/lib/libssl/src/crypto/asn1/a_set.c b/lib/libssl/src/crypto/asn1/a_set.c
deleted file mode 100644 (file)
index d726c8d..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-/* crypto/asn1/a_set.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- * 
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to.  The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *    "This product includes cryptographic software written by
- *     Eric Young (eay@cryptsoft.com)"
- *    The word 'cryptographic' can be left out if the rouines from the library
- *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
- *    the apps directory (application code) you must include an acknowledgement:
- *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed.  i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/asn1_mac.h>
-
-#ifndef NO_ASN1_OLD
-
-typedef struct
-    {
-    unsigned char *pbData;
-    int cbData;
-    } MYBLOB;
-
-/* SetBlobCmp
- * This function compares two elements of SET_OF block
- */
-static int SetBlobCmp(const void *elem1, const void *elem2 )
-    {
-    const MYBLOB *b1 = (const MYBLOB *)elem1;
-    const MYBLOB *b2 = (const MYBLOB *)elem2;
-    int r;
-
-    r = memcmp(b1->pbData, b2->pbData,
-              b1->cbData < b2->cbData ? b1->cbData : b2->cbData);
-    if(r != 0)
-       return r;
-    return b1->cbData-b2->cbData;
-    }
-
-/* int is_set:  if TRUE, then sort the contents (i.e. it isn't a SEQUENCE)    */
-int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp,
-                i2d_of_void *i2d, int ex_tag, int ex_class,
-                int is_set)
-       {
-       int ret=0,r;
-       int i;
-       unsigned char *p;
-        unsigned char *pStart, *pTempMem;
-        MYBLOB *rgSetBlob;
-        int totSize;
-
-       if (a == NULL) return(0);
-       for (i=sk_OPENSSL_BLOCK_num(a)-1; i>=0; i--)
-               ret+=i2d(sk_OPENSSL_BLOCK_value(a,i),NULL);
-       r=ASN1_object_size(1,ret,ex_tag);
-       if (pp == NULL) return(r);
-
-       p= *pp;
-       ASN1_put_object(&p,1,ret,ex_tag,ex_class);
-
-/* Modified by gp@nsj.co.jp */
-       /* And then again by Ben */
-       /* And again by Steve */
-
-       if(!is_set || (sk_OPENSSL_BLOCK_num(a) < 2))
-               {
-               for (i=0; i<sk_OPENSSL_BLOCK_num(a); i++)
-                       i2d(sk_OPENSSL_BLOCK_value(a,i),&p);
-
-               *pp=p;
-               return(r);
-               }
-
-        pStart  = p; /* Catch the beg of Setblobs*/
-               /* In this array we will store the SET blobs */
-               rgSetBlob = OPENSSL_malloc(sk_OPENSSL_BLOCK_num(a) * sizeof(MYBLOB));
-               if (rgSetBlob == NULL)
-                       {
-                       ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       return(0);
-                       }
-
-        for (i=0; i<sk_OPENSSL_BLOCK_num(a); i++)
-               {
-                rgSetBlob[i].pbData = p;  /* catch each set encode blob */
-                i2d(sk_OPENSSL_BLOCK_value(a,i),&p);
-                rgSetBlob[i].cbData = p - rgSetBlob[i].pbData; /* Length of this
-SetBlob
-*/
-               }
-        *pp=p;
-        totSize = p - pStart; /* This is the total size of all set blobs */
-
- /* Now we have to sort the blobs. I am using a simple algo.
-    *Sort ptrs *Copy to temp-mem *Copy from temp-mem to user-mem*/
-        qsort( rgSetBlob, sk_OPENSSL_BLOCK_num(a), sizeof(MYBLOB), SetBlobCmp);
-               if (!(pTempMem = OPENSSL_malloc(totSize)))
-                       {
-                       ASN1err(ASN1_F_I2D_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       return(0);
-                       }
-
-/* Copy to temp mem */
-        p = pTempMem;
-        for(i=0; i<sk_OPENSSL_BLOCK_num(a); ++i)
-               {
-                memcpy(p, rgSetBlob[i].pbData, rgSetBlob[i].cbData);
-                p += rgSetBlob[i].cbData;
-               }
-
-/* Copy back to user mem*/
-        memcpy(pStart, pTempMem, totSize);
-        OPENSSL_free(pTempMem);
-        OPENSSL_free(rgSetBlob);
-
-        return(r);
-        }
-
-STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a,
-                             const unsigned char **pp,
-                             long length, d2i_of_void *d2i,
-                             void (*free_func)(OPENSSL_BLOCK), int ex_tag,
-                             int ex_class)
-       {
-       ASN1_const_CTX c;
-       STACK_OF(OPENSSL_BLOCK) *ret=NULL;
-
-       if ((a == NULL) || ((*a) == NULL))
-               {
-               if ((ret=sk_OPENSSL_BLOCK_new_null()) == NULL)
-                       {
-                       ASN1err(ASN1_F_D2I_ASN1_SET,ERR_R_MALLOC_FAILURE);
-                       goto err;
-                       }
-               }
-       else
-               ret=(*a);
-
-       c.p= *pp;
-       c.max=(length == 0)?0:(c.p+length);
-
-       c.inf=ASN1_get_object(&c.p,&c.slen,&c.tag,&c.xclass,c.max-c.p);
-       if (c.inf & 0x80) goto err;
-       if (ex_class != c.xclass)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_BAD_CLASS);
-               goto err;
-               }
-       if (ex_tag != c.tag)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_BAD_TAG);
-               goto err;
-               }
-       if ((c.slen+c.p) > c.max)
-               {
-               ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_LENGTH_ERROR);
-               goto err;
-               }
-       /* check for infinite constructed - it can be as long
-        * as the amount of data passed to us */
-       if (c.inf == (V_ASN1_CONSTRUCTED+1))
-               c.slen=length+ *pp-c.p;
-       c.max=c.p+c.slen;
-
-       while (c.p < c.max)
-               {
-               char *s;
-
-               if (M_ASN1_D2I_end_sequence()) break;
-               /* XXX: This was called with 4 arguments, incorrectly, it seems
-                  if ((s=func(NULL,&c.p,c.slen,c.max-c.p)) == NULL) */
-               if ((s=d2i(NULL,&c.p,c.slen)) == NULL)
-                       {
-                       ASN1err(ASN1_F_D2I_ASN1_SET,ASN1_R_ERROR_PARSING_SET_ELEMENT);
-                       asn1_add_error(*pp,(int)(c.p- *pp));
-                       goto err;
-                       }
-               if (!sk_OPENSSL_BLOCK_push(ret,s)) goto err;
-               }
-       if (a != NULL) (*a)=ret;
-       *pp=c.p;
-       return(ret);
-err:
-       if ((ret != NULL) && ((a == NULL) || (*a != ret)))
-               {
-               if (free_func != NULL)
-                       sk_OPENSSL_BLOCK_pop_free(ret,free_func);
-               else
-                       sk_OPENSSL_BLOCK_free(ret);
-               }
-       return(NULL);
-       }
-
-#endif
index 7b4a193..01b6292 100644 (file)
 #include <openssl/buffer.h>
 #include "asn1_locl.h"
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, X509_ALGOR *algor2,
-             ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey,
-             const EVP_MD *type)
-       {
-       EVP_MD_CTX ctx;
-       unsigned char *p,*buf_in=NULL,*buf_out=NULL;
-       int i,inl=0,outl=0,outll=0;
-       X509_ALGOR *a;
-
-       EVP_MD_CTX_init(&ctx);
-       for (i=0; i<2; i++)
-               {
-               if (i == 0)
-                       a=algor1;
-               else
-                       a=algor2;
-               if (a == NULL) continue;
-                if (type->pkey_type == NID_dsaWithSHA1)
-                       {
-                       /* special case: RFC 2459 tells us to omit 'parameters'
-                        * with id-dsa-with-sha1 */
-                       ASN1_TYPE_free(a->parameter);
-                       a->parameter = NULL;
-                       }
-               else if ((a->parameter == NULL) || 
-                       (a->parameter->type != V_ASN1_NULL))
-                       {
-                       ASN1_TYPE_free(a->parameter);
-                       if ((a->parameter=ASN1_TYPE_new()) == NULL) goto err;
-                       a->parameter->type=V_ASN1_NULL;
-                       }
-               ASN1_OBJECT_free(a->algorithm);
-               a->algorithm=OBJ_nid2obj(type->pkey_type);
-               if (a->algorithm == NULL)
-                       {
-                       ASN1err(ASN1_F_ASN1_SIGN,ASN1_R_UNKNOWN_OBJECT_TYPE);
-                       goto err;
-                       }
-               if (a->algorithm->length == 0)
-                       {
-                       ASN1err(ASN1_F_ASN1_SIGN,ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD);
-                       goto err;
-                       }
-               }
-       inl=i2d(data,NULL);
-       buf_in=(unsigned char *)OPENSSL_malloc((unsigned int)inl);
-       outll=outl=EVP_PKEY_size(pkey);
-       buf_out=(unsigned char *)OPENSSL_malloc((unsigned int)outl);
-       if ((buf_in == NULL) || (buf_out == NULL))
-               {
-               outl=0;
-               ASN1err(ASN1_F_ASN1_SIGN,ERR_R_MALLOC_FAILURE);
-               goto err;
-               }
-       p=buf_in;
-
-       i2d(data,&p);
-       if (!EVP_SignInit_ex(&ctx,type, NULL)
-               || !EVP_SignUpdate(&ctx,(unsigned char *)buf_in,inl)
-               || !EVP_SignFinal(&ctx,(unsigned char *)buf_out,
-                       (unsigned int *)&outl,pkey))
-               {
-               outl=0;
-               ASN1err(ASN1_F_ASN1_SIGN,ERR_R_EVP_LIB);
-               goto err;
-               }
-       if (signature->data != NULL) OPENSSL_free(signature->data);
-       signature->data=buf_out;
-       buf_out=NULL;
-       signature->length=outl;
-       /* In the interests of compatibility, I'll make sure that
-        * the bit string has a 'not-used bits' value of 0
-        */
-       signature->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
-       signature->flags|=ASN1_STRING_FLAG_BITS_LEFT;
-err:
-       EVP_MD_CTX_cleanup(&ctx);
-       if (buf_in != NULL)
-               { OPENSSL_cleanse((char *)buf_in,(unsigned int)inl); OPENSSL_free(buf_in); }
-       if (buf_out != NULL)
-               { OPENSSL_cleanse((char *)buf_out,outll); OPENSSL_free(buf_out); }
-       return(outl);
-       }
-
-#endif
-
 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
             ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey,
             const EVP_MD *type)
index fc84cd3..5eb47d7 100644 (file)
 #include <openssl/buffer.h>
 #include <openssl/evp.h>
 
-#ifndef NO_ASN1_OLD
-
-int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *a, ASN1_BIT_STRING *signature,
-               char *data, EVP_PKEY *pkey)
-       {
-       EVP_MD_CTX ctx;
-       const EVP_MD *type;
-       unsigned char *p,*buf_in=NULL;
-       int ret= -1,i,inl;
-
-       EVP_MD_CTX_init(&ctx);
-       i=OBJ_obj2nid(a->algorithm);
-       type=EVP_get_digestbyname(OBJ_nid2sn(i));
-       if (type == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM);
-               goto err;
-               }
-       
-       inl=i2d(data,NULL);
-       buf_in=OPENSSL_malloc((unsigned int)inl);
-       if (buf_in == NULL)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_MALLOC_FAILURE);
-               goto err;
-               }
-       p=buf_in;
-
-       i2d(data,&p);
-       if (!EVP_VerifyInit_ex(&ctx,type, NULL)
-               || !EVP_VerifyUpdate(&ctx,(unsigned char *)buf_in,inl))
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
-               ret=0;
-               goto err;
-               }
-
-       OPENSSL_cleanse(buf_in,(unsigned int)inl);
-       OPENSSL_free(buf_in);
-
-       if (EVP_VerifyFinal(&ctx,(unsigned char *)signature->data,
-                       (unsigned int)signature->length,pkey) <= 0)
-               {
-               ASN1err(ASN1_F_ASN1_VERIFY,ERR_R_EVP_LIB);
-               ret=0;
-               goto err;
-               }
-       /* we don't need to zero the 'ctx' because we just checked
-        * public information */
-       /* memset(&ctx,0,sizeof(ctx)); */
-       ret=1;
-err:
-       EVP_MD_CTX_cleanup(&ctx);
-       return(ret);
-       }
-
-#endif
-
-
 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *a,
                ASN1_BIT_STRING *signature, void *asn, EVP_PKEY *pkey)
        {
index c48ce3c..c4fa8c6 100644 (file)
@@ -765,10 +765,6 @@ typedef struct BIT_STRING_BITNAME_st {
                (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\
                ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING)
 
-  /* for the is_set parameter to i2d_ASN1_SET */
-#define IS_SEQUENCE    0
-#define IS_SET         1
-
 DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE)
 
 int ASN1_TYPE_get(ASN1_TYPE *a);
@@ -888,15 +884,6 @@ int ASN1_TIME_check(ASN1_TIME *t);
 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);
 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
 
-int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp,
-                i2d_of_void *i2d, int ex_tag, int ex_class,
-                int is_set);
-STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a,
-                             const unsigned char **pp,
-                             long length, d2i_of_void *d2i,
-                             void (*free_func)(OPENSSL_BLOCK), int ex_tag,
-                             int ex_class);
-
 #ifndef OPENSSL_NO_BIO
 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
 int a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size);
@@ -1047,19 +1034,7 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num,
        unsigned char *data, int max_len);
 
-STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len,
-                                d2i_of_void *d2i, void (*free_func)(OPENSSL_BLOCK));
-unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d,
-                            unsigned char **buf, int *len );
-void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i);
 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
-ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
-                             ASN1_OCTET_STRING **oct);
-
-#define ASN1_pack_string_of(type,obj,i2d,oct) \
-    (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \
-                     CHECKED_I2D_OF(type, i2d), \
-                     oct))
 
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
 
index 87bd0e9..c60b197 100644 (file)
@@ -176,19 +176,10 @@ err:\
                M_ASN1_D2I_get_imp(b,func, type);\
                }
 
-#define M_ASN1_D2I_get_set(r,func,free_func) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func, \
-                       V_ASN1_SET,V_ASN1_UNIVERSAL);
-
 #define M_ASN1_D2I_get_set_type(type,r,func,free_func) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \
                        V_ASN1_SET,V_ASN1_UNIVERSAL);
 
-#define M_ASN1_D2I_get_set_opt(r,func,free_func) \
-       if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
-               V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
-               { M_ASN1_D2I_get_set(r,func,free_func); }
-
 #define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \
        if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
                V_ASN1_CONSTRUCTED|V_ASN1_SET)))\
@@ -210,15 +201,6 @@ err:\
        if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                M_ASN1_I2D_put_SEQUENCE_type(type,a,f);
 
-#define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \
-       if ((c.slen != 0) && \
-               (M_ASN1_next == \
-               (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\
-               { \
-               M_ASN1_D2I_get_imp_set(b,func,free_func,\
-                       tag,V_ASN1_CONTEXT_SPECIFIC); \
-               }
-
 #define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \
        if ((c.slen != 0) && \
                (M_ASN1_next == \
@@ -228,39 +210,19 @@ err:\
                        tag,V_ASN1_CONTEXT_SPECIFIC); \
                }
 
-#define M_ASN1_D2I_get_seq(r,func,free_func) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func,\
-                       V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
-
 #define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
                                            V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL)
 
-#define M_ASN1_D2I_get_seq_opt(r,func,free_func) \
-       if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
-               V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
-               { M_ASN1_D2I_get_seq(r,func,free_func); }
-
 #define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \
        if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \
                V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\
                { M_ASN1_D2I_get_seq_type(type,r,func,free_func); }
 
-#define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \
-               M_ASN1_D2I_get_imp_set(r,func,free_func,\
-                       x,V_ASN1_CONTEXT_SPECIFIC);
-
 #define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \
                M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\
                        x,V_ASN1_CONTEXT_SPECIFIC);
 
-#define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \
-       c.q=c.p; \
-       if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\
-               (void (*)())free_func,a,b) == NULL) \
-               { c.line=__LINE__; goto err; } \
-       c.slen-=(c.p-c.q);
-
 #define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \
        c.q=c.p; \
        if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\
@@ -299,33 +261,6 @@ err:\
                c.slen-=(c.p-c.q); \
                }
 
-#define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \
-       if ((c.slen != 0) && (M_ASN1_next == \
-               (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
-               { \
-               int Tinf,Ttag,Tclass; \
-               long Tlen; \
-               \
-               c.q=c.p; \
-               Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \
-               if (Tinf & 0x80) \
-                       { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \
-                       c.line=__LINE__; goto err; } \
-               if (Tinf == (V_ASN1_CONSTRUCTED+1)) \
-                                       Tlen = c.slen - (c.p - c.q) - 2; \
-               if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \
-                       (void (*)())free_func, \
-                       b,V_ASN1_UNIVERSAL) == NULL) \
-                       { c.line=__LINE__; goto err; } \
-               if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \
-                       Tlen = c.slen - (c.p - c.q); \
-                       if(!ASN1_check_infinite_end(&c.p, Tlen)) \
-                               { c.error=ERR_R_MISSING_ASN1_EOS; \
-                               c.line=__LINE__; goto err; } \
-               }\
-               c.slen-=(c.p-c.q); \
-               }
-
 #define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \
        if ((c.slen != 0) && (M_ASN1_next == \
                (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \
@@ -384,17 +319,10 @@ err:\
 #define M_ASN1_I2D_len(a,f)    ret+=f(a,NULL)
 #define M_ASN1_I2D_len_IMP_opt(a,f)    if (a != NULL) M_ASN1_I2D_len(a,f)
 
-#define M_ASN1_I2D_len_SET(a,f) \
-               ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET);
-
 #define M_ASN1_I2D_len_SET_type(type,a,f) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \
                                            V_ASN1_UNIVERSAL,IS_SET);
 
-#define M_ASN1_I2D_len_SEQUENCE(a,f) \
-               ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
-                                 IS_SEQUENCE);
-
 #define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \
                                            V_ASN1_UNIVERSAL,IS_SEQUENCE)
@@ -407,32 +335,15 @@ err:\
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        M_ASN1_I2D_len_SEQUENCE_type(type,a,f);
 
-#define M_ASN1_I2D_len_IMP_SET(a,f,x) \
-               ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET);
-
 #define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \
                ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
                                            V_ASN1_CONTEXT_SPECIFIC,IS_SET);
 
-#define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                         IS_SET);
-
 #define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
                                               V_ASN1_CONTEXT_SPECIFIC,IS_SET);
 
-#define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \
-               ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                 IS_SEQUENCE);
-
-#define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                         IS_SEQUENCE);
-
 #define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \
@@ -446,21 +357,6 @@ err:\
                        ret+=ASN1_object_size(1,v,mtag); \
                        }
 
-#define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0))\
-                       { \
-                       v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
-                       ret+=ASN1_object_size(1,v,mtag); \
-                       }
-
-#define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0))\
-                       { \
-                       v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \
-                                      IS_SEQUENCE); \
-                       ret+=ASN1_object_size(1,v,mtag); \
-                       }
-
 #define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
                if ((a != NULL) && (sk_##type##_num(a) != 0))\
                        { \
@@ -481,19 +377,10 @@ err:\
                        *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\
                        }
 
-#define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\
-                       V_ASN1_UNIVERSAL,IS_SET)
 #define M_ASN1_I2D_put_SET_type(type,a,f) \
      i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET)
-#define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
-                       V_ASN1_CONTEXT_SPECIFIC,IS_SET)
 #define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \
      i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET)
-#define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\
-                       V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE)
-
-#define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\
-                                            V_ASN1_UNIVERSAL,IS_SEQUENCE)
 
 #define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \
      i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \
@@ -503,22 +390,12 @@ err:\
                if ((a != NULL) && (sk_num(a) != 0)) \
                        M_ASN1_I2D_put_SEQUENCE(a,f);
 
-#define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                      IS_SET); }
-
 #define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
                                                 V_ASN1_CONTEXT_SPECIFIC, \
                                                 IS_SET); }
 
-#define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \
-                                      IS_SEQUENCE); }
-
 #define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { i2d_ASN1_SET_OF_##type(a,&p,f,x, \
@@ -532,20 +409,6 @@ err:\
                        f(a,&p); \
                        }
 
-#define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { \
-                       ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
-                       i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \
-                       }
-
-#define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \
-               if ((a != NULL) && (sk_num(a) != 0)) \
-                       { \
-                       ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \
-                       i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \
-                       }
-
 #define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \
                if ((a != NULL) && (sk_##type##_num(a) != 0)) \
                        { \
index ad73821..1886508 100644 (file)
 #include "cryptlib.h"
 #include <openssl/asn1.h>
 
-#ifndef NO_ASN1_OLD
-
-/* ASN1 packing and unpacking functions */
-
-/* Turn an ASN1 encoded SEQUENCE OF into a STACK of structures */
-
-STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len,
-                        d2i_of_void *d2i, void (*free_func)(OPENSSL_BLOCK))
-{
-    STACK_OF(OPENSSL_BLOCK) *sk;
-    const unsigned char *pbuf;
-    pbuf =  buf;
-    if (!(sk = d2i_ASN1_SET(NULL, &pbuf, len, d2i, free_func,
-                                       V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL)))
-                ASN1err(ASN1_F_ASN1_SEQ_UNPACK,ASN1_R_DECODE_ERROR);
-    return sk;
-}
-
-/* Turn a STACK structures into an ASN1 encoded SEQUENCE OF structure in a
- * OPENSSL_malloc'ed buffer
- */
-
-unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d,
-                            unsigned char **buf, int *len)
-{
-       int safelen;
-       unsigned char *safe, *p;
-       if (!(safelen = i2d_ASN1_SET(safes, NULL, i2d, V_ASN1_SEQUENCE,
-                                             V_ASN1_UNIVERSAL, IS_SEQUENCE))) {
-               ASN1err(ASN1_F_ASN1_SEQ_PACK,ASN1_R_ENCODE_ERROR);
-               return NULL;
-       }
-       if (!(safe = OPENSSL_malloc (safelen))) {
-               ASN1err(ASN1_F_ASN1_SEQ_PACK,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       p = safe;
-       i2d_ASN1_SET(safes, &p, i2d, V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL,
-                                                                IS_SEQUENCE);
-       if (len) *len = safelen;
-       if (buf) *buf = safe;
-       return safe;
-}
-
-/* Extract an ASN1 object from an ASN1_STRING */
-
-void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i)
-{
-       const unsigned char *p;
-       char *ret;
-
-       p = oct->data;
-       if(!(ret = d2i(NULL, &p, oct->length)))
-               ASN1err(ASN1_F_ASN1_UNPACK_STRING,ASN1_R_DECODE_ERROR);
-       return ret;
-}
-
-/* Pack an ASN1 object into an ASN1_STRING */
-
-ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, ASN1_STRING **oct)
-{
-       unsigned char *p;
-       ASN1_STRING *octmp;
-
-       if (!oct || !*oct) {
-               if (!(octmp = ASN1_STRING_new ())) {
-                       ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);
-                       return NULL;
-               }
-               if (oct) *oct = octmp;
-       } else octmp = *oct;
-               
-       if (!(octmp->length = i2d(obj, NULL))) {
-               ASN1err(ASN1_F_ASN1_PACK_STRING,ASN1_R_ENCODE_ERROR);
-               return NULL;
-       }
-       if (!(p = OPENSSL_malloc (octmp->length))) {
-               ASN1err(ASN1_F_ASN1_PACK_STRING,ERR_R_MALLOC_FAILURE);
-               return NULL;
-       }
-       octmp->data = p;
-       i2d (obj, &p);
-       return octmp;
-}
-
-#endif
-
 /* ASN1_ITEM versions of the above */
 
 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_STRING **oct)
index ea3aa0d..56978a2 100644 (file)
@@ -178,26 +178,6 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)
 #define SKM_sk_is_sorted(type, st) \
        sk_is_sorted(CHECKED_STACK_OF(type, st))
 
-#define        SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
-  (STACK_OF(type) *)d2i_ASN1_SET( \
-                               (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \
-                               pp, length, \
-                               CHECKED_D2I_OF(type, d2i_func), \
-                               CHECKED_SK_FREE_FUNC(type, free_func), \
-                               ex_tag, ex_class)
-
-#define        SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \
-  i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \
-                               CHECKED_I2D_OF(type, i2d_func), \
-                               ex_tag, ex_class, is_set)
-
-#define        SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \
-       ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \
-                       CHECKED_I2D_OF(type, i2d_func), buf, len)
-
-#define        SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \
-       (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func))
-
 #define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \
        (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \
                                CHECKED_D2I_OF(type, d2i_func), \
@@ -2198,226 +2178,126 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)
        SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func))
 
 #define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \
        SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
 #define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \
        SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \
-       SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \
-       SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func))
 
 #define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \
        SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq))
index 121847b..27befbb 100644 (file)
@@ -697,7 +697,6 @@ int i2d_RSA_PUBKEY_fp(FILE *fp,RSA *rsa);
 #ifndef OPENSSL_NO_DSA
 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
-DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa);
 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa);
 #endif
 #ifndef OPENSSL_NO_EC
@@ -881,16 +880,6 @@ X509_INFO *        X509_INFO_new(void);
 void           X509_INFO_free(X509_INFO *a);
 char *         X509_NAME_oneline(X509_NAME *a,char *buf,int size);
 
-int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1,
-               ASN1_BIT_STRING *signature,char *data,EVP_PKEY *pkey);
-
-int ASN1_digest(i2d_of_void *i2d,const EVP_MD *type,char *data,
-               unsigned char *md,unsigned int *len);
-
-int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1,
-             X509_ALGOR *algor2, ASN1_BIT_STRING *signature,
-             char *data,EVP_PKEY *pkey, const EVP_MD *type);
-
 int ASN1_item_digest(const ASN1_ITEM *it,const EVP_MD *type,void *data,
        unsigned char *md,unsigned int *len);
 
index f708610..77b0ec4 100644 (file)
@@ -129,19 +129,6 @@ EOF
 EOF
        }
 
-       foreach $type_thing (sort @asn1setlst) {
-               $new_stackfile .= <<EOF;
-
-#define d2i_ASN1_SET_OF_${type_thing}(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \\
-       SKM_ASN1_SET_OF_d2i($type_thing, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) 
-#define i2d_ASN1_SET_OF_${type_thing}(st, pp, i2d_func, ex_tag, ex_class, is_set) \\
-       SKM_ASN1_SET_OF_i2d($type_thing, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set))
-#define ASN1_seq_pack_${type_thing}(st, i2d_func, buf, len) \\
-       SKM_ASN1_seq_pack($type_thing, (st), (i2d_func), (buf), (len))
-#define ASN1_seq_unpack_${type_thing}(buf, len, d2i_func, free_func) \\
-       SKM_ASN1_seq_unpack($type_thing, (buf), (len), (d2i_func), (free_func))
-EOF
-       }
        foreach $type_thing (sort @p12stklst) {
                $new_stackfile .= <<EOF;