summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2006-04-03 18:04:00 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2006-04-03 18:04:00 +0000
commit49963d2b72a5d8438c87d494c3e002264e4c3507 (patch)
tree81884dc86b8de15c969ddbdbf7be69b8c7539811
parenta97c30adfff5961f2f5c608f3ecd3eda1c71a43f (diff)
downloadgnutls-49963d2b72a5d8438c87d494c3e002264e4c3507.tar.gz
use snprintf() instead of multiple calls to str_cpy() and str_cat().
-rw-r--r--lib/x509/common.c13
-rw-r--r--lib/x509/common.h4
-rw-r--r--lib/x509/crl.c17
-rw-r--r--lib/x509/crq.c23
-rw-r--r--lib/x509/dn.c89
-rw-r--r--lib/x509/extensions.c24
-rw-r--r--lib/x509/pkcs12.c39
-rw-r--r--lib/x509/pkcs7.c29
-rw-r--r--lib/x509/x509.c29
9 files changed, 81 insertions, 186 deletions
diff --git a/lib/x509/common.c b/lib/x509/common.c
index 2872bec895..4e2bbc1bf1 100644
--- a/lib/x509/common.c
+++ b/lib/x509/common.c
@@ -359,19 +359,6 @@ _gnutls_x509_data2hex (const opaque * data, size_t data_size,
}
-/* this function will convert up to 3 digit
- * numbers to characters. Use a character string of MAX_INT_DIGITS, in
- * order to have enough space for it.
- */
-void
-_gnutls_int2str (unsigned int k, char *data)
-{
- if (k > 999)
- sprintf (data, "%d", 999);
- else
- sprintf (data, "%d", k);
-}
-
/* TIME functions
* Convertions between generalized or UTC time to time_t
*
diff --git a/lib/x509/common.h b/lib/x509/common.h
index cd82c4e14b..a993f343a3 100644
--- a/lib/x509/common.h
+++ b/lib/x509/common.h
@@ -27,10 +27,6 @@
#include <gnutls_algorithms.h>
-/* for int2str */
-#define MAX_INT_DIGITS 4
-void _gnutls_int2str (unsigned int k, char *data);
-
#define MAX_STRING_LEN 512
#define GNUTLS_XML_SHOW_ALL 1
diff --git a/lib/x509/crl.c b/lib/x509/crl.c
index 249848e4a4..c3ab76939e 100644
--- a/lib/x509/crl.c
+++ b/lib/x509/crl.c
@@ -445,9 +445,8 @@ gnutls_x509_crl_get_crt_serial (gnutls_x509_crl_t crl, int indx,
{
int result, _serial_size;
- char str_index[MAX_INT_DIGITS];
- char serial_name[64];
- char date_name[64];
+ char serial_name[MAX_NAME_SIZE];
+ char date_name[MAX_NAME_SIZE];
if (crl == NULL)
{
@@ -455,16 +454,8 @@ gnutls_x509_crl_get_crt_serial (gnutls_x509_crl_t crl, int indx,
return GNUTLS_E_INVALID_REQUEST;
}
- _gnutls_int2str (indx + 1, str_index);
- _gnutls_str_cpy (serial_name, sizeof (serial_name),
- "tbsCertList.revokedCertificates.?");
- _gnutls_str_cat (serial_name, sizeof (serial_name), str_index);
- _gnutls_str_cat (serial_name, sizeof (serial_name), ".userCertificate");
-
- _gnutls_str_cpy (date_name, sizeof (date_name),
- "tbsCertList.revokedCertificates.?");
- _gnutls_str_cat (date_name, sizeof (date_name), str_index);
- _gnutls_str_cat (date_name, sizeof (date_name), ".revocationDate");
+ snprintf( serial_name, sizeof(serial_name), "tbsCertList.revokedCertificates.?%u.userCertificate", indx+1);
+ snprintf( date_name, sizeof(date_name), "tbsCertList.revokedCertificates.?%u.revocationDate", indx+1);
_serial_size = *serial_size;
result = asn1_read_value (crl->crl, serial_name, serial, &_serial_size);
diff --git a/lib/x509/crq.c b/lib/x509/crq.c
index 4ff6ac3a8f..da759ba66f 100644
--- a/lib/x509/crq.c
+++ b/lib/x509/crq.c
@@ -292,9 +292,8 @@ parse_attribute (ASN1_TYPE asn1_struct,
int raw, char *buf, size_t * sizeof_buf)
{
int k1, result;
- char tmpbuffer1[64];
- char tmpbuffer3[64];
- char counter[MAX_INT_DIGITS];
+ char tmpbuffer1[MAX_NAME_SIZE];
+ char tmpbuffer3[MAX_NAME_SIZE];
char value[200];
char oid[128];
int len, printable;
@@ -314,13 +313,10 @@ parse_attribute (ASN1_TYPE asn1_struct,
k1++;
/* create a string like "attribute.?1"
*/
- _gnutls_int2str (k1, counter);
- _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), attr_name);
-
- if (strlen (tmpbuffer1) > 0)
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), ".");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter);
+ if (attr_name[0] != 0)
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", attr_name, k1);
+ else
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1);
len = sizeof (value) - 1;
result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len);
@@ -362,12 +358,7 @@ parse_attribute (ASN1_TYPE asn1_struct,
/* Read the Value
*/
- _gnutls_str_cpy (tmpbuffer3, sizeof (tmpbuffer3), tmpbuffer1);
-
- _gnutls_int2str (indx + 1, counter);
-
- _gnutls_str_cat (tmpbuffer3, sizeof (tmpbuffer3), ".values.?");
- _gnutls_str_cat (tmpbuffer3, sizeof (tmpbuffer3), counter);
+ snprintf( tmpbuffer3, sizeof (tmpbuffer3), "%s.values.?%u", tmpbuffer1, indx+1);
len = sizeof (value) - 1;
result = asn1_read_value (asn1_struct, tmpbuffer3, value, &len);
diff --git a/lib/x509/dn.c b/lib/x509/dn.c
index 9020b81713..75b258a853 100644
--- a/lib/x509/dn.c
+++ b/lib/x509/dn.c
@@ -93,10 +93,9 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct,
{
gnutls_string out_str;
int k2, k1, result;
- char tmpbuffer1[64];
- char tmpbuffer2[64];
- char tmpbuffer3[64];
- char counter[MAX_INT_DIGITS];
+ char tmpbuffer1[MAX_NAME_SIZE];
+ char tmpbuffer2[MAX_NAME_SIZE];
+ char tmpbuffer3[MAX_NAME_SIZE];
opaque value[MAX_STRING_LEN], *value2 = NULL;
char *escaped = NULL;
const char *ldap_desc;
@@ -125,13 +124,11 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct,
k1++;
/* create a string like "tbsCertList.issuer.rdnSequence.?1"
*/
- _gnutls_int2str (k1, counter);
- _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name);
- if (strlen (tmpbuffer1) > 0)
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), ".");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter);
-
+ if (asn1_rdn_name[0]!=0)
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1);
+ else
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1);
+
len = sizeof (value) - 1;
result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len);
@@ -154,12 +151,10 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct,
*/
k2++;
- _gnutls_int2str (k2, counter);
- _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1);
- if (strlen (tmpbuffer2) > 0)
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), ".");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter);
+ if (tmpbuffer1[0] != 0)
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2);
+ else
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2);
/* Try to read the RelativeDistinguishedName attributes.
*/
@@ -343,10 +338,9 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct,
void *buf, size_t * sizeof_buf)
{
int k2, k1, result;
- char tmpbuffer1[64];
- char tmpbuffer2[64];
- char tmpbuffer3[64];
- char counter[MAX_INT_DIGITS];
+ char tmpbuffer1[MAX_NAME_SIZE];
+ char tmpbuffer2[MAX_NAME_SIZE];
+ char tmpbuffer3[MAX_NAME_SIZE];
opaque value[256];
char oid[128];
int len, printable;
@@ -365,13 +359,10 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct,
k1++;
/* create a string like "tbsCertList.issuer.rdnSequence.?1"
*/
- _gnutls_int2str (k1, counter);
- _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name);
-
- if (strlen (tmpbuffer1) > 0)
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), ".");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter);
+ if (asn1_rdn_name[0] != 0)
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1);
+ else
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1);
len = sizeof (value) - 1;
result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len);
@@ -396,13 +387,10 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct,
*/
k2++;
- _gnutls_int2str (k2, counter);
- _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1);
-
- if (strlen (tmpbuffer2) > 0)
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), ".");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter);
+ if (tmpbuffer1[0] != 0)
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2);
+ else
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2);
/* Try to read the RelativeDistinguishedName attributes.
*/
@@ -523,10 +511,9 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct,
int indx, void *_oid, size_t * sizeof_oid)
{
int k2, k1, result;
- char tmpbuffer1[64];
- char tmpbuffer2[64];
- char tmpbuffer3[64];
- char counter[MAX_INT_DIGITS];
+ char tmpbuffer1[MAX_NAME_SIZE];
+ char tmpbuffer2[MAX_NAME_SIZE];
+ char tmpbuffer3[MAX_NAME_SIZE];
char value[256];
char oid[128];
int len;
@@ -539,13 +526,10 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct,
k1++;
/* create a string like "tbsCertList.issuer.rdnSequence.?1"
*/
- _gnutls_int2str (k1, counter);
- _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name);
-
- if (strlen (tmpbuffer1) > 0)
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), ".");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?");
- _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter);
+ if (asn1_rdn_name[0] != 0)
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1);
+ else
+ snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1);
len = sizeof (value) - 1;
result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len);
@@ -570,13 +554,10 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct,
*/
k2++;
- _gnutls_int2str (k2, counter);
- _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1);
-
- if (strlen (tmpbuffer2) > 0)
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), ".");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?");
- _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter);
+ if (tmpbuffer1[0] != 0)
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2);
+ else
+ snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2);
/* Try to read the RelativeDistinguishedName attributes.
*/
@@ -889,7 +870,7 @@ _gnutls_x509_set_dn_oid (ASN1_TYPE asn1_struct,
int raw_flag, const char *name, int sizeof_name)
{
int result;
- char tmp[64], asn1_rdn_name[64];
+ char tmp[MAX_NAME_SIZE], asn1_rdn_name[MAX_NAME_SIZE];
if (sizeof_name == 0 || name == NULL)
{
diff --git a/lib/x509/extensions.c b/lib/x509/extensions.c
index 461d7152f5..5b4ea985c7 100644
--- a/lib/x509/extensions.c
+++ b/lib/x509/extensions.c
@@ -49,7 +49,7 @@ _gnutls_x509_crt_get_extension (gnutls_x509_crt_t cert,
gnutls_datum_t * ret, unsigned int *_critical)
{
int k, result, len;
- char name[128], name2[128], counter[MAX_INT_DIGITS];
+ char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
char str[1024];
char str_critical[10];
int critical = 0;
@@ -65,9 +65,7 @@ _gnutls_x509_crt_get_extension (gnutls_x509_crt_t cert,
{
k++;
- _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?");
- _gnutls_int2str (k, counter);
- _gnutls_str_cat (name, sizeof (name), counter);
+ snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k);
len = sizeof (str) - 1;
result = asn1_read_value (cert->cert, name, str, &len);
@@ -181,7 +179,7 @@ _gnutls_x509_crt_get_extension_oid (gnutls_x509_crt_t cert,
int indx, void *oid, size_t * sizeof_oid)
{
int k, result, len;
- char name[128], name2[128], counter[MAX_INT_DIGITS];
+ char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
char str[1024];
char extnID[128];
int indx_counter = 0;
@@ -191,9 +189,7 @@ _gnutls_x509_crt_get_extension_oid (gnutls_x509_crt_t cert,
{
k++;
- _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?");
- _gnutls_int2str (k, counter);
- _gnutls_str_cat (name, sizeof (name), counter);
+ snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k);
len = sizeof (str) - 1;
result = asn1_read_value (cert->cert, name, str, &len);
@@ -327,13 +323,11 @@ static int
overwrite_extension (ASN1_TYPE asn, unsigned int indx,
const gnutls_datum_t * ext_data, unsigned int critical)
{
- char name[128], name2[128], counter[MAX_INT_DIGITS];
+ char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
const char *str;
int result;
- _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?");
- _gnutls_int2str (indx, counter);
- _gnutls_str_cat (name, sizeof (name), counter);
+ snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", indx);
if (critical == 0)
str = "FALSE";
@@ -376,7 +370,7 @@ _gnutls_x509_crt_set_extension (gnutls_x509_crt_t cert,
{
int result;
int k, len;
- char name[128], name2[128], counter[MAX_INT_DIGITS];
+ char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
char extnID[128];
/* Find the index of the given extension.
@@ -386,9 +380,7 @@ _gnutls_x509_crt_set_extension (gnutls_x509_crt_t cert,
{
k++;
- _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?");
- _gnutls_int2str (k, counter);
- _gnutls_str_cat (name, sizeof (name), counter);
+ snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k);
len = sizeof (extnID) - 1;
result = asn1_read_value (cert->cert, name, extnID, &len);
diff --git a/lib/x509/pkcs12.c b/lib/x509/pkcs12.c
index c2c04a0544..4ebcf8f370 100644
--- a/lib/x509/pkcs12.c
+++ b/lib/x509/pkcs12.c
@@ -345,13 +345,12 @@ int
_pkcs12_decode_safe_contents (const gnutls_datum_t * content,
gnutls_pkcs12_bag_t bag)
{
- char oid[128], root[128];
+ char oid[128], root[MAX_NAME_SIZE];
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int len, result;
int bag_type;
gnutls_datum_t attr_val;
int count = 0, i, attributes, j;
- char counter[MAX_INT_DIGITS];
size_t size;
/* Step 1. Extract the SEQUENCE.
@@ -389,10 +388,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content,
for (i = 0; i < bag->bag_elements; i++)
{
- _gnutls_str_cpy (root, sizeof (root), "?");
- _gnutls_int2str (i + 1, counter);
- _gnutls_str_cat (root, sizeof (root), counter);
- _gnutls_str_cat (root, sizeof (root), ".bagId");
+ snprintf( root, sizeof (root), "?%u.bagId", i+1);
len = sizeof (oid);
result = asn1_read_value (c2, root, oid, &len);
@@ -416,10 +412,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content,
/* Read the Bag Value
*/
- _gnutls_str_cpy (root, sizeof (root), "?");
- _gnutls_int2str (i + 1, counter);
- _gnutls_str_cat (root, sizeof (root), counter);
- _gnutls_str_cat (root, sizeof (root), ".bagValue");
+ snprintf( root, sizeof (root), "?%u.bagValue", i+1);
result = _gnutls_x509_read_value (c2, root, &bag->element[i].data, 0);
if (result < 0)
@@ -445,10 +438,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content,
/* read the bag attributes
*/
- _gnutls_str_cpy (root, sizeof (root), "?");
- _gnutls_int2str (i + 1, counter);
- _gnutls_str_cat (root, sizeof (root), counter);
- _gnutls_str_cat (root, sizeof (root), ".bagAttributes");
+ snprintf( root, sizeof (root), "?%u.bagAttributes", i+1);
result = asn1_number_of_elements (c2, root, &attributes);
if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND)
@@ -465,12 +455,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content,
for (j = 0; j < attributes; j++)
{
- _gnutls_str_cpy (root, sizeof (root), "?");
- _gnutls_int2str (i + 1, counter);
- _gnutls_str_cat (root, sizeof (root), counter);
- _gnutls_str_cat (root, sizeof (root), ".bagAttributes.?");
- _gnutls_int2str (j + 1, counter);
- _gnutls_str_cat (root, sizeof (root), counter);
+ snprintf( root, sizeof (root), "?%u.bagAttributes.?%u", i+1, j+1);
result =
_gnutls_x509_decode_and_read_attribute (c2, root, oid,
@@ -599,9 +584,8 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12,
{
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int result, len;
- char root2[64];
+ char root2[MAX_NAME_SIZE];
char oid[128];
- char counter[MAX_INT_DIGITS];
if (pkcs12 == NULL)
{
@@ -621,13 +605,9 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12,
/* Step 2. Parse the AuthenticatedSafe
*/
- _gnutls_str_cpy (root2, sizeof (root2), "?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
- _gnutls_str_cat (root2, sizeof (root2), ".contentType");
+ snprintf( root2, sizeof (root2), "?%u.contentType", indx+1);
len = sizeof (oid) - 1;
-
result = asn1_read_value (c2, root2, oid, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
@@ -646,10 +626,7 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12,
/* Not encrypted Bag
*/
- _gnutls_str_cpy (root2, sizeof (root2), "?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
- _gnutls_str_cat (root2, sizeof (root2), ".content");
+ snprintf( root2, sizeof (root2), "?%u.content", indx+1);
if (strcmp (oid, DATA_OID) == 0)
{
diff --git a/lib/x509/pkcs7.c b/lib/x509/pkcs7.c
index fe7823bb31..97a97cc82a 100644
--- a/lib/x509/pkcs7.c
+++ b/lib/x509/pkcs7.c
@@ -282,9 +282,8 @@ gnutls_pkcs7_get_crt_raw (gnutls_pkcs7_t pkcs7,
{
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int result, len;
- char root2[64];
+ char root2[MAX_NAME_SIZE];
char oid[128];
- char counter[MAX_INT_DIGITS];
gnutls_datum_t tmp = { NULL, 0 };
if (certificate_size == NULL || pkcs7 == NULL)
@@ -302,9 +301,7 @@ gnutls_pkcs7_get_crt_raw (gnutls_pkcs7_t pkcs7,
/* Step 2. Parse the CertificateSet
*/
- _gnutls_str_cpy (root2, sizeof (root2), "certificates.?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
+ snprintf( root2, sizeof(root2), "certificates.?%u", indx+1);
len = sizeof (oid) - 1;
@@ -672,8 +669,7 @@ gnutls_pkcs7_delete_crt (gnutls_pkcs7_t pkcs7, int indx)
{
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int result;
- char counter[MAX_INT_DIGITS];
- char root2[64];
+ char root2[MAX_NAME_SIZE];
if (pkcs7 == NULL)
return GNUTLS_E_INVALID_REQUEST;
@@ -690,9 +686,7 @@ gnutls_pkcs7_delete_crt (gnutls_pkcs7_t pkcs7, int indx)
/* Step 2. Delete the certificate.
*/
- _gnutls_str_cpy (root2, sizeof (root2), "certificates.?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
+ snprintf( root2, sizeof(root2), "certificates.?%u", indx+1);
result = asn1_write_value (c2, root2, NULL, 0);
if (result != ASN1_SUCCESS)
@@ -746,8 +740,7 @@ gnutls_pkcs7_get_crl_raw (gnutls_pkcs7_t pkcs7,
{
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int result;
- char root2[64];
- char counter[MAX_INT_DIGITS];
+ char root2[MAX_NAME_SIZE];
gnutls_datum_t tmp = { NULL, 0 };
int start, end;
@@ -766,10 +759,7 @@ gnutls_pkcs7_get_crl_raw (gnutls_pkcs7_t pkcs7,
/* Step 2. Parse the CertificateSet
*/
- _gnutls_str_cpy (root2, sizeof (root2), "crls.?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
-
+ snprintf( root2, sizeof(root2), "crls.?%u", indx+1);
/* Get the raw CRL
*/
@@ -984,8 +974,7 @@ gnutls_pkcs7_delete_crl (gnutls_pkcs7_t pkcs7, int indx)
{
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
int result;
- char counter[MAX_INT_DIGITS];
- char root2[64];
+ char root2[MAX_NAME_SIZE];
if (pkcs7 == NULL)
return GNUTLS_E_INVALID_REQUEST;
@@ -1002,9 +991,7 @@ gnutls_pkcs7_delete_crl (gnutls_pkcs7_t pkcs7, int indx)
/* Step 2. Delete the crl.
*/
- _gnutls_str_cpy (root2, sizeof (root2), "crls.?");
- _gnutls_int2str (indx + 1, counter);
- _gnutls_str_cat (root2, sizeof (root2), counter);
+ snprintf( root2, sizeof(root2), "crls.?%u", indx+1);
result = asn1_write_value (c2, root2, NULL, 0);
if (result != ASN1_SUCCESS)
diff --git a/lib/x509/x509.c b/lib/x509/x509.c
index db8f7d3b50..6dd840e680 100644
--- a/lib/x509/x509.c
+++ b/lib/x509/x509.c
@@ -838,22 +838,18 @@ parse_general_name (ASN1_TYPE src, const char *src_name,
int seq, void *name, size_t * name_size)
{
int len;
- char num[MAX_INT_DIGITS];
- char nptr[128];
+ char nptr[MAX_NAME_SIZE];
int result;
opaque choice_type[128];
gnutls_x509_subject_alt_name_t type;
seq++; /* 0->1, 1->2 etc */
- _gnutls_int2str (seq, num);
-
- _gnutls_str_cpy (nptr, sizeof (nptr), src_name);
- if (src_name[0] != 0)
- _gnutls_str_cat (nptr, sizeof (nptr), ".");
-
- _gnutls_str_cat (nptr, sizeof (nptr), "?");
- _gnutls_str_cat (nptr, sizeof (nptr), num);
+ if ( src_name[0] != 0)
+ snprintf( nptr, sizeof(nptr), "%s.?%u", src_name, seq);
+ else
+ snprintf( nptr, sizeof(nptr), "?%u", seq);
+
len = sizeof (choice_type);
result = asn1_read_value (src, nptr, choice_type, &len);
@@ -1698,7 +1694,7 @@ gnutls_x509_crt_get_crl_dist_points (gnutls_x509_crt_t cert,
int result;
gnutls_datum_t dist_points = { NULL, 0 };
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
- char name[128];
+ char name[MAX_NAME_SIZE];
int len;
gnutls_x509_subject_alt_name_t type;
uint8_t reasons[2];
@@ -1769,8 +1765,8 @@ gnutls_x509_crt_get_crl_dist_points (gnutls_x509_crt_t cert,
*/
if (reason_flags)
{
- _gnutls_str_cpy (name, sizeof (name), "?1.reasons");
-
+ _gnutls_str_cpy( name, sizeof(name), "?1.reasons");
+
reasons[0] = reasons[1] = 0;
len = sizeof (reasons);
@@ -1813,8 +1809,7 @@ gnutls_x509_crt_get_key_purpose_oid (gnutls_x509_crt_t cert,
int indx, void *oid, size_t * sizeof_oid,
unsigned int *critical)
{
- char counter[MAX_INT_DIGITS];
- char tmpstr[64];
+ char tmpstr[MAX_NAME_SIZE];
int result, len;
gnutls_datum_t id;
ASN1_TYPE c2 = ASN1_TYPE_EMPTY;
@@ -1865,9 +1860,7 @@ gnutls_x509_crt_get_key_purpose_oid (gnutls_x509_crt_t cert,
indx++;
/* create a string like "?1"
*/
- _gnutls_int2str (indx, counter);
- _gnutls_str_cpy (tmpstr, sizeof (tmpstr), "?");
- _gnutls_str_cat (tmpstr, sizeof (tmpstr), counter);
+ snprintf( tmpstr, sizeof(tmpstr), "?%u", indx);
len = *sizeof_oid;
result = asn1_read_value (c2, tmpstr, oid, &len);