From 64bb6b36b0b12873a9ad93b77bc006f6fd7a70da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Fri, 26 Apr 2013 14:09:12 +0200
Subject: [PATCH] Use size_t for asn1 parser.

---
 asn1.h         | 8 ++++----
 der-iterator.c | 8 ++++----
 der2dsa.c      | 6 +++---
 der2rsa.c      | 2 +-
 dsa.h          | 2 +-
 rsa.h          | 2 +-
 6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/asn1.h b/asn1.h
index 50c2e144..ef7e9470 100644
--- a/asn1.h
+++ b/asn1.h
@@ -93,23 +93,23 @@ enum asn1_iterator_result
 /* Parsing DER objects. */
 struct asn1_der_iterator
 {
-  unsigned buffer_length;
+  size_t buffer_length;
   const uint8_t *buffer;
 
   /* Next object to parse. */
-  unsigned pos;
+  size_t pos;
 
   enum asn1_type type;
 
   /* Pointer to the current object */
-  unsigned length;
+  size_t length;
   const uint8_t *data;
 };
 
 /* Initializes the iterator. */
 enum asn1_iterator_result
 asn1_der_iterator_first(struct asn1_der_iterator *iterator,
-			unsigned length, const uint8_t *input);
+			size_t length, const uint8_t *input);
 
 enum asn1_iterator_result
 asn1_der_iterator_next(struct asn1_der_iterator *iterator);
diff --git a/der-iterator.c b/der-iterator.c
index 2e6efd5f..236d3cb5 100644
--- a/der-iterator.c
+++ b/der-iterator.c
@@ -87,7 +87,7 @@ enum {
  * first element. */
 static void
 asn1_der_iterator_init(struct asn1_der_iterator *iterator,
-		       unsigned length, const uint8_t *input)
+		       size_t length, const uint8_t *input)
 {
   iterator->buffer_length = length;
   iterator->buffer = input;
@@ -133,7 +133,7 @@ asn1_der_iterator_next(struct asn1_der_iterator *i)
       if (LEFT(i) < k)
 	return ASN1_ITERATOR_ERROR;
 
-      if (k > sizeof(unsigned))
+      if (k > sizeof(i->length))
 	return ASN1_ITERATOR_ERROR;
 
       i->pos += k;
@@ -164,7 +164,7 @@ asn1_der_iterator_next(struct asn1_der_iterator *i)
 
 enum asn1_iterator_result
 asn1_der_iterator_first(struct asn1_der_iterator *i,
-			unsigned length, const uint8_t *input)
+			size_t length, const uint8_t *input)
 {
   asn1_der_iterator_init(i, length, input);
   return asn1_der_iterator_next(i);
@@ -216,7 +216,7 @@ asn1_der_get_uint32(struct asn1_der_iterator *i,
   /* Big endian, two's complement, minimum number of octets (except 0,
      which is encoded as a single octet */
   uint32_t value = 0;
-  unsigned length = i->length;
+  size_t length = i->length;
   unsigned k;
 
   if (!length || length > 5)
diff --git a/der2dsa.c b/der2dsa.c
index 023a9e74..9d439c3e 100644
--- a/der2dsa.c
+++ b/der2dsa.c
@@ -103,9 +103,9 @@ dsa_openssl_private_key_from_der_iterator(struct dsa_public_key *pub,
 
 int
 dsa_openssl_private_key_from_der(struct dsa_public_key *pub,
-		     struct dsa_private_key *priv,
-		     unsigned p_max_bits,
-		     unsigned length, const uint8_t *data)
+				 struct dsa_private_key *priv,
+				 unsigned p_max_bits,
+				 size_t length, const uint8_t *data)
 {
   struct asn1_der_iterator i;
   enum asn1_iterator_result res;
diff --git a/der2rsa.c b/der2rsa.c
index 3c94ea5a..30fe2e19 100644
--- a/der2rsa.c
+++ b/der2rsa.c
@@ -116,7 +116,7 @@ int
 rsa_keypair_from_der(struct rsa_public_key *pub,
 		     struct rsa_private_key *priv,
 		     unsigned limit, 
-		     unsigned length, const uint8_t *data)
+		     size_t length, const uint8_t *data)
 {
   struct asn1_der_iterator i;
   enum asn1_iterator_result res;
diff --git a/dsa.h b/dsa.h
index 7ee26249..91d233a5 100644
--- a/dsa.h
+++ b/dsa.h
@@ -268,7 +268,7 @@ int
 dsa_openssl_private_key_from_der(struct dsa_public_key *pub,
 				 struct dsa_private_key *priv,
 				 unsigned p_max_bits, 
-				 unsigned length, const uint8_t *data);
+				 size_t length, const uint8_t *data);
 
 
 /* Internal functions. */
diff --git a/rsa.h b/rsa.h
index 4226f389..3ad7e9ab 100644
--- a/rsa.h
+++ b/rsa.h
@@ -386,7 +386,7 @@ int
 rsa_keypair_from_der(struct rsa_public_key *pub,
 		     struct rsa_private_key *priv,
 		     unsigned limit, 
-		     unsigned length, const uint8_t *data);
+		     size_t length, const uint8_t *data);
 
 /* OpenPGP format. Experimental interface, subject to change. */
 int
-- 
GitLab