diff --git a/diced/Android.bp b/diced/Android.bp
index 24a736d..3e15ed7 100644
--- a/diced/Android.bp
+++ b/diced/Android.bp
@@ -50,7 +50,6 @@
         "libciborium",
         "libcoset",
         "libdiced_open_dice",
-        "libdiced_utils",
     ],
 }
 
@@ -65,6 +64,5 @@
         "libciborium",
         "libcoset",
         "libdiced_open_dice",
-        "libdiced_utils",
     ],
 }
diff --git a/diced/src/sample_inputs.rs b/diced/src/sample_inputs.rs
index f32b630..8b914f3 100644
--- a/diced/src/sample_inputs.rs
+++ b/diced/src/sample_inputs.rs
@@ -16,14 +16,13 @@
 //! as well as tuple of CDIs and BCC derived thereof.
 
 use anyhow::{anyhow, Context, Result};
-use ciborium::value::Value;
-use coset::{iana, Algorithm, CborSerializable, CoseKey, KeyOperation, KeyType, Label};
+use ciborium::{de, ser, value::Value};
+use coset::{iana, Algorithm, AsCborValue, CoseKey, KeyOperation, KeyType, Label};
 use diced_open_dice::{
     derive_cdi_private_key_seed, keypair_from_seed, retry_bcc_format_config_descriptor,
     retry_bcc_main_flow, retry_dice_main_flow, Config, DiceArtifacts, DiceMode, InputValues,
     OwnedDiceArtifacts, CDI_SIZE, HASH_SIZE, HIDDEN_SIZE,
 };
-use diced_utils::cbor;
 use std::ffi::CStr;
 
 /// Sample UDS used to perform the root dice flow by `make_sample_bcc_and_cdis`.
@@ -75,7 +74,7 @@
     0x0a, 0xde, 0x29, 0x24, 0xff, 0x2e, 0xfa, 0xc7, 0x10, 0xd5, 0x73, 0xd4, 0xc6, 0xdf, 0x62, 0x9f,
 ];
 
-fn ed25519_public_key_to_cbor(public_key: &[u8]) -> Result<Vec<u8>> {
+fn ed25519_public_key_to_cbor_value(public_key: &[u8]) -> Result<Value> {
     let key = CoseKey {
         kty: KeyType::Assigned(iana::KeyType::OKP),
         alg: Some(Algorithm::Assigned(iana::Algorithm::EdDSA)),
@@ -89,7 +88,7 @@
         ],
         ..Default::default()
     };
-    key.to_vec()
+    key.to_cbor_value()
         .map_err(|e| anyhow!(format!("Failed to serialize the key to CBOR data. Error: {e}")))
 }
 
@@ -101,15 +100,12 @@
     let private_key_seed = derive_cdi_private_key_seed(UDS)
         .context("In make_sample_bcc_and_cdis: Trying to derive private key seed.")?;
 
-    // Sets the root public key in DICE chain (BCC).
+    // Gets the root public key in DICE chain (BCC).
     let (public_key, _) = keypair_from_seed(private_key_seed.as_array())
         .context("In make_sample_bcc_and_cids: Failed to generate key pair.")?;
-    let mut bcc: Vec<u8> = vec![];
-    cbor::encode_header(4 /* CBOR ARRAY */, 2, &mut bcc)
-        .context("In make_sample_bcc_and_cdis: Trying to encode array header.")?;
-    bcc.extend(ed25519_public_key_to_cbor(&public_key)?);
+    let ed25519_public_key_value = ed25519_public_key_to_cbor_value(&public_key)?;
 
-    // Appends ABL certificate to DICE chain.
+    // Gets the ABL certificate to as the root certificate of DICE chain.
     let config_descriptor = retry_bcc_format_config_descriptor(
         Some(CStr::from_bytes_with_nul(b"ABL\0").unwrap()),
         Some(1), // version
@@ -122,9 +118,14 @@
         DiceMode::kDiceModeNormal,
         HIDDEN_ABL,
     );
-    let (cdi_values, mut cert) = retry_dice_main_flow(UDS, UDS, &input_values)
+    let (cdi_values, cert) = retry_dice_main_flow(UDS, UDS, &input_values)
         .context("In make_sample_bcc_and_cdis: Trying to run first main flow.")?;
-    bcc.append(&mut cert);
+    let bcc_value = Value::Array(vec![
+        ed25519_public_key_value,
+        de::from_reader(&cert[..]).context("Deserialize root DICE certificate failed")?,
+    ]);
+    let mut bcc: Vec<u8> = vec![];
+    ser::into_writer(&bcc_value, &mut bcc)?;
 
     // Appends AVB certificate to DICE chain.
     let config_descriptor = retry_bcc_format_config_descriptor(
