diff --git a/include/dice/cbor_writer.h b/include/dice/cbor_writer.h
index 304f9f3..8a96afa 100644
--- a/include/dice/cbor_writer.h
+++ b/include/dice/cbor_writer.h
@@ -61,6 +61,7 @@
 // caller is responsible for correct and deterministic encoding of complex
 // types.
 void CborWriteInt(int64_t val, struct CborOut* out);
+void CborWriteUint(uint64_t val, struct CborOut* out);
 void CborWriteBstr(size_t data_size, const uint8_t* data, struct CborOut* out);
 void CborWriteTstr(const char* str, struct CborOut* out);
 void CborWriteArray(size_t num_elements, struct CborOut* out);
diff --git a/src/cbor_writer.c b/src/cbor_writer.c
index 986d1a1..bfa403f 100644
--- a/src/cbor_writer.c
+++ b/src/cbor_writer.c
@@ -114,6 +114,10 @@
   }
 }
 
+void CborWriteUint(uint64_t val, struct CborOut* out) {
+  CborWriteType(CBOR_TYPE_UINT, val, out);
+}
+
 void CborWriteBstr(size_t data_size, const uint8_t* data, struct CborOut* out) {
   CborWriteStr(CBOR_TYPE_BSTR, data_size, data, out);
 }
diff --git a/src/cbor_writer_fuzzer.cc b/src/cbor_writer_fuzzer.cc
index afc4270..ebcb1e3 100644
--- a/src/cbor_writer_fuzzer.cc
+++ b/src/cbor_writer_fuzzer.cc
@@ -19,6 +19,7 @@
 
 enum CborWriterFunction {
   WriteInt,
+  WriteUint,
   WriteBstr,
   AllocBstr,
   WriteTstr,
@@ -34,7 +35,7 @@
 // Use data sizes that exceed the 16-bit range without being excessive.
 constexpr size_t kMaxDataSize = 0xffff + 0x5000;
 constexpr size_t kMaxBufferSize = kMaxDataSize * 3;
-constexpr size_t kIterations = 20;
+constexpr size_t kIterations = CborWriterFunction::kMaxValue * 2;
 
 }  // namespace
 
@@ -51,6 +52,9 @@
       case WriteInt:
         CborWriteInt(fdp.ConsumeIntegral<int64_t>(), &out);
         break;
+      case WriteUint:
+        CborWriteUint(fdp.ConsumeIntegral<uint64_t>(), &out);
+        break;
       case WriteBstr: {
         auto bstr_data_size =
             fdp.ConsumeIntegralInRange<size_t>(0, kMaxDataSize);
diff --git a/src/cbor_writer_test.cc b/src/cbor_writer_test.cc
index f664052..2ad72a4 100644
--- a/src/cbor_writer_test.cc
+++ b/src/cbor_writer_test.cc
@@ -91,6 +91,19 @@
   EXPECT_EQ(0, memcmp(buffer, kExpectedEncoding, sizeof(kExpectedEncoding)));
 }
 
+TEST(CborWriterTest, Uint9Bytes) {
+  const uint8_t kExpectedEncoding[] = {27,   0x00, 0x00, 0x00, 0x01, 0x00,
+                                       0x00, 0x00, 0x00, 27,   0xff, 0xff,
+                                       0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+  uint8_t buffer[64];
+  CborOut out;
+  CborOutInit(buffer, sizeof(buffer), &out);
+  CborWriteUint(0x100000000, &out);
+  CborWriteUint(UINT64_MAX, &out);
+  EXPECT_FALSE(CborOutOverflowed(&out));
+  EXPECT_EQ(0, memcmp(buffer, kExpectedEncoding, sizeof(kExpectedEncoding)));
+}
+
 TEST(CborWriterTest, IntByteOrder) {
   const uint8_t kExpectedEncoding[] = {
       25,   0x12, 0x34, 26,   0x12, 0x34, 0x56, 0x78, 27,
