diff options
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/asn1/a_set.c')
| -rw-r--r-- | Cryptlib/OpenSSL/crypto/asn1/a_set.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/Cryptlib/OpenSSL/crypto/asn1/a_set.c b/Cryptlib/OpenSSL/crypto/asn1/a_set.c index 18bb408c..bf3f9718 100644 --- a/Cryptlib/OpenSSL/crypto/asn1/a_set.c +++ b/Cryptlib/OpenSSL/crypto/asn1/a_set.c @@ -86,8 +86,8 @@ static int SetBlobCmp(const void *elem1, const void *elem2) /* * int is_set: if TRUE, then sort the contents (i.e. it isn't a SEQUENCE) */ -int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, - int ex_class, int is_set) +int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, + i2d_of_void *i2d, int ex_tag, int ex_class, int is_set) { int ret = 0, r; int i; @@ -98,8 +98,8 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, if (a == NULL) return (0); - for (i = sk_num(a) - 1; i >= 0; i--) - ret += i2d(sk_value(a, i), NULL); + for (i = sk_OPENSSL_BLOCK_num(a) - 1; i >= 0; i--) + ret += i2d(sk_OPENSSL_BLOCK_value(a, i), NULL); r = ASN1_object_size(1, ret, ex_tag); if (pp == NULL) return (r); @@ -111,9 +111,9 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, /* And then again by Ben */ /* And again by Steve */ - if (!is_set || (sk_num(a) < 2)) { - for (i = 0; i < sk_num(a); i++) - i2d(sk_value(a, i), &p); + if (!is_set || (sk_OPENSSL_BLOCK_num(a) < 2)) { + for (i = 0; i < sk_OPENSSL_BLOCK_num(a); i++) + i2d(sk_OPENSSL_BLOCK_value(a, i), &p); *pp = p; return (r); @@ -121,15 +121,15 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, pStart = p; /* Catch the beg of Setblobs */ /* In this array we will store the SET blobs */ - rgSetBlob = (MYBLOB *) OPENSSL_malloc(sk_num(a) * sizeof(MYBLOB)); + rgSetBlob = OPENSSL_malloc(sk_OPENSSL_BLOCK_num(a) * sizeof(MYBLOB)); if (rgSetBlob == NULL) { ASN1err(ASN1_F_I2D_ASN1_SET, ERR_R_MALLOC_FAILURE); return (0); } - for (i = 0; i < sk_num(a); i++) { + for (i = 0; i < sk_OPENSSL_BLOCK_num(a); i++) { rgSetBlob[i].pbData = p; /* catch each set encode blob */ - i2d(sk_value(a, i), &p); + i2d(sk_OPENSSL_BLOCK_value(a, i), &p); rgSetBlob[i].cbData = p - rgSetBlob[i].pbData; /* Length of this * SetBlob */ } @@ -140,7 +140,7 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, * Now we have to sort the blobs. I am using a simple algo. *Sort ptrs * *Copy to temp-mem *Copy from temp-mem to user-mem */ - qsort(rgSetBlob, sk_num(a), sizeof(MYBLOB), SetBlobCmp); + qsort(rgSetBlob, sk_OPENSSL_BLOCK_num(a), sizeof(MYBLOB), SetBlobCmp); if (!(pTempMem = OPENSSL_malloc(totSize))) { ASN1err(ASN1_F_I2D_ASN1_SET, ERR_R_MALLOC_FAILURE); return (0); @@ -148,7 +148,7 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, /* Copy to temp mem */ p = pTempMem; - for (i = 0; i < sk_num(a); ++i) { + for (i = 0; i < sk_OPENSSL_BLOCK_num(a); ++i) { memcpy(p, rgSetBlob[i].pbData, rgSetBlob[i].cbData); p += rgSetBlob[i].cbData; } @@ -161,15 +161,17 @@ int i2d_ASN1_SET(STACK * a, unsigned char **pp, i2d_of_void *i2d, int ex_tag, return (r); } -STACK *d2i_ASN1_SET(STACK ** a, const unsigned char **pp, long length, - d2i_of_void *d2i, void (*free_func) (void *), int ex_tag, - int ex_class) +STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a, + const unsigned char **pp, + long length, d2i_of_void *d2i, + void (*free_func) (OPENSSL_BLOCK), + int ex_tag, int ex_class) { ASN1_const_CTX c; - STACK *ret = NULL; + STACK_OF(OPENSSL_BLOCK) *ret = NULL; if ((a == NULL) || ((*a) == NULL)) { - if ((ret = sk_new_null()) == NULL) { + if ((ret = sk_OPENSSL_BLOCK_new_null()) == NULL) { ASN1err(ASN1_F_D2I_ASN1_SET, ERR_R_MALLOC_FAILURE); goto err; } @@ -213,10 +215,10 @@ STACK *d2i_ASN1_SET(STACK ** a, const unsigned char **pp, long length, */ if ((s = d2i(NULL, &c.p, c.slen)) == NULL) { ASN1err(ASN1_F_D2I_ASN1_SET, ASN1_R_ERROR_PARSING_SET_ELEMENT); - asn1_add_error(*pp, (int)(c.q - *pp)); + asn1_add_error(*pp, (int)(c.p - *pp)); goto err; } - if (!sk_push(ret, s)) + if (!sk_OPENSSL_BLOCK_push(ret, s)) goto err; } if (a != NULL) @@ -226,9 +228,9 @@ STACK *d2i_ASN1_SET(STACK ** a, const unsigned char **pp, long length, err: if ((ret != NULL) && ((a == NULL) || (*a != ret))) { if (free_func != NULL) - sk_pop_free(ret, free_func); + sk_OPENSSL_BLOCK_pop_free(ret, free_func); else - sk_free(ret); + sk_OPENSSL_BLOCK_free(ret); } return (NULL); } |
