Use uint64_t for num_read and num_write in BIO

This matches upstream OpenSSL. It's also counting a total number of
bytes, not a single buffer. On a 32-bit platform, one may still transfor
more than 4GiB of data through a single BIO.

Change-Id: I1c668d84ee5ce13f7ab5c476cb168ae9c0e0109e
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/66167
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
diff --git a/crypto/bio/bio.c b/crypto/bio/bio.c
index abe753c..3206f6e 100644
--- a/crypto/bio/bio.c
+++ b/crypto/bio/bio.c
@@ -345,11 +345,11 @@
   return (int)BIO_ctrl(bio, BIO_CTRL_SET_CLOSE, close_flag, NULL);
 }
 
-OPENSSL_EXPORT size_t BIO_number_read(const BIO *bio) {
+OPENSSL_EXPORT uint64_t BIO_number_read(const BIO *bio) {
   return bio->num_read;
 }
 
-OPENSSL_EXPORT size_t BIO_number_written(const BIO *bio) {
+OPENSSL_EXPORT uint64_t BIO_number_written(const BIO *bio) {
   return bio->num_write;
 }
 
diff --git a/include/openssl/bio.h b/include/openssl/bio.h
index b28439a..4700799 100644
--- a/include/openssl/bio.h
+++ b/include/openssl/bio.h
@@ -269,11 +269,11 @@
 
 // BIO_number_read returns the number of bytes that have been read from
 // |bio|.
-OPENSSL_EXPORT size_t BIO_number_read(const BIO *bio);
+OPENSSL_EXPORT uint64_t BIO_number_read(const BIO *bio);
 
 // BIO_number_written returns the number of bytes that have been written to
 // |bio|.
-OPENSSL_EXPORT size_t BIO_number_written(const BIO *bio);
+OPENSSL_EXPORT uint64_t BIO_number_written(const BIO *bio);
 
 
 // Managing chains of BIOs.
@@ -894,7 +894,7 @@
   // next_bio points to the next |BIO| in a chain. This |BIO| owns a reference
   // to |next_bio|.
   BIO *next_bio;  // used by filter BIOs
-  size_t num_read, num_write;
+  uint64_t num_read, num_write;
 };
 
 #define BIO_C_SET_CONNECT 100