sim: Change TLV tag from u8 to u16

Change the type of the TLV tag from an 8-bit unsigned value (followed by
8 bits of padding) to a 16-bit value.  Because we are storing the tag as
little endian, the encoding will end up the same, but this will later
allow us to add more tags.

Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/tlv.rs b/sim/src/tlv.rs
index 073620d..bad9140 100644
--- a/sim/src/tlv.rs
+++ b/sim/src/tlv.rs
@@ -34,7 +34,7 @@
 };
 use mcuboot_sys::c;
 
-#[repr(u8)]
+#[repr(u16)]
 #[derive(Copy, Clone, Debug, PartialEq, Eq)]
 #[allow(dead_code)] // TODO: For now
 pub enum TlvKinds {
@@ -267,8 +267,7 @@
             protected_tlv.push(0x69);
             protected_tlv.write_u16::<LittleEndian>(self.protect_size()).unwrap();
             for dep in &self.dependencies {
-                protected_tlv.push(TlvKinds::DEPENDENCY as u8);
-                protected_tlv.push(0);
+                protected_tlv.write_u16::<LittleEndian>(TlvKinds::DEPENDENCY as u16).unwrap();
                 protected_tlv.push(12);
                 protected_tlv.push(0);
 
@@ -309,8 +308,7 @@
             let hash = hash.as_ref();
 
             assert!(hash.len() == 32);
-            result.push(TlvKinds::SHA256 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::SHA256 as u16).unwrap();
             result.push(32);
             result.push(0);
             result.extend_from_slice(hash);
@@ -330,8 +328,7 @@
             let hash = hash.as_ref();
 
             assert!(hash.len() == 32);
-            result.push(TlvKinds::KEYHASH as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::KEYHASH as u16).unwrap();
             result.push(32);
             result.push(0);
             result.extend_from_slice(hash);
@@ -354,11 +351,10 @@
             key_pair.sign(&RSA_PSS_SHA256, &rng, &sig_payload, &mut signature).unwrap();
 
             if is_rsa2048 {
-                result.push(TlvKinds::RSA2048 as u8);
+                result.write_u16::<LittleEndian>(TlvKinds::RSA2048 as u16).unwrap();
             } else {
-                result.push(TlvKinds::RSA3072 as u8);
+                result.write_u16::<LittleEndian>(TlvKinds::RSA3072 as u16).unwrap();
             }
-            result.push(0);
             result.write_u16::<LittleEndian>(signature.len() as u16).unwrap();
             result.extend_from_slice(&signature);
         }
@@ -368,8 +364,7 @@
             let keyhash = keyhash.as_ref();
 
             assert!(keyhash.len() == 32);
-            result.push(TlvKinds::KEYHASH as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::KEYHASH as u16).unwrap();
             result.push(32);
             result.push(0);
             result.extend_from_slice(keyhash);
@@ -382,8 +377,7 @@
             let rng = rand::SystemRandom::new();
             let signature = key_pair.sign(&rng, &sig_payload).unwrap();
 
-            result.push(TlvKinds::ECDSA256 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::ECDSA256 as u16).unwrap();
 
             // signature must be padded...
             let mut signature = signature.as_ref().to_vec();
@@ -401,8 +395,7 @@
             let keyhash = keyhash.as_ref();
 
             assert!(keyhash.len() == 32);
-            result.push(TlvKinds::KEYHASH as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::KEYHASH as u16).unwrap();
             result.push(32);
             result.push(0);
             result.extend_from_slice(keyhash);
@@ -418,8 +411,7 @@
                 &key_bytes.contents[16..48], &ED25519_PUB_KEY[12..44]).unwrap();
             let signature = key_pair.sign(&hash);
 
-            result.push(TlvKinds::ED25519 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::ED25519 as u16).unwrap();
 
             let signature = signature.as_ref().to_vec();
             result.write_u16::<LittleEndian>(signature.len() as u16).unwrap();
@@ -439,8 +431,7 @@
             };
 
             assert!(encbuf.len() == 256);
-            result.push(TlvKinds::ENCRSA2048 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::ENCRSA2048 as u16).unwrap();
             result.push(0);
             result.push(1);
             result.extend_from_slice(&encbuf);
@@ -458,8 +449,7 @@
             };
 
             assert!(encbuf.len() == 24);
-            result.push(TlvKinds::ENCKW128 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::ENCKW128 as u16).unwrap();
             result.push(24);
             result.push(0);
             result.extend_from_slice(&encbuf);
@@ -525,8 +515,7 @@
             buf.append(&mut cipherkey);
 
             assert!(buf.len() == 113);
-            result.push(TlvKinds::ENCEC256 as u8);
-            result.push(0);
+            result.write_u16::<LittleEndian>(TlvKinds::ENCEC256 as u16).unwrap();
             result.push(113);
             result.push(0);
             result.extend_from_slice(&buf);