Replace the macros in asn1.h with function equivalents. Also make UTF8Strings
tolerated in certificates.
This commit is contained in:
parent
023c8d0b0a
commit
08e9c1af6c
6
CHANGES
6
CHANGES
@ -4,6 +4,12 @@
|
||||
|
||||
Changes between 0.9.4 and 0.9.5 [xx XXX 1999]
|
||||
|
||||
*) Add function equivalents to the various macros in asn1.h. The old
|
||||
macros are retained with an M_ prefix. Code inside the library can
|
||||
use the M_ macros. External code (including the openssl utility)
|
||||
should *NOT* in order to be "shared library friendly".
|
||||
[Steve Henson]
|
||||
|
||||
*) Add various functions that can check a certificate's extensions
|
||||
to see if it usable for various purposes such as SSL client,
|
||||
server or S/MIME and CAs of these types. This is currently
|
||||
|
@ -60,6 +60,15 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_BIT_STRING *ASN1_BIT_STRING_new(void)
|
||||
{ return M_ASN1_BIT_STRING_new(); }
|
||||
|
||||
void ASN1_BIT_STRING_free(ASN1_BIT_STRING *x)
|
||||
{ return M_ASN1_BIT_STRING_free(x); }
|
||||
|
||||
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *x, unsigned char *d, int len)
|
||||
{ return M_ASN1_BIT_STRING_set(x, d, len); }
|
||||
|
||||
int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp)
|
||||
{
|
||||
int ret,j,r,bits,len;
|
||||
@ -121,7 +130,7 @@ ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, unsigned char **pp,
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
{
|
||||
if ((ret=ASN1_BIT_STRING_new()) == NULL) return(NULL);
|
||||
if ((ret=M_ASN1_BIT_STRING_new()) == NULL) return(NULL);
|
||||
}
|
||||
else
|
||||
ret=(*a);
|
||||
@ -173,7 +182,7 @@ ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, unsigned char **pp,
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_BIT_STRING,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_BIT_STRING_free(ret);
|
||||
M_ASN1_BIT_STRING_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
@ -60,6 +60,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_BMPSTRING *ASN1_BMPSTRING_new(void)
|
||||
{ return M_ASN1_BMPSTRING_new(); }
|
||||
|
||||
void ASN1_BMPSTRING_free(ASN1_BMPSTRING *x)
|
||||
{ return M_ASN1_BMPSTRING_free(x); }
|
||||
|
||||
int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
|
@ -65,6 +65,12 @@
|
||||
* for comments on encoding see a_int.c
|
||||
*/
|
||||
|
||||
ASN1_ENUMERATED *ASN1_ENUMERATED_new(void)
|
||||
{ return M_ASN1_ENUMERATED_new(); }
|
||||
|
||||
void ASN1_ENUMERATED_free(ASN1_ENUMERATED *x)
|
||||
{ return M_ASN1_ENUMERATED_free(x); }
|
||||
|
||||
int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **pp)
|
||||
{
|
||||
int pad=0,ret,r,i,t;
|
||||
@ -142,7 +148,7 @@ ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, unsigned char **pp,
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
{
|
||||
if ((ret=ASN1_ENUMERATED_new()) == NULL) return(NULL);
|
||||
if ((ret=M_ASN1_ENUMERATED_new()) == NULL) return(NULL);
|
||||
ret->type=V_ASN1_ENUMERATED;
|
||||
}
|
||||
else
|
||||
@ -217,7 +223,7 @@ ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, unsigned char **pp,
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_ENUMERATED,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_ENUMERATED_free(ret);
|
||||
M_ASN1_ENUMERATED_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
@ -295,7 +301,7 @@ ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai)
|
||||
int len,j;
|
||||
|
||||
if (ai == NULL)
|
||||
ret=ASN1_ENUMERATED_new();
|
||||
ret=M_ASN1_ENUMERATED_new();
|
||||
else
|
||||
ret=ai;
|
||||
if (ret == NULL)
|
||||
@ -311,7 +317,7 @@ ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai)
|
||||
ret->length=BN_bn2bin(bn,ret->data);
|
||||
return(ret);
|
||||
err:
|
||||
if (ret != ai) ASN1_ENUMERATED_free(ret);
|
||||
if (ret != ai) M_ASN1_ENUMERATED_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
@ -63,6 +63,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void)
|
||||
{ return M_ASN1_GENERALIZEDTIME_new(); }
|
||||
|
||||
void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *x)
|
||||
{ return M_ASN1_GENERALIZEDTIME_free(x); }
|
||||
|
||||
int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **pp)
|
||||
{
|
||||
#ifdef CHARSET_EBCDIC
|
||||
@ -106,7 +112,7 @@ ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a,
|
||||
return(ret);
|
||||
err:
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_GENERALIZEDTIME_free(ret);
|
||||
M_ASN1_GENERALIZEDTIME_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
@ -193,7 +199,7 @@ ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
|
||||
#endif
|
||||
|
||||
if (s == NULL)
|
||||
s=ASN1_GENERALIZEDTIME_new();
|
||||
s=M_ASN1_GENERALIZEDTIME_new();
|
||||
if (s == NULL)
|
||||
return(NULL);
|
||||
|
||||
|
@ -102,7 +102,7 @@ ASN1_HEADER *ASN1_HEADER_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,ASN1_HEADER);
|
||||
M_ASN1_New(ret->header,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->header,M_ASN1_OCTET_STRING_new);
|
||||
ret->meth=NULL;
|
||||
ret->data=NULL;
|
||||
return(ret);
|
||||
@ -112,7 +112,7 @@ ASN1_HEADER *ASN1_HEADER_new(void)
|
||||
void ASN1_HEADER_free(ASN1_HEADER *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OCTET_STRING_free(a->header);
|
||||
M_ASN1_OCTET_STRING_free(a->header);
|
||||
if (a->meth != NULL)
|
||||
a->meth->destroy(a->data);
|
||||
Free((char *)a);
|
||||
|
@ -60,6 +60,18 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_INTEGER *ASN1_INTEGER_new(void)
|
||||
{ return M_ASN1_INTEGER_new();}
|
||||
|
||||
void ASN1_INTEGER_free(ASN1_INTEGER *x)
|
||||
{ return M_ASN1_INTEGER_free(x);}
|
||||
|
||||
ASN1_INTEGER *ASN1_INTEGER_dup(ASN1_INTEGER *x)
|
||||
{ return M_ASN1_INTEGER_dup(x);}
|
||||
|
||||
int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y)
|
||||
{ return M_ASN1_INTEGER_cmp(x,y);}
|
||||
|
||||
/*
|
||||
* This converts an ASN1 INTEGER into its DER encoding.
|
||||
* The internal representation is an ASN1_STRING whose data is a big endian
|
||||
@ -160,7 +172,7 @@ ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, unsigned char **pp,
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
{
|
||||
if ((ret=ASN1_INTEGER_new()) == NULL) return(NULL);
|
||||
if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL);
|
||||
ret->type=V_ASN1_INTEGER;
|
||||
}
|
||||
else
|
||||
@ -240,7 +252,7 @@ ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, unsigned char **pp,
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_INTEGER,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_INTEGER_free(ret);
|
||||
M_ASN1_INTEGER_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
@ -260,7 +272,7 @@ ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, unsigned char **pp,
|
||||
|
||||
if ((a == NULL) || ((*a) == NULL))
|
||||
{
|
||||
if ((ret=ASN1_INTEGER_new()) == NULL) return(NULL);
|
||||
if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL);
|
||||
ret->type=V_ASN1_INTEGER;
|
||||
}
|
||||
else
|
||||
@ -307,7 +319,7 @@ ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, unsigned char **pp,
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_ASN1_UINTEGER,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_INTEGER_free(ret);
|
||||
M_ASN1_INTEGER_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
@ -385,7 +397,7 @@ ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai)
|
||||
int len,j;
|
||||
|
||||
if (ai == NULL)
|
||||
ret=ASN1_INTEGER_new();
|
||||
ret=M_ASN1_INTEGER_new();
|
||||
else
|
||||
ret=ai;
|
||||
if (ret == NULL)
|
||||
@ -401,7 +413,7 @@ ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai)
|
||||
ret->length=BN_bn2bin(bn,ret->data);
|
||||
return(ret);
|
||||
err:
|
||||
if (ret != ai) ASN1_INTEGER_free(ret);
|
||||
if (ret != ai) M_ASN1_INTEGER_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
@ -60,11 +60,23 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void)
|
||||
{ return M_ASN1_OCTET_STRING_new(); }
|
||||
|
||||
void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *x)
|
||||
{ return M_ASN1_OCTET_STRING_free(x); }
|
||||
|
||||
ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *x)
|
||||
{ return M_ASN1_OCTET_STRING_dup(x); }
|
||||
|
||||
int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b)
|
||||
{ return M_ASN1_OCTET_STRING_cmp(a, b); }
|
||||
|
||||
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *x, unsigned char *d, int len)
|
||||
{ return M_ASN1_OCTET_STRING_set(x, d, len); }
|
||||
|
||||
int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
V_ASN1_OCTET_STRING,V_ASN1_UNIVERSAL));
|
||||
}
|
||||
{ return M_i2d_ASN1_OCTET_STRING(a, pp); }
|
||||
|
||||
ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a,
|
||||
unsigned char **pp, long length)
|
||||
|
@ -60,6 +60,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_IA5STRING *ASN1_IA5STRING_new(void)
|
||||
{ return M_ASN1_IA5STRING_new();}
|
||||
|
||||
void ASN1_IA5STRING_free(ASN1_IA5STRING *x)
|
||||
{ return M_ASN1_IA5STRING_free(x);}
|
||||
|
||||
int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **pp)
|
||||
{ return(M_i2d_ASN1_IA5STRING(a,pp)); }
|
||||
|
||||
@ -67,10 +73,22 @@ ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, unsigned char **pp,
|
||||
long l)
|
||||
{ return(M_d2i_ASN1_IA5STRING(a,pp,l)); }
|
||||
|
||||
ASN1_T61STRING *ASN1_T61STRING_new(void)
|
||||
{ return M_ASN1_T61STRING_new();}
|
||||
|
||||
void ASN1_T61STRING_free(ASN1_T61STRING *x)
|
||||
{ return M_ASN1_T61STRING_free(x);}
|
||||
|
||||
ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, unsigned char **pp,
|
||||
long l)
|
||||
{ return(M_d2i_ASN1_T61STRING(a,pp,l)); }
|
||||
|
||||
ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void)
|
||||
{ return M_ASN1_PRINTABLESTRING_new();}
|
||||
|
||||
void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *x)
|
||||
{ return M_ASN1_PRINTABLESTRING_free(x);}
|
||||
|
||||
ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a,
|
||||
unsigned char **pp, long l)
|
||||
{ return(M_d2i_ASN1_PRINTABLESTRING(a,pp,
|
||||
@ -149,6 +167,11 @@ int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s)
|
||||
return(1);
|
||||
}
|
||||
|
||||
ASN1_STRING *DIRECTORYSTRING_new(void)
|
||||
{ return M_DIRECTORYSTRING_new();}
|
||||
|
||||
void DIRECTORYSTRING_free(ASN1_STRING *x)
|
||||
{ return M_DIRECTORYSTRING_free(x);}
|
||||
|
||||
int i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **pp)
|
||||
{ return(M_i2d_DIRECTORYSTRING(a,pp)); }
|
||||
@ -157,6 +180,12 @@ ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, unsigned char **pp,
|
||||
long l)
|
||||
{ return(M_d2i_DIRECTORYSTRING(a,pp,l)); }
|
||||
|
||||
ASN1_STRING *DISPLAYTEXT_new(void)
|
||||
{ return M_DISPLAYTEXT_new();}
|
||||
|
||||
void DISPLAYTEXT_free(ASN1_STRING *x)
|
||||
{ return M_DISPLAYTEXT_free(x);}
|
||||
|
||||
int i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **pp)
|
||||
{ return(M_i2d_DISPLAYTEXT(a,pp)); }
|
||||
|
||||
|
@ -66,6 +66,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_TIME *ASN1_TIME_new(void)
|
||||
{ return M_ASN1_TIME_new(); }
|
||||
|
||||
void ASN1_TIME_free(ASN1_TIME *x)
|
||||
{ return M_ASN1_TIME_free(x); }
|
||||
|
||||
int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **pp)
|
||||
{
|
||||
#ifdef CHARSET_EBCDIC
|
||||
|
@ -66,6 +66,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_UTCTIME *ASN1_UTCTIME_new(void)
|
||||
{ return M_ASN1_UTCTIME_new(); }
|
||||
|
||||
void ASN1_UTCTIME_free(ASN1_UTCTIME *x)
|
||||
{ return M_ASN1_UTCTIME_free(x); }
|
||||
|
||||
int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **pp)
|
||||
{
|
||||
#ifndef CHARSET_EBCDIC
|
||||
@ -109,7 +115,7 @@ ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, unsigned char **pp,
|
||||
return(ret);
|
||||
err:
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret)))
|
||||
ASN1_UTCTIME_free(ret);
|
||||
M_ASN1_UTCTIME_free(ret);
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
@ -192,7 +198,7 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
|
||||
#endif
|
||||
|
||||
if (s == NULL)
|
||||
s=ASN1_UTCTIME_new();
|
||||
s=M_ASN1_UTCTIME_new();
|
||||
if (s == NULL)
|
||||
return(NULL);
|
||||
|
||||
|
@ -60,6 +60,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_UTF8STRING *ASN1_UTF8STRING_new(void)
|
||||
{ return M_ASN1_UTF8STRING_new();}
|
||||
|
||||
void ASN1_UTF8STRING_free(ASN1_UTF8STRING *x)
|
||||
{ return M_ASN1_UTF8STRING_free(x);}
|
||||
|
||||
int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
|
@ -60,6 +60,12 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void)
|
||||
{ return M_ASN1_VISIBLESTRING_new(); }
|
||||
|
||||
void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *x)
|
||||
{ return M_ASN1_VISIBLESTRING_free(x); }
|
||||
|
||||
int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **pp)
|
||||
{
|
||||
return(i2d_ASN1_bytes((ASN1_STRING *)a,pp,
|
||||
|
@ -281,60 +281,50 @@ typedef struct asn1_header_st
|
||||
ASN1_METHOD *meth;
|
||||
} ASN1_HEADER;
|
||||
|
||||
#define ASN1_STRING_length(x) ((x)->length)
|
||||
#define ASN1_STRING_type(x) ((x)->type)
|
||||
#define ASN1_STRING_data(x) ((x)->data)
|
||||
#define M_ASN1_STRING_length(x) ((x)->length)
|
||||
#define M_ASN1_STRING_length_set(x, n) ((x)->length = (n))
|
||||
#define M_ASN1_STRING_type(x) ((x)->type)
|
||||
#define M_ASN1_STRING_data(x) ((x)->data)
|
||||
|
||||
/* Macros for string operations */
|
||||
#define ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\
|
||||
#define M_ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_BIT_STRING)
|
||||
#define ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\
|
||||
#define M_ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\
|
||||
ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\
|
||||
#define M_ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\
|
||||
(ASN1_STRING *)a,(ASN1_STRING *)b)
|
||||
#define ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c)
|
||||
/* i2d_ASN1_BIT_STRING() is a function */
|
||||
/* d2i_ASN1_BIT_STRING() is a function */
|
||||
#define M_ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c)
|
||||
|
||||
#define ASN1_INTEGER_new() (ASN1_INTEGER *)\
|
||||
#define M_ASN1_INTEGER_new() (ASN1_INTEGER *)\
|
||||
ASN1_STRING_type_new(V_ASN1_INTEGER)
|
||||
#define ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_INTEGER_dup(a) (ASN1_INTEGER *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\
|
||||
#define M_ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_INTEGER_dup(a) (ASN1_INTEGER *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define M_ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\
|
||||
(ASN1_STRING *)a,(ASN1_STRING *)b)
|
||||
/* ASN1_INTEGER_set() is a function, also see BN_to_ASN1_INTEGER() */
|
||||
/* ASN1_INTEGER_get() is a function, also see ASN1_INTEGER_to_BN() */
|
||||
/* i2d_ASN1_INTEGER() is a function */
|
||||
/* d2i_ASN1_INTEGER() is a function */
|
||||
|
||||
#define ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\
|
||||
#define M_ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\
|
||||
ASN1_STRING_type_new(V_ASN1_ENUMERATED)
|
||||
#define ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\
|
||||
#define M_ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define M_ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\
|
||||
(ASN1_STRING *)a,(ASN1_STRING *)b)
|
||||
/* ASN1_ENUMERATED_set() is a function, also see BN_to_ASN1_ENUMERATED() */
|
||||
/* ASN1_ENUMERATED_get() is a function, also see ASN1_ENUMERATED_to_BN() */
|
||||
/* i2d_ASN1_ENUMERATED() is a function */
|
||||
/* d2i_ASN1_ENUMERATED() is a function */
|
||||
|
||||
#define ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\
|
||||
#define M_ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_OCTET_STRING)
|
||||
#define ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\
|
||||
#define M_ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\
|
||||
ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\
|
||||
#define M_ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\
|
||||
(ASN1_STRING *)a,(ASN1_STRING *)b)
|
||||
#define ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c)
|
||||
#define ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b)
|
||||
#define M_ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c)
|
||||
#define M_ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b)
|
||||
#define M_i2d_ASN1_OCTET_STRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_OCTET_STRING,\
|
||||
V_ASN1_OCTET_STRING)
|
||||
/* d2i_ASN1_OCTET_STRING() is a function */
|
||||
V_ASN1_UNIVERSAL)
|
||||
|
||||
#define ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING)
|
||||
#define ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING)
|
||||
#define M_ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_PRINTABLE(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\
|
||||
pp,a->type,V_ASN1_UNIVERSAL)
|
||||
#define M_d2i_ASN1_PRINTABLE(a,pp,l) \
|
||||
@ -345,10 +335,11 @@ typedef struct asn1_header_st
|
||||
B_ASN1_BIT_STRING| \
|
||||
B_ASN1_UNIVERSALSTRING|\
|
||||
B_ASN1_BMPSTRING|\
|
||||
B_ASN1_UTF8STRING|\
|
||||
B_ASN1_UNKNOWN)
|
||||
|
||||
#define DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
|
||||
#define DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
|
||||
#define M_DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\
|
||||
pp,a->type,V_ASN1_UNIVERSAL)
|
||||
#define M_d2i_DIRECTORYSTRING(a,pp,l) \
|
||||
@ -359,8 +350,8 @@ typedef struct asn1_header_st
|
||||
B_ASN1_UNIVERSALSTRING|\
|
||||
B_ASN1_UTF8STRING)
|
||||
|
||||
#define DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING)
|
||||
#define DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING)
|
||||
#define M_DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\
|
||||
pp,a->type,V_ASN1_UNIVERSAL)
|
||||
#define M_d2i_DISPLAYTEXT(a,pp,l) \
|
||||
@ -369,9 +360,9 @@ typedef struct asn1_header_st
|
||||
B_ASN1_BMPSTRING|\
|
||||
B_ASN1_UTF8STRING)
|
||||
|
||||
#define ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\
|
||||
#define M_ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
|
||||
#define ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_PRINTABLESTRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_PRINTABLESTRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -379,9 +370,9 @@ typedef struct asn1_header_st
|
||||
(ASN1_PRINTABLESTRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_PRINTABLESTRING)
|
||||
|
||||
#define ASN1_T61STRING_new() (ASN1_T61STRING *)\
|
||||
#define M_ASN1_T61STRING_new() (ASN1_T61STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_T61STRING)
|
||||
#define ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_T61STRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_T61STRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -389,10 +380,10 @@ typedef struct asn1_header_st
|
||||
(ASN1_T61STRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_T61STRING)
|
||||
|
||||
#define ASN1_IA5STRING_new() (ASN1_IA5STRING *)\
|
||||
#define M_ASN1_IA5STRING_new() (ASN1_IA5STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_IA5STRING)
|
||||
#define ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_IA5STRING_dup(a) \
|
||||
#define M_ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_IA5STRING_dup(a) \
|
||||
(ASN1_IA5STRING *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_IA5STRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\
|
||||
@ -401,38 +392,25 @@ typedef struct asn1_header_st
|
||||
(ASN1_IA5STRING *)d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l,\
|
||||
B_ASN1_IA5STRING)
|
||||
|
||||
#define ASN1_UTCTIME_new() (ASN1_UTCTIME *)\
|
||||
#define M_ASN1_UTCTIME_new() (ASN1_UTCTIME *)\
|
||||
ASN1_STRING_type_new(V_ASN1_UTCTIME)
|
||||
#define ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
/* i2d_ASN1_UTCTIME() is a function */
|
||||
/* d2i_ASN1_UTCTIME() is a function */
|
||||
/* ASN1_UTCTIME_set() is a function */
|
||||
/* ASN1_UTCTIME_check() is a function */
|
||||
#define M_ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
|
||||
#define ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\
|
||||
#define M_ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\
|
||||
ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME)
|
||||
#define ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\
|
||||
#define M_ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\
|
||||
(ASN1_STRING *)a)
|
||||
/* i2d_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* d2i_ASN1_GENERALIZEDTIME() is a function */
|
||||
/* ASN1_GENERALIZEDTIME_set() is a function */
|
||||
/* ASN1_GENERALIZEDTIME_check() is a function */
|
||||
|
||||
#define ASN1_TIME_new() (ASN1_TIME *)\
|
||||
#define M_ASN1_TIME_new() (ASN1_TIME *)\
|
||||
ASN1_STRING_type_new(V_ASN1_UTCTIME)
|
||||
#define ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define ASN1_TIME_dup(a) (ASN1_TIME *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
#define M_ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_TIME_dup(a) (ASN1_TIME *)ASN1_STRING_dup((ASN1_STRING *)a)
|
||||
|
||||
/* i2d_ASN1_TIME() is a function */
|
||||
/* d2i_ASN1_TIME() is a function */
|
||||
/* ASN1_TIME_set() is a function */
|
||||
/* ASN1_TIME_check() is a function */
|
||||
|
||||
#define ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\
|
||||
#define M_ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_GENERALSTRING)
|
||||
#define ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_GENERALSTRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_GENERALSTRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -440,9 +418,9 @@ typedef struct asn1_header_st
|
||||
(ASN1_GENERALSTRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_GENERALSTRING)
|
||||
|
||||
#define ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\
|
||||
#define M_ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_UNIVERSALSTRING)
|
||||
#define ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_UNIVERSALSTRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UNIVERSALSTRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -450,9 +428,9 @@ typedef struct asn1_header_st
|
||||
(ASN1_UNIVERSALSTRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_UNIVERSALSTRING)
|
||||
|
||||
#define ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\
|
||||
#define M_ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_BMPSTRING)
|
||||
#define ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_BMPSTRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_BMPSTRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -460,9 +438,9 @@ typedef struct asn1_header_st
|
||||
(ASN1_BMPSTRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_BMPSTRING)
|
||||
|
||||
#define ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\
|
||||
#define M_ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_VISIBLESTRING)
|
||||
#define ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_VISIBLESTRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_VISIBLESTRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -470,9 +448,9 @@ typedef struct asn1_header_st
|
||||
(ASN1_VISIBLESTRING *)d2i_ASN1_type_bytes\
|
||||
((ASN1_STRING **)a,pp,l,B_ASN1_VISIBLESTRING)
|
||||
|
||||
#define ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\
|
||||
#define M_ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\
|
||||
ASN1_STRING_type_new(V_ASN1_UTF8STRING)
|
||||
#define ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a)
|
||||
#define M_i2d_ASN1_UTF8STRING(a,pp) \
|
||||
i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UTF8STRING,\
|
||||
V_ASN1_UNIVERSAL)
|
||||
@ -500,7 +478,7 @@ ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a,unsigned char **pp,
|
||||
DECLARE_STACK_OF(ASN1_OBJECT)
|
||||
DECLARE_ASN1_SET_OF(ASN1_OBJECT)
|
||||
|
||||
ASN1_STRING * ASN1_STRING_new(void );
|
||||
ASN1_STRING * ASN1_STRING_new(void);
|
||||
void ASN1_STRING_free(ASN1_STRING *a);
|
||||
ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a);
|
||||
ASN1_STRING * ASN1_STRING_type_new(int type );
|
||||
@ -508,10 +486,18 @@ int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
|
||||
/* Since this is used to store all sorts of things, via macros, for now, make
|
||||
its data void * */
|
||||
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
|
||||
int ASN1_STRING_length(ASN1_STRING *x);
|
||||
void ASN1_STRING_length_set(ASN1_STRING *x, int n);
|
||||
int ASN1_STRING_type(ASN1_STRING *x);
|
||||
unsigned char * ASN1_STRING_data(ASN1_STRING *x);
|
||||
|
||||
ASN1_BIT_STRING * ASN1_BIT_STRING_new(void);
|
||||
void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a);
|
||||
int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a,unsigned char **pp);
|
||||
ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,unsigned char **pp,
|
||||
long length);
|
||||
int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d,
|
||||
int length );
|
||||
int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value);
|
||||
int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n);
|
||||
|
||||
@ -519,12 +505,18 @@ int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n);
|
||||
int i2d_ASN1_BOOLEAN(int a,unsigned char **pp);
|
||||
int d2i_ASN1_BOOLEAN(int *a,unsigned char **pp,long length);
|
||||
|
||||
ASN1_INTEGER * ASN1_INTEGER_new(void);
|
||||
void ASN1_INTEGER_free(ASN1_INTEGER *a);
|
||||
int i2d_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp);
|
||||
ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a,unsigned char **pp,
|
||||
long length);
|
||||
ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a,unsigned char **pp,
|
||||
long length);
|
||||
ASN1_INTEGER * ASN1_INTEGER_dup(ASN1_INTEGER *x);
|
||||
int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y);
|
||||
|
||||
ASN1_ENUMERATED * ASN1_ENUMERATED_new(void);
|
||||
void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a);
|
||||
int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a,unsigned char **pp);
|
||||
ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a,unsigned char **pp,
|
||||
long length);
|
||||
@ -537,18 +529,29 @@ int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a);
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t);
|
||||
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str);
|
||||
|
||||
ASN1_OCTET_STRING * ASN1_OCTET_STRING_new(void);
|
||||
void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a);
|
||||
int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a,unsigned char **pp);
|
||||
ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a,
|
||||
unsigned char **pp,long length);
|
||||
ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *a);
|
||||
int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b);
|
||||
int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, unsigned char *data, int len);
|
||||
|
||||
ASN1_VISIBLESTRING * ASN1_VISIBLESTRING_new(void);
|
||||
void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a);
|
||||
int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a,unsigned char **pp);
|
||||
ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a,
|
||||
unsigned char **pp,long length);
|
||||
|
||||
ASN1_UTF8STRING * ASN1_UTF8STRING_new(void);
|
||||
void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a);
|
||||
int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a,unsigned char **pp);
|
||||
ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a,
|
||||
unsigned char **pp,long length);
|
||||
|
||||
ASN1_BMPSTRING * ASN1_BMPSTRING_new(void);
|
||||
void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a);
|
||||
int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **pp);
|
||||
ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, unsigned char **pp,
|
||||
long length);
|
||||
@ -560,30 +563,48 @@ int UTF8_putc(unsigned char *str, int len, unsigned long value);
|
||||
int i2d_ASN1_PRINTABLE(ASN1_STRING *a,unsigned char **pp);
|
||||
ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a,
|
||||
unsigned char **pp, long l);
|
||||
|
||||
ASN1_PRINTABLESTRING * ASN1_PRINTABLESTRING_new(void);
|
||||
void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a);
|
||||
ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a,
|
||||
unsigned char **pp, long l);
|
||||
|
||||
ASN1_STRING * DIRECTORYSTRING_new(void);
|
||||
void DIRECTORYSTRING_free(ASN1_STRING *a);
|
||||
int i2d_DIRECTORYSTRING(ASN1_STRING *a,unsigned char **pp);
|
||||
ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, unsigned char **pp,
|
||||
long length);
|
||||
|
||||
ASN1_STRING * DISPLAYTEXT_new(void);
|
||||
void DISPLAYTEXT_free(ASN1_STRING *a);
|
||||
int i2d_DISPLAYTEXT(ASN1_STRING *a,unsigned char **pp);
|
||||
ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, unsigned char **pp, long length);
|
||||
|
||||
ASN1_T61STRING * ASN1_T61STRING_new(void);
|
||||
void ASN1_T61STRING_free(ASN1_IA5STRING *a);
|
||||
ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a,
|
||||
unsigned char **pp, long l);
|
||||
|
||||
ASN1_IA5STRING * ASN1_IA5STRING_new(void);
|
||||
void ASN1_IA5STRING_free(ASN1_IA5STRING *a);
|
||||
int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a,unsigned char **pp);
|
||||
ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a,
|
||||
unsigned char **pp, long l);
|
||||
|
||||
ASN1_UTCTIME * ASN1_UTCTIME_new(void);
|
||||
void ASN1_UTCTIME_free(ASN1_UTCTIME *a);
|
||||
int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a,unsigned char **pp);
|
||||
ASN1_UTCTIME * d2i_ASN1_UTCTIME(ASN1_UTCTIME **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
ASN1_GENERALIZEDTIME * ASN1_GENERALIZEDTIME_new(void);
|
||||
void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a);
|
||||
int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a,unsigned char **pp);
|
||||
ASN1_GENERALIZEDTIME * d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a,unsigned char **pp,
|
||||
long length);
|
||||
|
||||
ASN1_TIME * ASN1_TIME_new(void);
|
||||
void ASN1_TIME_free(ASN1_TIME *a);
|
||||
int i2d_ASN1_TIME(ASN1_TIME *a,unsigned char **pp);
|
||||
ASN1_TIME * d2i_ASN1_TIME(ASN1_TIME **a,unsigned char **pp, long length);
|
||||
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);
|
||||
|
@ -411,3 +411,14 @@ void asn1_add_error(unsigned char *address, int offset)
|
||||
ERR_add_error_data(4,"address=",buf1," offset=",buf2);
|
||||
}
|
||||
|
||||
int ASN1_STRING_length(ASN1_STRING *x)
|
||||
{ return M_ASN1_STRING_length(x); }
|
||||
|
||||
void ASN1_STRING_length_set(ASN1_STRING *x, int len)
|
||||
{ M_ASN1_STRING_length_set(x, len); return; }
|
||||
|
||||
int ASN1_STRING_type(ASN1_STRING *x)
|
||||
{ return M_ASN1_STRING_type(x); }
|
||||
|
||||
unsigned char * ASN1_STRING_data(ASN1_STRING *x)
|
||||
{ return ASN1_STRING_data(x); }
|
||||
|
@ -273,7 +273,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
|
||||
os->length) <= 0)
|
||||
goto end;
|
||||
}
|
||||
ASN1_OCTET_STRING_free(os);
|
||||
M_ASN1_OCTET_STRING_free(os);
|
||||
os=NULL;
|
||||
}
|
||||
}
|
||||
@ -307,7 +307,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
|
||||
if (BIO_write(bp,"BAD INTEGER",11) <= 0)
|
||||
goto end;
|
||||
}
|
||||
ASN1_INTEGER_free(bs);
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
}
|
||||
else if (tag == V_ASN1_ENUMERATED)
|
||||
{
|
||||
@ -339,7 +339,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
|
||||
if (BIO_write(bp,"BAD ENUMERATED",11) <= 0)
|
||||
goto end;
|
||||
}
|
||||
ASN1_ENUMERATED_free(bs);
|
||||
M_ASN1_ENUMERATED_free(bs);
|
||||
}
|
||||
|
||||
if (!nl)
|
||||
@ -358,7 +358,7 @@ static int asn1_parse2(BIO *bp, unsigned char **pp, long length, int offset,
|
||||
ret=1;
|
||||
end:
|
||||
if (o != NULL) ASN1_OBJECT_free(o);
|
||||
if (os != NULL) ASN1_OCTET_STRING_free(os);
|
||||
if (os != NULL) M_ASN1_OCTET_STRING_free(os);
|
||||
*pp=p;
|
||||
return(ret);
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ DH *d2i_DHparams(DH **a, unsigned char **pp, long length)
|
||||
ret->length=(int)v;
|
||||
}
|
||||
|
||||
ASN1_BIT_STRING_free(bs);
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
@ -95,7 +95,7 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DHPARAMS,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DH_free(ret);
|
||||
if (bs != NULL) ASN1_BIT_STRING_free(bs);
|
||||
if (bs != NULL) M_ASN1_BIT_STRING_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -83,7 +83,7 @@ DSA *d2i_DSAparams(DSA **a, unsigned char **pp, long length)
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->g=BN_bin2bn(bs->data,bs->length,ret->g)) == NULL) goto err_bn;
|
||||
|
||||
ASN1_BIT_STRING_free(bs);
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
@ -92,7 +92,7 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPARAMS,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) ASN1_BIT_STRING_free(bs);
|
||||
if (bs != NULL) M_ASN1_BIT_STRING_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -107,7 +107,7 @@ RSA *d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length)
|
||||
if ((ret->iqmp=BN_bin2bn(bs->data,bs->length,ret->iqmp)) == NULL)
|
||||
goto err_bn;
|
||||
|
||||
ASN1_INTEGER_free(bs);
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
@ -115,7 +115,8 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_RSAPRIVATEKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) RSA_free(ret);
|
||||
if (bs != NULL) ASN1_INTEGER_free(bs);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -81,7 +81,7 @@ RSA *d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length)
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->e=BN_bin2bn(bs->data,bs->length,ret->e)) == NULL) goto err_bn;
|
||||
|
||||
ASN1_INTEGER_free(bs);
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs=NULL;
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
@ -91,7 +91,7 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_RSAPUBLICKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) RSA_free(ret);
|
||||
if (bs != NULL) ASN1_INTEGER_free(bs);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -91,7 +91,7 @@ DSA *d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length)
|
||||
if ((ret->priv_key=BN_bin2bn(bs->data,bs->length,ret->priv_key))
|
||||
== NULL) goto err_bn;
|
||||
|
||||
ASN1_INTEGER_free(bs);
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
@ -99,7 +99,7 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPRIVATEKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) ASN1_INTEGER_free(bs);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -107,7 +107,7 @@ DSA *d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length)
|
||||
ret->write_params=1;
|
||||
}
|
||||
|
||||
ASN1_INTEGER_free(bs);
|
||||
M_ASN1_INTEGER_free(bs);
|
||||
bs=NULL;
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
err_bn:
|
||||
@ -115,7 +115,7 @@ err_bn:
|
||||
err:
|
||||
ASN1err(ASN1_F_D2I_DSAPUBLICKEY,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_free(ret);
|
||||
if (bs != NULL) ASN1_INTEGER_free(bs);
|
||||
if (bs != NULL) M_ASN1_INTEGER_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
#endif
|
||||
|
@ -65,8 +65,8 @@ int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
|
||||
{
|
||||
ASN1_STRING *os;
|
||||
|
||||
if ((os=ASN1_OCTET_STRING_new()) == NULL) return(0);
|
||||
if (!ASN1_OCTET_STRING_set(os,data,len)) return(0);
|
||||
if ((os=M_ASN1_OCTET_STRING_new()) == NULL) return(0);
|
||||
if (!M_ASN1_OCTET_STRING_set(os,data,len)) return(0);
|
||||
ASN1_TYPE_set(a,V_ASN1_OCTET_STRING,os);
|
||||
return(1);
|
||||
}
|
||||
@ -83,8 +83,8 @@ int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data,
|
||||
ASN1err(ASN1_F_ASN1_TYPE_GET_OCTETSTRING,ASN1_R_DATA_IS_WRONG);
|
||||
return(-1);
|
||||
}
|
||||
p=ASN1_STRING_data(a->value.octet_string);
|
||||
ret=ASN1_STRING_length(a->value.octet_string);
|
||||
p=M_ASN1_STRING_data(a->value.octet_string);
|
||||
ret=M_ASN1_STRING_length(a->value.octet_string);
|
||||
if (ret < max_len)
|
||||
num=ret;
|
||||
else
|
||||
@ -117,8 +117,8 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data,
|
||||
/* Grow the 'string' */
|
||||
ASN1_STRING_set(osp,NULL,size);
|
||||
|
||||
ASN1_STRING_length(osp)=size;
|
||||
p=ASN1_STRING_data(osp);
|
||||
M_ASN1_STRING_length_set(osp, size);
|
||||
p=M_ASN1_STRING_data(osp);
|
||||
|
||||
ASN1_put_object(&p,1,n,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL);
|
||||
i2d_ASN1_INTEGER(&in,&p);
|
||||
@ -145,8 +145,8 @@ int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, unsigned char *data,
|
||||
{
|
||||
goto err;
|
||||
}
|
||||
p=ASN1_STRING_data(a->value.sequence);
|
||||
length=ASN1_STRING_length(a->value.sequence);
|
||||
p=M_ASN1_STRING_data(a->value.sequence);
|
||||
length=M_ASN1_STRING_length(a->value.sequence);
|
||||
|
||||
c.pp= &p;
|
||||
c.p=p;
|
||||
@ -165,21 +165,21 @@ int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, unsigned char *data,
|
||||
if (num != NULL)
|
||||
*num=ASN1_INTEGER_get(ai);
|
||||
|
||||
ret=ASN1_STRING_length(os);
|
||||
ret=M_ASN1_STRING_length(os);
|
||||
if (max_len > ret)
|
||||
n=ret;
|
||||
else
|
||||
n=max_len;
|
||||
|
||||
if (data != NULL)
|
||||
memcpy(data,ASN1_STRING_data(os),n);
|
||||
memcpy(data,M_ASN1_STRING_data(os),n);
|
||||
if (0)
|
||||
{
|
||||
err:
|
||||
ASN1err(ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING,ASN1_R_DATA_IS_WRONG);
|
||||
}
|
||||
if (os != NULL) ASN1_OCTET_STRING_free(os);
|
||||
if (ai != NULL) ASN1_INTEGER_free(ai);
|
||||
if (os != NULL) M_ASN1_OCTET_STRING_free(os);
|
||||
if (ai != NULL) M_ASN1_INTEGER_free(ai);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
@ -205,10 +205,10 @@ RSA *d2i_Netscape_RSA(RSA **a, unsigned char **pp, long length, int (*cb)())
|
||||
(char *)os->data,os->length) != 0))
|
||||
{
|
||||
ASN1err(ASN1_F_D2I_NETSCAPE_RSA,ASN1_R_PRIVATE_KEY_HEADER_MISSING);
|
||||
ASN1_BIT_STRING_free(os);
|
||||
M_ASN1_BIT_STRING_free(os);
|
||||
goto err;
|
||||
}
|
||||
ASN1_BIT_STRING_free(os);
|
||||
M_ASN1_BIT_STRING_free(os);
|
||||
c.q=c.p;
|
||||
if ((ret=d2i_Netscape_RSA_2(a,&c.p,c.slen,cb)) == NULL) goto err;
|
||||
c.slen-=(c.p-c.q);
|
||||
@ -279,7 +279,7 @@ RSA *d2i_Netscape_RSA_2(RSA **a, unsigned char **pp, long length,
|
||||
*pp=c.p;
|
||||
err:
|
||||
if (pkey != NULL) NETSCAPE_PKEY_free(pkey);
|
||||
if (os != NULL) ASN1_BIT_STRING_free(os);
|
||||
if (os != NULL) M_ASN1_BIT_STRING_free(os);
|
||||
if (alg != NULL) X509_ALGOR_free(alg);
|
||||
return(ret);
|
||||
}
|
||||
@ -321,9 +321,9 @@ static NETSCAPE_PKEY *NETSCAPE_PKEY_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,NETSCAPE_PKEY);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->private_key,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->private_key,M_ASN1_OCTET_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_NETSCAPE_PKEY_NEW);
|
||||
}
|
||||
@ -331,9 +331,9 @@ static NETSCAPE_PKEY *NETSCAPE_PKEY_new(void)
|
||||
static void NETSCAPE_PKEY_free(NETSCAPE_PKEY *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
X509_ALGOR_free(a->algor);
|
||||
ASN1_OCTET_STRING_free(a->private_key);
|
||||
M_ASN1_OCTET_STRING_free(a->private_key);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -82,8 +82,8 @@ PBEPARAM *PBEPARAM_new(void)
|
||||
PBEPARAM *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, PBEPARAM);
|
||||
M_ASN1_New(ret->iter,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->salt,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->iter,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->salt,M_ASN1_OCTET_STRING_new);
|
||||
return (ret);
|
||||
M_ASN1_New_Error(ASN1_F_PBEPARAM_NEW);
|
||||
}
|
||||
@ -101,8 +101,8 @@ PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, unsigned char **pp, long length)
|
||||
void PBEPARAM_free (PBEPARAM *a)
|
||||
{
|
||||
if(a==NULL) return;
|
||||
ASN1_OCTET_STRING_free(a->salt);
|
||||
ASN1_INTEGER_free (a->iter);
|
||||
M_ASN1_OCTET_STRING_free(a->salt);
|
||||
M_ASN1_INTEGER_free (a->iter);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
||||
|
@ -131,7 +131,7 @@ PBKDF2PARAM *PBKDF2PARAM_new(void)
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, PBKDF2PARAM);
|
||||
M_ASN1_New(ret->salt, ASN1_TYPE_new);
|
||||
M_ASN1_New(ret->iter, ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->iter, M_ASN1_INTEGER_new);
|
||||
ret->keylength = NULL;
|
||||
ret->prf = NULL;
|
||||
return (ret);
|
||||
@ -155,8 +155,8 @@ void PBKDF2PARAM_free (PBKDF2PARAM *a)
|
||||
{
|
||||
if(a==NULL) return;
|
||||
ASN1_TYPE_free(a->salt);
|
||||
ASN1_INTEGER_free(a->iter);
|
||||
ASN1_INTEGER_free(a->keylength);
|
||||
M_ASN1_INTEGER_free(a->iter);
|
||||
M_ASN1_INTEGER_free(a->keylength);
|
||||
X509_ALGOR_free(a->prf);
|
||||
Free ((char *)a);
|
||||
}
|
||||
@ -199,7 +199,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
|
||||
EVP_CIPHER_CTX_cleanup(&ctx);
|
||||
|
||||
if(!(kdf = PBKDF2PARAM_new())) goto merr;
|
||||
if(!(osalt = ASN1_OCTET_STRING_new())) goto merr;
|
||||
if(!(osalt = M_ASN1_OCTET_STRING_new())) goto merr;
|
||||
|
||||
if (!saltlen) saltlen = PKCS5_SALT_LEN;
|
||||
if (!(osalt->data = Malloc (saltlen))) goto merr;
|
||||
@ -218,7 +218,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
|
||||
/* If its RC2 then we'd better setup the key length */
|
||||
|
||||
if(alg_nid == NID_rc2_cbc) {
|
||||
if(!(kdf->keylength = ASN1_INTEGER_new())) goto merr;
|
||||
if(!(kdf->keylength = M_ASN1_INTEGER_new())) goto merr;
|
||||
if(!ASN1_INTEGER_set (kdf->keylength,
|
||||
EVP_CIPHER_key_length(cipher))) goto merr;
|
||||
}
|
||||
@ -264,7 +264,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
|
||||
err:
|
||||
PBE2PARAM_free(pbe2);
|
||||
/* Note 'scheme' is freed as part of pbe2 */
|
||||
ASN1_OCTET_STRING_free(osalt);
|
||||
M_ASN1_OCTET_STRING_free(osalt);
|
||||
PBKDF2PARAM_free(kdf);
|
||||
X509_ALGOR_free(kalg);
|
||||
X509_ALGOR_free(ret);
|
||||
|
@ -101,10 +101,10 @@ PKCS7_DIGEST *PKCS7_DIGEST_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_DIGEST);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->md,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->contents,PKCS7_new);
|
||||
M_ASN1_New(ret->digest,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->digest,M_ASN1_OCTET_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_DIGEST_NEW);
|
||||
}
|
||||
@ -112,10 +112,10 @@ PKCS7_DIGEST *PKCS7_DIGEST_new(void)
|
||||
void PKCS7_DIGEST_free(PKCS7_DIGEST *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
X509_ALGOR_free(a->md);
|
||||
PKCS7_free(a->contents);
|
||||
ASN1_OCTET_STRING_free(a->digest);
|
||||
M_ASN1_OCTET_STRING_free(a->digest);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ENCRYPT);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ENCRYPT_NEW);
|
||||
@ -104,7 +104,7 @@ PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void)
|
||||
void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a)
|
||||
if (a == NULL) return;
|
||||
ASN1_OBJECT_free(a->content_type);
|
||||
X509_ALGOR_free(a->algorithm);
|
||||
ASN1_OCTET_STRING_free(a->enc_data);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_data);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -101,7 +101,7 @@ PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ENVELOPE);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
return(ret);
|
||||
@ -111,7 +111,7 @@ PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void)
|
||||
void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
Free((char *)a);
|
||||
|
@ -96,7 +96,7 @@ PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_ISSUER_AND_SERIAL);
|
||||
M_ASN1_New(ret->issuer,X509_NAME_new);
|
||||
M_ASN1_New(ret->serial,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->serial,M_ASN1_INTEGER_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_ISSUER_AND_SERIAL_NEW);
|
||||
}
|
||||
@ -105,7 +105,7 @@ void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_NAME_free(a->issuer);
|
||||
ASN1_INTEGER_free(a->serial);
|
||||
M_ASN1_INTEGER_free(a->serial);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ void PKCS7_content_free(PKCS7 *a)
|
||||
switch (OBJ_obj2nid(a->type))
|
||||
{
|
||||
case NID_pkcs7_data:
|
||||
ASN1_OCTET_STRING_free(a->d.data);
|
||||
M_ASN1_OCTET_STRING_free(a->d.data);
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
PKCS7_SIGNED_free(a->d.sign);
|
||||
|
@ -101,10 +101,10 @@ PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_RECIP_INFO);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->issuer_and_serial,PKCS7_ISSUER_AND_SERIAL_new);
|
||||
M_ASN1_New(ret->key_enc_algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->enc_key,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->enc_key,M_ASN1_OCTET_STRING_new);
|
||||
ret->cert=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS7_RECIP_INFO_NEW);
|
||||
@ -113,10 +113,10 @@ PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void)
|
||||
void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial);
|
||||
X509_ALGOR_free(a->key_enc_algor);
|
||||
ASN1_OCTET_STRING_free(a->enc_key);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_key);
|
||||
if (a->cert != NULL) X509_free(a->cert);
|
||||
Free(a);
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGN_ENVELOPE);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
|
||||
M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
|
||||
M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
|
||||
@ -133,7 +133,7 @@ PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
|
||||
void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
|
||||
sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
|
||||
PKCS7_ENC_CONTENT_free(a->enc_data);
|
||||
|
@ -112,7 +112,7 @@ PKCS7_SIGNED *PKCS7_SIGNED_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGNED);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
|
||||
M_ASN1_New(ret->contents,PKCS7_new);
|
||||
ret->cert=NULL;
|
||||
@ -125,7 +125,7 @@ PKCS7_SIGNED *PKCS7_SIGNED_new(void)
|
||||
void PKCS7_SIGNED_free(PKCS7_SIGNED *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
|
||||
PKCS7_free(a->contents);
|
||||
sk_X509_pop_free(a->cert,X509_free);
|
||||
|
@ -119,12 +119,12 @@ PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,PKCS7_SIGNER_INFO);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->issuer_and_serial,PKCS7_ISSUER_AND_SERIAL_new);
|
||||
M_ASN1_New(ret->digest_alg,X509_ALGOR_new);
|
||||
ret->auth_attr=NULL;
|
||||
M_ASN1_New(ret->digest_enc_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->enc_digest,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->enc_digest,M_ASN1_OCTET_STRING_new);
|
||||
ret->unauth_attr=NULL;
|
||||
ret->pkey=NULL;
|
||||
return(ret);
|
||||
@ -134,12 +134,12 @@ PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void)
|
||||
void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS7_ISSUER_AND_SERIAL_free(a->issuer_and_serial);
|
||||
X509_ALGOR_free(a->digest_alg);
|
||||
sk_X509_ATTRIBUTE_pop_free(a->auth_attr,X509_ATTRIBUTE_free);
|
||||
X509_ALGOR_free(a->digest_enc_alg);
|
||||
ASN1_OCTET_STRING_free(a->enc_digest);
|
||||
M_ASN1_OCTET_STRING_free(a->enc_digest);
|
||||
sk_X509_ATTRIBUTE_pop_free(a->unauth_attr,X509_ATTRIBUTE_free);
|
||||
if (a->pkey != NULL)
|
||||
EVP_PKEY_free(a->pkey);
|
||||
|
@ -88,7 +88,7 @@ PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void)
|
||||
PKCS8_PRIV_KEY_INFO *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, PKCS8_PRIV_KEY_INFO);
|
||||
M_ASN1_New (ret->version, ASN1_INTEGER_new);
|
||||
M_ASN1_New (ret->version, M_ASN1_INTEGER_new);
|
||||
M_ASN1_New (ret->pkeyalg, X509_ALGOR_new);
|
||||
M_ASN1_New (ret->pkey, ASN1_TYPE_new);
|
||||
ret->attributes = NULL;
|
||||
@ -117,7 +117,7 @@ PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a,
|
||||
void PKCS8_PRIV_KEY_INFO_free (PKCS8_PRIV_KEY_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free (a->version);
|
||||
M_ASN1_INTEGER_free (a->version);
|
||||
X509_ALGOR_free(a->pkeyalg);
|
||||
/* Clear sensitive data */
|
||||
if (a->pkey->value.octet_string)
|
||||
|
@ -160,7 +160,7 @@ static void ext_print(BIO *out, X509_EXTENSION *ex)
|
||||
BIO_printf(out, ": %s\n", j ? "critical":"","");
|
||||
if(!X509V3_EXT_print(out, ex, 0, 16)) {
|
||||
BIO_printf(out, "%16s", "");
|
||||
ASN1_OCTET_STRING_print(out,ex->value);
|
||||
M_ASN1_OCTET_STRING_print(out,ex->value);
|
||||
}
|
||||
BIO_write(out,"\n",1);
|
||||
}
|
||||
|
@ -221,7 +221,7 @@ get_next:
|
||||
goto err;
|
||||
if(!X509V3_EXT_print(bp, ex, 0, 16)) {
|
||||
BIO_printf(bp, "%16s", "");
|
||||
ASN1_OCTET_STRING_print(bp,ex->value);
|
||||
M_ASN1_OCTET_STRING_print(bp,ex->value);
|
||||
}
|
||||
if (BIO_write(bp,"\n",1) <= 0) goto err;
|
||||
}
|
||||
|
@ -199,7 +199,7 @@ int X509_print(BIO *bp, X509 *x)
|
||||
if(!X509V3_EXT_print(bp, ex, 0, 16))
|
||||
{
|
||||
BIO_printf(bp, "%16s", "");
|
||||
ASN1_OCTET_STRING_print(bp,ex->value);
|
||||
M_ASN1_OCTET_STRING_print(bp,ex->value);
|
||||
}
|
||||
if (BIO_write(bp,"\n",1) <= 0) goto err;
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ X509_CINF *d2i_X509_CINF(X509_CINF **a, unsigned char **pp, long length)
|
||||
{
|
||||
if (ret->version != NULL)
|
||||
{
|
||||
ASN1_INTEGER_free(ret->version);
|
||||
M_ASN1_INTEGER_free(ret->version);
|
||||
ret->version=NULL;
|
||||
}
|
||||
}
|
||||
@ -129,12 +129,12 @@ X509_CINF *d2i_X509_CINF(X509_CINF **a, unsigned char **pp, long length)
|
||||
{
|
||||
if (ret->issuerUID != NULL)
|
||||
{
|
||||
ASN1_BIT_STRING_free(ret->issuerUID);
|
||||
M_ASN1_BIT_STRING_free(ret->issuerUID);
|
||||
ret->issuerUID=NULL;
|
||||
}
|
||||
if (ret->subjectUID != NULL)
|
||||
{
|
||||
ASN1_BIT_STRING_free(ret->subjectUID);
|
||||
M_ASN1_BIT_STRING_free(ret->subjectUID);
|
||||
ret->subjectUID=NULL;
|
||||
}
|
||||
M_ASN1_D2I_get_IMP_opt(ret->issuerUID,d2i_ASN1_BIT_STRING, 1,
|
||||
@ -170,7 +170,7 @@ X509_CINF *X509_CINF_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_CINF);
|
||||
ret->version=NULL;
|
||||
M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->serialNumber,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->signature,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->issuer,X509_NAME_new);
|
||||
M_ASN1_New(ret->validity,X509_VAL_new);
|
||||
@ -186,15 +186,15 @@ X509_CINF *X509_CINF_new(void)
|
||||
void X509_CINF_free(X509_CINF *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
ASN1_INTEGER_free(a->serialNumber);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->serialNumber);
|
||||
X509_ALGOR_free(a->signature);
|
||||
X509_NAME_free(a->issuer);
|
||||
X509_VAL_free(a->validity);
|
||||
X509_NAME_free(a->subject);
|
||||
X509_PUBKEY_free(a->key);
|
||||
ASN1_BIT_STRING_free(a->issuerUID);
|
||||
ASN1_BIT_STRING_free(a->subjectUID);
|
||||
M_ASN1_BIT_STRING_free(a->issuerUID);
|
||||
M_ASN1_BIT_STRING_free(a->subjectUID);
|
||||
sk_X509_EXTENSION_pop_free(a->extensions,X509_EXTENSION_free);
|
||||
Free(a);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, unsigned char **pp,
|
||||
|
||||
if ((ver == 0) && (ret->version != NULL))
|
||||
{
|
||||
ASN1_INTEGER_free(ret->version);
|
||||
M_ASN1_INTEGER_free(ret->version);
|
||||
ret->version=NULL;
|
||||
}
|
||||
M_ASN1_D2I_get(ret->sig_alg,d2i_X509_ALGOR);
|
||||
@ -242,8 +242,8 @@ X509_REVOKED *X509_REVOKED_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_REVOKED);
|
||||
M_ASN1_New(ret->serialNumber,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->revocationDate,ASN1_UTCTIME_new);
|
||||
M_ASN1_New(ret->serialNumber,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->revocationDate,M_ASN1_UTCTIME_new);
|
||||
ret->extensions=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_REVOKED_NEW);
|
||||
@ -258,7 +258,7 @@ X509_CRL_INFO *X509_CRL_INFO_new(void)
|
||||
ret->version=NULL;
|
||||
M_ASN1_New(ret->sig_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->issuer,X509_NAME_new);
|
||||
M_ASN1_New(ret->lastUpdate,ASN1_UTCTIME_new);
|
||||
M_ASN1_New(ret->lastUpdate,M_ASN1_UTCTIME_new);
|
||||
ret->nextUpdate=NULL;
|
||||
M_ASN1_New(ret->revoked,sk_X509_REVOKED_new_null);
|
||||
M_ASN1_New(ret->extensions,sk_X509_EXTENSION_new_null);
|
||||
@ -276,7 +276,7 @@ X509_CRL *X509_CRL_new(void)
|
||||
ret->references=1;
|
||||
M_ASN1_New(ret->crl,X509_CRL_INFO_new);
|
||||
M_ASN1_New(ret->sig_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->signature,ASN1_BIT_STRING_new);
|
||||
M_ASN1_New(ret->signature,M_ASN1_BIT_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_CRL_NEW);
|
||||
}
|
||||
@ -284,8 +284,8 @@ X509_CRL *X509_CRL_new(void)
|
||||
void X509_REVOKED_free(X509_REVOKED *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->serialNumber);
|
||||
ASN1_UTCTIME_free(a->revocationDate);
|
||||
M_ASN1_INTEGER_free(a->serialNumber);
|
||||
M_ASN1_UTCTIME_free(a->revocationDate);
|
||||
sk_X509_EXTENSION_pop_free(a->extensions,X509_EXTENSION_free);
|
||||
Free(a);
|
||||
}
|
||||
@ -293,12 +293,12 @@ void X509_REVOKED_free(X509_REVOKED *a)
|
||||
void X509_CRL_INFO_free(X509_CRL_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
X509_ALGOR_free(a->sig_alg);
|
||||
X509_NAME_free(a->issuer);
|
||||
ASN1_UTCTIME_free(a->lastUpdate);
|
||||
M_ASN1_UTCTIME_free(a->lastUpdate);
|
||||
if (a->nextUpdate)
|
||||
ASN1_UTCTIME_free(a->nextUpdate);
|
||||
M_ASN1_UTCTIME_free(a->nextUpdate);
|
||||
sk_X509_REVOKED_pop_free(a->revoked,X509_REVOKED_free);
|
||||
sk_X509_EXTENSION_pop_free(a->extensions,X509_EXTENSION_free);
|
||||
Free(a);
|
||||
@ -325,7 +325,7 @@ void X509_CRL_free(X509_CRL *a)
|
||||
|
||||
X509_CRL_INFO_free(a->crl);
|
||||
X509_ALGOR_free(a->sig_alg);
|
||||
ASN1_BIT_STRING_free(a->signature);
|
||||
M_ASN1_BIT_STRING_free(a->signature);
|
||||
Free(a);
|
||||
}
|
||||
|
||||
|
@ -122,7 +122,7 @@ X509_EXTENSION *X509_EXTENSION_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_EXTENSION);
|
||||
ret->object=OBJ_nid2obj(NID_undef);
|
||||
M_ASN1_New(ret->value,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->value,M_ASN1_OCTET_STRING_new);
|
||||
ret->critical=0;
|
||||
ret->netscape_hack=0;
|
||||
return(ret);
|
||||
@ -133,7 +133,7 @@ void X509_EXTENSION_free(X509_EXTENSION *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OBJECT_free(a->object);
|
||||
ASN1_OCTET_STRING_free(a->value);
|
||||
M_ASN1_OCTET_STRING_free(a->value);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -253,7 +253,7 @@ void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OBJECT_free(a->object);
|
||||
ASN1_BIT_STRING_free(a->value);
|
||||
M_ASN1_BIT_STRING_free(a->value);
|
||||
Free(a);
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,7 @@ X509_PKEY *X509_PKEY_new(void)
|
||||
M_ASN1_New_Malloc(ret,X509_PKEY);
|
||||
ret->version=0;
|
||||
M_ASN1_New(ret->enc_algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->enc_pkey,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->enc_pkey,M_ASN1_OCTET_STRING_new);
|
||||
ret->dec_pkey=NULL;
|
||||
ret->key_length=0;
|
||||
ret->key_data=NULL;
|
||||
@ -144,7 +144,7 @@ void X509_PKEY_free(X509_PKEY *x)
|
||||
#endif
|
||||
|
||||
if (x->enc_algor != NULL) X509_ALGOR_free(x->enc_algor);
|
||||
if (x->enc_pkey != NULL) ASN1_OCTET_STRING_free(x->enc_pkey);
|
||||
if (x->enc_pkey != NULL) M_ASN1_OCTET_STRING_free(x->enc_pkey);
|
||||
if (x->dec_pkey != NULL)EVP_PKEY_free(x->dec_pkey);
|
||||
if ((x->key_data != NULL) && (x->key_free)) Free((char *)x->key_data);
|
||||
Free((char *)(char *)x);
|
||||
|
@ -100,7 +100,7 @@ X509_PUBKEY *X509_PUBKEY_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_PUBKEY);
|
||||
M_ASN1_New(ret->algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->public_key,ASN1_BIT_STRING_new);
|
||||
M_ASN1_New(ret->public_key,M_ASN1_BIT_STRING_new);
|
||||
ret->pkey=NULL;
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_PUBKEY_NEW);
|
||||
@ -110,7 +110,7 @@ void X509_PUBKEY_free(X509_PUBKEY *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_ALGOR_free(a->algor);
|
||||
ASN1_BIT_STRING_free(a->public_key);
|
||||
M_ASN1_BIT_STRING_free(a->public_key);
|
||||
if (a->pkey != NULL) EVP_PKEY_free(a->pkey);
|
||||
Free((char *)a);
|
||||
}
|
||||
@ -176,7 +176,7 @@ int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey)
|
||||
if ((s=(unsigned char *)Malloc(i+1)) == NULL) goto err;
|
||||
p=s;
|
||||
i2d_PublicKey(pkey,&p);
|
||||
if (!ASN1_BIT_STRING_set(pk->public_key,s,i)) goto err;
|
||||
if (!M_ASN1_BIT_STRING_set(pk->public_key,s,i)) goto err;
|
||||
/* Set number of unused bits to zero */
|
||||
pk->public_key->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07);
|
||||
pk->public_key->flags|=ASN1_STRING_FLAG_BITS_LEFT;
|
||||
|
@ -147,7 +147,7 @@ X509_REQ_INFO *X509_REQ_INFO_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_REQ_INFO);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->subject,X509_NAME_new);
|
||||
M_ASN1_New(ret->pubkey,X509_PUBKEY_new);
|
||||
M_ASN1_New(ret->attributes,sk_X509_ATTRIBUTE_new_null);
|
||||
@ -159,7 +159,7 @@ X509_REQ_INFO *X509_REQ_INFO_new(void)
|
||||
void X509_REQ_INFO_free(X509_REQ_INFO *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
X509_NAME_free(a->subject);
|
||||
X509_PUBKEY_free(a->pubkey);
|
||||
sk_X509_ATTRIBUTE_pop_free(a->attributes,X509_ATTRIBUTE_free);
|
||||
@ -203,7 +203,7 @@ X509_REQ *X509_REQ_new(void)
|
||||
ret->references=1;
|
||||
M_ASN1_New(ret->req_info,X509_REQ_INFO_new);
|
||||
M_ASN1_New(ret->sig_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->signature,ASN1_BIT_STRING_new);
|
||||
M_ASN1_New(ret->signature,M_ASN1_BIT_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_REQ_NEW);
|
||||
}
|
||||
@ -229,7 +229,7 @@ void X509_REQ_free(X509_REQ *a)
|
||||
|
||||
X509_REQ_INFO_free(a->req_info);
|
||||
X509_ALGOR_free(a->sig_alg);
|
||||
ASN1_BIT_STRING_free(a->signature);
|
||||
M_ASN1_BIT_STRING_free(a->signature);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ X509_SIG *X509_SIG_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_SIG);
|
||||
M_ASN1_New(ret->algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->digest,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->digest,M_ASN1_OCTET_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_SIG_NEW);
|
||||
}
|
||||
@ -103,7 +103,7 @@ void X509_SIG_free(X509_SIG *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_ALGOR_free(a->algor);
|
||||
ASN1_OCTET_STRING_free(a->digest);
|
||||
M_ASN1_OCTET_STRING_free(a->digest);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void)
|
||||
|
||||
M_ASN1_New_Malloc(ret,NETSCAPE_SPKAC);
|
||||
M_ASN1_New(ret->pubkey,X509_PUBKEY_new);
|
||||
M_ASN1_New(ret->challenge,ASN1_IA5STRING_new);
|
||||
M_ASN1_New(ret->challenge,M_ASN1_IA5STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_NETSCAPE_SPKAC_NEW);
|
||||
}
|
||||
@ -108,7 +108,7 @@ void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_PUBKEY_free(a->pubkey);
|
||||
ASN1_IA5STRING_free(a->challenge);
|
||||
M_ASN1_IA5STRING_free(a->challenge);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ NETSCAPE_SPKI *NETSCAPE_SPKI_new(void)
|
||||
M_ASN1_New_Malloc(ret,NETSCAPE_SPKI);
|
||||
M_ASN1_New(ret->spkac,NETSCAPE_SPKAC_new);
|
||||
M_ASN1_New(ret->sig_algor,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->signature,ASN1_BIT_STRING_new);
|
||||
M_ASN1_New(ret->signature,M_ASN1_BIT_STRING_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_NETSCAPE_SPKI_NEW);
|
||||
}
|
||||
@ -160,7 +160,7 @@ void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a)
|
||||
if (a == NULL) return;
|
||||
NETSCAPE_SPKAC_free(a->spkac);
|
||||
X509_ALGOR_free(a->sig_algor);
|
||||
ASN1_BIT_STRING_free(a->signature);
|
||||
M_ASN1_BIT_STRING_free(a->signature);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -93,8 +93,8 @@ X509_VAL *X509_VAL_new(void)
|
||||
ASN1_CTX c;
|
||||
|
||||
M_ASN1_New_Malloc(ret,X509_VAL);
|
||||
M_ASN1_New(ret->notBefore,ASN1_TIME_new);
|
||||
M_ASN1_New(ret->notAfter,ASN1_TIME_new);
|
||||
M_ASN1_New(ret->notBefore,M_ASN1_TIME_new);
|
||||
M_ASN1_New(ret->notAfter,M_ASN1_TIME_new);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_VAL_NEW);
|
||||
}
|
||||
@ -102,8 +102,8 @@ X509_VAL *X509_VAL_new(void)
|
||||
void X509_VAL_free(X509_VAL *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_TIME_free(a->notBefore);
|
||||
ASN1_TIME_free(a->notAfter);
|
||||
M_ASN1_TIME_free(a->notBefore);
|
||||
M_ASN1_TIME_free(a->notAfter);
|
||||
Free((char *)a);
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ X509 *X509_new(void)
|
||||
ret->name=NULL;
|
||||
M_ASN1_New(ret->cert_info,X509_CINF_new);
|
||||
M_ASN1_New(ret->sig_alg,X509_ALGOR_new);
|
||||
M_ASN1_New(ret->signature,ASN1_BIT_STRING_new);
|
||||
M_ASN1_New(ret->signature,M_ASN1_BIT_STRING_new);
|
||||
CRYPTO_new_ex_data(x509_meth, (char *)ret, &ret->ex_data);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_X509_NEW);
|
||||
@ -148,7 +148,7 @@ void X509_free(X509 *a)
|
||||
CRYPTO_free_ex_data(x509_meth,(char *)a,&a->ex_data);
|
||||
X509_CINF_free(a->cert_info);
|
||||
X509_ALGOR_free(a->sig_alg);
|
||||
ASN1_BIT_STRING_free(a->signature);
|
||||
M_ASN1_BIT_STRING_free(a->signature);
|
||||
|
||||
if (a->name != NULL) Free(a->name);
|
||||
Free((char *)a);
|
||||
|
@ -83,7 +83,7 @@ DSA_SIG *d2i_DSA_SIG(DSA_SIG **a, unsigned char **pp, long length)
|
||||
M_ASN1_D2I_get(bs,d2i_ASN1_INTEGER);
|
||||
if ((ret->s=BN_bin2bn(bs->data,bs->length,ret->s)) == NULL)
|
||||
goto err_bn;
|
||||
ASN1_BIT_STRING_free(bs);
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
M_ASN1_D2I_Finish_2(a);
|
||||
|
||||
err_bn:
|
||||
@ -91,6 +91,6 @@ err_bn:
|
||||
err:
|
||||
DSAerr(DSA_F_D2I_DSA_SIG,i);
|
||||
if ((ret != NULL) && ((a == NULL) || (*a != ret))) DSA_SIG_free(ret);
|
||||
if (bs != NULL) ASN1_BIT_STRING_free(bs);
|
||||
if (bs != NULL) M_ASN1_BIT_STRING_free(bs);
|
||||
return(NULL);
|
||||
}
|
||||
|
@ -254,11 +254,11 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey)
|
||||
if (!ASN1_pack_string((char *)dpkey, i2d_ASN1_INTEGER,
|
||||
&p8->pkey->value.octet_string)) {
|
||||
EVPerr(EVP_F_EVP_PKEY2PKCS8,ERR_R_MALLOC_FAILURE);
|
||||
ASN1_INTEGER_free (dpkey);
|
||||
M_ASN1_INTEGER_free (dpkey);
|
||||
PKCS8_PRIV_KEY_INFO_free (p8);
|
||||
return NULL;
|
||||
}
|
||||
ASN1_INTEGER_free (dpkey);
|
||||
M_ASN1_INTEGER_free (dpkey);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
@ -133,7 +133,7 @@ PKCS7 *PKCS12_pack_p7data (STACK *sk)
|
||||
return NULL;
|
||||
}
|
||||
p7->type = OBJ_nid2obj(NID_pkcs7_data);
|
||||
if (!(p7->d.data = ASN1_OCTET_STRING_new())) {
|
||||
if (!(p7->d.data = M_ASN1_OCTET_STRING_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
@ -168,7 +168,7 @@ PKCS7 *PKCS12_pack_p7encdata (int pbe_nid, const char *pass, int passlen,
|
||||
}
|
||||
X509_ALGOR_free(p7->d.encrypted->enc_data->algorithm);
|
||||
p7->d.encrypted->enc_data->algorithm = pbe;
|
||||
ASN1_OCTET_STRING_free(p7->d.encrypted->enc_data->enc_data);
|
||||
M_ASN1_OCTET_STRING_free(p7->d.encrypted->enc_data->enc_data);
|
||||
if (!(p7->d.encrypted->enc_data->enc_data =
|
||||
PKCS12_i2d_encrypt (pbe, i2d_PKCS12_SAFEBAG, pass, passlen,
|
||||
(char *)bags, 1))) {
|
||||
@ -200,7 +200,7 @@ X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher,
|
||||
}
|
||||
X509_ALGOR_free(p8->algor);
|
||||
p8->algor = pbe;
|
||||
ASN1_OCTET_STRING_free(p8->digest);
|
||||
M_ASN1_OCTET_STRING_free(p8->digest);
|
||||
if (!(p8->digest =
|
||||
PKCS12_i2d_encrypt (pbe, i2d_PKCS8_PRIV_KEY_INFO, pass, passlen,
|
||||
(char *)p8inf, 0))) {
|
||||
|
@ -73,11 +73,11 @@ int PKCS12_add_localkeyid (PKCS12_SAFEBAG *bag, unsigned char *name,
|
||||
return 0;
|
||||
}
|
||||
keyid->type = V_ASN1_OCTET_STRING;
|
||||
if (!(oct = ASN1_OCTET_STRING_new())) {
|
||||
if (!(oct = M_ASN1_OCTET_STRING_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_ADD_LOCALKEYID, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
if (!ASN1_OCTET_STRING_set(oct, name, namelen)) {
|
||||
if (!M_ASN1_OCTET_STRING_set(oct, name, namelen)) {
|
||||
PKCS12err(PKCS12_F_PKCS12_ADD_LOCALKEYID, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
@ -115,11 +115,11 @@ int PKCS8_add_keyusage (PKCS8_PRIV_KEY_INFO *p8, int usage)
|
||||
return 0;
|
||||
}
|
||||
keyid->type = V_ASN1_BIT_STRING;
|
||||
if (!(bstr = ASN1_BIT_STRING_new())) {
|
||||
if (!(bstr = M_ASN1_BIT_STRING_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS8_ADD_KEYUSAGE, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
if (!ASN1_BIT_STRING_set(bstr, &us_val, 1)) {
|
||||
if (!M_ASN1_BIT_STRING_set(bstr, &us_val, 1)) {
|
||||
PKCS12err(PKCS12_F_PKCS8_ADD_KEYUSAGE, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
@ -176,7 +176,7 @@ int PKCS12_add_friendlyname_uni (PKCS12_SAFEBAG *bag,
|
||||
return 0;
|
||||
}
|
||||
fname->type = V_ASN1_BMPSTRING;
|
||||
if (!(bmp = ASN1_BMPSTRING_new())) {
|
||||
if (!(bmp = M_ASN1_BMPSTRING_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI,
|
||||
ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
|
@ -171,15 +171,15 @@ void PKCS12_BAGS_free (PKCS12_BAGS *a)
|
||||
switch (OBJ_obj2nid(a->type)) {
|
||||
|
||||
case NID_x509Certificate:
|
||||
ASN1_OCTET_STRING_free (a->value.x509cert);
|
||||
M_ASN1_OCTET_STRING_free (a->value.x509cert);
|
||||
break;
|
||||
|
||||
case NID_x509Crl:
|
||||
ASN1_OCTET_STRING_free (a->value.x509crl);
|
||||
M_ASN1_OCTET_STRING_free (a->value.x509crl);
|
||||
break;
|
||||
|
||||
case NID_sdsiCertificate:
|
||||
ASN1_IA5STRING_free (a->value.sdsicert);
|
||||
M_ASN1_IA5STRING_free (a->value.sdsicert);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -155,7 +155,7 @@ ASN1_OCTET_STRING *PKCS12_i2d_encrypt (X509_ALGOR *algor, int (*i2d)(),
|
||||
ASN1_OCTET_STRING *oct;
|
||||
unsigned char *in, *p;
|
||||
int inlen;
|
||||
if (!(oct = ASN1_OCTET_STRING_new ())) {
|
||||
if (!(oct = M_ASN1_OCTET_STRING_new ())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_I2D_ENCRYPT,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -69,11 +69,11 @@ PKCS12 *PKCS12_init (int mode)
|
||||
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
if (!(pkcs12->version = ASN1_INTEGER_new ())) {
|
||||
if (!(pkcs12->version = M_ASN1_INTEGER_new ())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
ASN1_INTEGER_set (pkcs12->version, 3);
|
||||
ASN1_INTEGER_set(pkcs12->version, 3);
|
||||
if (!(pkcs12->authsafes = PKCS7_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
@ -82,7 +82,7 @@ PKCS12 *PKCS12_init (int mode)
|
||||
switch (mode) {
|
||||
case NID_pkcs7_data:
|
||||
if (!(pkcs12->authsafes->d.data =
|
||||
ASN1_OCTET_STRING_new())) {
|
||||
M_ASN1_OCTET_STRING_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_INIT,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -139,16 +139,16 @@ static int parse_pk12 (PKCS12 *p12, const char *pass, int passlen,
|
||||
sk_pop_free (asafes, PKCS7_free);
|
||||
return 0;
|
||||
}
|
||||
if (!parse_bags (bags, pass, passlen, pkey, cert, ca,
|
||||
if (!parse_bags(bags, pass, passlen, pkey, cert, ca,
|
||||
&keyid, &keymatch)) {
|
||||
sk_pop_free (bags, PKCS12_SAFEBAG_free);
|
||||
sk_pop_free (asafes, PKCS7_free);
|
||||
sk_pop_free(bags, PKCS12_SAFEBAG_free);
|
||||
sk_pop_free(asafes, PKCS7_free);
|
||||
return 0;
|
||||
}
|
||||
sk_pop_free (bags, PKCS12_SAFEBAG_free);
|
||||
sk_pop_free(bags, PKCS12_SAFEBAG_free);
|
||||
}
|
||||
sk_pop_free (asafes, PKCS7_free);
|
||||
if (keyid) ASN1_OCTET_STRING_free (keyid);
|
||||
sk_pop_free(asafes, PKCS7_free);
|
||||
if (keyid) M_ASN1_OCTET_STRING_free(keyid);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -158,8 +158,8 @@ static int parse_bags (STACK *bags, const char *pass, int passlen,
|
||||
ASN1_OCTET_STRING **keyid, char *keymatch)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < sk_num (bags); i++) {
|
||||
if (!parse_bag ((PKCS12_SAFEBAG *)sk_value (bags, i),
|
||||
for (i = 0; i < sk_num(bags); i++) {
|
||||
if (!parse_bag((PKCS12_SAFEBAG *)sk_value (bags, i),
|
||||
pass, passlen, pkey, cert, ca, keyid,
|
||||
keymatch)) return 0;
|
||||
}
|
||||
@ -170,7 +170,7 @@ static int parse_bags (STACK *bags, const char *pass, int passlen,
|
||||
#define MATCH_CERT 0x2
|
||||
#define MATCH_ALL 0x3
|
||||
|
||||
static int parse_bag (PKCS12_SAFEBAG *bag, const char *pass, int passlen,
|
||||
static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,
|
||||
EVP_PKEY **pkey, X509 **cert, STACK **ca,
|
||||
ASN1_OCTET_STRING **keyid,
|
||||
char *keymatch)
|
||||
@ -187,9 +187,9 @@ static int parse_bag (PKCS12_SAFEBAG *bag, const char *pass, int passlen,
|
||||
/* Check for any local key id matching (if needed) */
|
||||
if (lkey && ((*keymatch & MATCH_ALL) != MATCH_ALL)) {
|
||||
if (*keyid) {
|
||||
if (ASN1_OCTET_STRING_cmp (*keyid, lkey)) lkey = NULL;
|
||||
if (M_ASN1_OCTET_STRING_cmp(*keyid, lkey)) lkey = NULL;
|
||||
} else {
|
||||
if (!(*keyid = ASN1_OCTET_STRING_dup (lkey))) {
|
||||
if (!(*keyid = M_ASN1_OCTET_STRING_dup(lkey))) {
|
||||
PKCS12err(PKCS12_F_PARSE_BAGS,ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
@ -200,16 +200,16 @@ static int parse_bag (PKCS12_SAFEBAG *bag, const char *pass, int passlen,
|
||||
{
|
||||
case NID_keyBag:
|
||||
if (!lkey || !pkey) return 1;
|
||||
if (!(*pkey = EVP_PKCS82PKEY (bag->value.keybag))) return 0;
|
||||
if (!(*pkey = EVP_PKCS82PKEY(bag->value.keybag))) return 0;
|
||||
*keymatch |= MATCH_KEY;
|
||||
break;
|
||||
|
||||
case NID_pkcs8ShroudedKeyBag:
|
||||
if (!lkey || !pkey) return 1;
|
||||
if (!(p8 = M_PKCS12_decrypt_skey (bag, pass, passlen)))
|
||||
if (!(p8 = M_PKCS12_decrypt_skey(bag, pass, passlen)))
|
||||
return 0;
|
||||
*pkey = EVP_PKCS82PKEY (p8);
|
||||
PKCS8_PRIV_KEY_INFO_free (p8);
|
||||
*pkey = EVP_PKCS82PKEY(p8);
|
||||
PKCS8_PRIV_KEY_INFO_free(p8);
|
||||
if (!(*pkey)) return 0;
|
||||
*keymatch |= MATCH_KEY;
|
||||
break;
|
||||
|
@ -104,7 +104,7 @@ PKCS12 *PKCS12_new(void)
|
||||
void PKCS12_free (PKCS12 *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free (a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
PKCS12_MAC_DATA_free (a->mac);
|
||||
PKCS7_free (a->authsafes);
|
||||
Free ((char *)a);
|
||||
|
@ -82,9 +82,9 @@ PKCS12_MAC_DATA *PKCS12_MAC_DATA_new(void)
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, PKCS12_MAC_DATA);
|
||||
ret->dinfo = X509_SIG_new();
|
||||
ret->salt = ASN1_OCTET_STRING_new();
|
||||
ret->salt = M_ASN1_OCTET_STRING_new();
|
||||
ret->iter = NULL;
|
||||
return (ret);
|
||||
return(ret);
|
||||
M_ASN1_New_Error(ASN1_F_PKCS12_MAC_DATA_NEW);
|
||||
}
|
||||
|
||||
@ -94,9 +94,9 @@ PKCS12_MAC_DATA *d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, unsigned char **pp,
|
||||
M_ASN1_D2I_vars(a,PKCS12_MAC_DATA *,PKCS12_MAC_DATA_new);
|
||||
M_ASN1_D2I_Init();
|
||||
M_ASN1_D2I_start_sequence();
|
||||
M_ASN1_D2I_get (ret->dinfo, d2i_X509_SIG);
|
||||
M_ASN1_D2I_get (ret->salt, d2i_ASN1_OCTET_STRING);
|
||||
M_ASN1_D2I_get_opt (ret->iter, d2i_ASN1_INTEGER, V_ASN1_INTEGER);
|
||||
M_ASN1_D2I_get(ret->dinfo, d2i_X509_SIG);
|
||||
M_ASN1_D2I_get(ret->salt, d2i_ASN1_OCTET_STRING);
|
||||
M_ASN1_D2I_get_opt(ret->iter, d2i_ASN1_INTEGER, V_ASN1_INTEGER);
|
||||
M_ASN1_D2I_Finish(a, PKCS12_MAC_DATA_free, ASN1_F_D2I_PKCS12_MAC_DATA);
|
||||
}
|
||||
|
||||
@ -104,7 +104,7 @@ void PKCS12_MAC_DATA_free (PKCS12_MAC_DATA *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
X509_SIG_free (a->dinfo);
|
||||
ASN1_OCTET_STRING_free (a->salt);
|
||||
ASN1_INTEGER_free (a->iter);
|
||||
M_ASN1_OCTET_STRING_free(a->salt);
|
||||
M_ASN1_INTEGER_free(a->iter);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
@ -131,7 +131,7 @@ int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen,
|
||||
PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_GENERATION_ERROR);
|
||||
return 0;
|
||||
}
|
||||
if (!(ASN1_OCTET_STRING_set (p12->mac->dinfo->digest, mac, maclen))) {
|
||||
if (!(M_ASN1_OCTET_STRING_set (p12->mac->dinfo->digest, mac, maclen))) {
|
||||
PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_STRING_SET_ERROR);
|
||||
return 0;
|
||||
}
|
||||
@ -142,13 +142,13 @@ int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen,
|
||||
int PKCS12_setup_mac (PKCS12 *p12, int iter, unsigned char *salt, int saltlen,
|
||||
EVP_MD *md_type)
|
||||
{
|
||||
if (!(p12->mac = PKCS12_MAC_DATA_new ())) return PKCS12_ERROR;
|
||||
if (!(p12->mac = PKCS12_MAC_DATA_new())) return PKCS12_ERROR;
|
||||
if (iter > 1) {
|
||||
if(!(p12->mac->iter = ASN1_INTEGER_new())) {
|
||||
if(!(p12->mac->iter = M_ASN1_INTEGER_new())) {
|
||||
PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);
|
||||
return 0;
|
||||
}
|
||||
ASN1_INTEGER_set (p12->mac->iter, iter);
|
||||
ASN1_INTEGER_set(p12->mac->iter, iter);
|
||||
}
|
||||
if (!saltlen) saltlen = PKCS12_SALT_LEN;
|
||||
p12->mac->salt->length = saltlen;
|
||||
|
@ -204,7 +204,7 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
|
||||
Free(tmp);
|
||||
goto err;
|
||||
}
|
||||
ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj);
|
||||
M_ASN1_OCTET_STRING_set(ri->enc_key,tmp,jj);
|
||||
}
|
||||
Free(tmp);
|
||||
memset(key, 0, keylen);
|
||||
@ -364,7 +364,7 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
|
||||
ri=sk_PKCS7_RECIP_INFO_value(rsk,i);
|
||||
if(!X509_NAME_cmp(ri->issuer_and_serial->issuer,
|
||||
pcert->cert_info->issuer) &&
|
||||
!ASN1_INTEGER_cmp(pcert->cert_info->serialNumber,
|
||||
!M_ASN1_INTEGER_cmp(pcert->cert_info->serialNumber,
|
||||
ri->issuer_and_serial->serial)) break;
|
||||
ri=NULL;
|
||||
}
|
||||
@ -383,8 +383,8 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
|
||||
}
|
||||
|
||||
jj=EVP_PKEY_decrypt((unsigned char *)tmp,
|
||||
ASN1_STRING_data(ri->enc_key),
|
||||
ASN1_STRING_length(ri->enc_key),
|
||||
M_ASN1_STRING_data(ri->enc_key),
|
||||
M_ASN1_STRING_length(ri->enc_key),
|
||||
pkey);
|
||||
if (jj <= 0)
|
||||
{
|
||||
@ -480,12 +480,12 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
/* XXXXXXXXXXXXXXXX */
|
||||
si_sk=p7->d.signed_and_enveloped->signer_info;
|
||||
os=ASN1_OCTET_STRING_new();
|
||||
os=M_ASN1_OCTET_STRING_new();
|
||||
p7->d.signed_and_enveloped->enc_data->enc_data=os;
|
||||
break;
|
||||
case NID_pkcs7_enveloped:
|
||||
/* XXXXXXXXXXXXXXXX */
|
||||
os=ASN1_OCTET_STRING_new();
|
||||
os=M_ASN1_OCTET_STRING_new();
|
||||
p7->d.enveloped->enc_data->enc_data=os;
|
||||
break;
|
||||
case NID_pkcs7_signed:
|
||||
@ -493,7 +493,7 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
os=p7->d.sign->contents->d.data;
|
||||
/* If detached data then the content is excluded */
|
||||
if(p7->detached) {
|
||||
ASN1_OCTET_STRING_free(os);
|
||||
M_ASN1_OCTET_STRING_free(os);
|
||||
p7->d.sign->contents->d.data = NULL;
|
||||
}
|
||||
break;
|
||||
@ -564,8 +564,8 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
/* Add digest */
|
||||
md_tmp=EVP_MD_CTX_type(&ctx_tmp);
|
||||
EVP_DigestFinal(&ctx_tmp,md_data,&md_len);
|
||||
digest=ASN1_OCTET_STRING_new();
|
||||
ASN1_OCTET_STRING_set(digest,md_data,md_len);
|
||||
digest=M_ASN1_OCTET_STRING_new();
|
||||
M_ASN1_OCTET_STRING_set(digest,md_data,md_len);
|
||||
PKCS7_add_signed_attribute(si,
|
||||
NID_pkcs9_messageDigest,
|
||||
V_ASN1_OCTET_STRING,digest);
|
||||
@ -620,7 +620,7 @@ int PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
|
||||
os->data = (unsigned char *)buf_mem->data;
|
||||
os->length = buf_mem->length;
|
||||
#if 0
|
||||
ASN1_OCTET_STRING_set(os,
|
||||
M_ASN1_OCTET_STRING_set(os,
|
||||
(unsigned char *)buf_mem->data,buf_mem->length);
|
||||
#endif
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ int PKCS7_set_type(PKCS7 *p7, int type)
|
||||
break;
|
||||
case NID_pkcs7_data:
|
||||
p7->type=obj;
|
||||
if ((p7->d.data=ASN1_OCTET_STRING_new()) == NULL)
|
||||
if ((p7->d.data=M_ASN1_OCTET_STRING_new()) == NULL)
|
||||
goto err;
|
||||
break;
|
||||
case NID_pkcs7_signedAndEnveloped:
|
||||
@ -299,9 +299,9 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
|
||||
|
||||
/* because ASN1_INTEGER_set is used to set a 'long' we will do
|
||||
* things the ugly way. */
|
||||
ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
|
||||
M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
|
||||
p7i->issuer_and_serial->serial=
|
||||
ASN1_INTEGER_dup(X509_get_serialNumber(x509));
|
||||
M_ASN1_INTEGER_dup(X509_get_serialNumber(x509));
|
||||
|
||||
/* lets keep the pkey around for a while */
|
||||
CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY);
|
||||
@ -400,9 +400,9 @@ int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509)
|
||||
X509_NAME_set(&p7i->issuer_and_serial->issuer,
|
||||
X509_get_issuer_name(x509));
|
||||
|
||||
ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
|
||||
M_ASN1_INTEGER_free(p7i->issuer_and_serial->serial);
|
||||
p7i->issuer_and_serial->serial=
|
||||
ASN1_INTEGER_dup(X509_get_serialNumber(x509));
|
||||
M_ASN1_INTEGER_dup(X509_get_serialNumber(x509));
|
||||
|
||||
X509_ALGOR_free(p7i->key_enc_algor);
|
||||
p7i->key_enc_algor=(X509_ALGOR *)ASN1_dup(i2d_X509_ALGOR,
|
||||
|
@ -136,7 +136,7 @@ int RSA_verify_ASN1_OCTET_STRING(int dtype, unsigned char *m,
|
||||
else
|
||||
ret=1;
|
||||
err:
|
||||
if (sig != NULL) ASN1_OCTET_STRING_free(sig);
|
||||
if (sig != NULL) M_ASN1_OCTET_STRING_free(sig);
|
||||
memset(s,0,(unsigned int)siglen);
|
||||
Free(s);
|
||||
return(ret);
|
||||
|
@ -69,7 +69,7 @@ int X509_issuer_and_serial_cmp(X509 *a, X509 *b)
|
||||
|
||||
ai=a->cert_info;
|
||||
bi=b->cert_info;
|
||||
i=ASN1_INTEGER_cmp(ai->serialNumber,bi->serialNumber);
|
||||
i=M_ASN1_INTEGER_cmp(ai->serialNumber,bi->serialNumber);
|
||||
if (i) return(i);
|
||||
return(X509_NAME_cmp(ai->issuer,bi->issuer));
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
|
||||
|
||||
if (sk_X509_ATTRIBUTE_num(r->req_info->attributes) != 0)
|
||||
{
|
||||
if ((xi->version=ASN1_INTEGER_new()) == NULL) goto err;
|
||||
if ((xi->version=M_ASN1_INTEGER_new()) == NULL) goto err;
|
||||
if (!ASN1_INTEGER_set(xi->version,2)) goto err;
|
||||
/* xi->extensions=ri->attributes; <- bad, should not ever be done
|
||||
ri->attributes=NULL; */
|
||||
|
@ -68,7 +68,7 @@ int X509_set_version(X509 *x, long version)
|
||||
if (x == NULL) return(0);
|
||||
if (x->cert_info->version == NULL)
|
||||
{
|
||||
if ((x->cert_info->version=ASN1_INTEGER_new()) == NULL)
|
||||
if ((x->cert_info->version=M_ASN1_INTEGER_new()) == NULL)
|
||||
return(0);
|
||||
}
|
||||
return(ASN1_INTEGER_set(x->cert_info->version,version));
|
||||
@ -82,10 +82,10 @@ int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial)
|
||||
in=x->cert_info->serialNumber;
|
||||
if (in != serial)
|
||||
{
|
||||
in=ASN1_INTEGER_dup(serial);
|
||||
in=M_ASN1_INTEGER_dup(serial);
|
||||
if (in != NULL)
|
||||
{
|
||||
ASN1_INTEGER_free(x->cert_info->serialNumber);
|
||||
M_ASN1_INTEGER_free(x->cert_info->serialNumber);
|
||||
x->cert_info->serialNumber=in;
|
||||
}
|
||||
}
|
||||
@ -112,10 +112,10 @@ int X509_set_notBefore(X509 *x, ASN1_UTCTIME *tm)
|
||||
in=x->cert_info->validity->notBefore;
|
||||
if (in != tm)
|
||||
{
|
||||
in=ASN1_UTCTIME_dup(tm);
|
||||
in=M_ASN1_UTCTIME_dup(tm);
|
||||
if (in != NULL)
|
||||
{
|
||||
ASN1_UTCTIME_free(x->cert_info->validity->notBefore);
|
||||
M_ASN1_UTCTIME_free(x->cert_info->validity->notBefore);
|
||||
x->cert_info->validity->notBefore=in;
|
||||
}
|
||||
}
|
||||
@ -130,10 +130,10 @@ int X509_set_notAfter(X509 *x, ASN1_UTCTIME *tm)
|
||||
in=x->cert_info->validity->notAfter;
|
||||
if (in != tm)
|
||||
{
|
||||
in=ASN1_UTCTIME_dup(tm);
|
||||
in=M_ASN1_UTCTIME_dup(tm);
|
||||
if (in != NULL)
|
||||
{
|
||||
ASN1_UTCTIME_free(x->cert_info->validity->notAfter);
|
||||
M_ASN1_UTCTIME_free(x->cert_info->validity->notAfter);
|
||||
x->cert_info->validity->notAfter=in;
|
||||
}
|
||||
}
|
||||
|
@ -242,7 +242,7 @@ int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data)
|
||||
int i;
|
||||
|
||||
if (ex == NULL) return(0);
|
||||
i=ASN1_OCTET_STRING_set(ex->value,data->data,data->length);
|
||||
i=M_ASN1_OCTET_STRING_set(ex->value,data->data,data->length);
|
||||
if (!i) return(0);
|
||||
return(1);
|
||||
}
|
||||
|
@ -358,6 +358,24 @@ v3_prn.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
v3_prn.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
v3_prn.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
v3_prn.o: ../../include/openssl/x509v3.h ../cryptlib.h
|
||||
v3_purp.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
v3_purp.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
v3_purp.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
v3_purp.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
v3_purp.o: ../../include/openssl/des.h ../../include/openssl/dh.h
|
||||
v3_purp.o: ../../include/openssl/dsa.h ../../include/openssl/e_os.h
|
||||
v3_purp.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
v3_purp.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
|
||||
v3_purp.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
v3_purp.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
v3_purp.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
v3_purp.o: ../../include/openssl/opensslv.h ../../include/openssl/pkcs7.h
|
||||
v3_purp.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
v3_purp.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
v3_purp.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
v3_purp.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
v3_purp.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
v3_purp.o: ../../include/openssl/x509v3.h ../cryptlib.h
|
||||
v3_skey.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
v3_skey.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
v3_skey.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
|
@ -1,4 +0,0 @@
|
||||
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
||||
|
||||
This is ***VERY*** new experimental code and is likely to change
|
||||
considerably or vanish altogether.
|
@ -129,9 +129,9 @@ AUTHORITY_KEYID *d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, unsigned char **pp,
|
||||
void AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_OCTET_STRING_free(a->keyid);
|
||||
M_ASN1_OCTET_STRING_free(a->keyid);
|
||||
sk_GENERAL_NAME_pop_free(a->issuer, GENERAL_NAME_free);
|
||||
ASN1_INTEGER_free (a->serial);
|
||||
M_ASN1_INTEGER_free (a->serial);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ if(keyid) {
|
||||
|
||||
if((issuer && !ikeyid) || (issuer == 2)) {
|
||||
isname = X509_NAME_dup(X509_get_issuer_name(cert));
|
||||
serial = ASN1_INTEGER_dup(X509_get_serialNumber(cert));
|
||||
serial = M_ASN1_INTEGER_dup(X509_get_serialNumber(cert));
|
||||
if(!isname || !serial) {
|
||||
X509V3err(X509V3_F_V2I_AUTHORITY_KEYID,X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS);
|
||||
goto err;
|
||||
@ -241,8 +241,8 @@ return akeyid;
|
||||
|
||||
err:
|
||||
X509_NAME_free(isname);
|
||||
ASN1_INTEGER_free(serial);
|
||||
ASN1_OCTET_STRING_free(ikeyid);
|
||||
M_ASN1_INTEGER_free(serial);
|
||||
M_ASN1_OCTET_STRING_free(ikeyid);
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
@ -273,7 +273,7 @@ static int copy_email(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens)
|
||||
while((i = X509_NAME_get_index_by_NID(nm,
|
||||
NID_pkcs9_emailAddress, i)) > 0) {
|
||||
ne = X509_NAME_get_entry(nm, i);
|
||||
email = ASN1_IA5STRING_dup(X509_NAME_ENTRY_get_data(ne));
|
||||
email = M_ASN1_IA5STRING_dup(X509_NAME_ENTRY_get_data(ne));
|
||||
if(!email || !(gen = GENERAL_NAME_new())) {
|
||||
X509V3err(X509V3_F_COPY_EMAIL,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
@ -293,7 +293,7 @@ static int copy_email(X509V3_CTX *ctx, STACK_OF(GENERAL_NAME) *gens)
|
||||
|
||||
err:
|
||||
GENERAL_NAME_free(gen);
|
||||
ASN1_IA5STRING_free(email);
|
||||
M_ASN1_IA5STRING_free(email);
|
||||
return 0;
|
||||
|
||||
}
|
||||
@ -371,7 +371,7 @@ if(!name_cmp(name, "email")) {
|
||||
goto err;
|
||||
}
|
||||
ip[0] = i1; ip[1] = i2 ; ip[2] = i3 ; ip[3] = i4;
|
||||
if(!(gen->d.ip = ASN1_OCTET_STRING_new()) ||
|
||||
if(!(gen->d.ip = M_ASN1_OCTET_STRING_new()) ||
|
||||
!ASN1_STRING_set(gen->d.ip, ip, 4)) {
|
||||
X509V3err(X509V3_F_V2I_GENERAL_NAME,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
@ -384,7 +384,7 @@ if(!name_cmp(name, "email")) {
|
||||
}
|
||||
|
||||
if(is_string) {
|
||||
if(!(gen->d.ia5 = ASN1_IA5STRING_new()) ||
|
||||
if(!(gen->d.ia5 = M_ASN1_IA5STRING_new()) ||
|
||||
!ASN1_STRING_set(gen->d.ia5, (unsigned char*)value,
|
||||
strlen(value))) {
|
||||
X509V3err(X509V3_F_V2I_GENERAL_NAME,ERR_R_MALLOC_FAILURE);
|
||||
|
@ -122,7 +122,7 @@ BASIC_CONSTRAINTS *d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a,
|
||||
void BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free (a->pathlen);
|
||||
M_ASN1_INTEGER_free (a->pathlen);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,6 @@
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
static ASN1_BIT_STRING *asn1_bit_string_new(void);
|
||||
static ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
|
||||
X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
|
||||
static STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
|
||||
@ -97,11 +96,6 @@ static BIT_STRING_BITNAME key_usage_type_table[] = {
|
||||
X509V3_EXT_METHOD v3_nscert = EXT_BITSTRING(NID_netscape_cert_type, ns_cert_type_table);
|
||||
X509V3_EXT_METHOD v3_key_usage = EXT_BITSTRING(NID_key_usage, key_usage_type_table);
|
||||
|
||||
static ASN1_BIT_STRING *asn1_bit_string_new(void)
|
||||
{
|
||||
return ASN1_BIT_STRING_new();
|
||||
}
|
||||
|
||||
static STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
|
||||
ASN1_BIT_STRING *bits, STACK_OF(CONF_VALUE) *ret)
|
||||
{
|
||||
@ -120,7 +114,7 @@ static ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
|
||||
ASN1_BIT_STRING *bs;
|
||||
int i;
|
||||
BIT_STRING_BITNAME *bnam;
|
||||
if(!(bs = ASN1_BIT_STRING_new())) {
|
||||
if(!(bs = M_ASN1_BIT_STRING_new())) {
|
||||
X509V3err(X509V3_F_V2I_ASN1_BIT_STRING,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
@ -137,7 +131,7 @@ static ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
|
||||
X509V3err(X509V3_F_V2I_ASN1_BIT_STRING,
|
||||
X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT);
|
||||
X509V3_conf_err(val);
|
||||
ASN1_BIT_STRING_free(bs);
|
||||
M_ASN1_BIT_STRING_free(bs);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
@ -170,13 +170,13 @@ static X509_EXTENSION *do_ext_i2d(X509V3_EXT_METHOD *method, int ext_nid,
|
||||
if(!(ext_der = Malloc(ext_len))) goto merr;
|
||||
p = ext_der;
|
||||
method->i2d(ext_struc, &p);
|
||||
if(!(ext_oct = ASN1_OCTET_STRING_new())) goto merr;
|
||||
if(!(ext_oct = M_ASN1_OCTET_STRING_new())) goto merr;
|
||||
ext_oct->data = ext_der;
|
||||
ext_oct->length = ext_len;
|
||||
|
||||
ext = X509_EXTENSION_create_by_NID(NULL, ext_nid, crit, ext_oct);
|
||||
if(!ext) goto merr;
|
||||
ASN1_OCTET_STRING_free(ext_oct);
|
||||
M_ASN1_OCTET_STRING_free(ext_oct);
|
||||
|
||||
return ext;
|
||||
|
||||
@ -241,7 +241,7 @@ if(!(ext_der = string_to_hex(value, &ext_len))) {
|
||||
goto err;
|
||||
}
|
||||
|
||||
if(!(oct = ASN1_OCTET_STRING_new())) {
|
||||
if(!(oct = M_ASN1_OCTET_STRING_new())) {
|
||||
X509V3err(X509V3_F_V3_GENERIC_EXTENSION,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
@ -254,7 +254,7 @@ extension = X509_EXTENSION_create_by_OBJ(NULL, obj, crit, oct);
|
||||
|
||||
err:
|
||||
ASN1_OBJECT_free(obj);
|
||||
ASN1_OCTET_STRING_free(oct);
|
||||
M_ASN1_OCTET_STRING_free(oct);
|
||||
if(ext_der) Free(ext_der);
|
||||
return extension;
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ static POLICYINFO *policy_section(X509V3_CTX *ctx,
|
||||
if(!sk_POLICYQUALINFO_push(pol->qualifiers, qual))
|
||||
goto merr;
|
||||
qual->pqualid = OBJ_nid2obj(NID_id_qt_cps);
|
||||
qual->d.cpsuri = ASN1_IA5STRING_new();
|
||||
qual->d.cpsuri = M_ASN1_IA5STRING_new();
|
||||
if(!ASN1_STRING_set(qual->d.cpsuri, cnf->value,
|
||||
strlen(cnf->value))) goto merr;
|
||||
} else if(!name_cmp(cnf->name, "userNotice")) {
|
||||
@ -229,7 +229,7 @@ static POLICYQUALINFO *notice_section(X509V3_CTX *ctx,
|
||||
for(i = 0; i < sk_CONF_VALUE_num(unot); i++) {
|
||||
cnf = sk_CONF_VALUE_value(unot, i);
|
||||
if(!strcmp(cnf->name, "explicitText")) {
|
||||
not->exptext = ASN1_VISIBLESTRING_new();
|
||||
not->exptext = M_ASN1_VISIBLESTRING_new();
|
||||
if(!ASN1_STRING_set(not->exptext, cnf->value,
|
||||
strlen(cnf->value))) goto merr;
|
||||
} else if(!strcmp(cnf->name, "organization")) {
|
||||
@ -238,8 +238,8 @@ static POLICYQUALINFO *notice_section(X509V3_CTX *ctx,
|
||||
if(!(nref = NOTICEREF_new())) goto merr;
|
||||
not->noticeref = nref;
|
||||
} else nref = not->noticeref;
|
||||
if(ia5org) nref->organization = ASN1_IA5STRING_new();
|
||||
else nref->organization = ASN1_VISIBLESTRING_new();
|
||||
if(ia5org) nref->organization = M_ASN1_IA5STRING_new();
|
||||
else nref->organization = M_ASN1_VISIBLESTRING_new();
|
||||
if(!ASN1_STRING_set(nref->organization, cnf->value,
|
||||
strlen(cnf->value))) goto merr;
|
||||
} else if(!strcmp(cnf->name, "noticeNumbers")) {
|
||||
@ -538,7 +538,7 @@ void POLICYQUALINFO_free(POLICYQUALINFO *a)
|
||||
if (a == NULL) return;
|
||||
switch(OBJ_obj2nid(a->pqualid)) {
|
||||
case NID_id_qt_cps:
|
||||
ASN1_IA5STRING_free(a->d.cpsuri);
|
||||
M_ASN1_IA5STRING_free(a->d.cpsuri);
|
||||
break;
|
||||
|
||||
case NID_id_qt_unotice:
|
||||
@ -596,7 +596,7 @@ void USERNOTICE_free(USERNOTICE *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
NOTICEREF_free(a->noticeref);
|
||||
DISPLAYTEXT_free(a->exptext);
|
||||
M_DISPLAYTEXT_free(a->exptext);
|
||||
Free (a);
|
||||
}
|
||||
|
||||
@ -646,7 +646,7 @@ NOTICEREF *d2i_NOTICEREF(NOTICEREF **a, unsigned char **pp,long length)
|
||||
void NOTICEREF_free(NOTICEREF *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
DISPLAYTEXT_free(a->organization);
|
||||
M_DISPLAYTEXT_free(a->organization);
|
||||
sk_pop_free(a->noticenos, ASN1_STRING_free);
|
||||
Free (a);
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ void DIST_POINT_free(DIST_POINT *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
DIST_POINT_NAME_free(a->distpoint);
|
||||
ASN1_BIT_STRING_free(a->reasons);
|
||||
M_ASN1_BIT_STRING_free(a->reasons);
|
||||
sk_GENERAL_NAME_pop_free(a->CRLissuer, GENERAL_NAME_free);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
@ -60,8 +60,6 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
static ASN1_ENUMERATED *asn1_enumerated_new(void);
|
||||
|
||||
static ENUMERATED_NAMES crl_reasons[] = {
|
||||
{0, "Unspecified", "unspecified"},
|
||||
{1, "Key Compromise", "keyCompromise"},
|
||||
@ -76,8 +74,8 @@ static ENUMERATED_NAMES crl_reasons[] = {
|
||||
|
||||
X509V3_EXT_METHOD v3_crl_reason = {
|
||||
NID_crl_reason, 0,
|
||||
(X509V3_EXT_NEW)asn1_enumerated_new,
|
||||
(X509V3_EXT_FREE)ASN1_STRING_free,
|
||||
(X509V3_EXT_NEW)ASN1_ENUMERATED_new,
|
||||
(X509V3_EXT_FREE)ASN1_ENUMERATED_free,
|
||||
(X509V3_EXT_D2I)d2i_ASN1_ENUMERATED,
|
||||
(X509V3_EXT_I2D)i2d_ASN1_ENUMERATED,
|
||||
(X509V3_EXT_I2S)i2s_ASN1_ENUMERATED_TABLE,
|
||||
@ -85,11 +83,6 @@ NID_crl_reason, 0,
|
||||
NULL, NULL, NULL, NULL, crl_reasons};
|
||||
|
||||
|
||||
static ASN1_ENUMERATED *asn1_enumerated_new(void)
|
||||
{
|
||||
return ASN1_ENUMERATED_new();
|
||||
}
|
||||
|
||||
char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method,
|
||||
ASN1_ENUMERATED *e)
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ void GENERAL_NAME_free(GENERAL_NAME *a)
|
||||
case GEN_DNS:
|
||||
case GEN_URI:
|
||||
|
||||
ASN1_IA5STRING_free(a->d.ia5);
|
||||
M_ASN1_IA5STRING_free(a->d.ia5);
|
||||
break;
|
||||
|
||||
case GEN_DIRNAME:
|
||||
@ -194,7 +194,7 @@ void GENERAL_NAME_free(GENERAL_NAME *a)
|
||||
break;
|
||||
|
||||
case GEN_IPADD:
|
||||
ASN1_OCTET_STRING_free(a->d.ip);
|
||||
M_ASN1_OCTET_STRING_free(a->d.ip);
|
||||
break;
|
||||
|
||||
case GEN_RID:
|
||||
|
@ -63,7 +63,6 @@
|
||||
#include <openssl/conf.h>
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
static ASN1_IA5STRING *ia5string_new(void);
|
||||
static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5);
|
||||
static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
|
||||
X509V3_EXT_METHOD v3_ns_ia5_list[] = {
|
||||
@ -78,11 +77,6 @@ EXT_END
|
||||
};
|
||||
|
||||
|
||||
static ASN1_IA5STRING *ia5string_new(void)
|
||||
{
|
||||
return ASN1_IA5STRING_new();
|
||||
}
|
||||
|
||||
static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method,
|
||||
ASN1_IA5STRING *ia5)
|
||||
{
|
||||
@ -102,10 +96,10 @@ static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method,
|
||||
X509V3err(X509V3_F_S2I_ASN1_IA5STRING,X509V3_R_INVALID_NULL_ARGUMENT);
|
||||
return NULL;
|
||||
}
|
||||
if(!(ia5 = ASN1_IA5STRING_new())) goto err;
|
||||
if(!(ia5 = M_ASN1_IA5STRING_new())) goto err;
|
||||
if(!ASN1_STRING_set((ASN1_STRING *)ia5, (unsigned char*)str,
|
||||
strlen(str))) {
|
||||
ASN1_IA5STRING_free(ia5);
|
||||
M_ASN1_IA5STRING_free(ia5);
|
||||
goto err;
|
||||
}
|
||||
return ia5;
|
||||
|
@ -60,20 +60,13 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
static ASN1_INTEGER *asn1_integer_new(void);
|
||||
|
||||
X509V3_EXT_METHOD v3_crl_num = {
|
||||
NID_crl_number, 0,
|
||||
(X509V3_EXT_NEW)asn1_integer_new,
|
||||
(X509V3_EXT_FREE)ASN1_STRING_free,
|
||||
(X509V3_EXT_NEW)ASN1_INTEGER_new,
|
||||
(X509V3_EXT_FREE)ASN1_INTEGER_free,
|
||||
(X509V3_EXT_D2I)d2i_ASN1_INTEGER,
|
||||
(X509V3_EXT_I2D)i2d_ASN1_INTEGER,
|
||||
(X509V3_EXT_I2S)i2s_ASN1_INTEGER,
|
||||
(X509V3_EXT_S2I)NULL,
|
||||
NULL, NULL, NULL, NULL, NULL};
|
||||
|
||||
|
||||
static ASN1_INTEGER *asn1_integer_new(void)
|
||||
{
|
||||
return ASN1_INTEGER_new();
|
||||
}
|
||||
|
@ -119,8 +119,8 @@ PKEY_USAGE_PERIOD *d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a,
|
||||
void PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_GENERALIZEDTIME_free(a->notBefore);
|
||||
ASN1_GENERALIZEDTIME_free(a->notAfter);
|
||||
M_ASN1_GENERALIZEDTIME_free(a->notBefore);
|
||||
M_ASN1_GENERALIZEDTIME_free(a->notAfter);
|
||||
Free ((char *)a);
|
||||
}
|
||||
|
||||
|
@ -61,24 +61,17 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
static ASN1_OCTET_STRING *octet_string_new(void);
|
||||
static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
|
||||
X509V3_EXT_METHOD v3_skey_id = {
|
||||
NID_subject_key_identifier, 0,
|
||||
(X509V3_EXT_NEW)octet_string_new,
|
||||
(X509V3_EXT_FREE)ASN1_STRING_free,
|
||||
(X509V3_EXT_NEW)ASN1_OCTET_STRING_new,
|
||||
(X509V3_EXT_FREE)ASN1_OCTET_STRING_free,
|
||||
(X509V3_EXT_D2I)d2i_ASN1_OCTET_STRING,
|
||||
(X509V3_EXT_I2D)i2d_ASN1_OCTET_STRING,
|
||||
(X509V3_EXT_I2S)i2s_ASN1_OCTET_STRING,
|
||||
(X509V3_EXT_S2I)s2i_skey_id,
|
||||
NULL, NULL, NULL, NULL, NULL};
|
||||
|
||||
|
||||
static ASN1_OCTET_STRING *octet_string_new(void)
|
||||
{
|
||||
return ASN1_OCTET_STRING_new();
|
||||
}
|
||||
|
||||
char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
|
||||
ASN1_OCTET_STRING *oct)
|
||||
{
|
||||
@ -91,13 +84,13 @@ ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
|
||||
ASN1_OCTET_STRING *oct;
|
||||
long length;
|
||||
|
||||
if(!(oct = ASN1_OCTET_STRING_new())) {
|
||||
if(!(oct = M_ASN1_OCTET_STRING_new())) {
|
||||
X509V3err(X509V3_F_S2I_ASN1_OCTET_STRING,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(!(oct->data = string_to_hex(str, &length))) {
|
||||
ASN1_OCTET_STRING_free(oct);
|
||||
M_ASN1_OCTET_STRING_free(oct);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -118,7 +111,7 @@ static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,
|
||||
|
||||
if(strcmp(str, "hash")) return s2i_ASN1_OCTET_STRING(method, ctx, str);
|
||||
|
||||
if(!(oct = ASN1_OCTET_STRING_new())) {
|
||||
if(!(oct = M_ASN1_OCTET_STRING_new())) {
|
||||
X509V3err(X509V3_F_S2I_S2I_SKEY_ID,ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
@ -143,7 +136,7 @@ static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,
|
||||
EVP_DigestUpdate(&md, pk->data, pk->length);
|
||||
EVP_DigestFinal(&md, pkey_dig, &diglen);
|
||||
|
||||
if(!ASN1_OCTET_STRING_set(oct, pkey_dig, diglen)) {
|
||||
if(!M_ASN1_OCTET_STRING_set(oct, pkey_dig, diglen)) {
|
||||
X509V3err(X509V3_F_S2I_S2I_SKEY_ID,ERR_R_MALLOC_FAILURE);
|
||||
goto err;
|
||||
}
|
||||
@ -151,6 +144,6 @@ static ASN1_OCTET_STRING *s2i_skey_id(X509V3_EXT_METHOD *method,
|
||||
return oct;
|
||||
|
||||
err:
|
||||
ASN1_OCTET_STRING_free(oct);
|
||||
M_ASN1_OCTET_STRING_free(oct);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ SXNET *SXNET_new(void)
|
||||
SXNET *ret=NULL;
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, SXNET);
|
||||
M_ASN1_New(ret->version,ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->version,M_ASN1_INTEGER_new);
|
||||
M_ASN1_New(ret->ids,sk_SXNETID_new_null);
|
||||
return (ret);
|
||||
M_ASN1_New_Error(ASN1_F_SXNET_NEW);
|
||||
@ -130,7 +130,7 @@ SXNET *d2i_SXNET(SXNET **a, unsigned char **pp, long length)
|
||||
void SXNET_free(SXNET *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->version);
|
||||
M_ASN1_INTEGER_free(a->version);
|
||||
sk_SXNETID_pop_free(a->ids, SXNETID_free);
|
||||
Free (a);
|
||||
}
|
||||
@ -156,7 +156,7 @@ SXNETID *SXNETID_new(void)
|
||||
ASN1_CTX c;
|
||||
M_ASN1_New_Malloc(ret, SXNETID);
|
||||
ret->zone = NULL;
|
||||
M_ASN1_New(ret->user,ASN1_OCTET_STRING_new);
|
||||
M_ASN1_New(ret->user,M_ASN1_OCTET_STRING_new);
|
||||
return (ret);
|
||||
M_ASN1_New_Error(ASN1_F_SXNETID_NEW);
|
||||
}
|
||||
@ -174,8 +174,8 @@ SXNETID *d2i_SXNETID(SXNETID **a, unsigned char **pp, long length)
|
||||
void SXNETID_free(SXNETID *a)
|
||||
{
|
||||
if (a == NULL) return;
|
||||
ASN1_INTEGER_free(a->zone);
|
||||
ASN1_OCTET_STRING_free(a->user);
|
||||
M_ASN1_INTEGER_free(a->zone);
|
||||
M_ASN1_OCTET_STRING_free(a->user);
|
||||
Free (a);
|
||||
}
|
||||
|
||||
@ -193,7 +193,7 @@ static int sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out,
|
||||
tmp = i2s_ASN1_INTEGER(NULL, id->zone);
|
||||
BIO_printf(out, "\n%*sZone: %s, User: ", indent, "", tmp);
|
||||
Free(tmp);
|
||||
ASN1_OCTET_STRING_print(out, id->user);
|
||||
M_ASN1_OCTET_STRING_print(out, id->user);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@ -244,9 +244,9 @@ int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user,
|
||||
int userlen)
|
||||
{
|
||||
ASN1_INTEGER *izone = NULL;
|
||||
if(!(izone = ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||
if(!(izone = M_ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||
X509V3err(X509V3_F_SXNET_ADD_ID_ULONG,ERR_R_MALLOC_FAILURE);
|
||||
ASN1_INTEGER_free(izone);
|
||||
M_ASN1_INTEGER_free(izone);
|
||||
return 0;
|
||||
}
|
||||
return SXNET_add_id_INTEGER(psx, izone, user, userlen);
|
||||
@ -285,7 +285,7 @@ int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *zone, char *user,
|
||||
if(!(id = SXNETID_new())) goto err;
|
||||
if(userlen == -1) userlen = strlen(user);
|
||||
|
||||
if(!ASN1_OCTET_STRING_set(id->user, user, userlen)) goto err;
|
||||
if(!M_ASN1_OCTET_STRING_set(id->user, user, userlen)) goto err;
|
||||
if(!sk_SXNETID_push(sx->ids, id)) goto err;
|
||||
id->zone = zone;
|
||||
return 1;
|
||||
@ -307,7 +307,7 @@ ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone)
|
||||
return NULL;
|
||||
}
|
||||
oct = SXNET_get_id_INTEGER(sx, izone);
|
||||
ASN1_INTEGER_free(izone);
|
||||
M_ASN1_INTEGER_free(izone);
|
||||
return oct;
|
||||
}
|
||||
|
||||
@ -315,13 +315,13 @@ ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone)
|
||||
{
|
||||
ASN1_INTEGER *izone = NULL;
|
||||
ASN1_OCTET_STRING *oct;
|
||||
if(!(izone = ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||
if(!(izone = M_ASN1_INTEGER_new()) || !ASN1_INTEGER_set(izone, lzone)) {
|
||||
X509V3err(X509V3_F_SXNET_GET_ID_ULONG,ERR_R_MALLOC_FAILURE);
|
||||
ASN1_INTEGER_free(izone);
|
||||
M_ASN1_INTEGER_free(izone);
|
||||
return NULL;
|
||||
}
|
||||
oct = SXNET_get_id_INTEGER(sx, izone);
|
||||
ASN1_INTEGER_free(izone);
|
||||
M_ASN1_INTEGER_free(izone);
|
||||
return oct;
|
||||
}
|
||||
|
||||
@ -331,7 +331,7 @@ ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone)
|
||||
int i;
|
||||
for(i = 0; i < sk_SXNETID_num(sx->ids); i++) {
|
||||
id = sk_SXNETID_value(sx->ids, i);
|
||||
if(!ASN1_INTEGER_cmp(id->zone, zone)) return id->user;
|
||||
if(!M_ASN1_INTEGER_cmp(id->zone, zone)) return id->user;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -255,8 +255,8 @@ DECLARE_ASN1_SET_OF(POLICYINFO)
|
||||
#define X509V3_set_ctx_nodb(ctx) ctx->db = NULL;
|
||||
|
||||
#define EXT_BITSTRING(nid, table) { nid, 0, \
|
||||
(X509V3_EXT_NEW)asn1_bit_string_new, \
|
||||
(X509V3_EXT_FREE)ASN1_STRING_free, \
|
||||
(X509V3_EXT_NEW)ASN1_BIT_STRING_new, \
|
||||
(X509V3_EXT_FREE)ASN1_BIT_STRING_free, \
|
||||
(X509V3_EXT_D2I)d2i_ASN1_BIT_STRING, \
|
||||
(X509V3_EXT_I2D)i2d_ASN1_BIT_STRING, \
|
||||
NULL, NULL, \
|
||||
@ -266,8 +266,8 @@ DECLARE_ASN1_SET_OF(POLICYINFO)
|
||||
(char *)table}
|
||||
|
||||
#define EXT_IA5STRING(nid) { nid, 0, \
|
||||
(X509V3_EXT_NEW)ia5string_new, \
|
||||
(X509V3_EXT_FREE)ASN1_STRING_free, \
|
||||
(X509V3_EXT_NEW)ASN1_IA5STRING_new, \
|
||||
(X509V3_EXT_FREE)ASN1_IA5STRING_free, \
|
||||
(X509V3_EXT_D2I)d2i_ASN1_IA5STRING, \
|
||||
(X509V3_EXT_I2D)i2d_ASN1_IA5STRING, \
|
||||
(X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
|
||||
|
@ -1879,3 +1879,86 @@ UTF8_getc 1903
|
||||
RSA_null_method 1904
|
||||
ASN1_tag2str 1905
|
||||
BIO_ctrl_reset_read_request 1906
|
||||
DISPLAYTEXT_new 1907
|
||||
ASN1_GENERALIZEDTIME_free 1908
|
||||
X509V3_REVOKED_get_d2i 1909
|
||||
X509_set_ex_data 1910
|
||||
X509_PURPOSE_add_standard 1911
|
||||
sk_X509_PURPOSE_value 1912
|
||||
sk_X509_PURPOSE_zero 1913
|
||||
ASN1_VISIBLESTRING_new 1914
|
||||
ASN1_PRINTABLESTRING_free 1915
|
||||
ASN1_BMPSTRING_new 1916
|
||||
ASN1_UTF8STRING_new 1917
|
||||
sk_X509_PURPOSE_pop 1918
|
||||
DSA_get_default_method 1919
|
||||
sk_X509_PURPOSE_push 1920
|
||||
sk_X509_PURPOSE_delete 1921
|
||||
sk_X509_PURPOSE_num 1922
|
||||
PEM_read_DSAPublicKey 1923
|
||||
ASN1_T61STRING_free 1924
|
||||
d2i_DSAPublicKey_fp 1925
|
||||
DSA_set_method 1926
|
||||
X509_get_ex_data 1927
|
||||
ASN1_STRING_type 1928
|
||||
sk_X509_PURPOSE_find 1929
|
||||
ASN1_TIME_free 1930
|
||||
ASN1_OCTET_STRING_cmp 1931
|
||||
ASN1_BIT_STRING_new 1932
|
||||
X509V3_X509_get_d2i 1933
|
||||
ASN1_INTEGER_cmp 1934
|
||||
ASN1_TIME_new 1935
|
||||
d2i_DSAPublicKey_bio 1936
|
||||
sk_X509_PURPOSE_new_null 1937
|
||||
ASN1_UTCTIME_free 1938
|
||||
DSA_set_default_method 1939
|
||||
sk_X509_PURPOSE_set_cmp_func 1940
|
||||
PEM_write_bio_DSAPublicKey 1941
|
||||
X509_PURPOSE_get_id 1942
|
||||
DISPLAYTEXT_free 1943
|
||||
X509V3_CRL_get_d2i 1944
|
||||
ASN1_OCTET_STRING_free 1945
|
||||
X509_get_ex_new_index 1946
|
||||
ASN1_STRING_length 1947
|
||||
ASN1_PRINTABLESTRING_new 1948
|
||||
X509V3_get_d2i 1949
|
||||
ASN1_ENUMERATED_free 1950
|
||||
sk_X509_PURPOSE_unshift 1951
|
||||
sk_X509_PURPOSE_set 1952
|
||||
sk_X509_PURPOSE_sort 1953
|
||||
DIRECTORYSTRING_free 1954
|
||||
ASN1_OCTET_STRING_set 1955
|
||||
ASN1_IA5STRING_new 1956
|
||||
X509_check_purpose 1957
|
||||
ASN1_ENUMERATED_new 1958
|
||||
PEM_write_DSAPublicKey 1959
|
||||
ASN1_BMPSTRING_free 1960
|
||||
ASN1_T61STRING_new 1961
|
||||
ASN1_UTCTIME_new 1962
|
||||
ASN1_IA5STRING_free 1963
|
||||
ASN1_STRING_data 1964
|
||||
X509_PURPOSE_get_name 1965
|
||||
sk_X509_PURPOSE_delete_ptr 1966
|
||||
ASN1_BIT_STRING_free 1967
|
||||
X509_PURPOSE_add 1968
|
||||
ASN1_UTF8STRING_free 1969
|
||||
X509_PURPOSE_enum 1970
|
||||
sk_X509_PURPOSE_pop_free 1971
|
||||
i2d_DSAPublicKey_fp 1972
|
||||
sk_X509_PURPOSE_free 1973
|
||||
sk_X509_PURPOSE_dup 1974
|
||||
ASN1_OCTET_STRING_dup 1975
|
||||
ASN1_BIT_STRING_set 1976
|
||||
ASN1_INTEGER_free 1977
|
||||
ASN1_INTEGER_dup 1978
|
||||
ASN1_VISIBLESTRING_free 1979
|
||||
sk_X509_PURPOSE_shift 1980
|
||||
sk_X509_PURPOSE_new 1981
|
||||
sk_X509_PURPOSE_insert 1982
|
||||
ASN1_GENERALIZEDTIME_new 1983
|
||||
PEM_read_bio_DSAPublicKey 1984
|
||||
ASN1_OCTET_STRING_new 1985
|
||||
ASN1_INTEGER_new 1986
|
||||
i2d_DSAPublicKey_bio 1987
|
||||
ASN1_STRING_length_set 1988
|
||||
DIRECTORYSTRING_new 1989
|
||||
|
Loading…
x
Reference in New Issue
Block a user