diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..d8f642c
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,14 @@
+**
+
+!nearby/.cargo
+!nearby/connections/
+!nearby/crypto/
+!nearby/presence/
+nearby/presence/cmake-build
+!nearby/scripts/
+!nearby/src/
+!nearby/Cargo.lock
+!nearby/Cargo.toml
+!nearby/deny.toml
+!nearby/rustfmt.toml
+!third_party
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..caccb04
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "third_party/abseil-cpp"]
+	path = third_party/abseil-cpp
+	url = https://github.com/abseil/abseil-cpp.git
diff --git a/nearby/Dockerfile b/Dockerfile
similarity index 94%
rename from nearby/Dockerfile
rename to Dockerfile
index cd60ac8..00dffc7 100644
--- a/nearby/Dockerfile
+++ b/Dockerfile
@@ -34,25 +34,23 @@
 # Must use 0.64.0, as version >= 0.65.0 removes the option "--size_t-is-usize", an option
 # used by boringssl when generating rust bindings
 RUN cargo install bindgen-cli --version 0.64.0
+RUN cargo install wasm-pack --color never 2>&1
 RUN rustup toolchain add nightly
 # boringssl build wants go
 RUN curl -L https://go.dev/dl/go1.20.2.linux-amd64.tar.gz | tar -C /usr/local -xz
 ENV PATH="$PATH:/usr/local/go/bin"
 
-# when the image runs build and test everything to ensure env is setup correctly
-CMD ["cargo", "run", "--", "check-everything"]
-
 # needed for boringssl git operations
 RUN git config --global user.email "docker@example.com"
 RUN git config --global user.name "NP Docker"
 
-RUN mkdir -p /google/nearby
+RUN mkdir -p /google
+COPY . /google
+
 WORKDIR /google/nearby
 
 # prefetch dependencies so later build steps don't re-download on source changes
-COPY Cargo.toml Cargo.lock ./
 RUN cargo prefetch --lockfile Cargo.lock
 
-# copy repo into workdir of docker containter
-COPY . .
-
+# when the image runs build and test everything to ensure env is setup correctly
+CMD ["cargo", "run", "--", "check-everything"]
diff --git a/nearby/.dockerignore b/nearby/.dockerignore
deleted file mode 100644
index 8bd0a19..0000000
--- a/nearby/.dockerignore
+++ /dev/null
@@ -1,17 +0,0 @@
-/.idea
-/.git
-/target
-/.dockerignore
-/.gitignore
-
-/presence/_deps
-/presence/ldt_np_adv_ffi/target
-/presence/*/fuzz/target
-/presence/*/fuzz/corpus
-/presence/cmake-build
-/connections/ukey2/*/fuzz/target
-/connections/ukey2/*/fuzz/corpus
-/crypto/crypto_provider_boringssl/target
-
-**/CMakeCache.txt
-**/CMakeFiles
diff --git a/nearby/Cargo.lock b/nearby/Cargo.lock
index 63c63ac..76582bf 100644
--- a/nearby/Cargo.lock
+++ b/nearby/Cargo.lock
@@ -3,10 +3,13 @@
 version = 3
 
 [[package]]
-name = "Inflector"
-version = "0.11.4"
+name = "addr2line"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+dependencies = [
+ "gimli",
+]
 
 [[package]]
 name = "adler"
@@ -27,9 +30,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -52,19 +55,21 @@
 ]
 
 [[package]]
-name = "aho-corasick"
-version = "0.7.20"
+name = "ahash"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
 dependencies = [
- "memchr",
+ "cfg-if",
+ "once_cell",
+ "version_check",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
 dependencies = [
  "memchr",
 ]
@@ -76,6 +81,12 @@
 checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
 
 [[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -113,15 +124,15 @@
 
 [[package]]
 name = "anstyle"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
 dependencies = [
  "utf8parse",
 ]
@@ -147,9 +158,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
 
 [[package]]
 name = "array_ref"
@@ -177,6 +188,21 @@
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "backtrace"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
 name = "base16ct"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -190,9 +216,9 @@
 
 [[package]]
 name = "base64"
-version = "0.21.0"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
 
 [[package]]
 name = "base64ct"
@@ -207,6 +233,12 @@
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+
+[[package]]
 name = "blake2"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -245,9 +277,9 @@
 
 [[package]]
 name = "bstr"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
 dependencies = [
  "memchr",
  "serde",
@@ -258,9 +290,9 @@
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "base64 0.21.0",
+ "base64 0.21.2",
  "chrono",
- "clap 4.2.7",
+ "clap 4.3.19",
  "crossbeam",
  "env_logger",
  "globset",
@@ -273,13 +305,14 @@
  "thiserror",
  "tinytemplate",
  "walkdir",
+ "which",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.12.2"
+version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 
 [[package]]
 name = "byteorder"
@@ -381,7 +414,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "clap_lex 0.2.4",
  "indexmap",
  "textwrap",
@@ -389,9 +422,9 @@
 
 [[package]]
 name = "clap"
-version = "4.2.7"
+version = "4.3.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938"
+checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -400,27 +433,26 @@
 
 [[package]]
 name = "clap_builder"
-version = "4.2.7"
+version = "4.3.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd"
+checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
 dependencies = [
  "anstream",
  "anstyle",
- "bitflags",
- "clap_lex 0.4.1",
+ "clap_lex 0.5.0",
  "strsim",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.2.0"
+version = "4.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4"
+checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -434,9 +466,9 @@
 
 [[package]]
 name = "clap_lex"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
+checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 
 [[package]]
 name = "colorchoice"
@@ -456,9 +488,9 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "core-foundation-sys"
@@ -468,9 +500,9 @@
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.7"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
@@ -557,9 +589,9 @@
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.14"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
@@ -580,9 +612,9 @@
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
 ]
@@ -653,7 +685,7 @@
  "hex-literal",
  "openssl",
  "ouroboros",
- "rstest",
+ "rstest 0.17.0",
 ]
 
 [[package]]
@@ -699,7 +731,7 @@
  "hex-literal",
  "rand",
  "rand_ext",
- "rstest",
+ "rstest 0.17.0",
  "rstest_reuse",
  "test_helper",
  "wycheproof",
@@ -716,24 +748,37 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.5"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.28",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -758,9 +803,9 @@
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -779,9 +824,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -793,15 +838,15 @@
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -840,9 +885,9 @@
 
 [[package]]
 name = "errno"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
 dependencies = [
  "errno-dragonfly",
  "libc",
@@ -861,12 +906,9 @@
 
 [[package]]
 name = "fastrand"
-version = "1.9.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
 
 [[package]]
 name = "ff"
@@ -980,7 +1022,7 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1032,9 +1074,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1042,12 +1084,18 @@
 ]
 
 [[package]]
-name = "globset"
-version = "0.4.10"
+name = "gimli"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc"
+checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+
+[[package]]
+name = "globset"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aca8bbd8e0707c1887a8bbb7e6b40e228f251ff5d62c8220a4a7a53c73aff006"
 dependencies = [
- "aho-corasick 0.7.20",
+ "aho-corasick",
  "bstr",
  "fnv",
  "log",
@@ -1067,9 +1115,9 @@
 
 [[package]]
 name = "h2"
-version = "0.3.19"
+version = "0.3.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
 dependencies = [
  "bytes",
  "fnv",
@@ -1091,12 +1139,34 @@
 checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
+name = "handle_map"
+version = "0.1.0"
+dependencies = [
+ "criterion",
+ "crypto_provider",
+ "hashbrown 0.14.0",
+ "lock_api",
+ "portable-atomic",
+ "spin 0.9.8",
+]
+
+[[package]]
 name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
+name = "hashbrown"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
 name = "hdrhistogram"
 version = "7.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1127,18 +1197,9 @@
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "hex"
@@ -1148,9 +1209,9 @@
 
 [[package]]
 name = "hex-literal"
-version = "0.3.4"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
+checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
 
 [[package]]
 name = "hkdf"
@@ -1212,9 +1273,9 @@
 
 [[package]]
 name = "hyper"
-version = "0.14.26"
+version = "0.14.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1236,10 +1297,11 @@
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7"
+checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
 dependencies = [
+ "futures-util",
  "http",
  "hyper",
  "rustls",
@@ -1287,10 +1349,16 @@
 checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
 dependencies = [
  "autocfg",
- "hashbrown",
+ "hashbrown 0.12.3",
 ]
 
 [[package]]
+name = "init_with"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0175f63815ce00183bf755155ad0cb48c65226c5d17a724e369c25418d2b7699"
+
+[[package]]
 name = "inout"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1301,39 +1369,18 @@
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ipnet"
-version = "2.7.2"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
+ "hermit-abi 0.3.2",
  "rustix",
  "windows-sys 0.48.0",
 ]
@@ -1349,9 +1396,9 @@
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jni"
@@ -1377,9 +1424,9 @@
 
 [[package]]
 name = "js-sys"
-version = "0.3.62"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1399,9 +1446,9 @@
 dependencies = [
  "aes",
  "anyhow",
- "base64 0.21.0",
+ "base64 0.21.2",
  "blake2",
- "clap 4.2.7",
+ "clap 4.3.19",
  "criterion",
  "crypto_provider",
  "crypto_provider_default",
@@ -1426,7 +1473,7 @@
 dependencies = [
  "anyhow",
  "array_view",
- "base64 0.21.0",
+ "base64 0.21.2",
  "criterion",
  "crypto_provider",
  "crypto_provider_default",
@@ -1466,21 +1513,15 @@
 
 [[package]]
 name = "libc"
-version = "0.2.144"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
-
-[[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.7"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f"
+checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
 
 [[package]]
 name = "lock_adapter"
@@ -1491,9 +1532,9 @@
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1501,12 +1542,9 @@
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 
 [[package]]
 name = "memchr"
@@ -1516,9 +1554,9 @@
 
 [[package]]
 name = "memoffset"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
@@ -1566,6 +1604,56 @@
 ]
 
 [[package]]
+name = "np_adv"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "array_view",
+ "criterion",
+ "crypto_provider",
+ "crypto_provider_default",
+ "hex",
+ "init_with",
+ "lazy_static",
+ "ldt",
+ "ldt_np_adv",
+ "nom",
+ "np_ed25519",
+ "np_hkdf",
+ "rand",
+ "rand_ext",
+ "serde_json",
+ "sink",
+ "strum",
+ "strum_macros",
+ "test_helper",
+ "tinyvec",
+ "xts_aes",
+]
+
+[[package]]
+name = "np_ed25519"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "sink",
+ "tinyvec",
+]
+
+[[package]]
+name = "np_ffi_core"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "crypto_provider_default",
+ "handle_map",
+ "np_adv",
+ "spin 0.9.8",
+]
+
+[[package]]
 name = "np_hkdf"
 version = "0.1.0"
 dependencies = [
@@ -1605,28 +1693,37 @@
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi 0.3.2",
  "libc",
 ]
 
 [[package]]
-name = "once_cell"
-version = "1.17.1"
+name = "object"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "oorandom"
@@ -1642,11 +1739,11 @@
 
 [[package]]
 name = "openssl"
-version = "0.10.52"
+version = "0.10.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1663,14 +1760,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.87"
+version = "0.9.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
 dependencies = [
  "bssl-sys",
  "cc",
@@ -1681,31 +1778,32 @@
 
 [[package]]
 name = "os_str_bytes"
-version = "6.5.0"
+version = "6.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
 
 [[package]]
 name = "ouroboros"
-version = "0.15.6"
+version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
+checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954"
 dependencies = [
  "aliasable",
  "ouroboros_macro",
+ "static_assertions",
 ]
 
 [[package]]
 name = "ouroboros_macro"
-version = "0.15.6"
+version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
+checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8"
 dependencies = [
- "Inflector",
+ "heck",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -1725,16 +1823,6 @@
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "percent-encoding"
 version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1742,9 +1830,9 @@
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
 
 [[package]]
 name = "pin-utils"
@@ -1776,9 +1864,9 @@
 
 [[package]]
 name = "plotters"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -1789,24 +1877,24 @@
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
 dependencies = [
  "plotters-backend",
 ]
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1815,6 +1903,12 @@
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f32154ba0af3a075eefa1eda8bb414ee928f62303a54ea85b8d6638ff1a6ee9e"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1822,9 +1916,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
@@ -1855,9 +1949,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
@@ -1915,9 +2009,9 @@
 
 [[package]]
 name = "quote"
-version = "1.0.27"
+version = "1.0.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
 dependencies = [
  "proc-macro2",
 ]
@@ -2013,25 +2107,37 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.1"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
+checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
 dependencies = [
- "aho-corasick 1.0.1",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294"
+dependencies = [
+ "aho-corasick",
  "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.1"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 
 [[package]]
 name = "reqwest"
@@ -2039,7 +2145,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
 dependencies = [
- "base64 0.21.0",
+ "base64 0.21.2",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2095,7 +2201,17 @@
 dependencies = [
  "futures",
  "futures-timer",
- "rstest_macros",
+ "rstest_macros 0.16.0",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
+dependencies = [
+ "rstest_macros 0.17.0",
  "rustc_version",
 ]
 
@@ -2114,6 +2230,20 @@
 ]
 
 [[package]]
+name = "rstest_macros"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+ "unicode-ident",
+]
+
+[[package]]
 name = "rstest_reuse"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2126,6 +2256,12 @@
 ]
 
 [[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
 name = "rustc_version"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2136,13 +2272,12 @@
 
 [[package]]
 name = "rustix"
-version = "0.37.19"
+version = "0.38.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
 dependencies = [
- "bitflags",
+ "bitflags 2.3.3",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
  "windows-sys 0.48.0",
@@ -2150,9 +2285,9 @@
 
 [[package]]
 name = "rustls"
-version = "0.21.2"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f"
+checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36"
 dependencies = [
  "log",
  "ring",
@@ -2162,28 +2297,34 @@
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.0",
+ "base64 0.21.2",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.100.1"
+version = "0.101.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59"
 dependencies = [
  "ring",
  "untrusted",
 ]
 
 [[package]]
-name = "ryu"
-version = "1.0.13"
+name = "rustversion"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "same-file"
@@ -2196,9 +2337,9 @@
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
@@ -2212,9 +2353,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -2225,35 +2366,35 @@
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 
 [[package]]
 name = "serde"
-version = "1.0.162"
+version = "1.0.179"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6"
+checksum = "0a5bf42b8d227d4abf38a1ddb08602e229108a517cd4e5bb28f9c7eaafdce5c0"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.162"
+version = "1.0.179"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6"
+checksum = "741e124f5485c7e60c03b043f79f320bff3527f4bbf12cf3831750dc46a0ec2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.104"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
 dependencies = [
  "itoa",
  "ryu",
@@ -2274,9 +2415,9 @@
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -2296,6 +2437,13 @@
 checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
 
 [[package]]
+name = "sink"
+version = "0.1.0"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
 name = "slab"
 version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2340,16 +2488,41 @@
 ]
 
 [[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
-name = "subtle"
-version = "2.4.1"
+name = "strum"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -2364,9 +2537,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.15"
+version = "2.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2375,15 +2548,15 @@
 
 [[package]]
 name = "tempfile"
-version = "3.5.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
 dependencies = [
  "cfg-if",
  "fastrand",
  "redox_syscall",
  "rustix",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2411,22 +2584,22 @@
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
 ]
 
 [[package]]
@@ -2456,11 +2629,12 @@
 
 [[package]]
 name = "tokio"
-version = "1.28.2"
+version = "1.29.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
 dependencies = [
  "autocfg",
+ "backtrace",
  "bytes",
  "libc",
  "mio",
@@ -2559,7 +2733,7 @@
  "crypto_provider_rustcrypto",
  "nom",
  "rand",
- "rstest",
+ "rstest 0.16.0",
  "ukey2_proto",
  "ukey2_rs",
 ]
@@ -2601,7 +2775,7 @@
  "log",
  "num-bigint",
  "rand",
- "rstest",
+ "rstest 0.16.0",
  "sha2",
  "ukey2_proto",
 ]
@@ -2610,7 +2784,7 @@
 name = "ukey2_shell"
 version = "0.1.0"
 dependencies = [
- "clap 4.2.7",
+ "clap 4.3.19",
  "crypto_provider_rustcrypto",
  "ukey2_connections",
  "ukey2_rs",
@@ -2624,9 +2798,9 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unicode-normalization"
@@ -2639,9 +2813,9 @@
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -2709,9 +2883,9 @@
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.85"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -2719,24 +2893,24 @@
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.85"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.35"
+version = "0.4.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2746,9 +2920,9 @@
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.85"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2756,28 +2930,28 @@
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.85"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.15",
+ "syn 2.0.28",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.85"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "web-sys"
-version = "0.3.62"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2850,7 +3024,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.1",
 ]
 
 [[package]]
@@ -2868,7 +3042,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.1",
 ]
 
 [[package]]
@@ -2888,9 +3062,9 @@
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
 dependencies = [
  "windows_aarch64_gnullvm 0.48.0",
  "windows_aarch64_msvc 0.48.0",
@@ -3008,9 +3182,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core 0.6.4",
@@ -3033,7 +3207,7 @@
  "aes",
  "anyhow",
  "array_ref",
- "base64 0.21.0",
+ "base64 0.21.2",
  "crypto_provider",
  "crypto_provider_default",
  "hex",
diff --git a/nearby/Cargo.toml b/nearby/Cargo.toml
index fe44353..361628a 100644
--- a/nearby/Cargo.toml
+++ b/nearby/Cargo.toml
@@ -12,34 +12,46 @@
     "crypto/crypto_provider_openssl",
     "crypto/crypto_provider_rustcrypto",
     "crypto/crypto_provider_stubs",
+    "crypto/crypto_provider_test",
     "crypto/crypto_provider_default",
     "crypto/rand_core_05_adapter",
     "presence/array_view",
+    "presence/handle_map",
     "presence/ldt",
     "presence/ldt_np_adv",
     "presence/ldt_np_jni",
     "presence/ldt_tbc",
+    "presence/np_adv",
+    "presence/np_ed25519",
+    "presence/np_ffi_core",
     "presence/np_hkdf",
     "presence/rand_ext",
+    "presence/sink",
     "presence/test_helper",
     "presence/xts_aes",
 ]
 
 # TODO: remove ldt_np_adv_ffi once support for no_std + alloc no longer requires nightly
 # TODO: remove boringssl once we figure out a better plan for integrating the build system
-exclude = ["presence/ldt_np_adv_ffi", "crypto/crypto_provider_boringssl"]
+# TODO: remove np_c_ffi once cbindgen no longer requires nightly
+exclude = [
+    "presence/ldt_np_adv_ffi",
+    "crypto/crypto_provider_boringssl",
+    "presence/np_c_ffi",
+]
 
 [workspace.dependencies]
 # local crates
 array_ref = { path = "presence/array_ref" }
 array_view = { path = "presence/array_view" }
 crypto_provider = { path = "crypto/crypto_provider" }
-crypto_provider_default = {path = "crypto/crypto_provider_default", default-features=false}
+crypto_provider_default = { path = "crypto/crypto_provider_default", default-features = false }
 crypto_provider_openssl = { path = "crypto/crypto_provider_openssl" }
 crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" }
 crypto_provider_stubs = { path = "crypto/crypto_provider_stubs" }
 crypto_provider_test = { path = "crypto/crypto_provider_test" }
 lock_adapter = { path = "connections/ukey2/lock_adapter" }
+handle_map = { path = "presence/handle_map" }
 rand_core_05_adapter = { path = "crypto/rand_core_05_adapter" }
 rand_ext = { path = "presence/rand_ext" }
 test_helper = { path = "presence/test_helper" }
@@ -49,51 +61,65 @@
 ldt = { path = "presence/ldt" }
 ldt_np_adv = { path = "presence/ldt_np_adv" }
 ldt_tbc = { path = "presence/ldt_tbc" }
+np_adv = { path = "presence/np_adv" }
+np_ed25519 = { path = "presence/np_ed25519" }
+np_ffi_core = { path = "presence/np_ffi_core" }
+sink = { path = "presence/sink" }
 
 # from crates.io
 rand = { version = "0.8.5", default-features = false }
 rand_core = "0.6.4"
 rand_pcg = "0.3.1"
-sha2 = { version = "0.10.2", default-features = false }
+sha2 = { version = "0.10.6", default-features = false }
 aes = "0.8.2"
 cbc = { version = "0.1.2", features = ["alloc", "block-padding"] }
 ctr = "0.9.1"
+hashbrown = "0.14.0"
 hkdf = "0.12.3"
 hmac = "0.12.1"
-ed25519-dalek = { version = "2.0.0-rc.2", default-features = false }
+ed25519-dalek = { version = "2.0.0-rc.3", default-features = false }
 ed25519 = "2.2.0"
 aes-gcm = "0.10.1"
 hex = "0.4.3"
-serde_json = { version = "1.0.91", features = ["alloc"], default-features = false }
+serde_json = { version = "1.0.96", features = [
+    "alloc",
+], default-features = false }
 base64 = "0.21.0"
-x25519-dalek = { version = "2.0.0-rc.2", default-features = false }
-subtle = { version = "2.4.1", default-features = false }
+x25519-dalek = { version = "2.0.0-rc.3", default-features = false }
+subtle = { version = "2.5.0", default-features = false }
 rand_chacha = { version = "0.3.1", default-features = false }
-p256 = { version = "0.13.0", default-features = false }
-sec1 = "0.7.1"
+p256 = { version = "0.13.2", default-features = false }
+sec1 = "0.7.2"
+portable-atomic = "1.3.2"
 protobuf = "3.2.0"
 protobuf-codegen = "3.2.0"
 jni = "0.21.1"
-spin = "0.9.8"
+lock_api = "0.4.9"
+spin = { version = "0.9.8", features = ["once", "lock_api", "rwlock"] }
 anyhow = "1.0.64"
 log = "0.4.17"
 env_logger = "0.10.0"
 criterion = { version = "0.4.0", features = ["html_reports"] }
 clap = { version = "4.0.25", features = ["derive"] }
 lazy_static = { version = "1.4.0", features = ["spin_no_std"] }
-hex-literal = "0.3.4"
+hex-literal = "0.4.1"
 openssl = "0.10.48"
 cfg-if = "1.0.0"
 blake2 = "0.10.4"
 hdrhistogram = "7.5.0"
 regex = "1.7.0"
+tokio = { version = "1.20.3", features = ["full"] }
 xts-mode = "0.5.1"
-rstest = "0.16.0"
+rstest = { version = "0.17.0", default-features = false }
 rstest_reuse = "0.5.0"
 wycheproof = "0.4.0"
 chrono = { version = "0.4.24", default-features = false, features = ["clock"] }
 tempfile = "3.5.0"
 thiserror = "1.0.40"
+tinyvec = {version = "1.6.0", features = ["rustc_1_55"]}
+mlua = "0.8.8"
+strum = "0.24.1"
+strum_macros = "0.24.2"
 
 [workspace.package]
 version = "0.1.0"
@@ -109,6 +135,16 @@
 # fat vs thin: thin compiles a lot faster, and doesn't seem any slower.
 lto = "thin"
 
+# build profile optimized for size
+[profile.release-min-size]
+inherits = "release"
+panic = "abort"
+codegen-units = 1
+lto = true
+# z optimizes for size
+opt-level = "z"
+strip = true
+
 [package]
 name = "build-scripts"
 version.workspace = true
@@ -120,7 +156,10 @@
 anyhow.workspace = true
 shell-escape = "0.1.5"
 owo-colors = "3.5.0"
-reqwest = { version = "0.11.17", default-features = false, features = ["blocking", "rustls-tls"] }
+reqwest = { version = "0.11.17", default-features = false, features = [
+    "blocking",
+    "rustls-tls",
+] }
 semver = "1.0.17"
 base64.workspace = true
 walkdir = "2.3.3"
@@ -131,7 +170,7 @@
 thiserror.workspace = true
 log.workspace = true
 env_logger.workspace = true
+which = "4.4.0"
 
 [dev-dependencies]
 tempfile.workspace = true
-
diff --git a/nearby/README.md b/nearby/README.md
index 85387a0..86db67d 100644
--- a/nearby/README.md
+++ b/nearby/README.md
@@ -35,7 +35,7 @@
 First install Docker then build and run the image:
 
 ```
-sudo docker build -t nearby_rust:v1.0 .
+sudo docker build -t nearby_rust:v1.0 ..
 sudo docker run --rm -it nearby_rust:v1.0
 ```
 
diff --git a/nearby/connections/ukey2/ukey2_c_ffi/cpp/CMakeLists.txt b/nearby/connections/ukey2/ukey2_c_ffi/cpp/CMakeLists.txt
index 3c6f0db..c1247eb 100644
--- a/nearby/connections/ukey2/ukey2_c_ffi/cpp/CMakeLists.txt
+++ b/nearby/connections/ukey2/ukey2_c_ffi/cpp/CMakeLists.txt
@@ -29,14 +29,19 @@
     BINARY_DIR "${CMAKE_SOURCE_DIR}/ukey2_c_ffi"
     INSTALL_COMMAND "")
 
-# GoogleTest requires at least C++14
-set(CMAKE_CXX_STANDARD 14)
-add_compile_options(-Wall -Werror -Wextra -Wimplicit-fallthrough -Wextra-semi
-        -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi
-        -Wno-unneeded-internal-declaration
-        -Wno-ignored-pragma-optimize
-        -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wshadow
-        -Wsign-compare)
+# required for designated initializers on MSVC
+set(CMAKE_CXX_STANDARD 20)
+
+if(UNIX)
+    add_compile_options(-Wall -Werror -Wextra -Wimplicit-fallthrough -Wextra-semi
+            -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi
+            -Wno-unneeded-internal-declaration
+            -Wno-ignored-pragma-optimize
+            -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wshadow
+            -Wsign-compare)
+elseif(MSVC)
+    add_compile_options(-W4 -MD)
+endif()
 
 include(FetchContent)
 FetchContent_Declare(
@@ -52,10 +57,29 @@
   ukey2_ffi.h
   ukey2_bindings.h)
 
-target_link_libraries(ffi_test
-    "${CMAKE_SOURCE_DIR}/../../../../target/release/libukey2_c_ffi${CMAKE_SHARED_LIBRARY_SUFFIX}"
-    GTest::gtest_main
-    dl pthread)
+set(ukey2_c_ffi_FILENAME "${CMAKE_SHARED_LIBRARY_PREFIX}ukey2_c_ffi${CMAKE_SHARED_LIBRARY_SUFFIX}")
+
+if(UNIX)
+    target_link_libraries(
+        ffi_test
+        "${CMAKE_SOURCE_DIR}/../../../../target/release/${ukey2_c_ffi_FILENAME}"
+        GTest::gtest_main
+        dl pthread
+    )
+elseif(MSVC)
+    # MSVC requires linking to a static lib, which rust kindly generates
+    target_link_libraries(
+        ffi_test
+        "${CMAKE_SOURCE_DIR}/../../../../target/release/${ukey2_c_ffi_FILENAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        GTest::gtest_main
+    )
+    # MSVC requires that the dynamic lib be visible to the binary, and copying to the binary dir is an easy way to do that
+    get_target_property(ffi_test_BINARY_DIR ffi_test BINARY_DIR)
+    add_custom_command(
+        TARGET ffi_test POST_BUILD
+        COMMAND "${CMAKE_COMMAND}" -E copy "${CMAKE_SOURCE_DIR}/../../../../target/release/${ukey2_c_ffi_FILENAME}" "${ffi_test_BINARY_DIR}/."
+    )
+endif()
 
 include(GoogleTest)
 gtest_discover_tests(ffi_test)
diff --git a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
index 2e61f80..4a00416 100644
--- a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
+++ b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "aead"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
 dependencies = [
  "bytes",
  "crypto-common",
@@ -15,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -41,9 +41,9 @@
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
 dependencies = [
  "memchr",
 ]
@@ -56,9 +56,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.70"
+version = "1.0.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
 
 [[package]]
 name = "arbitrary"
@@ -109,18 +109,18 @@
 
 [[package]]
 name = "block-padding"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 dependencies = [
  "generic-array",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.12.1"
+version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 
 [[package]]
 name = "bytes"
@@ -160,9 +160,9 @@
 
 [[package]]
 name = "ciborium"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -171,15 +171,15 @@
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
 dependencies = [
  "ciborium-io",
  "half",
@@ -197,9 +197,9 @@
 
 [[package]]
 name = "clap"
-version = "3.2.24"
+version = "3.2.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eef2b3ded6a26dfaec672a742c93c8cf6b689220324da509ec5caa20de55dc83"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
 dependencies = [
  "bitflags",
  "clap_lex",
@@ -218,15 +218,15 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
@@ -290,9 +290,9 @@
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.14"
+version = "0.9.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
 dependencies = [
  "autocfg",
  "cfg-if",
@@ -303,18 +303,18 @@
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -372,23 +372,36 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.1"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.26",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -396,9 +409,9 @@
 
 [[package]]
 name = "derive-getters"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c5905670fd9c320154f3a4a01c9e609733cd7b753f3c58777ab7d5ce26686b3"
+checksum = "0122f262bf9c9a367829da84f808d9fb128c10ef283bbe7b0922a77cf07b2747"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -407,20 +420,20 @@
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.26",
 ]
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -438,9 +451,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -456,9 +469,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -475,13 +488,13 @@
 
 [[package]]
 name = "errno"
-version = "0.2.8"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
 dependencies = [
  "errno-dragonfly",
  "libc",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
@@ -521,9 +534,9 @@
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -532,9 +545,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -575,18 +588,9 @@
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "hkdf"
@@ -637,13 +641,13 @@
 
 [[package]]
 name = "io-lifetimes"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.1",
+ "hermit-abi 0.3.2",
  "libc",
- "windows-sys 0.45.0",
+ "windows-sys",
 ]
 
 [[package]]
@@ -657,9 +661,9 @@
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "jobserver"
@@ -672,9 +676,9 @@
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -687,9 +691,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -703,25 +707,16 @@
 ]
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "linux-raw-sys"
-version = "0.1.4"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 
 [[package]]
 name = "memchr"
@@ -731,9 +726,9 @@
 
 [[package]]
 name = "memoffset"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
@@ -786,19 +781,19 @@
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi 0.3.2",
  "libc",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "oorandom"
@@ -814,31 +809,21 @@
 
 [[package]]
 name = "os_str_bytes"
-version = "6.5.0"
+version = "6.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
  "elliptic-curve",
  "primeorder",
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "platforms"
 version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -846,9 +831,9 @@
 
 [[package]]
 name = "plotters"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -859,24 +844,24 @@
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
 dependencies = [
  "plotters-backend",
 ]
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -892,18 +877,18 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
@@ -961,9 +946,9 @@
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
@@ -1022,18 +1007,30 @@
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.3"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1042,29 +1039,38 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.29"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
 
 [[package]]
 name = "rustix"
-version = "0.36.11"
+version = "0.37.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
 dependencies = [
  "bitflags",
  "errno",
  "io-lifetimes",
  "libc",
  "linux-raw-sys",
- "windows-sys 0.45.0",
+ "windows-sys",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "same-file"
@@ -1077,15 +1083,15 @@
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -1095,30 +1101,36 @@
 ]
 
 [[package]]
-name = "serde"
-version = "1.0.160"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "serde"
+version = "1.0.171"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.160"
+version = "1.0.171"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
+checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.13",
+ "syn 2.0.26",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.103"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
 dependencies = [
  "itoa",
  "ryu",
@@ -1127,9 +1139,9 @@
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -1144,9 +1156,9 @@
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -1161,9 +1173,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.13"
+version = "2.0.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1172,15 +1184,16 @@
 
 [[package]]
 name = "tempfile"
-version = "3.4.0"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
 dependencies = [
+ "autocfg",
  "cfg-if",
  "fastrand",
  "redox_syscall",
  "rustix",
- "windows-sys 0.42.0",
+ "windows-sys",
 ]
 
 [[package]]
@@ -1191,22 +1204,22 @@
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.13",
+ "syn 2.0.26",
 ]
 
 [[package]]
@@ -1272,15 +1285,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -1310,9 +1323,9 @@
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -1320,24 +1333,24 @@
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.26",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1345,28 +1358,28 @@
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.26",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.87"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -1416,33 +1429,18 @@
 
 [[package]]
 name = "windows-sys"
-version = "0.42.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
  "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.48.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -1455,51 +1453,51 @@
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
@@ -1507,6 +1505,6 @@
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
diff --git a/nearby/crypto/crypto_provider_boringssl/Cargo.lock b/nearby/crypto/crypto_provider_boringssl/Cargo.lock
index 7d097a6..14402c1 100644
--- a/nearby/crypto/crypto_provider_boringssl/Cargo.lock
+++ b/nearby/crypto/crypto_provider_boringssl/Cargo.lock
@@ -3,12 +3,6 @@
 version = 3
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
 name = "base64"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -61,101 +55,6 @@
 ]
 
 [[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-timer"
-version = "3.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
 name = "getrandom"
 version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -174,9 +73,9 @@
 
 [[package]]
 name = "hex-literal"
-version = "0.3.4"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
+checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
 
 [[package]]
 name = "itoa"
@@ -200,24 +99,6 @@
 ]
 
 [[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -292,21 +173,19 @@
 
 [[package]]
 name = "rstest"
-version = "0.16.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b07f2d176c472198ec1e6551dc7da28f1c089652f66a7b722676c2238ebc0edf"
+checksum = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
 dependencies = [
- "futures",
- "futures-timer",
  "rstest_macros",
  "rustc_version",
 ]
 
 [[package]]
 name = "rstest_macros"
-version = "0.16.0"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7229b505ae0706e64f37ffc54a9c163e11022a6636d58fe1f3f52018257ff9f7"
+checksum = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
 dependencies = [
  "cfg-if",
  "proc-macro2",
@@ -381,15 +260,6 @@
 ]
 
 [[package]]
-name = "slab"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nearby/crypto/crypto_provider_openssl/Cargo.toml b/nearby/crypto/crypto_provider_openssl/Cargo.toml
index ef4a009..84d4380 100644
--- a/nearby/crypto/crypto_provider_openssl/Cargo.toml
+++ b/nearby/crypto/crypto_provider_openssl/Cargo.toml
@@ -10,7 +10,7 @@
 openssl.workspace = true
 cfg-if.workspace = true
 
-ouroboros = "0.15.5"
+ouroboros = "0.17.0"
 
 [features]
 default = []
diff --git a/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock b/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock
index f65c18d..9e1d140 100644
--- a/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock
+++ b/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock
@@ -3,12 +3,6 @@
 version = 3
 
 [[package]]
-name = "Inflector"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
-
-[[package]]
 name = "aead"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -21,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -132,15 +126,15 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.7"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
@@ -245,23 +239,36 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.5"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.26",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -269,20 +276,20 @@
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.26",
 ]
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -300,9 +307,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -312,9 +319,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.4"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -373,9 +380,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -394,6 +401,12 @@
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "hkdf"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -432,9 +445,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.144"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -448,16 +461,10 @@
 ]
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opaque-debug"
@@ -467,9 +474,9 @@
 
 [[package]]
 name = "openssl"
-version = "0.10.52"
+version = "0.10.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
 dependencies = [
  "bitflags",
  "cfg-if",
@@ -488,14 +495,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.16",
+ "syn 2.0.26",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.87"
+version = "0.9.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
 dependencies = [
  "cc",
  "libc",
@@ -505,25 +512,26 @@
 
 [[package]]
 name = "ouroboros"
-version = "0.15.6"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
+checksum = "b4361ddfdd108bddc19367ba805a3a43773d8bc3e407ac30e6c364cd264dd52e"
 dependencies = [
  "aliasable",
  "ouroboros_macro",
+ "static_assertions",
 ]
 
 [[package]]
 name = "ouroboros_macro"
-version = "0.15.6"
+version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
+checksum = "2b81e113ed913910f05ef45c9344f67588fe6395f92d906eedf9ee5d54279922"
 dependencies = [
- "Inflector",
+ "heck",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.26",
 ]
 
 [[package]]
@@ -537,16 +545,6 @@
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "pkg-config"
 version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -560,9 +558,9 @@
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -578,9 +576,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.1"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
@@ -611,18 +609,18 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.27"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
@@ -656,10 +654,19 @@
 ]
 
 [[package]]
-name = "sec1"
-version = "0.7.2"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -669,10 +676,16 @@
 ]
 
 [[package]]
-name = "sha2"
-version = "0.10.6"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -686,10 +699,16 @@
 checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
 
 [[package]]
-name = "subtle"
-version = "2.4.1"
+name = "static_assertions"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -698,15 +717,14 @@
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
- "quote",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.16"
+version = "2.0.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -721,15 +739,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -755,9 +773,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
diff --git a/nearby/presence/CMakeLists.txt b/nearby/presence/CMakeLists.txt
index 6fdeed6..2b4b66e 100644
--- a/nearby/presence/CMakeLists.txt
+++ b/nearby/presence/CMakeLists.txt
@@ -12,27 +12,72 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.14)
 
-project(ldt)
+project(NearbyProtocol)
 
-set(CMAKE_C_FLAGS_DEBUG "-g -DDEBUG")
-set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUG")
+# required for designated initializers on MSVC
+set(CMAKE_CXX_STANDARD 17)
 
-add_compile_options(-Wall -g -O1 -Wno-deprecated -Wno-deprecated-declarations)
+# root directory of repo
+set(BETO_CORE_ROOT ${CMAKE_SOURCE_DIR}/../..)
+
+# location of external third_party dependencies
+set(THIRD_PARTY_DIR ${BETO_CORE_ROOT}/third_party)
+
+set(CMAKE_C_FLAGS_DEBUG "-DDEBUG")
+set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG")
+if (UNIX)
+    set(CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}")
+    set(CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}")
+endif ()
+
+if (UNIX)
+    add_compile_options(-Wall -Wextra -Wimplicit-fallthrough -Wextra-semi
+            -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi
+            -Wshadow
+            -Wsign-compare)
+elseif (MSVC)
+    add_compile_options(-W4 -O1)
+endif ()
 
 find_package(OpenSSL REQUIRED)
-if ( OPENSSL_FOUND )
+if (OPENSSL_FOUND)
     message(STATUS "OpenSSL Found: ${OPENSSL_VERSION}")
     message(STATUS "OpenSSL Include: ${OPENSSL_INCLUDE_DIR}")
     message(STATUS "OpenSSL Libraries: ${OPENSSL_LIBRARIES}")
-endif()
+endif ()
 
+if (ENABLE_TESTS)
+    message(STATUS "Enabling workspace wide tests")
+
+    # Setup GoogleTest
+    include(FetchContent)
+    FetchContent_Declare(
+            googletest
+            GIT_REPOSITORY https://github.com/google/googletest.git
+            GIT_TAG release-1.12.1
+    )
+    FetchContent_MakeAvailable(googletest)
+    enable_testing()
+    include(GoogleTest)
+
+    # Find GoogleBenchmark
+    find_package(benchmark REQUIRED)
+
+    # Setup jsoncpp
+    set(JSONCPP_DIR ${THIRD_PARTY_DIR}/jsoncpp)
+    include_directories(${JSONCPP_DIR})
+    add_library(
+            jsoncpp
+            ${JSONCPP_DIR}/jsoncpp.cpp
+    )
+endif ()
+
+add_subdirectory(np_cpp_ffi)
 add_subdirectory(ldt_np_c_sample)
 
 if (ENABLE_FUZZ)
     message(STATUS "Building fuzzers")
     add_subdirectory(ldt_np_adv_ffi_fuzz)
-endif()
-
-
+endif ()
diff --git a/nearby/presence/README.md b/nearby/presence/README.md
index 8f38f7d..fe63af1 100644
--- a/nearby/presence/README.md
+++ b/nearby/presence/README.md
@@ -5,17 +5,20 @@
 See the appendix below for more details on XTS and LDT.
 
 ## Project structure
-*Note all new crates follow the convention of using underscore `_` instead of hyphen `-` in crate names
+
+*Note all new crates follow the convention of using underscore `_` instead of
+hyphen `-` in crate names
 
 ### `ldt`
 
 An implementation
 of [`LDT`](https://luca-giuzzi.unibs.it/corsi/Support/papers-cryptography/1619-2007-NIST-Submission.pdf)
- which can use `xts-aes` as its tweakable block cipher.
+which can use `xts-aes` as its tweakable block cipher.
 
- ### `ldt_tbc`
+### `ldt_tbc`
 
-The Tweakable Block Cipher traits for use in LDT. These traits have implementations in the `xts_aes`
+The Tweakable Block Cipher traits for use in LDT. These traits have
+implementations in the `xts_aes`
 
 ### `ldt_np_adv`
 
@@ -24,24 +27,27 @@
 
 ### `ldt_np_adv_ffi`
 
-C API for rust library, currently exposes C/C++ clients the needed API's to use the NP specific LDT rust implementation.
-For an example of how to integrate with these API's see program in `ldt_np_c_sample`
+C API for rust library, currently exposes C/C++ clients the needed API's to use
+the NP specific LDT rust implementation.
+For an example of how to integrate with these API's see program
+in `ldt_np_c_sample`
 
 ### `ldt_np_c_sample`
 
-Sample c program which provides its own OpenSSL based AES implementation to encrypt data through the LDT rust implementation
+Sample c program which provides its own OpenSSL based AES implementation to
+encrypt data through the LDT rust implementation
 An example of how to interface with the `ldt_np_adv_ffi` API's
 
 ### `np_hkdf`
 
-The Key Derivation functions used for creating keys used by nearby presence from a key_seed
+The Key Derivation functions used for creating keys used by nearby presence from
+a key_seed
 
 ### `xts_aes`
 
 An implementation
 of [`XTS-AES`](https://luca-giuzzi.unibs.it/corsi/Support/papers-cryptography/1619-2007-NIST-Submission.pdf)
 
-
 ## Setup for MacOS local development
 
 Dependencies:
@@ -50,37 +56,51 @@
 brew install protobuf rapidjson google-benchmark
 ```
 
-We depend on OpenSSL of version at least 3.0.5 being installed on your machine to build the fuzzers, for macOS run:
+We depend on OpenSSL of version at least 3.0.5 being installed on your machine
+to build the fuzzers, for macOS run:
 
 ```
 brew install openssl@3
 ```
 
-Your build system may still be picking up an older version so you will have to symlink to the brew installed version:
+Your build system may still be picking up an older version so you will have to
+symlink to the brew installed version:
+
 ```
 brew link --force openssl
 ```
 
-The in-box version of Clang which comes from XCode developer tools does not have a fuzzer runtime so we will have to use our own
+The in-box version of Clang which comes from XCode developer tools does not have
+a fuzzer runtime so we will have to use our own
+
 ```
 brew install llvm
 ```
-then to override the default version it needs to come before it in $PATH. first find your path:
+
+then to override the default version it needs to come before it in $PATH. first
+find your path:
+
 ```
 $(brew --prefix llvm)/bin
 ```
+
 then add this to the beginning of your path
+
 ```
 echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.bash_profile
 export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
 ```
+
 verify success with:
+
 ```
 clang --version
 ```
+
 it should display the path to the homebrew version and not the xcode version.
 
 Some other dependencies you may need include:
+
 ```
 brew install ninja bindgen
 ```
@@ -117,7 +137,9 @@
 ```
 
 ### `ldt_np_c_sample`
-From the root directory run the following commands to build and run the C sample.
+
+From the root directory run the following commands to build and run the C
+sample.
 
 ```
 mkdir -p cmake-build && cd cmake-build
@@ -127,7 +149,9 @@
 ```
 
 ### `ldt_np_c_sample/tests`
-Test cases for the ldt_np_adv_ffi C API which are built alongside the sample, use the following commands to run the tests, from root of repo:
+
+Test cases for the ldt_np_adv_ffi C API which are built alongside the sample,
+use the following commands to run the tests, from root of repo:
 
 ```
 mkdir -p cmake-build && cd cmake-build
@@ -135,7 +159,9 @@
 make
 cd ldt_np_c_sample/tests && ctest
 ```
-you can then view the output of the tests in `ldt_np_c_sample/tests/Testing/Temporary/LastTest.log`
+
+you can then view the output of the tests
+in `ldt_np_c_sample/tests/Testing/Temporary/LastTest.log`
 
 To run the benchmarks:
 
@@ -155,7 +181,15 @@
 
 ### C
 
-Build w/ cmake as per `ldt_np_c_sample` instructions. Fuzzers will be in `np_ffi_fuzz` in the build directory.
+Build cmake project with `-DENABLE_FUZZ=true`<br>
+Fuzz targets will be output to the build dir for:<br>
+
+- `ldt_np_adv_ffi_fuzz`<br>
+- `np_cpp_ffi/fuzz`
+    - To run `fuzzer_np_cpp_deserialize`
+      use: `./fuzzer_np_cpp_deserialize -max_len=255 corpus`
+    - The `corpus` directory provides seed data to help the fuzzer generate
+      more relevant data to input
 
 ## Cross-compilation for Android
 
@@ -198,15 +232,20 @@
 - In your `adb shell`, run the benchmark
 
     - `./ldt_scan-... --bench`
+
 ### Building min-sized release cross-compiled for Android
-- Copy and paste the following into your `~/.cargo/config.toml`, replacing with a path to your NDK and Host OS
+
+- Copy and paste the following into your `~/.cargo/config.toml`, replacing with
+  a path to your NDK and Host OS
+
 ```
 [target.aarch64-linux-android]
 # Replace this with a path to your ndk version and the prebuilt toolchain for your Host OS
 linker = "Library/Android/sdk/ndk/23.2.8568313/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android21-clang"
 ```
+
 - then run:
-`cargo +nightly build -Z build-std=core,alloc -Z build-std-features=panic_immediate_abort --target aarch64-linux-android --profile release-min-size`
+  `cargo +nightly build -Z build-std=core,alloc -Z build-std-features=panic_immediate_abort --target aarch64-linux-android --profile release-min-size`
 
 ## Appendix
 
diff --git a/nearby/presence/array_view/src/lib.rs b/nearby/presence/array_view/src/lib.rs
index 9ba21b1..c57e959 100644
--- a/nearby/presence/array_view/src/lib.rs
+++ b/nearby/presence/array_view/src/lib.rs
@@ -45,6 +45,10 @@
 }
 
 impl<T, const N: usize> ArrayView<T, N> {
+    /// Destructures this ArrayView into a (length, payload) pair.
+    pub fn into_raw_parts(self) -> (usize, [T; N]) {
+        (self.len, self.array)
+    }
     /// A version of [`ArrayView#try_from_array`] which panics if `len > buffer.len()`,
     /// suitable for usage in `const` contexts.
     pub const fn const_from_array(array: [T; N], len: usize) -> ArrayView<T, N> {
diff --git a/nearby/presence/handle_map/Cargo.toml b/nearby/presence/handle_map/Cargo.toml
new file mode 100644
index 0000000..8f00bf7
--- /dev/null
+++ b/nearby/presence/handle_map/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+name = "handle_map"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+hashbrown.workspace = true
+lock_api.workspace = true
+portable-atomic.workspace = true
+spin.workspace = true
+crypto_provider.workspace = true
+
+[dev-dependencies]
+criterion.workspace = true
+
+[[bench]]
+name = "benches"
+harness = false
diff --git a/nearby/presence/handle_map/benches/benches.rs b/nearby/presence/handle_map/benches/benches.rs
new file mode 100644
index 0000000..f1ee427
--- /dev/null
+++ b/nearby/presence/handle_map/benches/benches.rs
@@ -0,0 +1,330 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use handle_map::*;
+use std::sync::Arc;
+use std::thread;
+use std::time::{Duration, Instant};
+
+// For the sake of these benchmarks, we just want
+// to be able to allocate an almost-arbitrary number of handles
+// if needed by the particular benchmark.
+const MAX_ACTIVE_HANDLES: u32 = u32::MAX - 1;
+
+// The default number of threads+shards to use
+// in multi-threaded benchmarks, chosen
+// to represent a typical multi-threaded use-case.
+const DEFAULT_SHARDS_AND_THREADS: u8 = 8;
+
+/// We're using u8's for the wrapped object type to deliberately ignore
+/// costs related to accessing the underlying data - we just care about
+/// benchmarking handle-map operations.
+type BenchHandleMap = HandleMap<u8>;
+
+fn build_handle_map(num_shards: u8) -> BenchHandleMap {
+    let dimensions = HandleMapDimensions { num_shards, max_active_handles: MAX_ACTIVE_HANDLES };
+    HandleMap::with_dimensions(dimensions)
+}
+
+/// Benchmark for repeated reads on a single thread
+fn single_threaded_read_benchmark(c: &mut Criterion) {
+    // The number of shards should not matter much here.
+    let handle_map = build_handle_map(8);
+    // Pre-populate the map with a single handle.
+    let handle = handle_map.allocate(|| 0xFF).unwrap();
+    let handle_map_ref = &handle_map;
+    // Perform repeated reads
+    c.bench_function("single-threaded reads", |b| {
+        b.iter(|| {
+            let guard = handle_map_ref.get(black_box(handle)).unwrap();
+            black_box(*guard)
+        })
+    });
+}
+
+/// Benchmark for repeated writes on a single thread
+fn single_threaded_write_benchmark(c: &mut Criterion) {
+    // The number of shards should not matter much here.
+    let handle_map = build_handle_map(8);
+    // Pre-populate the map with a single handle.
+    let handle = handle_map.allocate(|| 0xFF).unwrap();
+    let handle_map_ref = &handle_map;
+    // Perform repeated writes
+    c.bench_function("single-threaded writes", |b| {
+        b.iter(|| {
+            let mut guard = handle_map_ref.get_mut(black_box(handle)).unwrap();
+            *guard *= black_box(0);
+        })
+    });
+}
+
+/// Benchmark for repeated allocations on a single thread
+#[allow(unused_must_use)]
+fn single_threaded_allocate_benchmark(c: &mut Criterion) {
+    // The number of shards here is chosen to be quasi-reasonable.
+    // Realistically, performance will fluctuate somewhat with this
+    // due to the difference in the number of internal hash-map collisions,
+    // but ultimately we only care about the asymptotic behavior.
+    let handle_map = build_handle_map(8);
+    let handle_map_ref = &handle_map;
+    // Perform repeated allocations
+    c.bench_function("single-threaded allocations", |b| {
+        b.iter(|| {
+            handle_map_ref.allocate(|| black_box(0xEE));
+        })
+    });
+}
+
+/// Benchmark for repeated allocation->deallocation on a single thread
+/// starting from an empty map.
+#[allow(unused_must_use)]
+fn single_threaded_allocate_deallocate_near_empty_benchmark(c: &mut Criterion) {
+    // The number of shards should not matter much here.
+    let handle_map = build_handle_map(8);
+    let handle_map_ref = &handle_map;
+    // Perform repeated allocation/deallocation pairs
+    c.bench_function("single-threaded allocate/deallocate pairs (empty init state)", |b| {
+        b.iter(|| {
+            let handle = handle_map_ref.allocate(|| black_box(0xDD)).unwrap();
+            handle_map_ref.deallocate(handle);
+        })
+    });
+}
+
+/// Benchmark for repeated allocation->deallocation starting
+/// from a map with a thousand elements per shard.
+#[allow(unused_must_use)]
+fn single_threaded_allocate_deallocate_one_thousand_benchmark(c: &mut Criterion) {
+    let handle_map = build_handle_map(8);
+    for _ in 0..(8 * 1000) {
+        handle_map.allocate(|| black_box(0xFF)).unwrap();
+    }
+    let handle_map_ref = &handle_map;
+
+    // Perform repeated allocation/deallocation pairs
+    c.bench_function(
+        "single-threaded allocate/deallocate pairs (init one thousand elements per shard)",
+        |b| {
+            b.iter(|| {
+                let handle = handle_map_ref.allocate(|| black_box(0xDD)).unwrap();
+                handle_map_ref.deallocate(handle);
+            })
+        },
+    );
+}
+
+/// Benchmark for repeated allocation->deallocation starting
+/// from a map with a million elements per shard.
+#[allow(unused_must_use)]
+fn single_threaded_allocate_deallocate_one_million_benchmark(c: &mut Criterion) {
+    let handle_map = build_handle_map(8);
+    for _ in 0..(8 * 1000000) {
+        handle_map.allocate(|| black_box(0xFF)).unwrap();
+    }
+    let handle_map_ref = &handle_map;
+
+    // Perform repeated allocation/deallocation pairs
+    c.bench_function(
+        "single-threaded allocate/deallocate pairs (init one million elements per shard)",
+        |b| {
+            b.iter(|| {
+                let handle = handle_map_ref.allocate(|| black_box(0xDD)).unwrap();
+                handle_map_ref.deallocate(handle);
+            })
+        },
+    );
+}
+
+/// Helper function for creating a multi-threaded benchmark
+/// with the set number of threads. Untimed Initialization of state
+/// should occur prior to this call. This method will repeatedly
+/// execute the benchmark code on all threads
+fn bench_multithreaded<F>(name: &str, num_threads: u8, benchable_fn_ref: Arc<F>, c: &mut Criterion)
+where
+    F: Fn() + Send + Sync + 'static,
+{
+    c.bench_function(name, move |b| {
+        b.iter_custom(|iters| {
+            // The returned results from the threads will be their timings
+            let mut join_handles = Vec::new();
+            for _ in 0..num_threads {
+                let benchable_fn_ref_clone = benchable_fn_ref.clone();
+                let join_handle = thread::spawn(move || {
+                    let start = Instant::now();
+                    for _ in 0..iters {
+                        benchable_fn_ref_clone();
+                    }
+                    start.elapsed()
+                });
+                join_handles.push(join_handle);
+            }
+            //Threads spawned, now collect the results
+            let mut total_duration = Duration::from_nanos(0);
+            for join_handle in join_handles {
+                let thread_duration = join_handle.join().unwrap();
+                total_duration += thread_duration;
+            }
+            total_duration /= num_threads as u32;
+            total_duration
+        })
+    });
+}
+
+/// Defines a number of reads/writes to perform [relative
+/// to other operations performed in a given test]
+#[derive(Debug, Clone, Copy)]
+struct ReadWriteCount {
+    num_reads: usize,
+    num_writes: usize,
+}
+
+const READS_ONLY: ReadWriteCount = ReadWriteCount { num_reads: 4, num_writes: 0 };
+
+const READ_LEANING: ReadWriteCount = ReadWriteCount { num_reads: 3, num_writes: 1 };
+
+const BALANCED: ReadWriteCount = ReadWriteCount { num_reads: 2, num_writes: 2 };
+
+const WRITE_LEANING: ReadWriteCount = ReadWriteCount { num_reads: 1, num_writes: 3 };
+
+const WRITES_ONLY: ReadWriteCount = ReadWriteCount { num_reads: 0, num_writes: 4 };
+
+const READ_WRITE_COUNTS: [ReadWriteCount; 5] =
+    [READS_ONLY, READ_LEANING, BALANCED, WRITE_LEANING, WRITES_ONLY];
+
+/// Benchmarks a repeated allocate/[X writes]/[Y reads]/deallocate workflow across
+/// the default number of threads and shards.
+fn lifecycle_read_and_write_multithreaded(per_object_rw_count: ReadWriteCount, c: &mut Criterion) {
+    let name = format!(
+        "lifecycle_read_and_write_multithreaded(reads/object: {}, writes/object:{})",
+        per_object_rw_count.num_reads, per_object_rw_count.num_writes
+    );
+    // We need an Arc to be able to pass this off to `bench_multithreaded`.
+    let handle_map = Arc::new(build_handle_map(DEFAULT_SHARDS_AND_THREADS));
+    bench_multithreaded(
+        &name,
+        DEFAULT_SHARDS_AND_THREADS,
+        Arc::new(move || {
+            let handle = handle_map.allocate(|| black_box(0xFF)).unwrap();
+            for _ in 0..per_object_rw_count.num_writes {
+                let mut write_guard = handle_map.get_mut(handle).unwrap();
+                *write_guard *= black_box(1);
+            }
+            for _ in 0..per_object_rw_count.num_reads {
+                let read_guard = handle_map.get_mut(handle).unwrap();
+                black_box(*read_guard);
+            }
+            handle_map.deallocate(handle).unwrap();
+        }),
+        c,
+    );
+}
+
+fn lifecycle_benchmarks(c: &mut Criterion) {
+    for read_write_count in READ_WRITE_COUNTS {
+        // Using 8 separate shards to roughly match the number of active threads.
+        lifecycle_read_and_write_multithreaded(read_write_count, c);
+    }
+}
+
+/// Benchmarks repeated cycles of accessing the given number of distinct objects, each
+/// with the given number of reads and writes across the given number of threads.
+fn read_and_write_contention_multithreaded(
+    num_threads: u8,
+    num_distinct_objects: u32,
+    per_object_rw_count: ReadWriteCount,
+    c: &mut Criterion,
+) {
+    let name = format!("read_and_write_contention_multithreaded(threads: {}, objects: {}, reads/object: {}, writes/object:{})",
+                       num_threads, num_distinct_objects, per_object_rw_count.num_reads, per_object_rw_count.num_writes);
+    // Default to 8 shards, ultimately doesn't matter much since we only ever access a few shards.
+    // This needs to be `'static` in order to pass a ref off to `bench_multithreaded`.
+    let handle_map = Arc::new(build_handle_map(8));
+    let mut handles = Vec::new();
+    for i in 0..num_distinct_objects {
+        let handle = handle_map.allocate(|| i as u8).unwrap();
+        handles.push(handle);
+    }
+
+    bench_multithreaded(
+        &name,
+        num_threads,
+        Arc::new(move || {
+            // Deliberately performing all writes first, with
+            // the goal of getting staggered timings from
+            // all of the threads for subsequent iterations.
+            // We also perform reads and writes across all objects
+            // in batches to get something resembling uniform access.
+            for _ in 0..per_object_rw_count.num_writes {
+                for handle in handles.iter() {
+                    let mut write_guard = handle_map.get_mut(*handle).unwrap();
+                    *write_guard *= black_box(1);
+                }
+            }
+            for _ in 0..per_object_rw_count.num_reads {
+                for handle in handles.iter() {
+                    let read_guard = handle_map.get(*handle).unwrap();
+                    black_box(*read_guard);
+                }
+            }
+        }),
+        c,
+    );
+}
+
+fn read_write_contention_benchmarks(c: &mut Criterion) {
+    for num_threads in [2, 4, 8].iter() {
+        for num_distinct_objects in [1u32, 2u32, 4u32].iter() {
+            if num_distinct_objects >= &(*num_threads as u32) {
+                continue;
+            }
+            for read_write_count in READ_WRITE_COUNTS {
+                read_and_write_contention_multithreaded(
+                    *num_threads,
+                    *num_distinct_objects,
+                    read_write_count,
+                    c,
+                );
+            }
+        }
+    }
+}
+
+/// Benchmarks allocation (starting from empty) for the default number of shards and threads
+fn allocator_contention_benchmark(c: &mut Criterion) {
+    let name = "allocator_contention_multithreaded";
+    // We need an Arc to pass this off to `bench_multithreaded`
+    let handle_map = Arc::new(build_handle_map(DEFAULT_SHARDS_AND_THREADS));
+    bench_multithreaded(
+        name,
+        DEFAULT_SHARDS_AND_THREADS,
+        Arc::new(move || {
+            handle_map.allocate(|| black_box(0xFF)).unwrap();
+        }),
+        c,
+    );
+}
+
+criterion_group!(
+    benches,
+    single_threaded_read_benchmark,
+    single_threaded_write_benchmark,
+    single_threaded_allocate_benchmark,
+    single_threaded_allocate_deallocate_near_empty_benchmark,
+    single_threaded_allocate_deallocate_one_thousand_benchmark,
+    single_threaded_allocate_deallocate_one_million_benchmark,
+    lifecycle_benchmarks,
+    read_write_contention_benchmarks,
+    allocator_contention_benchmark,
+);
+criterion_main!(benches);
diff --git a/nearby/presence/handle_map/src/lib.rs b/nearby/presence/handle_map/src/lib.rs
new file mode 100644
index 0000000..745aec4
--- /dev/null
+++ b/nearby/presence/handle_map/src/lib.rs
@@ -0,0 +1,608 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! A thread-safe implementation of a map for managing object handles,
+//! a safer alternative to raw pointers for FFI interop.
+#![cfg_attr(not(test), no_std)]
+#![forbid(unsafe_code)]
+#![deny(missing_docs)]
+extern crate alloc;
+extern crate core;
+
+use alloc::boxed::Box;
+use alloc::vec::Vec;
+use core::ops::{Deref, DerefMut};
+use core::sync::atomic::Ordering;
+use hashbrown::hash_map::EntryRef;
+use portable_atomic::{AtomicU32, AtomicU64};
+use spin::lock_api::*;
+
+#[cfg(test)]
+mod tests;
+
+/// A RAII read lock guard for an object in a [`HandleMap`]
+/// pointed-to by a given [`Handle`]. When this struct is
+/// dropped, the underlying read lock on the associated
+/// shard will be dropped.
+pub struct ObjectReadGuard<'a, T> {
+    guard: lock_api::MappedRwLockReadGuard<'a, spin::RwLock<()>, T>,
+}
+
+impl<'a, T> Deref for ObjectReadGuard<'a, T> {
+    type Target = T;
+
+    fn deref(&self) -> &Self::Target {
+        self.guard.deref()
+    }
+}
+
+/// A RAII read-write lock guard for an object in a [`HandleMap`]
+/// pointed-to by a given [`Handle`]. When this struct is
+/// dropped, the underlying read-write lock on the associated
+/// shard will be dropped.
+pub struct ObjectReadWriteGuard<'a, T> {
+    guard: lock_api::MappedRwLockWriteGuard<'a, spin::RwLock<()>, T>,
+}
+
+impl<'a, T> Deref for ObjectReadWriteGuard<'a, T> {
+    type Target = T;
+
+    fn deref(&self) -> &Self::Target {
+        self.guard.deref()
+    }
+}
+
+impl<'a, T> DerefMut for ObjectReadWriteGuard<'a, T> {
+    fn deref_mut(&mut self) -> &mut Self::Target {
+        self.guard.deref_mut()
+    }
+}
+
+/// FFI-transmissible structure expressing the dimensions
+/// (max # of allocatable slots, number of shards) of a handle-map
+/// to be used upon initialization.
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct HandleMapDimensions {
+    /// The number of shards which are employed
+    /// by the associated handle-map.
+    pub num_shards: u8,
+    /// The maximum number of active handles which may be
+    /// stored within the associated handle-map.
+    pub max_active_handles: u32,
+}
+
+/// Trait for marker structs containing information about a
+/// given [`SingletonHandleMap`], including the underlying
+/// object type and the dimensions of the map.
+/// Used primarily to enforce type-level constraints
+/// on `SingletoneHandleMap`s, including
+/// ensuring that they are truly singletons.
+pub trait SingletonHandleMapInfo {
+    /// The underlying kind of object pointed-to by handles
+    /// derived from the associated handle-map.
+    type Object: Send + Sync;
+
+    /// Gets the dimensions of the corresponding handle-map.
+    fn dimensions(&self) -> HandleMapDimensions;
+
+    /// Gets a static reference to the global handle-map
+    fn get_handle_map() -> &'static HandleMap<Self::Object>;
+}
+
+/// An individual handle to be given out by a [`HandleMap`].
+/// This representation is untyped, and just a wrapper
+/// around a handle-id, in contrast to implementors of `HandleLike`.
+#[derive(Clone, Copy, PartialEq, Eq, Hash)]
+pub struct Handle {
+    handle_id: u64,
+}
+
+impl From<&Handle> for Handle {
+    fn from(handle: &Handle) -> Self {
+        *handle
+    }
+}
+
+impl Handle {
+    /// Constructs a handle wrapping the given ID.
+    ///
+    /// No validity checks are done on the wrapped ID
+    /// to ensure that the given ID is active in
+    /// any specific handle-map, and the type
+    /// of the handle is not represented.
+    ///
+    /// As a result, this method is only useful for
+    /// allowing access to handles from an FFI layer.
+    pub fn from_id(handle_id: u64) -> Self {
+        Self { handle_id }
+    }
+    /// Gets the ID for this handle.
+    ///
+    /// Since the underlying handle is un-typed,`
+    /// this method is only suitable for
+    /// transmitting handles across an FFI layer.
+    pub fn get_id(&self) -> u64 {
+        self.handle_id
+    }
+    /// Derives the shard index from the handle id
+    fn get_shard_index(&self, num_shards: u8) -> usize {
+        (self.handle_id % (num_shards as u64)) as usize
+    }
+}
+
+/// Error raised when attempting to allocate into a full handle-map.
+#[derive(Debug)]
+pub struct HandleMapFullError;
+
+/// Internal error enum for failed allocations into a given shard.
+enum ShardAllocationError<T, F: FnOnce() -> T> {
+    /// Error for when the entry for the handle is occupied,
+    /// in which case we spit out the object-provider to try again
+    /// with a new handle-id.
+    EntryOccupied(F),
+    /// Error for when we would exceed the maximum number of allocations.
+    ExceedsAllocationLimit,
+}
+
+/// Error raised when the entry for a given [`Handle`] doesn't exist.
+#[derive(Debug)]
+pub struct HandleNotPresentError;
+
+/// Wrapper around a `HandleMap` which is specifically tailored for maintaining
+/// a global singleton `'static` reference to a handle-map.
+/// The wrapper handles initialization of the singleton in a const-context
+/// and subsequent accesses to ensure that the underlying map is always
+/// initialized upon attempts to access it.
+pub struct SingletonHandleMap<I: SingletonHandleMapInfo> {
+    info: I,
+    wrapped: spin::once::Once<HandleMap<I::Object>, spin::relax::Spin>,
+}
+
+impl<I: SingletonHandleMapInfo> SingletonHandleMap<I> {
+    /// Constructs a new global handle-map using the given
+    /// singleton handle-map info. This method is callable
+    /// from a `const`-context to allow it to be used to initialize
+    /// `static` variables.
+    pub const fn with_info(info: I) -> Self {
+        Self { info, wrapped: spin::once::Once::new() }
+    }
+    /// Initialize the handle-map if it's not already initialized,
+    /// and return a reference to the result.
+    pub fn get(&self) -> &HandleMap<I::Object> {
+        self.wrapped.call_once(|| {
+            let dimensions = self.info.dimensions();
+            HandleMap::with_dimensions(dimensions)
+        })
+    }
+}
+
+/// A thread-safe mapping from "handle"s [like pointers, but safer]
+/// to underlying structures, supporting allocations, reads, writes,
+/// and deallocations of objects behind handles.
+pub struct HandleMap<T: Send + Sync> {
+    /// The dimensions of this handle-map
+    dimensions: HandleMapDimensions,
+
+    /// The individually-lockable "shards" of the handle-map,
+    /// among which the keys will be roughly uniformly-distributed.
+    handle_map_shards: Box<[HandleMapShard<T>]>,
+
+    /// An atomically-incrementing counter which tracks the
+    /// next handle ID which allocations will attempt to use.
+    new_handle_id_counter: AtomicU64,
+
+    /// An atomic integer roughly tracking the number of
+    /// currently-outstanding allocated entries in this
+    /// handle-map among all [`HandleMapShard`]s.
+    outstanding_allocations_counter: AtomicU32,
+}
+
+impl<T: Send + Sync> HandleMap<T> {
+    /// Creates a new handle-map with the given `HandleMapDimensions`.
+    pub fn with_dimensions(dimensions: HandleMapDimensions) -> Self {
+        let mut handle_map_shards = Vec::with_capacity(dimensions.num_shards as usize);
+        for _ in 0..dimensions.num_shards {
+            handle_map_shards.push(HandleMapShard::default());
+        }
+        let handle_map_shards = handle_map_shards.into_boxed_slice();
+        Self {
+            dimensions,
+            handle_map_shards,
+            new_handle_id_counter: AtomicU64::new(0),
+            outstanding_allocations_counter: AtomicU32::new(0),
+        }
+    }
+}
+
+impl<T: Send + Sync> HandleMap<T> {
+    /// Allocates a new object within the given handle-map, returning
+    /// a handle to the location it was stored at. This operation
+    /// may fail if attempting to allocate over the `dimensions.max_active_handles`
+    /// limit imposed on the handle-map, in which case this method
+    /// will return a `HandleMapFullError`.
+    pub fn allocate(
+        &self,
+        initial_value_provider: impl FnOnce() -> T,
+    ) -> Result<Handle, HandleMapFullError> {
+        let mut initial_value_provider = initial_value_provider;
+        loop {
+            // Increment the new-handle-ID counter using relaxed memory ordering,
+            // since the only invariant that we want to enforce is that concurrently-running
+            // threads always get distinct new handle-ids.
+            let new_handle_id = self.new_handle_id_counter.fetch_add(1, Ordering::Relaxed);
+            let new_handle = Handle::from_id(new_handle_id);
+            let shard_index = new_handle.get_shard_index(self.dimensions.num_shards);
+
+            // Now, check the shard to see if we can actually allocate into it.
+            let shard_allocate_result = self.handle_map_shards[shard_index].try_allocate(
+                new_handle,
+                initial_value_provider,
+                &self.outstanding_allocations_counter,
+                self.dimensions.max_active_handles,
+            );
+            match shard_allocate_result {
+                Ok(_) => {
+                    return Ok(new_handle);
+                }
+                Err(ShardAllocationError::ExceedsAllocationLimit) => {
+                    return Err(HandleMapFullError);
+                }
+                Err(ShardAllocationError::EntryOccupied(thrown_back_provider)) => {
+                    // We need to do the whole thing again with a new ID
+                    initial_value_provider = thrown_back_provider;
+                }
+            }
+        }
+    }
+
+    /// Gets a read-only reference to an object within the given handle-map,
+    /// if the given handle is present. Otherwise, returns [`HandleNotPresentError`].
+    pub fn get(&self, handle: Handle) -> Result<ObjectReadGuard<T>, HandleNotPresentError> {
+        let shard_index = handle.get_shard_index(self.dimensions.num_shards);
+        self.handle_map_shards[shard_index].get(handle)
+    }
+
+    /// Gets a read+write reference to an object within the given handle-map,
+    /// if the given handle is present. Otherwise, returns [`HandleNotPresentError`].
+    pub fn get_mut(
+        &self,
+        handle: Handle,
+    ) -> Result<ObjectReadWriteGuard<T>, HandleNotPresentError> {
+        let shard_index = handle.get_shard_index(self.dimensions.num_shards);
+        self.handle_map_shards[shard_index].get_mut(handle)
+    }
+
+    /// Removes the object pointed to by the given handle in
+    /// the handle-map, returning the removed object if it
+    /// exists. Otherwise, returns [`HandleNotPresentError`].
+    pub fn deallocate(&self, handle: Handle) -> Result<T, HandleNotPresentError> {
+        let shard_index = handle.get_shard_index(self.dimensions.num_shards);
+        self.handle_map_shards[shard_index]
+            .deallocate(handle, &self.outstanding_allocations_counter)
+    }
+
+    /// Gets the actual number of elements stored in the entire map.
+    /// Only suitable for single-threaded sections of tests.
+    #[cfg(test)]
+    pub(crate) fn len(&self) -> usize {
+        self.handle_map_shards.iter().map(|s| s.len()).sum()
+    }
+
+    /// Sets the new-handle-id counter to the given value.
+    /// Only suitable for tests.
+    #[cfg(test)]
+    pub(crate) fn set_new_handle_id_counter(&mut self, value: u64) {
+        self.new_handle_id_counter = AtomicU64::new(value);
+    }
+}
+
+// Bunch o' type aliases to make talking about them much easier in the shard code.
+type ShardMapType<T> = hashbrown::HashMap<Handle, T>;
+type ShardReadWriteLock<T> = RwLock<ShardMapType<T>>;
+type ShardReadGuard<'a, T> = RwLockReadGuard<'a, ShardMapType<T>>;
+type ShardUpgradableReadGuard<'a, T> = RwLockUpgradableReadGuard<'a, ShardMapType<T>>;
+type ShardReadWriteGuard<'a, T> = RwLockWriteGuard<'a, ShardMapType<T>>;
+
+/// An individual handle-map shard, which is ultimately
+/// just a hash-map behind a lock.
+pub(crate) struct HandleMapShard<T: Send + Sync> {
+    data: RwLock<ShardMapType<T>>,
+}
+
+impl<T: Send + Sync> Default for HandleMapShard<T> {
+    fn default() -> Self {
+        Self { data: RwLock::new(hashbrown::HashMap::new()) }
+    }
+}
+
+impl<T: Send + Sync> HandleMapShard<T> {
+    fn get(&self, handle: Handle) -> Result<ObjectReadGuard<T>, HandleNotPresentError> {
+        let map_read_guard = ShardReadWriteLock::<T>::read(&self.data);
+        let read_only_map_ref = map_read_guard.deref();
+        if read_only_map_ref.contains_key(&handle) {
+            let object_read_guard = ShardReadGuard::<T>::map(map_read_guard, move |map_ref| {
+                // We know that the entry exists, since we've locked the
+                // shard and already checked that it exists prior to
+                // handing out this new, mapped read-lock.
+                map_ref.get(&handle).unwrap()
+            });
+            Ok(ObjectReadGuard { guard: object_read_guard })
+        } else {
+            // Auto-drop the read guard, and return an error
+            Err(HandleNotPresentError)
+        }
+    }
+    /// Gets a read-write guard on the entire shard map if an entry for the given
+    /// handle exists, but if not, yield [`HandleNotPresentError`].
+    fn get_read_write_guard_if_entry_exists(
+        &self,
+        handle: Handle,
+    ) -> Result<ShardReadWriteGuard<T>, HandleNotPresentError> {
+        // Start with an upgradable read lock and then upgrade to a write lock.
+        // By doing this, we prevent new readers from entering (see `spin` documentation)
+        let map_upgradable_read_guard = ShardReadWriteLock::<T>::upgradable_read(&self.data);
+        let read_only_map_ref = map_upgradable_read_guard.deref();
+        if read_only_map_ref.contains_key(&handle) {
+            // If we know that the entry exists, and we're currently
+            // holding a read-lock, we know that we're safe to request
+            // an upgrade to a write lock, since only one write or
+            // upgradable read lock can be outstanding at any one time.
+            let map_read_write_guard =
+                ShardUpgradableReadGuard::<T>::upgrade(map_upgradable_read_guard);
+            Ok(map_read_write_guard)
+        } else {
+            // Auto-drop the read guard, we don't need to allow a write.
+            Err(HandleNotPresentError)
+        }
+    }
+
+    fn get_mut(&self, handle: Handle) -> Result<ObjectReadWriteGuard<T>, HandleNotPresentError> {
+        let map_read_write_guard = self.get_read_write_guard_if_entry_exists(handle)?;
+        // Expose only the pointed-to object with a mapped read-write guard
+        let object_read_write_guard =
+            ShardReadWriteGuard::<T>::map(map_read_write_guard, move |map_ref| {
+                // Already checked that the entry exists while holding the lock
+                map_ref.get_mut(&handle).unwrap()
+            });
+        Ok(ObjectReadWriteGuard { guard: object_read_write_guard })
+    }
+    fn deallocate(
+        &self,
+        handle: Handle,
+        outstanding_allocations_counter: &AtomicU32,
+    ) -> Result<T, HandleNotPresentError> {
+        let mut map_read_write_guard = self.get_read_write_guard_if_entry_exists(handle)?;
+        // We don't need to worry about double-decrements, since the above call
+        // got us an upgradable read guard for our read, which means it's the only
+        // outstanding upgradeable guard on the shard. See `spin` documentation.
+        // Remove the pointed-to object from the map, and return it,
+        // releasing the lock when the guard goes out of scope.
+        let removed_object = map_read_write_guard.deref_mut().remove(&handle).unwrap();
+        // Decrement the allocations counter. Release ordering because we want
+        // to ensure that clearing the map entry never gets re-ordered to after when
+        // this counter gets decremented.
+        outstanding_allocations_counter.sub(1, Ordering::Release);
+        Ok(removed_object)
+    }
+
+    fn try_allocate<F>(
+        &self,
+        handle: Handle,
+        object_provider: F,
+        outstanding_allocations_counter: &AtomicU32,
+        max_active_handles: u32,
+    ) -> Result<(), ShardAllocationError<T, F>>
+    where
+        F: FnOnce() -> T,
+    {
+        // Use an upgradeable read guard -> write guard to provide greater fairness
+        // toward writers (see `spin` documentation)
+        let map_upgradable_read_guard = ShardReadWriteLock::<T>::upgradable_read(&self.data);
+        let mut map_read_write_guard =
+            ShardUpgradableReadGuard::<T>::upgrade(map_upgradable_read_guard);
+        match map_read_write_guard.entry_ref(&handle) {
+            EntryRef::Occupied(_) => {
+                // We've already allocated for that handle-id, so yield
+                // the object provider back to the caller.
+                Err(ShardAllocationError::EntryOccupied(object_provider))
+            }
+            EntryRef::Vacant(vacant_entry) => {
+                // An entry is open, but we haven't yet checked the allocations count.
+                // Try to increment the total allocations count atomically.
+                // Use acquire ordering on a successful bump, because we don't want
+                // to invoke the allocation closure before we have a guaranteed slot.
+                // On the other hand, upon failure, we don't care about ordering
+                // of surrounding operations, and so we use a relaxed ordering there.
+                let allocation_count_bump_result = outstanding_allocations_counter.fetch_update(
+                    Ordering::Acquire,
+                    Ordering::Relaxed,
+                    |old_total_allocations| {
+                        if old_total_allocations >= max_active_handles {
+                            None
+                        } else {
+                            Some(old_total_allocations + 1)
+                        }
+                    },
+                );
+                match allocation_count_bump_result {
+                    Ok(_) => {
+                        // We're good to actually allocate
+                        let object = object_provider();
+                        vacant_entry.insert(object);
+                        Ok(())
+                    }
+                    Err(_) => {
+                        // The allocation would cause us to exceed the allowed allocations,
+                        // so release all locks and error.
+                        Err(ShardAllocationError::ExceedsAllocationLimit)
+                    }
+                }
+            }
+        }
+    }
+    /// Gets the actual number of elements stored in this shard.
+    /// Only suitable for single-threaded sections of tests.
+    #[cfg(test)]
+    fn len(&self) -> usize {
+        let guard = ShardReadWriteLock::<T>::read(&self.data);
+        guard.deref().len()
+    }
+}
+
+/// Externally-facing trait for things which behave like handle-map handles
+/// with a globally-defined handle-map for the type.
+pub trait HandleLike: Sized {
+    /// The underlying object type pointed-to by this handle
+    type Object: Send + Sync;
+
+    /// Tries to allocate a new handle using the given provider
+    /// to construct the underlying stored object as a new
+    /// entry into the global handle table for this type.
+    fn allocate(
+        initial_value_provider: impl FnOnce() -> Self::Object,
+    ) -> Result<Self, HandleMapFullError>;
+
+    /// Gets a RAII read-guard on the contents behind this handle.
+    fn get(&self) -> Result<ObjectReadGuard<Self::Object>, HandleNotPresentError>;
+
+    /// Gets a RAII read-write guard on the contents behind this handle.
+    fn get_mut(&self) -> Result<ObjectReadWriteGuard<Self::Object>, HandleNotPresentError>;
+
+    /// Deallocates the contents behind this handle.
+    fn deallocate(self) -> Result<Self::Object, HandleNotPresentError>;
+}
+
+#[macro_export]
+/// `declare_handle_map! { handle_module_name, handle_type_name, wrapped_type,
+/// map_dimension_provider }`
+///
+/// Declares a new public module with name `handle_module_name` which includes a new type
+/// `handle_type_name` which is `#[repr(C)]` and represents FFI-accessible handles
+/// to values of type `wrapped_type`.
+///
+/// Internal to the generated module, a new static `SingletonHandleMap` is created, where the
+/// maximum number of active handles and the number of shards are given by
+/// the dimensions returned by evaluation of the `map_dimension_provider` expression.
+///
+/// Note: `map_dimension_provider` will be evaluated within the defined module's scope,
+/// so you will likely need to use `super` to refer to definitions in the enclosing scope.
+///
+/// # Example
+/// The following code defines an FFI-safe type `StringHandle` which references
+/// the `String` data-type, and uses it to define a (contrived)
+/// function `sample` which will print "Hello World".
+///
+/// ```
+/// mod sample {
+///     use core::ops::Deref;
+///     use handle_map::{declare_handle_map, HandleMapDimensions, HandleLike};
+///
+///     fn get_string_handle_map_dimensions() -> HandleMapDimensions {
+///         HandleMapDimensions {
+///             num_shards: 8,
+///             max_active_handles: 100,
+///         }
+///     }
+///
+///     declare_handle_map! { string_handle, StringHandle, String,
+///                           super::get_string_handle_map_dimensions() }
+///
+///     use string_handle::StringHandle;
+///
+///     fn sample() {
+///         // Note: this method could panic if there are
+///         // more than 99 outstanding handles.
+///
+///         // Allocate a new string-handle pointing to the string "Hello"
+///         let handle = StringHandle::allocate(|| { "Hello".to_string() }).unwrap();
+///         {
+///             // Obtain a write-guard on the contents of our handle
+///             let mut handle_write_guard = handle.get_mut().unwrap();
+///             handle_write_guard.push_str(" World");
+///             // Write guard is auto-dropped at the end of this block.
+///         }
+///         {
+///             // Obtain a read-guard on the contents of our handle.
+///             // Note that we had to ensure that the write-guard was
+///             // dropped prior to doing this, or else execution
+///             // could potentially hang.
+///             let handle_read_guard = handle.get().unwrap();
+///             println!("{}", handle_read_guard.deref());
+///         }
+///         // Clean up the data behind the created handle
+///         handle.deallocate().unwrap();
+///     }
+/// }
+/// ```
+macro_rules! declare_handle_map {
+    ($handle_module_name:ident, $handle_type_name:ident, $wrapped_type:ty,
+     $map_dimension_provider:expr) => {
+        #[doc = concat!("Macro-generated (via `handle_map::declare_handle_map!`) module",
+                        " which defines the `", stringify!($handle_module_name), "::",
+                        stringify!($handle_type_name), "` FFI-transmissible handle type ",
+                        " which references values of type `", stringify!($wrapped_type), "`.")]
+        pub mod $handle_module_name {
+            use $crate::SingletonHandleMapInfo;
+
+            struct SingletonInfo;
+
+            static GLOBAL_HANDLE_MAP: $crate::SingletonHandleMap<SingletonInfo> =
+                $crate::SingletonHandleMap::with_info(SingletonInfo);
+
+            impl $crate::SingletonHandleMapInfo for SingletonInfo {
+                type Object = $wrapped_type;
+
+                fn dimensions(&self) -> $crate::HandleMapDimensions {
+                    $map_dimension_provider
+                }
+                fn get_handle_map() -> &'static $crate::HandleMap<$wrapped_type> {
+                    GLOBAL_HANDLE_MAP.get()
+                }
+            }
+
+            #[doc = concat!("A `#[repr(C)]` handle to a value of type `",
+                            stringify!($wrapped_type), "`.")]
+            #[repr(C)]
+            #[derive(Clone, Copy, PartialEq, Eq)]
+            pub struct $handle_type_name {
+                handle_id: u64,
+            }
+
+            impl $handle_type_name {
+                fn get_as_handle(&self) -> $crate::Handle {
+                    $crate::Handle::from_id(self.handle_id)
+                }
+            }
+            impl $crate::HandleLike for $handle_type_name {
+                type Object = $wrapped_type;
+                fn allocate(initial_value_provider: impl FnOnce() -> $wrapped_type,
+                ) -> Result<Self, $crate::HandleMapFullError> {
+                    SingletonInfo::get_handle_map().allocate(initial_value_provider)
+                        .map(|derived_handle| Self {
+                            handle_id: derived_handle.get_id(),
+                        })
+                }
+                fn get(&self) -> Result<$crate::ObjectReadGuard<$wrapped_type>, $crate::HandleNotPresentError> {
+                    SingletonInfo::get_handle_map().get(self.get_as_handle())
+                }
+                fn get_mut(&self) -> Result<$crate::ObjectReadWriteGuard<$wrapped_type>, $crate::HandleNotPresentError> {
+                    SingletonInfo::get_handle_map().get_mut(self.get_as_handle())
+                }
+                fn deallocate(self) -> Result<$wrapped_type, $crate::HandleNotPresentError> {
+                    SingletonInfo::get_handle_map().deallocate(self.get_as_handle())
+                }
+            }
+        }
+    }
+}
diff --git a/nearby/presence/handle_map/src/tests.rs b/nearby/presence/handle_map/src/tests.rs
new file mode 100644
index 0000000..d97657f
--- /dev/null
+++ b/nearby/presence/handle_map/src/tests.rs
@@ -0,0 +1,288 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+use crate::*;
+
+use hashbrown::HashSet;
+use std::sync::Arc;
+use std::thread;
+
+// Maximum number of active handles used across all tests
+// Chosen to be divisible by the number of active threads
+const MAX_ACTIVE_HANDLES: u32 = NUM_ACTIVE_THREADS * MAX_ACTIVE_HANDLES_PER_THREAD;
+
+const MAX_ACTIVE_HANDLES_PER_THREAD: u32 = 16384;
+
+// Deliberately picking a low number of shards so that we
+// are more likely to discover conflicts between threads.
+const NUM_SHARDS: u8 = 4;
+
+// Deliberately picking a higher number of threads.
+const NUM_ACTIVE_THREADS: u32 = 8;
+
+const DEFAULT_DIMENSIONS: HandleMapDimensions =
+    HandleMapDimensions { num_shards: NUM_SHARDS, max_active_handles: MAX_ACTIVE_HANDLES };
+
+fn build_handle_map<T: Send + Sync>() -> HandleMap<T> {
+    HandleMap::with_dimensions(DEFAULT_DIMENSIONS)
+}
+
+/// Performs the same testing function for each thread
+fn test_for_each_thread<F>(test_function_ref: Arc<F>, num_repetitions_per_thread: usize)
+where
+    F: Fn() + Send + Sync + 'static,
+{
+    let mut join_handles = Vec::new();
+    for _ in 0..NUM_ACTIVE_THREADS {
+        let test_function_clone = test_function_ref.clone();
+        let join_handle = thread::spawn(move || {
+            for _ in 0..num_repetitions_per_thread {
+                test_function_clone();
+            }
+        });
+        join_handles.push(join_handle);
+    }
+    for join_handle in join_handles {
+        join_handle.join().unwrap()
+    }
+}
+
+/// Tests the consistency of reads from the same handle across
+/// multiple threads.
+#[test]
+fn test_read_consistency_same_address() {
+    let num_repetitions_per_thread = 10000;
+    let handle_map = build_handle_map::<String>();
+    let handle = handle_map.allocate(|| "hello".to_string()).expect("Allocation shouldn't fail");
+    let test_fn = Arc::new(move || {
+        let value_ref = handle_map.get(handle).expect("Getting shouldn't fail");
+        assert_eq!("hello", value_ref.deref());
+    });
+    test_for_each_thread(test_fn, num_repetitions_per_thread);
+}
+
+/// Tests overloading the table with allocations to ensure
+/// that when all is said and done, we still haven't exceeded
+/// the allocations limit.
+#[test]
+#[allow(unused_must_use)]
+fn test_overload_with_allocations() {
+    let num_repetitions_per_thread = 2 * MAX_ACTIVE_HANDLES_PER_THREAD as usize;
+    let handle_map = build_handle_map::<u8>();
+
+    let handle_map_function_ref = Arc::new(handle_map);
+    let handle_map_post_function_ref = handle_map_function_ref.clone();
+
+    let test_fn = Arc::new(move || {
+        handle_map_function_ref.allocate(|| 0xFF);
+    });
+    test_for_each_thread(test_fn, num_repetitions_per_thread);
+
+    let actual_num_active_handles = handle_map_post_function_ref.len();
+    assert_eq!(MAX_ACTIVE_HANDLES as usize, actual_num_active_handles);
+}
+
+/// Tests deallocations and allocations near the allocation limit.
+#[test]
+#[allow(unused_must_use)]
+fn test_overload_allocations_deallocations() {
+    let num_repetitions_per_thread = 10000;
+
+    //Pre-fill the map so that there's only one available entry.
+    let handle_map = build_handle_map::<u8>();
+    for i in 0..(MAX_ACTIVE_HANDLES - 1) {
+        handle_map.allocate(|| (i % 256) as u8);
+    }
+
+    let handle_map_function_ref = Arc::new(handle_map);
+    let handle_map_post_function_ref = handle_map_function_ref.clone();
+
+    let test_fn = Arc::new(move || {
+        let allocation_result = handle_map_function_ref.allocate(|| 0xFF);
+        if let Ok(handle) = allocation_result {
+            handle_map_function_ref.deallocate(handle).unwrap();
+        }
+    });
+    test_for_each_thread(test_fn, num_repetitions_per_thread);
+
+    // No matter what happened above, we should have the same number
+    // of handles as when we started, because every successful allocation
+    // should have been paired with a successful deallocation.
+    let actual_num_active_handles = handle_map_post_function_ref.len();
+    assert_eq!((MAX_ACTIVE_HANDLES - 1) as usize, actual_num_active_handles);
+
+    //Verify that we still have space for one more entry after all that.
+    handle_map_post_function_ref.allocate(|| 0xEE).unwrap();
+}
+
+/// Tests the progress of allocate/read/write/read/deallocate
+/// to independent handles across multiple threads.
+#[test]
+fn test_full_lifecycle_independent_handles() {
+    let num_repetitions_per_thread = 10000;
+    let handle_map = build_handle_map::<String>();
+    let test_fn = Arc::new(move || {
+        let handle =
+            handle_map.allocate(|| "Hello".to_string()).expect("Allocation shouldn't fail");
+        {
+            let value_ref = handle_map.get(handle).expect("Getting the value shouldn't fail");
+            assert_eq!("Hello", &*value_ref);
+        };
+        {
+            let mut value_mut_ref =
+                handle_map.get_mut(handle).expect("Mutating the value shouldn't fail");
+            value_mut_ref.deref_mut().push_str(" World!");
+        };
+        {
+            let value_ref = handle_map
+                .get(handle)
+                .expect("Getting the value after modification shouldn't fail");
+            assert_eq!("Hello World!", &*value_ref);
+        };
+        let removed = handle_map.deallocate(handle).expect("Deallocation shouldn't fail");
+        assert_eq!("Hello World!", removed);
+    });
+    test_for_each_thread(test_fn, num_repetitions_per_thread);
+}
+
+/// Tests the consistency of reads+writes to the same handle,
+/// where threads modify and read different parts of an
+/// underlying structure.
+#[test]
+fn test_consistency_of_same_handle_multithreaded_modifications() {
+    let num_repetitions_per_thread = 10000;
+    let handle_map = Arc::new(build_handle_map::<(String, String)>());
+    let handle = handle_map
+        .allocate(|| ("A".to_string(), "B".to_string()))
+        .expect("Allocation shouldn't fail");
+
+    let handle_map_second_ref = handle_map.clone();
+
+    let join_handle_a = thread::spawn(move || {
+        for i in 1..num_repetitions_per_thread {
+            {
+                let value_ref =
+                    handle_map.get(handle).expect("Getting the value from thread A shouldn't fail");
+                let value = &value_ref.0;
+                assert_eq!(i, value.len());
+            }
+            {
+                let mut value_mut_ref = handle_map
+                    .get_mut(handle)
+                    .expect("Mutating the value from thread A shouldn't fail");
+                value_mut_ref.0.push('A');
+            }
+        }
+    });
+
+    let join_handle_b = thread::spawn(move || {
+        for i in 1..num_repetitions_per_thread {
+            {
+                let value_ref = handle_map_second_ref
+                    .get(handle)
+                    .expect("Getting the value from thread B shouldn't fail");
+                let value = &value_ref.1;
+                assert_eq!(i, value.len());
+            }
+            {
+                let mut value_mut_ref = handle_map_second_ref
+                    .get_mut(handle)
+                    .expect("Mutating the value from thread B shouldn't fail");
+                value_mut_ref.1.push('B');
+            }
+        }
+    });
+
+    join_handle_a.join().unwrap();
+    join_handle_b.join().unwrap();
+}
+
+/// Multi-threaded test to ensure that when attempting
+/// to allocate over handle IDs which are already allocated,
+/// all threads eventually get distinct, unused handle IDs
+/// for their own allocations.
+#[test]
+fn test_non_overwriting_old_handles() {
+    let mut all_handles: HashSet<Handle> = HashSet::new();
+    let num_repetitions_per_thread = 100;
+    let mut handle_map = build_handle_map::<u8>();
+    for _ in 0..(num_repetitions_per_thread * NUM_ACTIVE_THREADS) {
+        let handle = handle_map.allocate(|| 0xFF).expect("Initial allocations shouldn't fail");
+        all_handles.insert(handle);
+    }
+    // Reset the new-handle-id counter
+    handle_map.set_new_handle_id_counter(0);
+
+    let handle_map = Arc::new(handle_map);
+
+    let mut thread_handles: Vec<thread::JoinHandle<Vec<Handle>>> = Vec::new();
+    for _ in 0..NUM_ACTIVE_THREADS {
+        let handle_map_reference = handle_map.clone();
+        let thread_handle = thread::spawn(move || {
+            let mut handles = Vec::new();
+            for i in 0..num_repetitions_per_thread {
+                let handle = handle_map_reference
+                    .allocate(move || (i % 256) as u8)
+                    .expect("No allocation should fail");
+                handles.push(handle);
+            }
+            handles
+        });
+        thread_handles.push(thread_handle);
+    }
+    for thread_handle in thread_handles {
+        let handles: Vec<Handle> = thread_handle.join().expect("Individual threads shouldn't fail");
+        for handle in handles {
+            let was_distinct = all_handles.insert(handle);
+            assert!(was_distinct);
+        }
+    }
+}
+
+#[test]
+fn test_id_wraparound() {
+    let mut handle_map = build_handle_map::<u8>();
+    handle_map.set_new_handle_id_counter(u64::MAX);
+    handle_map.allocate(|| 0xAB).expect("Counter wrap-around allocation should not fail");
+    handle_map.allocate(|| 0xCD).expect("Post-counter-wrap-around allocation should not fail");
+}
+
+#[test]
+fn test_deallocate_unallocated_handle() {
+    let handle_map = build_handle_map::<usize>();
+    let handle = handle_map.allocate(|| 2).expect("Allocation shouldn't fail");
+    let deallocated = handle_map.deallocate(handle).expect("Deallocation shouldn't fail");
+    assert_eq!(2, deallocated);
+    let double_deallocate_result = handle_map.deallocate(handle);
+    assert!(double_deallocate_result.is_err());
+}
+
+#[test]
+fn test_get_unallocated_handle() {
+    let handle_map = build_handle_map::<u8>();
+    let handle = handle_map.allocate(|| 0xFE).expect("Allocation shouldn't fail");
+    let deallocated = handle_map.deallocate(handle).expect("Deallocation shouldn't fail");
+    assert_eq!(0xFE, deallocated);
+    let read_result = handle_map.get(handle);
+    assert!(read_result.is_err());
+}
+
+#[test]
+fn test_get_mut_unallocated_handle() {
+    let handle_map = build_handle_map::<(usize, usize, usize)>();
+    let handle = handle_map.allocate(|| (1, 2, 3)).expect("Allocation shouldn't fail");
+    let deallocated = handle_map.deallocate(handle).expect("Deallocation shouldn't fail");
+    assert_eq!((1, 2, 3), deallocated);
+    let get_mut_result = handle_map.get_mut(handle);
+    assert!(get_mut_result.is_err());
+}
diff --git a/nearby/presence/ldt/fuzz/Cargo.lock b/nearby/presence/ldt/fuzz/Cargo.lock
index 285bbca..767108f 100644
--- a/nearby/presence/ldt/fuzz/Cargo.lock
+++ b/nearby/presence/ldt/fuzz/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "aead"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
 dependencies = [
  "bytes",
  "crypto-common",
@@ -15,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -69,9 +69,9 @@
 
 [[package]]
 name = "block-padding"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 dependencies = [
  "generic-array",
 ]
@@ -118,24 +118,24 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -193,23 +193,36 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.1"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -217,9 +230,9 @@
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -228,9 +241,9 @@
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -248,9 +261,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -260,9 +273,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -295,9 +308,9 @@
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -306,9 +319,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -391,9 +404,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -407,16 +420,10 @@
 ]
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opaque-debug"
@@ -426,25 +433,15 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
  "elliptic-curve",
  "primeorder",
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "platforms"
 version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -452,9 +449,9 @@
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -470,27 +467,27 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.53"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
@@ -524,10 +521,19 @@
 ]
 
 [[package]]
-name = "sec1"
-version = "0.7.1"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -537,10 +543,16 @@
 ]
 
 [[package]]
-name = "sha2"
-version = "0.10.6"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -555,15 +567,15 @@
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -578,15 +590,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -606,9 +618,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
@@ -625,6 +637,6 @@
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
diff --git a/nearby/presence/ldt_np_adv/fuzz/Cargo.lock b/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
index 92f2deb..5050ad0 100644
--- a/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
+++ b/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "aead"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
 dependencies = [
  "bytes",
  "crypto-common",
@@ -15,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -73,9 +73,9 @@
 
 [[package]]
 name = "block-padding"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 dependencies = [
  "generic-array",
 ]
@@ -122,24 +122,24 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -197,23 +197,36 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.1"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -221,9 +234,9 @@
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -232,9 +245,9 @@
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -252,9 +265,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -264,9 +277,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -299,9 +312,9 @@
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -310,9 +323,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -409,9 +422,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -425,12 +438,6 @@
 ]
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "np_hkdf"
 version = "0.1.0"
 dependencies = [
@@ -441,9 +448,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opaque-debug"
@@ -453,25 +460,15 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
  "elliptic-curve",
  "primeorder",
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "platforms"
 version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -479,9 +476,9 @@
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -497,27 +494,27 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.53"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
@@ -551,10 +548,19 @@
 ]
 
 [[package]]
-name = "sec1"
-version = "0.7.1"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -564,10 +570,16 @@
 ]
 
 [[package]]
-name = "sha2"
-version = "0.10.6"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -582,15 +594,15 @@
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -605,15 +617,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -633,9 +645,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
@@ -652,6 +664,6 @@
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
diff --git a/nearby/presence/ldt_np_adv_ffi/.cargo/config-boringssl.toml b/nearby/presence/ldt_np_adv_ffi/.cargo/config-boringssl.toml
index f5ab7fa..5a4a047 100644
--- a/nearby/presence/ldt_np_adv_ffi/.cargo/config-boringssl.toml
+++ b/nearby/presence/ldt_np_adv_ffi/.cargo/config-boringssl.toml
@@ -1,3 +1,3 @@
 paths = [
     "../../../boringssl-build/boringssl/rust/bssl-crypto",
-]
\ No newline at end of file
+]
diff --git a/nearby/presence/ldt_np_adv_ffi/Cargo.lock b/nearby/presence/ldt_np_adv_ffi/Cargo.lock
index e58cea8..1d13887 100644
--- a/nearby/presence/ldt_np_adv_ffi/Cargo.lock
+++ b/nearby/presence/ldt_np_adv_ffi/Cargo.lock
@@ -3,12 +3,6 @@
 version = 3
 
 [[package]]
-name = "Inflector"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
-
-[[package]]
 name = "aead"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -21,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -144,24 +138,24 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "6340df57935414636969091153f35f68d9f00bbc8fb4a9c6054706c213e6c6bc"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181"
+checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -246,24 +240,37 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.3"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82b10af9f9f9f2134a42d3f8aa74658660f2e0234b0eb81bd171df8aa32779ed"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.22",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -271,9 +278,9 @@
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -292,9 +299,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -306,9 +313,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.3"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22cdacd4d6ed3f9b98680b679c0e52a823b8a2c7a97358d508fe247f2180c282"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -367,9 +374,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -388,6 +395,12 @@
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "hkdf"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -472,9 +485,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.141"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libc_alloc"
@@ -483,16 +496,10 @@
 checksum = "6a090348b66d90d8507e30f0d2bd88e5a5c454bd1733fc6d617cbc3471bf69ea"
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -509,9 +516,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opaque-debug"
@@ -521,9 +528,9 @@
 
 [[package]]
 name = "openssl"
-version = "0.10.49"
+version = "0.10.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d2f106ab837a24e03672c59b1239669a0596406ff657c3c0835b6b7f0f35a33"
+checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
 dependencies = [
  "bitflags",
  "cfg-if",
@@ -542,14 +549,14 @@
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.13",
+ "syn 2.0.22",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.84"
+version = "0.9.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a20eace9dc2d82904039cb76dcf50fb1a0bba071cfd1629720b5d6f1ddba0fa"
+checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
 dependencies = [
  "cc",
  "libc",
@@ -559,48 +566,39 @@
 
 [[package]]
 name = "ouroboros"
-version = "0.15.6"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
+checksum = "d813b7b31a82efae94bd30ffaac09aec85efc18db2d5ec3aead1a220ee954351"
 dependencies = [
  "aliasable",
  "ouroboros_macro",
+ "static_assertions",
 ]
 
 [[package]]
 name = "ouroboros_macro"
-version = "0.15.6"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
+checksum = "5a56f651b4dd45ae3ac3d260ced32eaf0620cddaae5f26c69b554a9016594726"
 dependencies = [
- "Inflector",
+ "heck",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.22",
 ]
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
  "elliptic-curve",
  "primeorder",
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "panic-abort"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -618,9 +616,9 @@
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "platforms"
@@ -630,9 +628,9 @@
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -648,9 +646,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
@@ -681,18 +679,18 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
 dependencies = [
  "proc-macro2",
 ]
@@ -728,6 +726,15 @@
 ]
 
 [[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
 name = "scopeguard"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -735,9 +742,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e"
 dependencies = [
  "base16ct",
  "der",
@@ -747,16 +754,22 @@
 ]
 
 [[package]]
-name = "serde"
-version = "1.0.159"
+name = "semver"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+
+[[package]]
+name = "serde"
+version = "1.0.164"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -786,19 +799,25 @@
 
 [[package]]
 name = "spki"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e"
+checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
 dependencies = [
  "base64ct",
  "der",
 ]
 
 [[package]]
-name = "subtle"
-version = "2.4.1"
+name = "static_assertions"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -807,15 +826,14 @@
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
- "quote",
  "unicode-ident",
 ]
 
 [[package]]
 name = "syn"
-version = "2.0.13"
+version = "2.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+checksum = "2efbeae7acf4eabd6bcdcbd11c92f45231ddda7539edc7806bd1a04a03b24616"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -830,15 +848,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -864,9 +882,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
diff --git a/nearby/presence/ldt_np_adv_ffi/deny.toml b/nearby/presence/ldt_np_adv_ffi/deny.toml
index 07381d1..ca51e11 100644
--- a/nearby/presence/ldt_np_adv_ffi/deny.toml
+++ b/nearby/presence/ldt_np_adv_ffi/deny.toml
@@ -79,6 +79,7 @@
     "MIT",
     "Apache-2.0",
     "BSD-3-Clause",
+    "Unicode-DFS-2016",
 ]
 # List of explicitly disallowed licenses
 # See https://spdx.org/licenses/ for list of possible licenses
diff --git a/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt b/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
index 3282533..2144811 100644
--- a/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
+++ b/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
@@ -15,10 +15,10 @@
 cmake_minimum_required(VERSION 3.0)
 
 # libfuzzer needs clang
-SET (CMAKE_C_COMPILER "clang")
+SET(CMAKE_C_COMPILER "clang")
 
 include_directories(
-    ${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/include/)
+        ${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/include/)
 
 # enable fuzzer with ASAN
 # Can't use MSAN since EVP_KDF_fetch seems to read uninitialized memory, maybe on purpose?
@@ -26,22 +26,22 @@
 
 # we need at least version 3.0.5 for the core.h header used in the fuzzers
 find_package(OpenSSL 3.0.5 REQUIRED)
-if ( OPENSSL_FOUND )
+if (OPENSSL_FOUND)
     message(STATUS "OpenSSL Found: ${OPENSSL_VERSION}")
     message(STATUS "OpenSSL Include: ${OPENSSL_INCLUDE_DIR}")
     message(STATUS "OpenSSL Libraries: ${OPENSSL_LIBRARIES}")
-endif()
+endif ()
 
 add_executable(fuzzer_decrypt_bad_mac src/fuzzer_decrypt_bad_mac.c)
 target_link_libraries(fuzzer_decrypt_bad_mac
-    optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-    debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-    dl pthread -fsanitize=fuzzer,address)
+        optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        dl pthread -fsanitize=fuzzer,address)
 target_link_libraries(fuzzer_decrypt_bad_mac OpenSSL::SSL)
 
 add_executable(fuzzer_decrypt_correct_mac src/fuzzer_decrypt_correct_mac.c)
 target_link_libraries(fuzzer_decrypt_correct_mac
-    optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-    debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-    dl pthread -fsanitize=fuzzer,address)
+        optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        dl pthread -fsanitize=fuzzer,address)
 target_link_libraries(fuzzer_decrypt_correct_mac OpenSSL::SSL)
diff --git a/nearby/presence/ldt_np_c_sample/CMakeLists.txt b/nearby/presence/ldt_np_c_sample/CMakeLists.txt
index 4341c3e..588078a 100644
--- a/nearby/presence/ldt_np_c_sample/CMakeLists.txt
+++ b/nearby/presence/ldt_np_c_sample/CMakeLists.txt
@@ -12,8 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-cmake_minimum_required(VERSION 3.0)
-
 include_directories(
     ${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/include/
     ${CMAKE_SOURCE_DIR}/ldt_np_c_sample/)
@@ -28,13 +26,28 @@
     BINARY_DIR "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi"
     INSTALL_COMMAND "")
 
-add_executable(sample main.c)
-target_link_libraries(sample
+add_executable(ldt_c_sample main.c)
+target_link_libraries(
+    ldt_c_sample
     optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
     debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-    dl pthread)
+    OpenSSL::SSL
+)
+
+if(UNIX)
+  target_link_libraries(
+    ldt_c_sample
+    dl pthread
+  )
+elseif(MSVC)
+  target_link_libraries(
+    ldt_c_sample
+    bcrypt ntdll userenv ws2_32
+  )
+endif()
+
 
 if(ENABLE_TESTS)
-    message(STATUS "Building tests")
+    message(STATUS "Enabling ldt tests")
     add_subdirectory(tests)
 endif()
diff --git a/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt b/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt
index 2f0818d..6edfd63 100644
--- a/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt
+++ b/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt
@@ -12,67 +12,56 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-cmake_minimum_required(VERSION 3.14)
-
-# GoogleTest requires at least C++14
-set(CMAKE_CXX_STANDARD 14)
-add_compile_options(-Wall -Wextra -Wimplicit-fallthrough -Wextra-semi
-        -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi
-        -Wno-unneeded-internal-declaration
-        -Wno-ignored-pragma-optimize
-        -Wno-bitfield-constant-conversion -Wno-deprecated-this-capture -Wshadow
-        -Wsign-compare)
-
-include(FetchContent)
-FetchContent_Declare(
-  googletest
-  GIT_REPOSITORY https://github.com/google/googletest.git
-  GIT_TAG release-1.12.1
-)
-FetchContent_MakeAvailable(googletest)
-enable_testing()
-
-
-find_package(benchmark REQUIRED)
-add_compile_options(-fsanitize=address)
-
 file(COPY ${CMAKE_SOURCE_DIR}/ldt_np_adv/resources/test/np_adv_test_vectors.json
      DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 
-set(JSONCPP_DIR ${CMAKE_SOURCE_DIR}/../../third_party/jsoncpp)
-include_directories(${JSONCPP_DIR})
-
-add_library(
-  jsoncpp
-  ${JSONCPP_DIR}/jsoncpp.cpp
-)
-
 add_executable(
-  np_ffi_tests
-  np_ffi_tests.cc
-)
-
-add_executable(
-  benchmarks
-  benchmarks.cc
+  ldt_ffi_tests
+  ldt_ffi_tests.cc
 )
 
 target_link_libraries(
-  benchmarks
-  "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
-  OpenSSL::SSL
-  benchmark::benchmark
-  dl pthread -fsanitize=address
-)
-
-target_link_libraries(
-  np_ffi_tests
+  ldt_ffi_tests
   "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
   jsoncpp
   GTest::gtest_main
   OpenSSL::SSL
-  dl pthread -fsanitize=address
+)
+if(UNIX)
+  target_link_libraries(
+    ldt_ffi_tests
+    dl pthread -fsanitize=address
+  )
+elseif(MSVC)
+  target_link_libraries(
+    ldt_ffi_tests
+    bcrypt ntdll userenv ws2_32
+  )
+endif()
+
+gtest_discover_tests(ldt_ffi_tests)
+
+# Benchmarks
+add_executable(
+  ldt_benchmarks
+  ldt_benchmarks.cc
 )
 
-include(GoogleTest)
-gtest_discover_tests(np_ffi_tests)
+target_link_libraries(
+  ldt_benchmarks
+  "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}ldt_np_adv_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+  benchmark::benchmark
+  OpenSSL::SSL
+)
+
+if(UNIX)
+  target_link_libraries(
+    ldt_benchmarks
+    dl pthread -fsanitize=address
+  )
+elseif(MSVC)
+  target_link_libraries(
+    ldt_benchmarks
+    bcrypt ntdll userenv ws2_32
+  )
+endif()
diff --git a/nearby/presence/ldt_np_c_sample/tests/benchmarks.cc b/nearby/presence/ldt_np_c_sample/tests/ldt_benchmarks.cc
similarity index 100%
rename from nearby/presence/ldt_np_c_sample/tests/benchmarks.cc
rename to nearby/presence/ldt_np_c_sample/tests/ldt_benchmarks.cc
diff --git a/nearby/presence/ldt_np_c_sample/tests/ldt_ffi_tests.cc b/nearby/presence/ldt_np_c_sample/tests/ldt_ffi_tests.cc
new file mode 100644
index 0000000..e66af65
--- /dev/null
+++ b/nearby/presence/ldt_np_c_sample/tests/ldt_ffi_tests.cc
@@ -0,0 +1,300 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <gtest/gtest.h>
+#include <json/json.h>
+
+extern "C" {
+#include "np_ldt.h"
+}
+
+#include <algorithm>
+#include <fstream>
+
+// TODO: get multi threaded tests working on windows
+#ifndef _WIN32
+#include <pthread.h>
+#endif
+
+#ifdef LDT_TEST_VECTORS
+static const char *PATH_TO_DATA_FILE = LDT_TEST_VECTORS;
+#else
+static const char *PATH_TO_DATA_FILE = "np_adv_test_vectors.json";
+#endif
+static const uint8_t KEY_SEED_BYTES[] = {
+    204, 219, 36, 137, 233, 252, 172, 66,  179, 147, 72, 184, 148, 30, 209, 154,
+    29,  54,  14, 117, 224, 152, 200, 193, 94,  107, 28, 194, 182, 32, 205, 57};
+static const uint8_t KNOWN_HMAC_BYTES[] = {
+    223, 185, 10,  31,  155, 31, 226, 141, 24,  187, 204,
+    165, 34,  64,  181, 204, 44, 203, 95,  141, 82,  137,
+    163, 203, 100, 235, 53,  65, 202, 97,  75,  180};
+static const uint8_t TEST_DATA_BYTES[] = {205, 104, 63, 225, 161, 209, 248,
+                                          70,  84,  61, 10,  19,  212, 174,
+                                          164, 0,   64, 200, 214, 123};
+
+static NpLdtSalt salt = {{12, 15}};
+
+static NpLdtEncryptHandle create_enc_handle_from_test_key() {
+  NpLdtKeySeed key_seed;
+  memcpy(key_seed.bytes, KEY_SEED_BYTES, 32);
+
+  return NpLdtEncryptCreate(key_seed);
+}
+
+static NpLdtDecryptHandle create_dec_handle_from_test_key() {
+  NpLdtKeySeed key_seed;
+  memcpy(key_seed.bytes, KEY_SEED_BYTES, 32);
+
+  NpMetadataKeyHmac known_hmac;
+  memcpy(known_hmac.bytes, KNOWN_HMAC_BYTES, 32);
+
+  return NpLdtDecryptCreate(key_seed, known_hmac);
+}
+
+static void hex_string_to_bytes(const char *hexString, uint8_t *out,
+                                size_t len) {
+  for (size_t count = 0; count < len; count++) {
+    sscanf(hexString, "%2hhx", &out[count]); // NOLINT(cert-err34-c)
+    hexString += 2;
+  }
+}
+
+static void bytes_to_hex_string(uint8_t *data, char *out, size_t len) {
+  std::stringstream ss;
+  ss << std::hex;
+  for (size_t i = 0; i < len; ++i)
+    ss << std::setw(2) << std::setfill('0') << (int)data[i];
+
+  std::string result = ss.str();
+  transform(result.begin(), result.end(), result.begin(), ::toupper);
+  strcpy(out, result.c_str());
+}
+
+// Run through JSON data with test cases generated by Rust tests.
+// Using generated data for now because the C layer does not have the ability
+// to generate the ldt_key and hmac_key from a key_seed, this is an
+// implementation detail of the rust ldt library
+TEST(LdtFfiTests, TestJsonData) {
+  Json::Value root;
+  Json::Reader reader;
+  std::ifstream test(PATH_TO_DATA_FILE);
+  bool parsingSuccessful = reader.parse(test, root, false);
+  if (!parsingSuccessful) {
+    std::cout << reader.getFormattedErrorMessages() << "\n";
+  }
+  ASSERT_TRUE(root.size() == 1000);
+
+  for (const auto &v : root) {
+    auto key_seed = v["key_seed"].asCString();
+    auto metadata_key_hmac = v["metadata_key_hmac"].asCString();
+    auto adv_salt = v["adv_salt"].asCString();
+    auto plaintext = v["plaintext"].asCString();
+    auto ciphertext = v["ciphertext"].asCString();
+
+    NpLdtKeySeed np_key_seed;
+    auto len = strlen(key_seed) / 2;
+    hex_string_to_bytes(key_seed, np_key_seed.bytes, len);
+    ASSERT_EQ(len, 32);
+
+    NpMetadataKeyHmac known_hmac;
+    len = strlen(metadata_key_hmac) / 2;
+    hex_string_to_bytes(metadata_key_hmac, known_hmac.bytes, len);
+    ASSERT_EQ(len, 32);
+
+    NpLdtEncryptHandle enc_handle = NpLdtEncryptCreate(np_key_seed);
+    ASSERT_TRUE(enc_handle.handle != 0);
+
+    NpLdtSalt salt_data;
+    len = strlen(adv_salt) / 2;
+    hex_string_to_bytes(adv_salt, salt_data.bytes, len);
+    ASSERT_TRUE(len == 2);
+
+    len = strlen(plaintext) / 2;
+    auto buffer = (uint8_t *)malloc(len);
+    hex_string_to_bytes(plaintext, buffer, len);
+    NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, buffer, len, salt_data);
+    ASSERT_EQ(result, NP_LDT_SUCCESS);
+
+    char *output = (char *)malloc(strlen(plaintext) + 1);
+    bytes_to_hex_string(buffer, output, len);
+    ASSERT_EQ(strcmp(output, ciphertext), 0);
+
+    NpLdtDecryptHandle dec_handle = NpLdtDecryptCreate(np_key_seed, known_hmac);
+    ASSERT_TRUE(dec_handle.handle != 0);
+
+    result = NpLdtDecryptAndVerify(dec_handle, buffer, len, salt_data);
+    ASSERT_EQ(result, NP_LDT_SUCCESS);
+
+    result = NpLdtEncryptClose(enc_handle);
+    ASSERT_EQ(result, NP_LDT_SUCCESS);
+
+    result = NpLdtDecryptClose(dec_handle);
+    ASSERT_EQ(result, NP_LDT_SUCCESS);
+
+    bytes_to_hex_string(buffer, output, len);
+    ASSERT_EQ(strcmp(output, plaintext), 0);
+    free(buffer);
+    free(output);
+  }
+  test.close();
+}
+
+TEST(LdtFfiTests, TestValidLength) {
+  auto plaintext = (uint8_t *)malloc(20 * sizeof(uint8_t));
+  memcpy(plaintext, TEST_DATA_BYTES, 20);
+
+  NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
+  ASSERT_TRUE(enc_handle.handle != 0);
+
+  NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 20, salt);
+  ASSERT_EQ(result, NP_LDT_SUCCESS);
+
+  NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
+
+  result = NpLdtDecryptAndVerify(dec_handle, plaintext, 20, salt);
+  ASSERT_EQ(result, NP_LDT_SUCCESS);
+  free(plaintext);
+}
+
+TEST(LdtFfiTests, TestEncryptInvalidLength) {
+  auto plaintext = (uint8_t *)malloc(32 * sizeof(uint8_t));
+  memcpy(plaintext, TEST_DATA_BYTES, 20);
+
+  NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
+  ASSERT_TRUE(enc_handle.handle != 0);
+
+  NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 32, salt);
+  ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
+
+  result = NpLdtEncrypt(enc_handle, plaintext, 15, salt);
+  ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
+  free(plaintext);
+}
+
+TEST(LdtFfiTests, TestDecryptInvalidLength) {
+  auto plaintext = (uint8_t *)malloc(32 * sizeof(uint8_t));
+  memcpy(plaintext, TEST_DATA_BYTES, 20);
+
+  NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
+  ASSERT_TRUE(dec_handle.handle != 0);
+
+  NP_LDT_RESULT result = NpLdtDecryptAndVerify(dec_handle, plaintext, 32, salt);
+  ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
+
+  result = NpLdtDecryptAndVerify(dec_handle, plaintext, 15, salt);
+  ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
+  free(plaintext);
+}
+
+// We want to make sure no decryption is performed when the hmac is invalid
+TEST(LdtFfiTests, TestDecryptMacMismatch) {
+  char test_text[] = "this text should not change!";
+  auto plaintext = (uint8_t *)malloc(30 * sizeof(char));
+  memcpy(plaintext, test_text, 29);
+
+  NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
+  ASSERT_TRUE(dec_handle.handle != 0);
+
+  NP_LDT_RESULT result = NpLdtDecryptAndVerify(dec_handle, plaintext, 24, salt);
+  ASSERT_EQ(result, NP_LDT_ERROR_MAC_MISMATCH);
+
+  ASSERT_EQ(strcmp((char *)plaintext, test_text), 0);
+  free(plaintext);
+}
+
+TEST(LdtFfiTests, TestInvalidHandle) {
+  auto plaintext = (uint8_t *)malloc(20 * sizeof(uint8_t));
+  memcpy(plaintext, TEST_DATA_BYTES, 20);
+
+  NP_LDT_RESULT result =
+      NpLdtEncrypt(NpLdtEncryptHandle{1234}, plaintext, 20, salt);
+  ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
+
+  result = NpLdtDecryptAndVerify(NpLdtDecryptHandle{1234}, plaintext, 20, salt);
+  ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
+  free(plaintext);
+
+  result = NpLdtEncryptClose(NpLdtEncryptHandle{1234});
+  ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
+
+  result = NpLdtDecryptClose(NpLdtDecryptHandle{1234});
+  ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
+}
+
+#ifndef _WIN32
+pthread_mutex_t my_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+
+void *worker_thread(void *arg) {
+  (void)arg;
+  pthread_mutex_lock(&my_mutex);
+
+  pthread_cond_wait(&cond, &my_mutex);
+  pthread_mutex_unlock(&my_mutex);
+
+  auto plaintext = (uint8_t *)malloc(20 * sizeof(uint8_t));
+  memcpy(plaintext, TEST_DATA_BYTES, 20);
+
+  NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
+  if (enc_handle.handle == 0) {
+    printf("Error creating handle in thread!");
+    free(plaintext);
+    exit(2);
+  }
+
+  NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 20, salt);
+  if (result != NP_LDT_SUCCESS) {
+    printf("Error in encrypt in thread!");
+    free(plaintext);
+    exit(2);
+  }
+
+  NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
+  if (dec_handle.handle == 0) {
+    printf("Error creating handle in thread!");
+    free(plaintext);
+    exit(2);
+  }
+  result = NpLdtDecryptAndVerify(dec_handle, plaintext, 20, salt);
+  if (result != NP_LDT_SUCCESS) {
+    printf("Error in decrypt in thread!");
+    free(plaintext);
+    exit(2);
+  }
+
+  free(plaintext);
+  pthread_exit(nullptr);
+}
+
+TEST(LdtFfiTests, MultiThreadedTests) {
+  int i, num_threads = 100;
+  pthread_t tid[num_threads];
+  memset(tid, 0, num_threads * sizeof(pthread_t));
+
+  // Create the threads
+  for (i = 0; i < num_threads; i++)
+    ASSERT_EQ(pthread_create(&tid[i], nullptr, worker_thread, (void *)&tid[i]),
+              0);
+
+  // give time for all threads to lock
+  sleep(1);
+
+  // unleash the threads!
+  pthread_cond_broadcast(&cond);
+
+  // Wait for them all to finish and check the status
+  for (i = 0; i < num_threads; i++)
+    ASSERT_EQ(pthread_join(tid[i], nullptr), 0);
+}
+#endif
diff --git a/nearby/presence/ldt_np_c_sample/tests/np_ffi_tests.cc b/nearby/presence/ldt_np_c_sample/tests/np_ffi_tests.cc
deleted file mode 100644
index 6359e7e..0000000
--- a/nearby/presence/ldt_np_c_sample/tests/np_ffi_tests.cc
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <gtest/gtest.h>
-#include <json/json.h>
-
-extern "C" {
-#include "np_ldt.h"
-}
-
-#include <algorithm>
-#include <fstream>
-
-// TODO: get multi threaded tests working on windows
-#ifndef _WIN32
-#include <pthread.h>
-#endif
-
-using namespace std;
-
-#ifdef LDT_TEST_VECTORS
-static const char* PATH_TO_DATA_FILE = LDT_TEST_VECTORS;
-#else
-static const char* PATH_TO_DATA_FILE = "np_adv_test_vectors.json";
-#endif
-static const uint8_t KEY_SEED_BYTES[] = {204, 219, 36, 137, 233, 252, 172, 66, 179, 147, 72, 184, 148, 30, 209, 154, 29, 54, 14, 117, 224, 152, 200, 193, 94, 107, 28, 194, 182, 32, 205, 57};
-static const uint8_t KNOWN_HMAC_BYTES[] = {223, 185, 10, 31, 155, 31, 226, 141, 24, 187, 204, 165, 34, 64, 181, 204, 44, 203, 95, 141, 82, 137, 163, 203, 100, 235, 53, 65, 202, 97, 75, 180};
-static const uint8_t TEST_DATA_BYTES[] = {205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174, 164, 0, 64, 200, 214, 123};
-
-static NpLdtSalt salt  = {
-    {12, 15}
-};
-
-static NpLdtEncryptHandle create_enc_handle_from_test_key ()
-{
-    NpLdtKeySeed key_seed;
-    memcpy(key_seed.bytes, KEY_SEED_BYTES, 32);
-
-    return NpLdtEncryptCreate(key_seed);
-}
-
-static NpLdtDecryptHandle create_dec_handle_from_test_key ()
-{
-    NpLdtKeySeed key_seed;
-    memcpy(key_seed.bytes, KEY_SEED_BYTES, 32);
-
-    NpMetadataKeyHmac known_hmac;
-    memcpy(known_hmac.bytes, KNOWN_HMAC_BYTES, 32);
-
-    return NpLdtDecryptCreate(key_seed, known_hmac);
-}
-
-static void hex_string_to_bytes(const char * hexString, uint8_t * out, size_t len)
-{
-    for (size_t count = 0; count < len; count++) {
-        sscanf(hexString, "%2hhx", &out[count]);
-        hexString += 2;
-    }
-}
-
-static void bytes_to_hex_string(uint8_t * data, char * out, int len)
-{
-    std::stringstream ss;
-    ss << std::hex;
-    for(int i=0;i<len;++i)
-        ss << std::setw(2) << std::setfill('0') << (int)data[i];
-
-    string result = ss.str();
-    transform(result.begin(), result.end(), result.begin(), ::toupper);
-    strcpy(out, result.c_str());
-}
-
-// Run through JSON data with test cases generated by Rust tests.
-// Using generated data for now because the C layer does not have the ability
-// to generate the ldt_key and hmac_key from a key_seed, this is an implementation
-// detail of the rust ldt library
-TEST(NpFfiTests, TestJsonData) {
-    Json::Value root;
-    Json::Reader reader;
-    std::ifstream test(PATH_TO_DATA_FILE);
-    bool parsingSuccessful = reader.parse( test, root, false );
-    if ( !parsingSuccessful )
-    {
-        std::cout  << reader.getFormattedErrorMessages()
-               << "\n";
-    }
-    ASSERT_TRUE(root.size() == 1000);
-
-    for (Json::Value::ArrayIndex i = 0; i < root.size(); i++) {
-        const Json::Value& v = root[i];
-        auto key_seed = v["key_seed"].asCString();
-        auto metadata_key_hmac = v["metadata_key_hmac"].asCString();
-        auto adv_salt = v["adv_salt"].asCString();
-        auto plaintext = v["plaintext"].asCString();
-        auto ciphertext = v["ciphertext"].asCString();
-
-        NpLdtKeySeed np_key_seed;
-        int len = strlen(key_seed)/2;
-        hex_string_to_bytes(key_seed, np_key_seed.bytes, len);
-        ASSERT_EQ(len, 32);
-
-        NpMetadataKeyHmac known_hmac;
-        len = strlen(metadata_key_hmac)/2;
-        hex_string_to_bytes(metadata_key_hmac, known_hmac.bytes, len);
-        ASSERT_EQ(len, 32);
-
-        NpLdtEncryptHandle enc_handle = NpLdtEncryptCreate(np_key_seed);
-        ASSERT_TRUE(enc_handle.handle != 0);
-
-        NpLdtSalt saltdata;
-        len = strlen(adv_salt)/2;
-        hex_string_to_bytes(adv_salt, saltdata.bytes, len);
-        ASSERT_TRUE(len == 2);
-
-        len = strlen(plaintext)/2;
-        uint8_t* buffer = (uint8_t*)malloc(len);
-        hex_string_to_bytes(plaintext, buffer, len);
-        NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, buffer, len, saltdata);
-        ASSERT_EQ(result, NP_LDT_SUCCESS);
-
-        char output[strlen(plaintext) + 1];
-        bytes_to_hex_string(buffer, output, len);
-        ASSERT_EQ(strcmp(output, ciphertext), 0);
-
-        NpLdtDecryptHandle dec_handle = NpLdtDecryptCreate(np_key_seed, known_hmac);
-        ASSERT_TRUE(dec_handle.handle != 0);
-
-        result = NpLdtDecryptAndVerify(dec_handle, buffer, len, saltdata);
-        ASSERT_EQ(result, NP_LDT_SUCCESS);
-
-        result = NpLdtEncryptClose(enc_handle);
-        ASSERT_EQ(result, NP_LDT_SUCCESS);
-
-        result = NpLdtDecryptClose(dec_handle);
-        ASSERT_EQ(result, NP_LDT_SUCCESS);
-
-        bytes_to_hex_string(buffer, output, len);
-        ASSERT_EQ( strcmp(output, plaintext), 0);
-        free(buffer);
-    }
-    test.close();
-}
-
-TEST(NpFfiTests, TestValidLength)
-{
-    uint8_t* plaintext = (uint8_t*) malloc(20 * sizeof(uint8_t));
-    memcpy(plaintext, TEST_DATA_BYTES, 20);
-
-    NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
-    ASSERT_TRUE(enc_handle.handle != 0);
-
-    NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 20, salt);
-    ASSERT_EQ(result, NP_LDT_SUCCESS);
-
-    NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
-
-    result = NpLdtDecryptAndVerify(dec_handle, plaintext, 20, salt);
-    ASSERT_EQ(result, NP_LDT_SUCCESS);
-    free(plaintext);
-}
-
-TEST(NpFfiTests, TestEncryptInvalidLength)
-{
-    uint8_t* plaintext = (uint8_t*) malloc(32 * sizeof(uint8_t));
-    memcpy(plaintext, TEST_DATA_BYTES, 20);
-
-    NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
-    ASSERT_TRUE(enc_handle.handle != 0);
-
-    NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 32, salt);
-    ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
-
-    result = NpLdtEncrypt(enc_handle, plaintext, 15, salt);
-    ASSERT_EQ(result,  NP_LDT_ERROR_INVALID_LENGTH);
-    free(plaintext);
-}
-
-TEST(NpFfiTests, TestDecryptInvalidLength)
-{
-    uint8_t* plaintext = (uint8_t*) malloc(32 * sizeof(uint8_t));
-    memcpy(plaintext, TEST_DATA_BYTES, 20);
-
-    NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
-    ASSERT_TRUE(dec_handle.handle != 0);
-
-    NP_LDT_RESULT result = NpLdtDecryptAndVerify(dec_handle, plaintext, 32, salt);
-    ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
-
-    result = NpLdtDecryptAndVerify(dec_handle, plaintext, 15, salt);
-    ASSERT_EQ(result, NP_LDT_ERROR_INVALID_LENGTH);
-    free(plaintext);
-}
-
-// We want to make sure no decryption is performed when the hmac is invalid
-TEST(NpFfiTests, TestDecryptMacMismatch)
-{
-    char test_text[] = "this text should not change!";
-    uint8_t* plaintext = (uint8_t*) malloc(30 * sizeof(char));
-    memcpy(plaintext, test_text, 29);
-
-    NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
-    ASSERT_TRUE(dec_handle.handle != 0);
-
-    NP_LDT_RESULT result = NpLdtDecryptAndVerify(dec_handle, plaintext, 24, salt);
-    ASSERT_EQ(result, NP_LDT_ERROR_MAC_MISMATCH);
-
-    ASSERT_EQ(strcmp((char *)plaintext, test_text), 0);
-    free(plaintext);
-}
-
-TEST(NpFfiTests, TestInvalidHandle)
-{
-    uint8_t* plaintext = (uint8_t*) malloc(20 * sizeof(uint8_t));
-    memcpy(plaintext, TEST_DATA_BYTES, 20);
-
-    NP_LDT_RESULT result = NpLdtEncrypt(NpLdtEncryptHandle{1234}, plaintext, 20, salt);
-    ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
-
-    result = NpLdtDecryptAndVerify(NpLdtDecryptHandle{1234}, plaintext, 20, salt);
-    ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
-    free(plaintext);
-
-    result = NpLdtEncryptClose(NpLdtEncryptHandle{1234});
-    ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
-
-    result = NpLdtDecryptClose(NpLdtDecryptHandle{1234});
-    ASSERT_EQ(result, NP_LDT_INVALID_HANDLE);
-}
-
-#ifndef _WIN32
-pthread_mutex_t my_mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-void *worker_thread(void *arg)
-{
-    (void) arg;
-    pthread_mutex_lock(&my_mutex);
-
-    pthread_cond_wait(&cond, &my_mutex);
-    pthread_mutex_unlock(&my_mutex);
-
-    uint8_t* plaintext = (uint8_t*) malloc(20 * sizeof(uint8_t));
-    memcpy(plaintext, TEST_DATA_BYTES, 20);
-
-    NpLdtEncryptHandle enc_handle = create_enc_handle_from_test_key();
-    if (enc_handle.handle == 0){
-        printf("Error creating handle in thread!");
-        free(plaintext);
-        exit(2);
-    }
-
-    NP_LDT_RESULT result = NpLdtEncrypt(enc_handle, plaintext, 20, salt);
-    if (result != NP_LDT_SUCCESS){
-        printf("Error in encrypt in thread!");
-        free(plaintext);
-        exit(2);
-    }
-
-    NpLdtDecryptHandle dec_handle = create_dec_handle_from_test_key();
-    if (dec_handle.handle == 0){
-        printf("Error creating handle in thread!");
-        free(plaintext);
-        exit(2);
-    }
-    result = NpLdtDecryptAndVerify(dec_handle, plaintext, 20, salt);
-    if (result != NP_LDT_SUCCESS){
-        printf("Error in decrypt in thread!");
-        free(plaintext);
-        exit(2);
-    }
-
-    free(plaintext);
-    pthread_exit(NULL);
-}
-
-TEST(NpFfiTests, MultiThreadedTests)
-{
-    int i, num_threads = 100;
-    pthread_t tid[num_threads];
-    memset(tid, 0, num_threads * sizeof(pthread_t));
-
-    // Create the threads
-    for (i = 0; i < num_threads; i++)
-        ASSERT_EQ(pthread_create(&tid[i], NULL, worker_thread, (void *)&tid[i]),
-         0);
-
-    // give time for all threads to lock
-    sleep(1);
-
-    // unleash the threads!
-    pthread_cond_broadcast(&cond);
-
-    // Wait for them all to finish and check the status
-    for (i = 0; i < num_threads; i++)
-        ASSERT_EQ(pthread_join(tid[i], NULL), 0);
-}
-#endif
diff --git a/nearby/presence/ldt_np_jni/src/lib.rs b/nearby/presence/ldt_np_jni/src/lib.rs
index 6415a4f..8f7958e 100644
--- a/nearby/presence/ldt_np_jni/src/lib.rs
+++ b/nearby/presence/ldt_np_jni/src/lib.rs
@@ -235,7 +235,9 @@
         .try_into()
         .map_err(|_| {
             // resuscitate the Box so that its drop can run, otherwise we would leak on error
-            unsafe { Box::from_raw(pointer) };
+            unsafe {
+                let _ = Box::from_raw(pointer);
+            }
         })
         // Now that we know the pointer fits in 64 bits, can cast u64 to i64/jlong.
         .map(|ptr_64: u64| ptr_64 as jlong)
diff --git a/nearby/presence/np_adv/Cargo.toml b/nearby/presence/np_adv/Cargo.toml
new file mode 100644
index 0000000..4c8aff5
--- /dev/null
+++ b/nearby/presence/np_adv/Cargo.toml
@@ -0,0 +1,42 @@
+[package]
+name = "np_adv"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+array_view = { path = "../array_view" }
+ldt_np_adv.workspace = true
+ldt.workspace = true
+np_hkdf.workspace = true
+np_ed25519.workspace = true
+xts_aes.workspace = true
+crypto_provider.workspace = true
+strum.workspace = true
+strum_macros.workspace = true
+nom = { version = "7.1.1", features = ["alloc"] }
+lazy_static.workspace = true
+sink.workspace = true
+tinyvec.workspace = true
+rand.workspace = true
+
+[features]
+default = []
+devtools = []
+testing = []
+
+[dev-dependencies]
+hex.workspace = true
+rand_ext = { path = "../rand_ext" }
+init_with = "1.1.0"
+serde_json.workspace = true
+anyhow.workspace = true
+test_helper = { path = "../test_helper" }
+criterion.workspace = true
+crypto_provider_default = {workspace = true, features = ["std", "rustcrypto"]}
+np_ed25519 = {workspace = true, features = ["std"]}
+sink = {workspace = true, features = ["std"]}
+
+[[bench]]
+name = "deser_adv"
+harness = false
diff --git a/nearby/presence/np_adv/benches/deser_adv.rs b/nearby/presence/np_adv/benches/deser_adv.rs
new file mode 100644
index 0000000..9699ebf
--- /dev/null
+++ b/nearby/presence/np_adv/benches/deser_adv.rs
@@ -0,0 +1,422 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use core::marker::PhantomData;
+use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
+use crypto_provider::{CryptoProvider, CryptoRng};
+use crypto_provider_default::CryptoProviderImpl;
+use ldt_np_adv::{LdtEncrypterXtsAes128, LegacySalt};
+
+use np_adv::{
+    credential::{simple::*, source::*, v0::*, v1::*},
+    de_type::EncryptedIdentityDataElementType,
+    deserialize_advertisement, deserialize_v0_advertisement, deserialize_v1_advertisement,
+    extended::{
+        data_elements::{GenericDataElement, TxPowerDataElement},
+        deserialize::VerificationMode,
+        serialize::{
+            AdvBuilder as ExtendedAdvBuilder, MicEncrypted, SectionBuilder, SectionIdentity,
+            SignedEncrypted,
+        },
+    },
+    legacy::{
+        actions::{ActionBits, ActionsDataElement},
+        serialize::{AdvBuilder as LegacyAdvBuilder, LdtIdentity},
+    },
+    shared_data::{ContextSyncSeqNum, TxPower},
+    PublicIdentity,
+};
+use rand::{Rng as _, SeedableRng as _};
+use strum::IntoEnumIterator;
+
+pub fn deser_adv_v1_encrypted(c: &mut Criterion) {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    for crypto_type in CryptoMaterialType::iter() {
+        for &identity_type in &[VerificationMode::Mic, VerificationMode::Signature] {
+            for &num_identities in &[10, 100, 1000] {
+                for &num_sections in &[1, 2] {
+                    // measure worst-case performance -- the correct identities will be the last
+                    // num_sections of the identities to be tried
+                    c.bench_function(
+                        &format!(
+                            "Deser V1 encrypted: crypto={crypto_type:?}/mode={identity_type:?}/ids={num_identities}/sections={num_sections}"
+                        ),
+                        |b| {
+                            let identities = (0..num_identities)
+                                .map(|_| V1Identity::random(&mut crypto_rng))
+                                .collect::<Vec<_>>();
+
+                            let mut adv_builder = ExtendedAdvBuilder::new();
+
+                            // take the first n identities, one section per identity
+                            for identity in identities.iter().take(num_sections) {
+                                let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(
+                                    &identity.key_seed,
+                                );
+                                match identity_type {
+                                    VerificationMode::Mic => {
+                                        let mut sb = adv_builder
+                                            .section_builder(MicEncrypted::new_random_salt(
+                                                &mut crypto_rng,
+                                                EncryptedIdentityDataElementType::Private,
+                                                &identity.extended_metadata_key,
+                                                &hkdf,
+                                            ))
+                                            .unwrap();
+
+                                        add_des(&mut sb);
+                                        sb.add_to_advertisement();
+                                    }
+                                    VerificationMode::Signature => {
+                                        let mut sb = adv_builder
+                                            .section_builder(SignedEncrypted::new_random_salt(
+                                                &mut crypto_rng,
+                                                EncryptedIdentityDataElementType::Private,
+                                                &identity.extended_metadata_key,
+                                                &identity.key_pair,
+                                                &hkdf,
+                                            ))
+                                            .unwrap();
+
+                                        add_des(&mut sb);
+                                        sb.add_to_advertisement();
+                                    }
+                                }
+                            }
+
+                            let adv = adv_builder.into_advertisement();
+
+                            match crypto_type {
+                                CryptoMaterialType::MinFootprint => run_with_v1_creds::<
+                                    MinimumFootprintV1CryptoMaterial,
+                                    CryptoProviderImpl,
+                                >(
+                                    b, identities, adv.as_slice()
+                                ),
+                                CryptoMaterialType::Precalculated => {
+                                    run_with_v1_creds::<
+                                        PrecalculatedV1CryptoMaterial,
+                                        CryptoProviderImpl,
+                                    >(
+                                        b, identities, adv.as_slice()
+                                    )
+                                }
+                            }
+                        },
+                    );
+                }
+            }
+        }
+    }
+}
+
+pub fn deser_adv_v1_plaintext(c: &mut Criterion) {
+    let _rng = rand::rngs::StdRng::from_entropy();
+
+    for &num_sections in &[1, 2, 5, 8] {
+        // measure worst-case performance -- the correct identities will be the last
+        // num_sections of the identities to be tried
+        c.bench_function(&format!("Deser V1 plaintext: sections={num_sections}"), |b| {
+            let mut adv_builder = ExtendedAdvBuilder::new();
+
+            // take the first n identities, one section per identity
+            for _ in 0..num_sections {
+                let mut sb = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+                add_des(&mut sb);
+                sb.add_to_advertisement();
+            }
+
+            let adv = adv_builder.into_advertisement();
+
+            run_with_v1_creds::<MinimumFootprintV1CryptoMaterial, CryptoProviderImpl>(
+                b,
+                vec![],
+                adv.as_slice(),
+            )
+        });
+    }
+}
+
+pub fn deser_adv_v0_encrypted(c: &mut Criterion) {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    for crypto_type in CryptoMaterialType::iter() {
+        for &num_identities in &[10, 100, 1000] {
+            // measure worst-case performance -- the correct identities will be the last
+            // num_sections of the identities to be tried
+            c.bench_function(
+                &format!("Deser V0 encrypted: crypto={crypto_type:?}/ids={num_identities}"),
+                |b| {
+                    let identities = (0..num_identities)
+                        .map(|_| V0Identity::random(&mut rng))
+                        .collect::<Vec<_>>();
+
+                    let identity = &identities[0];
+                    let hkdf =
+                        np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&identity.key_seed);
+
+                    let mut adv_builder =
+                        LegacyAdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+                            EncryptedIdentityDataElementType::Private,
+                            LegacySalt::from(rng.gen::<[u8; 2]>()),
+                            identity.legacy_metadata_key,
+                            LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(
+                                &hkdf.legacy_ldt_key(),
+                            ),
+                        ));
+
+                    let mut action_bits = ActionBits::default();
+                    action_bits.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+                    adv_builder.add_data_element(ActionsDataElement::from(action_bits)).unwrap();
+
+                    let adv = adv_builder.into_advertisement().unwrap();
+
+                    match crypto_type {
+                        CryptoMaterialType::MinFootprint => run_with_v0_creds::<
+                            MinimumFootprintV0CryptoMaterial,
+                            CryptoProviderImpl,
+                        >(
+                            b, identities, adv.as_slice()
+                        ),
+                        CryptoMaterialType::Precalculated => run_with_v0_creds::<
+                            PrecalculatedV0CryptoMaterial,
+                            CryptoProviderImpl,
+                        >(
+                            b, identities, adv.as_slice()
+                        ),
+                    }
+                },
+            );
+        }
+    }
+}
+
+type DefaultV0Credential = np_adv::credential::simple::SimpleV0Credential<
+    np_adv::credential::v0::MinimumFootprintV0CryptoMaterial,
+    (),
+>;
+type DefaultV1Credential = np_adv::credential::simple::SimpleV1Credential<
+    np_adv::credential::v1::MinimumFootprintV1CryptoMaterial,
+    (),
+>;
+type DefaultBothCredentialSource =
+    np_adv::credential::source::OwnedBothCredentialSource<DefaultV0Credential, DefaultV1Credential>;
+
+pub fn deser_adv_v0_plaintext(c: &mut Criterion) {
+    let mut adv_builder = LegacyAdvBuilder::new(PublicIdentity::default());
+
+    let mut action_bits = ActionBits::default();
+    action_bits.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+    adv_builder.add_data_element(ActionsDataElement::from(action_bits)).unwrap();
+    let adv = adv_builder.into_advertisement().unwrap();
+
+    let cred_source: DefaultBothCredentialSource = DefaultBothCredentialSource::new_empty();
+
+    for &num_advs in &[1, 10, 100, 1000] {
+        c.bench_function(
+            format!("Deser V0 plaintext with {num_advs} advertisements").as_str(),
+            |b| {
+                b.iter(|| {
+                    for _ in 0..num_advs {
+                        black_box(
+                            deserialize_advertisement::<_, _, _, _, CryptoProviderImpl>(
+                                black_box(adv.as_slice()),
+                                black_box(&cred_source),
+                            )
+                            .expect("Should succeed"),
+                        );
+                    }
+                })
+            },
+        );
+    }
+}
+
+/// Benchmark decrypting a V0 advertisement with credentials built from the reversed list of
+/// identities
+fn run_with_v0_creds<M, C>(b: &mut Bencher, identities: Vec<V0Identity<C>>, adv: &[u8])
+where
+    M: V0CryptoMaterialExt,
+    C: CryptoProvider,
+{
+    let mut creds = identities
+        .into_iter()
+        .map(|i| {
+            let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&i.key_seed);
+            SimpleV0Credential::new(
+                M::build_cred::<C>(
+                    i.key_seed,
+                    hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&i.legacy_metadata_key),
+                ),
+                i.key_seed,
+            )
+        })
+        .collect::<Vec<_>>();
+
+    // reverse the identities so that we're scanning to the end of the
+    // cred source for predictably bad performance
+    creds.reverse();
+
+    let cred_source = SliceCredentialSource::new(&creds);
+    b.iter(|| {
+        black_box(deserialize_v0_advertisement::<_, _, C>(adv, &cred_source).map(|_| 0_u8).unwrap())
+    });
+}
+
+/// Benchmark decrypting a V1 advertisement with credentials built from the reversed list of
+/// identities
+fn run_with_v1_creds<M, C>(b: &mut Bencher, identities: Vec<V1Identity<C>>, adv: &[u8])
+where
+    M: V1CryptoMaterialExt,
+    C: CryptoProvider,
+{
+    let mut creds = identities
+        .into_iter()
+        .map(|i| {
+            let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&i.key_seed);
+            SimpleV1Credential::new(
+                M::build_cred::<C>(
+                    i.key_seed,
+                    hkdf.extended_unsigned_metadata_key_hmac_key()
+                        .calculate_hmac(&i.extended_metadata_key),
+                    hkdf.extended_signed_metadata_key_hmac_key()
+                        .calculate_hmac(&i.extended_metadata_key),
+                    i.key_pair.public(),
+                ),
+                i.key_seed,
+            )
+        })
+        .collect::<Vec<_>>();
+
+    // reverse the identities so that we're scanning to the end of the
+    // cred source for predictably bad performance
+    creds.reverse();
+
+    let cred_source = SliceCredentialSource::new(&creds);
+    b.iter(|| {
+        black_box(deserialize_v1_advertisement::<_, _, C>(adv, &cred_source).map(|_| 0_u8).unwrap())
+    });
+}
+fn add_des<I: SectionIdentity>(sb: &mut SectionBuilder<I>) {
+    sb.add_de_res(|_| TxPower::try_from(17).map(TxPowerDataElement::from)).unwrap();
+    sb.add_de_res(|_| GenericDataElement::try_from(100_u32.into(), &[0; 10])).unwrap();
+}
+criterion_group!(
+    benches,
+    deser_adv_v1_encrypted,
+    deser_adv_v1_plaintext,
+    deser_adv_v0_encrypted,
+    deser_adv_v0_plaintext
+);
+criterion_main!(benches);
+
+struct V0Identity<C: CryptoProvider> {
+    key_seed: [u8; 32],
+    legacy_metadata_key: [u8; 14],
+    _marker: PhantomData<C>,
+}
+
+impl<C: CryptoProvider> V0Identity<C> {
+    /// Generate a new identity with random crypto material
+    fn random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
+        Self { key_seed: rng.gen(), legacy_metadata_key: rng.gen(), _marker: PhantomData }
+    }
+}
+
+struct V1Identity<C: CryptoProvider> {
+    key_seed: [u8; 32],
+    extended_metadata_key: [u8; 16],
+    key_pair: np_ed25519::KeyPair<C>,
+}
+
+impl<C: CryptoProvider> V1Identity<C> {
+    /// Generate a new identity with random crypto material
+    fn random(rng: &mut C::CryptoRng) -> Self {
+        Self {
+            key_seed: rng.gen(),
+            extended_metadata_key: rng.gen(),
+            key_pair: np_ed25519::KeyPair::<C>::generate(),
+        }
+    }
+}
+
+#[derive(strum_macros::EnumIter, Debug)]
+enum CryptoMaterialType {
+    MinFootprint,
+    Precalculated,
+}
+
+// if we get confident this is a valid shared way, could move this to the main trait
+trait V0CryptoMaterialExt: V0CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        legacy_metadata_key_hmac: [u8; 32],
+    ) -> Self;
+}
+
+trait V1CryptoMaterialExt: V1CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        unsigned_metadata_key_hmac: [u8; 32],
+        signed_metadata_key_hmac: [u8; 32],
+        pub_key: np_ed25519::PublicKey<C>,
+    ) -> Self;
+}
+
+impl V0CryptoMaterialExt for MinimumFootprintV0CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        legacy_metadata_key_hmac: [u8; 32],
+    ) -> Self {
+        Self::new(key_seed, legacy_metadata_key_hmac)
+    }
+}
+
+impl V0CryptoMaterialExt for PrecalculatedV0CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        legacy_metadata_key_hmac: [u8; 32],
+    ) -> Self {
+        Self::new::<C>(&key_seed, legacy_metadata_key_hmac)
+    }
+}
+
+impl V1CryptoMaterialExt for MinimumFootprintV1CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        unsigned_metadata_key_hmac: [u8; 32],
+        signed_metadata_key_hmac: [u8; 32],
+        pub_key: np_ed25519::PublicKey<C>,
+    ) -> Self {
+        Self::new(key_seed, unsigned_metadata_key_hmac, signed_metadata_key_hmac, pub_key)
+    }
+}
+
+impl V1CryptoMaterialExt for PrecalculatedV1CryptoMaterial {
+    fn build_cred<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        unsigned_metadata_key_hmac: [u8; 32],
+        signed_metadata_key_hmac: [u8; 32],
+        pub_key: np_ed25519::PublicKey<C>,
+    ) -> Self {
+        let min_foot = MinimumFootprintV1CryptoMaterial::new(
+            key_seed,
+            unsigned_metadata_key_hmac,
+            signed_metadata_key_hmac,
+            pub_key,
+        );
+        min_foot.to_precalculated::<C>()
+    }
+}
diff --git a/nearby/presence/np_adv/resources/test/mic-encrypted-test-vectors.json b/nearby/presence/np_adv/resources/test/mic-encrypted-test-vectors.json
new file mode 100644
index 0000000..a7834ec
--- /dev/null
+++ b/nearby/presence/np_adv/resources/test/mic-encrypted-test-vectors.json
@@ -0,0 +1,2295 @@
+[
+  {
+    "adv_header_byte": "20",
+    "aes_key": "F3DB017C70E08EC5178C92F3AEA0C362",
+    "data_elements": [
+      {
+        "contents": "CF75D23EDA8F6E4A23",
+        "de_type": 383
+      },
+      {
+        "contents": "731B76151735869205CC41",
+        "de_type": 73
+      },
+      {
+        "contents": "7C2A8DE86B2CBB997703",
+        "de_type": 228
+      },
+      {
+        "contents": "99F5163DCA0BB9BE89755A6C5AB321",
+        "de_type": 446
+      }
+    ],
+    "encoded_section": "6D91100056F596D16E1F87B107EE86102FFC6D5E9002F00C41CDDF533667362CD14AC54A9388FA3D30AA7CA6603071B8B0FA19BF582479F773F1C7D0EADF98E98B9447139F244D571B780475ACD9CB248F33B2C085925213360732D44081C27CA6EB40BD8A626BC776D88C5FDB09",
+    "identity_type": "trusted",
+    "key_seed": "F0ED9126768CE7DC685FF74932AC5A876442C4E42359A43F720A575142A45043",
+    "metadata_key": "45795EE4C6533A830886E2C5885EB9E5",
+    "nonce": "40E95D525FAEA1C1FEE39A8E",
+    "section_mic_hmac_key": "A22386E85112EF883218A5B75669B7102E017E9AA149F408A079F60B1D14B4F4",
+    "section_salt": "56F596D16E1F87B107EE86102FFC6D5E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "F076F2B4FA1F3704DDC4EC5CD60C4657",
+    "data_elements": [
+      {
+        "contents": "B62889",
+        "de_type": 72
+      },
+      {
+        "contents": "68FDB8895CB7ABCF18390616113107B73321A905D22FDB99",
+        "de_type": 175
+      },
+      {
+        "contents": "D5A173DC337EFA759D443C50F14F25AC18A06D44C4",
+        "de_type": 354
+      }
+    ],
+    "encoded_section": "6D911000CB9C39FAF5D89CEF1FD7E313DC2F95D79004919332D945C714DE3B58B0762E7F9378D80F35D0DE1E8BD321656B270EA3379F029FB09E44AAFB091B0678A0AB69B055CCE5C2F576EAE52DAC0D6C11FD6A878ABF337B9647FF259ED24F5687641E8ED13A612810F22EC240",
+    "identity_type": "provisioned",
+    "key_seed": "907E34F78FBC8CA40FCA224C12B95BA2C4A0148BA0D19BDADEE1798579EF7D35",
+    "metadata_key": "B524D8ABD8E7DCFD13CE922F2FD9EFAC",
+    "nonce": "AD0AC7BE3A89262786A55139",
+    "section_mic_hmac_key": "690542812A39DB48DD638AED6021A250767F79604C638E361A8F7F5FE92C5E40",
+    "section_salt": "CB9C39FAF5D89CEF1FD7E313DC2F95D7"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "B9549633BA2531AEF16D592815C12269",
+    "data_elements": [
+      {
+        "contents": "BA",
+        "de_type": 79
+      },
+      {
+        "contents": "796F131D0D034508",
+        "de_type": 141
+      },
+      {
+        "contents": "0245",
+        "de_type": 522
+      }
+    ],
+    "encoded_section": "48911000897E4DB6C940976334871B64811D8379900416AC9B5760E31F037634EED3B9C81AEF75B5134E7065DCEFF8CF3197BD2242BE4E29384125B35FB9A4BB7D4D1A650F1E30DBA3",
+    "identity_type": "provisioned",
+    "key_seed": "E66AECA540D070C5E430CE461A3E209F0650AAF3E69CC79C20935DEA3D468A46",
+    "metadata_key": "B2AC31CB7B88B7FA165B5E41AE706E04",
+    "nonce": "E3CB89790FEA866E19F4926A",
+    "section_mic_hmac_key": "EE72E920E379F06879BD8AED8EF9BF8D5903E5CF94A83815929260521F84C17C",
+    "section_salt": "897E4DB6C940976334871B64811D8379"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "088B6339D6D727E797DD1EA3EAC999B3",
+    "data_elements": [
+      {
+        "contents": "DDCCC496B0BE050B7607",
+        "de_type": 850
+      }
+    ],
+    "encoded_section": "429110008F292492B012ACE2C0EF4F25E0901F9490022CF669461319C1165AA131A7BF2835C97FC3ECD77522FB93CE0675D0313D7AB03E230DBE46E286192CD451E9FF",
+    "identity_type": "trusted",
+    "key_seed": "CB61506281210764CE5E3504BF3A41AF69196369375BFE16245B0CA19421650D",
+    "metadata_key": "B9696864507A1DC2EF99DF5441AD25EF",
+    "nonce": "9CC88703DA8A3C82DA5DF32D",
+    "section_mic_hmac_key": "8DE5B98089EEEAB5ABB079EE0C6C8F37289CFCDA74B81BE4F3599EA7F10B3A3C",
+    "section_salt": "8F292492B012ACE2C0EF4F25E0901F94"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "142EF4EFAA03C54D43958647B4A9053A",
+    "data_elements": [
+      {
+        "contents": "B8E42416CD4B3281EE2EDB1B36B89DFD17D35C46B354D6",
+        "de_type": 441
+      },
+      {
+        "contents": "72787349FDC162A25D13BA",
+        "de_type": 664
+      },
+      {
+        "contents": "E0A29FC658F199AFF9",
+        "de_type": 308
+      },
+      {
+        "contents": "8859EB742D3B433BD0F992285B9EEAA1",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "7C911000DFCC6FC56956B0D99F2F29682117B0759004E48F8DE2D74AC7FEAFBEA42F808B4DCE7D17F2841097DA561701AF9F365BA4F702A4CA79D40F6F88C383487B6524BFACDDF294D2DE20CCD7B2BF3A765598144323933CEAD4C1A5C6522A867A5BFDF562A43C537A50A3987AB4F9AE446043117F7A20E1C41B398F",
+    "identity_type": "provisioned",
+    "key_seed": "311F871B4605A04B3310C13D7297AEE745EE105A5D116D05B114A39C2DE27B85",
+    "metadata_key": "18C51BF65C261CFB2F8106AA4C8476B6",
+    "nonce": "1F562F760A35CE9445D40B28",
+    "section_mic_hmac_key": "6F25A84CB39DACD4B9DC7BB4354EE7BB268FBB559121D0F530BE2FDC212C7478",
+    "section_salt": "DFCC6FC56956B0D99F2F29682117B075"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "0C3C901C96C81D5822A42886F20E4D24",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 437
+      }
+    ],
+    "encoded_section": "38911000B3AF643914DD58250EF9795F77B0FA3B90018EACECB07EEC9E2E72550CB8C373FB6EDA5F1CAF378E19C6207AE3C6F7CDA7E1321B56",
+    "identity_type": "private",
+    "key_seed": "39739EA99CFB0EF8200B08C12213FB3370A4DFB58CEADA17764FBCA9FC05B914",
+    "metadata_key": "A1F9BE98BF2BE21F318FF60776ECF594",
+    "nonce": "E067B8B38B20F64D35EE4B1C",
+    "section_mic_hmac_key": "DB710921FA3969941C33329A0FC10AED0EB49A7BEA627ABBAB6E4BBBF6886478",
+    "section_salt": "B3AF643914DD58250EF9795F77B0FA3B"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "0DFF79575A76A69E5545F23F2D568BF5",
+    "data_elements": [
+      {
+        "contents": "8D530D2FF57D6A089257EEA03F2643CCF76DF103",
+        "de_type": 739
+      },
+      {
+        "contents": "88E7ABACA5E9",
+        "de_type": 563
+      },
+      {
+        "contents": "9CA636C900FFAEB51060B40D1E60D751840CA3",
+        "de_type": 831
+      },
+      {
+        "contents": "8AC0EC13CB0B",
+        "de_type": 944
+      },
+      {
+        "contents": "4FD1B972DDA8376DF7181799B3AEC3D4FA3875CDA0B9F2A244085CDD72",
+        "de_type": 263
+      }
+    ],
+    "encoded_section": "94911000A089A545FC2F1E048CCFEFF6FC7530BA9002D0BA12200150BF15A06427841CC00E9CC99FC3032DDB93D46A96DEC5F92DD89849328418BB27225CA77542A2BBDE1896CF76D0143EA351786BC3DB40228363971552E8CB5BF440F6B6569B610D0F09B6E6B46922D86E1DB35A2AE0507A10268AD4077867FF55C7286971DB6BF27D01B68BEF04B9FE12FF660A0ECE154D2B27",
+    "identity_type": "trusted",
+    "key_seed": "5CE70AB764EE544F6A9B48791033EDB78D6541368BE2A02C41C93BEE27645D15",
+    "metadata_key": "29F72458A212E09F3E13A14D927CBB97",
+    "nonce": "C6002C4E093E3ACD57A0DA8A",
+    "section_mic_hmac_key": "BF94C21240800483EE76C69F94D1E7E867EFC9AB11CE74E672C936634C0F7883",
+    "section_salt": "A089A545FC2F1E048CCFEFF6FC7530BA"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "048C8515B3970ACA7E06DD671E758AB7",
+    "data_elements": [
+      {
+        "contents": "672D400589BB794E2A33DE53A62FF97458DAC28DF015F304CE9EBCE8CF",
+        "de_type": 502
+      },
+      {
+        "contents": "C2D9DC3F76FC72BE4BF7D3AFF43B1041B0BC93512BF73ADA95EDC4",
+        "de_type": 692
+      },
+      {
+        "contents": "B010CC19D7FB",
+        "de_type": 129
+      }
+    ],
+    "encoded_section": "7C91100095FFF79474626138B7A9200A474C449F900259C6F85AD235549231775D62E7E710EA91D16662378B15BD5C34B7D14543BB5F289B37E17599C0AF6572A0630356ECA030870CAE9697E92FA9BB0632BE009F643C018B1571592CB0750C158BE299806D0673779B000E047CF4E4D8BD732544EDE5C6CBB4F71E05",
+    "identity_type": "trusted",
+    "key_seed": "9F52A2F6A5F571B558151E84D8965C427733005A6CD580E66B5C398443BB7479",
+    "metadata_key": "4C95AE9955DE9A3684F52B00461035BF",
+    "nonce": "33CA4805B89AE4F80DB67BE3",
+    "section_mic_hmac_key": "4BC7E7FC685A2E3D9EC90B20014586C986E3054B456EC2851E6606AEDC3955EA",
+    "section_salt": "95FFF79474626138B7A9200A474C449F"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "4C9F52374665C592601F5B2BD404B94A",
+    "data_elements": [
+      {
+        "contents": "91EAFB7D",
+        "de_type": 663
+      },
+      {
+        "contents": "22027014F8D43A605E0C179A1E144A3058D7C024359E7A42B83DBA9B0F",
+        "de_type": 163
+      },
+      {
+        "contents": "0830ACBE1994FB",
+        "de_type": 291
+      }
+    ],
+    "encoded_section": "669110005723CCC591C04732B131D258FB5C9A219002E345F42E0D2D02EF57D890EE70F4A95BFE4C9651BF6E2067BD6707820636D5E484F9D519029D86290ECC42C846AF1D0C8D03BD155D791F47637F9F698A8B9D71E261712DE1F1219ED87F7F2045BC240A41",
+    "identity_type": "trusted",
+    "key_seed": "1D02A26B11FB561BD54036A1FA2B325E74D226CA72428C391650E5249B40E0E9",
+    "metadata_key": "702C35764676569F45279BE0BA2F941D",
+    "nonce": "08838921E1C57E275B554B1E",
+    "section_mic_hmac_key": "163F7952B1866F16C0E5CD3CA950D786E53F04C7CEEBA1946AD76C16185F52FD",
+    "section_salt": "5723CCC591C04732B131D258FB5C9A21"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "A3034AE0322F5E77ED6B21B5E5368108",
+    "data_elements": [
+      {
+        "contents": "537F96FD94E13BE589F0141145CFC0EEC4F86FBDB2",
+        "de_type": 571
+      },
+      {
+        "contents": "D301FFB24B5B",
+        "de_type": 541
+      },
+      {
+        "contents": "EA95F07C25B75C04E1B2B8731F6A55BA379FB141",
+        "de_type": 51
+      },
+      {
+        "contents": "2EFD3101E2311BBB108F0A7503907EAF0C2EAAA60CDA8D33A294C4CEACE0",
+        "de_type": 729
+      },
+      {
+        "contents": "B0",
+        "de_type": 411
+      }
+    ],
+    "encoded_section": "91911000DE2A89ED98474AF3E41E48487E8AEBDE90014C18BCB9F9AAC5C11A1BE00A10A5DCD2C49A74BEBAF0FE72FD5053B9DF8B9976C80BE0DCE8FEE83F1BFA9A89EB176CA48EE4ED5D15C6CDAD6B9E41187AA6316D7BFD8E454A53971AC00836F7AB0771FF0534050037D49C6AEB18CF9F8590E5CDEE2FBC330FCDC640C63F0735B7E3F02FE61A0496EF976A158AD3455D",
+    "identity_type": "private",
+    "key_seed": "959D2F3CAB8EE4A2DEB0255C03762CF5D39EB919300420E75A089050FB025E20",
+    "metadata_key": "EF5E9A0867560E52AE1F05FCA7E48D29",
+    "nonce": "23B64C2B1724E5AE9528FCD4",
+    "section_mic_hmac_key": "2F1B12002184860A496B2DF7FB743401BA8E8BC5F22F661BAD69335E99DB8A19",
+    "section_salt": "DE2A89ED98474AF3E41E48487E8AEBDE"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "15AB0E1BF3C908D5A92C9A52158DAC00",
+    "data_elements": [],
+    "encoded_section": "35911000172C7E49FB61097603390278AA4B48F8900477935610288681FDC9B7250022F01CFA66E59183F392C5C2485D8240ABC96D15",
+    "identity_type": "provisioned",
+    "key_seed": "C1FE7DD8760BDC37EEED65E07FF3F9DB9B2DA247260038675679921566A4466C",
+    "metadata_key": "D84140E3576B04F8D9290744C62D20A1",
+    "nonce": "A8FD0BF085BA1C3E8A23FC0C",
+    "section_mic_hmac_key": "3BBF201D9180707DDF5DA4321B477A2D0CFEFC00D72EE560F0E41B5178315366",
+    "section_salt": "172C7E49FB61097603390278AA4B48F8"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "2C8D685B3ED53CA46D6A6AC126596C84",
+    "data_elements": [
+      {
+        "contents": "E95043396FF5CE7FEA272F1E9D8A",
+        "de_type": 359
+      }
+    ],
+    "encoded_section": "46911000B9EB78D15B9493668E3506DD9E7A2DEC9001884E76187E89CB0107A5090D664508854DCF8722E98904E6BB57422710F3CBB3271A743BAE59467EED31F62B714060F040",
+    "identity_type": "private",
+    "key_seed": "0C43A03CC43B6536086910E73F4499C368BE47235FEA439124005FD91047C8DD",
+    "metadata_key": "6B8DFEAC098F9DD035F14843C3196CC8",
+    "nonce": "920205C1FC28E58575E08D47",
+    "section_mic_hmac_key": "5FE0D08732D5615AE4447E726DEAB0083D9458E66DAE596377DDC103C34A4442",
+    "section_salt": "B9EB78D15B9493668E3506DD9E7A2DEC"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "C56F4750DBCFE87ADD8E2159B3EB5646",
+    "data_elements": [
+      {
+        "contents": "148ADAFBA927A9A3D361CB34792A1FD1311A",
+        "de_type": 16
+      },
+      {
+        "contents": "37215F",
+        "de_type": 776
+      },
+      {
+        "contents": "5B75B7A4044E3100635709818ECB099706",
+        "de_type": 563
+      },
+      {
+        "contents": "4A70F7FE36FC",
+        "de_type": 49
+      }
+    ],
+    "encoded_section": "6B91100010510FF96F9DE71AFB125A00637D9A159002692F0CA5C9AD242760DFCCB7F9E445AB0545ABDD91DBB4E6A7DCAE21ABF58D01CC3C1B95AF9442EDF2FA1ED5C551FABF071981137AFB04F4B67F13D43CAA959F53819A4B90913C7CD4B945665E74898BDEEA50939FA6",
+    "identity_type": "trusted",
+    "key_seed": "18D77C2D69389B38F6430DECF46D34893C188EDF6F57E306BD159A441D602D68",
+    "metadata_key": "0DFE12776B497E72E415E41625C4A2A4",
+    "nonce": "A25A744723723AB492153CE9",
+    "section_mic_hmac_key": "B1BC6C3AC220AF74BAC5EA8A85692095575FA6C2172ED9E66669114164BF55E1",
+    "section_salt": "10510FF96F9DE71AFB125A00637D9A15"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3BDA27AEC19E0135552AD5ABB02C45D2",
+    "data_elements": [
+      {
+        "contents": "92F73CEBBE55EFF2391445A2B96299155B78",
+        "de_type": 984
+      },
+      {
+        "contents": "8C4615561E9CF7589FA8E6F7B57893025DF55C",
+        "de_type": 919
+      },
+      {
+        "contents": "DDF6FEBA14ABB1B094A277D361A8C70B988E1010534FAFDF25",
+        "de_type": 676
+      },
+      {
+        "contents": "8650458E65DE07BFFCD2EC46E0D4D05609A66D9AB777FA341EFE3280A5AC",
+        "de_type": 784
+      }
+    ],
+    "encoded_section": "9D911000D86DFF361F5567606CCBAD126A86C01390028E06467447060E4E27C066C5B7F8B785D2476A0FFACC9C85C1E2211B7609D8A4A2C7036F982F923D1DFCF0161B60A3AA5DE2287B909FABE3E902EF1CCD45AB7D9CACE4FAB3C05CB9A00FCC5AD93E9E3B2B31A2ECC226D2209BF24FC7D13D0AE53C912D03DF47F1A4C132BF949C555E8D35436011B852DDB228F4964483F820DA360FFC9506087F99",
+    "identity_type": "trusted",
+    "key_seed": "A6915F7F275F268563F06B70294DE268F4C8FE2ED64831049F5071DD2D7AFF7F",
+    "metadata_key": "29B703C99077654D9EC2BD86066D3CC5",
+    "nonce": "ED125BA0057DCFEB89ED7190",
+    "section_mic_hmac_key": "1B8F822A197030498D51E0F2E4B9C7C306074D7C83C73CAE508D2FFA46EB743A",
+    "section_salt": "D86DFF361F5567606CCBAD126A86C013"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "9E629E04812454CB600A54C8837CC057",
+    "data_elements": [
+      {
+        "contents": "C1B396A29B6967ECF8673E009B2E7F94C4DECD7FA20C176EA0AD98B9",
+        "de_type": 253
+      },
+      {
+        "contents": "3FFEC56E8DB922CD8C5AB5E47452E571",
+        "de_type": 605
+      }
+    ],
+    "encoded_section": "67911000229151F0CBA214F520EFDBF30FB4DA43900287511210A4AF78894FA1DEE707C412015D271BEE2789F49BB5DC67D44E5B9E58B6421F4C834D13F29940800D31315840591BD869F1C2D2887914627DE54D90AA254C6CE1699AA9CA7198ADD71BDC46D91117",
+    "identity_type": "trusted",
+    "key_seed": "1C9A55E064B78E94CB6B070F433CA94D21CB3318E048A7A2CAA83FF958419794",
+    "metadata_key": "1A240C90D7E260458660C8B07F991AE6",
+    "nonce": "2BEB4BC7C05434ABBA19E538",
+    "section_mic_hmac_key": "050D12FF03D51C57EC4AE018EDC1896C38226E1A0481362E415CCB28F5A01B5D",
+    "section_salt": "229151F0CBA214F520EFDBF30FB4DA43"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "8C996EFAD07DDDED26DFDF98812CA923",
+    "data_elements": [
+      {
+        "contents": "B7C019E21BDE02221C04A4",
+        "de_type": 43
+      }
+    ],
+    "encoded_section": "42911000D1662A41EA8D74EEDE6BE6686D41414E90029CE0D1823D6C861F9B05C79235D6C1CB99634640B9BA98F7B3C72B67F242E2E40E36C937F671A88D63FF97C4C4",
+    "identity_type": "trusted",
+    "key_seed": "2027245C1810377C3846FFC4F33A46FD5F55BEFBB13C9EB07D7D5AD3CFAB48B4",
+    "metadata_key": "9F4AD9EDF0A6CAAD2E9E99871E4CE52C",
+    "nonce": "A71E97EBB5FEF5C10118B443",
+    "section_mic_hmac_key": "3BEFA04D9C10EC14E050D8106803C71F788E338E191EDFA21FC2029FE1A90922",
+    "section_salt": "D1662A41EA8D74EEDE6BE6686D41414E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "AE8C6F011FE35C9C96FE8EBDE339A41F",
+    "data_elements": [
+      {
+        "contents": "607A867B3B29B89041F9",
+        "de_type": 979
+      },
+      {
+        "contents": "5E799499",
+        "de_type": 25
+      },
+      {
+        "contents": "92CB515B79EDD5E37C12C6B5864DF420AF7DDE1B5919331DA7",
+        "de_type": 577
+      }
+    ],
+    "encoded_section": "649110008A4AF96D2B686F8C79E0133C7A1300D39001533E4A9492889398E4BEA2572B455C201BE24382C5D0FCEF256113AA7541173BBC6A2B9AFC3CB2A133424BA12055069603174E36F3407444B5FBFA5BFAE8C8B6BD893AB31B9D869105014A931AEA10",
+    "identity_type": "private",
+    "key_seed": "F728E206C88A47D4C5063BBF54C218435A04B921E3D0E2774572D88024076D7E",
+    "metadata_key": "CD8451667D7BBD7EB4CD5E456ECF8167",
+    "nonce": "3F7D4273CDA786C66C557ADC",
+    "section_mic_hmac_key": "82B0C8B8007802CE1CCF367F07830FDAD2401C8EB5849613602E568E634DAFB4",
+    "section_salt": "8A4AF96D2B686F8C79E0133C7A1300D3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "9078B570449046A4C6FD9246ABE3E17E",
+    "data_elements": [
+      {
+        "contents": "381690D8CB5DE6CB",
+        "de_type": 724
+      },
+      {
+        "contents": "905EB45FAD",
+        "de_type": 144
+      },
+      {
+        "contents": "969FEFE0",
+        "de_type": 302
+      },
+      {
+        "contents": "75202C93DD512023EFD3EBF3",
+        "de_type": 742
+      }
+    ],
+    "encoded_section": "5E911000F765D4EE37755137F6B7AF43D4ECF2CB9002361BF7AEC5BEA9E0F9790E737E559951EB09254D0B4304A81E21FF7C9B463A8AF4D29B35B6B909C255286B707B85F028D277148C6A82877695FF915BD0602946C37F4AAF6C1C315B98",
+    "identity_type": "trusted",
+    "key_seed": "DD3AB1ADE4D985E6D6E67F2FE19DD6A75A9F5B4560CD3C05FAFF8A88C283AB3F",
+    "metadata_key": "D53DBD8613161F1527385E5F27FEE124",
+    "nonce": "D30A2D8CEFAB8C91E0B1799D",
+    "section_mic_hmac_key": "EDFA40290EB30E6669C551947A061A587843CCE47F4620E51ABA239AB79AA739",
+    "section_salt": "F765D4EE37755137F6B7AF43D4ECF2CB"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "C2FF97FBAB946B17D2BD0CA0712FA7DB",
+    "data_elements": [
+      {
+        "contents": "B0F9DF275D2D5A37C95B9CC9AB",
+        "de_type": 114
+      }
+    ],
+    "encoded_section": "44911000EB645DE61C9BB4C40BC585AABA223BAA9004B40CE842866C9F317B5C429C501392E13495FA18E48C34BDABF4152C8E98E90ED1AFD11BCABD4EF60CBA9347FB0120",
+    "identity_type": "provisioned",
+    "key_seed": "CAB68F8D497B54A0B25EE602EDC659B8C12F9E9E49EC8FC2C2487E8FA955E606",
+    "metadata_key": "CDCE54153DA53A283DBF35F0D456FBDF",
+    "nonce": "D7FA723581DFA37F8CD7F284",
+    "section_mic_hmac_key": "EECDEE6DCC125C40BD1002DFBAA77C8D5F16D6A9D152E6524A13E213F5CDA36A",
+    "section_salt": "EB645DE61C9BB4C40BC585AABA223BAA"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "BD5FFED9F8FF99EFD9276BAE103C8520",
+    "data_elements": [
+      {
+        "contents": "A9F592F1DCA1C71CCF03CC0310DF337C9A",
+        "de_type": 683
+      },
+      {
+        "contents": "E18AD6552B4C",
+        "de_type": 277
+      }
+    ],
+    "encoded_section": "52911000A798801A6B6BB3B3CE199A04C6D39C749002F4A793DDD478205BE47B9D5A3D02821CFECD82A205E596D82F1CA5F52DFD12D2F160C20332DD75B56CFF48AFC079B80AB8151D3FC020D71FF03A220692",
+    "identity_type": "trusted",
+    "key_seed": "9DA9C8ADB2F20D379E5C103E92D60D4ACC946AD0DC57B08E71A6CAF174DE27FD",
+    "metadata_key": "32044EF9F7B354E253E7206AC19172BC",
+    "nonce": "FD61DCBF349648F6BCAD5FF7",
+    "section_mic_hmac_key": "CEF13D97D862C57A7CC2ED89FA453B5F331A39B46EF3DAED677C6354FCF41A99",
+    "section_salt": "A798801A6B6BB3B3CE199A04C6D39C74"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "AB8FC3047B5D459C0FE3A8D32DA1D396",
+    "data_elements": [
+      {
+        "contents": "70E9867134E018A407BFFA11681FE66225551030",
+        "de_type": 694
+      }
+    ],
+    "encoded_section": "4C911000F340B13BAF10C096314AD12554265BA69004D98C2427C11201067AAA42C262F78315F0FBD68F03CA256E74CD74CC39E3B0399E41E8DC766AB30241498364F94C204BA6F1D12C66C752",
+    "identity_type": "provisioned",
+    "key_seed": "9E50221DB4D19E3E2E6E0D61F2FE4FD765B0AB77D795B8BF9DEE945C9258D90F",
+    "metadata_key": "E59AB0FB0471EDE9516038F2B830FC8D",
+    "nonce": "D547910B27183848271E093E",
+    "section_mic_hmac_key": "0C67958E203428FCD8B023C2C97BEFD62A64E72DC0F3F9078AE494DA235E4E80",
+    "section_salt": "F340B13BAF10C096314AD12554265BA6"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "5E155066D56083328A063FBD5AFBF1CE",
+    "data_elements": [
+      {
+        "contents": "B2E8AD80552E7D",
+        "de_type": 638
+      },
+      {
+        "contents": "EBA00821E05107D40E6B3CAB8E86027D497F34670527D1D6",
+        "de_type": 337
+      },
+      {
+        "contents": "549E6C2D1425",
+        "de_type": 826
+      }
+    ],
+    "encoded_section": "63911000A847D51D7D049D481D63F14F4A8D01099002FC5925A9E42B41321E56021A3D01157DC10E00CFF86A66638C7313814DF85E2E050AC4235DE9634416B34AAEC4419D9F50D49952742723228FA5CC8A8981C6E5E71904FE5FDAD5111C3C81C88E65",
+    "identity_type": "trusted",
+    "key_seed": "BE5027936C60695FF4EA18AC1F81078221C50A8C22C98F36C9A5877D369E4000",
+    "metadata_key": "1B43759002C9095970DB092A0086FECF",
+    "nonce": "CCA806551E3DE4A2C7015C4F",
+    "section_mic_hmac_key": "B8C388D47A6B125B3E637DBE4281824A170687F5D596510B94A95DFBD0420A5F",
+    "section_salt": "A847D51D7D049D481D63F14F4A8D0109"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "BA3816EAD76DAC246880A27F137D4CC2",
+    "data_elements": [
+      {
+        "contents": "3909A77A6295",
+        "de_type": 706
+      },
+      {
+        "contents": "A360F1",
+        "de_type": 563
+      },
+      {
+        "contents": "9B77E78C7CB64198BC2E5E676080B8652C88A3F1A71B5B62CC5B87",
+        "de_type": 496
+      },
+      {
+        "contents": "DD4080284EEF0BFBA61283376C7A",
+        "de_type": 129
+      },
+      {
+        "contents": "D3",
+        "de_type": 362
+      }
+    ],
+    "encoded_section": "7791100034A1CA42CE8D750265DD13710E6AA8F390024301C25BBA38E693BCF7834E08B62F4B4569EC8704250959F6EEE5971C2E25BB63EF65C1CA1B20917A433DAA9379ADB3773F463BC8A81A938CB83EA4E1BBF4CB1A4409D38E9511B4660A5C5458337CCBD98AA3E3A41D88C98ED0A9D8AE27F28206D0",
+    "identity_type": "trusted",
+    "key_seed": "7052FBAFC59D8ED636F51F254C3E8D2429604C2A58A3A0A27C54C2D83B4D4353",
+    "metadata_key": "0230CE096D5CBE15B55F65F270D0D411",
+    "nonce": "51FD2C7EBA743483252DA523",
+    "section_mic_hmac_key": "C1941723E73EE200B78932065A479E2380FBEE95082846C9FEEDA9D35C13E84E",
+    "section_salt": "34A1CA42CE8D750265DD13710E6AA8F3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3F7BAA4E9ADF649F68504D2BADC49E59",
+    "data_elements": [
+      {
+        "contents": "C7CD03AABE413B68D38D5528B8",
+        "de_type": 784
+      },
+      {
+        "contents": "BA87E5F9338B888B0ADCE8C80BFFE11D2467303431",
+        "de_type": 902
+      }
+    ],
+    "encoded_section": "5D911000D22DBB4DD6D440F26183BD13D0C3DF6A9004AA523D21ABBF464C0DD1166437AF2EE5159310A4E2C500A84A7824DA48C2DB85C9BC79B60DA83EE61EDFBA617008A7340431E5B7ECB19E7F140D6F0D7E22589A51AAE13A00780820",
+    "identity_type": "provisioned",
+    "key_seed": "1E2D99F50E548FC49590D5E6C066B4DC955EF40DDEE79167EC359E551048E1D1",
+    "metadata_key": "83D500F6D6106BC3C2B17AE408023E91",
+    "nonce": "4A9AED02A25AF38FB2E2E2F7",
+    "section_mic_hmac_key": "B29B84CFF65C3EE4616A502AC61C029C706D6B1EDD39EDF4D76EA5A84453BF5E",
+    "section_salt": "D22DBB4DD6D440F26183BD13D0C3DF6A"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "5BA9C6F943DAF529109F4B100F49D597",
+    "data_elements": [],
+    "encoded_section": "35911000C739C6227A353DD9B0EB277131E35DCF900469ED27AFB7C387B5475E150CD81AEC4884892FD73C27B796E7685D75C10A7F71",
+    "identity_type": "provisioned",
+    "key_seed": "1344FE8EFB2E14874FEB0571343BBA222C0FD904204BBA55ED94F0CD28C26FB7",
+    "metadata_key": "DB1BAE09B154172E09141BFFE4CF561D",
+    "nonce": "108AA9D4432E50BCDECCBD6C",
+    "section_mic_hmac_key": "2E20757E70673D996C6D58E403A0F87CDE24F7EE3038C17FE07D435B44093CD5",
+    "section_salt": "C739C6227A353DD9B0EB277131E35DCF"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "39CD401AE8F611D1651E0FDD59BA8F45",
+    "data_elements": [
+      {
+        "contents": "F4658B8BCCCF49B7AB79",
+        "de_type": 564
+      },
+      {
+        "contents": "C9F2A6B90E08CC",
+        "de_type": 988
+      },
+      {
+        "contents": "820BE5C34A2CC3E9",
+        "de_type": 870
+      },
+      {
+        "contents": "0F02CD73",
+        "de_type": 573
+      }
+    ],
+    "encoded_section": "5E911000E6CBCB218624EE2DC2DBABAB38F837769002F43D65267B214BF792B14655201C57B346BF233AEA5FD07FC5163FE7D1659F6A8DB901B503D26320F94D3B25EC2647F294BAD0748EEE05FE24F42CFA240062F74715FAF8CB6873C017",
+    "identity_type": "trusted",
+    "key_seed": "D72CDA23016D822CFE1E5294916DC83CF98EC2ADAE9121F80803386DC5CF6E78",
+    "metadata_key": "47001AE1B7E542147BF57D1C62F22F9E",
+    "nonce": "B677F8EEF05E5C4FD69BC645",
+    "section_mic_hmac_key": "CD8F4F64EB964FF7E0EFE036347DD0007A1A763B3001F02361CCC3A680C368FF",
+    "section_salt": "E6CBCB218624EE2DC2DBABAB38F83776"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "194ED59DCF4144A697CD1AD63E33A3B4",
+    "data_elements": [
+      {
+        "contents": "D5156EF7CAD1096B1EBE82E0",
+        "de_type": 777
+      }
+    ],
+    "encoded_section": "44911000032224758D14BA41AF92F6D88A501E2C9002C7D754757898C9E34AA838CDFBAF155B30084E02BE29B58C33ACC954F941842FC053B0ADD4CA9F3D3618EDBA2CDA81",
+    "identity_type": "trusted",
+    "key_seed": "F77600BA15BA4C8B396C8A0C3B8ABECF2B064A045E583BECD39116C572E7AD12",
+    "metadata_key": "DB7F42852277D6552C91815416FCBF72",
+    "nonce": "5A2D8E75D0B7634F06D7325A",
+    "section_mic_hmac_key": "862D13102D1431D175E2E8B6ED0D30D99C6E43EFED3FCA6D14CFD8AEA3BBE15B",
+    "section_salt": "032224758D14BA41AF92F6D88A501E2C"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3337A6A8FC085CDCD20C3F46E78E7AB5",
+    "data_elements": [
+      {
+        "contents": "70D83068132E37C88B72A4EE79D173537E8F",
+        "de_type": 277
+      }
+    ],
+    "encoded_section": "4A91100013D9056CD070347F927B0F615DDFEC549004C7894D8A1B5608C1EC182CC0AB86375EEBFE92E0A4EF6878AAFBCB637738E21F4EA1C9F76D65EB4AE29BC86CE43C9F49859C66F2FB",
+    "identity_type": "provisioned",
+    "key_seed": "1507CD75F60429CB9E63C4D4A09FEAC92E772223D9E95838E8784AE1969F3E7A",
+    "metadata_key": "481E466127EF90D5C53596E8552EC52E",
+    "nonce": "F7A694ED8C95C9D7A755D82B",
+    "section_mic_hmac_key": "F7355B49456F6C57FE860ACCE4A711214D71D5F08B574E5BA37E165B52000A36",
+    "section_salt": "13D9056CD070347F927B0F615DDFEC54"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "FBB1328618CCD896CC70AF937CAE8281",
+    "data_elements": [
+      {
+        "contents": "467333809F3B",
+        "de_type": 952
+      },
+      {
+        "contents": "50CE12F4FF7B16B5643EF1C66368DF27DEDF3CEC9B24A3",
+        "de_type": 300
+      },
+      {
+        "contents": "08443858DD0A",
+        "de_type": 124
+      },
+      {
+        "contents": "E873C2B86B0C5A28624DBBFDE0AE3D22D03EABBF5BA71EAD",
+        "de_type": 448
+      },
+      {
+        "contents": "F1447D2F9281DBEE34476C48B22351E8F27CB782A10A29FA69E5ADCB3EBE",
+        "de_type": 399
+      }
+    ],
+    "encoded_section": "9C911000E33DCEF3193A00CA24590E41CB1607C79004439EFC4200D70EB58A7579DEBD80F04B5E8002A076C37A1D6510BA493BBD60569363F1FC3FC5A379DFEF1BDE620330DA1C8D06AB062EB96C92762FE17DD96776B35D13CA41488C1C83F2FFE0D0EF5262B632D856D10CB666762BA5CA742A0E9E95C9931779E319C7854ABE32BE0480D1FA754E1EEBEB1521C148FBF4A70F3185091CB04D57884A",
+    "identity_type": "provisioned",
+    "key_seed": "D30C0A924112C23C73BAC89EC03E7F9EB81E26916553AB6556C1240C20EC37B5",
+    "metadata_key": "308A7C574957C93A9B3E6CEA175AB263",
+    "nonce": "5D0946C2808A4C895626EF0B",
+    "section_mic_hmac_key": "8421457116D650DB88EB790AFB90AD99C53EFE2F875528CA25ADAA615F35D9CE",
+    "section_salt": "E33DCEF3193A00CA24590E41CB1607C7"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "E03DF6ABB87D6F554B5BEC78A7E8B0FF",
+    "data_elements": [
+      {
+        "contents": "B94A3080F25FE185C6C36E9A21405519666684E0847BF36DD115A926",
+        "de_type": 503
+      },
+      {
+        "contents": "",
+        "de_type": 415
+      }
+    ],
+    "encoded_section": "5791100094339CFAA454A5D2E977F38C35E2844D9002E15B4F8862B4A3E4D5FCDDEC6FC36567A1E9A6EC6E2CAAC28CC1C72CC81CB4E190AD8C8C1997EDA2A8391662DC44D4D5B818959ACC574FA1CF7E99645C4DF138B587",
+    "identity_type": "trusted",
+    "key_seed": "6B1BDAC7E669C8EF0847707AC2365C0D3864B31D6F13C088D4630CAE016B520F",
+    "metadata_key": "A50CC2AEFD3369D7D1DA0F0D0E537F19",
+    "nonce": "0C4819136C0E397ABDD9E354",
+    "section_mic_hmac_key": "A1FC278429196727FCF080260972AC6BAE2670C7383C2E297D1721428168F8C8",
+    "section_salt": "94339CFAA454A5D2E977F38C35E2844D"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "D79C9AC03BE4012DC980193BFD6B9844",
+    "data_elements": [],
+    "encoded_section": "35911000711C9EC86B8A068AF07B7FE5C85CC9D39004D54FC742603A383E4F153DBB7462EA99ACDCA8E5B667784D8DDB99FE360DABB7",
+    "identity_type": "provisioned",
+    "key_seed": "6FC2E3B1B4E9D1A97ADE86D36D78F377C5AF881DE70D981C8553DB86D830F617",
+    "metadata_key": "FFC3763940BF40D4C90C1C9F1A108195",
+    "nonce": "5FB63D89B5C5D0A2908B0A62",
+    "section_mic_hmac_key": "3F353E77278CAC09E16D0F86B6723510700210D5C8A73E6EEF04921FDDE689F1",
+    "section_salt": "711C9EC86B8A068AF07B7FE5C85CC9D3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "CDD28EF3B99341DA9DE1C30C254E4430",
+    "data_elements": [
+      {
+        "contents": "99CE21E4964A6A7C14E6BF387369",
+        "de_type": 361
+      }
+    ],
+    "encoded_section": "46911000E9FF177F159C1A081403717389F200EA9004505BB69C948A0A4849FEA66E702DB7500BC961E0151EAD701AA1BA69C29A1E2B363678656DB7E72D4A98AA28A8894CE84B",
+    "identity_type": "provisioned",
+    "key_seed": "A2A3EBFA3847569FDC2713784A56CD71A1DEAABE14190EC0B86AF832EEBBDD59",
+    "metadata_key": "4432862698BC0A055C41E6219F86C655",
+    "nonce": "64C1217301A32C5B82B94358",
+    "section_mic_hmac_key": "C78D782F47CBEC0D0F0470DEC491B8808A6C08E71F5C325E0B359551AE38ACA4",
+    "section_salt": "E9FF177F159C1A081403717389F200EA"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "F2912200A19661C7B3256F2ED8D635E1",
+    "data_elements": [
+      {
+        "contents": "7321",
+        "de_type": 467
+      },
+      {
+        "contents": "",
+        "de_type": 743
+      },
+      {
+        "contents": "B58EA8527B77EB7DBF5CF9D10748D743DF6E8F37D8",
+        "de_type": 592
+      }
+    ],
+    "encoded_section": "5591100029FDA91C6673EE9F5E81041BE492146890026FF0F473F33B7DE9BFA2EA578382EBCBE4227D5570F2365433A6A4751FD10BA87D17552C9315E4ECA5A45D4EA4F20AC118D0CF61A0E0E49E90C9658FF4D1CC6E",
+    "identity_type": "trusted",
+    "key_seed": "FD7967CD290B0ACCA1FB012C6B17FADB54CC062A92E4E3F095B6221265606BC3",
+    "metadata_key": "7485DC8BD4A36F721112C2947751F068",
+    "nonce": "CF3A08D31D6DB3F85ABFAEFC",
+    "section_mic_hmac_key": "DE0AB90DC2E5437C201A96A529552965E9113AE01E76E225E906DB2C854C4F74",
+    "section_salt": "29FDA91C6673EE9F5E81041BE4921468"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "425A003859115F90D385DED38FC3138A",
+    "data_elements": [
+      {
+        "contents": "FF1E4283ACD7",
+        "de_type": 592
+      },
+      {
+        "contents": "FBE130FC8F63BD7012",
+        "de_type": 224
+      },
+      {
+        "contents": "7DEDF0BFF3CAAB7C6EEB72A4F7B906AC50A92F6E27F0C0BE5DA402D6E1",
+        "de_type": 740
+      },
+      {
+        "contents": "B3929F152C596C0BEF4233703F00B6621C1FF3A358F3C86DCFB16B72",
+        "de_type": 312
+      },
+      {
+        "contents": "0F5043C11D1C467CCDCB83DCE0BE43AC1D94DD5611",
+        "de_type": 891
+      }
+    ],
+    "encoded_section": "A1911000D3F3AF795C519468EFC23F73081ADE8E9001D17E0B80D5304A3B3078ABD224B53EEFF7BC4D82C69097FE3731085ADE750593E3267702827CB9CD176EE205CCE43458E2AED220AABE1587FF7FEEFA571B629E2A205D207044EA651809B9F5C9102C35E0368A0C22CEA27DAF899A987DD40352EDA04C8DDC7ABB3B6F279C7779162B472543393F37A9EE4A9A6F1E6ED3EC8E46551715F1F254A13E0604C71E",
+    "identity_type": "private",
+    "key_seed": "CBD5BDDC7DF1CF4DE8C67B8C5D8B3936E4370BD2FB8674BDD032DAB651935098",
+    "metadata_key": "85F9B7DC74148374E28EE18DEB067DDC",
+    "nonce": "64822DF95082DD9FAC3ABF49",
+    "section_mic_hmac_key": "DCE1733FCC2792C2FC5E717B60BF387A153B202A6FF51896D67849A33D700BCD",
+    "section_salt": "D3F3AF795C519468EFC23F73081ADE8E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "7B1388703BC7E6A02BC3FD5ADA646469",
+    "data_elements": [
+      {
+        "contents": "7D62FA053E4F6358FFE38CC63265B5C631",
+        "de_type": 618
+      }
+    ],
+    "encoded_section": "499110000FB390BC9AC7F8533F693FC4F1C9BD6A9004BF6D2926E7409C8B991DDF484AF4F056C15513C85442EF6D8CA694BDCCDA70B5ED790BFBF4F026113C0E71CFDE64EAB674438D7A",
+    "identity_type": "provisioned",
+    "key_seed": "2B56B30BAF8A4D98B8D2D6DBBA920C7E58CC2A308BCBEBC2444E695CDB84DB9D",
+    "metadata_key": "F9B398674610A9887928F01BFF47348C",
+    "nonce": "CA88F80E008C85191F0368E2",
+    "section_mic_hmac_key": "61032327C90BA52D7AE489911943770F4ADC0CBFF70B3C1FCC6C8CCF684D11DE",
+    "section_salt": "0FB390BC9AC7F8533F693FC4F1C9BD6A"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "C131B7DDCCBF6B9D6697A73183BB9C2D",
+    "data_elements": [],
+    "encoded_section": "35911000D6A73EDFDB9C58847962A374CD39EF8E9004564B9DA3B33DE90A04DB8E09C9F74E39B3974D254418BD31BEDAF2079776203B",
+    "identity_type": "provisioned",
+    "key_seed": "619CDE7F5C7F48C2A728740F73ED8BED80DBC75A8F80A210B7787A3CA7D99894",
+    "metadata_key": "894C9EB0A0CD63439D7D38D98271886C",
+    "nonce": "988D2E9390677C9D60D253C7",
+    "section_mic_hmac_key": "B9ECF2780619E5BB483F7E67D47D5F6C453260B05B1C6C8B9DE3A1AA200E859E",
+    "section_salt": "D6A73EDFDB9C58847962A374CD39EF8E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "471C247B67E71991EEA742A60395E761",
+    "data_elements": [],
+    "encoded_section": "35911000AF15F574B747192E9BD4F216FA1B4B7790046EBE5844F9C2B310D203E1F7B096319C81C5F10A0173AA6130BBFFDE2C335BA2",
+    "identity_type": "provisioned",
+    "key_seed": "AC53B58E3C5655CFC99E96EDA60B6356B91878707EBBB72C58B40372067F2654",
+    "metadata_key": "B3C7283A417F10365A58239881EA3357",
+    "nonce": "36F08B54F7A71C96317A1379",
+    "section_mic_hmac_key": "C873EDA6670390B6576A70192A1CC51663DC71878502344B4E89570B4DEB8CCB",
+    "section_salt": "AF15F574B747192E9BD4F216FA1B4B77"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "FE9F6FB58671E09A1A982B395153F5AA",
+    "data_elements": [
+      {
+        "contents": "3EF87149ABACBBE77A658C12AF57C5CC23549860",
+        "de_type": 886
+      },
+      {
+        "contents": "2FA53563",
+        "de_type": 266
+      },
+      {
+        "contents": "07",
+        "de_type": 504
+      },
+      {
+        "contents": "D174D239EA526214B9F3DFA561C2E67AEB39CB5E8E45006EF7",
+        "de_type": 727
+      }
+    ],
+    "encoded_section": "73911000996E2F8D9CA965F32EB4884BFF25EB659002555A82FC0FCC2977E3F47AE4C3ED20652D644EF87BA79F9C7A4D0CEFFF756F6F3EA21275055C45685B915A6CF3500FEB68C62D6DB778D6037719D08E1CE1A47A60BFA574B92458EA9853CA12C6085EDC5B3357767D033BB8BD858C6C45F4",
+    "identity_type": "trusted",
+    "key_seed": "797A0E23E450BD746F50A900291EDF12A427207E9345F1ECA7F247754D4E3778",
+    "metadata_key": "EE52E516F455BF41B9FE45B525300D80",
+    "nonce": "8032538D846F75783A371130",
+    "section_mic_hmac_key": "7B1519118268CFD05BE2529648964A31267DE90B31858A541E3B6FA5B5A5BA48",
+    "section_salt": "996E2F8D9CA965F32EB4884BFF25EB65"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "259CA266C07D24489E2320751FFACA50",
+    "data_elements": [
+      {
+        "contents": "1293957F338220C0DFCF99BB988D4B10A2",
+        "de_type": 588
+      },
+      {
+        "contents": "A66E4E117DE27225",
+        "de_type": 527
+      },
+      {
+        "contents": "A371A89597B5908CF70EB5CD70",
+        "de_type": 348
+      },
+      {
+        "contents": "EF8C4B",
+        "de_type": 893
+      }
+    ],
+    "encoded_section": "6A911000CE373177E0843767D3CBDE3EE36AF17190041C77A0D1B5A6D84E23CEA79D55760F47327519B09C00EF56BA591D952D09BF7649316ABEAA1DB8CBBA6C60CB9800B14CAA592DC6BE015529375E516D04DB3364041E1CD3C4545F053AE220D2AC5D9A1D8F15A18A5C",
+    "identity_type": "provisioned",
+    "key_seed": "0C8BB4BAD43C47257EFE360BD5D5DBE4896E84694141ED2BFEC0489578B217EC",
+    "metadata_key": "0F57379CD24569CF8D875802667F8018",
+    "nonce": "2537E78DBA5A7038AD729338",
+    "section_mic_hmac_key": "FC12ECFFC1AA17039E7B4D5671BD50D23427170DE99771C2560D50630AAB4FDC",
+    "section_salt": "CE373177E0843767D3CBDE3EE36AF171"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "75678439AC49152DF67381CC8EE0C97D",
+    "data_elements": [
+      {
+        "contents": "AAF565A6056E72F5701175",
+        "de_type": 900
+      },
+      {
+        "contents": "",
+        "de_type": 882
+      },
+      {
+        "contents": "1BE514ACA5DB37",
+        "de_type": 958
+      },
+      {
+        "contents": "4E37988B6C6BEA4DB361B0ABA2BB437B4AD2A36629E927A798C952DD",
+        "de_type": 994
+      },
+      {
+        "contents": "7A7051FB81E50D6E053F5485690060BB125BF0B564C25E8141F18A96",
+        "de_type": 502
+      }
+    ],
+    "encoded_section": "8E9110008CF745CF3EF5643BF08137D12572917690017A062343BD2CA81B100320E63F160D60C0E4FA222E7E8D2DDEEF54E8DB3E6F1FB8ED544B20CCC68B7325C41E13169FF9243D361927D8B8D70CB9BAD2BF8D144A7E7181AD04B286370859944B00B285A07237C9B7C06ECA02F133C1ADB18676DB418CB0F625548CEE8D1EC557723967A2DBE6B6FDE4266E810D",
+    "identity_type": "private",
+    "key_seed": "B2289A540886CA52A77D25F5130E9772E28FCE89F62ECC13606D63DCEE99DA3F",
+    "metadata_key": "982AE1A57B20C2386179D149B6EF266F",
+    "nonce": "80CD1289986D617F60412E98",
+    "section_mic_hmac_key": "7568EA434871461F5D6FC2DD811AFD04A037DDA922D703E0C62B59BE3FD8463B",
+    "section_salt": "8CF745CF3EF5643BF08137D125729176"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "7BB7CE9DD41A841A3D5A7EFD4C320177",
+    "data_elements": [
+      {
+        "contents": "AFD0D457BF0EA8EB58FB",
+        "de_type": 663
+      },
+      {
+        "contents": "2E252A7580FA1B62063666B69F3C6332E4B8F9707C7A21E9E02950D9C5",
+        "de_type": 817
+      },
+      {
+        "contents": "B60A909ED57A8DE3A7860923B92A7D5F6A8D",
+        "de_type": 800
+      },
+      {
+        "contents": "B6C8C14C3304DA",
+        "de_type": 874
+      },
+      {
+        "contents": "44359C8173B6FB9A92391A0EAE5C6CED3795595BF808E685FEA3800C",
+        "de_type": 41
+      }
+    ],
+    "encoded_section": "9F9110007C40D5971CAF5E56EA8BF03ACE6BD22D90029D30A51708C5EF060F6B2302BBAFF4C86DD795B8E6C90593DF259C7456F78C3C538BB0F15EDF17939A6C167B07648A62BBEDC503DBAE8861E36C6D465288149E9E99BC0514AE21D81EE7A68420BED4EC65D36A625CAB083EF8AA67EBBEAE047778D2B1A6DBF17FF25BC013B70582694E68E21E45C2537CE508A82751F5079DA2D24255E6800D7B48241B",
+    "identity_type": "trusted",
+    "key_seed": "ED15F635173F72E83E0FECAE6051EE847DC187452B21CD45FAB6695D6B46FB6A",
+    "metadata_key": "FA3B46AB691AAA00B09C9CD962E3811C",
+    "nonce": "40AB25BE3D15124FDD3852C2",
+    "section_mic_hmac_key": "EA130B96787E966323391209C412448E67E2554BFC79E1D0A4C1D8F28D29840C",
+    "section_salt": "7C40D5971CAF5E56EA8BF03ACE6BD22D"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "09E7B0FA69B5C2148852706F8C5F82BD",
+    "data_elements": [
+      {
+        "contents": "8C43E3E02909D0E210F56F35F3A53ABDB0",
+        "de_type": 153
+      },
+      {
+        "contents": "45",
+        "de_type": 747
+      },
+      {
+        "contents": "EABB820A273B4051E4",
+        "de_type": 653
+      },
+      {
+        "contents": "",
+        "de_type": 828
+      },
+      {
+        "contents": "640DA947E4BA04CC0C40BE9FA8DA6819E90ADFAB03675A24BC2D66E541",
+        "de_type": 780
+      }
+    ],
+    "encoded_section": "7C91100049432641BB8252194672F33CAECB191190047289517226E7FBBDE5818FD68CEAE9209FF8BAA41136E4807358253C75094411B689D301DC04E3516A85D40B21DF0700D7B92EC91D1EEA36287C7705A61105847DD7D8A428E634D74A99BE9AD6EAA73D38FE8F69CE611C48AB50D989C8E64F6E8E01A44AD1A5B2",
+    "identity_type": "provisioned",
+    "key_seed": "B169199CF07A1D54ED407BF64823FF86996412B093B8484B37834D8924EF93D4",
+    "metadata_key": "9E2A47BDDF6F1B9BEA356760D0F3E69C",
+    "nonce": "1BFD42F51287EB2A9F5E1F4A",
+    "section_mic_hmac_key": "3BC6B7E8D9F2574AFDB2475C7446292E50BD425D7C29210ACBB02926A8BF3446",
+    "section_salt": "49432641BB8252194672F33CAECB1911"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3895442EB8CDC0F81A3C413255B87845",
+    "data_elements": [
+      {
+        "contents": "8A78F02365C12DF7959D96CD0DC8D50C000230D7500F2773BF92",
+        "de_type": 791
+      },
+      {
+        "contents": "6494FA1960D6F8",
+        "de_type": 709
+      },
+      {
+        "contents": "DF5B46AF34309403DE697850F22EB80BEB",
+        "de_type": 10
+      },
+      {
+        "contents": "5BB5A41FF36679",
+        "de_type": 284
+      }
+    ],
+    "encoded_section": "79911000543133A572BF9818330781F72566EBA39001945FCDA195E5DD57E890340E1145DDB3E7F29F61570FFC84C816A65BECF670144691E6DEED393F745D1C2FCA8F81A02EB783E970DFF3182D3A0DA22DC6046EFA6AA8311E1B7A9B9B3397B1C7F2DA32F5AF4A59698565FEB006903A3A2BB2AA774E65DDA3",
+    "identity_type": "private",
+    "key_seed": "41A397419E6A7A9BAC80625800C7C5CFC5A9E38D334423670A10C95B46385944",
+    "metadata_key": "6DF6268ABB94ED2B7572647828350E37",
+    "nonce": "3FFCA5B7F335F4080095078A",
+    "section_mic_hmac_key": "8E01172131A0E1AF5B2E800FBB4F6B941561F6A25326CCE3FF8549C87F059B75",
+    "section_salt": "543133A572BF9818330781F72566EBA3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "FE335C4919EB054F5D03A0F3659BB5ED",
+    "data_elements": [],
+    "encoded_section": "35911000CF8C1FF97CECF7F829F6C8A71E77CD779004792DD541DC78082D871E1191261E74A3B8E20A809244EC191525C631BB404865",
+    "identity_type": "provisioned",
+    "key_seed": "354C47FE5F08043C0739F02C7C491A5CDC2ADEEABE5C95CA26EF56D3301F32F0",
+    "metadata_key": "0CBB7E1212820A68D7DA2C386E9CA368",
+    "nonce": "D0CF770C2DF7104179F8FEA3",
+    "section_mic_hmac_key": "D94E767398418969D4D7F94690A8BCBE3E5D7F85990B958A83FF465E723CA19B",
+    "section_salt": "CF8C1FF97CECF7F829F6C8A71E77CD77"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "ACD71592FCB1FD6C6D8ED46C23769315",
+    "data_elements": [
+      {
+        "contents": "C8A12CCC17EE72A7AB87A19A",
+        "de_type": 38
+      },
+      {
+        "contents": "2A0E63613F23C6B46B0C7FA2F22112381E62F5B1E9",
+        "de_type": 129
+      },
+      {
+        "contents": "80F038E4063FBDCD0612FE767119359E",
+        "de_type": 564
+      },
+      {
+        "contents": "4DA8FAC9B8994DB6",
+        "de_type": 3
+      }
+    ],
+    "encoded_section": "789110000F3ABCDAB5986222DDFCBBB8FF38566C900428609F59EC9E471AA93544E7103F645AC96E4FAFC86CDD5CDA58B682D3FFFA015B6578E6C2E1C21AA406B7175401D3FCE1ABBE909A2A50C0804D4E1A8CAE5E27B1BED0823246EA34539ADC01915175F58B47E44680672B72EF54451DD632977507326C",
+    "identity_type": "provisioned",
+    "key_seed": "23DFBD6B52C3B59B254DB98D406E8479C25020C1DFA630A8BD2C89F88080C615",
+    "metadata_key": "379389FFDDE6252B5130D231D63472DD",
+    "nonce": "15F7BCC7074470D3F1CFB56D",
+    "section_mic_hmac_key": "BBD2B93E7B2477438E34C1205D0BCE0B365A7BC302EDB5CF0F82B6894603E24D",
+    "section_salt": "0F3ABCDAB5986222DDFCBBB8FF38566C"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "BF15896C0DB200DAE1115AC614084DA2",
+    "data_elements": [
+      {
+        "contents": "B874CE053E51E004F52641A7CFB2D3B0FD74B7DBE178776A671A0DAE2F",
+        "de_type": 302
+      },
+      {
+        "contents": "913E81800F04456267ABA9E4782859A4E1C7F9BA7E9F",
+        "de_type": 115
+      },
+      {
+        "contents": "803EF3051156701AB4EDAEF5FCB355594348E96537E5EC0571BE99",
+        "de_type": 353
+      },
+      {
+        "contents": "CE22",
+        "de_type": 749
+      },
+      {
+        "contents": "8BF83F936CA560AF25B8E0FD2C",
+        "de_type": 140
+      }
+    ],
+    "encoded_section": "A09110000909CE4451ADA9FEAE94AFC32F74DA8C9002500BEFA6439AF0E094408096D11836FF233FD696C45B67FC5FE377CA37A7156D30C7747C04731ED487D679E79747AEAB7B9264C1F02FF4B3B56A6282FF1BA99927C50B6CB9A5AD8300C58F0DA8D189F7B891E3165A3951B9587FCEAD411774E3C191ED51D02878659572425B45D0098395AC66421C05B5B7984A66B82115AB609678A5B2E8B109BB1DE8AE",
+    "identity_type": "trusted",
+    "key_seed": "D32BF06FA8E93B413768C8F0CD5422EC87FD4F07A83471240BA220E36153FA02",
+    "metadata_key": "1FE225A34E0798FF526E8B55F10AD9AC",
+    "nonce": "B54225F9D30F237B635A51E4",
+    "section_mic_hmac_key": "CE683F20EFFEBF4F062DA3EEDB52DDE50B32C8D63BF2B8A5551EDDD354940500",
+    "section_salt": "0909CE4451ADA9FEAE94AFC32F74DA8C"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "5C0FF3E5206B0B714A43B06D56DA4CD8",
+    "data_elements": [
+      {
+        "contents": "B83154F8BF3A58B9F7F622486850E19C9798FF7B0D2B57DF1ADB",
+        "de_type": 604
+      },
+      {
+        "contents": "2855D0AD4AA6C16ABB392AA9EFD8A0973235E86129F8CD652F1F",
+        "de_type": 362
+      },
+      {
+        "contents": "8744051612F79A9F05D48FEEF1F276B6039B4EA57B",
+        "de_type": 639
+      }
+    ],
+    "encoded_section": "87911000DB30A3E8AB8EB0FFE1A3C1C32107E97F900229702D3456ED474EB3634E1123F78A5EE68795E469986D32E140F7768372A49544565B77EDC858130D8F31885D21142238E6160BFBC4AA1E2C16617029B098225727DBE761B39D8C4F3A9B81DD79320B786B8A73AB12495BDCA873416489EFA679DBCF4D890CB24953E193DC729A7FB13CD7",
+    "identity_type": "trusted",
+    "key_seed": "CBD84DE224729EC23993EC958BA5EC191C55984C7565A37C202C66BC2F496DC5",
+    "metadata_key": "E2C1CC17E5DA3035D3A4A9D67B696A8F",
+    "nonce": "1769E6807F6DD41EED99365E",
+    "section_mic_hmac_key": "3B760F5F10A764D965E928C2EC75BF3C185BC1E60F1BC25E3A4F2A23B08275C9",
+    "section_salt": "DB30A3E8AB8EB0FFE1A3C1C32107E97F"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "EF4525C9E148E35CE5B6B1ED3EC7F397",
+    "data_elements": [],
+    "encoded_section": "35911000F37AF80B78106073DEE5B3E89CBE817690015242E1B8F8D5B0AD1A98BB81C0B7AA6E2F08129AA0AC99057C4EF93D009FACBD",
+    "identity_type": "private",
+    "key_seed": "45E271D048743BAF708F32EAC2E0C37B0AD50DC468268F45FA5A00F273710BC8",
+    "metadata_key": "D5BB4FEA17C7E817338B14C4D01F95AA",
+    "nonce": "9EB99045CCBB3943C3C85689",
+    "section_mic_hmac_key": "94142F9B2D08B819B2681AA5A8532AA239FA5D248DE1400308218E1171A19B2E",
+    "section_salt": "F37AF80B78106073DEE5B3E89CBE8176"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "D7B12DF79375EAD42C400EC4B32C845F",
+    "data_elements": [
+      {
+        "contents": "5EC3",
+        "de_type": 27
+      },
+      {
+        "contents": "9E9931D907110614B32CD6406AD1F2EB87A10F09B7E8E787112EED",
+        "de_type": 473
+      },
+      {
+        "contents": "D832A59D",
+        "de_type": 739
+      },
+      {
+        "contents": "F9A4AB6E8C79AA9949",
+        "de_type": 326
+      },
+      {
+        "contents": "DA3460FC544F1F95",
+        "de_type": 983
+      }
+    ],
+    "encoded_section": "759110009631F8139C4DBED9E68452694DDFC8839004ECDED2D0BE3DF39682EB8C2218A08B11479557857995B61401E0F13ACAAD078B464F1BC371BF9374A4AC12E24E92258EB2020E02A85BBB90568AB3BF976B36BECEC7BA4D0925816AD13747288FA4FF6F5533C22E342606A7B9929FA0A5672FAB",
+    "identity_type": "provisioned",
+    "key_seed": "869972ED54E5B68EF1C466213667435B7C08EBDDFB74F685ED7E16CADB6BD315",
+    "metadata_key": "4B943DF47FA8A1A5ED1983F6BA680BF1",
+    "nonce": "0A885C98D19D59923D1D4CE8",
+    "section_mic_hmac_key": "0FF1627C891D82AD29699A9382972D0D134EC708C71ABBB25F117C50E7564E7A",
+    "section_salt": "9631F8139C4DBED9E68452694DDFC883"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "D99D1918B0ECB9895C5079AC3708F8DB",
+    "data_elements": [
+      {
+        "contents": "9504B53F3858406A21CDB1A8E6E4726EE54D26EF868A1CD0FB3FB6",
+        "de_type": 354
+      },
+      {
+        "contents": "",
+        "de_type": 219
+      },
+      {
+        "contents": "E68CCEB0AEEAD509B8D936D690940E628CB3446E7A5AD4",
+        "de_type": 570
+      },
+      {
+        "contents": "27C89F3446D81FA865168C6942",
+        "de_type": 663
+      },
+      {
+        "contents": "A7B1EAF81C107EE58AC4433F9B2F9194A1C5B3B31F7DBD775E8C",
+        "de_type": 854
+      }
+    ],
+    "encoded_section": "9D9110007E27BC504F56BB2720C62A72226B8C369004EF6CDC81805C1A1B8C3689B047217487EF72A690D9EE8B7DB36DE15EBAF6746CD77D0E9C979344B10045AA56EFEC9ACE8DCB27C444163CEFE58CD7DB8F33F3BFB3F34483F7EDA5D0BDF0DFDCD63AD61AC00E548B445F480EE3F2B5F7CBC8646CB6C916CEBB660725C6735F7105F9FBFA765E51EE242D53E97F79F4FD2151590529DE523296437B2B",
+    "identity_type": "provisioned",
+    "key_seed": "C50E2225963721E5B6EFCE5B1A228B14BDD2BA34AA67E7225550B081BAD88726",
+    "metadata_key": "062D3B665FE311167539CBC5BEAB9BFE",
+    "nonce": "E35AE35D209210B3880DAAA4",
+    "section_mic_hmac_key": "80C63B2ACF7CF9FAC9852D0208BD4797B5DCDEF5A3F4BA561D07FD2ABEED9F03",
+    "section_salt": "7E27BC504F56BB2720C62A72226B8C36"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "905119285260089FF9BE8FF6CC825E02",
+    "data_elements": [
+      {
+        "contents": "C7773F175A4EE4",
+        "de_type": 167
+      }
+    ],
+    "encoded_section": "3F9110002F823378B9F59BBDE54978A162E849E09001CA8F84780BF04A3EA8FBE518141707B75121CDAFB8F0E4A24D354D5775AD46CD6E698AD77AC066B5250F",
+    "identity_type": "private",
+    "key_seed": "4D8C6CD25657A64D6A4FC29AA77B921362224AA73F33A03B48A547BAE062F80F",
+    "metadata_key": "0E77A2EF879199FCDB210192BA8F61BD",
+    "nonce": "71FCB2AE5A7E75EA035E4C2F",
+    "section_mic_hmac_key": "4C314CD5B4BA1DA13BA002B6F8B5B23B83E52A3151E8D3188B18A9116D393FB5",
+    "section_salt": "2F823378B9F59BBDE54978A162E849E0"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "58242E8A9A5B025E720AA40BA1CB864D",
+    "data_elements": [
+      {
+        "contents": "786DF190FA",
+        "de_type": 989
+      },
+      {
+        "contents": "C35CCE593DFC7F1B67D9FDB6DEB00A",
+        "de_type": 8
+      },
+      {
+        "contents": "CD5807FFDB0B16362997F91B45C3F1",
+        "de_type": 736
+      },
+      {
+        "contents": "AE7B1B9F94",
+        "de_type": 485
+      }
+    ],
+    "encoded_section": "6891100064EDA38990FF5640000A6F909B9B4C339004B2D2CAA61055C3A3B5B633A6864D112D20D55DD235B254BD1B4DDE1ED246B422D549F6ED9EBA4E61B144AE199F41786257AFABFF2D09F5ED1D551AA90897424C7DE78D9F4211352DFC23D15FA49BAF2AA3160C",
+    "identity_type": "provisioned",
+    "key_seed": "930ABBE8D4AA0392A66E624A958254C607E161BDB8F63C4DB39E049C200AA63B",
+    "metadata_key": "06190C656B704517A79EBE4A713C90D1",
+    "nonce": "08746932375AFD8D733B8CCF",
+    "section_mic_hmac_key": "E9018DBA2F5D458EBF7F765F5E0A291DC789BF054BDD7F21ABB08F3C9CE0C068",
+    "section_salt": "64EDA38990FF5640000A6F909B9B4C33"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "2E74FA5A2A52433667B756AB26FCD187",
+    "data_elements": [
+      {
+        "contents": "A60BC355C90F28BC4939E07D1CE8FDA9F3BFBC190219B42A0396EBA4F4C0",
+        "de_type": 59
+      },
+      {
+        "contents": "5D789F74C3EDE4BC72D2E79DE9AAF8",
+        "de_type": 990
+      }
+    ],
+    "encoded_section": "6791100074C764F6E930524EF16015CE7D9861A090016D3B7274B511B5F2C9F5A18052F777C5F86FA997CE3BC22C9C6C9A5CA085DBE6488B2A78C6A73EC270656AEACCB923F608AE77568EA51827AE96FF9E6CE819A78E0A4EB2C5CA3B4970BD181F397E3E98EE7B",
+    "identity_type": "private",
+    "key_seed": "2AF41D8404581C2831B893C7DB59D544B64CFB736BFABC81A01C1875066EC279",
+    "metadata_key": "CAAFC39835637CF21D4B75303E2CC3AA",
+    "nonce": "22231C84688BAF0FB9538C9F",
+    "section_mic_hmac_key": "795A1998284D2DFE1A0E29D8118E10D830AFE527DC341E2654B88F2C1EB1B06A",
+    "section_salt": "74C764F6E930524EF16015CE7D9861A0"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "7B2C7A448A3450294EDC49709E51BA60",
+    "data_elements": [
+      {
+        "contents": "E1CF16D6B5287453B1",
+        "de_type": 956
+      }
+    ],
+    "encoded_section": "4191100052105E2C85C91460D02A73EEF05F82709002CFD75D43FD7EEBFBB78A62325C09B1C96593C0ED6CA278F49AF34804167F948B99611B4C536AE40E3B74243E",
+    "identity_type": "trusted",
+    "key_seed": "E685FFAC5E3BAAF679C7991522FB5A6CEC3F100597766673D2746868D929D360",
+    "metadata_key": "6E6DBC6DD5DC80171A5B0DCD03F1BD90",
+    "nonce": "5677F857950960AC98F055B4",
+    "section_mic_hmac_key": "F47EFE70DD21595388F4747DC599502C15BDE2199335DF51DE8F50A3E6858EE0",
+    "section_salt": "52105E2C85C91460D02A73EEF05F8270"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "640ED142DA551CC82073E01140C9F6FF",
+    "data_elements": [
+      {
+        "contents": "CC848267E64EE36BD16459",
+        "de_type": 1
+      },
+      {
+        "contents": "13C03AE9514CEEA49B840E14C3D8FABB",
+        "de_type": 287
+      }
+    ],
+    "encoded_section": "55911000B89F5B7D2D1679457B14537AA5D43AB79001E4AE76D2D7376A024CFAE9AF27D5D51D4409BBE5B1F0ADCE4EA97CA14545F965091703432E7238CD345852880A893E18B154A85EC8F2B0C80B28C20376224BC8",
+    "identity_type": "private",
+    "key_seed": "757A5313F590A0A3CB7880514176C98223D8D89B6C366F0A9C3E614A95667FD3",
+    "metadata_key": "8E48AB97578B936E9DEF574317F5643A",
+    "nonce": "2F4D288A2F3C29654024DF64",
+    "section_mic_hmac_key": "87973F076C0DA1706FBFA208CF3680032F72EFD30A1F35DBDD720FEDB5A73FAA",
+    "section_salt": "B89F5B7D2D1679457B14537AA5D43AB7"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "25B113A142425E28DBF10262674CCB91",
+    "data_elements": [
+      {
+        "contents": "2DC3DFB78F9FEDA6140EFFF49EA5CDB1587B3B",
+        "de_type": 38
+      }
+    ],
+    "encoded_section": "4A911000BD6BA0CD360D3ECEAC02350FFA2287AE90048C31FDA2D808BABB89DEDDC545DEDF43A15DC84FBAF251F8553C3ADA164CD855C3392347333E6ED803F1B35A04CB2DE8491B0AD57C",
+    "identity_type": "provisioned",
+    "key_seed": "B94AF2DE34B622260AB6EB5A28897241EF07FD726FF6B46B09AB855B74BCCE21",
+    "metadata_key": "12188B3AAA6203B3D7B7FFF944B28C03",
+    "nonce": "27D5AA6EB9343720C99B48A4",
+    "section_mic_hmac_key": "F36CE020CBD605AB0D5A58EEFC5B13041B3E8EE37FCD23DA8768D05B7E969217",
+    "section_salt": "BD6BA0CD360D3ECEAC02350FFA2287AE"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "86BEC41ABB2C0615E293D625F5A5CC21",
+    "data_elements": [
+      {
+        "contents": "796D434C2A64E6542A6E8A182C29A6C0A0D10CFBE5",
+        "de_type": 697
+      },
+      {
+        "contents": "B166F37A451DE048DFFE08768C22CC9E16161DE1FC111BE153E74567A3AF",
+        "de_type": 786
+      },
+      {
+        "contents": "15F72C03BCD436FB515626CC4D45B007465E01F99F141A06C2452D08C031",
+        "de_type": 75
+      }
+    ],
+    "encoded_section": "8E911000D67B70722D003E7D47A47A965DDC27EA9002BC3C5974EFF692C78D91B4BC70B183AC34AB08D6774A186DB2EAE6518C429EF6EE80C853B3F36AFF69463401AB265A7841C55974F8307B351ACD0AFC676A7F8E3B6785354E8C8341AC1D159B3449674AB3FC1664DC6A98CBE7B365D5F29CCD0945B37F3DA5B15711A1554A8D20DE4E9C36F89AE8CDC0529F18",
+    "identity_type": "trusted",
+    "key_seed": "8D0769C53264F0E56940C303DC296FD0FAC215BB638670FDE74C2D254EC351B6",
+    "metadata_key": "6E402856AB9B61F6C85EE44427DC3B78",
+    "nonce": "76315884D2C7B9F90A9E40BF",
+    "section_mic_hmac_key": "E87538BF29EE50BAE15333A281438C3A5776A0544CC3AB1EF84612ED7D59D40D",
+    "section_salt": "D67B70722D003E7D47A47A965DDC27EA"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "F22B4181441945D8B70988072189C682",
+    "data_elements": [],
+    "encoded_section": "35911000324C90A945FF9A8AECA1AC7F71C9B7FB900106FABFF1B5D76193C4196B7CE59C3AAA8D2FD16CCFA6CF09E8C226BD7604AC56",
+    "identity_type": "private",
+    "key_seed": "BD5DE9F03A2FAA422C470AFC4F151615F326CBE3E60828C0ECF68CF1215BB760",
+    "metadata_key": "60FEAF935A8ADA1C80FECDDB8F4290A8",
+    "nonce": "74FF9C6FC9B74DBC58D80EEC",
+    "section_mic_hmac_key": "83F5E26CDD98C91D084CD544BAC0EB6C79F3B79B388575973C75F76C66671427",
+    "section_salt": "324C90A945FF9A8AECA1AC7F71C9B7FB"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "48543F7CDFE13F94F1FF50E76088C2AE",
+    "data_elements": [
+      {
+        "contents": "9AB990FC7EF63FC213AE08BC81C35EEF8AAE8DF403E17839D9F25C30C7CA",
+        "de_type": 731
+      },
+      {
+        "contents": "2D33ADC55687CC6D516326D3083A01DF79F7C20347BE2BA49726",
+        "de_type": 652
+      }
+    ],
+    "encoded_section": "7391100008FF6026C41A8392B3401F690B0FA3E3900456BD090474095981D8D630D9AC342F4DBB5653D8CC96BB884B960AAF63A142323A4C41B7B287DE61D6724BAE3BD0C9692357BAB8A84265443B452CC632A26228824ED3B278FEA3E89BAB1F849DC2D59B92F7923D886E39B641A0824C5754",
+    "identity_type": "provisioned",
+    "key_seed": "80D21E28838910DF3318A81884493AD8B3156E22B9EC94DF8E440963D1E6BB0E",
+    "metadata_key": "F588CA28D3A30ADB81E4CF0F154FC445",
+    "nonce": "E3C19711F434B76AB66ED99E",
+    "section_mic_hmac_key": "5C093723FBC9061053CBE302658A97A8641724524D38B88FA576563153E43944",
+    "section_salt": "08FF6026C41A8392B3401F690B0FA3E3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "EC4C02761EBCE92561D9876B86277ABD",
+    "data_elements": [],
+    "encoded_section": "35911000812086DBDE127B30D0A49750706EFA7090023EAC44AC52CC19411C1EB8A3B054D3A4DA29BA7AB1F48B2B66D53A0E89BEEA81",
+    "identity_type": "trusted",
+    "key_seed": "F905BB1C2C53DE72F94DF4E6D2B06BFB56BE0B64FB9388FA64D0532ECBB2EA91",
+    "metadata_key": "3FA740734AB4B08F591E7A1678684145",
+    "nonce": "7DFB4025DEE53AAB242382E4",
+    "section_mic_hmac_key": "C606528062B1FC77C27EEF4A4C3C2DE18672B5334A4505036F0F7D8E3FED343A",
+    "section_salt": "812086DBDE127B30D0A49750706EFA70"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "08BF72906B4385228E63E345F18A05C0",
+    "data_elements": [
+      {
+        "contents": "9EC2961EB5315850F02F",
+        "de_type": 332
+      },
+      {
+        "contents": "75A55F90EBBF",
+        "de_type": 89
+      },
+      {
+        "contents": "5B1B5253D80289F8F01BE72974EEBDC3ED",
+        "de_type": 204
+      }
+    ],
+    "encoded_section": "5E9110007EAF5B0AF95F689E81F61A051D316FD49002DB318ECF2B751DB740797728EA96E14ADCE0B2BB27EBFC6D45312379906D6494808D7E9C8BA6242B4A02C4C23223112D77B94131BB9BE739661753C158001AF9CD0EDF73B899AA266F",
+    "identity_type": "trusted",
+    "key_seed": "EB8F85BE87A0A9347B3CBECE969B008A57FFEF6E4E8A95F734893EE710B27FE7",
+    "metadata_key": "825022A58B49C829B9B524E12AF0E160",
+    "nonce": "B5143876982CFC9AC88966E4",
+    "section_mic_hmac_key": "F649D8AF765E2E31FB870480932F4952FFCA19301F2FAFCBDB992928268BC8D5",
+    "section_salt": "7EAF5B0AF95F689E81F61A051D316FD4"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "6FA3188C366D18061138ECE126A97BFA",
+    "data_elements": [],
+    "encoded_section": "359110006B869584D8B9A2617A3911586E08679290028283D6FFC57D5D5FC3690502E95413F8BF29DF7EA841527BBBE6DE1C918E5B35",
+    "identity_type": "trusted",
+    "key_seed": "4ABD1D1549B74AEECA657499EDEFA7701D724FF427142DFA2ACA1A087455E339",
+    "metadata_key": "32152EC7E3BD86FB1D19DB1136E934EC",
+    "nonce": "5F7C76D24DCFE9E61B909C2D",
+    "section_mic_hmac_key": "89CC3C25CDCE4A6D36EDABF94C225087C455DA885AA113254AB3A71DAB0F27E4",
+    "section_salt": "6B869584D8B9A2617A3911586E086792"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "46C102A2CFEB44FD44236234AC618374",
+    "data_elements": [
+      {
+        "contents": "2DAED2D919",
+        "de_type": 752
+      },
+      {
+        "contents": "69642A6B9FA86810",
+        "de_type": 907
+      },
+      {
+        "contents": "C9133E66C06507782EFCA12CFD2255DD2AC3CCFE568E5B",
+        "de_type": 75
+      },
+      {
+        "contents": "11917BC9DB942E",
+        "de_type": 253
+      },
+      {
+        "contents": "B772136AF949D06B3C74EECB6A2877B73140CF7BD459",
+        "de_type": 741
+      }
+    ],
+    "encoded_section": "84911000D5B533CD04983822338C7E4679ABF0069004CB79ABFEA568754DF58A73D97993AE327F22F6EA434A49AA5D12110FB08F88A77C3EA795B49DFE542046BE6FF89B46146088D770CA8D4E221D73BEECB978974A7E3A2B29C0FE7002230356778F0AB6BBFC45279E08D93657B5D857EE9915A3343FDFAD5ED96C886E225EE77AABAB71",
+    "identity_type": "provisioned",
+    "key_seed": "B45EA904C8AD8040870C0C5996E7D6474109D43A1ED77CFD4EC5A0909ED8537D",
+    "metadata_key": "F27F824E7A676B87F008B914C697F731",
+    "nonce": "A9D31F3FC180A643BFD2393B",
+    "section_mic_hmac_key": "C57B68D19F0C0467792E61C6129CAEFC41C9BC017CFDBF3ECECFE053247C86B4",
+    "section_salt": "D5B533CD04983822338C7E4679ABF006"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "E76311EA2FA2BD5E23ADDD81EEB7035C",
+    "data_elements": [
+      {
+        "contents": "F0A613ACBCA74BE6A2B1EBFD40C52E0D66E5AB04",
+        "de_type": 294
+      }
+    ],
+    "encoded_section": "4C911000CC0BB7E46499CF0636B26F05408554E39004020E9465725DE7A884C5B175C90015562B2F9B106F9F1AEC608425109ECAC0513AD32D14354CE552859514849D19D6BB59CE2D0EF9A0F9",
+    "identity_type": "provisioned",
+    "key_seed": "CC9A75CC75BB1D230A75AE87B6AA6D14E08ECD864C90DFA2C144DA62AA2FDA4F",
+    "metadata_key": "D1FA24F308946E26486C02AB69CACDFF",
+    "nonce": "DDA1727B363F44B3A00AC548",
+    "section_mic_hmac_key": "1FFE447BB7A8331E0AB04BD9E920759CE433094711AAE085EED90F11AAB04DB9",
+    "section_salt": "CC0BB7E46499CF0636B26F05408554E3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "E670DF92DE550C7D16A47FF544AEB0A6",
+    "data_elements": [
+      {
+        "contents": "5297CB087EF89FF30B412ED7FBFE9B",
+        "de_type": 536
+      },
+      {
+        "contents": "C6C348BA415CB959EE2B51B43DAF200076890AD49B044F5F847728",
+        "de_type": 555
+      }
+    ],
+    "encoded_section": "65911000FAF0B973AAED0ADA284F65A67CC775A6900191A4765553BDA369F32677FF10F57E0793B4FC72165819EB2E38975021A78E8367C4BC9A94E846F6A04ACCE516355A0A93938147C6908509D1599D7EA96A377B7ECB31F81BA98D8AA01CED9617C410D6",
+    "identity_type": "private",
+    "key_seed": "238046E9C80693E551BF4F3E7E563FDB8FC7EF319A4E3405D603DAA10BFA0AF2",
+    "metadata_key": "BB080335533CFA2002C3FB861236215D",
+    "nonce": "30A968C64C6D236C78A202D7",
+    "section_mic_hmac_key": "20309013BDC66CF400D5E221109AB10CF0E742555D8713BBB332648E3897E847",
+    "section_salt": "FAF0B973AAED0ADA284F65A67CC775A6"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "236A98706211AAF9BE9FF085882ACD8E",
+    "data_elements": [
+      {
+        "contents": "6D6AC5C8256B7859373EB86A68E7F9",
+        "de_type": 748
+      },
+      {
+        "contents": "ED06337DA3ACC11B7BD86A0D315DA7A4EF",
+        "de_type": 703
+      },
+      {
+        "contents": "1639315FF6AAAA4B",
+        "de_type": 855
+      },
+      {
+        "contents": "785FD18ABF9AEDED7D3D407144A7BCE2F34444",
+        "de_type": 738
+      }
+    ],
+    "encoded_section": "7C911000F1B2D3FF697FEA61F1D24313BA24DFB09004BA73F0D4A7915365382ABF284BBB970F4F4FD77A6B3F48CE433EDF5679495A60CC803BACE3039072420D0FE9C1CBB529280C72864F31A3523FE98BBD39AC48E3A47524E57BC2259AD362901721E8EB8FE1F563C6C3EFF3374A277553D9D41732D44A4CB97BFE1F",
+    "identity_type": "provisioned",
+    "key_seed": "2D8D09BB3E1DFAB0611039A1BAF74D5258343FA303332251F86EA7D1FCCBA814",
+    "metadata_key": "158E2E60C7F45BB9D6487B4BB3984DEE",
+    "nonce": "9592919D3E310674BFDC2E9E",
+    "section_mic_hmac_key": "69D008503467933362AFA9AAEB534D22839A8946A0A2AC717553CD50ECBD5D44",
+    "section_salt": "F1B2D3FF697FEA61F1D24313BA24DFB0"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "52A4E397E30CD9CC7494F1FB77E608AA",
+    "data_elements": [
+      {
+        "contents": "8C3E52853DF5586EBD",
+        "de_type": 413
+      }
+    ],
+    "encoded_section": "41911000BC844E7B944BEB5585FAAB4B71443FE990044489F0D699085E6ECDBC45D5A180550578468BF5FCAF01E7AAFC8612A47B5B8BB81A82E844D8EF05E4B223B5",
+    "identity_type": "provisioned",
+    "key_seed": "4975391685B7E23B969FD2EAF9ADAFFDA9E54345F6C978691019DFE171CF1AEE",
+    "metadata_key": "ABBCF6913AF3396D4698A3D3ED9C844C",
+    "nonce": "6DBC8A54F98C20F59D424BBD",
+    "section_mic_hmac_key": "7DA38D6F5976FA186530C3259FC16951302C45E1A182A5B856778AC15D261A63",
+    "section_salt": "BC844E7B944BEB5585FAAB4B71443FE9"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "81775F391E97501F10A06ACF2C1E1E8A",
+    "data_elements": [
+      {
+        "contents": "E0E9135120FB76345D7F8649D99DCF21082B",
+        "de_type": 209
+      },
+      {
+        "contents": "A8930F2B30AD1020C7719732557A115B73",
+        "de_type": 702
+      },
+      {
+        "contents": "8F573C102D81EAD9DC",
+        "de_type": 608
+      }
+    ],
+    "encoded_section": "6A9110005135798EFB48BFB42A2542E5EC84F8BE90024EDE7FBED7BE6DB4BF57CCAF6B79B42AD2AE82EF17209B1118B1B9BC30E3DC7EE47CC74BE402A40786226E6662CF3C582AECFEDB6BD9FDD87CD780D34B7CC7708714ABD30875A945E6592FC178421FE73B85293353",
+    "identity_type": "trusted",
+    "key_seed": "CEB5046E0E41EA2D087D6BB2584FC8F5AC4AE70C3F262AFA2FE83BEFC6A7F96C",
+    "metadata_key": "09F8FB1D817845D11CE0DD441FB6E6B5",
+    "nonce": "70D102E7E612845E49DC9A32",
+    "section_mic_hmac_key": "600AF01CC5117CB4AC58D49609CA3235EA0ADAC22B68D6FEA6973397744E7100",
+    "section_salt": "5135798EFB48BFB42A2542E5EC84F8BE"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "F3293976BEB4E1EA2904909A54A90D0B",
+    "data_elements": [
+      {
+        "contents": "AEA9748A963B21DDDC0B",
+        "de_type": 82
+      }
+    ],
+    "encoded_section": "41911000CCFD0A49D64FB8913DB3533CD842618F90020B1F2BE6DFF4647003A4CD20BEC2045A9BC3557018B6D8D1DDF5BAF68CBB0043BFE6F7F3A16914E72473574C",
+    "identity_type": "trusted",
+    "key_seed": "F7AB19164021C53FD3F406A4F4617A396FBB0B2083680D6A70F0FA93ACE0F337",
+    "metadata_key": "43CAC734B4E59E6410B789DCA22E05B6",
+    "nonce": "14B2E4D0A4BE88CD3AEEB9FF",
+    "section_mic_hmac_key": "6D816BF43B74326FE8A2A88B37CE383F8B46D0C126454936586F027EC60C489D",
+    "section_salt": "CCFD0A49D64FB8913DB3533CD842618F"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "375B33A2656E245BB1ECD330174673A4",
+    "data_elements": [
+      {
+        "contents": "54A8E89BD5EEA62D46C39CEE1D60ED4733976A",
+        "de_type": 596
+      },
+      {
+        "contents": "",
+        "de_type": 599
+      },
+      {
+        "contents": "05286DB66919D9F031C704E925CBF68E6B8E",
+        "de_type": 766
+      },
+      {
+        "contents": "95B7B05F119963240B933C337C6FA9B6",
+        "de_type": 336
+      }
+    ],
+    "encoded_section": "76911000AB7FA706A14892CDC9CED6E9C13C028D9002D26550BE730945C1CA0C220A658856FA14430A49D45BCEEDE10DD1CAFD274BE5FD828116B8E3E3D71A3F679486A30D832958AD1B2E1415BF7F111BF4F6CCF94634C904B46F5FB2482F8520F7EA10061C018B6C24891AFE186B8144EFB4981D1E79",
+    "identity_type": "trusted",
+    "key_seed": "D93D2A387F132BE81714405D487F9323099CD7089ED80FE06DBD5F19B9479AC4",
+    "metadata_key": "C249909E8C874421F56B5D5FD883F6D0",
+    "nonce": "3608D422560EBDF764ECC44F",
+    "section_mic_hmac_key": "ED742AAFE3D39273AC51EC4E94A7E5AD3EFE52D36E61F96ACD446F2A9C77618C",
+    "section_salt": "AB7FA706A14892CDC9CED6E9C13C028D"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "9911435E27099CC033ADA0B809A9BA61",
+    "data_elements": [],
+    "encoded_section": "35911000DB8B02B57082EB58CC198556EBED435E9004A72315469AD264409CF53387374629C4683B4C7D198CCFFA95ABA332D9EAD095",
+    "identity_type": "provisioned",
+    "key_seed": "DE3FF3C256080ACA31DCE848A0EF6DE573A584AC3FDF00011207692CBFC71AED",
+    "metadata_key": "A59DB751175865B4DB9CE9F5791D48E2",
+    "nonce": "22CEE3D3F35609F5B04F2681",
+    "section_mic_hmac_key": "88118CAA46862E8B57E83C23387C88F232BF22E5772D80E9EC15B75DA160F25F",
+    "section_salt": "DB8B02B57082EB58CC198556EBED435E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "78237E429DEB7FF64A0CF0390C6B5AB5",
+    "data_elements": [],
+    "encoded_section": "3591100092F6C10DFBB105F88D53E46103584A369001CEBC52E442697CE7C0439351600F775089647E153AA0A20B8E0446CF188523A9",
+    "identity_type": "private",
+    "key_seed": "3343E7EAA3F48E39F01E5E8BDD5082E6DC4FA5A75E4FA570E717EDECAA9D26C2",
+    "metadata_key": "65D3B6A2568AE0425F06C2E1A5F75F61",
+    "nonce": "B44EB10C11D792A4474CD363",
+    "section_mic_hmac_key": "FA58129EF913C31E017D2583EF3C53A6921C4C05F1F46DFAA29644E1AC8D13F1",
+    "section_salt": "92F6C10DFBB105F88D53E46103584A36"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "718BB6207F09ABF1767C88964995A316",
+    "data_elements": [
+      {
+        "contents": "41B733343BE9A40195965F3BE53A9E8DA772F91D",
+        "de_type": 38
+      },
+      {
+        "contents": "CB88998C5B3ADC6834216F607769",
+        "de_type": 644
+      },
+      {
+        "contents": "E2974A19DE611A27FF0AF9D27042B8073563FD2119C828CE",
+        "de_type": 587
+      },
+      {
+        "contents": "4FE69B",
+        "de_type": 58
+      },
+      {
+        "contents": "16A152105C8A1CF879C2838EA6CF4CC9",
+        "de_type": 494
+      }
+    ],
+    "encoded_section": "8F91100054D79FCDA215B6D37188275A6D71B49C9002E7ED4C98D0689465F88315C5E1E4CB1C994AF90E6DB73F55D62E14F5F6102EAEC722DD4B819BA652CDA67523910FBF4AD135A678F170DF68642B9A3E651817C280D56CB333C492B7B7C6EEC2718D16DEE888255E9470E50548CFDD8EF3FA1BE96BE3FC9206AF1E806AB72D7CEB2556A84DED90BFB26C7473D6A3",
+    "identity_type": "trusted",
+    "key_seed": "87AF0A342940CCE0D8A7C250CEC581D677776EFE684FE7A461538D306F79595F",
+    "metadata_key": "ADC6D21008E6C6F9C6140DD2CA7A2D74",
+    "nonce": "DEA185B8030CB125ACCD1991",
+    "section_mic_hmac_key": "0B96048E575A8DDE941E0BFCC9AF72673B9E59D0EEE1D410EA3B5D7059D8CE43",
+    "section_salt": "54D79FCDA215B6D37188275A6D71B49C"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "AD321D407A23FC1F3DEA4AFBFCE666D8",
+    "data_elements": [
+      {
+        "contents": "DE6102C7908322A68E36094307406EFE",
+        "de_type": 130
+      },
+      {
+        "contents": "D811C6749B",
+        "de_type": 979
+      }
+    ],
+    "encoded_section": "50911000EEF15DD154F1CBB12B876AB7E4C28C519001BADA4DD563CC46E682BE16A078D5AE079DB587A78C9BD6BB37621F9F8EA5B7FB490D6857D3C3D3BCCABDF00E85438DB6227C002BFA7291D54E5FF9",
+    "identity_type": "private",
+    "key_seed": "9B702205F66C701BAE43D0EDDF8C3EAD92C80A3A8583C3397E7A3371758011EF",
+    "metadata_key": "FF0BEBFC2C42168A47B3474D3439772F",
+    "nonce": "D225BF85D21A4C34FE6B6AA8",
+    "section_mic_hmac_key": "9CE75F27AC9E99BEA41587BFFB701F9D59793C68127183BA3BA38D219DBFDD1F",
+    "section_salt": "EEF15DD154F1CBB12B876AB7E4C28C51"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "D62FF5F858D26914C62F3C93ABD608D0",
+    "data_elements": [
+      {
+        "contents": "72FFD6C3F4B1B90771A08D281085",
+        "de_type": 817
+      },
+      {
+        "contents": "A4F94F7BEFD75D29A53C2ACDC0A908C2F5AA0768",
+        "de_type": 618
+      },
+      {
+        "contents": "0FBBAC5329C023",
+        "de_type": 729
+      }
+    ],
+    "encoded_section": "6791100097FF92E30C6B6E08B416A150E2099C2C9004A34006E38EDAD68F7BBA8294E12E9F92DF7A91259AFC5B813BE7A4FD8601959912E5B2CFBACA99A2460EC2CC0F6DE999F47A7580B9F0CEA2E0F882836864E82CEC3DF6F890269AABF65852CB9CF026D85452",
+    "identity_type": "provisioned",
+    "key_seed": "393F3DAA73636DE22AF63B869FFC970C1DAE302372E51F35BAC421F3C354B666",
+    "metadata_key": "CA8F91CB3DA7A5A37E33F851D93EBEAF",
+    "nonce": "A521F5DAA92BF1C1654569ED",
+    "section_mic_hmac_key": "67AADDFA3C1E18B279906DB7987D29EDFEA643D678FA1AB4987A0A1D610005B0",
+    "section_salt": "97FF92E30C6B6E08B416A150E2099C2C"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "EF85681E26EF87C8D2A1A3EE56FEAD2A",
+    "data_elements": [
+      {
+        "contents": "C24BDBD7E3697F223F1621217A9C36DC9394EC33",
+        "de_type": 335
+      },
+      {
+        "contents": "C1",
+        "de_type": 14
+      },
+      {
+        "contents": "E4231F2308EB41",
+        "de_type": 902
+      }
+    ],
+    "encoded_section": "5891100037E9D4686030FBAC57D3FE42D92B096490014DBC20227A7388E74D0961E8674691D101607D944F8AAD12C950188603894DA02D5FA3698A54DC40598F44313F297CDCCBC1DC14CD32D267267747B0B125D91A89A557",
+    "identity_type": "private",
+    "key_seed": "4A289EAEC36BE20656071FE87F8A55155D8A893815038B9ABCBAD3E72DB0C8AC",
+    "metadata_key": "C0450DFCC6AB17837C56EEDBE57D62A8",
+    "nonce": "A9FA4AB4C0929CF2CDEDDF34",
+    "section_mic_hmac_key": "8D45B9467DF17FE0943F155851C70CCEA0555BD59453503FF6A861F9011EF853",
+    "section_salt": "37E9D4686030FBAC57D3FE42D92B0964"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "BAC1BE39B5BE69F29396EF5CC41402B9",
+    "data_elements": [
+      {
+        "contents": "AF9A279790C0EB79F07F700C1CED8CAF60B72F",
+        "de_type": 101
+      },
+      {
+        "contents": "14F153F824",
+        "de_type": 463
+      }
+    ],
+    "encoded_section": "529110008ED27B5A64F8584EE798DA971BB3890290023D54202AA267D540AD159401DD2CC11E1F387FC4F90C9BA19D810C095D415CDF08EEC637B9CB2DF1259229CB2F02F894D63404B428C9AA33BDA7507601",
+    "identity_type": "trusted",
+    "key_seed": "9AAF4E2D596A7B4CA21DF9312AFD43A63FA8FA727DD60273072C4C4C0D472E3C",
+    "metadata_key": "5F68164865C2DFB852C81375C3D3D5E6",
+    "nonce": "4F23D7E91CB8E22BD3712FC1",
+    "section_mic_hmac_key": "0BF5C29B16B353256F793BBB4F1C8C52597D3F1C2EFA9D61EA46CDFDE84797C7",
+    "section_salt": "8ED27B5A64F8584EE798DA971BB38902"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "68A9C01E867B79A4CF5C2B9B0A5AF91C",
+    "data_elements": [
+      {
+        "contents": "AE6F1048CD",
+        "de_type": 505
+      },
+      {
+        "contents": "092DCE72E9C606136151791CACA850F34040EB06480609",
+        "de_type": 524
+      }
+    ],
+    "encoded_section": "57911000E8C86E9B41DF4F3B937952F49BC6738B900232D03070C79D80DDE8C1E0999B4434DD06A23FCF22CCD7DCA29E5074665F99831137706D16C0200B8B4598365543AD4BD647A682DD8D226897C1EB8F43C443DBD6F8",
+    "identity_type": "trusted",
+    "key_seed": "580ACE8B6CDE7180BD4AD61F486AB6AF65F04174A9E10C982CA1BE480E27085B",
+    "metadata_key": "E850D26EF14BBB1E7B3D1A5F64A50353",
+    "nonce": "2DD94E374A847EE945DCDEDE",
+    "section_mic_hmac_key": "597E20CCB0FF2807C1B8217F21115FB753F67303B79DC679094D7105C5EE8A16",
+    "section_salt": "E8C86E9B41DF4F3B937952F49BC6738B"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "CC5210E1AA93721F6A77C03B0F1460F9",
+    "data_elements": [
+      {
+        "contents": "31B8D3BD3DAD8D7EA787EBBAAD32",
+        "de_type": 105
+      },
+      {
+        "contents": "52CD1D16C9C10292F325BD",
+        "de_type": 679
+      },
+      {
+        "contents": "9AA553097F55186B693EF9F811255D4F9E33012D",
+        "de_type": 70
+      }
+    ],
+    "encoded_section": "69911000B0B06E5BCBFB897F867D1A98860C88819001968D65E73BFDB4A9C8D0CBCFD94F0AFF86A172DBA041C9B4819B60AE15C84ABF10167323F72BCE73348C948BADCACA60B31C01DF54A03A41FFA1CB83B1724E34BA74D43D17956AEBD6F5E9411F6D801A30C545F5",
+    "identity_type": "private",
+    "key_seed": "BB1C67EC1220D0A1CD718868B6DFF75A45F535D79358AD7417E98F584A520850",
+    "metadata_key": "5E11BC73AFA36ABB0FA9D177F470772C",
+    "nonce": "10C1E9BEAA44D044A6A52DA8",
+    "section_mic_hmac_key": "8F47EFD6981006EC099088AA42864E13399300C42A22D67FE00540745BC434D7",
+    "section_salt": "B0B06E5BCBFB897F867D1A98860C8881"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "636CF984B555E396E1ABE06B45A0DC9A",
+    "data_elements": [
+      {
+        "contents": "26124A707B14872CE3CCA803962D1E8E",
+        "de_type": 356
+      },
+      {
+        "contents": "5BE121EE1535F68B384B2048",
+        "de_type": 191
+      }
+    ],
+    "encoded_section": "5791100091150893740502FC52626D5C1FE1D97B9004D692F649B521B08446966B43B3A0E2853FC66A18FD044B2D9FA619580671AF9A093BC9C29AC2285193C8377E231E4E378A0EB12B69F309BBED412881C06054211F79",
+    "identity_type": "provisioned",
+    "key_seed": "9F10722920D514FCD00582382A3D744B7513089C4ED4F0F762E62F079817EADA",
+    "metadata_key": "CED359A792C26F42583568633F362936",
+    "nonce": "AC3820DF4711726BD92A95E3",
+    "section_mic_hmac_key": "73CFEDBC2C7DCC199778704504D8406E69DEF3850E9E556E65264FA5C0F72049",
+    "section_salt": "91150893740502FC52626D5C1FE1D97B"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "BB72B0AF2C215797791F4813246EEAAA",
+    "data_elements": [
+      {
+        "contents": "B560FB4055782B29002780C1C79A92C3AB5C94BBFE1D30",
+        "de_type": 704
+      },
+      {
+        "contents": "D9D67201EFBBC989BC73CB82CE5A54BA30270BCBCD16C3D918C46C8FBA",
+        "de_type": 759
+      }
+    ],
+    "encoded_section": "6F911000C4FC89ADEB54417C2145D31AFE590E67900479850A6176A11C5005C1B816084BBBC8E1B96A5E84FA83927CFE3F85B13CA15C78C4E487AF94942D9527A4EE40FCE291F8A4076FF3285DBC70EB2AE12076384B309C9DB593EF97E5952F1A878E9357C5215EC4CA7382A07821CE",
+    "identity_type": "provisioned",
+    "key_seed": "4F5BCFCBCE781EBD9353546FEFDAB4123548E63980050C1FB2FEBE745EFDEFFC",
+    "metadata_key": "18CE930F2687B1C72063C2B147ACBD0C",
+    "nonce": "09C9C088DEE34D597B83255B",
+    "section_mic_hmac_key": "3BD3CBD58CE94F98266BE570B2897F0C0CDBC8900AFB76E0699315F0132C8D5E",
+    "section_salt": "C4FC89ADEB54417C2145D31AFE590E67"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "9BBC179545C4C8661833BFEFE25E4478",
+    "data_elements": [],
+    "encoded_section": "3591100018CA84AD571B443615D490F5A1AB791E900287C25FBD0A1AA47A74D7960394D449914CF5F364A1DBBFEC57B7447A38AD0152",
+    "identity_type": "trusted",
+    "key_seed": "0B5BD58A7DB4DAB27EAB2B71CE802751442437C426E163735196EBDD9EEC98A4",
+    "metadata_key": "21E42F417AA748179A50406477891087",
+    "nonce": "22A25ECB407B6DC73A8BCE1F",
+    "section_mic_hmac_key": "35857C6B5BFBA20A9012E81B452C95D5F62B7D429C9F250F6FC8C96EEFDAD338",
+    "section_salt": "18CA84AD571B443615D490F5A1AB791E"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "29912DF85FEE4E2802F3CC758240C118",
+    "data_elements": [
+      {
+        "contents": "20EC521C467D60C62519AFEFFAB2989DA34F609D7348CB0648",
+        "de_type": 881
+      },
+      {
+        "contents": "7CDFF605A49D2327C04C9523E972",
+        "de_type": 339
+      }
+    ],
+    "encoded_section": "6291100096874E513BB028EA8D3147662E898C929004510A31F7EEE22BBAA1A676F50D87B736D02CF8AD40A2FC01F73D61050AF86BDD26889F66B6C7811E98013B10549BA699C5B0FF6B97BC95CA461512A91C6CD748A847E8A06250284F89D8768282",
+    "identity_type": "provisioned",
+    "key_seed": "BDBB0B95B3F933B91F05CC9ECED4DD468E3174109DEB7A4F0783C40F39E20761",
+    "metadata_key": "A97FB828B07A9D327D5567152634D0D4",
+    "nonce": "F8BD43493933BD842C97F146",
+    "section_mic_hmac_key": "32031801363FBE1A50288A6A9B0756EAA7CC2D653CA0B2AAF345CC13884DD2CE",
+    "section_salt": "96874E513BB028EA8D3147662E898C92"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "5D161A5D965DE072EC72B7EAAC295469",
+    "data_elements": [
+      {
+        "contents": "2499FFB9C498F2",
+        "de_type": 884
+      },
+      {
+        "contents": "941AFF758DD7D3B66EF8321874A7834A7E7F51BB284122405EE0",
+        "de_type": 463
+      },
+      {
+        "contents": "74C7CF3DF00CA35B",
+        "de_type": 435
+      },
+      {
+        "contents": "E07BAF5D40CA3AE208E6BDAFF05B4F9E0112559EC495",
+        "de_type": 2
+      },
+      {
+        "contents": "58E1ADF13A6F2383CCDE989D6CEB02EE47F1F3",
+        "de_type": 396
+      }
+    ],
+    "encoded_section": "9591100066B9B5E27075D2EAFB9B4E2E4159CA659002025D80ECE442E6A3D7F5DF17BEE9E8AA64D2904E04D09898D04EEB323B64C9AC0DC4F9FA55ECD3B7D58DEB3D9FD72FE1D8A213CCD6DFE89D053B106AE0F7A41844294DDAFB6E22A35F6F5A1251CAE0829609A463D966DC5C2BAEBD166B166CEBF5E3471EE3EAE4DFB5A594C0C64ECDBB00D301299F9782000628F11738B95006",
+    "identity_type": "trusted",
+    "key_seed": "5AEE4779ADDC954FAABA8C967AF32BAF74DA2E3790FF77750F20A10C300C66E9",
+    "metadata_key": "5819227E20E94984AF636A055E65EDF1",
+    "nonce": "627AF9F6E80A568473F0D41B",
+    "section_mic_hmac_key": "97182D1562F3DAC1911CBE791388036D5826EFC5BD2C9B7729555BC39D6300B9",
+    "section_salt": "66B9B5E27075D2EAFB9B4E2E4159CA65"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "8EF15FC5E15B86747BD2390DFD8D8FF4",
+    "data_elements": [
+      {
+        "contents": "5F99290FC42275AC698492E2263094B80F692233DB0DF8644B",
+        "de_type": 845
+      }
+    ],
+    "encoded_section": "51911000474A64D6CC5E1B015636E3CAF848E92D90029797772EBCF190224F6B5193FC0573554FD8D1B7C2B8DFB0C2344080EC5DE79A14650738DB3E375AB1F2416A0E091F2DADD7710C6731F9D2F4BC1ACF",
+    "identity_type": "trusted",
+    "key_seed": "3807E53D0E4A6A3C131FE2D9A12F3A17C9A81E206DD2403424D079986548F36D",
+    "metadata_key": "649BF41A962338BDCAFB3D6EFB39F30C",
+    "nonce": "11EFABF3B773890FD705DC45",
+    "section_mic_hmac_key": "BC9DE8BEFBFBFCEED8132F0E74A7FAE68CCF1F3259B42670C074355E57771EC6",
+    "section_salt": "474A64D6CC5E1B015636E3CAF848E92D"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "D87966196010EEDAE937B516E77C110B",
+    "data_elements": [
+      {
+        "contents": "D72414FDE144",
+        "de_type": 693
+      },
+      {
+        "contents": "89B82594CDEB3253E8BE54402F4EB47427FA",
+        "de_type": 139
+      },
+      {
+        "contents": "59F5D560DCB71A1A9AB340270EFCCC791F60ED3E5C16C9",
+        "de_type": 361
+      },
+      {
+        "contents": "5E8317B7EF6B2304CE733AF9AA4303",
+        "de_type": 347
+      },
+      {
+        "contents": "6B46914ACC05AC520CD86D64D95EF8B0E3B52684AC19C7",
+        "de_type": 217
+      }
+    ],
+    "encoded_section": "99911000550E90767EA297708A890EB778F86F42900194407433CAFDBC096242CBB630D9EFF2428967372331DA563029EE56D7736DB1C6B0F4171C6AACC70B165A1D7079B7213A484AC56B751F106EA890EE1F44B1DD84B03340FF64DE0D86EDF6E3C266B6E29F973D7DA9EA80DA5504E23FA9DEFB13DF26D97D8AC03B102233E7A400716212664A1A66A04360810288591BBC53D82755D0B7F4",
+    "identity_type": "private",
+    "key_seed": "5E128361F047F517713A5E7A9FBDFCBB8A65431B0FD54CEA276C15AA38738D00",
+    "metadata_key": "6219FC039F504E84C27E0C30A7922D50",
+    "nonce": "219ED909CC34B1C57EB81FED",
+    "section_mic_hmac_key": "80144AD3F7356F4D118216C943ADE3CE6A4C1CA1AC36CCEFD81AF75222A0C277",
+    "section_salt": "550E90767EA297708A890EB778F86F42"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "ED1872743ABF1CE1C54B5924D8B523C9",
+    "data_elements": [
+      {
+        "contents": "1EFD8A5E7097C3EA66A30F3F6EC8",
+        "de_type": 8
+      },
+      {
+        "contents": "70AA1FBCAEAF957AF9C114",
+        "de_type": 741
+      },
+      {
+        "contents": "727C6DA4BC51406D03",
+        "de_type": 628
+      },
+      {
+        "contents": "C80BCC953AFBD14D003F9C18",
+        "de_type": 905
+      },
+      {
+        "contents": "B3EC6F94CA366939C934FA84052FD4",
+        "de_type": 357
+      }
+    ],
+    "encoded_section": "8091100002C4DA8D1B21BAE28B3F9A0EB5693E8F900493FCDCCF43EBF7EF19D4476026AE4F5241FE0162977FB70B8E376CEE57BC2A866306A3787F61E88D954EAF7060BCE7A3023C7683CD7EB4F9D15A14147EAF9FE39A0BF9863BCFFEF8F4F2E8AE52F06651E06E94F809CE32E06DC15434A3A3D7AF4E42BBF88EB53E9197D489",
+    "identity_type": "provisioned",
+    "key_seed": "3DBF4DD4A42D6FE76568BF430BC73BC5772762941753D48A76134021D17123C7",
+    "metadata_key": "B6B17BEBEA55CFA5B610047C599FDCB4",
+    "nonce": "9E2B3708BC702B007B2B49E8",
+    "section_mic_hmac_key": "F0E7F12DF72F3EF40DE46181DD19D3E673AEE02757529C53F3F6DF9F8AAEF663",
+    "section_salt": "02C4DA8D1B21BAE28B3F9A0EB5693E8F"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "74300AD75CB40E2D6CC26BF7C3EE29E6",
+    "data_elements": [
+      {
+        "contents": "506CEBFF222CD35C949137A3A47D6FAD9620",
+        "de_type": 439
+      }
+    ],
+    "encoded_section": "4A9110007816B4ED58791237D1053F88CD8B7B859001D1EBFF70B960E79E6DFA6A89359F991816C253BB5B09AA2E98748E101D8BB2D18D4043847E353F85C82A586B92D5E7F0DC03E6CD14",
+    "identity_type": "private",
+    "key_seed": "8CE98EB290087656B04E4996CBF4007E92E653CAE71AF06D479B96D45B83447B",
+    "metadata_key": "81A2696BD7D21903EE2D63D2C4C44E4C",
+    "nonce": "CDCBF3E9E0E3EA002A004AFE",
+    "section_mic_hmac_key": "48966839EED698298B8544D0FABBB3E8009D9D67CE88CEB6F29B1FBFAEFB7C47",
+    "section_salt": "7816B4ED58791237D1053F88CD8B7B85"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "256EC73F1FAF17723C9B5C6062749FF7",
+    "data_elements": [],
+    "encoded_section": "359110007897264056B8ED625680B2F5124C30A890045D4D46423E9067DF2DFD36F3718282724748E10C6E16DA2C039F9C30D9FF6054",
+    "identity_type": "provisioned",
+    "key_seed": "D458DDE6E939B3C03B8CA27BE7D624D70F3777FB31C8278152C3C0161269A228",
+    "metadata_key": "76BCF4EB8C12033E8BF0534B8A6AAF4A",
+    "nonce": "1451BFC0DA68DCB2E0FCB937",
+    "section_mic_hmac_key": "DDAF42B3C3AC34F3E8F2C882568213E333A91F0A049E79AF52E98669048CA81A",
+    "section_salt": "7897264056B8ED625680B2F5124C30A8"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "1599363CAC85444B80B2BD6F32B44889",
+    "data_elements": [],
+    "encoded_section": "35911000D8624D1EC90B225B457D22AF6D8B4F799004990761D38053D068BBE94F66F9968E14BB793A96B05BA0F4716C0A7814D331B0",
+    "identity_type": "provisioned",
+    "key_seed": "7CF0C36D0E587661503F8F70B8F3A06AEA7B6352E843387F353CA8355EB92ADB",
+    "metadata_key": "A54230D1BAD378D531DB91F517D11568",
+    "nonce": "D25B10F1899F9A9C56648C1E",
+    "section_mic_hmac_key": "C1A07E6C0ECA629D1ABB6CF5D6175F97E97637756561930B256BB6891012A830",
+    "section_salt": "D8624D1EC90B225B457D22AF6D8B4F79"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3EB28DFBFF8CB955CC44F68B0085F70E",
+    "data_elements": [
+      {
+        "contents": "8511547C881A7F7036FA2009F904BF",
+        "de_type": 42
+      },
+      {
+        "contents": "7C4430D434907C017DACFD336A161E70C10815B6",
+        "de_type": 284
+      },
+      {
+        "contents": "15C1124EF76C2D9BB61C",
+        "de_type": 132
+      },
+      {
+        "contents": "3E3B0BFE93189B50",
+        "de_type": 694
+      }
+    ],
+    "encoded_section": "759110007F2CB662B15FBA6D7C18AB52889B266D9004CB724FEF84FE55FCB1A2B571C77EE17C930A5F6606F40EC38F4241A6B287A8B1EB443F7C013B34B3113D193F884B120F0AA415452FFAAA0B40B78DD80A09858F2068537D2AC8F8DF750509B9D52A4B9B39F10C2CFC42A9B90FC762945BC31CAD",
+    "identity_type": "provisioned",
+    "key_seed": "547C965E115345BADE7FA439398A1618870F0392671DEDE9944FCC693DBE32B4",
+    "metadata_key": "C55B065D5B03C633C7546FFE3043FB8B",
+    "nonce": "888A5C195BCC1327C7DA9E7A",
+    "section_mic_hmac_key": "F672CB3E86B8E87B727CB0814C7AE096C3E7C7EE2398D1581847C26951486BBA",
+    "section_salt": "7F2CB662B15FBA6D7C18AB52889B266D"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "A952EA928E55FAE45B612EFBB2E92897",
+    "data_elements": [
+      {
+        "contents": "A39AD60114B4E470CD6E5B1981F6D94FDF21E386A957B3",
+        "de_type": 11
+      },
+      {
+        "contents": "30309360211C7E94BC8B3692BCE38EE888ECF197C594C3D07D",
+        "de_type": 10
+      },
+      {
+        "contents": "66DF42C0A9CC3385053676451C23276C1CB169D74DDB1C46A6EDE2C89707",
+        "de_type": 610
+      },
+      {
+        "contents": "550E675F587E",
+        "de_type": 554
+      }
+    ],
+    "encoded_section": "939110008F8202EF37CD727B74948F6A5205650390045048FB340FCBE272C4D667BD6691E08084C56D24D168EE7C6B3AD228DF31ADD89B1627C7511ADF1E12882ACECB1C05B49539F332C01F0C2778F039A5727864A5FA46F9030820D06D961123CBDED94746017E6B2224D43BB304D590F12343258BDCF84F691600B58C18025956190BD91D359B1654D5862590962E89FC3541",
+    "identity_type": "provisioned",
+    "key_seed": "D75311C9FD54732B0D1D58E8C13D69582675936BC2D4B948E4DA8B8FD4E4EC19",
+    "metadata_key": "44A8ED043D7B7A04048C04871D04BF28",
+    "nonce": "39A11C1233C3887D0FE2FF95",
+    "section_mic_hmac_key": "0370E5CD2CA4944C5633BDB505F471ED4ABD6F9E0803BD57669BF1A096FBFAF4",
+    "section_salt": "8F8202EF37CD727B74948F6A52056503"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "375CC4495D0E6037B4A269A5A4EA302C",
+    "data_elements": [
+      {
+        "contents": "E51613F10B7423784CB6E3FF2E58",
+        "de_type": 683
+      },
+      {
+        "contents": "ECBD79DDFA8130DCDEF28AD2AF40C6A8DBB16B2972",
+        "de_type": 264
+      },
+      {
+        "contents": "9FD18CDBD2FC1FBAF9B317FF280956",
+        "de_type": 617
+      },
+      {
+        "contents": "8871908BB20E8F",
+        "de_type": 918
+      },
+      {
+        "contents": "DD8DA6F96A3751",
+        "de_type": 721
+      }
+    ],
+    "encoded_section": "84911000C7A3432633031353A946F0684CFCFEBD90012BD99B1A635B8CB01DDBBDB46AFE8742B053F93A65C75293797C523784EAE07488134AE32476E0F698D440C3A0A389DB48B6846E2D42A89584741285C09301225752A1A5C8152E010337BBA3ECB3C15D6893C2B2CEAB1FB452D50E5990EA1C9B007C08642769AF82551F3FFA44040B",
+    "identity_type": "private",
+    "key_seed": "D948351CA86C11F94DFA31FC2B86C7EBD32251E770E243B287D5C03630A7A4B4",
+    "metadata_key": "0F37FFFBB8B3BF85BE6B4A5D7AE60C37",
+    "nonce": "5A8953196DB0C6B086052AC9",
+    "section_mic_hmac_key": "6A6CE54F7E0FCB42716786C56294DB3FF4839464EB6D6DDE3037015BF42591CD",
+    "section_salt": "C7A3432633031353A946F0684CFCFEBD"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "2276BD761EED06699E8A4C1B005226C8",
+    "data_elements": [
+      {
+        "contents": "09D7C7411219259A530E4207",
+        "de_type": 202
+      },
+      {
+        "contents": "E6206D70CB69117E5B0CFC6484E5A9F6E6",
+        "de_type": 335
+      },
+      {
+        "contents": "124F723ABCB0F46AC2D9904E49F29C72F6A37A6F1C",
+        "de_type": 173
+      },
+      {
+        "contents": "F03BE2BA870E9DDDE0A20C37F7C3C513418FC8595CC2D9",
+        "de_type": 162
+      }
+    ],
+    "encoded_section": "8A9110006FD81C4F4977A61EA77802E4AE331B1B90044590EF69F794BECCA20B04E1A5794A8FE0BE6B353BAE140B8A37594A011AA936FCD209E03D522D1C147E321147E9B33735F2CA413B5C945091EC1AB92537B781F26714EAB879BF33E801BE58488C11306DD259B63B1F05FC146871978B17CACF8AEF88D021782A6DB7112D4C930FCA66626E69140B",
+    "identity_type": "provisioned",
+    "key_seed": "B3E1C7E5933E243B2457C3493F6C62D88640DF85591E1A370EBB5ED1A7E87DDE",
+    "metadata_key": "584C3B455D31A6EB73CA6286A6D1D677",
+    "nonce": "7C59A6FBC27521B60FDE3D85",
+    "section_mic_hmac_key": "4FC402F911776BD4BA7E1B934A76823AAEB91AEAE70F229149737AD2446C8721",
+    "section_salt": "6FD81C4F4977A61EA77802E4AE331B1B"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "ABD1E3B92ECCC94887008F9712C8B92E",
+    "data_elements": [
+      {
+        "contents": "53AA992BF504934429F0D55BCA57E7E4DD02BF1C51",
+        "de_type": 77
+      },
+      {
+        "contents": "37",
+        "de_type": 41
+      }
+    ],
+    "encoded_section": "4F911000117F8B155FCF545D9DDE2E2404BF08579001181FAA51DA6430295D27D32A8894FC80977F9FBB2260C5F335DF5E2985B1E9DF677F8DF40E3DD10180E31FD4A1E640AA81AD2D59ED29C73E0DD9",
+    "identity_type": "private",
+    "key_seed": "BAE413A1CB297D1B55956EF2E3D47463B15721D83113EB265CDE9742DE57D1E2",
+    "metadata_key": "E118EB2F2448E831DCB2F01211D4E299",
+    "nonce": "641B644EC4576653B4ECE6BE",
+    "section_mic_hmac_key": "7001ACCF2A6FE829E333351CF9500F0EC9F144AC2432E2D4E65BA205B5A2A083",
+    "section_salt": "117F8B155FCF545D9DDE2E2404BF0857"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "0B886C679F8368F71B69095633FD827A",
+    "data_elements": [
+      {
+        "contents": "C57A03111A582D033BA2F0BBF50F0698BC008461C715",
+        "de_type": 648
+      },
+      {
+        "contents": "0C95F385C694E2BC55C219B0086BA9F8B64C0633",
+        "de_type": 415
+      },
+      {
+        "contents": "C9826C977F5D51",
+        "de_type": 246
+      },
+      {
+        "contents": "B88067D984",
+        "de_type": 989
+      },
+      {
+        "contents": "98C5E507657F0B36CAF5D0EB02A5B30F1087",
+        "de_type": 663
+      }
+    ],
+    "encoded_section": "8C911000AD6BDCEEB60CC9801003D4F71FB8AF0F90049916A86D88CC6C404111A7D9075FFC0C699303B2BB1CDC7492495C139069B609E02C45F3F2F5D1F11C5CC45EAA610AE5F9A3085D638A8D774E060572A9E8E276FDC2B9EAFFAF23469097068D9F2AA77BCB5F548EF636B8BEF3C02495DB690858EA8A13C78501E64C54D05155EA488719C539D7B9060048",
+    "identity_type": "provisioned",
+    "key_seed": "B323DB96EBC1CBB190E305EBE290EF7E600D3D3E7D23688DC2C8C23B4EFC7A4B",
+    "metadata_key": "6436A7FA7D38F566B85179BFF2E4DA68",
+    "nonce": "43B0153AB9B6FFB0DA670B28",
+    "section_mic_hmac_key": "88BBCFCEB5CFAB8C69C5C978C8C21758ADE72E557C108CDF780367F6456C85B4",
+    "section_salt": "AD6BDCEEB60CC9801003D4F71FB8AF0F"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "E4E6282E18B2700912371FD299648904",
+    "data_elements": [
+      {
+        "contents": "6E",
+        "de_type": 875
+      },
+      {
+        "contents": "3E7F165B8725499C73A790",
+        "de_type": 547
+      }
+    ],
+    "encoded_section": "4791100001BF56D7253FE9F2388222BE2B414EB49004A2C3ACCC4EEFD9949E6470223F1085EEF12CA22DBF4E5A9DA978E44AF3E93F6142BE9270F59E188FEF58BBAC3BDCE8413351",
+    "identity_type": "provisioned",
+    "key_seed": "CFF5A7B58AD3CF1BF200E0874E1E404E0B8EC0BCE8812F1FFD4537E2330BF4F2",
+    "metadata_key": "C048921E6EE411AD4698E29A54BC6B4D",
+    "nonce": "8D23F89851021F5141478E33",
+    "section_mic_hmac_key": "1988C5772B660124148F05733A326F0F0C29DC301F2989294312F41C56292A59",
+    "section_salt": "01BF56D7253FE9F2388222BE2B414EB4"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "78DECA4E98143AB700746AACAE4CC14E",
+    "data_elements": [
+      {
+        "contents": "F42C1F5B9E2060A6D4CDA7A2963F44A524BFFD5F0F2D69F3322DCF4B93E3",
+        "de_type": 359
+      }
+    ],
+    "encoded_section": "56911000FE30CCFEF9FADE459409BCA8286268B79002DC0290C23BD3C7F0DCD8443EABD050919255A3755D0F5EBCBA7B540DA11DF0E844207B803710FBE088BE18847F5406B7711DBC583711B7930508B0B06F801CA9AA",
+    "identity_type": "trusted",
+    "key_seed": "F44873C8E1AC0DC8D63BC7CE805E543BA8A73CB83DF807B608246E14CFCCE5D7",
+    "metadata_key": "D0CB13BBC77450B18573A000E0E4B324",
+    "nonce": "D97378F4DF5B4D5249845D4E",
+    "section_mic_hmac_key": "11A63498ACF2C0D60AFEE3AD00117129582FFD6D50D3CA4A21CD3330BAF0B2C0",
+    "section_salt": "FE30CCFEF9FADE459409BCA8286268B7"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "99CA428E9B70F3A4F34CCE2EA3FFD1C6",
+    "data_elements": [
+      {
+        "contents": "95651D83B5B463A0B4D7C3BF97C1CDFD9A2853DD216D",
+        "de_type": 842
+      },
+      {
+        "contents": "B1E32F",
+        "de_type": 633
+      },
+      {
+        "contents": "B44550D17D11C579DDE453A78F8E68",
+        "de_type": 764
+      }
+    ],
+    "encoded_section": "6691100074678AA45A5827136A450437EE29F5E39004B94F1326A3CE7BDCA34AC253366FE37E6849758193586827933D9E096053DC06102448287A436069815904A0F3895C825ED3538CB827DF1B153E833F11DD926D4E5A45CD20EA0FE3FDB21A587C6C77638B",
+    "identity_type": "provisioned",
+    "key_seed": "71A3A2B3B223F84BE6E8595208384B34D0379E898137A3B5DC4F18C71502CACF",
+    "metadata_key": "8998FDB14463108B5A5F66FE289D13BF",
+    "nonce": "AFE96D0E4FF65C1734F9F99B",
+    "section_mic_hmac_key": "2222BA7F416FFEB9B14B07D5D2522EDDF0D2E82CB116D23699566520035BC6E7",
+    "section_salt": "74678AA45A5827136A450437EE29F5E3"
+  },
+  {
+    "adv_header_byte": "20",
+    "aes_key": "3C5965394479133B2B0CDA3474935C12",
+    "data_elements": [
+      {
+        "contents": "4C5DE6A43F855833418B23DE6E4C0AB9B8A6D1C581F15A683D",
+        "de_type": 831
+      },
+      {
+        "contents": "1AE2D41BF9064E056C22712044707CEA3EFAF26964D83E684D33CE",
+        "de_type": 355
+      }
+    ],
+    "encoded_section": "6F911000BE86E394E730BAE02E2A22E8B54CF1A4900408EB6891543847E08002B13233D680C89B22F57320B4890E87533A2B4DFC30021206330351F378D93A7CE5051655B1EC84F8F4F68DBB327EDD4E0DA4948323F1B931733AA4D28F06238FF3622178015BB5C709094AC23A3E448D",
+    "identity_type": "provisioned",
+    "key_seed": "CFBB3B4D111CDF95E4AA9642D5D6C1611B8522D6F76C7B1F23C09DCE58133FE2",
+    "metadata_key": "3BFA93FB827970E4CD401DD9903ABF19",
+    "nonce": "2CFBAEDFFF07C80511FE4B1B",
+    "section_mic_hmac_key": "16B7AD3BB2B10A5B5D64ACEB9733BEDC6D0FD351E5D12AB36FF5FB283DEDF3F4",
+    "section_salt": "BE86E394E730BAE02E2A22E8B54CF1A4"
+  }
+]
\ No newline at end of file
diff --git a/nearby/presence/np_adv/src/credential/mod.rs b/nearby/presence/np_adv/src/credential/mod.rs
new file mode 100644
index 0000000..a138f0b
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/mod.rs
@@ -0,0 +1,85 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Credential types used in deserialization.
+//!
+//! While simple implementations are provided to get started with, there is likely opportunity for
+//! efficiency gains with implementations tailored to suit (e.g. caching a few hot credentials
+//! rather than reading from disk every time, etc).
+
+use core::fmt::Debug;
+use crypto_provider::CryptoProvider;
+
+use self::{
+    simple::{SimpleV0Credential, SimpleV1Credential},
+    source::OwnedBothCredentialSource,
+    v0::MinimumFootprintV0CryptoMaterial,
+    v1::MinimumFootprintV1CryptoMaterial,
+};
+
+pub mod simple;
+pub mod source;
+pub mod v0;
+pub mod v1;
+
+/// A credential which has an associated [`MatchedCredential`]
+pub trait MatchableCredential {
+    /// The [MatchedCredential] provided by this [`MatchableCredential`].
+    type Matched<'m>: MatchedCredential<'m>
+    where
+        Self: 'm;
+
+    /// Returns the subset of credential data that should be associated with a successfully
+    /// decrypted advertisement or advertisement section.
+    fn matched(&self) -> Self::Matched<'_>;
+}
+
+/// Convenient type-level function for referring to the match data for a [`MatchableCredential`].
+pub type MatchedCredFromCred<'s, C> = <C as MatchableCredential>::Matched<'s>;
+
+/// The portion of a credential's data to be bundled with the advertisement content it was used to
+/// decrypt.
+///
+/// As it is `Debug` and `Eq`, implementors should not hold any cryptographic material to avoid
+/// accidental logging, timing side channels on comparison, etc, or should use custom impls of
+/// those traits rather than deriving them.
+pub trait MatchedCredential<'m>: Debug + PartialEq + Eq {}
+
+/// A V0 credential containing some [`v0::V0CryptoMaterial`]
+pub trait V0Credential: MatchableCredential {
+    /// The [v0::V0CryptoMaterial] provided by this V0Credential impl.
+    type CryptoMaterial: v0::V0CryptoMaterial;
+
+    /// Returns the crypto material associated with the credential.
+    ///
+    /// Used to decrypted encrypted advertisement content.
+    fn crypto_material(&self) -> &Self::CryptoMaterial;
+}
+
+/// A V1 credential containing some [`v1::V1CryptoMaterial`]
+pub trait V1Credential: MatchableCredential {
+    /// The [v1::V1CryptoMaterial] provided by this Credential impl.
+    type CryptoMaterial: v1::V1CryptoMaterial;
+
+    /// Returns the crypto material associated with the credential.
+    ///
+    /// Used to decrypt encrypted advertisement content.
+    fn crypto_material(&self) -> &Self::CryptoMaterial;
+}
+
+/// An owned credential store that contains minimum footprint crypto materials
+pub type MinimumFootprintCredentialSource<T> = OwnedBothCredentialSource<
+    SimpleV0Credential<MinimumFootprintV0CryptoMaterial, T>,
+    SimpleV1Credential<MinimumFootprintV1CryptoMaterial, T>,
+>;
diff --git a/nearby/presence/np_adv/src/credential/simple.rs b/nearby/presence/np_adv/src/credential/simple.rs
new file mode 100644
index 0000000..6ea2436
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/simple.rs
@@ -0,0 +1,148 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Simple implementations of credentials. These can be combined with the provided crypto material
+//! implementations to have a working credential type.
+//!
+//! ```rust
+//! use np_adv::credential::{
+//!     simple::SimpleV0Credential,
+//!     v0::MinimumFootprintV0CryptoMaterial,
+//! };
+//! type MyV0Credential = SimpleV0Credential<MinimumFootprintV0CryptoMaterial, ()>;
+//! ```
+
+use core::fmt::Debug;
+
+use super::*;
+use super::{v0::*, v1::*};
+
+/// A simple implementation of [`V0Credential`] that wraps a [`V0CryptoMaterial`] and some `T` data that
+/// will be exposed via the [`MatchedCredential`].
+pub struct SimpleV0Credential<C, T>
+where
+    C: V0CryptoMaterial,
+    T: Debug + Eq,
+{
+    material: C,
+    match_data: T,
+}
+
+impl<C, T> SimpleV0Credential<C, T>
+where
+    C: V0CryptoMaterial,
+    T: Debug + Eq,
+{
+    /// Construct a new credential.
+    ///
+    /// `material` will be returned by [V0Credential::crypto_material].
+    /// `match_data` will be returned by [SimpleV0Credential::matched], wrapped in [SimpleMatchedCredential].
+    pub fn new(material: C, match_data: T) -> Self {
+        Self { material, match_data }
+    }
+}
+
+impl<C, T> MatchableCredential for SimpleV0Credential<C, T>
+where
+    C: V0CryptoMaterial,
+    T: Debug + Eq,
+{
+    type Matched<'m> = SimpleMatchedCredential<'m, T> where Self: 'm;
+
+    fn matched(&'_ self) -> Self::Matched<'_> {
+        SimpleMatchedCredential { data: &self.match_data }
+    }
+}
+
+impl<C, T> V0Credential for SimpleV0Credential<C, T>
+where
+    C: V0CryptoMaterial,
+    T: Debug + Eq,
+{
+    type CryptoMaterial = C;
+
+    fn crypto_material(&self) -> &Self::CryptoMaterial {
+        &self.material
+    }
+}
+
+/// A simple implementation of [V1Credential] that wraps a [V1CryptoMaterial] and some `T` data that
+/// will be exposed via the [MatchedCredential].
+pub struct SimpleV1Credential<C, T>
+where
+    C: V1CryptoMaterial,
+    T: Debug + Eq,
+{
+    material: C,
+    match_data: T,
+}
+
+impl<C, T> SimpleV1Credential<C, T>
+where
+    C: V1CryptoMaterial,
+    T: Debug + Eq,
+{
+    /// Construct a new credential.
+    ///
+    /// `material` will be returned by [V1Credential::crypto_material].
+    /// `match_data` will be returned by [SimpleV1Credential::matched], wrapped in [SimpleMatchedCredential].
+    pub fn new(material: C, match_data: T) -> Self {
+        Self { material, match_data }
+    }
+}
+
+impl<C, T> MatchableCredential for SimpleV1Credential<C, T>
+where
+    C: V1CryptoMaterial,
+    T: Debug + Eq,
+{
+    type Matched<'m> = SimpleMatchedCredential<'m, T> where Self: 'm;
+
+    fn matched(&'_ self) -> Self::Matched<'_> {
+        SimpleMatchedCredential { data: &self.match_data }
+    }
+}
+
+impl<C, T> V1Credential for SimpleV1Credential<C, T>
+where
+    C: V1CryptoMaterial,
+    T: Debug + Eq,
+{
+    type CryptoMaterial = C;
+
+    fn crypto_material(&self) -> &Self::CryptoMaterial {
+        &self.material
+    }
+}
+
+/// The [MatchedCredential] used by [SimpleV0Credential]
+/// and by [SimpleV1Credential].
+#[derive(Debug, PartialEq, Eq)]
+pub struct SimpleMatchedCredential<'m, T: Debug + PartialEq + Eq> {
+    data: &'m T,
+}
+
+impl<'m, T: Debug + PartialEq + Eq> SimpleMatchedCredential<'m, T> {
+    /// Construct a new instance that wraps `data`.
+    pub fn new(data: &'m T) -> Self {
+        Self { data }
+    }
+
+    /// Returns the underlying matched credential data.
+    pub fn matched_data(&self) -> &'m T {
+        self.data
+    }
+}
+
+impl<'m, T: Debug + PartialEq + Eq> MatchedCredential<'m> for SimpleMatchedCredential<'m, T> {}
diff --git a/nearby/presence/np_adv/src/credential/source.rs b/nearby/presence/np_adv/src/credential/source.rs
new file mode 100644
index 0000000..e102b7e
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/source.rs
@@ -0,0 +1,150 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Traits defining sources for credentials. These are used in the deserialization path to provide
+//! the credentials to try. [`SliceCredentialSource`] and [`OwnedCredentialSource`] implementations
+//! are also defined in this module.
+
+use super::*;
+use alloc::vec::Vec;
+
+/// A source of credentials to try when decrypting advertisements,
+/// which really just wraps an iterator over a given credential type.
+pub trait CredentialSource<C: MatchableCredential> {
+    /// The iterator type produced that emits credentials
+    type Iterator<'a>: Iterator<Item = &'a C>
+    where
+        Self: 'a,
+        C: 'a;
+
+    /// Iterate over the available credentials
+    fn iter(&self) -> Self::Iterator<'_>;
+}
+
+/// Trait for combined credential sources able to yield credential sources for both V0 and V1.
+pub trait BothCredentialSource<C0, C1>
+where
+    C0: V0Credential,
+    C1: V1Credential,
+{
+    /// The type of the underlying credential-source for v0 credentials
+    type V0Source: CredentialSource<C0>;
+    /// The type of the underlying credential-source for v1 credentials
+    type V1Source: CredentialSource<C1>;
+
+    /// Gets a source for v0 credentials maintained by this `BothCredentialSource`.
+    fn v0(&self) -> &Self::V0Source;
+
+    /// Gets a source for v1 credentials maintained by this `BothCredentialSource`.
+    fn v1(&self) -> &Self::V1Source;
+
+    /// Convenient function alias to [`self.v0().iter()`] for iterating
+    /// over v0 credentials.
+    fn iter_v0(&self) -> <Self::V0Source as CredentialSource<C0>>::Iterator<'_> {
+        self.v0().iter()
+    }
+
+    /// Convenient function alias to the [`CredentialSource<C1>#iter()`] for iterating
+    /// over v0 credentials.
+    fn iter_v1(&self) -> <Self::V1Source as CredentialSource<C1>>::Iterator<'_> {
+        self.v1().iter()
+    }
+}
+
+/// A simple [CredentialSource] that just iterates over a provided slice of credentials
+pub struct SliceCredentialSource<'c, C: MatchableCredential> {
+    credentials: &'c [C],
+}
+
+impl<'c, C: MatchableCredential> SliceCredentialSource<'c, C> {
+    /// Construct the credential source from the provided credentials.
+    pub fn new(credentials: &'c [C]) -> Self {
+        Self { credentials }
+    }
+}
+
+impl<'c, C: MatchableCredential> CredentialSource<C> for SliceCredentialSource<'c, C> {
+    type Iterator<'i>  = core::slice::Iter<'i, C>
+    where Self: 'i;
+
+    fn iter(&'_ self) -> Self::Iterator<'_> {
+        self.credentials.iter()
+    }
+}
+
+/// A simple credential source which owns all of its credentials.
+pub struct OwnedCredentialSource<C: MatchableCredential> {
+    credentials: Vec<C>,
+}
+
+impl<C: MatchableCredential> OwnedCredentialSource<C> {
+    /// Constructs an owned credential source from the given credentials
+    pub fn new(credentials: Vec<C>) -> Self {
+        Self { credentials }
+    }
+}
+
+impl<C: MatchableCredential> CredentialSource<C> for OwnedCredentialSource<C> {
+    type Iterator<'i>  = core::slice::Iter<'i, C>
+    where Self: 'i;
+
+    fn iter(&'_ self) -> Self::Iterator<'_> {
+        self.credentials.iter()
+    }
+}
+
+/// An owned credential source for both v0 and v1 credentials,
+pub struct OwnedBothCredentialSource<C0, C1>
+where
+    C0: V0Credential,
+    C1: V1Credential,
+{
+    v0_source: OwnedCredentialSource<C0>,
+    v1_source: OwnedCredentialSource<C1>,
+}
+
+impl<C0, C1> OwnedBothCredentialSource<C0, C1>
+where
+    C0: V0Credential,
+    C1: V1Credential,
+{
+    /// Creates a new `OwnedBothCredentialSource` from credential-lists
+    /// for both V0 and V1
+    pub fn new(v0_credentials: Vec<C0>, v1_credentials: Vec<C1>) -> Self {
+        let v0_source = OwnedCredentialSource::new(v0_credentials);
+        let v1_source = OwnedCredentialSource::new(v1_credentials);
+        Self { v0_source, v1_source }
+    }
+
+    /// Creates a new credential source that is empty.
+    pub fn new_empty() -> Self {
+        Self::new(Vec::new(), Vec::new())
+    }
+}
+
+impl<C0, C1> BothCredentialSource<C0, C1> for OwnedBothCredentialSource<C0, C1>
+where
+    C0: V0Credential,
+    C1: V1Credential,
+{
+    type V0Source = OwnedCredentialSource<C0>;
+    type V1Source = OwnedCredentialSource<C1>;
+
+    fn v0(&self) -> &Self::V0Source {
+        &self.v0_source
+    }
+    fn v1(&self) -> &Self::V1Source {
+        &self.v1_source
+    }
+}
diff --git a/nearby/presence/np_adv/src/credential/v0.rs b/nearby/presence/np_adv/src/credential/v0.rs
new file mode 100644
index 0000000..e2d1b5d
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/v0.rs
@@ -0,0 +1,80 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Cryptographic materials for v0 advertisement-format credentials.
+
+use super::*;
+
+/// Cryptographic material for an individual NP credential used to decrypt v0 advertisements.
+// Space-time tradeoffs:
+// - LDT keys (64b) take about 1.4us.
+pub trait V0CryptoMaterial {
+    /// Returns an LDT NP advertisement cipher built with the provided `Aes`
+    fn ldt_adv_cipher<C: CryptoProvider>(&self) -> ldt_np_adv::LdtNpAdvDecrypterXtsAes128<C>;
+}
+
+/// A [`V0CryptoMaterial`] that minimizes memory footprint at the expense of CPU time when
+/// providing derived key material
+pub struct MinimumFootprintV0CryptoMaterial {
+    key_seed: [u8; 32],
+    legacy_metadata_key_hmac: [u8; 32],
+}
+
+impl MinimumFootprintV0CryptoMaterial {
+    /// Construct an [MinimumFootprintV0CryptoMaterial] from the provided identity data.
+    pub fn new(key_seed: [u8; 32], legacy_metadata_key_hmac: [u8; 32]) -> Self {
+        Self { key_seed, legacy_metadata_key_hmac }
+    }
+}
+
+impl V0CryptoMaterial for MinimumFootprintV0CryptoMaterial {
+    fn ldt_adv_cipher<C: CryptoProvider>(&self) -> ldt_np_adv::LdtNpAdvDecrypterXtsAes128<C> {
+        let hkdf = np_hkdf::NpKeySeedHkdf::new(&self.key_seed);
+        ldt_np_adv::build_np_adv_decrypter(
+            &hkdf.legacy_ldt_key(),
+            self.legacy_metadata_key_hmac,
+            hkdf.legacy_metadata_key_hmac_key(),
+        )
+    }
+}
+
+/// [`V0CryptoMaterial`] that minimizes CPU time when providing key material at
+/// the expense of occupied memory.
+pub struct PrecalculatedV0CryptoMaterial {
+    pub(crate) legacy_ldt_key: ldt::LdtKey<xts_aes::XtsAes128Key>,
+    pub(crate) legacy_metadata_key_hmac: [u8; 32],
+    pub(crate) legacy_metadata_key_hmac_key: [u8; 32],
+}
+
+impl PrecalculatedV0CryptoMaterial {
+    /// Construct a new instance from the provided credential material.
+    pub fn new<C: CryptoProvider>(key_seed: &[u8; 32], legacy_metadata_key_hmac: [u8; 32]) -> Self {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(key_seed);
+        Self {
+            legacy_ldt_key: hkdf.legacy_ldt_key(),
+            legacy_metadata_key_hmac,
+            legacy_metadata_key_hmac_key: *hkdf.legacy_metadata_key_hmac_key().as_bytes(),
+        }
+    }
+}
+
+impl V0CryptoMaterial for PrecalculatedV0CryptoMaterial {
+    fn ldt_adv_cipher<C: CryptoProvider>(&self) -> ldt_np_adv::LdtNpAdvDecrypterXtsAes128<C> {
+        ldt_np_adv::build_np_adv_decrypter(
+            &self.legacy_ldt_key,
+            self.legacy_metadata_key_hmac,
+            self.legacy_metadata_key_hmac_key.into(),
+        )
+    }
+}
diff --git a/nearby/presence/np_adv/src/credential/v1.rs b/nearby/presence/np_adv/src/credential/v1.rs
new file mode 100644
index 0000000..4b134e4
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/v1.rs
@@ -0,0 +1,288 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Cryptographic materials for v1 advertisement-format credentials.
+
+use core::borrow::Borrow;
+use crypto_provider::{aes::Aes128Key, ed25519, CryptoProvider};
+use np_hkdf::UnsignedSectionKeys;
+
+/// Cryptographic materials necessary for determining whether or not
+/// a given V1 advertisement section matches an identity.
+/// Per the construction of the V1 specification, this is also
+/// the information necessary to decrypt the raw byte contents
+/// of an encrypted V1 section.
+#[derive(Clone)]
+pub struct SectionIdentityResolutionMaterial {
+    /// The AES key for decrypting section ciphertext
+    pub(crate) aes_key: Aes128Key,
+    /// The metadata key HMAC key for deriving and verifying the identity metadata
+    /// key HMAC against the expected value.
+    pub(crate) metadata_key_hmac_key: [u8; 32],
+    /// The expected metadata key HMAC to check against for an identity match.
+    pub(crate) expected_metadata_key_hmac: [u8; 32],
+}
+
+/// Cryptographic materials necessary for determining whether or not
+/// a given V1 signed advertisement section matches an identity.
+#[derive(Clone)]
+pub struct SignedSectionIdentityResolutionMaterial(SectionIdentityResolutionMaterial);
+
+impl SignedSectionIdentityResolutionMaterial {
+    #[cfg(test)]
+    pub(crate) fn from_raw(raw: SectionIdentityResolutionMaterial) -> Self {
+        Self(raw)
+    }
+    pub(crate) fn as_raw_resolution_material(&self) -> &SectionIdentityResolutionMaterial {
+        &self.0
+    }
+    pub(crate) fn from_hkdf_and_expected_metadata_key_hmac<C: CryptoProvider>(
+        hkdf: &np_hkdf::NpKeySeedHkdf<C>,
+        expected_metadata_key_hmac: [u8; 32],
+    ) -> Self {
+        Self(SectionIdentityResolutionMaterial {
+            aes_key: hkdf.extended_signed_section_aes_key(),
+            metadata_key_hmac_key: *hkdf.extended_signed_metadata_key_hmac_key().as_bytes(),
+            expected_metadata_key_hmac,
+        })
+    }
+}
+
+/// Cryptographic materials necessary for determining whether or not
+/// a given V1 MIC advertisement section matches an identity.
+#[derive(Clone)]
+pub struct UnsignedSectionIdentityResolutionMaterial(SectionIdentityResolutionMaterial);
+
+impl UnsignedSectionIdentityResolutionMaterial {
+    #[cfg(test)]
+    pub(crate) fn from_raw(raw: SectionIdentityResolutionMaterial) -> Self {
+        Self(raw)
+    }
+    pub(crate) fn as_raw_resolution_material(&self) -> &SectionIdentityResolutionMaterial {
+        &self.0
+    }
+    pub(crate) fn from_hkdf_and_expected_metadata_key_hmac<C: CryptoProvider>(
+        hkdf: &np_hkdf::NpKeySeedHkdf<C>,
+        expected_metadata_key_hmac: [u8; 32],
+    ) -> Self {
+        Self(SectionIdentityResolutionMaterial {
+            aes_key: UnsignedSectionKeys::aes_key(hkdf),
+            metadata_key_hmac_key: *hkdf.extended_unsigned_metadata_key_hmac_key().as_bytes(),
+            expected_metadata_key_hmac,
+        })
+    }
+}
+
+/// Crypto materials for V1 signed sections which are not employed in identity resolution,
+/// but may be necessary to verify a signed section.
+#[derive(Clone)]
+pub struct SignedSectionVerificationMaterial {
+    /// The np_ed25519 public key to be
+    /// used for signature verification of signed sections.
+    pub(crate) pub_key: ed25519::RawPublicKey,
+}
+
+impl SignedSectionVerificationMaterial {
+    /// Gets the np_ed25519 public key for the given identity,
+    /// used for signature verification of signed sections.
+    pub(crate) fn signature_verification_public_key<C: CryptoProvider>(
+        &self,
+    ) -> np_ed25519::PublicKey<C> {
+        np_ed25519::PublicKey::from_bytes(&self.pub_key).expect("Should only contain valid keys")
+    }
+}
+
+/// Crypto materials for V1 unsigned sections which are not employed in identity resolution,
+/// but may be necessary to fully decrypt an unsigned section.
+#[derive(Clone)]
+pub struct UnsignedSectionVerificationMaterial {
+    /// The MIC HMAC key for verifying the integrity of unsigned sections.
+    pub(crate) mic_hmac_key: [u8; 32],
+}
+
+impl UnsignedSectionVerificationMaterial {
+    /// Returns the MIC HMAC key for unsigned sections
+    pub(crate) fn mic_hmac_key<C: CryptoProvider>(&self) -> np_hkdf::NpHmacSha256Key<C> {
+        self.mic_hmac_key.into()
+    }
+}
+
+// Space-time tradeoffs:
+// - Calculating an HKDF from the key seed costs about 2us on a gLinux laptop, and occupies 80b.
+// - Calculating an AES (16b) or HMAC (32b) key from the HKDF costs about 700ns.
+// The right tradeoff may also vary by use case. For frequently used identities we should
+// probably pre-calculate everything. For occasionally used ones, or ones that are loaded from
+// disk, used once, and discarded, we might want to precalculate on a separate thread or the
+// like.
+// The AES key and metadata key HMAC key are the most frequently used ones, as the MIC HMAC key
+// is only used on the matching identity, not all identities.
+
+/// Cryptographic material for an individual NP credential used to decrypt and verify v1 sections.
+pub trait V1CryptoMaterial {
+    /// The return type of `Self::signed_identity_resolution_material`, which is some
+    /// data-type which allows borrowing `SignedSectionIdentityResolutionMaterial`
+    type SignedIdentityResolverReference<'a>: Borrow<SignedSectionIdentityResolutionMaterial>
+    where
+        Self: 'a;
+    /// The return type of `Self::unsigned_identity_resolution_material`, which is some
+    /// data-type which allows borrowing `UnsignedSectionIdentityResolutionMaterial`
+    type UnsignedIdentityResolverReference<'a>: Borrow<UnsignedSectionIdentityResolutionMaterial>
+    where
+        Self: 'a;
+
+    /// Constructs or references the identity resolution material for signed sections
+    fn signed_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::SignedIdentityResolverReference<'_>;
+
+    /// Constructs or references the identity resolution material for unsigned sections
+    fn unsigned_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::UnsignedIdentityResolverReference<'_>;
+
+    /// Constructs or copies non-identity-resolution deserialization material for signed
+    /// sections.
+    ///
+    /// Note: We mandate "copies" here due to the relatively small size of verification-only crypto
+    /// materials (32 bytes).
+    fn signed_verification_material<C: CryptoProvider>(&self) -> SignedSectionVerificationMaterial;
+
+    /// Constructs or copies non-identity-resolution deserialization material for unsigned
+    /// sections.
+    ///
+    /// Note: We mandate "copies" here due to the relatively small size of verification-only crypto
+    /// materials (32 bytes).
+    fn unsigned_verification_material<C: CryptoProvider>(
+        &self,
+    ) -> UnsignedSectionVerificationMaterial;
+
+    /// Constructs pre-calculated crypto material out of this crypto-material.
+    fn to_precalculated<C: CryptoProvider>(self) -> PrecalculatedV1CryptoMaterial
+    where
+        Self: Sized,
+    {
+        let signed_identity_resolution_material =
+            self.signed_identity_resolution_material::<C>().borrow().clone();
+        let unsigned_identity_resolution_material =
+            self.unsigned_identity_resolution_material::<C>().borrow().clone();
+        let signed_verification_material = self.signed_verification_material::<C>();
+        let unsigned_verification_material = self.unsigned_verification_material::<C>();
+        PrecalculatedV1CryptoMaterial {
+            signed_identity_resolution_material,
+            unsigned_identity_resolution_material,
+            signed_verification_material,
+            unsigned_verification_material,
+        }
+    }
+}
+
+/// [`V1CryptoMaterial`] that minimizes CPU time when providing key material at
+/// the expense of occupied memory
+pub struct PrecalculatedV1CryptoMaterial {
+    pub(crate) signed_identity_resolution_material: SignedSectionIdentityResolutionMaterial,
+    pub(crate) unsigned_identity_resolution_material: UnsignedSectionIdentityResolutionMaterial,
+    pub(crate) signed_verification_material: SignedSectionVerificationMaterial,
+    pub(crate) unsigned_verification_material: UnsignedSectionVerificationMaterial,
+}
+
+impl V1CryptoMaterial for PrecalculatedV1CryptoMaterial {
+    type SignedIdentityResolverReference<'a> = &'a SignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+    type UnsignedIdentityResolverReference<'a> = &'a UnsignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+
+    fn signed_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::SignedIdentityResolverReference<'_> {
+        &self.signed_identity_resolution_material
+    }
+    fn unsigned_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::UnsignedIdentityResolverReference<'_> {
+        &self.unsigned_identity_resolution_material
+    }
+    fn signed_verification_material<C: CryptoProvider>(&self) -> SignedSectionVerificationMaterial {
+        self.signed_verification_material.clone()
+    }
+    fn unsigned_verification_material<C: CryptoProvider>(
+        &self,
+    ) -> UnsignedSectionVerificationMaterial {
+        self.unsigned_verification_material.clone()
+    }
+}
+
+/// [`V1CryptoMaterial`] that minimizes memory footprint at the expense of CPU
+/// time when providing derived key material.
+pub struct MinimumFootprintV1CryptoMaterial {
+    key_seed: [u8; 32],
+    expected_unsigned_metadata_key_hmac: [u8; 32],
+    expected_signed_metadata_key_hmac: [u8; 32],
+    pub_key: ed25519::RawPublicKey,
+}
+
+impl MinimumFootprintV1CryptoMaterial {
+    /// Construct an [MinimumFootprintV1CryptoMaterial] from the provided identity data.
+    pub fn new<C: CryptoProvider>(
+        key_seed: [u8; 32],
+        expected_unsigned_metadata_key_hmac: [u8; 32],
+        expected_signed_metadata_key_hmac: [u8; 32],
+        pub_key: np_ed25519::PublicKey<C>,
+    ) -> Self {
+        Self {
+            key_seed,
+            expected_unsigned_metadata_key_hmac,
+            expected_signed_metadata_key_hmac,
+            pub_key: pub_key.to_bytes(),
+        }
+    }
+}
+
+impl V1CryptoMaterial for MinimumFootprintV1CryptoMaterial {
+    type SignedIdentityResolverReference<'a> = SignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+    type UnsignedIdentityResolverReference<'a> = UnsignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+
+    fn signed_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::SignedIdentityResolverReference<'_> {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&self.key_seed);
+        SignedSectionIdentityResolutionMaterial::from_hkdf_and_expected_metadata_key_hmac(
+            &hkdf,
+            self.expected_signed_metadata_key_hmac,
+        )
+    }
+
+    fn unsigned_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::UnsignedIdentityResolverReference<'_> {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&self.key_seed);
+        UnsignedSectionIdentityResolutionMaterial::from_hkdf_and_expected_metadata_key_hmac(
+            &hkdf,
+            self.expected_unsigned_metadata_key_hmac,
+        )
+    }
+
+    fn signed_verification_material<C: CryptoProvider>(&self) -> SignedSectionVerificationMaterial {
+        SignedSectionVerificationMaterial { pub_key: self.pub_key }
+    }
+
+    fn unsigned_verification_material<C: CryptoProvider>(
+        &self,
+    ) -> UnsignedSectionVerificationMaterial {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&self.key_seed);
+        let mic_hmac_key = *UnsignedSectionKeys::hmac_key(&hkdf).as_bytes();
+        UnsignedSectionVerificationMaterial { mic_hmac_key }
+    }
+}
diff --git a/nearby/presence/np_adv/src/de_type.rs b/nearby/presence/np_adv/src/de_type.rs
new file mode 100644
index 0000000..90c86e1
--- /dev/null
+++ b/nearby/presence/np_adv/src/de_type.rs
@@ -0,0 +1,88 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! DE types that are shared across v0 and v1.
+
+// The same ids are used for v0/legacy and v1/extended
+const IDENTITY_DE_TYPES_BY_CODE: [Option<IdentityDataElementType>; 5] = [
+    // no need for more elements since identity types are at indices 1-4
+    None,                                       // 0b0000
+    Some(IdentityDataElementType::Private),     // 0b0001
+    Some(IdentityDataElementType::Trusted),     // 0b0010
+    Some(IdentityDataElementType::Public),      // 0b0011
+    Some(IdentityDataElementType::Provisioned), // 0b0100
+];
+
+/// DE types for special DEs that contain other DEs and consume the entire payload of the
+/// advertisement.
+///
+/// Shared between V0 and V1.
+///
+/// Must not overlap with [PlainDataElementType].
+#[derive(strum_macros::EnumIter, Debug, Clone, Copy, PartialEq, Eq)]
+#[allow(clippy::enum_variant_names)]
+pub(crate) enum IdentityDataElementType {
+    Private,
+    Trusted,
+    Public,
+    Provisioned,
+}
+
+impl IdentityDataElementType {
+    pub(crate) fn as_encrypted_identity_de_type(&self) -> Option<EncryptedIdentityDataElementType> {
+        match self {
+            IdentityDataElementType::Private => Some(EncryptedIdentityDataElementType::Private),
+            IdentityDataElementType::Trusted => Some(EncryptedIdentityDataElementType::Trusted),
+            IdentityDataElementType::Public => None,
+            IdentityDataElementType::Provisioned => {
+                Some(EncryptedIdentityDataElementType::Provisioned)
+            }
+        }
+    }
+
+    /// Type codes for identity DEs are shared between versions 0 and 1.
+    pub(crate) fn shared_type_code(&self) -> u8 {
+        match self {
+            IdentityDataElementType::Private => 0b0001,
+            IdentityDataElementType::Trusted => 0b0010,
+            IdentityDataElementType::Public => 0b0011,
+            IdentityDataElementType::Provisioned => 0b0100,
+        }
+    }
+
+    pub(crate) fn from_shared_type_code(code: u8) -> Option<Self> {
+        IDENTITY_DE_TYPES_BY_CODE.get(code as usize).and_then(|o| *o)
+    }
+}
+
+/// The identity DE types that support encryption.
+#[derive(strum_macros::EnumIter, Debug, Clone, Copy, PartialEq, Eq)]
+pub enum EncryptedIdentityDataElementType {
+    /// An identity that's shared with other devices where a user has signed in to their identity provider
+    Private,
+    /// An identity shared via some trust designation (e.g. starred contacts)
+    Trusted,
+    /// An identity established via a p2p link between two specific devices
+    Provisioned,
+}
+
+impl EncryptedIdentityDataElementType {
+    pub(crate) fn as_identity_data_element_type(&self) -> IdentityDataElementType {
+        match self {
+            EncryptedIdentityDataElementType::Private => IdentityDataElementType::Private,
+            EncryptedIdentityDataElementType::Trusted => IdentityDataElementType::Trusted,
+            EncryptedIdentityDataElementType::Provisioned => IdentityDataElementType::Provisioned,
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/deser_v0_tests.rs b/nearby/presence/np_adv/src/deser_v0_tests.rs
new file mode 100644
index 0000000..fa94b89
--- /dev/null
+++ b/nearby/presence/np_adv/src/deser_v0_tests.rs
@@ -0,0 +1,281 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use rand::{seq::SliceRandom as _, SeedableRng as _};
+
+extern crate std;
+
+use crate::{
+    credential::{
+        simple::{SimpleMatchedCredential, SimpleV0Credential},
+        source::SliceCredentialSource,
+        v0::MinimumFootprintV0CryptoMaterial,
+    },
+    de_type::EncryptedIdentityDataElementType,
+    deserialize_v0_advertisement,
+    legacy::{
+        actions::{ActionBits, ActionsDataElement, ToActionElement},
+        data_elements::DataElement,
+        deserialize::PlainDataElement,
+        serialize::{AdvBuilder, Identity, LdtIdentity},
+        BLE_ADV_SVC_CONTENT_LEN,
+    },
+    shared_data::ContextSyncSeqNum,
+    CredentialSource, NoIdentity, PlaintextIdentityMode, PublicIdentity, V0AdvContents,
+    V0Credential,
+};
+use array_view::ArrayView;
+use core::marker::PhantomData;
+use crypto_provider::CryptoProvider;
+use crypto_provider_default::CryptoProviderImpl;
+use ldt_np_adv::{LdtEncrypterXtsAes128, LegacySalt};
+use std::{prelude::rust_2021::*, vec};
+use strum::IntoEnumIterator as _;
+
+#[test]
+fn v0_all_identities_resolvable() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| TestIdentity::random(&mut rng)).collect::<Vec<_>>();
+
+        let (adv, adv_config) = adv_random_identity(&mut rng, &identities);
+
+        let creds = identities.iter().map(|i| i.credential()).collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+
+        let contents = deser_v0::<_, _, CryptoProviderImpl>(&cred_source, adv.as_slice());
+
+        assert_adv_equals(&adv_config, &contents);
+    }
+}
+
+#[test]
+fn v0_only_non_matching_identities_available() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| TestIdentity::random(&mut rng)).collect::<Vec<_>>();
+
+        let (adv, adv_config) = adv_random_identity(&mut rng, &identities);
+
+        let creds = identities
+            .iter()
+            .filter(|i| {
+                // remove identity used, if any
+                !adv_config.identity.map(|sci| sci.key_seed == i.key_seed).unwrap_or(false)
+            })
+            .map(|i| i.credential())
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+
+        let contents = deser_v0::<_, _, CryptoProviderImpl>(&cred_source, adv.as_slice());
+
+        match adv_config.identity {
+            // we ended up generating plaintext, so it's fine
+            None => assert_adv_equals(&adv_config, &contents),
+            Some(_) => {
+                // we generated an encrypted adv, but didn't include the credential
+                assert_eq!(V0AdvContents::NoMatchingCredentials, contents);
+            }
+        }
+    }
+}
+
+#[test]
+fn v0_no_creds_available_error_if_encrypted() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| TestIdentity::random(&mut rng)).collect::<Vec<_>>();
+
+        let (adv, adv_config) = adv_random_identity(&mut rng, &identities);
+
+        let creds = Vec::<SimpleV0Credential<MinimumFootprintV0CryptoMaterial, [u8; 32]>>::new();
+        let cred_source = SliceCredentialSource::new(&creds);
+
+        let contents = deser_v0::<_, _, CryptoProviderImpl>(&cred_source, adv.as_slice());
+
+        match adv_config.identity {
+            // we ended up generating plaintext, so it's fine
+            None => assert_adv_equals(&adv_config, &contents),
+            Some(_) => {
+                // we generated an encrypted adv, but didn't include the credential
+                assert_eq!(V0AdvContents::NoMatchingCredentials, contents);
+            }
+        }
+    }
+}
+
+fn assert_adv_equals<'m>(
+    adv_config: &AdvConfig,
+    adv: &V0AdvContents<'m, SimpleMatchedCredential<'m, [u8; 32]>>,
+) {
+    match adv_config.identity {
+        None => match adv {
+            V0AdvContents::Plaintext(p) => {
+                let mut action_bits = ActionBits::default();
+                action_bits.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+                let de = ActionsDataElement::from(action_bits);
+
+                assert_eq!(adv_config.plaintext_mode.unwrap(), p.identity());
+                assert_eq!(
+                    vec![&PlainDataElement::Actions(de)],
+                    p.data_elements().collect::<Vec<_>>()
+                )
+            }
+            _ => panic!("should be a plaintext adv"),
+        },
+        Some(_) => match adv {
+            V0AdvContents::Decrypted(wmc) => {
+                assert!(adv_config.plaintext_mode.is_none());
+
+                // different generic type param, so can't re-use the DE from above
+                let mut action_bits = ActionBits::default();
+                action_bits.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+                let de = ActionsDataElement::from(action_bits);
+
+                assert_eq!(
+                    vec![&PlainDataElement::Actions(de)],
+                    wmc.contents().data_elements().collect::<Vec<_>>()
+                );
+                assert_eq!(
+                    adv_config.identity.unwrap().identity_type,
+                    wmc.contents().identity_type()
+                );
+                assert_eq!(
+                    &adv_config.identity.unwrap().legacy_metadata_key,
+                    wmc.contents().metadata_key()
+                );
+            }
+            _ => panic!("should be an encrypted adv"),
+        },
+    }
+}
+
+fn deser_v0<'s, C, S, P>(
+    cred_source: &'s S,
+    adv: &[u8],
+) -> V0AdvContents<'s, SimpleMatchedCredential<'s, [u8; 32]>>
+where
+    C: V0Credential<Matched<'s> = SimpleMatchedCredential<'s, [u8; 32]>> + 's,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    deserialize_v0_advertisement::<C, S, P>(adv, cred_source).unwrap()
+}
+
+/// Populate an advertisement with a randomly chosen identity and a DE
+fn adv_random_identity<'a, R: rand::Rng>(
+    mut rng: &mut R,
+    identities: &'a Vec<TestIdentity<CryptoProviderImpl>>,
+) -> (ArrayView<u8, { BLE_ADV_SVC_CONTENT_LEN }>, AdvConfig<'a>) {
+    let identity = identities.choose(&mut rng).unwrap();
+    match rng.gen_range(0_u8..=2) {
+        0 => {
+            let mut adv_builder = AdvBuilder::new(NoIdentity::default());
+            add_de(&mut adv_builder);
+
+            (
+                adv_builder.into_advertisement().unwrap(),
+                AdvConfig::new(None, Some(PlaintextIdentityMode::None)),
+            )
+        }
+        1 => {
+            let mut adv_builder = AdvBuilder::new(PublicIdentity::default());
+            add_de(&mut adv_builder);
+
+            (
+                adv_builder.into_advertisement().unwrap(),
+                AdvConfig::new(None, Some(PlaintextIdentityMode::Public)),
+            )
+        }
+        2 => {
+            let mut adv_builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+                identity.identity_type,
+                LegacySalt::from(rng.gen::<[u8; 2]>()),
+                identity.legacy_metadata_key,
+                LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&identity.hkdf().legacy_ldt_key()),
+            ));
+            add_de(&mut adv_builder);
+
+            (adv_builder.into_advertisement().unwrap(), AdvConfig::new(Some(identity), None))
+        }
+
+        _ => unreachable!(),
+    }
+}
+
+fn add_de<I>(adv_builder: &mut AdvBuilder<I>)
+where
+    I: Identity,
+    ActionsDataElement<I::Flavor>: DataElement,
+    ContextSyncSeqNum: ToActionElement<I::Flavor>,
+{
+    let mut action_bits = ActionBits::default();
+    action_bits.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+    let de = ActionsDataElement::from(action_bits);
+    adv_builder.add_data_element(de).unwrap();
+}
+
+struct TestIdentity<C: CryptoProvider> {
+    identity_type: EncryptedIdentityDataElementType,
+    key_seed: [u8; 32],
+    legacy_metadata_key: [u8; 14],
+    _marker: PhantomData<C>,
+}
+
+impl<C: CryptoProvider> TestIdentity<C> {
+    /// Generate a new identity with random crypto material
+    fn random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
+        Self {
+            identity_type: *EncryptedIdentityDataElementType::iter()
+                .collect::<Vec<_>>()
+                .choose(rng)
+                .unwrap(),
+            key_seed: rng.gen(),
+            legacy_metadata_key: rng.gen(),
+            _marker: PhantomData,
+        }
+    }
+
+    /// Returns a credential using crypto material from this identity
+    fn credential(&self) -> SimpleV0Credential<MinimumFootprintV0CryptoMaterial, [u8; 32]> {
+        let hkdf = self.hkdf();
+        SimpleV0Credential::new(
+            MinimumFootprintV0CryptoMaterial::new(
+                self.key_seed,
+                hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&self.legacy_metadata_key),
+            ),
+            self.key_seed,
+        )
+    }
+
+    fn hkdf(&self) -> np_hkdf::NpKeySeedHkdf<C> {
+        np_hkdf::NpKeySeedHkdf::new(&self.key_seed)
+    }
+}
+
+struct AdvConfig<'a> {
+    /// `Some` iff an encrypted identity should be used
+    identity: Option<&'a TestIdentity<CryptoProviderImpl>>,
+    /// `Some` iff `identity` is `None`
+    plaintext_mode: Option<PlaintextIdentityMode>,
+}
+
+impl<'a> AdvConfig<'a> {
+    fn new(
+        identity: Option<&'a TestIdentity<CryptoProviderImpl>>,
+        plaintext_mode: Option<PlaintextIdentityMode>,
+    ) -> Self {
+        Self { identity, plaintext_mode }
+    }
+}
diff --git a/nearby/presence/np_adv/src/deser_v1_tests.rs b/nearby/presence/np_adv/src/deser_v1_tests.rs
new file mode 100644
index 0000000..b59b18b
--- /dev/null
+++ b/nearby/presence/np_adv/src/deser_v1_tests.rs
@@ -0,0 +1,486 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use core::marker::PhantomData;
+use rand::{rngs::StdRng, seq::SliceRandom as _, Rng as _, SeedableRng as _};
+
+extern crate std;
+
+use crate::{
+    credential::{
+        simple::{SimpleMatchedCredential, SimpleV1Credential},
+        source::SliceCredentialSource,
+        v1::MinimumFootprintV1CryptoMaterial,
+    },
+    de_type::EncryptedIdentityDataElementType,
+    deserialize_v1_advertisement,
+    extended::{
+        data_elements::GenericDataElement,
+        deserialize::VerificationMode,
+        serialize::{
+            AdvBuilder, EncodedAdvertisement, MicEncrypted, SectionBuilder, SectionIdentity,
+            SignedEncrypted,
+        },
+    },
+    AdvDeserializationError, AdvDeserializationErrorDetailsHazmat, CredentialSource,
+    PlaintextIdentityMode, PublicIdentity, Section, V1AdvContents, V1Credential,
+    V1DeserializedSection,
+};
+use crypto_provider::{CryptoProvider, CryptoRng};
+use std::{collections, prelude::rust_2021::*, vec};
+use strum::IntoEnumIterator as _;
+
+use crypto_provider_default::CryptoProviderImpl;
+
+#[test]
+fn v1_all_identities_resolvable_mix_plaintext_ciphertext() {
+    let mut rng = StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100)
+            .map(|_| TestIdentity::<CryptoProviderImpl>::random(&mut rng))
+            .collect::<Vec<_>>();
+
+        let mut adv_builder = AdvBuilder::new();
+        let section_configs = fill_adv(&mut rng, &identities, &mut adv_builder);
+        let adv = adv_builder.into_advertisement();
+        let creds = identities.iter().map(|i| i.credential()).collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+        // check if the section header would be 0 or if the section is empty
+        match section_configs.is_empty() {
+            true => {
+                let v1_error = deser_v1_error::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                assert_eq!(
+                    v1_error,
+                    AdvDeserializationError::ParseError {
+                        details_hazmat:
+                            AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+                    }
+                ); //assert a adv deserialization error
+            }
+            false => {
+                let v1_contents = deser_v1::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                assert_eq!(0, v1_contents.invalid_sections_count());
+                assert_eq!(section_configs.len(), v1_contents.sections.len());
+                for (section_config, section) in
+                    section_configs.iter().zip(v1_contents.sections.iter())
+                {
+                    assert_section_equals(section_config, section);
+                }
+            }
+        }
+    }
+}
+
+#[test]
+fn v1_only_non_matching_identities_available_mix_plaintext_ciphertext() {
+    let mut rng = StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100)
+            .map(|_| TestIdentity::<CryptoProviderImpl>::random(&mut rng))
+            .collect::<Vec<_>>();
+
+        let mut adv_builder = AdvBuilder::new();
+        let section_configs = fill_adv(&mut rng, &identities, &mut adv_builder);
+        let adv = adv_builder.into_advertisement();
+        let creds = identities
+            .iter()
+            .filter(|i| {
+                // remove all identities used in sections
+                !section_configs
+                    .iter()
+                    .any(|sc| sc.identity.map(|sci| sci.key_seed == i.key_seed).unwrap_or(false))
+            })
+            .map(|i| i.credential())
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+        // check if the section header would be 0
+        match section_configs.is_empty() {
+            true => {
+                let v1_error = deser_v1_error::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                assert_eq!(
+                    v1_error,
+                    AdvDeserializationError::ParseError {
+                        details_hazmat:
+                            AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+                    }
+                ); //assert a adv deserialization error
+            }
+            false => {
+                let v1_contents = deser_v1::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                // all encrypted identity sections are invalid
+                let encrypted_section_count =
+                    section_configs.iter().filter(|sc| sc.identity.is_some()).count();
+                assert_eq!(encrypted_section_count, v1_contents.invalid_sections_count());
+                assert_eq!(
+                    section_configs.len() - encrypted_section_count,
+                    v1_contents.sections.len()
+                );
+                for (section_config, section) in section_configs
+                    .iter()
+                    // skip encrypted sections
+                    .filter(|sc| sc.identity.is_none())
+                    .zip(v1_contents.sections.iter())
+                {
+                    assert_section_equals(section_config, section);
+                }
+            }
+        }
+    }
+}
+
+#[test]
+fn v1_no_creds_available_mix_plaintext_ciphertext() {
+    let mut rng = StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| TestIdentity::random(&mut rng)).collect::<Vec<_>>();
+
+        let mut adv_builder = AdvBuilder::new();
+        let section_configs =
+            fill_adv::<StdRng, CryptoProviderImpl>(&mut rng, &identities, &mut adv_builder);
+        let adv = adv_builder.into_advertisement();
+        let cred_source: SliceCredentialSource<
+            '_,
+            SimpleV1Credential<MinimumFootprintV1CryptoMaterial, [u8; 32]>,
+        > = SliceCredentialSource::new(&[]);
+        // check if the section header would be 0
+        match section_configs.is_empty() {
+            true => {
+                let v1_error = deser_v1_error::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                assert_eq!(
+                    v1_error,
+                    AdvDeserializationError::ParseError {
+                        details_hazmat:
+                            AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+                    }
+                ); //assert a adv deserialization error
+            }
+            false => {
+                let v1_contents = deser_v1::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                // all encrypted identity sections are invalid
+                let encrypted_section_count =
+                    section_configs.iter().filter(|sc| sc.identity.is_some()).count();
+                assert_eq!(encrypted_section_count, v1_contents.invalid_sections_count());
+                assert_eq!(
+                    section_configs.len() - encrypted_section_count,
+                    v1_contents.sections.len()
+                );
+
+                for (section_config, section) in section_configs
+                    .iter()
+                    // skip encrypted sections
+                    .filter(|sc| sc.identity.is_none())
+                    .zip(v1_contents.sections.iter())
+                {
+                    assert_section_equals(section_config, section);
+                }
+            }
+        }
+    }
+}
+
+#[test]
+fn v1_only_some_matching_identities_available_mix_plaintext_ciphertext() {
+    let mut rng = StdRng::from_entropy();
+    for _ in 0..100 {
+        let identities = (0..100)
+            .map(|_| TestIdentity::<CryptoProviderImpl>::random(&mut rng))
+            .collect::<Vec<_>>();
+
+        let mut adv_builder = AdvBuilder::new();
+        let section_configs = fill_adv(&mut rng, &identities, &mut adv_builder);
+        let adv = adv_builder.into_advertisement();
+        // identities used in sections, which may be used in multiple sections too
+        let identities_to_remove: collections::HashSet<_> = identities
+            .iter()
+            .filter(|i| {
+                let identity_used = section_configs
+                    .iter()
+                    .any(|sc| sc.identity.map(|sci| sci.key_seed == i.key_seed).unwrap_or(false));
+
+                // only remove half the identities that were used
+                identity_used && rng.gen()
+            })
+            .map(|i| i.key_seed)
+            .collect();
+
+        let creds = identities
+            .iter()
+            .filter(|i| !identities_to_remove.contains(&i.key_seed))
+            .map(|i| i.credential())
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+        // check if the section header would be 0
+        match section_configs.is_empty() {
+            true => {
+                let v1_error = deser_v1_error::<_, _, CryptoProviderImpl>(&cred_source, adv);
+                assert_eq!(
+                    v1_error,
+                    AdvDeserializationError::ParseError {
+                        details_hazmat:
+                            AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+                    }
+                ); //assert a adv deserialization error
+            }
+            false => {
+                let v1_contents = deser_v1::<_, _, CryptoProviderImpl>(&cred_source, adv);
+
+                let affected_sections: Vec<_> = section_configs
+                    .iter()
+                    .filter(|sc| {
+                        sc.identity
+                            .map(|sci| identities_to_remove.iter().any(|ks| &sci.key_seed == ks))
+                            .unwrap_or(false)
+                    })
+                    .collect();
+
+                assert_eq!(affected_sections.len(), v1_contents.invalid_sections_count());
+                assert_eq!(
+                    section_configs.len() - affected_sections.len(),
+                    v1_contents.sections.len()
+                );
+
+                for (section_config, section) in section_configs
+                    .iter()
+                    // skip sections w/ removed identities
+                    .filter(|sc| {
+                        sc.identity
+                            .map(|i| !identities_to_remove.contains(&i.key_seed))
+                            .unwrap_or(true)
+                    })
+                    .zip(v1_contents.sections.iter())
+                {
+                    assert_section_equals(section_config, section);
+                }
+            }
+        }
+    }
+}
+
+fn assert_section_equals<'m, C: CryptoProvider>(
+    section_config: &SectionConfig<C>,
+    section: &V1DeserializedSection<'m, SimpleMatchedCredential<'m, [u8; 32]>>,
+) {
+    match section_config.identity {
+        None => match section {
+            V1DeserializedSection::Plaintext(p) => {
+                assert!(section_config.verification_mode.is_none());
+
+                assert_eq!(section_config.plaintext_mode.unwrap(), p.identity());
+                assert_eq!(
+                    section_config.data_elements,
+                    p.data_elements().map(|de| de.into()).collect::<Vec<_>>()
+                )
+            }
+            V1DeserializedSection::Decrypted(_) => panic!("no id, but decrypted section"),
+        },
+        Some(_) => match section {
+            V1DeserializedSection::Plaintext(_) => panic!("id, but plaintext section"),
+            V1DeserializedSection::Decrypted(wmc) => {
+                assert!(section_config.plaintext_mode.is_none());
+
+                assert_eq!(
+                    section_config.data_elements,
+                    wmc.contents().data_elements().map(|de| de.into()).collect::<Vec<_>>()
+                );
+                assert_eq!(
+                    section_config.identity.unwrap().identity_type,
+                    wmc.contents().identity_type()
+                );
+                assert_eq!(
+                    &section_config.identity.unwrap().extended_metadata_key,
+                    wmc.contents().metadata_key()
+                );
+                assert_eq!(
+                    section_config.verification_mode.unwrap(),
+                    wmc.contents().verification_mode()
+                );
+            }
+        },
+    }
+}
+
+fn deser_v1_error<'s, C, S, P>(
+    cred_source: &'s S,
+    adv: EncodedAdvertisement,
+) -> AdvDeserializationError
+where
+    C: V1Credential<Matched<'s> = SimpleMatchedCredential<'s, [u8; 32]>> + 's,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    let v1_contents = match deserialize_v1_advertisement::<C, S, P>(adv.as_slice(), cred_source) {
+        Err(e) => e,
+        _ => panic!("Expecting an error!"),
+    };
+    v1_contents
+}
+
+fn deser_v1<'s, C, S, P>(
+    cred_source: &'s S,
+    adv: EncodedAdvertisement,
+) -> V1AdvContents<'s, SimpleMatchedCredential<'s, [u8; 32]>>
+where
+    C: V1Credential<Matched<'s> = SimpleMatchedCredential<'s, [u8; 32]>> + 's,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    deserialize_v1_advertisement::<C, S, P>(adv.as_slice(), cred_source).unwrap()
+}
+/// Populate a random number of sections with randomly chosen identities and random DEs
+fn fill_adv<'a, R: rand::Rng, C: CryptoProvider>(
+    mut rng: &mut R,
+    identities: &'a Vec<TestIdentity<C>>,
+    adv_builder: &mut AdvBuilder,
+) -> Vec<SectionConfig<'a, C>> {
+    let mut expected = Vec::new();
+    let mut salt_rng = C::CryptoRng::new();
+    // build sections
+    for _ in 0..rng.gen_range(0..=6) {
+        let chosen_index = rng.gen_range(0..identities.len());
+        let identity = &identities[chosen_index];
+        let res = match rng.gen_range(1_u8..=3) {
+            1 => adv_builder.section_builder(PublicIdentity::default()).map(|s| {
+                SectionConfig::new(
+                    None,
+                    Some(PlaintextIdentityMode::Public),
+                    None,
+                    add_des(s, &mut rng),
+                )
+            }),
+            2 => adv_builder
+                .section_builder(MicEncrypted::new_random_salt(
+                    &mut salt_rng,
+                    identity.identity_type,
+                    &identity.extended_metadata_key,
+                    &identity.hkdf(),
+                ))
+                .map(|s| {
+                    SectionConfig::new(
+                        Some(identity),
+                        None,
+                        Some(VerificationMode::Mic),
+                        add_des(s, &mut rng),
+                    )
+                }),
+            3 => adv_builder
+                .section_builder(SignedEncrypted::new_random_salt(
+                    &mut salt_rng,
+                    identity.identity_type,
+                    &identity.extended_metadata_key,
+                    &identity.key_pair,
+                    &identity.hkdf(),
+                ))
+                .map(|s| {
+                    SectionConfig::new(
+                        Some(identity),
+                        None,
+                        Some(VerificationMode::Signature),
+                        add_des(s, &mut rng),
+                    )
+                }),
+            _ => unreachable!(),
+        };
+        match res {
+            Ok(tuple) => expected.push(tuple),
+            Err(_) => {
+                // couldn't fit that section; maybe another smaller section will fit
+                continue;
+            }
+        }
+    }
+    expected
+}
+struct TestIdentity<C: CryptoProvider> {
+    identity_type: EncryptedIdentityDataElementType,
+    key_seed: [u8; 32],
+    extended_metadata_key: [u8; 16],
+    key_pair: np_ed25519::KeyPair<C>,
+    marker: PhantomData<C>,
+}
+impl<C: CryptoProvider> TestIdentity<C> {
+    /// Generate a new identity with random crypto material
+    fn random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
+        Self {
+            identity_type: *EncryptedIdentityDataElementType::iter()
+                .collect::<Vec<_>>()
+                .choose(rng)
+                .unwrap(),
+            key_seed: rng.gen(),
+            extended_metadata_key: rng.gen(),
+            key_pair: np_ed25519::KeyPair::<C>::generate(),
+            marker: PhantomData,
+        }
+    }
+    /// Returns a credential using crypto material from this identity
+    fn credential(&self) -> SimpleV1Credential<MinimumFootprintV1CryptoMaterial, [u8; 32]> {
+        let hkdf = self.hkdf();
+        SimpleV1Credential::new(
+            MinimumFootprintV1CryptoMaterial::new(
+                self.key_seed,
+                hkdf.extended_unsigned_metadata_key_hmac_key()
+                    .calculate_hmac(&self.extended_metadata_key),
+                hkdf.extended_signed_metadata_key_hmac_key()
+                    .calculate_hmac(&self.extended_metadata_key),
+                self.key_pair.public(),
+            ),
+            self.key_seed,
+        )
+    }
+    fn hkdf(&self) -> np_hkdf::NpKeySeedHkdf<C> {
+        np_hkdf::NpKeySeedHkdf::<C>::new(&self.key_seed)
+    }
+}
+/// Add several DEs with random types and contents
+fn add_des<I: SectionIdentity, R: rand::Rng>(
+    mut sb: SectionBuilder<I>,
+    rng: &mut R,
+) -> Vec<GenericDataElement> {
+    let mut des = Vec::new();
+    for _ in 0..rng.gen_range(0..=2) {
+        // not worried about multi byte type encoding here, so just sticking with what can sometimes
+        // fit in the 1-byte header, and isn't an identity element
+        let de_type = rng.gen_range(10_u32..=20);
+        // covers lengths that fit or don't fit in 3 bits (1 byte header)
+        let de_len = rng.gen_range(0..=10);
+        let mut de_data = vec![0; de_len];
+        rng.fill(&mut de_data[..]);
+        let de = GenericDataElement::try_from(de_type.into(), &de_data).unwrap();
+        if sb.add_de(|_| de.clone()).is_err() {
+            // no more room in the section
+            break;
+        }
+        des.push(de);
+    }
+    sb.add_to_advertisement();
+    des
+}
+struct SectionConfig<'a, C: CryptoProvider> {
+    /// `Some` iff an encrypted identity should be used
+    identity: Option<&'a TestIdentity<C>>,
+    /// `Some` iff `identity` is `None`
+    plaintext_mode: Option<PlaintextIdentityMode>,
+    /// `Some` iff `identity` is `Some`
+    verification_mode: Option<VerificationMode>,
+    data_elements: Vec<GenericDataElement>,
+}
+impl<'a, C: CryptoProvider> SectionConfig<'a, C> {
+    pub fn new(
+        identity: Option<&'a TestIdentity<C>>,
+        plaintext_mode: Option<PlaintextIdentityMode>,
+        verification_mode: Option<VerificationMode>,
+        data_elements: Vec<GenericDataElement>,
+    ) -> Self {
+        Self { identity, plaintext_mode, verification_mode, data_elements }
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/data_elements/mod.rs b/nearby/presence/np_adv/src/extended/data_elements/mod.rs
new file mode 100644
index 0000000..2058be1
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/data_elements/mod.rs
@@ -0,0 +1,305 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V1 data elements.
+//!
+//! Commonly used DEs have dedicated types (e.g. [TxPowerDataElement], etc), but if another DE is
+//! needed, [GenericDataElement] will allow constructing any type of DE.
+
+use crate::extended::{
+    de_type::DeType,
+    deserialize::DataElement,
+    serialize::{DeHeader, SingleTypeDataElement, WriteDataElement},
+    DeLength, ENCRYPTION_INFO_DE_TYPE, MAX_DE_LEN,
+};
+use crate::shared_data::*;
+use array_view::ArrayView;
+use sink::Sink;
+
+#[cfg(test)]
+mod tests;
+
+/// A general purpose data element for use cases that don't fit into an existing DE type.
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub struct GenericDataElement {
+    de_type: DeType,
+    data: ArrayView<u8, MAX_DE_LEN>,
+}
+
+impl GenericDataElement {
+    /// Construct a `GenericDataElement` from the provided input.
+    ///
+    /// `de_type`: the DE type
+    /// `data`: the DE contents, length <= 127
+    pub fn try_from(de_type: DeType, data: &[u8]) -> Result<Self, GenericDataElementError> {
+        ArrayView::try_from_slice(data)
+            .ok_or(GenericDataElementError::DataTooLong)
+            .map(|data| Self { de_type, data })
+    }
+}
+
+/// Errors that can occur constructing a [GenericDataElement]
+#[derive(Debug, PartialEq, Eq)]
+pub enum GenericDataElementError {
+    /// The DE data is too long
+    DataTooLong,
+}
+
+impl WriteDataElement for GenericDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(self.de_type, self.data.len().try_into().expect("length <= max DE len"))
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(self.data.as_slice())
+    }
+}
+
+/// Convert a deserialized DE into one you can serialize
+impl<'a> From<DataElement<'a>> for GenericDataElement {
+    fn from(de: DataElement<'a>) -> Self {
+        Self::try_from(de.de_type(), de.contents())
+            .expect("Deserialized DE must have a valid length")
+    }
+}
+
+/// Advertising power
+#[derive(Clone)]
+pub struct TxPowerDataElement {
+    tx_power: TxPower,
+}
+
+impl From<TxPower> for TxPowerDataElement {
+    fn from(tx_power: TxPower) -> Self {
+        Self { tx_power }
+    }
+}
+
+impl SingleTypeDataElement for TxPowerDataElement {
+    const DE_TYPE: DeType = DeType::const_from(0x05);
+}
+
+impl WriteDataElement for TxPowerDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(Self::DE_TYPE, 1_u8.try_into().expect("1 is a valid length"))
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_push(self.tx_power.as_i8() as u8)
+    }
+}
+
+/// List of actions
+pub struct ActionsDataElement {
+    actions: tinyvec::ArrayVec<[u8; MAX_DE_LEN]>,
+}
+
+impl ActionsDataElement {
+    /// Returns `Some` if the actions will fit in a DE, `None` otherwise
+    pub fn try_from_actions(actions: &[u8]) -> Result<Self, ActionsDataElementError> {
+        let mut de = Self { actions: tinyvec::ArrayVec::new() };
+
+        de.actions
+            .try_extend_from_slice(actions)
+            .map(|_| de)
+            .ok_or(ActionsDataElementError::ActionsTooLong)
+    }
+}
+
+impl SingleTypeDataElement for ActionsDataElement {
+    const DE_TYPE: DeType = DeType::const_from(0x06);
+}
+
+impl WriteDataElement for ActionsDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(Self::DE_TYPE, self.actions.len().try_into().expect("always <= max length"))
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(&self.actions)
+    }
+}
+
+/// Errors that can occur constructing an [ActionsDataElement].
+#[derive(Debug, PartialEq, Eq)]
+pub enum ActionsDataElementError {
+    /// Too many action bytes.
+    ActionsTooLong,
+}
+
+pub(crate) const SIGNATURE_ENCRYPTION_SCHEME: u8 = 0b00001000;
+pub(crate) const MIC_ENCRYPTION_SCHEME: u8 = 0b00000000;
+
+/// Determines whether a signature or mic encryption scheme is used
+pub(crate) struct EncryptionInfoDataElement {
+    /// First byte is bESSSSRRR where SSSS is the encryption scheme, rest are the salt
+    pub info: [u8; 17],
+}
+
+impl SingleTypeDataElement for EncryptionInfoDataElement {
+    const DE_TYPE: DeType = ENCRYPTION_INFO_DE_TYPE;
+}
+
+impl EncryptionInfoDataElement {
+    pub(crate) fn serialize(&self) -> [u8; 19] {
+        let mut buffer = [0_u8; 19];
+        buffer[0..2].copy_from_slice(self.de_header().serialize().as_slice());
+        buffer[2..19].copy_from_slice(&self.info);
+        buffer
+    }
+
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(
+            Self::DE_TYPE,
+            DeLength {
+                len: self.info.len().try_into().expect("encryption info is a valid length"),
+            },
+        )
+    }
+
+    /// Constructs the signature encryption scheme variant
+    pub fn signature(salt_bytes: &[u8; 16]) -> Self {
+        Self::new(SIGNATURE_ENCRYPTION_SCHEME, salt_bytes)
+    }
+
+    /// Constructs the mic encryption scheme variant
+    pub fn mic(salt_bytes: &[u8; 16]) -> Self {
+        Self::new(MIC_ENCRYPTION_SCHEME, salt_bytes)
+    }
+
+    fn new(scheme: u8, salt_bytes: &[u8; 16]) -> Self {
+        let mut sig_info = [0_u8; 17];
+        sig_info[0] = scheme;
+        sig_info[1..].copy_from_slice(salt_bytes);
+        Self { info: sig_info }
+    }
+}
+
+/// Context sync sequence number
+pub struct ContextSyncSeqNumDataElement {
+    num: ContextSyncSeqNum,
+}
+
+impl From<ContextSyncSeqNum> for ContextSyncSeqNumDataElement {
+    fn from(num: ContextSyncSeqNum) -> Self {
+        Self { num }
+    }
+}
+
+impl SingleTypeDataElement for ContextSyncSeqNumDataElement {
+    const DE_TYPE: DeType = DeType::const_from(0x13);
+}
+
+impl WriteDataElement for ContextSyncSeqNumDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(Self::DE_TYPE, 1_u8.try_into().expect("1 is a valid length"))
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_push(self.num.as_u8())
+    }
+}
+
+/// Connectivity info
+pub struct ConnectivityInfoDataElement {
+    // TODO len
+    info: ArrayView<u8, 24>,
+}
+
+impl ConnectivityInfoDataElement {
+    /// Construct connectivity info for bluetooth.
+    pub fn bluetooth(svc_id: [u8; 4], mac: [u8; 6]) -> Self {
+        let mut array = [0; 24];
+        array[0] = 0x1; // bluetooth
+        array[1..5].copy_from_slice(&svc_id);
+        array[5..11].copy_from_slice(&mac);
+
+        Self { info: ArrayView::try_from_array(array, 11).expect("length is fixed") }
+    }
+
+    /// Construct connectivity info for mDNS.
+    // TODO port type, bssid
+    pub fn mdns(ip: [u8; 4], port: u8) -> Self {
+        let mut array = [0; 24];
+        array[0] = 0x2; // mdns
+        array[1..5].copy_from_slice(&ip);
+        array[5] = port;
+
+        Self { info: ArrayView::try_from_array(array, 6).expect("length is fixed") }
+    }
+
+    /// Construct connectivity info for WiFi Direct.
+    pub fn wifi_direct(ssid: [u8; 10], password: [u8; 10], freq: [u8; 2], port: u8) -> Self {
+        let mut array = [0; 24];
+        array[0] = 0x3; // wifi direct
+        array[1..11].copy_from_slice(&ssid);
+        array[11..21].copy_from_slice(&password);
+        array[21..23].copy_from_slice(&freq);
+        array[23] = port;
+
+        Self { info: ArrayView::try_from_array(array, 24).expect("length is fixed") }
+    }
+}
+
+impl SingleTypeDataElement for ConnectivityInfoDataElement {
+    const DE_TYPE: DeType = DeType::const_from(0x11);
+}
+
+impl WriteDataElement for ConnectivityInfoDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(
+            Self::DE_TYPE,
+            self.info.len().try_into().expect("conn info is a valid length"),
+        )
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(self.info.as_slice())
+    }
+}
+
+/// Connectivity capabilities
+pub struct ConnectivityCapabilityDataElement {
+    // TODO len
+    capability: ArrayView<u8, 7>,
+}
+
+impl ConnectivityCapabilityDataElement {
+    /// Construct connectivity capabilities for WiFi Direct.
+    pub fn wifi_direct(supported_freqs: [u8; 3], connected_freqs: [u8; 3]) -> Self {
+        let mut array = [0; 7];
+        array[0] = 0x2; // wifi direct
+        array[1..4].copy_from_slice(&supported_freqs);
+        array[4..7].copy_from_slice(&connected_freqs);
+
+        Self { capability: ArrayView::try_from_array(array, 7).expect("length is fixed") }
+    }
+}
+
+impl SingleTypeDataElement for ConnectivityCapabilityDataElement {
+    const DE_TYPE: DeType = DeType::const_from(0x12);
+}
+
+impl WriteDataElement for ConnectivityCapabilityDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader::new(
+            Self::DE_TYPE,
+            self.capability.len().try_into().expect("capability is a valid length"),
+        )
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(self.capability.as_slice())
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/data_elements/tests.rs b/nearby/presence/np_adv/src/extended/data_elements/tests.rs
new file mode 100644
index 0000000..a8938b0
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/data_elements/tests.rs
@@ -0,0 +1,183 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::{
+    extended::serialize::{section_tests::SectionBuilderExt, AdvBuilder},
+    shared_data::TxPower,
+    PublicIdentity,
+};
+
+#[test]
+fn serialize_tx_power_de() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder.add_de_res(|_| TxPower::try_from(3_i8).map(TxPowerDataElement::from)).unwrap();
+
+    assert_eq!(
+        &[
+            3,    // section header
+            0x03, // public identity
+            0x15, // len 1 type 0x05
+            3
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_actions_de_empty() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder.add_de_res(|_| ActionsDataElement::try_from_actions(&[])).unwrap();
+
+    assert_eq!(
+        &[
+            2,    // section header
+            0x03, // public identity
+            0x06, // len 0 type 0x06
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_actions_de_non_empty() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder
+        .add_de_res(|_| ActionsDataElement::try_from_actions(&[1, 1, 2, 3, 5, 8]))
+        .unwrap();
+
+    assert_eq!(
+        &[
+            8,    // section header
+            0x03, // public identity
+            0x66, // len 6 type 0x06
+            1, 1, 2, 3, 5, 8 // fibonacci, of course
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_context_sync_seq_num_de() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder
+        .add_de_res(|_| ContextSyncSeqNum::try_from(3).map(ContextSyncSeqNumDataElement::from))
+        .unwrap();
+
+    assert_eq!(
+        &[
+            4,    // section header
+            0x03, // public identity
+            0x81, 0x13, // len 1 type 0x13
+            3,    // seq num
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_connectivity_info_de_bluetooth() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder.add_de(|_| ConnectivityInfoDataElement::bluetooth([1; 4], [2; 6])).unwrap();
+
+    assert_eq!(
+        &[
+            14,   // section header
+            0x03, // public identity
+            0x8B, 0x11, // len 11 type 0x11
+            1,    // connectivity type
+            1, 1, 1, 1, // svc id
+            2, 2, 2, 2, 2, 2 // mac
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_connectivity_info_de_mdns() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder.add_de(|_| ConnectivityInfoDataElement::mdns([1; 4], 2)).unwrap();
+
+    assert_eq!(
+        &[
+            9,    // section header
+            0x03, // public identity
+            0x86, 0x11, // len 11 type 0x11
+            2,    // connectivity type
+            1, 1, 1, 1, // svc id
+            2  // port
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_connectivity_info_de_wifi_direct() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder
+        .add_de(|_| ConnectivityInfoDataElement::wifi_direct([1; 10], [2; 10], [3; 2], 4))
+        .unwrap();
+
+    assert_eq!(
+        &[
+            27,   // section header
+            0x03, // public identity
+            0x98, 0x11, // len 24 type 0x11
+            3,    // connectivity type
+            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // ssid
+            2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // password
+            3, 3, // freq
+            4  // port
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
+
+#[test]
+fn serialize_connectivity_capabilities_de_wifi_direct() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    section_builder
+        .add_de(|_| ConnectivityCapabilityDataElement::wifi_direct([1; 3], [2; 3]))
+        .unwrap();
+
+    assert_eq!(
+        &[
+            10,   // section header
+            0x03, // public identity
+            0x87, 0x12, // len 7 type 0x12
+            2,    // connectivity type
+            1, 1, 1, // supported
+            2, 2, 2, // connected
+        ],
+        section_builder.into_section().as_slice()
+    );
+}
diff --git a/nearby/presence/np_adv/src/extended/de_type.rs b/nearby/presence/np_adv/src/extended/de_type.rs
new file mode 100644
index 0000000..105d15e
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/de_type.rs
@@ -0,0 +1,143 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V1 DE type types
+use crate::de_type::{EncryptedIdentityDataElementType, IdentityDataElementType};
+
+/// Data element types for extended advertisements
+#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)]
+pub struct DeType {
+    // 4 billion type codes should be enough for anybody
+    code: u32,
+}
+
+impl DeType {
+    /// A `const` equivalent to `From<u32>` since trait methods can't yet be const.
+    pub(crate) const fn const_from(value: u32) -> Self {
+        Self { code: value }
+    }
+
+    /// Returns the type as a u32
+    pub fn as_u32(&self) -> u32 {
+        self.code
+    }
+}
+
+impl From<u8> for DeType {
+    fn from(value: u8) -> Self {
+        DeType { code: value as u32 }
+    }
+}
+
+impl From<u32> for DeType {
+    fn from(value: u32) -> Self {
+        DeType { code: value }
+    }
+}
+
+pub(crate) trait ExtendedDataElementType: Sized {
+    /// A type code for use in the DE header.
+    fn type_code(&self) -> DeType;
+    /// Returns the matching type for the code, else `None`
+    fn from_type_code(de_type: DeType) -> Option<Self>;
+}
+
+impl ExtendedDataElementType for IdentityDataElementType {
+    fn type_code(&self) -> DeType {
+        DeType::from(self.shared_type_code())
+    }
+
+    fn from_type_code(de_type: DeType) -> Option<Self> {
+        de_type.code.try_into().ok().and_then(Self::from_shared_type_code)
+    }
+}
+
+impl ExtendedDataElementType for EncryptedIdentityDataElementType {
+    fn type_code(&self) -> DeType {
+        DeType::from(self.as_identity_data_element_type().shared_type_code())
+    }
+
+    fn from_type_code(code: DeType) -> Option<Self> {
+        IdentityDataElementType::from_type_code(code)
+            .and_then(|idet| idet.as_encrypted_identity_de_type())
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    extern crate std;
+
+    use super::*;
+    use std::{collections, fmt};
+
+    #[test]
+    fn identity_type_codes_are_consistent() {
+        de_type_codes_are_consistent::<IdentityDataElementType>()
+    }
+
+    #[test]
+    fn encrypted_identity_type_codes_are_consistent() {
+        de_type_codes_are_consistent::<EncryptedIdentityDataElementType>()
+    }
+
+    #[test]
+    fn identity_type_codes_are_distinct() {
+        de_distinct_type_codes::<IdentityDataElementType>()
+    }
+
+    #[test]
+    fn encrypted_identity_type_codes_are_distinct() {
+        de_distinct_type_codes::<EncryptedIdentityDataElementType>()
+    }
+
+    #[test]
+    fn identity_no_accidentally_mapped_type_codes() {
+        de_no_accidentally_mapped_type_codes::<IdentityDataElementType>()
+    }
+
+    #[test]
+    fn encrypted_identity_no_accidentally_mapped_type_codes() {
+        de_no_accidentally_mapped_type_codes::<EncryptedIdentityDataElementType>()
+    }
+
+    fn de_type_codes_are_consistent<
+        D: PartialEq + fmt::Debug + ExtendedDataElementType + strum::IntoEnumIterator,
+    >() {
+        for det in D::iter() {
+            let actual = D::from_type_code(det.type_code());
+            assert_eq!(Some(det), actual)
+        }
+    }
+
+    fn de_distinct_type_codes<
+        D: PartialEq + fmt::Debug + ExtendedDataElementType + strum::IntoEnumIterator,
+    >() {
+        let codes = D::iter().map(|det| det.type_code()).collect::<collections::HashSet<_>>();
+        assert_eq!(codes.len(), D::iter().count());
+    }
+
+    fn de_no_accidentally_mapped_type_codes<
+        D: PartialEq + fmt::Debug + ExtendedDataElementType + strum::IntoEnumIterator,
+    >() {
+        let codes = D::iter().map(|det| det.type_code()).collect::<collections::HashSet<_>>();
+        // not going to try all 4 billion possibilities, but we can make an effort
+        for possible_code in 0_u32..100_000 {
+            if codes.contains(&possible_code.into()) {
+                continue;
+            }
+
+            assert_eq!(None, D::from_type_code(possible_code.into()));
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mic_decrypt_tests.rs b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mic_decrypt_tests.rs
new file mode 100644
index 0000000..d112ead
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mic_decrypt_tests.rs
@@ -0,0 +1,426 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::extended::data_elements::TxPowerDataElement;
+use crate::extended::serialize::{SingleTypeDataElement, WriteDataElement};
+use crate::shared_data::TxPower;
+use crate::{
+    credential::{simple::SimpleV1Credential, v1::MinimumFootprintV1CryptoMaterial},
+    de_type::EncryptedIdentityDataElementType,
+    extended::{
+        deserialize::{
+            encrypted_section::MicEncryptedSectionDeserializationError,
+            parse_sections,
+            test_stubs::{HkdfCryptoMaterial, IntermediateSectionExt},
+            CiphertextSection, OffsetDataElement, RawV1Salt,
+        },
+        serialize::{AdvBuilder, CapacityLimitedVec, MicEncrypted},
+    },
+    parse_adv_header, AdvHeader, Section,
+};
+use crypto_provider_default::CryptoProviderImpl;
+use np_hkdf::v1_salt::DataElementOffset;
+use sink::Sink;
+use std::{prelude::rust_2021::*, vec};
+
+#[test]
+fn deserialize_mic_encrypted_correct_keys() {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let raw_salt = RawV1Salt([3; 16]);
+    let section_salt = V1Salt::<CryptoProviderImpl>::from(raw_salt);
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_for_testing(
+            identity_type,
+            V1Salt::from(*section_salt.as_array_ref()),
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    let txpower_de = TxPowerDataElement::from(TxPower::try_from(5).unwrap());
+    section_builder.add_de(|_| txpower_de.clone()).unwrap();
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let adv_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&adv_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let keypair = np_ed25519::KeyPair::<CryptoProviderImpl>::generate();
+
+    // deserializing to Section works
+    let credential = SimpleV1Credential::new(
+        MinimumFootprintV1CryptoMaterial::new::<CryptoProviderImpl>(
+            key_seed,
+            key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            keypair.public(),
+        ),
+        (),
+    );
+    let section = enc_section.try_deserialize::<_, CryptoProviderImpl>(&credential).unwrap();
+
+    assert_eq!(
+        DecryptedSection::new(
+            EncryptedIdentityDataElementType::Private,
+            VerificationMode::Mic,
+            metadata_key,
+            raw_salt,
+            SectionContents {
+                section_header: 19 // encryption info de
+                    + 2 // de header
+                    + 16 // metadata key
+                    + 2 // de contents
+                    + 16, // mic hmac tag
+                // battery DE
+                de_data: ArrayView::try_from_slice(&[5]).unwrap(),
+                data_elements: vec![OffsetDataElement {
+                    offset: 2.into(),
+                    de_type: 0x05_u8.into(),
+                    start_of_contents: 0,
+                    contents_len: 1
+                }]
+            }
+        ),
+        section
+    );
+
+    assert_eq!(
+        vec![(DataElementOffset::from(2_usize), TxPowerDataElement::DE_TYPE, vec![5_u8])],
+        section
+            .data_elements()
+            .map(|de| (de.offset(), de.de_type(), de.contents().to_vec()))
+            .collect::<Vec<_>>()
+    );
+
+    let contents = if let CiphertextSection::MicEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    let mut encryption_info_bytes = [0_u8; 19];
+    encryption_info_bytes[0..2].copy_from_slice(&[0x91, 0x10]);
+    encryption_info_bytes[2] = 0x00;
+    encryption_info_bytes[3..].copy_from_slice(section_salt.as_slice());
+
+    let ciphertext_end = adv.as_slice().len() - 16;
+    assert_eq!(
+        &MicEncryptedSection {
+            section_header: 19 // encryption info de
+                    + 2 // de header
+                    + 16 // metadata key
+                    + 2 // de contents
+                    + 16, // mic hmac tag
+            adv_header: &adv_header,
+            encryption_info: EncryptionInfo { bytes: encryption_info_bytes },
+            identity: EncryptedIdentityMetadata {
+                header_bytes: [0x90, 0x1],
+                offset: 1.into(),
+                identity_type: EncryptedIdentityDataElementType::Private,
+            },
+            all_ciphertext: &adv.as_slice()[1 + 1 + 19 + 2..ciphertext_end],
+            mic: SectionMic { mic: adv.as_slice()[ciphertext_end..].try_into().unwrap() }
+        },
+        contents
+    );
+
+    // plaintext is correct
+    {
+        let crypto_material = MinimumFootprintV1CryptoMaterial::new::<CryptoProviderImpl>(
+            key_seed,
+            key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            keypair.public(),
+        );
+        let identity_resolution_material =
+            crypto_material.unsigned_identity_resolution_material::<CryptoProviderImpl>();
+        let verification_material =
+            crypto_material.unsigned_verification_material::<CryptoProviderImpl>();
+
+        let decrypted = contents
+            .try_decrypt::<CryptoProviderImpl>(
+                &identity_resolution_material,
+                &verification_material,
+            )
+            .unwrap();
+
+        let mut expected = metadata_key.as_slice().to_vec();
+        // battery de
+        expected.extend_from_slice(txpower_de.clone().de_header().serialize().as_slice());
+        txpower_de.write_de_contents(&mut expected);
+
+        assert_eq!(&expected, decrypted.as_slice());
+    }
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_aes_key_error() {
+    // bad aes key -> bad metadata key plaintext
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        Some([0xFF; 16].into()),
+        None,
+        None,
+        None,
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_metadata_key_hmac_key_error() {
+    // bad metadata key hmac key -> bad calculated metadata key mac
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        None,
+        Some([0xFF; 32].into()),
+        None,
+        None,
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_mic_hmac_key_error() {
+    // bad mic hmac key -> bad calculated mic
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        MicEncryptedSectionDeserializationError::MicMismatch,
+        None,
+        None,
+        Some([0xFF; 32].into()),
+        None,
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_expected_metadata_key_hmac_error() {
+    // bad expected metadata key mac
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        None,
+        None,
+        None,
+        Some([0xFF; 32]),
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_salt_error() {
+    // bad salt -> bad iv -> bad metadata key plaintext
+    do_bad_deserialize_tampered(
+        MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        |_| {},
+        |adv| adv[23..39].copy_from_slice(&[0xFF; 16]),
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_de_that_wont_parse() {
+    // add an extra byte to the section, leading it to try to parse a DE that doesn't exist
+    do_bad_deserialize_tampered(
+        MicEncryptedSectionDeserializationError::DeParseError,
+        |sec| sec.try_push(0xFF).unwrap(),
+        |_| {},
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_tampered_mic_error() {
+    // flip the a bit in the first MIC byte
+    do_bad_deserialize_tampered(
+        MicEncryptedSectionDeserializationError::MicMismatch,
+        |_| {},
+        |adv| {
+            let mic_start = adv.len() - 16;
+            adv[mic_start] ^= 0x01
+        },
+    );
+}
+
+#[test]
+fn deserialize_mic_encrypted_tampered_payload_error() {
+    // flip the last payload bit
+    do_bad_deserialize_tampered(
+        MicEncryptedSectionDeserializationError::MicMismatch,
+        |_| {},
+        |adv| *adv.last_mut().unwrap() ^= 0x01,
+    );
+}
+
+/// Attempt a decryption that will fail when using the provided parameters for decryption only.
+/// `None` means use the correct value for that parameter.
+fn do_bad_deserialize_params<C: CryptoProvider>(
+    error: MicEncryptedSectionDeserializationError,
+    aes_key: Option<crypto_provider::aes::Aes128Key>,
+    metadata_key_hmac_key: Option<np_hkdf::NpHmacSha256Key<C>>,
+    mic_hmac_key: Option<np_hkdf::NpHmacSha256Key<C>>,
+    expected_metadata_key_hmac: Option<[u8; 32]>,
+) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let section_salt: V1Salt<C> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_for_testing(
+            identity_type,
+            section_salt,
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    section_builder.add_de(|_| TxPowerDataElement::from(TxPower::try_from(7).unwrap())).unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&v1_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let contents = if let CiphertextSection::MicEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    let unsigned_identity_resolution_material = SectionIdentityResolutionMaterial {
+        aes_key: aes_key.unwrap_or_else(|| np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf)),
+        metadata_key_hmac_key: *metadata_key_hmac_key
+            .unwrap_or_else(|| key_seed_hkdf.extended_unsigned_metadata_key_hmac_key())
+            .as_bytes(),
+        expected_metadata_key_hmac: expected_metadata_key_hmac.unwrap_or_else(|| {
+            key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key)
+        }),
+    };
+    let identity_resolution_material =
+        UnsignedSectionIdentityResolutionMaterial::from_raw(unsigned_identity_resolution_material);
+
+    let verification_material = UnsignedSectionVerificationMaterial {
+        mic_hmac_key: *mic_hmac_key
+            .unwrap_or_else(|| np_hkdf::UnsignedSectionKeys::hmac_key(&key_seed_hkdf))
+            .as_bytes(),
+    };
+
+    assert_eq!(
+        error,
+        contents
+            .try_deserialize::<C>(&identity_resolution_material, &verification_material)
+            .unwrap_err()
+    );
+}
+
+fn do_bad_deserialize_tampered<
+    S: Fn(&mut CapacityLimitedVec<u8, NP_ADV_MAX_SECTION_LEN>),
+    A: Fn(&mut Vec<u8>),
+>(
+    expected_error: MicEncryptedSectionDeserializationError,
+    mangle_section: S,
+    mangle_adv: A,
+) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let section_salt: V1Salt<CryptoProviderImpl> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_for_testing(
+            identity_type,
+            section_salt,
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    section_builder.add_de(|_| TxPowerDataElement::from(TxPower::try_from(7).unwrap())).unwrap();
+
+    mangle_section(&mut section_builder.section);
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+    let mut adv_mut = adv.as_slice().to_vec();
+    mangle_adv(&mut adv_mut);
+
+    let (remaining, header) = parse_adv_header(&adv_mut).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&v1_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let contents = if let CiphertextSection::MicEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    // generate a random key pair since we need _some_ public key
+    let key_pair = np_ed25519::KeyPair::<CryptoProviderImpl>::generate();
+
+    let crypto_material = HkdfCryptoMaterial::new(&key_seed, &metadata_key, key_pair.public());
+    let identity_resolution_material =
+        crypto_material.unsigned_identity_resolution_material::<CryptoProviderImpl>();
+    let verification_material =
+        crypto_material.unsigned_verification_material::<CryptoProviderImpl>();
+
+    assert_eq!(
+        expected_error,
+        contents
+            .try_deserialize::<CryptoProviderImpl>(
+                &identity_resolution_material,
+                &verification_material,
+            )
+            .unwrap_err()
+    );
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mod.rs b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mod.rs
new file mode 100644
index 0000000..ad305f5
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mod.rs
@@ -0,0 +1,293 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crate::{
+    credential::v1::*,
+    extended::{
+        deserialize::{
+            parse_non_identity_des, DecryptedSection, EncryptedIdentityMetadata, EncryptionInfo,
+            SectionContents, SectionMic, VerificationMode,
+        },
+        section_signature_payload::*,
+        to_array_view, METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN,
+    },
+    V1Header, NP_SVC_UUID,
+};
+use array_view::ArrayView;
+use crypto_provider::{
+    aes::ctr::{AesCtr, AesCtrNonce, NonceAndCounter, AES_CTR_NONCE_LEN},
+    hmac::Hmac,
+    CryptoProvider,
+};
+use np_hkdf::v1_salt::V1Salt;
+
+#[cfg(test)]
+mod mic_decrypt_tests;
+#[cfg(test)]
+mod signature_decrypt_tests;
+
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct SignatureEncryptedSection<'a> {
+    pub(crate) section_header: u8,
+    pub(crate) adv_header: &'a V1Header,
+    pub(crate) encryption_info: EncryptionInfo,
+    pub(crate) identity: EncryptedIdentityMetadata,
+    /// All ciphertext (Contents of identity DE + all DEs)
+    /// Length must be in `[METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN]`.
+    pub(crate) all_ciphertext: &'a [u8],
+}
+
+impl<'a> SignatureEncryptedSection<'a> {
+    /// Decrypt the ciphertext and check that the first [METADATA_KEY_LEN] bytes match the expected HMAC.
+    /// The remaining data is not verified.
+    ///
+    /// Returns `Ok` if the section was an identity match.
+    /// Otherwise, returns `Err`.
+    pub(crate) fn try_decrypt<P: CryptoProvider>(
+        &self,
+        identity_resolution_material: &SignedSectionIdentityResolutionMaterial,
+    ) -> Result<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>, SignatureEncryptedSectionDeserializationError>
+    {
+        let salt: V1Salt<P> = self.encryption_info.salt().into();
+        let (mut buf, mut cipher) = try_decrypt_metadata_key_prefix::<P>(
+            self.all_ciphertext,
+            salt.derive(Some(self.identity.offset)).expect("AES-CTR nonce is a valid HKDF size"),
+            identity_resolution_material.as_raw_resolution_material(),
+        )
+        .ok_or(SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch)?;
+
+        // decrypt everything else
+        cipher.decrypt(&mut buf[METADATA_KEY_LEN..]);
+
+        Ok(to_array_view(buf))
+    }
+
+    /// Try deserializing into a [Section].
+    ///
+    /// Returns an error if the credential is incorrect or if the section data is malformed.
+    pub(crate) fn try_deserialize<P>(
+        &self,
+        identity_resolution_material: &SignedSectionIdentityResolutionMaterial,
+        verification_material: &SignedSectionVerificationMaterial,
+    ) -> Result<DecryptedSection, SignatureEncryptedSectionDeserializationError>
+    where
+        P: CryptoProvider,
+    {
+        let raw_salt = self.encryption_info.salt();
+        let salt: V1Salt<P> = raw_salt.into();
+        let plaintext = self.try_decrypt::<P>(identity_resolution_material)?;
+
+        // won't panic: plaintext length is at least METADATA_KEY_LEN
+        let (metadata_key, remaining) = plaintext.as_slice().split_at(METADATA_KEY_LEN);
+        let metadata_key =
+            metadata_key.try_into().expect("slice is the same length as the desired array");
+
+        if remaining.len() < crypto_provider::ed25519::SIGNATURE_LENGTH {
+            return Err(SignatureEncryptedSectionDeserializationError::SignatureMissing);
+        }
+
+        // should not panic due to above check
+        let (non_identity_des, sig) =
+            remaining.split_at(remaining.len() - crypto_provider::ed25519::SIGNATURE_LENGTH);
+
+        // de offset 2 because of leading encryption info and identity DEs
+        let (_, ref_des) = parse_non_identity_des(2)(non_identity_des)
+            .map_err(|_| SignatureEncryptedSectionDeserializationError::DeParseError)?;
+
+        // All implementations only check for 64 bytes, and this will always result in a 64 byte signature.
+        let expected_signature =
+            np_ed25519::Signature::<P>::try_from(sig).expect("Signature is always 64 bytes.");
+
+        let nonce = salt
+            .derive::<{ AES_CTR_NONCE_LEN }>(Some(self.identity.offset))
+            .expect("AES-CTR nonce is a valid HKDF length");
+
+        // all other plaintext, except for the signature.
+        // Won't panic because we know we just parsed the sig de from this,
+        // and we're using the as-parsed lengths
+        let remainder = &plaintext.as_slice()[..plaintext.len() - sig.len()];
+
+        let section_signature_payload = SectionSignaturePayload::from_deserialized_parts(
+            self.adv_header.header_byte,
+            self.section_header,
+            &self.encryption_info.bytes,
+            &nonce,
+            self.identity.header_bytes,
+            remainder,
+        );
+
+        let public_key = verification_material.signature_verification_public_key();
+
+        section_signature_payload.verify(&expected_signature, &public_key).map_err(|e| {
+            // Length of the payload should fit in the signature verification buffer.
+            debug_assert!(e != np_ed25519::SignatureVerificationError::PayloadTooBig);
+
+            SignatureEncryptedSectionDeserializationError::SignatureMismatch
+        })?;
+
+        Ok(DecryptedSection::new(
+            self.identity.identity_type,
+            VerificationMode::Signature,
+            metadata_key,
+            raw_salt,
+            SectionContents::new(self.section_header, &ref_des),
+        ))
+    }
+}
+
+/// Should not be exposed publicly as it's too detailed.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum SignatureEncryptedSectionDeserializationError {
+    /// The decrypted metadata key did not have the right MAC
+    MetadataKeyMacMismatch,
+    /// The provided signature did not match the calculated signature
+    SignatureMismatch,
+    /// The provided signature is missing
+    SignatureMissing,
+    /// Decrypted DEs could not be parsed, possibly because the ciphertext was tampered with, as
+    /// DE parsing has to be done before the signature is verified
+    DeParseError,
+}
+
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct MicEncryptedSection<'a> {
+    pub(crate) section_header: u8,
+    pub(crate) adv_header: &'a V1Header,
+    pub(crate) encryption_info: EncryptionInfo,
+    pub(crate) mic: SectionMic,
+    pub(crate) identity: EncryptedIdentityMetadata,
+    /// All ciphertext (Contents of identity DE + all DEs).
+    /// Length must be in `[METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN]`.
+    pub(crate) all_ciphertext: &'a [u8],
+}
+
+impl<'a> MicEncryptedSection<'a> {
+    /// Attempt to decrypt and verify the encrypted portion of the section with the provided
+    /// precalculated cryptographic material for an MIC-encrypted section.
+    ///
+    /// If successful, returns a buffer containing the decrypted plaintext.
+    pub(crate) fn try_decrypt<P: CryptoProvider>(
+        &self,
+        identity_resolution_material: &UnsignedSectionIdentityResolutionMaterial,
+        verification_material: &UnsignedSectionVerificationMaterial,
+    ) -> Result<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>, MicEncryptedSectionDeserializationError>
+    {
+        let salt: V1Salt<P> = self.encryption_info.salt().into();
+        let nonce =
+            salt.derive(Some(self.identity.offset)).expect("AES-CTR nonce is a valid HKDF size");
+
+        let (mut buf, mut cipher) = try_decrypt_metadata_key_prefix::<P>(
+            self.all_ciphertext,
+            nonce,
+            identity_resolution_material.as_raw_resolution_material(),
+        )
+        .ok_or(MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch)?;
+
+        // if mic is ok, the section was generated by someone holding at least the shared credential
+        let mut mic_hmac = verification_material.mic_hmac_key::<P>().build_hmac();
+        mic_hmac.update(&NP_SVC_UUID);
+        mic_hmac.update(&[self.adv_header.header_byte]);
+        mic_hmac.update(&[self.section_header]);
+        mic_hmac.update(&self.encryption_info.bytes);
+        mic_hmac.update(&nonce);
+        mic_hmac.update(&self.identity.header_bytes);
+        mic_hmac.update(self.all_ciphertext);
+        mic_hmac
+            // adv only contains first 16 bytes of HMAC
+            .verify_truncated_left(&self.mic.mic)
+            .map_err(|_e| MicEncryptedSectionDeserializationError::MicMismatch)?;
+
+        // decrypt everything else
+        cipher.decrypt(&mut buf[METADATA_KEY_LEN..]);
+
+        Ok(to_array_view(buf))
+    }
+
+    /// Try deserializing into a [Section].
+    ///
+    /// Returns an error if the credential is incorrect or if the section data is malformed.
+    pub(crate) fn try_deserialize<P>(
+        &self,
+        identity_resolution_material: &UnsignedSectionIdentityResolutionMaterial,
+        verification_material: &UnsignedSectionVerificationMaterial,
+    ) -> Result<DecryptedSection, MicEncryptedSectionDeserializationError>
+    where
+        P: CryptoProvider,
+    {
+        let plaintext =
+            self.try_decrypt::<P>(identity_resolution_material, verification_material)?;
+        // won't panic: plaintext is at least METADATA_KEY_LEN long
+        let (metadata_key, remaining_des) = plaintext.as_slice().split_at(METADATA_KEY_LEN);
+        let metadata_key =
+            metadata_key.try_into().expect("slice is the same length as the desired array");
+        // offset 2 for encryption info and identity DEs
+        let (_, ref_des) = parse_non_identity_des(2)(remaining_des)
+            .map_err(|_| MicEncryptedSectionDeserializationError::DeParseError)?;
+
+        Ok(DecryptedSection::new(
+            self.identity.identity_type,
+            VerificationMode::Mic,
+            metadata_key,
+            self.encryption_info.salt(),
+            SectionContents::new(self.section_header, &ref_des),
+        ))
+    }
+}
+
+/// Should not be exposed publicly as it's too detailed.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum MicEncryptedSectionDeserializationError {
+    /// Plaintext metadata key did not have the expected MAC
+    MetadataKeyMacMismatch,
+    /// Calculated MIC did not match MIC from section
+    MicMismatch,
+    /// Parsing of decrypted DEs failed
+    DeParseError,
+}
+
+/// Decrypt a ciphertext buffer whose first [METADATA_KEY_LEN] bytes of plaintext are, maybe, the
+/// metadata key for an NP identity.
+///
+/// Returns `Some` if decrypting the first [METADATA_KEY_LEN] bytes produces plaintext whose HMAC
+/// matches the expected MAC. Only the first [METADATA_KEY_LEN] bytes are decrypted. The cipher is
+/// returned along with the buffer as it is in the appropriate state to continue decrypting the
+/// remaining ciphertext.
+///
+/// Returns `None` if the plaintext does not match the expected HMAC.
+///
+/// # Panics
+///
+/// Panics if `ciphertext`'s length is not in `[METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN]`.
+#[allow(clippy::type_complexity)]
+fn try_decrypt_metadata_key_prefix<C: CryptoProvider>(
+    ciphertext: &[u8],
+    nonce: AesCtrNonce,
+    identity_resolution_material: &SectionIdentityResolutionMaterial,
+) -> Option<(tinyvec::ArrayVec<[u8; NP_ADV_MAX_SECTION_LEN]>, C::AesCtr128)> {
+    assert!(ciphertext.len() <= NP_ADV_MAX_SECTION_LEN);
+    let mut decrypt_buf = tinyvec::ArrayVec::<[u8; NP_ADV_MAX_SECTION_LEN]>::new();
+    let aes_key = &identity_resolution_material.aes_key;
+    let mut cipher = C::AesCtr128::new(aes_key, NonceAndCounter::from_nonce(nonce));
+
+    decrypt_buf.extend_from_slice(ciphertext);
+    cipher.decrypt(&mut decrypt_buf[..METADATA_KEY_LEN]);
+
+    let metadata_key_hmac_key: np_hkdf::NpHmacSha256Key<C> =
+        identity_resolution_material.metadata_key_hmac_key.into();
+    let expected_metadata_key_hmac = identity_resolution_material.expected_metadata_key_hmac;
+    metadata_key_hmac_key
+        .verify_hmac(&decrypt_buf[..METADATA_KEY_LEN], expected_metadata_key_hmac)
+        .ok()
+        .map(|_| (decrypt_buf, cipher))
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/signature_decrypt_tests.rs b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/signature_decrypt_tests.rs
new file mode 100644
index 0000000..b78cad9
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/signature_decrypt_tests.rs
@@ -0,0 +1,512 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crate::extended::data_elements::TxPowerDataElement;
+use crate::extended::deserialize::{DecryptedSection, EncryptionInfo, RawV1Salt};
+use crate::shared_data::TxPower;
+use crate::{
+    credential::v1::*,
+    de_type::EncryptedIdentityDataElementType,
+    extended::{
+        deserialize::{
+            encrypted_section::{
+                SignatureEncryptedSection, SignatureEncryptedSectionDeserializationError,
+            },
+            parse_sections,
+            test_stubs::IntermediateSectionExt,
+            CiphertextSection, EncryptedIdentityMetadata, OffsetDataElement, SectionContents,
+            VerificationMode,
+        },
+        section_signature_payload::*,
+        serialize::{
+            AdvBuilder, CapacityLimitedVec, SignedEncrypted, SingleTypeDataElement,
+            WriteDataElement,
+        },
+        NP_ADV_MAX_SECTION_LEN,
+    },
+    parse_adv_header, AdvHeader, Section,
+};
+use array_view::ArrayView;
+use crypto_provider::{aes::ctr::AesCtrNonce, CryptoProvider};
+use crypto_provider_default::CryptoProviderImpl;
+use np_hkdf::v1_salt;
+use np_hkdf::v1_salt::V1Salt;
+use sink::Sink;
+use std::{prelude::rust_2021::*, vec};
+
+type KeyPair = np_ed25519::KeyPair<CryptoProviderImpl>;
+
+#[test]
+fn deserialize_signature_encrypted_correct_keys() {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let raw_salt = RawV1Salt([3; 16]);
+    let section_salt = V1Salt::<CryptoProviderImpl>::from(raw_salt);
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let key_pair = KeyPair::generate();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new(
+            identity_type,
+            V1Salt::from(*section_salt.as_array_ref()),
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    let txpower_de = TxPowerDataElement::from(TxPower::try_from(7).unwrap());
+    section_builder.add_de(|_| txpower_de.clone()).unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let adv_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&adv_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let contents = if let CiphertextSection::SignatureEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    let mut encryption_info_bytes = [0_u8; 19];
+    encryption_info_bytes[0..2].copy_from_slice(&[0x91, 0x10]);
+    encryption_info_bytes[2] = 0x08;
+    encryption_info_bytes[3..].copy_from_slice(section_salt.as_slice());
+
+    let section_len = 19 + 2 + 16 + 2 + 64;
+    assert_eq!(
+        &SignatureEncryptedSection {
+            section_header: section_len,
+            adv_header: &adv_header,
+            encryption_info: EncryptionInfo { bytes: encryption_info_bytes },
+            identity: EncryptedIdentityMetadata {
+                header_bytes: [0x90, 0x1],
+                offset: 1.into(),
+                identity_type: EncryptedIdentityDataElementType::Private,
+            },
+            // adv header + salt + section header + encryption info + identity header
+            all_ciphertext: &adv.as_slice()[1 + 1 + 19 + 2..],
+        },
+        contents
+    );
+
+    // plaintext is correct
+    {
+        let crypto_material = MinimumFootprintV1CryptoMaterial::new::<CryptoProviderImpl>(
+            key_seed,
+            key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_pair.public(),
+        );
+        let signed_identity_resolution_material =
+            crypto_material.signed_identity_resolution_material::<CryptoProviderImpl>();
+        let decrypted = contents
+            .try_decrypt::<CryptoProviderImpl>(&signed_identity_resolution_material)
+            .unwrap();
+
+        let mut expected = metadata_key.as_slice().to_vec();
+        // battery de
+        expected.extend_from_slice(txpower_de.de_header().serialize().as_slice());
+        txpower_de.write_de_contents(&mut expected);
+
+        let nonce: AesCtrNonce = section_salt.derive(Some(1.into())).unwrap();
+
+        let mut encryption_info = vec![0x91, 0x10, 0x08];
+        encryption_info.extend_from_slice(section_salt.as_slice());
+        let encryption_info: [u8; EncryptionInfo::TOTAL_DE_LEN] =
+            encryption_info.try_into().unwrap();
+
+        let sig_payload = SectionSignaturePayload::from_deserialized_parts(
+            0x20,
+            section_len,
+            &encryption_info,
+            &nonce,
+            [0x90, 0x1],
+            &expected,
+        );
+
+        expected.extend_from_slice(&sig_payload.sign(&key_pair).to_bytes());
+
+        assert_eq!(&expected, decrypted.as_slice());
+    }
+
+    // deserialization to Section works
+    {
+        let crypto_material = MinimumFootprintV1CryptoMaterial::new::<CryptoProviderImpl>(
+            key_seed,
+            key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_pair.public(),
+        );
+        let signed_identity_resolution_material =
+            crypto_material.signed_identity_resolution_material::<CryptoProviderImpl>();
+        let signed_verification_material =
+            crypto_material.signed_verification_material::<CryptoProviderImpl>();
+
+        let section = contents
+            .try_deserialize::<CryptoProviderImpl>(
+                &signed_identity_resolution_material,
+                &signed_verification_material,
+            )
+            .unwrap();
+
+        assert_eq!(
+            DecryptedSection::new(
+                EncryptedIdentityDataElementType::Private,
+                VerificationMode::Signature,
+                metadata_key,
+                raw_salt,
+                SectionContents {
+                    section_header: 19 + 2 + 16 + 1 + 1 + 64,
+                    // battery DE
+                    de_data: ArrayView::try_from_slice(&[7]).unwrap(),
+                    data_elements: vec![OffsetDataElement {
+                        offset: 2.into(),
+                        de_type: 0x05_u8.into(),
+                        start_of_contents: 0,
+                        contents_len: 1,
+                    }],
+                },
+            ),
+            section
+        );
+
+        assert_eq!(
+            vec![(
+                v1_salt::DataElementOffset::from(2_usize),
+                TxPowerDataElement::DE_TYPE,
+                vec![7u8]
+            )],
+            section
+                .data_elements()
+                .map(|de| (de.offset(), de.de_type(), de.contents().to_vec()))
+                .collect::<Vec<_>>()
+        );
+    }
+}
+
+#[test]
+fn deserialize_signature_encrypted_incorrect_aes_key_error() {
+    // bad aes key -> bad metadata key plaintext
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        Some([0xFF; 16].into()),
+        None,
+        None,
+        None,
+    );
+}
+
+#[test]
+fn deserialize_signature_encrypted_incorrect_metadata_key_hmac_key_error() {
+    // bad metadata key hmac key -> bad calculated metadata key mac
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        None,
+        Some([0xFF; 32].into()),
+        None,
+        None,
+    );
+}
+
+#[test]
+fn deserialize_signature_encrypted_incorrect_expected_metadata_key_hmac_error() {
+    // bad expected metadata key mac
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        None,
+        None,
+        Some([0xFF; 32]),
+        None,
+    );
+}
+
+#[test]
+fn deserialize_signature_encrypted_incorrect_pub_key_error() {
+    // a random pub key will lead to signature mismatch
+    do_bad_deserialize_params::<CryptoProviderImpl>(
+        SignatureEncryptedSectionDeserializationError::SignatureMismatch,
+        None,
+        None,
+        None,
+        Some(KeyPair::generate().public()),
+    );
+}
+
+#[test]
+fn deserialize_signature_encrypted_incorrect_salt_error() {
+    // bad salt -> bad iv -> bad metadata key plaintext
+    do_bad_deserialize_tampered(
+        SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch,
+        None,
+        |_| {},
+        |adv_mut| adv_mut[5..21].copy_from_slice(&[0xFF; 16]),
+    )
+}
+
+#[test]
+fn deserialize_signature_encrypted_tampered_signature_error() {
+    do_bad_deserialize_tampered(
+        SignatureEncryptedSectionDeserializationError::SignatureMismatch,
+        None,
+        |_| {},
+        // flip a bit in the middle of the signature
+        |adv_mut| {
+            let len = adv_mut.len();
+            adv_mut[len - 30] ^= 0x1
+        },
+    )
+}
+
+#[test]
+fn deserialize_signature_encrypted_tampered_ciphertext_error() {
+    do_bad_deserialize_tampered(
+        SignatureEncryptedSectionDeserializationError::SignatureMismatch,
+        None,
+        |_| {},
+        // flip a bit outside of the signature
+        |adv_mut| {
+            let len = adv_mut.len();
+            adv_mut[len - 1 - 64] ^= 0x1
+        },
+    )
+}
+
+#[test]
+fn deserialize_signature_encrypted_missing_signature_de_error() {
+    let section_len = 19 + 2 + 16 + 1 + 1;
+    do_bad_deserialize_tampered(
+        SignatureEncryptedSectionDeserializationError::SignatureMissing,
+        Some(section_len),
+        |_| {},
+        |adv_mut| {
+            // chop off signature DE
+            adv_mut.truncate(adv_mut.len() - 64);
+            // fix section length
+            adv_mut[1] = section_len;
+        },
+    )
+}
+
+#[test]
+fn deserialize_signature_encrypted_des_wont_parse() {
+    do_bad_deserialize_tampered(
+        SignatureEncryptedSectionDeserializationError::DeParseError,
+        Some(19 + 2 + 16 + 1 + 1 + 64 + 1),
+        // add an impossible DE
+        |section| section.try_push(0xFF).unwrap(),
+        |_| {},
+    )
+}
+
+/// Attempt a deserialization that will fail when using the provided parameters for decryption only.
+/// `None` means use the correct value for that parameter.
+fn do_bad_deserialize_params<C: CryptoProvider>(
+    error: SignatureEncryptedSectionDeserializationError,
+    aes_key: Option<crypto_provider::aes::Aes128Key>,
+    metadata_key_hmac_key: Option<np_hkdf::NpHmacSha256Key<C>>,
+    expected_metadata_key_hmac: Option<[u8; 32]>,
+    pub_key: Option<np_ed25519::PublicKey<C>>,
+) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let section_salt: v1_salt::V1Salt<C> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
+    let key_pair = np_ed25519::KeyPair::<C>::generate();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new(
+            identity_type,
+            section_salt,
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    section_builder.add_de_res(|_| TxPower::try_from(2).map(TxPowerDataElement::from)).unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&v1_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let contents = if let CiphertextSection::SignatureEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    let signed_identity_resolution_material =
+        SignedSectionIdentityResolutionMaterial::from_raw(SectionIdentityResolutionMaterial {
+            aes_key: aes_key.unwrap_or_else(|| key_seed_hkdf.extended_signed_section_aes_key()),
+
+            metadata_key_hmac_key: *metadata_key_hmac_key
+                .unwrap_or_else(|| key_seed_hkdf.extended_signed_metadata_key_hmac_key())
+                .as_bytes(),
+            expected_metadata_key_hmac: expected_metadata_key_hmac.unwrap_or_else(|| {
+                key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key)
+            }),
+        });
+
+    let signed_verification_material = SignedSectionVerificationMaterial {
+        pub_key: pub_key.unwrap_or_else(|| key_pair.public()).to_bytes(),
+    };
+
+    assert_eq!(
+        error,
+        contents
+            .try_deserialize::<C>(
+                &signed_identity_resolution_material,
+                &signed_verification_material,
+            )
+            .unwrap_err()
+    );
+}
+
+/// Run a test that mangles the advertisement contents before attempting to deserialize.
+///
+/// Since the advertisement is ciphertext, only changes outside
+fn do_bad_deserialize_tampered<
+    A: Fn(&mut Vec<u8>),
+    S: Fn(&mut CapacityLimitedVec<u8, NP_ADV_MAX_SECTION_LEN>),
+>(
+    expected_error: SignatureEncryptedSectionDeserializationError,
+    expected_section_len: Option<u8>,
+    mangle_section: S,
+    mangle_adv_contents: A,
+) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let section_salt: v1_salt::V1Salt<CryptoProviderImpl> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
+    let key_pair = KeyPair::generate();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new(
+            identity_type,
+            section_salt,
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    section_builder.add_de_res(|_| TxPower::try_from(2).map(TxPowerDataElement::from)).unwrap();
+
+    mangle_section(&mut section_builder.section);
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+    let mut adv_mut = adv.as_slice().to_vec();
+    mangle_adv_contents(&mut adv_mut);
+
+    let (remaining, header) = parse_adv_header(&adv_mut).unwrap();
+
+    let adv_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&adv_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+
+    let section = sections.into_iter().next().unwrap();
+    let enc_section = section.as_ciphertext().unwrap();
+    let contents = if let CiphertextSection::SignatureEncryptedIdentity(contents) = &enc_section {
+        contents
+    } else {
+        panic!("incorrect flavor");
+    };
+
+    let mut encryption_info_bytes = [0_u8; 19];
+    encryption_info_bytes[0..2].copy_from_slice(&[0x91, 0x10]);
+    encryption_info_bytes[2] = 0x08;
+    encryption_info_bytes[3..].copy_from_slice(&adv_mut[5..21]);
+
+    let section_len = 19 + 2 + 16 + 2 + 64;
+    assert_eq!(
+        &SignatureEncryptedSection {
+            section_header: expected_section_len.unwrap_or(section_len),
+            adv_header: &adv_header,
+            encryption_info: EncryptionInfo { bytes: encryption_info_bytes },
+            identity: EncryptedIdentityMetadata {
+                header_bytes: [0x90, 0x1],
+                offset: 1.into(),
+                identity_type: EncryptedIdentityDataElementType::Private,
+            },
+            all_ciphertext: &adv_mut[1 + 1 + 19 + 2..],
+        },
+        contents
+    );
+
+    let crypto_material = MinimumFootprintV1CryptoMaterial::new::<CryptoProviderImpl>(
+        key_seed,
+        key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+        key_seed_hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+        key_pair.public(),
+    );
+    let identity_resolution_material =
+        crypto_material.signed_identity_resolution_material::<CryptoProviderImpl>();
+    let verification_material =
+        crypto_material.signed_verification_material::<CryptoProviderImpl>();
+
+    assert_eq!(
+        expected_error,
+        contents
+            .try_deserialize::<CryptoProviderImpl>(
+                &identity_resolution_material,
+                &verification_material,
+            )
+            .unwrap_err()
+    );
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/mod.rs b/nearby/presence/np_adv/src/extended/deserialize/mod.rs
new file mode 100644
index 0000000..1829ad6
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/mod.rs
@@ -0,0 +1,835 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Deserialization for V1 advertisement contents
+
+extern crate alloc;
+
+use alloc::vec::Vec;
+use core::array::TryFromSliceError;
+use core::borrow::Borrow;
+use core::slice;
+
+use nom::{branch, bytes, combinator, error, multi, number, sequence};
+use strum::IntoEnumIterator as _;
+
+use array_view::ArrayView;
+use crypto_provider::CryptoProvider;
+use np_hkdf::v1_salt::{self, V1Salt};
+
+use crate::extended::NP_V1_ADV_MAX_SECTION_COUNT;
+use crate::{
+    credential::{v1::*, V1Credential},
+    de_type::{EncryptedIdentityDataElementType, IdentityDataElementType},
+    extended::{
+        data_elements::{MIC_ENCRYPTION_SCHEME, SIGNATURE_ENCRYPTION_SCHEME},
+        de_type::{DeType, ExtendedDataElementType as _},
+        deserialize::encrypted_section::{
+            MicEncryptedSection, MicEncryptedSectionDeserializationError,
+            SignatureEncryptedSection, SignatureEncryptedSectionDeserializationError,
+        },
+        to_array_view, DeLength, ENCRYPTION_INFO_DE_TYPE, METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN,
+    },
+    PlaintextIdentityMode, V1Header,
+};
+
+mod encrypted_section;
+
+#[cfg(test)]
+mod parse_tests;
+
+#[cfg(test)]
+mod section_tests;
+
+#[cfg(test)]
+mod test_stubs;
+
+/// Parse into [IntermediateSection]s, exposing the underlying parsing errors.
+/// Consumes all of `adv_body`.
+pub(crate) fn parse_sections<'a, 'h: 'a>(
+    adv_header: &'h V1Header,
+    adv_body: &'a [u8],
+) -> Result<Vec<IntermediateSection<'a>>, nom::Err<error::Error<&'a [u8]>>> {
+    combinator::all_consuming(multi::many_m_n(
+        1,
+        NP_V1_ADV_MAX_SECTION_COUNT,
+        IntermediateSection::parser_with_header(adv_header),
+    ))(adv_body)
+    .map(|(_rem, sections)| sections)
+}
+
+/// A partially processed section that hasn't been decrypted (if applicable) yet.
+#[derive(PartialEq, Eq, Debug)]
+// sections are large because they have a stack allocated buffer for the whole section
+#[allow(clippy::large_enum_variant)]
+pub(crate) enum IntermediateSection<'a> {
+    /// A section that was not encrypted, e.g. a public identity or no-identity section.
+    Plaintext(PlaintextSection),
+    /// A section whose contents were encrypted, e.g. a private identity section.
+    Ciphertext(CiphertextSection<'a>),
+}
+
+impl<'a> IntermediateSection<'a> {
+    fn parser_with_header(
+        adv_header: &'a V1Header,
+    ) -> impl Fn(&'a [u8]) -> nom::IResult<&[u8], IntermediateSection> {
+        move |adv_body| {
+            let (remaining, section_contents_len) =
+                combinator::verify(number::complete::u8, |sec_len| {
+                    *sec_len as usize <= NP_ADV_MAX_SECTION_LEN && *sec_len as usize > 0
+                })(adv_body)?;
+
+            // Section structure possibilities:
+            // - Public Identity DE, all other DEs
+            // - No identity DE, all other DEs (including Salt, excluding identity DEs)
+            // - Encryption information, non-public Identity header, ciphertext
+            // - MIC, encryption information, non-public Identity header, ciphertext
+
+            let parse_public_identity = combinator::map(
+                // 1 starting offset because of public identity before it
+                sequence::tuple((PublicIdentity::parse, parse_non_identity_des(1))),
+                // move closure to copy section_len into scope
+                move |(_identity, des)| {
+                    IntermediateSection::Plaintext(PlaintextSection::new(
+                        PlaintextIdentityMode::Public,
+                        SectionContents::new(/* section_header */ section_contents_len, &des),
+                    ))
+                },
+            );
+
+            // 0 starting offset because there's no identity DE
+            let parse_no_identity_de = combinator::map(parse_non_identity_des(0), move |des| {
+                IntermediateSection::Plaintext(PlaintextSection::new(
+                    PlaintextIdentityMode::None,
+                    SectionContents::new(/* section_header */ section_contents_len, &des),
+                ))
+            });
+
+            let parse_encrypted_identity = combinator::map(
+                sequence::tuple((
+                    EncryptionInfo::parse_signature,
+                    combinator::verify(
+                        combinator::consumed(sequence::tuple((
+                            EncryptedIdentityMetadata::parser_at_offset(
+                                v1_salt::DataElementOffset::from(1),
+                            ),
+                            combinator::rest,
+                        ))),
+                        // should be trivially true since section length was checked above,
+                        // but this is an invariant for EncryptedSection, so we double check
+                        |(identity_and_ciphertext, _tuple)| {
+                            (METADATA_KEY_LEN..=NP_ADV_MAX_SECTION_LEN)
+                                .contains(&identity_and_ciphertext.len())
+                        },
+                    ),
+                )),
+                move |(encryption_info, (identity_and_ciphertext, (identity, _des_ciphertext)))| {
+                    // skip identity de header -- rest of that de is ciphertext
+                    let to_skip = identity.header_bytes.len();
+                    IntermediateSection::Ciphertext(CiphertextSection::SignatureEncryptedIdentity(
+                        SignatureEncryptedSection {
+                            section_header: section_contents_len,
+                            adv_header,
+                            encryption_info,
+                            identity,
+                            all_ciphertext: &identity_and_ciphertext[to_skip..],
+                        },
+                    ))
+                },
+            );
+
+            let parse_mic_encrypted_identity = combinator::map(
+                sequence::tuple((
+                    EncryptionInfo::parse_mic,
+                    combinator::verify(
+                        combinator::consumed(sequence::tuple((
+                            EncryptedIdentityMetadata::parser_at_offset(
+                                v1_salt::DataElementOffset::from(1),
+                            ),
+                            combinator::rest,
+                        ))),
+                        // Should be trivially true since section length was checked above,
+                        // but this is an invariant for MicEncryptedSection, so we double check.
+                        // Also verify that there is enough space at the end to contain a valid-length MIC.
+                        |(identity_ciphertext_and_mic, _tuple)| {
+                            (METADATA_KEY_LEN + SectionMic::CONTENTS_LEN..=NP_ADV_MAX_SECTION_LEN)
+                                .contains(&identity_ciphertext_and_mic.len())
+                        },
+                    ),
+                )),
+                move |(
+                    encryption_info,
+                    (identity_ciphertext_and_mic, (identity, _ciphertext_and_mic)),
+                )| {
+                    // should not panic since we have already ensured a valid length
+                    let (identity_and_ciphertext, mic) = identity_ciphertext_and_mic
+                        .split_at(identity_ciphertext_and_mic.len() - SectionMic::CONTENTS_LEN);
+                    // skip identity de header -- rest of that de is ciphertext
+                    let to_skip = identity.header_bytes.len();
+                    IntermediateSection::Ciphertext(CiphertextSection::MicEncryptedIdentity(
+                        MicEncryptedSection {
+                            section_header: section_contents_len,
+                            adv_header,
+                            mic: mic.try_into().unwrap_or_else(|_| {
+                                panic!("{} is a valid length", SectionMic::CONTENTS_LEN)
+                            }),
+                            encryption_info,
+                            identity,
+                            all_ciphertext: &identity_and_ciphertext[to_skip..],
+                        },
+                    ))
+                },
+            );
+
+            combinator::map_parser(
+                bytes::complete::take(section_contents_len),
+                // guarantee we consume all of the section (not all of the adv body)
+                combinator::all_consuming(branch::alt((
+                    parse_mic_encrypted_identity,
+                    parse_encrypted_identity,
+                    parse_public_identity,
+                    parse_no_identity_de,
+                ))),
+            )(remaining)
+        }
+    }
+}
+
+#[derive(PartialEq, Eq, Debug)]
+struct SectionContents {
+    section_header: u8,
+    de_data: ArrayView<u8, NP_ADV_MAX_SECTION_LEN>,
+    data_elements: Vec<OffsetDataElement>,
+}
+
+impl SectionContents {
+    fn new(section_header: u8, data_elements: &[RefDataElement]) -> Self {
+        let (data_elements, de_data) = convert_data_elements(data_elements);
+
+        Self { section_header, de_data, data_elements }
+    }
+
+    fn data_elements(&'_ self) -> DataElements<'_> {
+        DataElements { de_iter: self.data_elements.iter(), de_data: &self.de_data }
+    }
+}
+
+/// An iterator over data elements in a V1 section
+// A concrete type to make it easy to refer to in return types where opaque types aren't available.
+pub struct DataElements<'a> {
+    de_iter: slice::Iter<'a, OffsetDataElement>,
+    de_data: &'a ArrayView<u8, NP_ADV_MAX_SECTION_LEN>,
+}
+
+impl<'a> Iterator for DataElements<'a> {
+    type Item = DataElement<'a>;
+
+    fn next(&mut self) -> Option<Self::Item> {
+        self.de_iter.next().map(|de| DataElement { de_data: self.de_data, de })
+    }
+}
+
+/// A section deserialized from a V1 advertisement.
+pub trait Section {
+    /// The iterator type used to iterate over data elements
+    type Iterator<'a>: Iterator<Item = DataElement<'a>>
+    where
+        Self: 'a;
+
+    /// Iterator over the data elements in a section, except for any DEs related to resolving the
+    /// identity or otherwise validating the payload (e.g. MIC, Signature, any identity DEs like
+    /// Private Identity).
+    fn data_elements(&'_ self) -> Self::Iterator<'_>;
+}
+
+/// A plaintext section deserialized from a V1 advertisement.
+#[derive(PartialEq, Eq, Debug)]
+pub struct PlaintextSection {
+    identity: PlaintextIdentityMode,
+    contents: SectionContents,
+}
+
+impl PlaintextSection {
+    fn new(identity: PlaintextIdentityMode, contents: SectionContents) -> Self {
+        Self { identity, contents }
+    }
+
+    /// The identity mode for the section.
+    ///
+    /// Since plaintext sections do not use encryption, they cannot be matched to a single identity,
+    /// and only have a mode (no identity or public).
+    pub fn identity(&self) -> PlaintextIdentityMode {
+        self.identity
+    }
+}
+
+impl Section for PlaintextSection {
+    type Iterator<'a>  = DataElements<'a> where Self: 'a;
+
+    fn data_elements(&'_ self) -> Self::Iterator<'_> {
+        self.contents.data_elements()
+    }
+}
+
+/// A byte buffer the size of a V1 salt.
+#[derive(Copy, Clone, Debug, PartialEq, Eq)]
+pub struct RawV1Salt([u8; 16]);
+
+impl RawV1Salt {
+    /// Returns the raw salt bytes as a vec.
+    #[cfg(feature = "devtools")]
+    pub fn to_vec(&self) -> Vec<u8> {
+        self.0.to_vec()
+    }
+}
+
+impl<C: CryptoProvider> From<RawV1Salt> for V1Salt<C> {
+    fn from(raw_salt: RawV1Salt) -> Self {
+        raw_salt.0.into()
+    }
+}
+
+/// The decrypted contents of a ciphertext section.
+#[derive(Debug, PartialEq, Eq)]
+pub struct DecryptedSection {
+    identity_type: EncryptedIdentityDataElementType,
+    verification_mode: VerificationMode,
+    metadata_key: [u8; METADATA_KEY_LEN],
+    salt: RawV1Salt,
+    contents: SectionContents,
+}
+
+impl DecryptedSection {
+    fn new(
+        identity_type: EncryptedIdentityDataElementType,
+        verification_mode: VerificationMode,
+        metadata_key: [u8; 16],
+        salt: RawV1Salt,
+        contents: SectionContents,
+    ) -> Self {
+        Self { identity_type, verification_mode, metadata_key, salt, contents }
+    }
+
+    /// The type of identity DE used in the section.
+    pub fn identity_type(&self) -> EncryptedIdentityDataElementType {
+        self.identity_type
+    }
+
+    /// The verification mode used in the section.
+    pub fn verification_mode(&self) -> VerificationMode {
+        self.verification_mode
+    }
+
+    /// The decrypted metadata key from the identity DE.
+    pub fn metadata_key(&self) -> &[u8; 16] {
+        &self.metadata_key
+    }
+
+    /// The salt used for decryption of this advertisement.
+    pub fn salt(&self) -> RawV1Salt {
+        self.salt
+    }
+}
+
+impl Section for DecryptedSection {
+    type Iterator<'a>  = DataElements<'a> where Self: 'a;
+
+    fn data_elements(&'_ self) -> Self::Iterator<'_> {
+        self.contents.data_elements()
+    }
+}
+
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) enum CiphertextSection<'a> {
+    SignatureEncryptedIdentity(SignatureEncryptedSection<'a>),
+    MicEncryptedIdentity(MicEncryptedSection<'a>),
+}
+
+impl<'a> CiphertextSection<'a> {
+    pub(crate) fn try_deserialize<'c, C, P>(
+        &'a self,
+        credential: &'c C,
+    ) -> Result<DecryptedSection, SectionDeserializeError>
+    where
+        C: V1Credential,
+        P: CryptoProvider,
+    {
+        let crypto_material = credential.crypto_material();
+        match self {
+            Self::SignatureEncryptedIdentity(contents) => {
+                let identity_resolution_material =
+                    crypto_material.signed_identity_resolution_material::<P>();
+                let verification_material = crypto_material.signed_verification_material::<P>();
+
+                contents
+                    .try_deserialize::<P>(
+                        identity_resolution_material.borrow(),
+                        &verification_material,
+                    )
+                    .map_err(|e| match e {
+                        SignatureEncryptedSectionDeserializationError::MetadataKeyMacMismatch
+                        | SignatureEncryptedSectionDeserializationError::SignatureMismatch => {
+                            SectionDeserializeError::IncorrectCredential
+                        }
+                        SignatureEncryptedSectionDeserializationError::SignatureMissing
+                        | SignatureEncryptedSectionDeserializationError::DeParseError => {
+                            SectionDeserializeError::ParseError
+                        }
+                    })
+            }
+            Self::MicEncryptedIdentity(contents) => {
+                let identity_resolution_material =
+                    crypto_material.unsigned_identity_resolution_material::<P>();
+                let verification_material = crypto_material.unsigned_verification_material::<P>();
+
+                contents
+                    .try_deserialize::<P>(
+                        identity_resolution_material.borrow(),
+                        &verification_material,
+                    )
+                    .map_err(|e| match e {
+                        MicEncryptedSectionDeserializationError::MetadataKeyMacMismatch
+                        | MicEncryptedSectionDeserializationError::MicMismatch => {
+                            SectionDeserializeError::IncorrectCredential
+                        }
+                        MicEncryptedSectionDeserializationError::DeParseError => {
+                            SectionDeserializeError::ParseError
+                        }
+                    })
+            }
+        }
+    }
+}
+
+/// Errors that can occur when deserializing an advertisement
+#[derive(Debug, PartialEq, Eq)]
+pub enum SectionDeserializeError {
+    /// The credential supplied did not match the section's identity data
+    IncorrectCredential,
+    /// Section data is malformed
+    ParseError,
+}
+
+/// Returns a parser function that parses data elements whose type is not one of the known identity
+/// DE types, and whose offsets start from the provided `starting_offset`.
+///
+/// Consumes all input.
+fn parse_non_identity_des(
+    starting_offset: usize,
+) -> impl Fn(&[u8]) -> nom::IResult<&[u8], Vec<RefDataElement>> {
+    move |input: &[u8]| {
+        combinator::map_opt(
+            combinator::all_consuming(multi::many0(combinator::verify(
+                ProtoDataElement::parse,
+                |de| IdentityDataElementType::iter().all(|t| t.type_code() != de.header.de_type),
+            ))),
+            |proto_des| {
+                proto_des
+                    .into_iter()
+                    .enumerate()
+                    .map(|(offset, pde)| starting_offset.checked_add(offset).map(|sum| (sum, pde)))
+                    .map(|res| {
+                        res.map(|(offset, pde)| {
+                            pde.into_data_element(v1_salt::DataElementOffset::from(offset))
+                        })
+                    })
+                    .collect::<Option<Vec<_>>>()
+            },
+        )(input)
+    }
+}
+
+/// Deserialize-specific version of a DE header that incorporates the header length.
+/// This is needed for encrypted identities that need to construct a slice of everything in the
+/// section following the identity DE header.
+#[derive(Debug, PartialEq, Eq, Clone)]
+pub(crate) struct DeHeader {
+    /// The original bytes of the header, at most 6 bytes long (1 byte len, 5 bytes type)
+    pub(crate) header_bytes: ArrayView<u8, 6>,
+    pub(crate) de_type: DeType,
+    pub(crate) contents_len: DeLength,
+}
+
+impl DeHeader {
+    pub(crate) fn parse(input: &[u8]) -> nom::IResult<&[u8], DeHeader> {
+        // 1-byte header: 0b0LLLTTTT
+        let parse_single_byte_de_header =
+            combinator::map_opt::<&[u8], _, DeHeader, error::Error<&[u8]>, _, _>(
+                combinator::consumed(combinator::map_res(
+                    combinator::verify(number::complete::u8, |&b| !hi_bit_set(b)),
+                    |b| {
+                        // L bits
+                        let len = (b >> 4) & 0x07;
+                        // T bits
+                        let de_type = ((b & 0x0F) as u32).into();
+
+                        len.try_into().map(|l| (l, de_type))
+                    },
+                )),
+                |(header_bytes, (len, de_type))| {
+                    ArrayView::try_from_slice(header_bytes).map(|header_bytes| DeHeader {
+                        header_bytes,
+                        contents_len: len,
+                        de_type,
+                    })
+                },
+            );
+
+        // multi-byte headers: 0b1LLLLLLL (0b1TTTTTTT)* 0b0TTTTTTT
+        // leading 1 in first byte = multibyte format
+        // leading 1 in subsequent bytes = there is at least 1 more type bytes
+        // leading 0 = this is the last header byte
+        // 127-bit length, effectively infinite type bit length
+
+        // It's conceivable to have non-canonical extended type sequences where 1 or more leading
+        // bytes don't have any bits set (other than the marker hi bit), thereby contributing nothing
+        // to the final value.
+        // To prevent that, we require that either there be only 1 type byte, or that the first of the
+        // multiple type bytes must have a value bit set. It's OK to have no value bits in subsequent
+        // type bytes.
+
+        let parse_ext_de_header = combinator::map_opt(
+            combinator::consumed(sequence::pair(
+                // length byte w/ leading 1
+                combinator::map_res(
+                    combinator::verify(number::complete::u8::<&[u8], _>, |&b| hi_bit_set(b)),
+                    // snag the lower 7 bits
+                    |b| (b & 0x7F).try_into(),
+                ),
+                branch::alt((
+                    // 1 type byte case
+                    combinator::recognize(
+                        // 0-hi-bit type code byte
+                        combinator::verify(number::complete::u8, |&b| !hi_bit_set(b)),
+                    ),
+                    // multiple type byte case: leading type byte must have at least 1 value bit
+                    combinator::recognize(sequence::tuple((
+                        // hi bit and at least 1 value bit, otherwise it would be non-canonical
+                        combinator::verify(number::complete::u8, |&b| {
+                            hi_bit_set(b) && (b & 0x7F != 0)
+                        }),
+                        // 0-3 1-hi-bit type code bytes with any bit pattern. Max is 3 since two 7
+                        // bit type chunks are processed before and after this, for a total of 5,
+                        // and that's as many 7-bit chunks as are needed to support a 32-bit type.
+                        bytes::complete::take_while_m_n(0, 3, hi_bit_set),
+                        // final 0-hi-bit type code byte
+                        combinator::verify(number::complete::u8, |&b| !hi_bit_set(b)),
+                    ))),
+                )),
+            )),
+            |(header_bytes, (len, type_bytes))| {
+                // snag the low 7 bits of each type byte and accumulate
+
+                type_bytes
+                    .iter()
+                    .fold(Some(0_u32), |accum, b| {
+                        accum.and_then(|n| n.checked_shl(7)).map(|n| n + ((b & 0x7F) as u32))
+                    })
+                    .and_then(|type_code| {
+                        ArrayView::try_from_slice(header_bytes).map(|header_bytes| DeHeader {
+                            header_bytes,
+                            contents_len: len,
+                            de_type: type_code.into(),
+                        })
+                    })
+            },
+        );
+
+        branch::alt((parse_single_byte_de_header, parse_ext_de_header))(input)
+    }
+}
+
+/// An intermediate stage in parsing a [DataElement] that lacks `offset`.
+#[derive(Debug, PartialEq, Eq)]
+struct ProtoDataElement<'d> {
+    header: DeHeader,
+    /// `len()` must equal `header.contents_len`
+    contents: &'d [u8],
+}
+
+impl<'d> ProtoDataElement<'d> {
+    fn parse(input: &[u8]) -> nom::IResult<&[u8], ProtoDataElement> {
+        let (remaining, header) = DeHeader::parse(input)?;
+        let len = header.contents_len;
+        combinator::map(bytes::complete::take(len.as_usize()), move |slice| {
+            let header_clone = header.clone();
+            ProtoDataElement { header: header_clone, contents: slice }
+        })(remaining)
+    }
+
+    fn into_data_element(self, offset: v1_salt::DataElementOffset) -> RefDataElement<'d> {
+        RefDataElement {
+            offset,
+            header_len: self.header.header_bytes.len().try_into().expect("header is <= 6 bytes"),
+            de_type: self.header.de_type,
+            contents: self.contents,
+        }
+    }
+}
+
+/// A data element that holds a slice reference for its contents
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) struct RefDataElement<'d> {
+    pub(crate) offset: v1_salt::DataElementOffset,
+    pub(crate) header_len: u8,
+    pub(crate) de_type: DeType,
+    pub(crate) contents: &'d [u8],
+}
+
+/// A deserialized data element in a section.
+///
+/// The DE has been processed to the point of exposing a DE type and its contents as a `&[u8]`, but
+/// no DE-type-specific processing has been performed.
+#[derive(Debug)]
+pub struct DataElement<'a> {
+    de_data: &'a ArrayView<u8, NP_ADV_MAX_SECTION_LEN>,
+    de: &'a OffsetDataElement,
+}
+
+impl<'a> DataElement<'a> {
+    /// The offset of the DE in its containing Section.
+    ///
+    /// Used with the section salt to derive per-DE salt.
+    pub fn offset(&self) -> v1_salt::DataElementOffset {
+        self.de.offset
+    }
+    /// The type of the DE
+    pub fn de_type(&self) -> DeType {
+        self.de.de_type
+    }
+    /// The contents of the DE
+    pub fn contents(&self) -> &[u8] {
+        &self.de_data.as_slice()
+            [self.de.start_of_contents..self.de.start_of_contents + self.de.contents_len]
+    }
+}
+
+/// The level of integrity protection in an encrypted section
+#[derive(Clone, Copy, PartialEq, Eq, Debug)]
+pub enum VerificationMode {
+    /// A symmetric MIC (message integrity code aka message authentication code) was verified.
+    ///
+    /// Since this is a symmetric operation, holders of the key material needed to verify a MIC
+    /// can also forge MICs.
+    Mic,
+    /// An asymmetric signature was verified.
+    ///
+    /// Since this is an asymmetric operation, only the holder of the private key can generate
+    /// signatures, so it offers a stronger level of authenticity protection than [Self::Mic].
+    Signature,
+}
+
+/// The identity used to successfully decrypt and validate an encrypted section
+#[derive(Clone, PartialEq, Eq, Debug)]
+pub struct EncryptedSectionIdentity {
+    identity_type: EncryptedIdentityDataElementType,
+    validation_mode: VerificationMode,
+    metadata_key: [u8; METADATA_KEY_LEN],
+}
+
+impl EncryptedSectionIdentity {
+    /// The type of identity DE used in the section
+    pub fn identity_type(&self) -> EncryptedIdentityDataElementType {
+        self.identity_type
+    }
+    /// The validation mode used when decrypting and verifying the section
+    pub fn verification_mode(&self) -> VerificationMode {
+        self.validation_mode
+    }
+    /// The decrypted metadata key from the section's identity DE
+    pub fn metadata_key(&self) -> &[u8; METADATA_KEY_LEN] {
+        &self.metadata_key
+    }
+}
+
+/// A DE that designates its contents via offset and length to avoid self-referential slices.
+#[derive(Debug, PartialEq, Eq)]
+struct OffsetDataElement {
+    offset: v1_salt::DataElementOffset,
+    de_type: DeType,
+    start_of_contents: usize,
+    contents_len: usize,
+}
+
+/// Convert data elements from holding slices to holding offsets and lengths to avoid
+/// lifetime woes.
+/// This entails some data copying, so if it causes noticeable perf issues we can revisit
+/// it, but it is likely to be much cheaper than decryption.
+///
+/// # Panics
+///
+/// Will panic if handed more data elements than fit in one section. This is only possible if
+/// generating data elements from a source other than parsing a section.
+fn convert_data_elements(
+    elements: &[RefDataElement],
+) -> (Vec<OffsetDataElement>, ArrayView<u8, NP_ADV_MAX_SECTION_LEN>) {
+    let mut buf = tinyvec::ArrayVec::new();
+
+    (
+        elements
+            .iter()
+            .map(|de| {
+                let current_len = buf.len();
+                // won't overflow because these DEs originally came from a section, and now
+                // we're packing only their contents without DE headers
+                buf.extend_from_slice(de.contents);
+                OffsetDataElement {
+                    offset: de.offset,
+                    de_type: de.de_type,
+                    start_of_contents: current_len,
+                    contents_len: de.contents.len(),
+                }
+            })
+            .collect(),
+        to_array_view(buf),
+    )
+}
+
+#[derive(PartialEq, Eq, Debug, Clone)]
+pub(crate) struct EncryptionInfo {
+    pub bytes: [u8; 19],
+}
+
+impl EncryptionInfo {
+    // 2-byte header, 1-byte encryption scheme, 16-byte salt
+    pub(crate) const TOTAL_DE_LEN: usize = 19;
+    const CONTENTS_LEN: usize = 17;
+    const ENCRYPTION_INFO_SCHEME_MASK: u8 = 0b01111000;
+
+    fn parse_signature(input: &[u8]) -> nom::IResult<&[u8], EncryptionInfo> {
+        Self::parser_for_scheme(SIGNATURE_ENCRYPTION_SCHEME)(input)
+    }
+
+    fn parse_mic(input: &[u8]) -> nom::IResult<&[u8], EncryptionInfo> {
+        Self::parser_for_scheme(MIC_ENCRYPTION_SCHEME)(input)
+    }
+
+    fn parser_for_scheme(
+        expected_scheme: u8,
+    ) -> impl Fn(&[u8]) -> nom::IResult<&[u8], EncryptionInfo> {
+        move |input| {
+            combinator::map_res(
+                combinator::consumed(combinator::map_parser(
+                    combinator::map(
+                        combinator::verify(ProtoDataElement::parse, |de| {
+                            de.header.de_type == ENCRYPTION_INFO_DE_TYPE
+                                && de.contents.len() == Self::CONTENTS_LEN
+                        }),
+                        |de| de.contents,
+                    ),
+                    sequence::tuple((
+                        combinator::verify(number::complete::be_u8, |scheme: &u8| {
+                            expected_scheme == (Self::ENCRYPTION_INFO_SCHEME_MASK & scheme)
+                        }),
+                        bytes::complete::take(16_usize),
+                    )),
+                )),
+                |(bytes, _contents)| bytes.try_into(),
+            )(input)
+        }
+    }
+
+    fn salt(&self) -> RawV1Salt {
+        // should never panic
+        RawV1Salt(self.bytes[Self::TOTAL_DE_LEN - 16..].try_into().ok().unwrap())
+    }
+}
+
+impl TryFrom<&[u8]> for EncryptionInfo {
+    type Error = TryFromSliceError;
+
+    fn try_from(value: &[u8]) -> Result<Self, Self::Error> {
+        value.try_into().map(|fixed_bytes: [u8; 19]| Ok(Self { bytes: fixed_bytes }))?
+    }
+}
+
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct SectionMic {
+    mic: [u8; 16],
+}
+
+impl SectionMic {
+    // 16-byte metadata key
+    pub(crate) const CONTENTS_LEN: usize = 16;
+}
+
+impl From<[u8; 16]> for SectionMic {
+    fn from(value: [u8; 16]) -> Self {
+        SectionMic { mic: value }
+    }
+}
+
+impl TryFrom<&[u8]> for SectionMic {
+    type Error = TryFromSliceError;
+
+    fn try_from(value: &[u8]) -> Result<Self, Self::Error> {
+        let fixed_bytes: [u8; SectionMic::CONTENTS_LEN] = value.try_into()?;
+        Ok(Self { mic: fixed_bytes })
+    }
+}
+
+#[derive(PartialEq, Eq, Debug)]
+struct PublicIdentity;
+
+impl PublicIdentity {
+    fn parse(input: &[u8]) -> nom::IResult<&[u8], PublicIdentity> {
+        combinator::map(
+            combinator::verify(DeHeader::parse, |deh| {
+                deh.de_type == IdentityDataElementType::Public.type_code()
+                    && deh.contents_len.as_usize() == 0
+            }),
+            |_| PublicIdentity,
+        )(input)
+    }
+}
+
+/// Parsed form of an encrypted identity DE before its contents are decrypted.
+/// Metadata key is stored in the enclosing section.
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct EncryptedIdentityMetadata {
+    pub(crate) offset: v1_salt::DataElementOffset,
+    /// The original DE header from the advertisement.
+    /// Encrypted identity should always be a len=2 header.
+    pub(crate) header_bytes: [u8; 2],
+    pub(crate) identity_type: EncryptedIdentityDataElementType,
+}
+
+impl EncryptedIdentityMetadata {
+    // 2-byte header, 16-byte metadata key
+    pub(crate) const TOTAL_DE_LEN: usize = 18;
+
+    /// Returns a parser function that parses an [EncryptedIdentity] using the provided DE `offset`.
+    fn parser_at_offset(
+        offset: v1_salt::DataElementOffset,
+    ) -> impl Fn(&[u8]) -> nom::IResult<&[u8], EncryptedIdentityMetadata> {
+        move |input| {
+            combinator::map_opt(ProtoDataElement::parse, |de| {
+                EncryptedIdentityDataElementType::from_type_code(de.header.de_type).and_then(
+                    |identity_type| {
+                        de.header.header_bytes.as_slice().try_into().ok().and_then(|header_bytes| {
+                            de.contents.try_into().ok().map(|_metadata_key_ciphertext: [u8; 16]| {
+                                // ensure the ciphertext is the right size, then discard
+                                EncryptedIdentityMetadata { header_bytes, offset, identity_type }
+                            })
+                        })
+                    },
+                )
+            })(input)
+        }
+    }
+}
+
+fn hi_bit_set(b: u8) -> bool {
+    b & 0x80 > 0
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/parse_tests.rs b/nearby/presence/np_adv/src/extended/deserialize/parse_tests.rs
new file mode 100644
index 0000000..f3b8258
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/parse_tests.rs
@@ -0,0 +1,724 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::extended::deserialize::encrypted_section::{
+    MicEncryptedSection, SignatureEncryptedSection,
+};
+use std::vec;
+
+#[test]
+fn parse_adv_ext_no_identity() {
+    // 2 sections, 2 DEs each
+    let mut adv_body = vec![];
+    // section
+    adv_body.push(9);
+    // de 1 byte header, type 5, len 5
+    adv_body.extend_from_slice(&[0x55, 0x01, 0x02, 0x03, 0x04, 0x05]);
+    // de 2 byte header, type 6, len 1
+    adv_body.extend_from_slice(&[0x81, 0x06, 0x01]);
+
+    // section
+    adv_body.push(11);
+    // de 3 byte header, len 4
+    adv_body.extend_from_slice(&[0x84, 0xC3, 0x03, 0x01, 0x02, 0x03, 0x04]);
+    // de 1 byte header, type 8, len 3
+    adv_body.extend_from_slice(&[0x38, 0x01, 0x02, 0x03]);
+
+    assert_eq!(
+        Ok(vec![
+            PlaintextSection::new(
+                PlaintextIdentityMode::None,
+                SectionContents::new(
+                    9,
+                    &[
+                        // 1 byte header, len 5
+                        RefDataElement {
+                            offset: 0_usize.into(),
+                            header_len: 1,
+                            de_type: 5_u8.into(),
+                            contents: &[0x01, 0x02, 0x03, 0x04, 0x05]
+                        },
+                        // 2 byte header, len 1
+                        RefDataElement {
+                            offset: 1_usize.into(),
+                            header_len: 2,
+                            de_type: 6_u8.into(),
+                            contents: &[0x01]
+                        }
+                    ]
+                )
+            )
+            .into(),
+            PlaintextSection::new(
+                PlaintextIdentityMode::None,
+                SectionContents::new(
+                    11,
+                    &[
+                        // 3 byte header, len 4
+                        RefDataElement {
+                            offset: 0_usize.into(),
+                            header_len: 3,
+                            de_type: 0b0000_0000_0000_0000_0010_0001_1000_0011_u32.into(),
+                            contents: &[0x01, 0x02, 0x03, 0x04]
+                        },
+                        // 1 byte header, len 3
+                        RefDataElement {
+                            offset: 1_usize.into(),
+                            header_len: 1,
+                            de_type: 8_u8.into(),
+                            contents: &[0x01, 0x02, 0x03]
+                        }
+                    ]
+                )
+            )
+            .into()
+        ]),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn parse_adv_ext_public_identity() {
+    // 2 sections, 3 DEs each
+    let mut adv_body = vec![];
+    // section
+    adv_body.push(10);
+    // public identity
+    adv_body.push(0x03);
+    // de 1 byte header, type 5, len 5
+    adv_body.extend_from_slice(&[0x55, 0x01, 0x02, 0x03, 0x04, 0x05]);
+    // de 2 byte header, type 6, len 1
+    adv_body.extend_from_slice(&[0x81, 0x06, 0x01]);
+
+    // section
+    adv_body.push(12);
+    // public identity
+    adv_body.push(0x03);
+    // de 3 byte header, len 4
+    adv_body.extend_from_slice(&[0x84, 0xC3, 0x03, 0x01, 0x02, 0x03, 0x04]);
+    // de 1 byte header, type 8, len 3
+    adv_body.extend_from_slice(&[0x38, 0x01, 0x02, 0x03]);
+
+    assert_eq!(
+        Ok(vec![
+            PlaintextSection::new(
+                PlaintextIdentityMode::Public,
+                SectionContents::new(
+                    10,
+                    &[
+                        // 1 byte header, len 5
+                        RefDataElement {
+                            offset: 1_usize.into(),
+                            header_len: 1,
+                            de_type: 5_u8.into(),
+                            contents: &[0x01, 0x02, 0x03, 0x04, 0x05],
+                        },
+                        // 2 byte header, len 1
+                        RefDataElement {
+                            offset: 2_usize.into(),
+                            header_len: 2,
+                            de_type: 6_u8.into(),
+                            contents: &[0x01],
+                        },
+                    ],
+                )
+            )
+            .into(),
+            PlaintextSection::new(
+                PlaintextIdentityMode::Public,
+                SectionContents::new(
+                    12,
+                    &[
+                        // 3 byte header, len 4
+                        RefDataElement {
+                            offset: 1_usize.into(),
+                            header_len: 3,
+                            de_type: 0b0000_0000_0000_0000_0010_0001_1000_0011_u32.into(),
+                            contents: &[0x01, 0x02, 0x03, 0x04],
+                        },
+                        // 1 byte header, len 3
+                        RefDataElement {
+                            offset: 2_usize.into(),
+                            header_len: 1,
+                            de_type: 8_u8.into(),
+                            contents: &[0x01, 0x02, 0x03],
+                        },
+                    ],
+                )
+            )
+            .into(),
+        ]),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn parse_adv_ext_identity() {
+    // 3 sections
+    let mut adv_body = vec![];
+    // section - 48 bytes total
+    adv_body.push(19 + 18 + 10);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x08, // scheme (signature)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // private identity -- 2 + 16x 0x33
+    adv_body.extend_from_slice(&[
+        0x90, 0x01, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+        0x33, 0x33, 0x33,
+    ]);
+    // 10 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 10]);
+
+    // section - 49 bytes total
+    adv_body.push(19 + 18 + 11);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x08, // scheme (signature)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // trusted identity -- 2 + 16x 0x55
+    adv_body.extend_from_slice(&[
+        0x90, 0x02, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55,
+    ]);
+    // 11 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 11]);
+
+    // section - 50 bytes total
+    adv_body.push(19 + 18 + 12);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x08, // scheme (signature)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // provisioned identity -- 2 + 16x 0x77
+    adv_body.extend_from_slice(&[
+        0x90, 0x04, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+        0x77, 0x77, 0x77,
+    ]);
+    // 12 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 12]);
+
+    let adv_header = V1Header { header_byte: 0x20 };
+    let encryption_info = EncryptionInfo {
+        bytes: [
+            0x91, 0x10, // header bytes
+            0x08, // scheme (signature)
+            0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+            0x11, 0x11,
+        ],
+    };
+    assert_eq!(
+        Ok(vec![
+            SignatureEncryptedSection {
+                section_header: 47,
+                adv_header: &adv_header,
+                encryption_info: encryption_info.clone(),
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x01],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Private,
+                },
+                // skip section header + encryption info + identity header -> end of section
+                all_ciphertext: &adv_body[1 + 19 + 2..48],
+            }
+            .into(),
+            SignatureEncryptedSection {
+                section_header: 48,
+                adv_header: &adv_header,
+                encryption_info: encryption_info.clone(),
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x02],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Trusted,
+                },
+                all_ciphertext: &adv_body[48 + 1 + 19 + 2..97],
+            }
+            .into(),
+            SignatureEncryptedSection {
+                section_header: 49,
+                adv_header: &adv_header,
+                encryption_info,
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x04],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Provisioned,
+                },
+                all_ciphertext: &adv_body[97 + 1 + 19 + 2..],
+            }
+            .into()
+        ]),
+        parse_sections(&adv_header, &adv_body)
+    );
+}
+
+#[test]
+fn parse_adv_ext_mic_identity() {
+    // 3 sections
+    let mut adv_body = vec![];
+    // section - 64 bytes total
+    adv_body.push(19 + 18 + 10 + 16);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x00, // scheme (mic)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // private identity -- 2 + 16x 0x55
+    adv_body.extend_from_slice(&[
+        0x90, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
+        0x55, 0x55, 0x55,
+    ]);
+    // 10 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 10]);
+    // mic - 16x 0x33
+    adv_body.extend_from_slice(&[
+        0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+        0x33,
+    ]);
+
+    // section - 65 bytes total
+    adv_body.push(19 + 18 + 11 + 16);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x00, // scheme (mic)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // trusted identity -- 2 + 16x 0x77
+    adv_body.extend_from_slice(&[
+        0x90, 0x02, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77,
+        0x77, 0x77, 0x77,
+    ]);
+    // 11 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 11]);
+    // mic - 16x 0x66
+    adv_body.extend_from_slice(&[
+        0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
+        0x66,
+    ]);
+
+    // section - 66 bytes total
+    adv_body.push(19 + 18 + 12 + 16);
+    // encryption info -- 2 + 1 + 16x 0x11
+    adv_body.extend_from_slice(&[
+        0x91, 0x10, // header
+        0x00, // scheme (mic)
+        0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+        0x11, // salt
+    ]);
+    // provisioned identity -- 2 + 16x 0xAA
+    adv_body.extend_from_slice(&[
+        0x90, 0x04, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+        0xAA, 0xAA, 0xAA,
+    ]);
+    // 12 bytes of 0xFF ciphertext
+    adv_body.extend_from_slice(&[0xFF; 12]);
+    // mic - 16x 0x99
+    adv_body.extend_from_slice(&[
+        0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+        0x99,
+    ]);
+
+    let adv_header = V1Header { header_byte: 0x20 };
+    let encryption_info = EncryptionInfo {
+        bytes: [
+            0x91, 0x10, // header bytes
+            0x00, // scheme (mic)
+            0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
+            0x11, 0x11,
+        ],
+    };
+    assert_eq!(
+        Ok(vec![
+            MicEncryptedSection {
+                section_header: 63,
+                adv_header: &adv_header,
+                mic: SectionMic::from([0x33; 16]),
+                encryption_info: encryption_info.clone(),
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x01],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Private,
+                },
+                // skip section header +  encryption info + identity header -> end of ciphertext
+                all_ciphertext: &adv_body[1 + 19 + 2..64 - 16],
+            }
+            .into(),
+            MicEncryptedSection {
+                section_header: 64,
+                adv_header: &adv_header,
+                mic: SectionMic::from([0x66; 16]),
+                encryption_info: encryption_info.clone(),
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x02],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Trusted,
+                },
+                all_ciphertext: &adv_body[64 + 1 + 19 + 2..129 - 16],
+            }
+            .into(),
+            MicEncryptedSection {
+                section_header: 65,
+                adv_header: &adv_header,
+                mic: SectionMic::from([0x99; 16]),
+                encryption_info,
+                identity: EncryptedIdentityMetadata {
+                    header_bytes: [0x90, 0x04],
+                    offset: 1_usize.into(),
+                    identity_type: EncryptedIdentityDataElementType::Provisioned,
+                },
+                all_ciphertext: &adv_body[129 + 1 + 19 + 2..195 - 16],
+            }
+            .into(),
+        ]),
+        parse_sections(&adv_header, &adv_body)
+    );
+}
+
+#[test]
+fn public_identity_not_first_de_error() {
+    let mut adv_body = vec![];
+
+    // section
+    adv_body.push(3 + 1);
+    // misc other DE
+    adv_body.extend_from_slice(&[0x81, 0x70, 0xFF]);
+    // public identity after another DE
+    adv_body.push(0x03);
+
+    assert_eq!(
+        Err(nom::Err::Error(error::Error {
+            input: &adv_body[4..],
+            // Eof because all_consuming is used to ensure complete section is parsed
+            code: error::ErrorKind::Eof
+        })),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn public_identity_after_public_identity_error() {
+    let mut adv_body = vec![];
+
+    // section
+    adv_body.push(1 + 3 + 1);
+    // public identity after another DE
+    adv_body.push(0x03);
+    // misc other DE
+    adv_body.extend_from_slice(&[0x81, 0x70, 0xFF]);
+    // public identity after another DE
+    adv_body.push(0x03);
+
+    assert_eq!(
+        Err(nom::Err::Error(error::Error {
+            // since we use many1, the parser consumes the first byte and returns the remaining in the error
+            input: &adv_body[1..],
+            // Eof because all_consuming is used to ensure complete section is parsed
+            code: error::ErrorKind::Eof
+        })),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn salt_public_identity_error() {
+    let mut adv_body = vec![];
+    // section
+    adv_body.push(3 + 1 + 3);
+    // salt - 1 + 2x 0x22 (invalid: must be first DE)
+    adv_body.extend_from_slice(&[0x20, 0x22, 0x22]);
+    // public identity
+    adv_body.push(0x03);
+    // misc other DE
+    adv_body.extend_from_slice(&[0x81, 0x70, 0xFF]);
+
+    assert_eq!(
+        Err(nom::Err::Error(error::Error {
+            input: &adv_body[4..],
+            // Eof because all_consuming is used to ensure complete section is parsed
+            code: error::ErrorKind::Eof
+        })),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn salt_mic_public_identity_error() {
+    let mut adv_body = vec![];
+    // section
+    adv_body.push(3 + 18 + 1 + 3);
+    // salt - 1 + 2x 0x22 (invalid: must be first DE)
+    adv_body.extend_from_slice(&[0x20, 0x22, 0x22]);
+    // mic - 2 + 16x 0x33
+    adv_body.extend_from_slice(&[
+        0x90, 0x13, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33,
+        0x33, 0x33, 0x33,
+    ]);
+    // public identity
+    adv_body.push(0x03);
+    // misc other DE
+    adv_body.extend_from_slice(&[0x81, 0x70, 0xFF]);
+
+    assert_eq!(
+        Err(nom::Err::Error(error::Error {
+            input: &adv_body[22..],
+            // Eof because all_consuming is used to ensure complete section is parsed
+            code: error::ErrorKind::Eof
+        })),
+        parse_sections(&V1Header { header_byte: 0x20 }, &adv_body)
+    );
+}
+
+#[test]
+fn parse_de_with_1_byte_header() {
+    let data = [0x51, 0x01, 0x02, 0x03, 0x04, 0x05, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[6..],
+            ProtoDataElement {
+                header: DeHeader {
+                    de_type: 1_u8.into(),
+                    header_bytes: ArrayView::try_from_slice(&[0x51]).unwrap(),
+                    contents_len: 5_u8.try_into().unwrap()
+                },
+                contents: &data[1..6]
+            }
+        )),
+        ProtoDataElement::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_with_2_byte_header() {
+    let data = [0x85, 0x01, 0x01, 0x02, 0x03, 0x04, 0x05, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[7..],
+            ProtoDataElement {
+                header: DeHeader {
+                    de_type: 1_u8.into(),
+                    header_bytes: ArrayView::try_from_slice(&[0x85, 0x01]).unwrap(),
+                    contents_len: 5_u8.try_into().unwrap()
+                },
+                contents: &data[2..7]
+            }
+        )),
+        ProtoDataElement::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_with_3_byte_header() {
+    let data = [0x85, 0xC1, 0x41, 0x01, 0x02, 0x03, 0x04, 0x05, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[8..],
+            ProtoDataElement {
+                header: DeHeader {
+                    header_bytes: ArrayView::try_from_slice(&[0x85, 0xC1, 0x41]).unwrap(),
+                    contents_len: 5_u8.try_into().unwrap(),
+                    de_type: 0b0000_0000_0000_0000_0010_0000_1100_0001_u32.into(),
+                },
+                contents: &data[3..8]
+            }
+        )),
+        ProtoDataElement::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_header_1_byte() {
+    let data = [0x51, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[1..],
+            DeHeader {
+                de_type: 1_u8.into(),
+                contents_len: 5_u8.try_into().unwrap(),
+                header_bytes: ArrayView::try_from_slice(&[0x51]).unwrap(),
+            }
+        )),
+        DeHeader::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_header_2_bytes() {
+    let data = [0x83, 0x01, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[2..],
+            DeHeader {
+                de_type: 1_u8.into(),
+                contents_len: 3_u8.try_into().unwrap(),
+                header_bytes: ArrayView::try_from_slice(&[0x83, 0x01]).unwrap(),
+            }
+        )),
+        DeHeader::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_header_3_bytes() {
+    let data = [0x83, 0xC1, 0x41, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[3..],
+            DeHeader {
+                de_type: 0b0000_0000_0000_0000_0010_0000_1100_0001_u32.into(),
+                contents_len: 3_u8.try_into().unwrap(),
+                header_bytes: ArrayView::try_from_slice(&[0x83, 0xC1, 0x41]).unwrap(),
+            }
+        )),
+        DeHeader::parse(&data)
+    );
+}
+
+#[test]
+fn parse_de_header_4_bytes() {
+    let data = [0x83, 0xC1, 0xC1, 0x41, 0xFF, 0xFF];
+    assert_eq!(
+        Ok((
+            &data[4..],
+            DeHeader {
+                de_type: 0b0000_0000_0001_0000_0110_0000_1100_0001_u32.into(),
+                contents_len: 3_u8.try_into().unwrap(),
+                header_bytes: ArrayView::try_from_slice(&[0x83, 0xC1, 0xC1, 0x41]).unwrap(),
+            }
+        )),
+        DeHeader::parse(&data)
+    );
+}
+
+#[test]
+fn parse_section_length_overrun() {
+    // section of length 0xF0 - legal but way longer than 3
+    let input = [0xF0, 0x01, 0x02, 0x03];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read section contents
+            input: &input.as_slice()[1..],
+            code: error::ErrorKind::Eof
+        }),
+        IntermediateSection::parser_with_header(&V1Header { header_byte: 0x20 })(&input)
+            .unwrap_err()
+    );
+}
+
+#[test]
+fn parse_de_single_byte_header_length_overrun() {
+    // length 7, type 0x03
+    let input = [0b0111_0011, 0x01, 0x02];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read DE contents
+            input: &input.as_slice()[1..],
+            code: error::ErrorKind::Eof
+        }),
+        ProtoDataElement::parse(&input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_de_multi_byte_header_length_overrun() {
+    // length 7, type 0x0F
+    let input = [0b1000_0111, 0x0F, 0x01, 0x02];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read DE contents
+            input: &input.as_slice()[2..],
+            code: error::ErrorKind::Eof
+        }),
+        ProtoDataElement::parse(&input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_de_header_non_canonical_multi_byte() {
+    // length 1, type 1
+    // first byte of type doesn't have any bits in it so it contributes nothing
+    let input = [0b1000_0001, 0b1000_0000, 0b0000_0001];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read first type byte
+            input: &input.as_slice()[1..],
+            code: error::ErrorKind::Verify
+        }),
+        DeHeader::parse(&input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_section_length_zero() {
+    // Section length of 0 - should return a verification error
+    let input = [0x00];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read section contents
+            input: input.as_slice(),
+            code: error::ErrorKind::Verify
+        }),
+        IntermediateSection::parser_with_header(&V1Header { header_byte: 0x20 })(&input)
+            .unwrap_err()
+    );
+}
+
+#[test]
+fn parse_empty_section() {
+    // empty section - should return an EOF error
+    let input = [];
+    assert_eq!(
+        nom::Err::Error(error::Error {
+            // attempted to read section contents
+            input: input.as_slice(),
+            code: error::ErrorKind::Eof
+        }),
+        IntermediateSection::parser_with_header(&V1Header { header_byte: 0x20 })(&input)
+            .unwrap_err()
+    );
+}
+
+// for convenient .into() in expected test data
+
+impl<'a> From<SignatureEncryptedSection<'a>> for IntermediateSection<'a> {
+    fn from(s: SignatureEncryptedSection<'a>) -> Self {
+        IntermediateSection::Ciphertext(CiphertextSection::SignatureEncryptedIdentity(s))
+    }
+}
+
+impl<'a> From<MicEncryptedSection<'a>> for IntermediateSection<'a> {
+    fn from(s: MicEncryptedSection<'a>) -> Self {
+        IntermediateSection::Ciphertext(CiphertextSection::MicEncryptedIdentity(s))
+    }
+}
+
+impl<'a> From<PlaintextSection> for IntermediateSection<'a> {
+    fn from(s: PlaintextSection) -> Self {
+        IntermediateSection::Plaintext(s)
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/section_tests.rs b/nearby/presence/np_adv/src/extended/deserialize/section_tests.rs
new file mode 100644
index 0000000..7199031
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/section_tests.rs
@@ -0,0 +1,672 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::{
+    credential::{
+        simple::SimpleV1Credential,
+        source::{CredentialSource, SliceCredentialSource},
+        MatchableCredential, V1Credential,
+    },
+    extended::{
+        data_elements::GenericDataElement,
+        deserialize::{
+            convert_data_elements,
+            test_stubs::{HkdfCryptoMaterial, IntermediateSectionExt},
+            OffsetDataElement,
+        },
+        serialize::{
+            self, AdvBuilder, MicEncrypted, SectionBuilder, SignedEncrypted, WriteDataElement,
+        },
+        MAX_DE_LEN,
+    },
+    parse_adv_header, AdvHeader, PublicIdentity,
+};
+use crypto_provider::{CryptoProvider, CryptoRng};
+use crypto_provider_default::CryptoProviderImpl;
+use rand::{seq::SliceRandom as _, Rng as _, SeedableRng as _};
+use std::prelude::rust_2021::*;
+use std::vec;
+
+type KeyPair = np_ed25519::KeyPair<CryptoProviderImpl>;
+
+#[test]
+fn deserialize_public_identity_section() {
+    do_deserialize_section_unencrypted::<PublicIdentity>(
+        PublicIdentity::default(),
+        PlaintextIdentityMode::Public,
+        1,
+        1,
+    );
+}
+
+// due to lifetime issues, this is somewhat challenging to share with the 90% identical signature
+// test, but if someone feels like putting in the tinkering to make it happen, please do
+#[test]
+fn deserialize_mic_encrypted_rand_identities_finds_correct_one() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| (rng.gen(), KeyPair::generate())).collect::<Vec<_>>();
+
+        let chosen_index = rng.gen_range(0..identities.len());
+        let (chosen_key_seed, _chosen_key_pair) = &identities[chosen_index];
+
+        // share a metadata key to emphasize that we're _only_ using the identity to
+        // differentiate
+        let metadata_key: [u8; 16] = rng.gen();
+
+        let creds = identities
+            .iter()
+            .enumerate()
+            .map(|(index, (key_seed, key_pair))| {
+                SimpleV1Credential::new(
+                    HkdfCryptoMaterial::new(key_seed, &metadata_key, key_pair.public()),
+                    index,
+                )
+            })
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+
+        let mut adv_builder = AdvBuilder::new();
+
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(chosen_key_seed);
+        let mut section_builder = adv_builder
+            .section_builder(MicEncrypted::new_random_salt(
+                &mut crypto_rng,
+                identity_type,
+                &metadata_key,
+                &hkdf,
+            ))
+            .unwrap();
+
+        let (expected_de_data, expected_des, orig_des) =
+            fill_section_random_des(&mut rng, &mut section_builder, 2);
+
+        section_builder.add_to_advertisement();
+
+        let adv = adv_builder.into_advertisement();
+
+        let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+        let v1_header = if let AdvHeader::V1(h) = header {
+            h
+        } else {
+            panic!("incorrect header");
+        };
+
+        let sections = parse_sections(&v1_header, remaining).unwrap();
+        assert_eq!(1, sections.len());
+        let (section, cred) = try_deserialize_all_creds::<_, _, CryptoProviderImpl>(
+            sections[0].as_ciphertext().unwrap(),
+            &cred_source,
+        )
+        .unwrap()
+        .unwrap();
+
+        assert_eq!(&chosen_index, cred.matched_data());
+
+        assert_eq!(section.identity_type(), identity_type);
+        assert_eq!(section.verification_mode(), VerificationMode::Mic);
+        assert_eq!(section.metadata_key(), &metadata_key);
+        assert_eq!(
+            section.contents,
+            SectionContents {
+                section_header: (19 + 2 + 16 + total_de_len(&orig_des) + 16) as u8,
+                de_data: ArrayView::try_from_slice(expected_de_data.as_slice()).unwrap(),
+                data_elements: expected_des,
+            }
+        );
+        assert_eq!(
+            section
+                .data_elements()
+                .map(|de| GenericDataElement::try_from(de.de_type(), de.contents()).unwrap())
+                .collect::<Vec<_>>(),
+            orig_des
+        );
+    }
+}
+
+#[test]
+fn deserialize_signature_encrypted_rand_identities_finds_correct_one() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+    for _ in 0..100 {
+        let identities = (0..100).map(|_| (rng.gen(), KeyPair::generate())).collect::<Vec<_>>();
+
+        let chosen_index = rng.gen_range(0..identities.len());
+        let (chosen_key_seed, chosen_key_pair) = &identities[chosen_index];
+
+        // share a metadata key to emphasize that we're _only_ using the identity to
+        // differentiate
+        let metadata_key: [u8; 16] = rng.gen();
+
+        let creds = identities
+            .iter()
+            .enumerate()
+            .map(|(index, (key_seed, key_pair))| {
+                let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(key_seed);
+                let unsigned =
+                    hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+                let signed =
+                    hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+                SimpleV1Credential::new(
+                    HkdfCryptoMaterial {
+                        hkdf: *key_seed,
+                        expected_unsigned_metadata_key_hmac: unsigned,
+                        expected_signed_metadata_key_hmac: signed,
+                        pub_key: key_pair.public().to_bytes(),
+                    },
+                    index,
+                )
+            })
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&creds);
+
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+
+        let mut adv_builder = AdvBuilder::new();
+
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(chosen_key_seed);
+        let mut section_builder = adv_builder
+            .section_builder(SignedEncrypted::new_random_salt(
+                &mut crypto_rng,
+                identity_type,
+                &metadata_key,
+                chosen_key_pair,
+                &hkdf,
+            ))
+            .unwrap();
+
+        let (expected_de_data, expected_des, orig_des) =
+            fill_section_random_des(&mut rng, &mut section_builder, 2);
+
+        section_builder.add_to_advertisement();
+
+        let adv = adv_builder.into_advertisement();
+
+        let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+        let v1_header = if let AdvHeader::V1(h) = header {
+            h
+        } else {
+            panic!("incorrect header");
+        };
+
+        let sections = parse_sections(&v1_header, remaining).unwrap();
+        assert_eq!(1, sections.len());
+        let (section, cred) = try_deserialize_all_creds::<_, _, CryptoProviderImpl>(
+            sections[0].as_ciphertext().unwrap(),
+            &cred_source,
+        )
+        .unwrap()
+        .unwrap();
+
+        assert_eq!(&chosen_index, cred.matched_data());
+
+        assert_eq!(section.identity_type(), identity_type);
+        assert_eq!(section.verification_mode(), VerificationMode::Signature);
+        assert_eq!(section.metadata_key(), &metadata_key);
+        assert_eq!(
+            section.contents,
+            SectionContents {
+                section_header: (19 + 2 + 16 + 64 + total_de_len(&orig_des)) as u8,
+                de_data: ArrayView::try_from_slice(expected_de_data.as_slice()).unwrap(),
+                data_elements: expected_des,
+            }
+        );
+        assert_eq!(
+            section
+                .data_elements()
+                .map(|de| GenericDataElement::try_from(de.de_type(), de.contents()).unwrap())
+                .collect::<Vec<_>>(),
+            orig_des
+        );
+    }
+}
+
+#[test]
+fn deserialize_encrypted_no_matching_identities_finds_nothing() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+    for _ in 0..100 {
+        let signed = rng.gen();
+        let mut identities = (0..100).map(|_| (rng.gen(), KeyPair::generate())).collect::<Vec<_>>();
+
+        let chosen_index = rng.gen_range(0..identities.len());
+        // remove so they won't be found later
+        let (chosen_key_seed, chosen_key_pair) = identities.remove(chosen_index);
+
+        // share a metadata key to emphasize that we're _only_ using the identity to
+        // differentiate
+        let metadata_key: [u8; 16] = rng.gen();
+
+        let credentials = identities
+            .iter()
+            .enumerate()
+            .map(|(index, (key_seed, key_pair))| {
+                SimpleV1Credential::new(
+                    HkdfCryptoMaterial::new(key_seed, &metadata_key, key_pair.public()),
+                    index,
+                )
+            })
+            .collect::<Vec<_>>();
+        let cred_source = SliceCredentialSource::new(&credentials);
+
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+
+        let mut adv_builder = AdvBuilder::new();
+
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&chosen_key_seed);
+
+        // awkward split because SectionIdentity isn't object-safe, so we can't just have a
+        // Box<dyn SectionIdentity> and use that in one code path
+        if signed {
+            let identity = SignedEncrypted::new_random_salt(
+                &mut crypto_rng,
+                identity_type,
+                &metadata_key,
+                &chosen_key_pair,
+                &hkdf,
+            );
+            let mut section_builder = adv_builder.section_builder(identity).unwrap();
+            let _ = fill_section_random_des(&mut rng, &mut section_builder, 2);
+            section_builder.add_to_advertisement();
+        } else {
+            let identity =
+                MicEncrypted::new_random_salt(&mut crypto_rng, identity_type, &metadata_key, &hkdf);
+            let mut section_builder = adv_builder.section_builder(identity).unwrap();
+            let _ = fill_section_random_des(&mut rng, &mut section_builder, 2);
+            section_builder.add_to_advertisement();
+        };
+
+        let adv = adv_builder.into_advertisement();
+        let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+        let v1_header = if let AdvHeader::V1(h) = header {
+            h
+        } else {
+            panic!("incorrect header");
+        };
+
+        let sections = parse_sections(&v1_header, remaining).unwrap();
+        assert_eq!(1, sections.len());
+
+        assert!(try_deserialize_all_creds::<_, _, CryptoProviderImpl>(
+            sections[0].as_ciphertext().unwrap(),
+            &cred_source
+        )
+        .unwrap()
+        .is_none());
+    }
+}
+
+#[test]
+fn convert_data_elements_empty() {
+    let orig_des = vec![];
+
+    let (des, data) = convert_data_elements(&orig_des);
+
+    assert_eq!(Vec::<OffsetDataElement>::new(), des);
+    assert_eq!(&Vec::<u8>::new(), data.as_slice());
+}
+
+#[test]
+fn convert_data_elements_just_fits() {
+    // this is actually longer than any real section's worth of DEs could be since we aren't putting
+    // DE headers in the array
+    let orig_data = vec![0x33; 1000];
+
+    let orig_des = vec![
+        RefDataElement {
+            offset: 2.into(),
+            header_len: 2,
+            de_type: 100_u32.into(),
+            contents: &orig_data[0..10],
+        },
+        RefDataElement {
+            offset: 3.into(),
+            header_len: 2,
+            de_type: 101_u32.into(),
+            contents: &orig_data[10..100],
+        },
+        RefDataElement {
+            offset: 4.into(),
+            header_len: 2,
+            de_type: 102_u32.into(),
+            contents: &orig_data[100..NP_ADV_MAX_SECTION_LEN],
+        },
+    ];
+
+    let (des, data) = convert_data_elements(&orig_des);
+
+    assert_eq!(
+        &[
+            OffsetDataElement {
+                offset: 2.into(),
+                de_type: 100_u32.into(),
+                start_of_contents: 0,
+                contents_len: 10
+            },
+            OffsetDataElement {
+                offset: 3.into(),
+                de_type: 101_u32.into(),
+                start_of_contents: 10,
+                contents_len: 90
+            },
+            OffsetDataElement {
+                offset: 4.into(),
+                de_type: 102_u32.into(),
+                start_of_contents: 100,
+                contents_len: NP_ADV_MAX_SECTION_LEN - 100,
+            },
+        ],
+        &des[..]
+    );
+    assert_eq!(&[0x33; NP_ADV_MAX_SECTION_LEN], data.as_slice());
+}
+
+#[test]
+#[should_panic]
+fn convert_data_elements_doesnt_fit_panic() {
+    let orig_data = vec![0x33; 1000];
+    let orig_des = vec![
+        RefDataElement {
+            offset: 2.into(),
+            header_len: 2,
+            de_type: 100_u32.into(),
+            contents: &orig_data[0..10],
+        },
+        // impossibly large DE
+        RefDataElement {
+            offset: 3.into(),
+            header_len: 2,
+            de_type: 101_u32.into(),
+            contents: &orig_data[10..500],
+        },
+    ];
+
+    let _ = convert_data_elements(&orig_des);
+}
+
+#[test]
+fn section_des_expose_correct_data() {
+    let mut orig_data = Vec::new();
+    orig_data.resize(130, 0);
+    for (index, byte) in orig_data.iter_mut().enumerate() {
+        *byte = index as u8;
+    }
+
+    let orig_des = vec![
+        OffsetDataElement {
+            offset: 2.into(),
+            de_type: 100_u32.into(),
+            start_of_contents: 0,
+            contents_len: 10,
+        },
+        OffsetDataElement {
+            offset: 3.into(),
+            de_type: 101_u32.into(),
+            start_of_contents: 10,
+            contents_len: 90,
+        },
+        OffsetDataElement {
+            offset: 4.into(),
+            de_type: 102_u32.into(),
+            start_of_contents: 100,
+            contents_len: 30,
+        },
+    ];
+
+    let section = SectionContents {
+        section_header: 99,
+        de_data: ArrayView::try_from_slice(&orig_data).unwrap(),
+        data_elements: orig_des,
+    };
+
+    // extract out the parts of the DE we care about
+    let des = section
+        .data_elements()
+        .map(|de| (de.offset(), de.de_type(), de.contents().to_vec()))
+        .collect::<Vec<_>>();
+    assert_eq!(
+        vec![
+            (2.into(), 100_u32.into(), orig_data[0..10].to_vec()),
+            (3.into(), 101_u32.into(), orig_data[10..100].to_vec()),
+            (4.into(), 102_u32.into(), orig_data[100..].to_vec())
+        ],
+        des
+    );
+}
+
+#[test]
+fn do_deserialize_zero_section_header() {
+    let mut adv: tinyvec::ArrayVec<[u8; 254]> = tinyvec::ArrayVec::new();
+    adv.push(0x20); // V1 Advertisement
+    adv.push(0x00); // Section header of 0
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+    parse_sections(&v1_header, remaining).expect_err("Expected an error");
+}
+
+#[test]
+fn do_deserialize_empty_section() {
+    let adv_builder = AdvBuilder::new();
+    let adv = adv_builder.into_advertisement();
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+    parse_sections(&v1_header, remaining).expect_err("Expected an error");
+}
+
+#[test]
+fn do_deserialize_max_number_of_sections() {
+    let adv_builder = build_dummy_advertisement_sections(NP_V1_ADV_MAX_SECTION_COUNT);
+    let adv = adv_builder.into_advertisement();
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&v1_header, remaining).unwrap();
+    assert_eq!(NP_V1_ADV_MAX_SECTION_COUNT, sections.len());
+}
+
+#[test]
+fn try_deserialize_over_max_number_of_sections() {
+    let adv_builder = build_dummy_advertisement_sections(NP_V1_ADV_MAX_SECTION_COUNT);
+    let mut adv = adv_builder.into_advertisement().as_slice().to_vec();
+
+    // Push an extra section
+    adv.extend_from_slice(
+        [
+            0x01, // Section header
+            0x03, // Public identity
+        ]
+        .as_slice(),
+    );
+
+    let (remaining, header) = parse_adv_header(&adv).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+    parse_sections(&v1_header, remaining)
+        .expect_err("Expected an error because number of sections is over 16");
+}
+
+pub(crate) fn random_de<R: rand::Rng>(rng: &mut R) -> GenericDataElement {
+    let mut array = [0_u8; MAX_DE_LEN];
+    rng.fill(&mut array[..]);
+    let data: ArrayView<u8, MAX_DE_LEN> =
+        ArrayView::try_from_array(array, rng.gen_range(0..=MAX_DE_LEN)).unwrap();
+    // skip the first few DEs that Google uses
+    GenericDataElement::try_from(rng.gen_range(20_u32..1000).into(), data.as_slice()).unwrap()
+}
+
+fn do_deserialize_section_unencrypted<I: serialize::SectionIdentity>(
+    identity: I,
+    expected_identity: PlaintextIdentityMode,
+    prefix_len: usize,
+    de_offset: usize,
+) {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(identity).unwrap();
+
+    let (expected_de_data, expected_des, orig_des) =
+        fill_section_random_des(&mut rng, &mut section_builder, de_offset);
+
+    section_builder.add_to_advertisement();
+
+    let adv = adv_builder.into_advertisement();
+
+    let (remaining, header) = parse_adv_header(adv.as_slice()).unwrap();
+
+    let v1_header = if let AdvHeader::V1(h) = header {
+        h
+    } else {
+        panic!("incorrect header");
+    };
+
+    let sections = parse_sections(&v1_header, remaining).unwrap();
+    assert_eq!(1, sections.len());
+    let section = sections[0].as_plaintext().unwrap();
+
+    assert_eq!(
+        &PlaintextSection {
+            identity: expected_identity,
+            contents: SectionContents {
+                section_header: (prefix_len + total_de_len(&orig_des)) as u8,
+                de_data: ArrayView::try_from_slice(expected_de_data.as_slice()).unwrap(),
+                data_elements: expected_des,
+            }
+        },
+        section
+    );
+    assert_eq!(
+        section
+            .contents
+            .data_elements()
+            .map(|de| GenericDataElement::try_from(de.de_type(), de.contents()).unwrap())
+            .collect::<Vec<_>>(),
+        orig_des
+    );
+}
+
+fn fill_section_random_des<R: rand::Rng, I: serialize::SectionIdentity>(
+    mut rng: &mut R,
+    section_builder: &mut SectionBuilder<I>,
+    de_offset: usize,
+) -> (Vec<u8>, Vec<OffsetDataElement>, Vec<GenericDataElement>) {
+    let mut expected_de_data = vec![];
+    let mut expected_des = vec![];
+    let mut orig_des = vec![];
+
+    for index in 0..rng.gen_range(1..10) {
+        let de = random_de(&mut rng);
+
+        let de_clone = de.clone();
+        if section_builder.add_de(|_| de_clone).is_err() {
+            break;
+        }
+
+        let orig_len = expected_de_data.len();
+        de.write_de_contents(&mut expected_de_data).unwrap();
+        let contents_len = expected_de_data.len() - orig_len;
+
+        expected_des.push(OffsetDataElement {
+            offset: (index as usize + de_offset).into(),
+            de_type: de.de_header().de_type,
+            contents_len,
+            start_of_contents: orig_len,
+        });
+        orig_des.push(de);
+    }
+    (expected_de_data, expected_des, orig_des)
+}
+
+fn total_de_len(des: &[GenericDataElement]) -> usize {
+    des.iter()
+        .map(|de| {
+            let mut buf = vec![];
+            de.write_de_contents(&mut buf);
+            de.de_header().serialize().len() + buf.len()
+        })
+        .sum()
+}
+
+type TryDeserOutput<'c, C> = Option<(DecryptedSection, <C as MatchableCredential>::Matched<'c>)>;
+
+/// Returns:
+/// - `Ok(Some)` if a matching credential was found
+/// - `Ok(None)` if no matching credential was found, or if `cred_source` provides no credentials
+/// - `Err` if an error occurred.
+fn try_deserialize_all_creds<'c, C, S, P>(
+    section: &CiphertextSection,
+    cred_source: &'c S,
+) -> Result<TryDeserOutput<'c, C>, BatchSectionDeserializeError>
+where
+    C: V1Credential,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    for c in cred_source.iter() {
+        match section.try_deserialize::<C, P>(c) {
+            Ok(s) => return Ok(Some((s, c.matched()))),
+            Err(e) => match e {
+                SectionDeserializeError::IncorrectCredential => continue,
+                SectionDeserializeError::ParseError => {
+                    return Err(BatchSectionDeserializeError::ParseError)
+                }
+            },
+        }
+    }
+
+    Ok(None)
+}
+
+fn build_dummy_advertisement_sections(number_of_sections: usize) -> AdvBuilder {
+    let mut adv_builder = AdvBuilder::new();
+    for _ in 0..number_of_sections {
+        let section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+        section_builder.add_to_advertisement();
+    }
+    adv_builder
+}
+
+#[derive(Debug, PartialEq, Eq)]
+enum BatchSectionDeserializeError {
+    /// Advertisement data is malformed
+    ParseError,
+}
diff --git a/nearby/presence/np_adv/src/extended/deserialize/test_stubs.rs b/nearby/presence/np_adv/src/extended/deserialize/test_stubs.rs
new file mode 100644
index 0000000..437b997
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/test_stubs.rs
@@ -0,0 +1,115 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crypto_provider::{ed25519, CryptoProvider};
+use np_hkdf::{NpKeySeedHkdf, UnsignedSectionKeys};
+use std::prelude::rust_2021::*;
+
+use crate::{
+    credential::v1::*,
+    extended::deserialize::{CiphertextSection, PlaintextSection},
+    IntermediateSection,
+};
+
+pub(crate) struct HkdfCryptoMaterial {
+    pub(crate) hkdf: [u8; 32],
+    pub(crate) expected_unsigned_metadata_key_hmac: [u8; 32],
+    pub(crate) expected_signed_metadata_key_hmac: [u8; 32],
+    pub(crate) pub_key: ed25519::RawPublicKey,
+}
+
+impl HkdfCryptoMaterial {
+    pub(crate) fn new<C: CryptoProvider>(
+        hkdf_key_seed: &[u8; 32],
+        metadata_key: &[u8; 16],
+        pub_key: np_ed25519::PublicKey<C>,
+    ) -> Self {
+        let hkdf = NpKeySeedHkdf::<C>::new(hkdf_key_seed);
+        let unsigned =
+            hkdf.extended_unsigned_metadata_key_hmac_key().calculate_hmac(metadata_key.as_slice());
+        let signed =
+            hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(metadata_key.as_slice());
+        Self {
+            hkdf: *hkdf_key_seed,
+            expected_unsigned_metadata_key_hmac: unsigned,
+            expected_signed_metadata_key_hmac: signed,
+            pub_key: pub_key.to_bytes(),
+        }
+    }
+}
+
+impl HkdfCryptoMaterial {
+    fn hkdf<C: CryptoProvider>(&self) -> NpKeySeedHkdf<C> {
+        NpKeySeedHkdf::<C>::new(&self.hkdf)
+    }
+}
+
+impl V1CryptoMaterial for HkdfCryptoMaterial {
+    type SignedIdentityResolverReference<'a> = SignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+    type UnsignedIdentityResolverReference<'a> = UnsignedSectionIdentityResolutionMaterial
+        where Self: 'a;
+
+    fn signed_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::SignedIdentityResolverReference<'_> {
+        SignedSectionIdentityResolutionMaterial::from_hkdf_and_expected_metadata_key_hmac::<C>(
+            &self.hkdf::<C>(),
+            self.expected_signed_metadata_key_hmac,
+        )
+    }
+    fn unsigned_identity_resolution_material<C: CryptoProvider>(
+        &self,
+    ) -> Self::UnsignedIdentityResolverReference<'_> {
+        UnsignedSectionIdentityResolutionMaterial::from_hkdf_and_expected_metadata_key_hmac::<C>(
+            &self.hkdf::<C>(),
+            self.expected_unsigned_metadata_key_hmac,
+        )
+    }
+    fn signed_verification_material<C: CryptoProvider>(&self) -> SignedSectionVerificationMaterial {
+        SignedSectionVerificationMaterial { pub_key: self.pub_key }
+    }
+
+    fn unsigned_verification_material<C: CryptoProvider>(
+        &self,
+    ) -> UnsignedSectionVerificationMaterial {
+        let mic_hmac_key = *UnsignedSectionKeys::hmac_key(&self.hkdf::<C>()).as_bytes();
+        UnsignedSectionVerificationMaterial { mic_hmac_key }
+    }
+}
+
+pub(crate) trait IntermediateSectionExt {
+    /// Returns `Some` if `self` is `Plaintext`
+    fn as_plaintext(&self) -> Option<&PlaintextSection>;
+    /// Returns `Some` if `self` is `Ciphertext`
+    fn as_ciphertext(&self) -> Option<&CiphertextSection>;
+}
+
+impl<'a> IntermediateSectionExt for IntermediateSection<'a> {
+    fn as_plaintext(&self) -> Option<&PlaintextSection> {
+        match self {
+            IntermediateSection::Plaintext(s) => Some(s),
+            IntermediateSection::Ciphertext(_) => None,
+        }
+    }
+
+    fn as_ciphertext(&self) -> Option<&CiphertextSection> {
+        match self {
+            IntermediateSection::Plaintext(_) => None,
+            IntermediateSection::Ciphertext(s) => Some(s),
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/mod.rs b/nearby/presence/np_adv/src/extended/mod.rs
new file mode 100644
index 0000000..c2f485e
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/mod.rs
@@ -0,0 +1,90 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V1 advertisement support.
+use crate::extended::de_type::DeType;
+use crate::DeLengthOutOfRange;
+use array_view::ArrayView;
+
+pub mod data_elements;
+pub mod de_type;
+pub mod deserialize;
+pub mod section_signature_payload;
+pub mod serialize;
+
+/// Maximum size of an NP advertisement, including the adv header
+pub const BLE_ADV_SVC_CONTENT_LEN: usize = 254
+    // length and type bytes for svc data TLV
+    - 1 - 1
+    // NP UUID
+    - 2;
+
+/// Maximum number of sections in an advertisement
+pub const NP_V1_ADV_MAX_SECTION_COUNT: usize = 8;
+
+/// Maximum size of a NP section, including its header byte
+pub const NP_ADV_MAX_SECTION_LEN: usize = BLE_ADV_SVC_CONTENT_LEN
+    // adv header byte
+    - 1;
+
+/// Max V1 DE length (7 bit length field).
+pub(crate) const MAX_DE_LEN: usize = 127;
+
+const METADATA_KEY_LEN: usize = 16;
+
+/// Length of a DE's content -- must be in `[0, 127]`
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct DeLength {
+    len: u8,
+}
+
+impl DeLength {
+    /// A convenient constant for zero length.
+    pub const ZERO: DeLength = DeLength { len: 0 };
+
+    fn as_usize(&self) -> usize {
+        self.len as usize
+    }
+}
+
+impl TryFrom<u8> for DeLength {
+    type Error = DeLengthOutOfRange;
+
+    fn try_from(value: u8) -> Result<Self, Self::Error> {
+        if value as usize <= MAX_DE_LEN {
+            Ok(Self { len: value })
+        } else {
+            Err(DeLengthOutOfRange {})
+        }
+    }
+}
+
+impl TryFrom<usize> for DeLength {
+    type Error = DeLengthOutOfRange;
+
+    fn try_from(value: usize) -> Result<Self, Self::Error> {
+        value.try_into().map_err(|_e| DeLengthOutOfRange).and_then(|num: u8| num.try_into())
+    }
+}
+
+/// Convert a tinyvec into an equivalent ArrayView
+fn to_array_view<T, const N: usize>(vec: tinyvec::ArrayVec<[T; N]>) -> ArrayView<T, N>
+where
+    [T; N]: tinyvec::Array,
+{
+    let len = vec.len();
+    ArrayView::try_from_array(vec.into_inner(), len).expect("len is from original vec")
+}
+
+pub(crate) const ENCRYPTION_INFO_DE_TYPE: DeType = DeType::const_from(0x10);
diff --git a/nearby/presence/np_adv/src/extended/section_signature_payload.rs b/nearby/presence/np_adv/src/extended/section_signature_payload.rs
new file mode 100644
index 0000000..2b0ebe5
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/section_signature_payload.rs
@@ -0,0 +1,142 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V1 advertisement section np_ed25519 signature payload
+//! after the included context bytes, and utilities for
+//! performing signatures and signature verification.
+
+use crate::extended::deserialize::EncryptionInfo;
+use crate::NP_SVC_UUID;
+use crypto_provider::{aes::ctr::AesCtrNonce, CryptoProvider};
+use sink::{Sink, SinkWriter};
+
+/// A struct representing the necessary contents
+/// of an v1 advertisement section np_ed25519 signature payload which
+/// come after the context prefix (shared among all advs).
+pub(crate) struct SectionSignaturePayload<'a> {
+    /// Advertisement header byte
+    adv_header_byte: u8,
+    /// Header byte for the v1 section being signed
+    section_header: u8,
+    /// Reference to the complete contents of the [`EncryptionInfo`] DE.
+    encryption_info: &'a [u8; EncryptionInfo::TOTAL_DE_LEN],
+    /// Reference to the derived salt (IV) for the section
+    nonce_ref: &'a AesCtrNonce,
+    /// Reference to all remaining information after the derived salt, but
+    /// not including the signature itself [which gets tacked onto the end].
+    after_iv_info: AfterIVInfo<'a>,
+}
+
+/// Representation of the plaintext information in an advertisement
+/// signature payload which comes after the derived salt
+enum AfterIVInfo<'a> {
+    /// Reference to a raw byte array containing all information
+    /// to be included in the signature payload after the derived salt,
+    /// and before the signature itself.
+    Raw(&'a [u8]),
+    /// References to the plaintext identity DE header and the rest
+    /// of the section plaintext after that (includes the plaintext
+    /// identity DE payload).
+    IdentityHeaderThenRaw([u8; 2], &'a [u8]),
+}
+
+const ADV_SIGNATURE_CONTEXT: np_ed25519::SignatureContext = {
+    match np_ed25519::SignatureContext::from_string_bytes("Advertisement Signed Section") {
+        Ok(x) => x,
+        Err(_) => panic!(),
+    }
+};
+
+impl<'a> SectionSignaturePayload<'a> {
+    /// Construct a section signature payload using parts typically found during
+    /// serialization of advertisements.
+    pub(crate) fn from_serialized_parts(
+        adv_header_byte: u8,
+        section_header: u8,
+        encryption_info: &'a [u8; EncryptionInfo::TOTAL_DE_LEN],
+        nonce_ref: &'a AesCtrNonce,
+        raw_after_iv_info: &'a [u8],
+    ) -> Self {
+        Self {
+            adv_header_byte,
+            section_header,
+            encryption_info,
+            nonce_ref,
+            after_iv_info: AfterIVInfo::Raw(raw_after_iv_info),
+        }
+    }
+
+    /// Construct a section signature payload using parts typically found during
+    /// deserialization of advertisements.
+    pub(crate) fn from_deserialized_parts(
+        adv_header_byte: u8,
+        section_header: u8,
+        encryption_info: &'a [u8; EncryptionInfo::TOTAL_DE_LEN],
+        nonce_ref: &'a AesCtrNonce,
+        identity_header: [u8; 2],
+        raw_after_identity_header_info: &'a [u8],
+    ) -> Self {
+        Self {
+            adv_header_byte,
+            section_header,
+            encryption_info,
+            nonce_ref,
+            after_iv_info: AfterIVInfo::IdentityHeaderThenRaw(
+                identity_header,
+                raw_after_identity_header_info,
+            ),
+        }
+    }
+
+    /// Generates a signature for this section signing payload using
+    /// the given Ed25519 key-pair.
+    pub(crate) fn sign<C: CryptoProvider>(
+        self,
+        key_pair: &np_ed25519::KeyPair<C>,
+    ) -> np_ed25519::Signature<C> {
+        key_pair
+            .sign_with_context(&ADV_SIGNATURE_CONTEXT, self)
+            .expect("section signature payloads should fit in signature buffer")
+    }
+    /// Verifies a signature for this section signing payload using
+    /// the given Ed25519 public key.
+    pub(crate) fn verify<C: CryptoProvider>(
+        self,
+        signature: &np_ed25519::Signature<C>,
+        public_key: &np_ed25519::PublicKey<C>,
+    ) -> Result<(), np_ed25519::SignatureVerificationError> {
+        public_key.verify_signature_with_context(&ADV_SIGNATURE_CONTEXT, self, signature)
+    }
+}
+
+impl<'a> SinkWriter for SectionSignaturePayload<'a> {
+    type DataType = u8;
+
+    fn write_payload<S: Sink<u8> + ?Sized>(self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(&NP_SVC_UUID)?;
+        sink.try_push(self.adv_header_byte)?;
+        sink.try_push(self.section_header)?;
+        sink.try_extend_from_slice(self.encryption_info)?;
+        sink.try_extend_from_slice(self.nonce_ref)?;
+
+        // identity DE and the rest of the DEs except for the suffix
+        match self.after_iv_info {
+            AfterIVInfo::Raw(s) => sink.try_extend_from_slice(s),
+            AfterIVInfo::IdentityHeaderThenRaw(identity_header, s) => {
+                sink.try_extend_from_slice(&identity_header)?;
+                sink.try_extend_from_slice(s)
+            }
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/serialize/adv_tests.rs b/nearby/presence/np_adv/src/extended/serialize/adv_tests.rs
new file mode 100644
index 0000000..47804ea
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/adv_tests.rs
@@ -0,0 +1,183 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+use super::*;
+use crate::extended::serialize::section_tests::{fill_section_builder, DummyDataElement};
+use np_hkdf::v1_salt::DataElementOffset;
+use std::{prelude::rust_2021::*, vec};
+
+#[test]
+fn adv_encode_no_salt() {
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut no_identity_section_builder =
+        adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    no_identity_section_builder
+        .add_de(|_| DummyDataElement { de_type: 20_u32.into(), data: vec![] })
+        .unwrap();
+
+    no_identity_section_builder.add_to_advertisement();
+
+    let mut public_identity_section_builder =
+        adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    public_identity_section_builder
+        .add_de(|_| DummyDataElement { de_type: 30_u32.into(), data: vec![] })
+        .unwrap();
+
+    public_identity_section_builder.add_to_advertisement();
+
+    assert_eq!(
+        &[
+            0x20, // adv header
+            0x3,  // section header
+            0x3,  // public identity
+            0x80, 20,  // de header
+            0x3, // section header
+            0x3, // public identity
+            0x80, 30, // de header
+        ],
+        adv_builder.into_advertisement().as_slice()
+    )
+}
+
+#[test]
+fn adv_encode_with_salt() {
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut no_identity_section_builder =
+        adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    no_identity_section_builder
+        .add_de(|_| DummyDataElement { de_type: 20_u32.into(), data: vec![] })
+        .unwrap();
+
+    no_identity_section_builder.add_to_advertisement();
+
+    let mut public_identity_section_builder =
+        adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    public_identity_section_builder
+        .add_de(|_| DummyDataElement { de_type: 30_u32.into(), data: vec![] })
+        .unwrap();
+
+    public_identity_section_builder.add_to_advertisement();
+
+    let mut expected = vec![
+        0x20, // adv header
+    ];
+    expected.extend_from_slice(&[
+        0x3, // section header
+        0x3, // public identity
+        0x80, 20,  // de header
+        0x3, // section header
+        0x3, // public identity
+        0x80, 30, // de header
+    ]);
+    assert_eq!(expected, adv_builder.into_advertisement().as_slice())
+}
+
+#[test]
+fn adding_any_allowed_section_length_always_works_for_single_section() {
+    // up to section len - 1 to leave room for section header
+    for section_contents_len in 0..NP_ADV_MAX_SECTION_LEN - 1 {
+        let mut adv_builder = AdvBuilder::new();
+        let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+        fill_section_builder(section_contents_len, &mut section_builder);
+
+        section_builder.add_to_advertisement();
+
+        let adv = adv_builder.into_advertisement();
+        assert_eq!(
+            section_contents_len + 1 + 1 + 1, // adv and section headers and identity
+            adv.as_slice().len(),
+            "adv: {:?}\nsection contents len: {}",
+            adv.as_slice(),
+            section_contents_len
+        );
+    }
+}
+
+#[test]
+fn adding_any_allowed_section_length_always_works_for_two_sections() {
+    // leave room for both section header bytes and the public identities
+    for section_1_contents_len in 0..=NP_ADV_MAX_SECTION_LEN - 4 {
+        // leave room for both section headers + public identities + section 1 contents
+        for section_2_contents_len in 0..=NP_ADV_MAX_SECTION_LEN - section_1_contents_len - 4 {
+            let mut adv_builder = AdvBuilder::new();
+
+            let mut section_1_builder =
+                adv_builder.section_builder(PublicIdentity::default()).unwrap();
+            fill_section_builder(section_1_contents_len, &mut section_1_builder);
+            section_1_builder.add_to_advertisement();
+
+            let mut section_2_builder =
+                adv_builder.section_builder(PublicIdentity::default()).unwrap();
+            fill_section_builder(section_2_contents_len, &mut section_2_builder);
+            section_2_builder.add_to_advertisement();
+
+            let adv = adv_builder.into_advertisement();
+            assert_eq!(
+                section_1_contents_len + section_2_contents_len + 1 + 4, // adv and section headers
+                adv.as_slice().len(),
+                "adv: {:?}\nsection 1 contents len: {}, section 2 contents len: {}",
+                adv.as_slice(),
+                section_1_contents_len,
+                section_2_contents_len,
+            );
+        }
+    }
+}
+
+#[test]
+fn building_capacity_0_section_works() {
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    // leave room for two section headers and the public identities
+    fill_section_builder(NP_ADV_MAX_SECTION_LEN - 4, &mut section_builder);
+    section_builder.add_to_advertisement();
+
+    let section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    // The section header and the public identity
+    assert_eq!(2, section_builder.section.capacity);
+    assert_eq!(2, section_builder.section.len());
+    section_builder.add_to_advertisement();
+
+    assert_eq!(BLE_ADV_SVC_CONTENT_LEN, adv_builder.into_advertisement().as_slice().len());
+}
+
+/// A placeholder identity with a huge prefix
+#[derive(Default, PartialEq, Eq, Debug)]
+struct EnormousIdentity {}
+
+impl SectionIdentity for EnormousIdentity {
+    const PREFIX_LEN: usize = 200;
+    const SUFFIX_LEN: usize = 0;
+    const INITIAL_DE_OFFSET: DataElementOffset = DataElementOffset::ZERO;
+
+    fn postprocess(
+        &mut self,
+        _adv_header_byte: u8,
+        _section_header: u8,
+        _section_contents: &mut [u8],
+    ) {
+        panic!("should never be called, just used for its huge prefix")
+    }
+
+    type DerivedSalt = ();
+
+    fn de_salt(&self, _de_offset: DataElementOffset) -> Self::DerivedSalt {
+        panic!("should never be called, just used for its huge prefix")
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/serialize/de_header_tests.rs b/nearby/presence/np_adv/src/extended/serialize/de_header_tests.rs
new file mode 100644
index 0000000..eda8b69
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/de_header_tests.rs
@@ -0,0 +1,122 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use super::*;
+use crate::extended::deserialize;
+use core::cmp;
+use rand_ext::rand;
+use rand_ext::rand::{distributions, Rng as _};
+
+#[test]
+fn de_header_1_byte_0s() {
+    let hdr = DeHeader { de_type: 0_u32.into(), len: 0_u8.try_into().unwrap() };
+
+    assert_eq!(&[0x00], hdr.serialize().as_slice());
+}
+
+#[test]
+fn de_header_1_byte_max() {
+    let hdr = DeHeader { de_type: 15_u32.into(), len: 7_u8.try_into().unwrap() };
+
+    assert_eq!(&[0x7F], hdr.serialize().as_slice());
+}
+
+#[test]
+fn de_header_2_byte_len_too_big() {
+    let hdr = DeHeader { de_type: 15_u32.into(), len: 8_u8.try_into().unwrap() };
+
+    assert_eq!(&[0x88, 0x0F], hdr.serialize().as_slice());
+}
+
+#[test]
+fn de_header_2_byte_type_too_big() {
+    let hdr = DeHeader { de_type: 16_u32.into(), len: 7_u8.try_into().unwrap() };
+
+    assert_eq!(&[0x87, 0x10], hdr.serialize().as_slice());
+}
+
+#[test]
+fn de_header_max() {
+    let hdr = DeHeader { de_type: u32::MAX.into(), len: 127_u8.try_into().unwrap() };
+    assert_eq!(
+        // first type byte has 3x 0 bits because there are 35 total bits in 5 chunks of 7 bits, but
+        // only 32 bits to start with
+        &[0xFF, 0x8F, 0xFF, 0xFF, 0xFF, 0x7F],
+        hdr.serialize().as_slice()
+    );
+}
+
+#[test]
+fn de_header_special_values() {
+    for de_type in [0_u32, 1, 15, 16, u32::MAX - 1, u32::MAX].iter().map(|t| DeType::from(*t)) {
+        for len in [0_u8, 1, 7, 8, 126, 127].iter().map(|l| DeLength::try_from(*l).unwrap()) {
+            let hdr = DeHeader { de_type, len };
+            let buf = hdr.serialize();
+            let header_len = expected_header_len(hdr);
+
+            assert_eq!(header_len as usize, buf.len());
+
+            let (_, deser) = deserialize::DeHeader::parse(buf.as_slice()).unwrap();
+
+            assert_eq!(
+                deserialize::DeHeader { de_type, contents_len: len, header_bytes: buf },
+                deser
+            )
+        }
+    }
+}
+
+#[test]
+fn de_header_random_roundtrip() {
+    let mut rng = rand_ext::seeded_rng();
+
+    for _ in 0..100_000 {
+        let hdr = DeHeader { de_type: rng.gen(), len: rng.gen() };
+        let buf = hdr.serialize();
+        let header_len = expected_header_len(hdr);
+
+        assert_eq!(header_len as usize, buf.len());
+        let (_, deser) = deserialize::DeHeader::parse(buf.as_slice()).unwrap();
+
+        assert_eq!(
+            deserialize::DeHeader {
+                de_type: hdr.de_type,
+                contents_len: hdr.len,
+                header_bytes: buf
+            },
+            deser
+        )
+    }
+}
+
+fn expected_header_len(hdr: DeHeader) -> u8 {
+    if hdr.de_type.as_u32() <= 15 && hdr.len.len <= 7 {
+        1
+    } else {
+        // at least one type byte to handle the type = 0 case
+        1_u8 + cmp::max(1, (32 - hdr.de_type.as_u32().leading_zeros() as u8 + 6) / 7)
+    }
+}
+
+impl distributions::Distribution<DeLength> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> DeLength {
+        DeLength::try_from(rng.gen_range(0_u8..128)).unwrap()
+    }
+}
+
+impl distributions::Distribution<DeType> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> DeType {
+        rng.gen::<u32>().into()
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/serialize/mod.rs b/nearby/presence/np_adv/src/extended/serialize/mod.rs
new file mode 100644
index 0000000..6cedd1e
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/mod.rs
@@ -0,0 +1,865 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Serialization support for V1 advertisements.
+//!
+//! # Examples
+//!
+//! Serialize some DEs without an adv salt:
+//!
+//! ```
+//! use np_adv::{
+//!     extended::{data_elements::*, serialize::*, de_type::DeType },
+//!     PublicIdentity
+//! };
+//! use np_adv::shared_data::TxPower;
+//!
+//! // no section identities or DEs need salt in this example
+//! let mut adv_builder = AdvBuilder::new();
+//! let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+//!
+//! section_builder.add_de(|_salt| TxPowerDataElement::from(TxPower::try_from(3).unwrap())).unwrap();
+//!
+//! // add some other DE with type = 1000
+//! section_builder.add_de_res(|_salt|
+//!     GenericDataElement::try_from( DeType::from(1000_u32), &[10, 11, 12, 13])
+//! ).unwrap();
+//!
+//! section_builder.add_to_advertisement();
+//!
+//! assert_eq!(
+//!     &[
+//!         0x20, // adv header
+//!         10, // section header
+//!         0x03, // public identity
+//!         0x15, 3, // tx power
+//!         0x84, 0x87, 0x68, 10, 11, 12, 13, // other DE
+//!     ],
+//!     adv_builder.into_advertisement().as_slice()
+//! );
+//! ```
+//!
+//! Serialize some DEs in an adv with an encrypted section:
+//!
+//! ```
+//! use np_adv::{
+//!     de_type::EncryptedIdentityDataElementType,
+//!     extended::{data_elements::*, serialize::*, de_type::DeType },
+//! };
+//! use rand::{Rng as _, SeedableRng as _};
+//! use crypto_provider::{CryptoProvider, CryptoRng};
+//! use crypto_provider_default::CryptoProviderImpl;
+//! use np_adv::shared_data::TxPower;
+//!
+//! let mut adv_builder = AdvBuilder::new();
+//!
+//! // these would come from the credential//!
+//! let mut rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+//! let metadata_key: [u8; 16] = rng.gen();
+//! let key_seed: [u8; 32] = rng.gen();
+//! // use your preferred crypto impl
+//! let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+//!
+//! let mut section_builder = adv_builder.section_builder(MicEncrypted::new_random_salt(
+//!     &mut rng,
+//!     EncryptedIdentityDataElementType::Private,
+//!     &metadata_key,
+//!     &key_seed_hkdf,
+//! )).unwrap();
+//!
+//! section_builder.add_de(|_salt| TxPowerDataElement::from(TxPower::try_from(3).unwrap())).unwrap();
+//!
+//! // add some other DE with type = 1000
+//! section_builder.add_de_res(|salt|
+//!     GenericDataElement::try_from(
+//!         DeType::from(1000_u32),
+//!         &do_fancy_crypto(salt.derive::<16>().expect("16 is a valid HKDF length")))
+//! ).unwrap();
+//!
+//! section_builder.add_to_advertisement();
+//!
+//! // can't assert much about this since most of it is random
+//! assert_eq!(
+//!     0x20, // adv header
+//!     adv_builder.into_advertisement().as_slice()[0]
+//! );
+//!
+//! // A hypothetical function that uses the per-DE derived salt to do something like encrypt or
+//! // otherwise scramble data
+//! fn do_fancy_crypto(derived_salt: [u8; 16]) -> [u8; 16] {
+//!     // flipping bits is just a nonsense example, do something real here
+//!     derived_salt.iter().map(|b| !b)
+//!         .collect::<Vec<_>>()
+//!         .try_into().expect("array sizes match")
+//! }
+//! ```
+use crate::extended::NP_V1_ADV_MAX_SECTION_COUNT;
+use crate::{
+    de_type::{EncryptedIdentityDataElementType, IdentityDataElementType},
+    extended::{
+        data_elements::EncryptionInfoDataElement,
+        de_type::{DeType, ExtendedDataElementType},
+        deserialize::{EncryptedIdentityMetadata, EncryptionInfo, SectionMic},
+        section_signature_payload::*,
+        to_array_view, DeLength, BLE_ADV_SVC_CONTENT_LEN, NP_ADV_MAX_SECTION_LEN,
+    },
+    DeLengthOutOfRange, PublicIdentity, NP_SVC_UUID,
+};
+use array_view::ArrayView;
+use core::fmt;
+use core::marker::PhantomData;
+use crypto_provider::{
+    aes::{
+        ctr::{AesCtr, AesCtrNonce, NonceAndCounter},
+        Aes128Key,
+    },
+    hmac::Hmac,
+    CryptoProvider, CryptoRng,
+};
+use np_hkdf::v1_salt;
+use np_hkdf::v1_salt::{DataElementOffset, V1Salt};
+use sink::Sink;
+
+#[cfg(test)]
+pub(crate) mod adv_tests;
+#[cfg(test)]
+mod de_header_tests;
+#[cfg(test)]
+pub(crate) mod section_tests;
+#[cfg(test)]
+mod test_vectors;
+
+/// Builder for V1 advertisements.
+#[derive(Debug)]
+pub struct AdvBuilder {
+    /// Contains the adv header byte
+    adv: tinyvec::ArrayVec<[u8; BLE_ADV_SVC_CONTENT_LEN]>,
+    section_count: usize,
+}
+
+impl AdvBuilder {
+    /// Build an [AdvBuilder].
+    pub fn new() -> AdvBuilder {
+        let mut adv = tinyvec::ArrayVec::new();
+        // version 1, 0bVVVRRRRR
+        adv.push(0b00100000);
+
+        AdvBuilder { adv, section_count: 0 }
+    }
+
+    /// Create a section builder.
+    ///
+    /// Returns `Err` if there isn't room in the advertisement for the section at its minimum length
+    /// with its chosen identity.
+    ///
+    /// The builder will not accept more DEs than can fit given the space already used in the
+    /// advertisement by previous sections, if any.
+    ///
+    /// Once the builder is populated, add it to the originating advertisement with
+    /// [SectionBuilder.add_to_advertisement].
+    pub fn section_builder<I: SectionIdentity>(
+        &mut self,
+        identity: I,
+    ) -> Result<SectionBuilder<I>, AddSectionError> {
+        // section header and identity prefix
+        let prefix_len = 1 + I::PREFIX_LEN;
+        let minimum_section_len = prefix_len + I::SUFFIX_LEN;
+        // the max overall len available to the section
+        let available_len = self.adv.capacity() - self.adv.len();
+
+        if available_len < minimum_section_len {
+            return Err(AddSectionError::InsufficientAdvSpace);
+        }
+
+        if self.section_count >= NP_V1_ADV_MAX_SECTION_COUNT {
+            return Err(AddSectionError::MaxSectionCountExceeded);
+        }
+
+        let mut section = tinyvec::ArrayVec::new();
+        // placeholder for section header and identity prefix
+        section.resize(prefix_len, 0);
+
+        Ok(SectionBuilder {
+            section: CapacityLimitedVec {
+                vec: section,
+                // won't underflow: checked above
+                capacity: available_len - I::SUFFIX_LEN,
+            },
+            identity,
+            adv_builder: self,
+            next_de_offset: I::INITIAL_DE_OFFSET,
+        })
+    }
+
+    /// Convert the builder into an encoded advertisement.
+    pub fn into_advertisement(self) -> EncodedAdvertisement {
+        EncodedAdvertisement { adv: to_array_view(self.adv) }
+    }
+
+    /// Add the section, which must have come from a SectionBuilder generated from this, into this
+    /// advertisement.
+    fn add_section(&mut self, section: EncodedSection) {
+        self.adv
+            .try_extend_from_slice(section.as_slice())
+            .expect("section capacity enforced in the section builder");
+        self.section_count += 1;
+    }
+
+    fn header_byte(&self) -> u8 {
+        self.adv[0]
+    }
+}
+
+impl Default for AdvBuilder {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
+/// Errors that can occur when adding a section to an advertisement
+#[derive(Debug, PartialEq, Eq)]
+pub enum AddSectionError {
+    /// The advertisement doesn't have enough space to hold the minimum size of the section
+    InsufficientAdvSpace,
+    /// The advertisement can only hold a maximum of NP_V1_ADV_MAX_SECTION_COUNT number of sections
+    MaxSectionCountExceeded,
+}
+
+/// Derived salt for an individual data element.
+pub struct DeSalt<C: CryptoProvider> {
+    salt: V1Salt<C>,
+    de_offset: DataElementOffset,
+}
+
+impl<C: CryptoProvider> DeSalt<C> {
+    /// Derive salt of the requested length.
+    ///
+    /// The length must be a valid HKDF-SHA256 length.
+    pub fn derive<const N: usize>(&self) -> Option<[u8; N]> {
+        self.salt.derive(Some(self.de_offset))
+    }
+}
+
+/// An encoded NP V1 advertisement, starting with the NP advertisement header byte.
+#[derive(Debug, PartialEq, Eq)]
+pub struct EncodedAdvertisement {
+    adv: ArrayView<u8, BLE_ADV_SVC_CONTENT_LEN>,
+}
+
+impl EncodedAdvertisement {
+    /// Returns the advertisement as a slice.
+    pub fn as_slice(&self) -> &[u8] {
+        self.adv.as_slice()
+    }
+}
+
+/// The encoded form of an advertisement section
+type EncodedSection = ArrayView<u8, NP_ADV_MAX_SECTION_LEN>;
+
+/// Accumulates data elements and encodes them into a section.
+#[derive(Debug)]
+pub struct SectionBuilder<'a, I: SectionIdentity> {
+    /// Contains the section header, the identity-specified overhead, and any DEs added
+    pub(crate) section: CapacityLimitedVec<u8, NP_ADV_MAX_SECTION_LEN>,
+    identity: I,
+    /// mut ref to enforce only one active section builder at a time
+    adv_builder: &'a mut AdvBuilder,
+    next_de_offset: DataElementOffset,
+}
+
+impl<'a, I: SectionIdentity> SectionBuilder<'a, I> {
+    /// Add this builder to the advertisement that created it.
+    pub fn add_to_advertisement(self) {
+        let adv_builder = self.adv_builder;
+        adv_builder.add_section(Self::build_section(
+            self.section.into_inner(),
+            self.identity,
+            adv_builder,
+        ))
+    }
+
+    /// Add a data element to the section with a closure that returns a `Result`.
+    ///
+    /// The provided `build_de` closure will be invoked with the derived salt for this DE.
+    pub fn add_de_res<W: WriteDataElement, E, F: FnOnce(I::DerivedSalt) -> Result<W, E>>(
+        &mut self,
+        build_de: F,
+    ) -> Result<(), AddDataElementError<E>> {
+        let writer = build_de(self.identity.de_salt(self.next_de_offset))
+            .map_err(AddDataElementError::BuildDeError)?;
+
+        let orig_len = self.section.len();
+        // since we own the writer, and it's immutable, no race risk writing header w/ len then
+        // the contents as long as it's not simply an incorrect impl
+        let de_header = writer.de_header();
+        let content_len = self
+            .section
+            .try_extend_from_slice(de_header.serialize().as_slice())
+            .ok_or(AddDataElementError::InsufficientSectionSpace)
+            .and_then(|_| {
+                let after_header_len = self.section.len();
+                writer
+                    .write_de_contents(&mut self.section)
+                    .ok_or(AddDataElementError::InsufficientSectionSpace)
+                    .map(|_| self.section.len() - after_header_len)
+            })
+            .map_err(|e| {
+                // if anything went wrong, truncate any partial writes (e.g. just the header)
+                self.section.truncate(orig_len);
+                e
+            })?;
+
+        if content_len != de_header.len.as_usize() {
+            panic!(
+                "Buggy WriteDataElement impl: header len {}, actual written len {}",
+                de_header.len.as_usize(),
+                content_len
+            );
+        }
+
+        self.next_de_offset = self.next_de_offset.incremented();
+
+        Ok(())
+    }
+
+    /// Add a data element to the section with a closure that returns the data element directly.
+    ///
+    /// The provided `build_de` closure will be invoked with the derived salt for this DE.
+    pub fn add_de<W: WriteDataElement, F: FnOnce(I::DerivedSalt) -> W>(
+        &mut self,
+        build_de: F,
+    ) -> Result<(), AddDataElementError<()>> {
+        self.add_de_res(|derived_salt| Ok::<_, ()>(build_de(derived_salt)))
+    }
+
+    /// Convert a section builder's contents into an encoded section.
+    ///
+    /// Implemented without self to avoid partial-move issues.
+    fn build_section(
+        mut section_contents: tinyvec::ArrayVec<[u8; NP_ADV_MAX_SECTION_LEN]>,
+        mut identity: I,
+        adv_builder: &AdvBuilder,
+    ) -> EncodedSection {
+        // there is space because the capacity for DEs was restricted to allow it
+        section_contents.resize(section_contents.len() + I::SUFFIX_LEN, 0);
+
+        section_contents[0] = section_contents
+            .len()
+            .try_into()
+            .ok()
+            .and_then(|len: u8| len.checked_sub(1))
+            .expect("section length is always <=255 and non-negative");
+
+        identity.postprocess(
+            adv_builder.header_byte(),
+            section_contents[0],
+            &mut section_contents[1..],
+        );
+
+        to_array_view(section_contents)
+    }
+}
+
+/// Errors for adding a DE to a section
+#[derive(Debug, PartialEq, Eq)]
+pub enum AddDataElementError<E> {
+    /// An error occurred when invoking the DE builder closure.
+    BuildDeError(E),
+    /// Too much data to fit into the section
+    InsufficientSectionSpace,
+}
+
+/// The identity used for an individual section.
+pub trait SectionIdentity {
+    /// How much space needs to be reserved for this identity's prefix bytes after the section
+    /// header and before other DEs
+    const PREFIX_LEN: usize;
+
+    /// How much space needs to be reserved after the DEs
+    const SUFFIX_LEN: usize;
+
+    /// The DE offset to use for any DEs added to the section
+    const INITIAL_DE_OFFSET: DataElementOffset;
+
+    /// Postprocess the contents of the section (the data after the section header byte), which will
+    /// start with [Self::PREFIX_LEN] bytes set aside for the identity's use, and similarly end with
+    /// [Self::SUFFIX_LEN] bytes, with DEs (if any) in the middle.
+    fn postprocess(&mut self, adv_header_byte: u8, section_header: u8, section_contents: &mut [u8]);
+
+    /// The type of derived salt produced for a DE sharing a section with this identity.
+    type DerivedSalt;
+
+    /// Produce a `Self::Output` salt for a DE.
+    fn de_salt(&self, de_offset: DataElementOffset) -> Self::DerivedSalt;
+}
+
+impl SectionIdentity for PublicIdentity {
+    /// 1 byte of public identity DE header
+    const PREFIX_LEN: usize = 1;
+    const SUFFIX_LEN: usize = 0;
+    /// Room for the public DE
+    const INITIAL_DE_OFFSET: DataElementOffset = DataElementOffset::ZERO.incremented();
+
+    fn postprocess(
+        &mut self,
+        _adv_header_byte: u8,
+        _section_header: u8,
+        section_contents: &mut [u8],
+    ) {
+        section_contents[0..1].copy_from_slice(
+            DeHeader { len: DeLength::ZERO, de_type: IdentityDataElementType::Public.type_code() }
+                .serialize()
+                .as_slice(),
+        )
+    }
+
+    type DerivedSalt = ();
+
+    fn de_salt(&self, _de_offset: DataElementOffset) -> Self::DerivedSalt {}
+}
+
+/// Encrypts the data elements and protects integrity with a MIC using key material derived from
+/// an NP identity.
+pub struct MicEncrypted<'a, C: CryptoProvider> {
+    identity_type: EncryptedIdentityDataElementType,
+    salt: V1Salt<C>,
+    identity_payload: &'a [u8; 16],
+    aes_key: Aes128Key,
+    mic_hmac_key: np_hkdf::NpHmacSha256Key<C>,
+}
+
+impl<'a, C: CryptoProvider> MicEncrypted<'a, C> {
+    /// Build a [MicEncrypted] from the provided identity info with a random salt.
+    pub fn new_random_salt(
+        rng: &mut C::CryptoRng,
+        identity_type: EncryptedIdentityDataElementType,
+        identity_payload: &'a [u8; 16],
+        keys: &impl np_hkdf::UnsignedSectionKeys<C>,
+    ) -> Self {
+        let salt: V1Salt<C> = rng.gen::<[u8; 16]>().into();
+        Self::new(identity_type, salt, identity_payload, keys)
+    }
+
+    /// Build a [MicEncrypted] from the provided identity info.
+    fn new(
+        identity_type: EncryptedIdentityDataElementType,
+        salt: V1Salt<C>,
+        identity_payload: &'a [u8; 16],
+        keys: &impl np_hkdf::UnsignedSectionKeys<C>,
+    ) -> Self {
+        MicEncrypted {
+            identity_type,
+            salt,
+            identity_payload,
+            aes_key: keys.aes_key(),
+            mic_hmac_key: keys.hmac_key(),
+        }
+    }
+
+    /// Build a [MicEncrypted] from the provided identity info. Exposed outside of this crate for
+    /// testing purposes only.
+    #[cfg(any(test, feature = "testing"))]
+    pub fn new_for_testing(
+        identity_type: EncryptedIdentityDataElementType,
+        salt: V1Salt<C>,
+        identity_payload: &'a [u8; 16],
+        keys: &impl np_hkdf::UnsignedSectionKeys<C>,
+    ) -> Self {
+        Self::new(identity_type, salt, identity_payload, keys)
+    }
+}
+
+impl<'a, C: CryptoProvider> SectionIdentity for MicEncrypted<'a, C> {
+    const PREFIX_LEN: usize =
+        EncryptionInfo::TOTAL_DE_LEN + EncryptedIdentityMetadata::TOTAL_DE_LEN;
+    /// Length of mic
+    const SUFFIX_LEN: usize = SectionMic::CONTENTS_LEN;
+    /// Room for the mic, encryption info, and identity DEs
+    const INITIAL_DE_OFFSET: DataElementOffset =
+        DataElementOffset::ZERO.incremented().incremented();
+
+    fn postprocess(
+        &mut self,
+        adv_header_byte: u8,
+        section_header: u8,
+        section_contents: &mut [u8],
+    ) {
+        // prefix byte layout:
+        // 0-18: Encryption Info DE (header + scheme + salt)
+        // 19-20: Identity DE header
+        // 21-36: Identity DE contents (metadata key)
+
+        // Encryption Info DE
+        let encryption_info_bytes = EncryptionInfoDataElement::mic(
+            self.salt.as_slice().try_into().expect("Salt should be 16 bytes"),
+        )
+        .serialize();
+        section_contents[0..19].copy_from_slice(&encryption_info_bytes);
+
+        // Identity DE
+        let identity_header = identity_de_header(self.identity_type, self.identity_payload);
+        section_contents[19..21].copy_from_slice(identity_header.serialize().as_slice());
+        section_contents[21..37].copy_from_slice(self.identity_payload);
+
+        // DE offset for identity is 1: Encryption Info DE, Identity DE, then other DEs
+        let nonce: AesCtrNonce = self
+            .de_salt(v1_salt::DataElementOffset::from(1))
+            .derive()
+            .expect("AES-CTR nonce is a valid HKDF length");
+
+        let mut cipher = C::AesCtr128::new(&self.aes_key, NonceAndCounter::from_nonce(nonce));
+
+        let ciphertext_end = section_contents.len() - SectionMic::CONTENTS_LEN;
+
+        // encrypt just the part that should be ciphertext: identity DE contents and subsequent DEs
+        cipher.encrypt(&mut section_contents[21..ciphertext_end]);
+
+        // calculate MAC per the spec
+        let mut section_hmac = self.mic_hmac_key.build_hmac();
+        // svc uuid
+        section_hmac.update(NP_SVC_UUID.as_slice());
+        // adv header
+        section_hmac.update(&[adv_header_byte]);
+        // section header
+        section_hmac.update(&[section_header]);
+        // encryption info
+        section_hmac.update(&encryption_info_bytes);
+        // derived salt
+        section_hmac.update(&nonce);
+        // identity header + ciphertext
+        section_hmac.update(&section_contents[19..ciphertext_end]);
+
+        let mic: [u8; 32] = section_hmac.finalize();
+
+        // write truncated MIC
+        section_contents[ciphertext_end..].copy_from_slice(&mic[..SectionMic::CONTENTS_LEN]);
+    }
+
+    type DerivedSalt = DeSalt<C>;
+
+    fn de_salt(&self, de_offset: DataElementOffset) -> Self::DerivedSalt {
+        DeSalt { salt: V1Salt::from(*self.salt.as_array_ref()), de_offset }
+    }
+}
+
+/// Encrypts the data elements and protects integrity with an np_ed25519 signature
+/// using key material derived from an NP identity.
+pub struct SignedEncrypted<'a, C: CryptoProvider> {
+    identity_type: EncryptedIdentityDataElementType,
+    salt: V1Salt<C>,
+    metadata_key: &'a [u8; 16],
+    key_pair: &'a np_ed25519::KeyPair<C>,
+    aes_key: Aes128Key,
+    _marker: PhantomData<C>,
+}
+
+impl<'a, C: CryptoProvider> SignedEncrypted<'a, C> {
+    /// Build a [SignedEncrypted] from the provided identity material with a random salt.
+    pub fn new_random_salt(
+        rng: &mut C::CryptoRng,
+        identity_type: EncryptedIdentityDataElementType,
+        metadata_key: &'a [u8; 16],
+        key_pair: &'a np_ed25519::KeyPair<C>,
+        key_seed_hkdf: &np_hkdf::NpKeySeedHkdf<C>,
+    ) -> Self {
+        let salt: V1Salt<C> = rng.gen::<[u8; 16]>().into();
+        Self::new(identity_type, salt, metadata_key, key_pair, key_seed_hkdf)
+    }
+
+    /// Build a [SignedEncrypted] from the provided identity material.
+    pub(crate) fn new(
+        identity_type: EncryptedIdentityDataElementType,
+        salt: V1Salt<C>,
+        metadata_key: &'a [u8; 16],
+        key_pair: &'a np_ed25519::KeyPair<C>,
+        key_seed_hkdf: &np_hkdf::NpKeySeedHkdf<C>,
+    ) -> Self {
+        Self {
+            identity_type,
+            salt,
+            metadata_key,
+            key_pair,
+            aes_key: key_seed_hkdf.extended_signed_section_aes_key(),
+            _marker: Default::default(),
+        }
+    }
+}
+
+impl<'a, C: CryptoProvider> SectionIdentity for SignedEncrypted<'a, C> {
+    const PREFIX_LEN: usize =
+        EncryptionInfo::TOTAL_DE_LEN + EncryptedIdentityMetadata::TOTAL_DE_LEN;
+    /// Ed25519 signature
+    const SUFFIX_LEN: usize = crypto_provider::ed25519::SIGNATURE_LENGTH;
+    /// Room for the encryption info and identity DEs
+    const INITIAL_DE_OFFSET: DataElementOffset =
+        DataElementOffset::ZERO.incremented().incremented();
+
+    fn postprocess(
+        &mut self,
+        adv_header_byte: u8,
+        section_header: u8,
+        section_contents: &mut [u8],
+    ) {
+        let encryption_info_bytes = EncryptionInfoDataElement::signature(
+            self.salt.as_slice().try_into().expect("Salt should be 16 bytes"),
+        )
+        .serialize();
+        section_contents[0..19].copy_from_slice(&encryption_info_bytes);
+
+        let identity_header = identity_de_header(self.identity_type, self.metadata_key);
+        section_contents[19..21].copy_from_slice(identity_header.serialize().as_slice());
+        section_contents[21..37].copy_from_slice(self.metadata_key);
+
+        let nonce: AesCtrNonce = self
+            .de_salt(v1_salt::DataElementOffset::from(1))
+            .derive()
+            .expect("AES-CTR nonce is a valid HKDF length");
+
+        let (before_sig, sig) =
+            section_contents.split_at_mut(section_contents.len() - Self::SUFFIX_LEN);
+        let (encryption_info, after_encryption_info) =
+            before_sig.split_at(EncryptionInfo::TOTAL_DE_LEN);
+
+        let encryption_info: &[u8; EncryptionInfo::TOTAL_DE_LEN] =
+            encryption_info.try_into().unwrap();
+
+        // we need to sign the 16-byte IV, which doesn't have to actually fit in the adv, but we
+        // don't need a bigger buffer here since we won't be including the 66 bytes for the sig +
+        // header.
+        // If the stack usage ever becomes a problem, we can investigate pre hashing for the
+        // signature.
+        let nonce_ref = &nonce;
+        let section_signature_payload = SectionSignaturePayload::from_serialized_parts(
+            adv_header_byte,
+            section_header,
+            encryption_info,
+            nonce_ref,
+            after_encryption_info,
+        );
+
+        let signature = section_signature_payload.sign(self.key_pair);
+
+        sig[0..64].copy_from_slice(&signature.to_bytes());
+
+        let mut cipher = C::AesCtr128::new(&self.aes_key, NonceAndCounter::from_nonce(nonce));
+
+        // encrypt just the part that should be ciphertext: identity DE contents and subsequent DEs
+        cipher.encrypt(&mut section_contents[21..]);
+    }
+
+    type DerivedSalt = DeSalt<C>;
+
+    fn de_salt(&self, de_offset: DataElementOffset) -> Self::DerivedSalt {
+        DeSalt { salt: V1Salt::from(*self.salt.as_array_ref()), de_offset }
+    }
+}
+
+/// For DE structs that only implement one DE type, rather than multi-type impls.
+pub trait SingleTypeDataElement {
+    /// The DE type for the DE.
+    const DE_TYPE: DeType;
+}
+
+/// Writes data for a V1 DE into a provided buffer.
+///
+/// V1 data elements can be hundreds of bytes, so we ideally wouldn't even stack allocate a buffer
+/// big enough for that, hence an abstraction that writes into an existing buffer.
+pub trait WriteDataElement {
+    /// Returns the DE header that will be serialized into the section.
+    fn de_header(&self) -> DeHeader;
+    /// Write just the contents of the DE, returning `Some` if all contents could be written and
+    /// `None` otherwise.
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()>;
+}
+
+// convenience impl for &W
+impl<W: WriteDataElement> WriteDataElement for &W {
+    fn de_header(&self) -> DeHeader {
+        (*self).de_header()
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        (*self).write_de_contents(sink)
+    }
+}
+
+/// Serialization-specific representation of a DE header
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct DeHeader {
+    /// The length of the content of the DE
+    len: DeLength,
+    pub(crate) de_type: DeType,
+}
+
+impl DeHeader {
+    /// Build a DeHeader from the provided type and length
+    pub fn new(de_type: DeType, len: DeLength) -> Self {
+        DeHeader { de_type, len }
+    }
+
+    /// Serialize the DE header as per the V1 DE header format:
+    /// - 1 byte form for length <= 3 bits, type <= 4 bits: `0LLLTTTT`
+    /// - multi byte form: `0b1LLLLLLL [0b1TTTTTTT ...] 0b0TTTTTTT`
+    ///   - the shortest possible encoding must be used (no empty prefix type bytes)
+    ///
+    /// We assume that a 32-bit de type is sufficient, which would take at most 5 7-bit chunks to
+    /// encode, resulting in a total length of 6 bytes with the initial length byte.
+    pub(crate) fn serialize(&self) -> ArrayView<u8, 6> {
+        let mut buffer = [0; 6];
+        let de_type = self.de_type.as_u32();
+        let hi_bit = 0x80_u8;
+        let len = self.len.len;
+        if len < 8 && de_type < 16 {
+            buffer[0] = len << 4 | de_type as u8;
+            ArrayView::try_from_array(buffer, 1).expect("1 is a valid length")
+        } else {
+            // length w/ extended bit
+            buffer[0] = hi_bit | len;
+
+            // expand to a u64 so we can represent all 5 7-bit chunks of a u32, shifted so that
+            // it fills the top 5 * 7 = 35 bits after the high bit, which is left unset so that
+            // the MSB can be interpreted as a 7-bit chunk with an unset high bit.
+            let mut type64 = (de_type as u64) << (64 - 35 - 1);
+            let mut remaining_chunks = 5;
+            let mut chunks_written = 0;
+            // write 7 bit chunks, skipping leading 0 chunks
+            while remaining_chunks > 0 {
+                let chunk = type64.to_be_bytes()[0];
+                remaining_chunks -= 1;
+
+                // shift 7 more bits up, leaving the high bit unset
+                type64 = (type64 << 7) & (u64::MAX >> 1);
+
+                if chunks_written == 0 && chunk == 0 {
+                    // skip leading all-zero chunks
+                    continue;
+                }
+
+                buffer[1 + chunks_written] = chunk;
+                chunks_written += 1;
+            }
+            if chunks_written > 0 {
+                // fill in high bits for all but the last
+                for byte in buffer[1..chunks_written].iter_mut() {
+                    *byte |= hi_bit;
+                }
+
+                ArrayView::try_from_array(buffer, 1 + chunks_written).expect("length is at most 6")
+            } else {
+                // type byte is a leading 0 bit w/ 0 type, so use the existing 0 byte
+                ArrayView::try_from_array(buffer, 2).expect("2 is a valid length")
+            }
+        }
+    }
+}
+
+fn identity_de_header(
+    id_type: EncryptedIdentityDataElementType,
+    metadata_key: &[u8; 16],
+) -> DeHeader {
+    DeHeader {
+        de_type: id_type.type_code(),
+        len: metadata_key
+            .len()
+            .try_into()
+            .map_err(|_e| DeLengthOutOfRange)
+            .and_then(|len: u8| len.try_into())
+            .expect("metadata key is a valid DE length"),
+    }
+}
+
+/// A wrapper around a fixed-size tinyvec that can have its capacity further constrained to handle
+/// dynamic size limits.
+#[derive(Debug)]
+pub(crate) struct CapacityLimitedVec<T, const N: usize>
+where
+    T: fmt::Debug + Clone,
+    [T; N]: tinyvec::Array + fmt::Debug,
+    <[T; N] as tinyvec::Array>::Item: fmt::Debug + Clone,
+{
+    /// constraint on the occupied space in `vec`.
+    /// Invariant: `vec.len() <= constraint` and `vec.capacity() >= capacity`.
+    capacity: usize,
+    vec: tinyvec::ArrayVec<[T; N]>,
+}
+
+impl<T, const N: usize> CapacityLimitedVec<T, N>
+where
+    T: fmt::Debug + Clone,
+    [T; N]: tinyvec::Array + fmt::Debug,
+    <[T; N] as tinyvec::Array>::Item: fmt::Debug + Clone,
+{
+    pub(crate) fn len(&self) -> usize {
+        self.vec.len()
+    }
+
+    fn capacity(&self) -> usize {
+        self.capacity
+    }
+
+    fn truncate(&mut self, len: usize) {
+        self.vec.truncate(len);
+    }
+
+    fn into_inner(self) -> tinyvec::ArrayVec<[T; N]> {
+        self.vec
+    }
+}
+
+impl<T, const N: usize> Sink<<[T; N] as tinyvec::Array>::Item> for CapacityLimitedVec<T, N>
+where
+    T: fmt::Debug + Clone,
+    [T; N]: tinyvec::Array + fmt::Debug,
+    <[T; N] as tinyvec::Array>::Item: fmt::Debug + Clone,
+{
+    fn try_extend_from_slice(&mut self, items: &[<[T; N] as tinyvec::Array>::Item]) -> Option<()> {
+        if items.len() > (self.capacity() - self.len()) {
+            return None;
+        }
+        // won't panic: just checked the length
+        self.vec.extend_from_slice(items);
+        Some(())
+    }
+
+    fn try_push(&mut self, item: <[T; N] as tinyvec::Array>::Item) -> Option<()> {
+        if self.len() == self.capacity() {
+            // already full
+            None
+        } else {
+            self.vec.push(item);
+            Some(())
+        }
+    }
+}
+
+impl<T, const N: usize> AsRef<[<[T; N] as tinyvec::Array>::Item]> for CapacityLimitedVec<T, N>
+where
+    T: fmt::Debug + Clone,
+    [T; N]: tinyvec::Array + fmt::Debug,
+    <[T; N] as tinyvec::Array>::Item: fmt::Debug + Clone,
+{
+    fn as_ref(&self) -> &[<[T; N] as tinyvec::Array>::Item] {
+        self.vec.as_slice()
+    }
+}
+impl<T, const N: usize> AsMut<[<[T; N] as tinyvec::Array>::Item]> for CapacityLimitedVec<T, N>
+where
+    T: fmt::Debug + Clone,
+    [T; N]: tinyvec::Array + fmt::Debug,
+    <[T; N] as tinyvec::Array>::Item: fmt::Debug + Clone,
+{
+    fn as_mut(&mut self) -> &mut [<[T; N] as tinyvec::Array>::Item] {
+        self.vec.as_mut_slice()
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/serialize/section_tests.rs b/nearby/presence/np_adv/src/extended/serialize/section_tests.rs
new file mode 100644
index 0000000..af11076
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/section_tests.rs
@@ -0,0 +1,860 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::extended::serialize::AddSectionError::MaxSectionCountExceeded;
+use crate::{
+    extended::data_elements::{ContextSyncSeqNumDataElement, GenericDataElement},
+    shared_data::ContextSyncSeqNum,
+};
+use crypto_provider::aes::ctr::AES_CTR_NONCE_LEN;
+use crypto_provider_default::CryptoProviderImpl;
+use np_hkdf::v1_salt::V1Salt;
+use rand::rngs::StdRng;
+use rand::{prelude::SliceRandom as _, Rng as _, SeedableRng as _};
+use std::{prelude::rust_2021::*, vec};
+use strum::IntoEnumIterator as _;
+
+type KeyPair = np_ed25519::KeyPair<CryptoProviderImpl>;
+
+#[test]
+fn public_identity_section_empty() {
+    let mut adv_builder = AdvBuilder::new();
+    let section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+    assert_eq!(&[1_u8, 0x03], section_builder.into_section().as_slice());
+}
+
+#[test]
+fn mic_encrypted_identity_section_empty() {
+    do_mic_encrypted_identity_fixed_key_material_test::<DummyDataElement>(&[]);
+}
+
+#[test]
+fn mic_encrypted_identity_section_random_des() {
+    let mut rng = StdRng::from_entropy();
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    for _ in 0..1_000 {
+        let num_des = rng.gen_range(1..=5);
+
+        let extra_des = (0..num_des)
+            .map(|_| {
+                let de_len = rng.gen_range(0..=30);
+                DummyDataElement {
+                    de_type: rng.gen_range(0_u32..=u32::MAX).into(),
+                    data: rand_ext::random_vec_rc(&mut rng, de_len),
+                }
+            })
+            .collect::<Vec<_>>();
+
+        let metadata_key = rng.gen();
+        let key_seed = rng.gen();
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+        let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+
+        let mut adv_builder = AdvBuilder::new();
+
+        let mut section_builder = adv_builder
+            .section_builder(MicEncrypted::new_random_salt(
+                &mut crypto_rng,
+                identity_type,
+                &metadata_key,
+                &key_seed_hkdf,
+            ))
+            .unwrap();
+        let section_salt =
+            V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+        for de in extra_des.iter() {
+            section_builder.add_de(|_| de).unwrap();
+        }
+
+        // length 53: 19 for encryption info, 18 for identity, 16 for MIC
+        let section_length = 53
+            + extra_des
+                .iter()
+                .map(|de| {
+                    de.de_header().serialize().len() as u8 + de.de_header().len.as_usize() as u8
+                })
+                .sum::<u8>();
+
+        let encryption_info = [
+            &[
+                0x91, 0x10, // header
+                0x00, // scheme (mic)
+            ],
+            section_salt.as_slice(),
+        ]
+        .concat();
+
+        let identity_de_header =
+            DeHeader { len: 16_u8.try_into().unwrap(), de_type: identity_type.type_code() };
+
+        let mut hmac = np_hkdf::UnsignedSectionKeys::hmac_key(&key_seed_hkdf).build_hmac();
+        // just to be sure, we'll construct our test hmac all in one update() call
+        let mut hmac_input = vec![];
+        hmac_input.extend_from_slice(NP_SVC_UUID.as_slice());
+        hmac_input.push(0b00100000); // v1
+
+        // section header
+        hmac_input.push(section_length);
+        hmac_input.extend_from_slice(&encryption_info);
+        let nonce = section_salt.derive::<{ AES_CTR_NONCE_LEN }>(Some(1.into())).unwrap();
+        hmac_input.extend_from_slice(nonce.as_slice());
+
+        hmac_input.extend_from_slice(identity_de_header.serialize().as_slice());
+
+        let mut cipher = <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+            &np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf),
+            NonceAndCounter::from_nonce(nonce),
+        );
+        let mut plaintext = metadata_key.as_slice().to_vec();
+
+        for de in extra_des {
+            plaintext.extend_from_slice(de.de_header().serialize().as_slice());
+            de.write_de_contents(&mut plaintext);
+        }
+
+        cipher.encrypt(&mut plaintext);
+        let ciphertext = plaintext;
+
+        hmac_input.extend_from_slice(&ciphertext);
+
+        hmac.update(&hmac_input);
+        let mic = hmac.finalize();
+
+        let mut expected = vec![];
+        expected.push(section_length);
+        expected.extend_from_slice(&encryption_info);
+        expected.extend_from_slice(identity_de_header.serialize().as_slice());
+        expected.extend_from_slice(&ciphertext);
+        expected.extend_from_slice(&mic[..16]);
+
+        assert_eq!(&expected, section_builder.into_section().as_slice());
+    }
+}
+
+#[test]
+fn signature_encrypted_identity_section_empty() {
+    do_signature_encrypted_identity_fixed_key_material_test::<DummyDataElement>(&[]);
+}
+
+#[test]
+fn signature_encrypted_identity_section_random_des() {
+    let mut rng = StdRng::from_entropy();
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    for _ in 0..1_000 {
+        let num_des = rng.gen_range(1..=5);
+
+        let metadata_key = rng.gen();
+        let key_seed = rng.gen();
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+        let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+
+        let mut adv_builder = AdvBuilder::new();
+        let key_pair = KeyPair::generate();
+
+        let mut section_builder = adv_builder
+            .section_builder(SignedEncrypted::new_random_salt(
+                &mut crypto_rng,
+                identity_type,
+                &metadata_key,
+                &key_pair,
+                &key_seed_hkdf,
+            ))
+            .unwrap();
+        let section_salt =
+            V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+        let extra_des = (0..num_des)
+            .map(|_| {
+                let de_len = rng.gen_range(0..=30);
+                DummyDataElement {
+                    de_type: rng.gen_range(0_u32..=u32::MAX).into(),
+                    data: rand_ext::random_vec_rc(&mut rng, de_len),
+                }
+            })
+            // the DEs might not all fit; keep those that do
+            .filter_map(|de| section_builder.add_de(|_| de.clone()).ok().map(|_| de))
+            .collect::<Vec<_>>();
+
+        // 19 for encryption info, 18 for identity, 64 for signature
+        let section_length = 19
+            + 18
+            + 64
+            + extra_des
+                .iter()
+                .map(|de| {
+                    de.de_header().serialize().len() as u8 + de.de_header().len.as_usize() as u8
+                })
+                .sum::<u8>();
+
+        let encryption_info = [
+            &[
+                0x91, 0x10, // header
+                0x08, // scheme (signature)
+            ],
+            section_salt.as_slice(),
+        ]
+        .concat();
+        let encryption_info: [u8; EncryptionInfo::TOTAL_DE_LEN] =
+            encryption_info.try_into().unwrap();
+
+        let identity_de_header =
+            DeHeader { len: 16_u8.try_into().unwrap(), de_type: identity_type.type_code() };
+        let identity_de_header: [u8; 2] =
+            identity_de_header.serialize().as_slice().try_into().unwrap();
+
+        let nonce = section_salt.derive::<{ AES_CTR_NONCE_LEN }>(Some(1.into())).unwrap();
+
+        let mut plaintext = metadata_key.as_slice().to_vec();
+
+        for de in extra_des {
+            plaintext.extend_from_slice(de.de_header().serialize().as_slice());
+            de.write_de_contents(&mut plaintext);
+        }
+
+        let sig_payload = SectionSignaturePayload::from_deserialized_parts(
+            0x20,
+            section_length,
+            &encryption_info,
+            &nonce,
+            identity_de_header,
+            &plaintext,
+        );
+
+        plaintext.extend_from_slice(&sig_payload.sign(&key_pair).to_bytes());
+
+        <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+            &key_seed_hkdf.extended_signed_section_aes_key(),
+            NonceAndCounter::from_nonce(nonce),
+        )
+        .encrypt(&mut plaintext);
+        let ciphertext = plaintext;
+
+        let mut expected = vec![section_length];
+        expected.extend_from_slice(&encryption_info);
+        expected.extend_from_slice(&identity_de_header);
+        expected.extend_from_slice(&ciphertext);
+
+        assert_eq!(&expected, section_builder.into_section().as_slice());
+    }
+}
+
+#[test]
+fn section_builder_too_full_doesnt_advance_de_index() {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let key_seed = [22; 32];
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key = [33; 16];
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_random_salt(
+            &mut crypto_rng,
+            EncryptedIdentityDataElementType::Trusted,
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+    let salt = V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 100_u32.into(),
+            data: de_salt.derive::<100>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    // this write won't advance the de offset or the internal section buffer length
+    assert_eq!(
+        AddDataElementError::InsufficientSectionSpace,
+        section_builder
+            .add_de(|de_salt| DummyDataElement {
+                de_type: 101_u32.into(),
+                data: de_salt.derive::<100>().unwrap().to_vec(),
+            })
+            .unwrap_err()
+    );
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 102_u32.into(),
+            data: de_salt.derive::<10>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let mut expected = vec![];
+    // metadata key
+    expected.extend_from_slice(&metadata_key);
+    // de header
+    expected.extend_from_slice(&[0x80 + 100, 100]);
+    // section 0 de 2
+    expected.extend_from_slice(&salt.derive::<100>(Some(2.into())).unwrap());
+    // de header
+    expected.extend_from_slice(&[0x80 + 10, 102]);
+    // section 0 de 3
+    expected.extend_from_slice(&salt.derive::<10>(Some(3.into())).unwrap());
+
+    let mut cipher = <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf),
+        NonceAndCounter::from_nonce(salt.derive(Some(1.into())).unwrap()),
+    );
+
+    cipher.encrypt(&mut expected);
+
+    let adv_bytes = adv_builder.into_advertisement();
+    // ignoring the MIC, etc, since that's tested elsewhere
+    let ciphertext_end = adv_bytes.as_slice().len() - 16;
+    assert_eq!(&expected, &adv_bytes.as_slice()[1 + 1 + 19 + 2..ciphertext_end])
+}
+
+#[test]
+fn section_de_fits_exactly() {
+    // leave room for initial filler section's header and the identities
+    for section_contents_capacity in 1..NP_ADV_MAX_SECTION_LEN - 3 {
+        let mut adv_builder = AdvBuilder::new();
+
+        // fill up space to produce desired capacity
+        let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+        // leave space for adv header, 2 section headers, the section identities, and desired second section capacity
+        fill_section_builder(
+            BLE_ADV_SVC_CONTENT_LEN - 1 - 2 - 2 - section_contents_capacity,
+            &mut section_builder,
+        );
+        section_builder.add_to_advertisement();
+
+        let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+
+        // fill it almost full
+        fill_section_builder(section_contents_capacity - 1, &mut section_builder);
+
+        assert_eq!(
+            1,
+            section_builder.section.capacity() - section_builder.section.len(),
+            "capacity: {section_contents_capacity}"
+        );
+
+        // can't add a 2 byte DE
+        assert_eq!(
+            Err(AddDataElementError::InsufficientSectionSpace),
+            section_builder.add_de_res(|_| GenericDataElement::try_from(1_u32.into(), &[0xFF])),
+            "capacity: {section_contents_capacity}"
+        );
+
+        // can add a 1 byte DE
+        section_builder.add_de_res(|_| GenericDataElement::try_from(1_u32.into(), &[])).unwrap();
+    }
+}
+
+#[test]
+fn section_builder_build_de_error_doesnt_advance_de_index() {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let key_seed = [22; 32];
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key = [33; 16];
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_random_salt(
+            &mut crypto_rng,
+            EncryptedIdentityDataElementType::Trusted,
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+    let salt = V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 100_u32.into(),
+            data: de_salt.derive::<100>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    assert_eq!(
+        AddDataElementError::BuildDeError(()),
+        section_builder.add_de_res(|_| Err::<DummyDataElement, _>(())).unwrap_err()
+    );
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 103_u32.into(),
+            data: de_salt.derive::<10>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let mut expected = vec![];
+    // metadata key
+    expected.extend_from_slice(&metadata_key);
+    // de header
+    expected.extend_from_slice(&[0x80 + 100, 100]);
+    // section 0 de 2
+    expected.extend_from_slice(&salt.derive::<100>(Some(2.into())).unwrap());
+    // de header
+    expected.extend_from_slice(&[0x80 + 10, 103]);
+    // section 0 de 3
+    expected.extend_from_slice(&salt.derive::<10>(Some(3.into())).unwrap());
+
+    let mut cipher = <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf),
+        NonceAndCounter::from_nonce(salt.derive(Some(1.into())).unwrap()),
+    );
+
+    cipher.encrypt(&mut expected);
+
+    let adv_bytes = adv_builder.into_advertisement();
+    // ignoring the MIC, etc, since that's tested elsewhere
+    let ciphertext_end = adv_bytes.as_slice().len() - 16;
+    assert_eq!(&expected, &adv_bytes.as_slice()[1 + 1 + 19 + 2..ciphertext_end])
+}
+
+#[test]
+fn add_multiple_de_correct_de_offsets_mic_encrypted_identity() {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let key_seed = [22; 32];
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key = [33; 16];
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new_random_salt(
+            &mut crypto_rng,
+            EncryptedIdentityDataElementType::Trusted,
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+    let salt = V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 64_u32.into(),
+            data: de_salt.derive::<16>().unwrap().to_vec(),
+        })
+        .unwrap();
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 65_u32.into(),
+            data: de_salt.derive::<16>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let mut expected = vec![];
+    // metadata key
+    expected.extend_from_slice(&metadata_key);
+    // de header
+    expected.extend_from_slice(&[0x90, 0x40]);
+    // section 0 de 2
+    expected.extend_from_slice(&salt.derive::<16>(Some(2.into())).unwrap());
+    // de header
+    expected.extend_from_slice(&[0x90, 0x41]);
+    // section 0 de 3
+    expected.extend_from_slice(&salt.derive::<16>(Some(3.into())).unwrap());
+
+    let mut cipher = <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf),
+        NonceAndCounter::from_nonce(salt.derive(Some(1.into())).unwrap()),
+    );
+
+    cipher.encrypt(&mut expected);
+
+    let adv_bytes = adv_builder.into_advertisement();
+    // ignoring the MIC, etc, since that's tested elsewhere
+    let ciphertext_end = adv_bytes.as_slice().len() - 16;
+    assert_eq!(&expected, &adv_bytes.as_slice()[1 + 1 + 19 + 2..ciphertext_end])
+}
+
+#[test]
+fn add_multiple_de_correct_de_offsets_signature_encrypted_identity() {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let key_seed = [22; 32];
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key = [33; 16];
+    let key_pair = KeyPair::generate();
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new_random_salt(
+            &mut crypto_rng,
+            EncryptedIdentityDataElementType::Trusted,
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+    let salt = V1Salt::<CryptoProviderImpl>::from(*section_builder.identity.salt.as_array_ref());
+
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 64_u32.into(),
+            data: de_salt.derive::<16>().unwrap().to_vec(),
+        })
+        .unwrap();
+    section_builder
+        .add_de(|de_salt| DummyDataElement {
+            de_type: 65_u32.into(),
+            data: de_salt.derive::<16>().unwrap().to_vec(),
+        })
+        .unwrap();
+
+    section_builder.add_to_advertisement();
+
+    let mut expected = vec![];
+    // metadata key
+    expected.extend_from_slice(&metadata_key);
+    // de header
+    expected.extend_from_slice(&[0x90, 0x40]);
+    // section 0 de 2
+    expected.extend_from_slice(&salt.derive::<16>(Some(2.into())).unwrap());
+    // de header
+    expected.extend_from_slice(&[0x90, 0x41]);
+    // section 0 de 3
+    expected.extend_from_slice(&salt.derive::<16>(Some(3.into())).unwrap());
+
+    <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &key_seed_hkdf.extended_signed_section_aes_key(),
+        NonceAndCounter::from_nonce(salt.derive(Some(1.into())).unwrap()),
+    )
+    .encrypt(&mut expected);
+
+    let adv_bytes = adv_builder.into_advertisement();
+    // ignoring the signature since that's tested elsewhere
+    assert_eq!(
+        &expected,
+        // adv header + salt + section header + encryption info + identity header
+        &adv_bytes.as_slice()[1 + 1 + 19 + 2..adv_bytes.as_slice().len() - 64]
+    )
+}
+
+#[test]
+fn signature_encrypted_section_de_lengths_allow_room_for_suffix() {
+    let mut crypto_rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let key_seed = [22; 32];
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key = [33; 16];
+    let key_pair = KeyPair::generate();
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new_random_salt(
+            &mut crypto_rng,
+            EncryptedIdentityDataElementType::Trusted,
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    // section header + identity + signature
+    let max_total_de_len = NP_ADV_MAX_SECTION_LEN - 1 - 2 - 16 - 2 - 64;
+
+    // take up 100 bytes to put us within 1 DE of the limit
+    section_builder
+        .add_de(|_| DummyDataElement { de_type: 100_u32.into(), data: vec![0; 98] })
+        .unwrap();
+
+    // one byte too many won't fit
+    assert_eq!(
+        AddDataElementError::InsufficientSectionSpace,
+        section_builder
+            .add_de(|_| DummyDataElement {
+                de_type: 100_u32.into(),
+                data: vec![0; max_total_de_len - 100 - 1]
+            })
+            .unwrap_err()
+    );
+
+    // but this will, as it allows 2 bytes for this DE's header
+    assert_eq!(
+        AddDataElementError::InsufficientSectionSpace,
+        section_builder
+            .add_de(|_| DummyDataElement {
+                de_type: 100_u32.into(),
+                data: vec![0; max_total_de_len - 100 - 2]
+            })
+            .unwrap_err()
+    );
+}
+
+#[test]
+fn serialize_max_number_of_sections() {
+    let mut adv_builder = AdvBuilder::new();
+    for _ in 0..NP_V1_ADV_MAX_SECTION_COUNT {
+        let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+        section_builder.add_de(|_| context_sync_de(1)).unwrap();
+        section_builder.add_to_advertisement();
+    }
+    assert_eq!(
+        adv_builder.section_builder(PublicIdentity::default()).unwrap_err(),
+        MaxSectionCountExceeded
+    );
+}
+
+fn do_mic_encrypted_identity_fixed_key_material_test<W: WriteDataElement>(extra_des: &[W]) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let adv_header_byte = 0b00100000;
+    let section_salt: V1Salt<CryptoProviderImpl> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(MicEncrypted::new(
+            identity_type,
+            V1Salt::from(*section_salt.as_array_ref()),
+            &metadata_key,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    for de in extra_des {
+        section_builder.add_de(|_| de).unwrap();
+    }
+
+    // length 53: 19 for encryption info, 18 for identity, 16 for MIC
+    let section_length = 53
+        + extra_des
+            .iter()
+            .map(|de| de.de_header().serialize().len() as u8 + de.de_header().len.as_usize() as u8)
+            .sum::<u8>();
+
+    let encryption_info = [
+        &[
+            0x91, 0x10, // header
+            0x00, // scheme (mic)
+        ],
+        section_salt.as_slice(),
+    ]
+    .concat();
+
+    let identity_de_header =
+        DeHeader { len: 16_u8.try_into().unwrap(), de_type: identity_type.type_code() };
+
+    let mut hmac = np_hkdf::UnsignedSectionKeys::hmac_key(&key_seed_hkdf).build_hmac();
+    // just to be sure, we'll construct our test hmac all in one update() call
+    let mut hmac_input = vec![];
+    hmac_input.extend_from_slice(NP_SVC_UUID.as_slice());
+    hmac_input.push(adv_header_byte);
+    // section header
+    hmac_input.push(section_length);
+    hmac_input.extend_from_slice(&encryption_info);
+    let nonce = section_salt.derive::<{ AES_CTR_NONCE_LEN }>(Some(1.into())).unwrap();
+    hmac_input.extend_from_slice(nonce.as_slice());
+
+    hmac_input.extend_from_slice(identity_de_header.serialize().as_slice());
+
+    let mut cipher = <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf),
+        NonceAndCounter::from_nonce(nonce),
+    );
+    let mut plaintext = metadata_key.as_slice().to_vec();
+
+    for de in extra_des {
+        plaintext.extend_from_slice(de.de_header().serialize().as_slice());
+        de.write_de_contents(&mut plaintext);
+    }
+
+    cipher.encrypt(&mut plaintext);
+    let ciphertext = plaintext;
+
+    hmac_input.extend_from_slice(&ciphertext);
+
+    hmac.update(&hmac_input);
+    let mic = hmac.finalize();
+
+    let mut expected = vec![];
+    expected.push(section_length);
+    expected.extend_from_slice(&encryption_info);
+    expected.extend_from_slice(identity_de_header.serialize().as_slice());
+    expected.extend_from_slice(&ciphertext);
+    expected.extend_from_slice(&mic[..16]);
+
+    assert_eq!(&expected, section_builder.into_section().as_slice());
+}
+
+fn do_signature_encrypted_identity_fixed_key_material_test<W: WriteDataElement>(extra_des: &[W]) {
+    let metadata_key = [1; 16];
+    let key_seed = [2; 32];
+    let adv_header_byte = 0b00100000;
+    let section_salt: V1Salt<CryptoProviderImpl> = [3; 16].into();
+    let identity_type = EncryptedIdentityDataElementType::Private;
+    let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let key_pair = KeyPair::generate();
+
+    let mut adv_builder = AdvBuilder::new();
+
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new(
+            identity_type,
+            V1Salt::from(*section_salt.as_array_ref()),
+            &metadata_key,
+            &key_pair,
+            &key_seed_hkdf,
+        ))
+        .unwrap();
+
+    for de in extra_des {
+        section_builder.add_de(|_| de).unwrap();
+    }
+
+    // 19 for encryption info, 18 for identity, 64 for sig
+    let section_length = 19
+        + 18
+        + 64
+        + extra_des
+            .iter()
+            .map(|de| de.de_header().serialize().len() as u8 + de.de_header().len.as_usize() as u8)
+            .sum::<u8>();
+
+    let encryption_info = [
+        &[
+            0x91, 0x10, // header
+            0x08, // scheme (signature)
+        ],
+        section_salt.as_slice(),
+    ]
+    .concat();
+    let encryption_info: [u8; EncryptionInfo::TOTAL_DE_LEN] = encryption_info.try_into().unwrap();
+
+    let identity_de_header =
+        DeHeader { len: 16_u8.try_into().unwrap(), de_type: identity_type.type_code() };
+    let identity_de_header: [u8; 2] = identity_de_header.serialize().as_slice().try_into().unwrap();
+
+    let mut plaintext = metadata_key.as_slice().to_vec();
+
+    for de in extra_des {
+        plaintext.extend_from_slice(de.de_header().serialize().as_slice());
+        de.write_de_contents(&mut plaintext);
+    }
+
+    let nonce = section_salt.derive(Some(1.into())).unwrap();
+
+    let sig_payload = SectionSignaturePayload::from_deserialized_parts(
+        adv_header_byte,
+        section_length,
+        &encryption_info,
+        &nonce,
+        identity_de_header,
+        &plaintext,
+    );
+
+    plaintext.extend_from_slice(&sig_payload.sign(&key_pair).to_bytes());
+
+    <CryptoProviderImpl as CryptoProvider>::AesCtr128::new(
+        &key_seed_hkdf.extended_signed_section_aes_key(),
+        NonceAndCounter::from_nonce(nonce),
+    )
+    .encrypt(&mut plaintext);
+    let ciphertext = plaintext;
+
+    let mut expected = vec![section_length];
+
+    expected.extend_from_slice(&encryption_info);
+    expected.extend_from_slice(&identity_de_header);
+    expected.extend_from_slice(&ciphertext);
+
+    assert_eq!(&expected, section_builder.into_section().as_slice());
+}
+
+/// Write `section_contents_len` bytes of DE and header into `section_builder`
+pub(crate) fn fill_section_builder<I: SectionIdentity>(
+    section_contents_len: usize,
+    section_builder: &mut SectionBuilder<I>,
+) {
+    // DEs can only go up to 127, so we'll need multiple for long sections
+    for _ in 0..(section_contents_len / 100) {
+        let de_contents = vec![0x33; 98];
+        section_builder
+            .add_de_res(|_| GenericDataElement::try_from(100_u32.into(), &de_contents))
+            .unwrap();
+    }
+
+    let remainder_len = section_contents_len % 100;
+    match remainder_len {
+        0 => {
+            // leave remainder empty
+        }
+        1 => {
+            // 1 byte header
+            section_builder
+                .add_de_res(|_| GenericDataElement::try_from(3_u32.into(), &[]))
+                .unwrap();
+        }
+        2 => {
+            // 2 byte header
+            section_builder
+                .add_de_res(|_| GenericDataElement::try_from(100_u32.into(), &[]))
+                .unwrap();
+        }
+        _ => {
+            // 2 byte header + contents as needed
+            // leave room for section and DE headers
+            let de_contents = vec![0x44; remainder_len - 2];
+            section_builder
+                .add_de_res(|_| GenericDataElement::try_from(100_u32.into(), &de_contents))
+                .unwrap();
+        }
+    }
+}
+
+#[derive(Clone)]
+pub(crate) struct DummyDataElement {
+    pub(crate) de_type: DeType,
+    pub(crate) data: Vec<u8>,
+}
+
+impl WriteDataElement for DummyDataElement {
+    fn de_header(&self) -> DeHeader {
+        DeHeader { de_type: self.de_type, len: self.data.len().try_into().unwrap() }
+    }
+
+    fn write_de_contents<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        sink.try_extend_from_slice(&self.data)
+    }
+}
+
+fn context_sync_de(num: u8) -> ContextSyncSeqNumDataElement {
+    ContextSyncSeqNumDataElement::from(ContextSyncSeqNum::try_from(num).unwrap())
+}
+
+pub(crate) trait SectionBuilderExt {
+    fn into_section(self) -> EncodedSection;
+}
+
+impl<'a, I: SectionIdentity> SectionBuilderExt for SectionBuilder<'a, I> {
+    /// Convenience method for tests
+    fn into_section(self) -> EncodedSection {
+        Self::build_section(self.section.into_inner(), self.identity, self.adv_builder)
+    }
+}
diff --git a/nearby/presence/np_adv/src/extended/serialize/test_vectors.rs b/nearby/presence/np_adv/src/extended/serialize/test_vectors.rs
new file mode 100644
index 0000000..9f7aa5c
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/test_vectors.rs
@@ -0,0 +1,192 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crate::{
+    de_type::EncryptedIdentityDataElementType,
+    extended::serialize::{
+        section_tests::{DummyDataElement, SectionBuilderExt},
+        AdvBuilder, MicEncrypted,
+    },
+};
+use anyhow::anyhow;
+use crypto_provider::{aes::ctr::AES_CTR_NONCE_LEN, aes::AesKey};
+use crypto_provider_default::CryptoProviderImpl;
+use np_hkdf::v1_salt;
+use np_hkdf::v1_salt::V1Salt;
+use rand_ext::rand::{prelude::SliceRandom as _, Rng as _, SeedableRng as _};
+use serde_json::json;
+use std::{fs, io::Read as _, prelude::rust_2021::*, println};
+use strum::IntoEnumIterator as _;
+use test_helper::extract_key_array;
+
+#[test]
+fn mic_encrypted_test_vectors() -> Result<(), anyhow::Error> {
+    let full_path = test_helper::get_data_file(
+        "presence/np_adv/resources/test/mic-encrypted-test-vectors.json",
+    );
+    let mut file = fs::File::open(full_path)?;
+    let mut data = String::new();
+    file.read_to_string(&mut data)?;
+
+    let test_cases = match serde_json::de::from_str(&data)? {
+        serde_json::Value::Array(a) => a,
+        _ => return Err(anyhow!("bad json")),
+    };
+
+    for tc in test_cases {
+        {
+            let key_seed = extract_key_array::<32>(&tc, "key_seed");
+            let metadata_key = extract_key_array::<16>(&tc, "metadata_key");
+            let adv_header_byte = extract_key_array::<1>(&tc, "adv_header_byte")[0];
+            let section_salt = v1_salt::V1Salt::<CryptoProviderImpl>::from(
+                extract_key_array::<16>(&tc, "section_salt"),
+            );
+            let identity_type = tc["identity_type"].as_str().map(identity_type_from_label).unwrap();
+            let data_elements = tc["data_elements"]
+                .as_array()
+                .unwrap()
+                .iter()
+                .map(|json_de| DummyDataElement {
+                    data: hex::decode(json_de["contents"].as_str().unwrap()).unwrap(),
+                    de_type: (json_de["de_type"].as_u64().unwrap() as u32).into(),
+                })
+                .collect::<Vec<_>>();
+
+            let hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
+
+            assert_eq!(
+                extract_key_array::<16>(&tc, "aes_key").as_slice(),
+                np_hkdf::UnsignedSectionKeys::aes_key(&hkdf).as_slice()
+            );
+            assert_eq!(
+                extract_key_array::<32>(&tc, "section_mic_hmac_key").as_slice(),
+                np_hkdf::UnsignedSectionKeys::hmac_key(&hkdf).as_bytes()
+            );
+            assert_eq!(
+                extract_key_array::<{ AES_CTR_NONCE_LEN }>(&tc, "nonce").as_slice(),
+                section_salt.derive::<{ AES_CTR_NONCE_LEN }>(Some(1.into())).unwrap()
+            );
+
+            // make an adv builder in the configuration we need
+            let mut adv_builder = AdvBuilder::new();
+            assert_eq!(adv_header_byte, adv_builder.header_byte());
+
+            let mut section_builder = adv_builder
+                .section_builder(MicEncrypted::new(
+                    identity_type,
+                    section_salt,
+                    &metadata_key,
+                    &hkdf,
+                ))
+                .unwrap();
+
+            for de in data_elements {
+                section_builder.add_de(|_| de).unwrap();
+            }
+
+            assert_eq!(
+                hex::decode(tc["encoded_section"].as_str().unwrap()).unwrap(),
+                section_builder.into_section().as_slice()
+            );
+        }
+    }
+
+    Ok(())
+}
+
+#[ignore]
+#[test]
+fn gen_mic_encrypted_test_vectors() {
+    let mut rng = rand::rngs::StdRng::from_entropy();
+
+    let mut array = Vec::<serde_json::Value>::new();
+
+    for _ in 0..100 {
+        let num_des = rng.gen_range(0..=5);
+
+        let extra_des = (0..num_des)
+            .map(|_| {
+                let de_len = rng.gen_range(0..=30);
+                DummyDataElement {
+                    de_type: rng.gen_range(0_u32..=1_000).into(),
+                    data: rand_ext::random_vec_rc(&mut rng, de_len),
+                }
+            })
+            .collect::<Vec<_>>();
+
+        let metadata_key = rng.gen();
+        let key_seed = rng.gen();
+        let adv_header_byte = 0b00100000;
+        let identity_type =
+            *EncryptedIdentityDataElementType::iter().collect::<Vec<_>>().choose(&mut rng).unwrap();
+
+        let key_seed_hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+
+        let mut adv_builder = AdvBuilder::new();
+
+        let section_salt = v1_salt::V1Salt::<CryptoProviderImpl>::from(rng.gen::<[u8; 16]>());
+        let mut section_builder = adv_builder
+            .section_builder(MicEncrypted::new(
+                identity_type,
+                V1Salt::from(*section_salt.as_array_ref()),
+                &metadata_key,
+                &key_seed_hkdf,
+            ))
+            .unwrap();
+
+        for de in extra_des.iter() {
+            section_builder.add_de(|_| de).unwrap();
+        }
+
+        let nonce = section_salt.derive::<{ AES_CTR_NONCE_LEN }>(Some(1.into())).unwrap();
+
+        array
+            .push(json!({
+                "key_seed": hex::encode_upper(key_seed),
+                "metadata_key": hex::encode_upper(metadata_key),
+                "adv_header_byte": hex::encode_upper([adv_header_byte]),
+                "section_salt": hex::encode_upper(section_salt.as_slice()),
+                "identity_type": identity_type_label(identity_type),
+                "data_elements": extra_des.iter().map(|de| json!({
+                    "de_type": de.de_type.as_u32(),
+                    "contents": hex::encode_upper(&de.data)
+                })).collect::<Vec<_>>(),
+                "aes_key": hex::encode_upper(np_hkdf::UnsignedSectionKeys::aes_key(&key_seed_hkdf).as_slice()),
+                "nonce": hex::encode_upper(nonce),
+                "section_mic_hmac_key": hex::encode_upper(np_hkdf::UnsignedSectionKeys::hmac_key(&key_seed_hkdf).as_bytes()),
+                "encoded_section": hex::encode_upper(section_builder.into_section().as_slice())
+            }));
+    }
+
+    println!("{}", serde_json::ser::to_string_pretty(&array).unwrap());
+}
+
+fn identity_type_label(t: EncryptedIdentityDataElementType) -> &'static str {
+    match t {
+        EncryptedIdentityDataElementType::Private => "private",
+        EncryptedIdentityDataElementType::Trusted => "trusted",
+        EncryptedIdentityDataElementType::Provisioned => "provisioned",
+    }
+}
+
+fn identity_type_from_label(label: &str) -> EncryptedIdentityDataElementType {
+    match label {
+        "private" => EncryptedIdentityDataElementType::Private,
+        "trusted" => EncryptedIdentityDataElementType::Trusted,
+        "provisioned" => EncryptedIdentityDataElementType::Provisioned,
+        _ => panic!("unknown label: {}", label),
+    }
+}
diff --git a/nearby/presence/np_adv/src/header_parse_tests.rs b/nearby/presence/np_adv/src/header_parse_tests.rs
new file mode 100644
index 0000000..2da1b4a
--- /dev/null
+++ b/nearby/presence/np_adv/src/header_parse_tests.rs
@@ -0,0 +1,58 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use super::*;
+
+extern crate std;
+
+use nom::error;
+
+#[test]
+fn parse_header_v0() {
+    let (_, header) = parse_adv_header(&[0x00]).unwrap();
+    assert_eq!(AdvHeader::V0, header);
+}
+
+#[test]
+fn parse_header_v0_nonzero_reserved() {
+    let input = &[0x01];
+    assert_eq!(
+        nom::Err::Error(error::Error { input: input.as_slice(), code: error::ErrorKind::Verify }),
+        parse_adv_header(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_header_v1_nonzero_reserved() {
+    let input = &[0x30];
+    assert_eq!(
+        nom::Err::Error(error::Error { input: input.as_slice(), code: error::ErrorKind::Verify }),
+        parse_adv_header(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_header_bad_version() {
+    let input = &[0x80];
+    assert_eq!(
+        nom::Err::Error(error::Error { input: input.as_slice(), code: error::ErrorKind::Verify }),
+        parse_adv_header(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_header_v1() {
+    let (_, header) = parse_adv_header(&[0x20]).unwrap();
+    assert_eq!(AdvHeader::V1(V1Header { header_byte: 0x20 }), header);
+}
diff --git a/nearby/presence/np_adv/src/legacy/actions/macros.rs b/nearby/presence/np_adv/src/legacy/actions/macros.rs
new file mode 100644
index 0000000..ecafeb3
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/actions/macros.rs
@@ -0,0 +1,138 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+/// Create a struct holding a `bool`.
+macro_rules! boolean_element_struct {
+    ($type_name:ident) => {
+        #[derive(Debug)]
+        #[allow(missing_docs)]
+        pub struct $type_name {
+            enabled: bool,
+        }
+    };
+}
+
+/// Create a `From<bool>` impl for a struct made with [boolean_element_struct].
+macro_rules! boolean_element_struct_from_bool {
+    ($type_name:ident) => {
+        impl From<bool> for $type_name {
+            fn from(value: bool) -> Self {
+                $type_name { enabled: value }
+            }
+        }
+    };
+}
+
+/// The guts of an ActionElement impl
+macro_rules! boolean_element_action_element_impl_shared {
+    ($type_name:ident, $index:expr) => {
+        const HIGH_BIT_INDEX: u32 = $index;
+        const BITS_LEN: u32 = 1;
+        const ACTION_TYPE: $crate::legacy::actions::ActionType =
+            $crate::legacy::actions::ActionType::$type_name;
+    };
+}
+
+/// Create a struct w/ From<bool> and ActionElement impls.
+/// Use `plaintext_only`, `ciphertext_only`, or `plaintext_and_ciphertext` to create appropriate
+/// impls.
+macro_rules! boolean_element {
+    ($type_name:ident, $index:expr, plaintext_only) => {
+        $crate::legacy::actions::macros::boolean_element_struct!($type_name);
+        $crate::legacy::actions::macros::boolean_element_struct_from_bool!($type_name);
+
+        impl $crate::legacy::actions::ActionElement for $type_name {
+            $crate::legacy::actions::macros::boolean_element_action_element_impl_shared!(
+                $type_name, $index
+            );
+
+            fn supports_flavor(flavor: $crate::legacy::PacketFlavorEnum) -> bool {
+                match flavor {
+                    $crate::legacy::PacketFlavorEnum::Plaintext => true,
+                    $crate::legacy::PacketFlavorEnum::Ciphertext => false,
+                }
+            }
+        }
+
+        $crate::legacy::actions::macros::boolean_element_to_plaintext_element!($type_name);
+    };
+    ($type_name:ident, $index:expr, ciphertext_only) => {
+        $crate::legacy::actions::macros::boolean_element_struct!($type_name);
+        $crate::legacy::actions::macros::boolean_element_struct_from_bool!($type_name);
+
+        impl $crate::legacy::actions::ActionElement for $type_name {
+            $crate::legacy::actions::macros::boolean_element_action_element_impl_shared!(
+                $type_name, $index
+            );
+
+            fn supports_flavor(flavor: $crate::legacy::PacketFlavorEnum) -> bool {
+                match flavor {
+                    $crate::legacy::PacketFlavorEnum::Plaintext => false,
+                    $crate::legacy::PacketFlavorEnum::Ciphertext => true,
+                }
+            }
+        }
+
+        $crate::legacy::actions::macros::boolean_element_to_encrypted_element!($type_name);
+    };
+    ($type_name:ident, $index:expr, plaintext_and_ciphertext) => {
+        $crate::legacy::actions::macros::boolean_element_struct!($type_name);
+        $crate::legacy::actions::macros::boolean_element_struct_from_bool!($type_name);
+
+        impl $crate::legacy::actions::ActionElement for $type_name {
+            $crate::legacy::actions::macros::boolean_element_action_element_impl_shared!(
+                $type_name, $index
+            );
+
+            fn supports_flavor(flavor: $crate::legacy::PacketFlavorEnum) -> bool {
+                match flavor {
+                    $crate::legacy::PacketFlavorEnum::Plaintext => true,
+                    $crate::legacy::PacketFlavorEnum::Ciphertext => true,
+                }
+            }
+        }
+
+        $crate::legacy::actions::macros::boolean_element_to_plaintext_element!($type_name);
+        $crate::legacy::actions::macros::boolean_element_to_encrypted_element!($type_name);
+    };
+}
+
+/// Create a [ToActionElement<Encrypted>] impl with the given index and length 1.
+macro_rules! boolean_element_to_encrypted_element {
+    ( $type_name:ident) => {
+        impl $crate::legacy::actions::ToActionElement<$crate::legacy::Ciphertext> for $type_name {
+            fn bits(&self) -> u8 {
+                self.enabled as u8
+            }
+        }
+    };
+}
+
+/// Create a [ToActionElement<Plaintext>] impl with the given index and length 1.
+macro_rules! boolean_element_to_plaintext_element {
+    ( $type_name:ident) => {
+        impl $crate::legacy::actions::ToActionElement<$crate::legacy::Plaintext> for $type_name {
+            fn bits(&self) -> u8 {
+                self.enabled as u8
+            }
+        }
+    };
+}
+
+// expose macros to the rest of the crate without macro_export's behavior of exporting at crate root
+pub(crate) use {
+    boolean_element, boolean_element_action_element_impl_shared, boolean_element_struct,
+    boolean_element_struct_from_bool, boolean_element_to_encrypted_element,
+    boolean_element_to_plaintext_element,
+};
diff --git a/nearby/presence/np_adv/src/legacy/actions/mod.rs b/nearby/presence/np_adv/src/legacy/actions/mod.rs
new file mode 100644
index 0000000..353848e
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/actions/mod.rs
@@ -0,0 +1,442 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! The "Actions" data element and associated types.
+//!
+//! This DE is somewhat more complex than other DEs. Whether or not it supports a particular flavor
+//! depends on the actions set, so it has to be treated as two separate types based on which
+//! flavor type parameter is used.
+use crate::{
+    legacy::{
+        data_elements::{DataElement, DataElementDeserializeError},
+        de_type::{DataElementType, PlainDataElementType},
+        serialize::{DataElementBundle, ToDataElementBundle},
+        Ciphertext, PacketFlavor, PacketFlavorEnum, Plaintext,
+    },
+    shared_data::ContextSyncSeqNum,
+};
+#[cfg(feature = "devtools")]
+use core::ops::Range;
+use core::{marker, num, ops};
+use nom::{bytes, combinator, error};
+use strum::IntoEnumIterator as _;
+
+mod macros;
+#[cfg(test)]
+pub(crate) mod tests;
+
+/// Actions DE.
+/// Only as many DE payload bytes will be present as needed to represent all set bits that are encoded,
+/// with a lower bound of 1 byte in the special case of no set action bits, and an upper bound
+/// of 3 bytes occupied by the DE payload.
+#[derive(Debug, PartialEq, Eq)]
+pub struct ActionsDataElement<F: PacketFlavor> {
+    action: ActionBits<F>,
+}
+
+impl<F: PacketFlavor> ActionsDataElement<F> {
+    /// Returns the actions bits as a u32. The upper limit of an actions field is 3 bytes,
+    /// so the last bytes of this u32 will always be 0
+    pub fn as_u32(self) -> u32 {
+        self.action.bits
+    }
+
+    /// Return whether a boolean action type is set in this data element, or `None` if the given
+    /// action type does not represent a boolean.
+    pub fn has_action(&self, action_type: &ActionType) -> Option<bool> {
+        (action_type.bits_len() == 1).then_some(self.action.bits_for_type(action_type) != 0)
+    }
+
+    /// Return the context sync sequence number.
+    pub fn context_sync_seq_num(&self) -> ContextSyncSeqNum {
+        ContextSyncSeqNum::try_from(self.action.bits_for_type(&ActionType::ContextSyncSeqNum) as u8)
+            .expect("Masking with ActionType::ContextSyncSeqNum should always be in range")
+    }
+}
+
+pub(crate) const ACTIONS_MAX_LEN: usize = 3;
+
+impl<F> ActionsDataElement<F>
+where
+    F: PacketFlavor,
+    ActionsDataElement<F>: DataElement,
+{
+    pub(crate) const ACTIONS_LEN: ops::RangeInclusive<usize> = (1..=ACTIONS_MAX_LEN);
+
+    /// Generic deserialize, not meant to be called directly -- use [DataElement] impls instead.
+    fn deserialize(de_contents: &[u8]) -> Result<Self, DataElementDeserializeError> {
+        combinator::all_consuming::<&[u8], _, error::Error<&[u8]>, _>(combinator::map(
+            bytes::complete::take_while_m_n(0, ACTIONS_MAX_LEN, |_| true),
+            |bytes: &[u8]| {
+                let mut action_bytes = [0_u8; 4];
+                action_bytes[..bytes.len()].copy_from_slice(bytes);
+                u32::from_be_bytes(action_bytes)
+            },
+        ))(de_contents)
+        .map_err(|_| DataElementDeserializeError::DeserializeError {
+            de_type: Self::DE_TYPE_VARIANT,
+        })
+        .map(|(_remaining, actions)| actions)
+        .and_then(|action_bits_num| {
+            let action = ActionBits::try_from(action_bits_num).map_err(|e| {
+                DataElementDeserializeError::FlavorNotSupported {
+                    de_type: Self::DE_TYPE_VARIANT,
+                    flavor: e.flavor,
+                }
+            })?;
+            Ok(Self { action })
+        })
+    }
+}
+
+impl<F: PacketFlavor> From<ActionBits<F>> for ActionsDataElement<F> {
+    fn from(action: ActionBits<F>) -> Self {
+        Self { action }
+    }
+}
+
+impl<F: PacketFlavor> ToDataElementBundle<F> for ActionsDataElement<F> {
+    fn to_de_bundle(&self) -> DataElementBundle<F> {
+        let action_byte_len = self.action.bytes_used();
+        let slice = &self.action.bits.to_be_bytes()[..action_byte_len];
+
+        DataElementBundle::try_from(PlainDataElementType::Actions, slice)
+            .expect("Length < max DE size")
+    }
+}
+
+impl DataElement for ActionsDataElement<Plaintext> {
+    const DE_TYPE_VARIANT: DataElementType = DataElementType::Actions;
+
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool {
+        match flavor {
+            PacketFlavorEnum::Plaintext => true,
+            PacketFlavorEnum::Ciphertext => false,
+        }
+    }
+
+    fn deserialize<F: PacketFlavor>(
+        de_contents: &[u8],
+    ) -> Result<Self, DataElementDeserializeError> {
+        match F::ENUM_VARIANT {
+            PacketFlavorEnum::Plaintext => ActionsDataElement::deserialize(de_contents),
+            PacketFlavorEnum::Ciphertext => Err(DataElementDeserializeError::FlavorNotSupported {
+                de_type: DataElementType::Actions,
+                flavor: F::ENUM_VARIANT,
+            }),
+        }
+    }
+}
+
+impl DataElement for ActionsDataElement<Ciphertext> {
+    const DE_TYPE_VARIANT: DataElementType = DataElementType::Actions;
+
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool {
+        match flavor {
+            PacketFlavorEnum::Plaintext => false,
+            PacketFlavorEnum::Ciphertext => true,
+        }
+    }
+
+    fn deserialize<F: PacketFlavor>(
+        de_contents: &[u8],
+    ) -> Result<Self, DataElementDeserializeError> {
+        match F::ENUM_VARIANT {
+            PacketFlavorEnum::Plaintext => Err(DataElementDeserializeError::FlavorNotSupported {
+                de_type: DataElementType::Actions,
+                flavor: F::ENUM_VARIANT,
+            }),
+            PacketFlavorEnum::Ciphertext => ActionsDataElement::deserialize(de_contents),
+        }
+    }
+}
+
+/// Container for the 24 bits defined for "actions" (feature flags and the like).
+/// This internally stores a u32, but only the 24 highest bits of this
+/// field will actually ever be populated.
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct ActionBits<F: PacketFlavor> {
+    bits: u32,
+    // marker for element type
+    flavor: marker::PhantomData<F>,
+}
+
+impl<F: PacketFlavor> Default for ActionBits<F> {
+    fn default() -> Self {
+        ActionBits {
+            bits: 0, // no bits set
+            flavor: marker::PhantomData,
+        }
+    }
+}
+
+/// At least one action doesn't support the required flavor
+#[derive(PartialEq, Eq, Debug)]
+pub struct FlavorNotSupported {
+    flavor: PacketFlavorEnum,
+}
+
+lazy_static::lazy_static! {
+    /// All bits for plaintext action types: 1 where a plaintext action could have a bit, 0 elsewhere.
+    static ref ALL_PLAINTEXT_ELEMENT_BITS: u32 = ActionType::iter()
+        .filter(|t| t.supports_flavor(PacketFlavorEnum::Plaintext))
+        .map(|t| t.all_bits())
+        .fold(0_u32, |accum, bits| accum | bits);
+}
+
+lazy_static::lazy_static! {
+    /// All bits for ciphertext action types: 1 where a ciphertext action could have a bit, 0 elsewhere.
+    static ref ALL_CIPHERTEXT_ELEMENT_BITS: u32 = ActionType::iter()
+        .filter(|t| t.supports_flavor(PacketFlavorEnum::Ciphertext))
+        .map(|t| t.all_bits())
+        .fold(0_u32, |accum, bits| accum | bits);
+}
+
+impl<F: PacketFlavor> ActionBits<F> {
+    /// Tries to create ActionBits from a u32, returning error in the event a specific bit is set for
+    /// an unsupported flavor
+    pub fn try_from(value: u32) -> Result<Self, FlavorNotSupported> {
+        let ok_bits: u32 = match F::ENUM_VARIANT {
+            PacketFlavorEnum::Plaintext => *ALL_PLAINTEXT_ELEMENT_BITS,
+            PacketFlavorEnum::Ciphertext => *ALL_CIPHERTEXT_ELEMENT_BITS,
+        };
+
+        // no bits set beyond what's allowed for this flavor
+        if value | ok_bits == ok_bits {
+            Ok(Self { bits: value, flavor: marker::PhantomData })
+        } else {
+            Err(FlavorNotSupported { flavor: F::ENUM_VARIANT })
+        }
+    }
+
+    /// Set the bits for the provided element.
+    /// Bits outside the range set by the action will be unaffected.
+    pub fn set_action<E: ToActionElement<F>>(&mut self, to_element: E) {
+        let element = to_element.to_action_element();
+        let len = element.len.get();
+
+        // validate that the element is not horribly broken
+        debug_assert!(len + element.index <= 32);
+        // must not have bits set past the high `len` bits
+        debug_assert_eq!(0, element.bits >> (8 - len));
+
+        // 0-extend to u32
+        let byte_extended = element.bits as u32;
+        // Shift so that the high bit is at the desired index.
+        // Won't overflow since length > 0.
+        let bits_in_position = byte_extended << (32 - len - element.index);
+
+        // We want to effectively clear out the bits already in place, so we don't want to just |=.
+        // Instead, we construct a u32 with all 1s above and below the relevant bits and &=, so that
+        // if the new bits are 0, the stored bits will be cleared.
+
+        // avoid overflow when index = 0 -- need zero 1 bits to the left in that case
+        let left_1s = u32::MAX.checked_shl(32 - element.index).unwrap_or(0);
+        // avoid underflow when index + len = 32 -- zero 1 bits to the right
+        let right_1s = u32::MAX.checked_shr(element.index + len).unwrap_or(0);
+        let mask = left_1s | right_1s;
+        let bits_for_other_actions = self.bits & mask;
+        self.bits = bits_for_other_actions | bits_in_position;
+    }
+
+    /// How many bytes (1-3) are needed to represent the set bits, starting from the most
+    /// significant bit. The lower bound of 1 is because the unique special case of
+    /// an actions field of all zeroes is required by the spec to occupy exactly one byte.
+    pub(crate) fn bytes_used(&self) -> usize {
+        let bits_used = 32 - self.bits.trailing_zeros();
+        let raw_count = (bits_used as usize + 7) / 8;
+        if raw_count == 0 {
+            1 // Uncommon case - should only be hit for all-zero action bits
+        } else {
+            raw_count
+        }
+    }
+
+    /// Return the bits for a given action type as the low bits in the returned u32.
+    ///
+    /// For example, when extracting the bits `B` from `0bXXXXXXXXXXBBBBBBXXXXXXXXXXXXXXXX`, the
+    /// return value will be `0b00000000000000000000000000BBBBBB`.
+    pub fn bits_for_type(&self, action_type: &ActionType) -> u32 {
+        self.bits << action_type.high_bit_index() >> (32 - action_type.bits_len())
+    }
+}
+
+/// The encoded form of an individual action element.
+#[derive(Debug, Clone, Copy)]
+pub struct ActionElementBits<F: PacketFlavor> {
+    /// Offset from the high bit in `ActionBits.bits`, which would be bit 0 of byte 0 of the big-endian
+    /// representation.
+    /// Must leave enough room for `len` bits in a u32; that is, `index + len <= 32`.
+    index: u32,
+    /// Number of bits used.
+    /// `len + index <= 32` must be true.
+    len: num::NonZeroU32,
+    /// Returns the bits to set as the lower `len` bits of the byte.
+    bits: u8,
+    /// Marker for whether it can be used in plaintext or encrypted data elements.
+    flavor: marker::PhantomData<F>,
+}
+
+/// Core trait for an individual action
+pub trait ActionElement {
+    /// The offset from the high bit in the eventual bit sequence of all actions.
+    /// See [ActionElementBits.index].
+    ///
+    /// Each implementation must have a non-overlapping sequence of bits defined by
+    /// `HIGH_BIT_INDEX` and `BITS_LEN` w.r.t every other implementation.
+    const HIGH_BIT_INDEX: u32;
+    /// The number of high bits in a `u8` that should be used when assembling the complete
+    /// action bit vector.
+    ///
+    /// Must be >0.
+    const BITS_LEN: u32;
+    /// Forces implementations to have a matching enum variant so the enum can be kept up to date.
+    const ACTION_TYPE: ActionType;
+
+    /// Returns whether or not this action supports the provided `flavor`.
+    ///
+    /// Must match the implementations of [ToActionElement].
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool;
+
+    /// Returns true if the bits for this element are all zero, or if the flavor is supported.
+    fn action_is_supported_or_not_set(bits: u32, flavor: PacketFlavorEnum) -> bool {
+        let shifted = bits << Self::HIGH_BIT_INDEX;
+        let masked = shifted & (!(u32::MAX >> Self::BITS_LEN));
+
+        (masked == 0) || Self::supports_flavor(flavor)
+    }
+}
+
+/// An analog of `Into` tailored to converting structs modeling specific action elements into the
+/// representation needed by [ActionBits].
+pub trait ToActionElement<F: PacketFlavor>: ActionElement {
+    /// Convert the high-level representation of an element into the literal bits needed.
+    fn to_action_element(&self) -> ActionElementBits<F> {
+        ActionElementBits {
+            index: Self::HIGH_BIT_INDEX,
+            len: Self::BITS_LEN.try_into().expect("all elements must have nonzero len"),
+            bits: self.bits(),
+            flavor: marker::PhantomData,
+        }
+    }
+
+    /// Returns the bits that should be set starting at `Self::INDEX`.
+    ///
+    /// Must not have more than the low `len()` bits set.
+    fn bits(&self) -> u8;
+}
+
+/// Provides a way to iterate over all action types.
+#[derive(Clone, Copy, strum_macros::EnumIter, PartialEq, Eq, Hash, Debug)]
+#[allow(missing_docs)]
+pub enum ActionType {
+    ContextSyncSeqNum,
+    ActiveUnlock,
+    NearbyShare,
+    InstantTethering,
+    PhoneHub,
+    Finder,
+    FastPairSass,
+    PresenceManager,
+}
+
+impl ActionType {
+    /// A u32 with all possible bits for this action type set
+    const fn all_bits(&self) -> u32 {
+        (u32::MAX << (32_u32 - self.bits_len())) >> self.high_bit_index()
+    }
+
+    /// Get the range of the bits occupied used by this bit index. For example, if the action type
+    /// uses the 5th and 6th bits, the returned range will be (5..7).
+    /// (0 is the index of the most significant bit).
+    #[cfg(feature = "devtools")]
+    pub const fn bits_range_for_devtools(&self) -> Range<u32> {
+        let high_bit_index = self.high_bit_index();
+        high_bit_index..high_bit_index + self.bits_len()
+    }
+
+    const fn high_bit_index(&self) -> u32 {
+        match self {
+            ActionType::ContextSyncSeqNum => ContextSyncSeqNum::HIGH_BIT_INDEX,
+            ActionType::ActiveUnlock => ActiveUnlock::HIGH_BIT_INDEX,
+            ActionType::NearbyShare => NearbyShare::HIGH_BIT_INDEX,
+            ActionType::InstantTethering => InstantTethering::HIGH_BIT_INDEX,
+            ActionType::PhoneHub => PhoneHub::HIGH_BIT_INDEX,
+            ActionType::Finder => Finder::HIGH_BIT_INDEX,
+            ActionType::FastPairSass => FastPairSass::HIGH_BIT_INDEX,
+            ActionType::PresenceManager => PresenceManager::HIGH_BIT_INDEX,
+        }
+    }
+
+    const fn bits_len(&self) -> u32 {
+        match self {
+            ActionType::ContextSyncSeqNum => ContextSyncSeqNum::BITS_LEN,
+            ActionType::ActiveUnlock => ActiveUnlock::BITS_LEN,
+            ActionType::NearbyShare => NearbyShare::BITS_LEN,
+            ActionType::InstantTethering => InstantTethering::BITS_LEN,
+            ActionType::PhoneHub => PhoneHub::BITS_LEN,
+            ActionType::Finder => Finder::BITS_LEN,
+            ActionType::FastPairSass => FastPairSass::BITS_LEN,
+            ActionType::PresenceManager => PresenceManager::BITS_LEN,
+        }
+    }
+
+    pub(crate) fn supports_flavor(&self, flavor: PacketFlavorEnum) -> bool {
+        match self {
+            ActionType::ContextSyncSeqNum => ContextSyncSeqNum::supports_flavor(flavor),
+            ActionType::ActiveUnlock => ActiveUnlock::supports_flavor(flavor),
+            ActionType::NearbyShare => NearbyShare::supports_flavor(flavor),
+            ActionType::InstantTethering => InstantTethering::supports_flavor(flavor),
+            ActionType::PhoneHub => PhoneHub::supports_flavor(flavor),
+            ActionType::Finder => Finder::supports_flavor(flavor),
+            ActionType::FastPairSass => FastPairSass::supports_flavor(flavor),
+            ActionType::PresenceManager => PresenceManager::supports_flavor(flavor),
+        }
+    }
+}
+
+impl ActionElement for ContextSyncSeqNum {
+    const HIGH_BIT_INDEX: u32 = 0;
+    const BITS_LEN: u32 = 4;
+    const ACTION_TYPE: ActionType = ActionType::ContextSyncSeqNum;
+
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool {
+        match flavor {
+            PacketFlavorEnum::Plaintext => true,
+            PacketFlavorEnum::Ciphertext => true,
+        }
+    }
+}
+
+impl ToActionElement<Plaintext> for ContextSyncSeqNum {
+    fn bits(&self) -> u8 {
+        self.as_u8()
+    }
+}
+
+impl ToActionElement<Ciphertext> for ContextSyncSeqNum {
+    fn bits(&self) -> u8 {
+        self.as_u8()
+    }
+}
+
+// enabling an element for public adv requires privacy approval due to fingerprinting risk
+
+macros::boolean_element!(ActiveUnlock, 8, ciphertext_only);
+macros::boolean_element!(NearbyShare, 9, plaintext_and_ciphertext);
+macros::boolean_element!(InstantTethering, 10, ciphertext_only);
+macros::boolean_element!(PhoneHub, 11, ciphertext_only);
+macros::boolean_element!(PresenceManager, 12, ciphertext_only);
+macros::boolean_element!(Finder, 13, plaintext_only);
+macros::boolean_element!(FastPairSass, 14, plaintext_only);
diff --git a/nearby/presence/np_adv/src/legacy/actions/tests.rs b/nearby/presence/np_adv/src/legacy/actions/tests.rs
new file mode 100644
index 0000000..2e3fda0
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/actions/tests.rs
@@ -0,0 +1,378 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crate::legacy::{
+    actions::*, serialize::ToDataElementBundle, Ciphertext, PacketFlavorEnum, Plaintext,
+};
+use std::collections;
+
+#[test]
+fn set_context_sync_works() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    actions.set_action(ContextSyncSeqNum::try_from(15).unwrap());
+    assert_eq_hex(0xF0000000, actions.bits);
+
+    assert_eq!(actions.bits_for_type(&ActionType::ContextSyncSeqNum), 15);
+}
+
+#[test]
+fn set_context_sync_doesnt_clobber_neighboring_bit() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    // set bit just below
+    actions.bits |= 0x8000000;
+
+    actions.set_action(ContextSyncSeqNum::try_from(15).unwrap());
+    assert_eq_hex(0xF8000000, actions.bits);
+
+    assert_eq!(actions.bits_for_type(&ActionType::ContextSyncSeqNum), 15);
+}
+
+#[test]
+fn unset_context_sync_works() {
+    let mut actions = ActionBits::<Plaintext> {
+        // all 1s
+        bits: u32::MAX,
+        ..Default::default()
+    };
+
+    actions.set_action(ContextSyncSeqNum::try_from(0).unwrap());
+    assert_eq_hex(0x0FFFFFFF, actions.bits);
+
+    assert_eq!(actions.bits_for_type(&ActionType::ContextSyncSeqNum), 0);
+}
+
+#[test]
+fn set_ns_works() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    actions.set_action(NearbyShare::from(true));
+    assert_eq_hex(0x00400000, actions.bits);
+
+    assert_eq!(actions.bits_for_type(&ActionType::NearbyShare), 1);
+    assert_eq!(actions.bits_for_type(&ActionType::ActiveUnlock), 0);
+    assert_eq!(actions.bits_for_type(&ActionType::InstantTethering), 0);
+}
+
+#[test]
+fn set_ns_doesnt_clobber_others() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    // set neighboring bits
+    actions.bits |= 0x00120000;
+
+    actions.set_action(NearbyShare::from(true));
+    assert_eq_hex(0x00520000, actions.bits);
+
+    assert_eq!(actions.bits_for_type(&ActionType::NearbyShare), 1);
+    assert_eq!(actions.bits_for_type(&ActionType::PhoneHub), 1);
+    assert_eq!(actions.bits_for_type(&ActionType::FastPairSass), 1);
+}
+
+#[test]
+fn unset_ns_works() {
+    let mut actions = ActionBits::<Plaintext> {
+        // all 1s
+        bits: u32::MAX,
+        ..Default::default()
+    };
+
+    actions.set_action(NearbyShare::from(false));
+    assert_eq_hex(0xFFBFFFFF, actions.bits);
+}
+
+#[test]
+fn set_last_bit_works() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    actions.set_action(LastBit::from(true));
+    assert_eq_hex(0x0100, actions.bits);
+}
+
+#[test]
+fn set_last_bit_doesnt_clobber_others() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    // set neighboring bits
+    actions.bits |= 0x200;
+
+    actions.set_action(LastBit::from(true));
+    assert_eq_hex(0x300, actions.bits);
+}
+
+#[test]
+fn unset_last_bit_works() {
+    let mut actions = ActionBits::<Plaintext> {
+        // all 1s
+        bits: u32::MAX,
+        ..Default::default()
+    };
+
+    actions.set_action(LastBit::from(false));
+    assert_eq_hex(0xFFFFFEFF, actions.bits);
+}
+
+#[test]
+fn bytes_used_works() {
+    let mut actions = ActionBits::<Plaintext>::default();
+
+    // Special-case: All-zeroes should lead to a single byte being used.
+    assert_eq!(1, actions.bytes_used());
+
+    actions.set_action(ContextSyncSeqNum::try_from(3).unwrap());
+    assert_eq!(1, actions.bytes_used());
+
+    actions.set_action(NearbyShare::from(true));
+    assert_eq!(2, actions.bytes_used());
+
+    actions.set_action(LastBit::from(true));
+    assert_eq!(3, actions.bytes_used());
+
+    actions.set_action(LastBit::from(false));
+    assert_eq!(2, actions.bytes_used());
+}
+
+#[test]
+fn write_de_empty_actions() {
+    // The special case of no action bits set should still occupy one byte [of all zeroes].
+    let de = ActionsDataElement::<Plaintext>::from(ActionBits::default()).to_de_bundle();
+
+    assert_eq!(&[0x00], de.contents_as_slice());
+}
+
+#[test]
+fn write_de_one_action_byte() {
+    let mut action = ActionBits::default();
+    action.set_action(ContextSyncSeqNum::try_from(7).unwrap());
+    let de = ActionsDataElement::<Plaintext>::from(action).to_de_bundle();
+
+    assert_eq!(&[0x70], de.contents_as_slice());
+}
+
+#[test]
+fn write_de_three_action_bytes() {
+    let mut action = ActionBits::default();
+    action.set_action(LastBit::from(true));
+    let de = ActionsDataElement::<Plaintext>::from(action).to_de_bundle();
+
+    assert_eq!(&[0, 0, 1], de.contents_as_slice());
+}
+
+#[test]
+fn write_de_all_plaintext_actions() {
+    let mut action = all_plaintext_actions();
+    action.set_action(LastBit::from(true));
+    let de = ActionsDataElement::<Plaintext>::from(action).to_de_bundle();
+
+    // byte 0: context sync
+    // byte 1: nearby share, finder, fp sass
+    // byte 2: last bit
+    assert_eq!(&[0x90, 0x46, 0x01], de.contents_as_slice());
+}
+
+#[test]
+fn write_de_all_encrypted_actions() {
+    let mut action = all_ciphertext_actions();
+    action.set_action(LastBit::from(true));
+    let de = ActionsDataElement::<Ciphertext>::from(action).to_de_bundle();
+
+    // byte 1: context sync num = 9, 4 unused bits
+    // byte 2: active unlock, nearby share, instant tethering, phone hub,
+    // presence manager, last 3 bits unused
+    // byte 3: last bit
+    assert_eq!(&[0x90, 0xF8, 0x01], de.contents_as_slice());
+}
+
+#[test]
+fn action_element_nonzero_len() {
+    for t in ActionType::iter() {
+        assert!(t.bits_len() > 0);
+    }
+}
+
+#[test]
+fn action_element_bits_dont_overlap() {
+    let type_to_bits =
+        ActionType::iter().map(|t| (t, t.all_bits())).collect::<collections::HashMap<_, _>>();
+
+    for t in ActionType::iter() {
+        let bits = type_to_bits.get(&t).unwrap();
+
+        for (_, other_bits) in type_to_bits.iter().filter(|(other_type, _)| t != **other_type) {
+            assert_eq!(0, bits & other_bits, "type {t:?}");
+        }
+    }
+}
+
+#[test]
+fn action_type_all_bits() {
+    assert_eq!(0xF0000000, ActionType::ContextSyncSeqNum.all_bits());
+    assert_eq!(0x00800000, ActionType::ActiveUnlock.all_bits());
+    assert_eq!(0x00020000, ActionType::FastPairSass.all_bits());
+}
+
+#[test]
+fn action_type_all_bits_in_per_type_masks() {
+    for t in ActionType::iter().filter(|t| t.supports_flavor(PacketFlavorEnum::Plaintext)) {
+        assert_eq!(t.all_bits(), t.all_bits() & *ALL_PLAINTEXT_ELEMENT_BITS);
+    }
+    for t in ActionType::iter().filter(|t| t.supports_flavor(PacketFlavorEnum::Ciphertext)) {
+        assert_eq!(t.all_bits(), t.all_bits() & *ALL_CIPHERTEXT_ELEMENT_BITS);
+    }
+}
+
+#[test]
+fn action_bits_try_from_flavor_mismatch_plaintext() {
+    assert_eq!(
+        FlavorNotSupported { flavor: PacketFlavorEnum::Plaintext },
+        ActionBits::<Plaintext>::try_from(ActionType::PresenceManager.all_bits()).unwrap_err()
+    );
+    assert_eq!(
+        0xF0000000,
+        ActionBits::<Plaintext>::try_from(ActionType::ContextSyncSeqNum.all_bits()).unwrap().bits
+    );
+}
+
+#[test]
+fn action_bits_try_from_flavor_mismatch_ciphertext() {
+    assert_eq!(
+        FlavorNotSupported { flavor: PacketFlavorEnum::Ciphertext },
+        ActionBits::<Ciphertext>::try_from(ActionType::Finder.all_bits()).unwrap_err()
+    );
+    assert_eq!(
+        0xF0000000,
+        ActionBits::<Ciphertext>::try_from(ActionType::ContextSyncSeqNum.all_bits()).unwrap().bits
+    );
+}
+
+#[test]
+fn actions_de_deser_plaintext_with_ciphertext_action() {
+    assert_eq!(
+        DataElementDeserializeError::FlavorNotSupported {
+            de_type: DataElementType::Actions,
+            flavor: PacketFlavorEnum::Plaintext
+        },
+        <ActionsDataElement<Plaintext> as DataElement>::deserialize::<Plaintext>(&[
+            // active unlock bit set
+            0x00, 0x80, 0x00,
+        ])
+        .unwrap_err()
+    );
+}
+
+#[test]
+fn actions_de_deser_ciphertext_with_plaintext_action() {
+    assert_eq!(
+        DataElementDeserializeError::FlavorNotSupported {
+            de_type: DataElementType::Actions,
+            flavor: PacketFlavorEnum::Ciphertext
+        },
+        <ActionsDataElement<Ciphertext> as DataElement>::deserialize::<Ciphertext>(&[
+            // Finder bit set
+            0x00, 0x00, 0x80,
+        ])
+        .unwrap_err()
+    );
+}
+
+#[test]
+fn context_sync_seq_num_works() {
+    let mut action_bits = ActionBits::<Plaintext>::default();
+    action_bits.set_action(ContextSyncSeqNum::try_from(15).unwrap());
+    let action_de = ActionsDataElement::from(action_bits);
+    assert_eq!(15, action_de.context_sync_seq_num().as_u8());
+}
+
+#[test]
+fn context_sync_seq_num_default_zero() {
+    let action_bits = ActionBits::<Plaintext>::default();
+    let action_de = ActionsDataElement::from(action_bits);
+    assert_eq!(0, action_de.context_sync_seq_num().as_u8());
+}
+
+#[test]
+fn has_action_plaintext_works() {
+    let mut action_bits = ActionBits::<Plaintext>::default();
+    action_bits.set_action(ContextSyncSeqNum::try_from(15).unwrap());
+    action_bits.set_action(NearbyShare::from(true));
+    let action_de = ActionsDataElement::from(action_bits);
+    assert_eq!(action_de.has_action(&ActionType::NearbyShare), Some(true));
+    assert_eq!(action_de.has_action(&ActionType::ActiveUnlock), Some(false));
+    assert_eq!(action_de.has_action(&ActionType::PhoneHub), Some(false));
+}
+
+#[test]
+fn has_action_encrypted_works() {
+    let mut action_bits = ActionBits::<Ciphertext>::default();
+    action_bits.set_action(ContextSyncSeqNum::try_from(15).unwrap());
+    action_bits.set_action(NearbyShare::from(true));
+    action_bits.set_action(ActiveUnlock::from(true));
+    let action_de = ActionsDataElement::from(action_bits);
+    assert_eq!(action_de.has_action(&ActionType::NearbyShare), Some(true));
+    assert_eq!(action_de.has_action(&ActionType::ActiveUnlock), Some(true));
+    assert_eq!(action_de.has_action(&ActionType::PhoneHub), Some(false));
+    assert_eq!(action_de.has_action(&ActionType::ContextSyncSeqNum), None);
+}
+
+// hypothetical action using the last bit
+#[derive(Debug)]
+struct LastBit {
+    enabled: bool,
+}
+impl From<bool> for LastBit {
+    fn from(value: bool) -> Self {
+        LastBit { enabled: value }
+    }
+}
+impl ActionElement for LastBit {
+    const HIGH_BIT_INDEX: u32 = 23;
+    const BITS_LEN: u32 = 1;
+
+    // don't want to add a variant for this test only type
+    const ACTION_TYPE: ActionType = ActionType::ActiveUnlock;
+
+    fn supports_flavor(_flavor: PacketFlavorEnum) -> bool {
+        true
+    }
+}
+
+macros::boolean_element_to_plaintext_element!(LastBit);
+macros::boolean_element_to_encrypted_element!(LastBit);
+
+fn assert_eq_hex(expected: u32, actual: u32) {
+    assert_eq!(expected, actual, "{expected:#010X} != {actual:#010X}");
+}
+
+pub(crate) fn all_plaintext_actions() -> ActionBits<Plaintext> {
+    let mut action = ActionBits::default();
+    action.set_action(ContextSyncSeqNum::try_from(9).unwrap());
+    action.set_action(NearbyShare::from(true));
+    action.set_action(Finder::from(true));
+    action.set_action(FastPairSass::from(true));
+    action
+}
+
+pub(crate) fn all_ciphertext_actions() -> ActionBits<Ciphertext> {
+    let mut action = ActionBits::default();
+    action.set_action(ContextSyncSeqNum::try_from(9).unwrap());
+    action.set_action(ActiveUnlock::from(true));
+    action.set_action(NearbyShare::from(true));
+    action.set_action(InstantTethering::from(true));
+    action.set_action(PhoneHub::from(true));
+    action.set_action(PresenceManager::from(true));
+    action
+}
diff --git a/nearby/presence/np_adv/src/legacy/data_elements.rs b/nearby/presence/np_adv/src/legacy/data_elements.rs
new file mode 100644
index 0000000..e9c2308
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/data_elements.rs
@@ -0,0 +1,109 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V0 data elements and core trait impls.
+use crate::legacy::{
+    de_type::{DataElementType, PlainDataElementType},
+    serialize::{DataElementBundle, ToDataElementBundle},
+    PacketFlavor, PacketFlavorEnum,
+};
+use crate::shared_data::*;
+
+/// Core behavior for data elements.
+///
+/// See also [ToDataElementBundle] for flavor-specific, infallible serialization.
+pub trait DataElement: Sized {
+    /// The corresponding DataElementType variant.
+    const DE_TYPE_VARIANT: DataElementType;
+
+    /// Return true if the DE supports serialization and deserialization for the provided flavor.
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool;
+
+    /// Returns `Err` if the flavor is not supported or if parsing fails.
+    ///
+    /// `<F>` is the flavor of the packet being deserialized.
+    fn deserialize<F: PacketFlavor>(
+        de_contents: &[u8],
+    ) -> Result<Self, DataElementDeserializeError>;
+}
+
+/// Errors possible when deserializing a DE
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub enum DataElementDeserializeError {
+    /// The data element doesn't support the [PacketFlavor] of the advertisement packet.
+    FlavorNotSupported {
+        /// The DE type attempting to be deserialized
+        de_type: DataElementType,
+        /// The flavor that was not supported
+        flavor: PacketFlavorEnum,
+    },
+    /// The data element couldn't be deserialized from the supplied data.
+    DeserializeError {
+        /// The DE type attempting to be deserialized
+        de_type: DataElementType,
+    },
+}
+
+/// Data element holding a [TxPower].
+#[derive(Debug, PartialEq, Eq)]
+pub struct TxPowerDataElement {
+    tx_power: TxPower,
+}
+
+impl TxPowerDataElement {
+    /// Gets the underlying Tx Power value
+    pub fn tx_power_value(&self) -> i8 {
+        self.tx_power.as_i8()
+    }
+}
+
+impl From<TxPower> for TxPowerDataElement {
+    fn from(tx_power: TxPower) -> Self {
+        Self { tx_power }
+    }
+}
+
+impl<F: PacketFlavor> ToDataElementBundle<F> for TxPowerDataElement {
+    fn to_de_bundle(&self) -> DataElementBundle<F> {
+        let tx_power = self.tx_power.as_i8();
+        DataElementBundle::try_from(
+            PlainDataElementType::TxPower,
+            tx_power.to_be_bytes().as_slice(),
+        )
+        .expect("Length < max DE size")
+    }
+}
+
+impl DataElement for TxPowerDataElement {
+    const DE_TYPE_VARIANT: DataElementType = DataElementType::TxPower;
+
+    fn supports_flavor(flavor: PacketFlavorEnum) -> bool {
+        match flavor {
+            PacketFlavorEnum::Plaintext => true,
+            PacketFlavorEnum::Ciphertext => true,
+        }
+    }
+    fn deserialize<F: PacketFlavor>(
+        de_contents: &[u8],
+    ) -> Result<Self, DataElementDeserializeError> {
+        de_contents
+            .try_into()
+            .ok()
+            .and_then(|arr: [u8; 1]| TxPower::try_from(i8::from_be_bytes(arr)).ok())
+            .map(|tx_power| Self { tx_power })
+            .ok_or(DataElementDeserializeError::DeserializeError {
+                de_type: DataElementType::TxPower,
+            })
+    }
+}
diff --git a/nearby/presence/np_adv/src/legacy/de_type/mod.rs b/nearby/presence/np_adv/src/legacy/de_type/mod.rs
new file mode 100644
index 0000000..5c7ebfa
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/de_type/mod.rs
@@ -0,0 +1,355 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V0 data element types.
+//!
+//! In V0, there are only 16 DE types total, and parsing unknown types is not possible, so we can
+//! represent all known DE types in enums without needing to handle the "unknown type" case.
+
+use crate::{
+    de_type::IdentityDataElementType,
+    legacy::{
+        actions::ActionsDataElement,
+        data_elements::{DataElement as _, TxPowerDataElement},
+        Ciphertext, PacketFlavorEnum, Plaintext, NP_MAX_DE_CONTENT_LEN,
+    },
+    DeLengthOutOfRange,
+};
+use core::ops;
+use ldt_np_adv::NP_LEGACY_METADATA_KEY_LEN;
+use strum_macros::EnumIter;
+
+#[cfg(test)]
+mod tests;
+
+/// A V0 DE type in `[0, 15]`.
+#[derive(Debug, PartialEq, Eq, Hash)]
+pub(crate) struct DeTypeCode {
+    /// The code used in a V0 adv header
+    code: u8,
+}
+
+impl DeTypeCode {
+    /// Returns a u8 in `[0, 15`].
+    pub(crate) fn as_u8(&self) -> u8 {
+        self.code
+    }
+}
+
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub(crate) struct DeTypeCodeOutOfRange;
+
+impl TryFrom<u8> for DeTypeCode {
+    type Error = DeTypeCodeOutOfRange;
+
+    fn try_from(value: u8) -> Result<Self, Self::Error> {
+        if value < 16 {
+            Ok(Self { code: value })
+        } else {
+            Err(DeTypeCodeOutOfRange)
+        }
+    }
+}
+
+/// The actual length of a DE, not the encoded representation.
+///
+/// See [DeEncodedLength] for the encoded length.
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub(crate) struct DeActualLength {
+    /// Invariant: <= `NP_MAX_DE_CONTENT_LEN`.
+    len: u8,
+}
+
+impl DeActualLength {
+    pub(crate) const ZERO: DeActualLength = DeActualLength { len: 0 };
+
+    pub(crate) fn as_usize(&self) -> usize {
+        self.len as usize
+    }
+}
+
+impl TryFrom<u8> for DeActualLength {
+    type Error = DeLengthOutOfRange;
+
+    fn try_from(value: u8) -> Result<Self, Self::Error> {
+        if (value as usize) <= NP_MAX_DE_CONTENT_LEN {
+            Ok(Self { len: value })
+        } else {
+            Err(DeLengthOutOfRange)
+        }
+    }
+}
+
+impl TryFrom<usize> for DeActualLength {
+    type Error = DeLengthOutOfRange;
+
+    fn try_from(value: usize) -> Result<Self, Self::Error> {
+        if value <= NP_MAX_DE_CONTENT_LEN {
+            Ok(Self { len: value as u8 })
+        } else {
+            Err(DeLengthOutOfRange)
+        }
+    }
+}
+
+/// The encoded length of a DE, not the actual length of the DE contents.
+///
+/// See [DeActualLength] for the length of the contents.
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub(crate) struct DeEncodedLength {
+    /// Invariant: `len <= 0x0F` (15, aka 4 bits)
+    len: u8,
+}
+
+impl DeEncodedLength {
+    /// Returns a u8 in `[0, 15]`
+    pub(crate) fn as_u8(&self) -> u8 {
+        self.len
+    }
+
+    /// Returns a usize in `[0, 15]`
+    pub(crate) fn as_usize(&self) -> usize {
+        self.len as usize
+    }
+}
+
+impl TryFrom<u8> for DeEncodedLength {
+    type Error = DeLengthOutOfRange;
+
+    fn try_from(value: u8) -> Result<Self, Self::Error> {
+        if value < 16 {
+            Ok(Self { len: value })
+        } else {
+            Err(DeLengthOutOfRange)
+        }
+    }
+}
+
+/// DE types for normal DEs (not an identity).
+///
+/// May be contained in identity DEs (see [IdentityDataElementType]). Must not overlap with
+/// [IdentityDataElementType].
+#[derive(EnumIter, Debug, Clone, Copy, PartialEq, Eq)]
+pub(crate) enum PlainDataElementType {
+    TxPower,
+    Actions,
+}
+
+impl PlainDataElementType {
+    pub(crate) fn as_generic_de_type(&self) -> DataElementType {
+        match self {
+            PlainDataElementType::TxPower => DataElementType::TxPower,
+            PlainDataElementType::Actions => DataElementType::Actions,
+        }
+    }
+
+    pub(crate) fn supports_flavor(&self, flavor: PacketFlavorEnum) -> bool {
+        match self {
+            PlainDataElementType::Actions => {
+                // Actions is effectively two different DEs based on which actions it can
+                // contain, so we have to check them separately. The Plaintext one obviously
+                // supports plaintext, and vice versa, so we could just say `true` here, but we
+                // spell it out to be consistent with the other DE types.
+                match flavor {
+                    PacketFlavorEnum::Plaintext => {
+                        ActionsDataElement::<Plaintext>::supports_flavor(flavor)
+                    }
+                    PacketFlavorEnum::Ciphertext => {
+                        ActionsDataElement::<Ciphertext>::supports_flavor(flavor)
+                    }
+                }
+            }
+            PlainDataElementType::TxPower => TxPowerDataElement::supports_flavor(flavor),
+        }
+    }
+}
+
+/// Corresponds to the different implementations of [DataElement].
+///
+/// It's intended for use cases that don't care if a DE is a plain or identity DE. Every variant
+/// corresponds to either a [PlainDataElementType] or a [IdentityDataElementType].
+#[derive(EnumIter, Debug, Clone, Copy, PartialEq, Eq)]
+#[allow(missing_docs)]
+#[doc(hidden)]
+pub enum DataElementType {
+    PrivateIdentity,
+    TrustedIdentity,
+    PublicIdentity,
+    ProvisionedIdentity,
+    TxPower,
+    Actions,
+}
+
+const DE_TYPES_BY_CODE: [Option<DataElementType>; 16] = [
+    None,                                       // 0b0000
+    Some(DataElementType::PrivateIdentity),     // 0b0001
+    Some(DataElementType::TrustedIdentity),     // 0b0010
+    Some(DataElementType::PublicIdentity),      // 0b0011
+    Some(DataElementType::ProvisionedIdentity), // 0b0100
+    Some(DataElementType::TxPower),             // 0b0101
+    Some(DataElementType::Actions),             // 0b0110
+    None,                                       // 0b0111
+    None,                                       // 0b1000
+    None,                                       // 0b1001
+    None,                                       // 0b1010
+    None,                                       // 0b1011
+    None,                                       // 0b1100
+    None,                                       // 0b1101
+    None,                                       // 0b1110
+    None,                                       // 0b1111
+];
+
+impl DataElementType {
+    /// Salt + key + at least 2 bytes of DE to make LDT ciphertext min length
+    const VALID_ENCRYPTED_IDENTITY_DE_ACTUAL_LEN: ops::RangeInclusive<usize> =
+        (2 + NP_LEGACY_METADATA_KEY_LEN + 2..=NP_MAX_DE_CONTENT_LEN);
+    const VALID_ENCRYPTED_IDENTITY_DE_HEADER_LEN: ops::RangeInclusive<usize> = (2..=6);
+
+    /// If there is a corresponding [ContainerDataElementType], returns it, otherwise None.
+    pub(crate) fn try_as_identity_de_type(&self) -> Option<IdentityDataElementType> {
+        match self {
+            DataElementType::PrivateIdentity => Some(IdentityDataElementType::Private),
+            DataElementType::TrustedIdentity => Some(IdentityDataElementType::Trusted),
+            DataElementType::PublicIdentity => Some(IdentityDataElementType::Public),
+            DataElementType::ProvisionedIdentity => Some(IdentityDataElementType::Provisioned),
+            DataElementType::TxPower | DataElementType::Actions => None,
+        }
+    }
+
+    /// If there is a corresponding [PlainDataElementType], returns it, otherwise None.
+    pub(crate) fn try_as_plain_de_type(&self) -> Option<PlainDataElementType> {
+        match self {
+            DataElementType::TxPower => Some(PlainDataElementType::TxPower),
+            DataElementType::Actions => Some(PlainDataElementType::Actions),
+            DataElementType::PrivateIdentity
+            | DataElementType::TrustedIdentity
+            | DataElementType::PublicIdentity
+            | DataElementType::ProvisionedIdentity => None,
+        }
+    }
+
+    /// Returns the matching type for the code, else `None`
+    pub(crate) fn from_type_code(de_type: DeTypeCode) -> Option<Self> {
+        DE_TYPES_BY_CODE.get(de_type.as_u8() as usize).and_then(|o| *o)
+    }
+
+    /// A type code in `[0,15]` for use in the high bits of the DE header byte.
+    pub(crate) fn type_code(&self) -> DeTypeCode {
+        match self {
+            DataElementType::PrivateIdentity => IdentityDataElementType::Private.shared_type_code(),
+            DataElementType::TrustedIdentity => IdentityDataElementType::Trusted.shared_type_code(),
+            DataElementType::PublicIdentity => IdentityDataElementType::Public.shared_type_code(),
+            DataElementType::ProvisionedIdentity => {
+                IdentityDataElementType::Provisioned.shared_type_code()
+            }
+            DataElementType::TxPower => 0b0101,
+            DataElementType::Actions => 0b0110,
+        }
+        .try_into()
+        .expect("hardcoded type codes are valid")
+    }
+
+    /// Convert the actual DE length to the encoded length included in the header.
+    ///
+    /// Returns `Err` if the actual length is invalid for the type, or the corresponding encoded length is out of range.
+    pub(crate) fn encoded_len_for_actual_len(
+        &self,
+        actual_len: DeActualLength,
+    ) -> Result<DeEncodedLength, DeLengthOutOfRange> {
+        match self {
+            // TODO 0-length provisioned
+            DataElementType::PrivateIdentity
+            | DataElementType::TrustedIdentity
+            | DataElementType::ProvisionedIdentity => {
+                if !Self::VALID_ENCRYPTED_IDENTITY_DE_ACTUAL_LEN.contains(&actual_len.as_usize()) {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    actual_len
+                        .len
+                        .checked_sub(16)
+                        .ok_or(DeLengthOutOfRange)
+                        .and_then(|n| n.try_into())
+                }
+            }
+            DataElementType::PublicIdentity => {
+                if actual_len.len != 0 {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    actual_len.len.try_into()
+                }
+            }
+            DataElementType::TxPower => {
+                if actual_len.len != 1 {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    actual_len.len.try_into()
+                }
+            }
+            DataElementType::Actions => {
+                // doesn't matter which variant is used
+                if !ActionsDataElement::<Plaintext>::ACTIONS_LEN.contains(&actual_len.as_usize()) {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    actual_len.len.try_into()
+                }
+            }
+        }
+    }
+
+    /// Convert the length in the header to the actual DE length.
+    ///
+    /// Returns `Err` if the encoded length is invalid for the type, or the corresponding actual length is out of range.
+    pub(crate) fn actual_len_for_encoded_len(
+        &self,
+        header_len: DeEncodedLength,
+    ) -> Result<DeActualLength, DeLengthOutOfRange> {
+        match self {
+            DataElementType::PrivateIdentity
+            | DataElementType::TrustedIdentity
+            // TODO provisioned 0 length
+            | DataElementType::ProvisionedIdentity => {
+                if !Self::VALID_ENCRYPTED_IDENTITY_DE_HEADER_LEN.contains(&header_len.as_usize()) {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    header_len
+                        .len
+                        .checked_add(16)
+                        .ok_or(DeLengthOutOfRange)
+                        .and_then(|n| n.try_into())
+                }
+            }
+            DataElementType::PublicIdentity => {
+                if header_len.len != 0 {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    header_len.len.try_into()
+                }
+            }
+            DataElementType::TxPower => {
+                if header_len.len != 1 {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    header_len.len.try_into()
+                }
+            }
+            DataElementType::Actions => {
+                if !ActionsDataElement::<Plaintext>::ACTIONS_LEN.contains(&header_len.as_usize()) {
+                    Err(DeLengthOutOfRange)
+                } else {
+                    header_len.len.try_into()
+                }
+            }
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/legacy/de_type/tests.rs b/nearby/presence/np_adv/src/legacy/de_type/tests.rs
new file mode 100644
index 0000000..59075aa
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/de_type/tests.rs
@@ -0,0 +1,112 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::legacy::serialize::id_de_type_as_generic_de_type;
+use std::{collections, vec::Vec};
+use strum::IntoEnumIterator as _;
+
+#[test]
+fn no_plain_vs_identity_type_overlap() {
+    let plain_types =
+        PlainDataElementType::iter().map(|t| t.as_generic_de_type()).collect::<Vec<_>>();
+    let identity_types =
+        IdentityDataElementType::iter().map(id_de_type_as_generic_de_type).collect::<Vec<_>>();
+
+    for plain_de_type in plain_types.iter() {
+        assert!(!identity_types.iter().any(|i| i == plain_de_type));
+        assert_eq!(None, plain_de_type.try_as_identity_de_type());
+    }
+
+    for id_de_type in identity_types.iter() {
+        assert!(!plain_types.iter().any(|p| p == id_de_type));
+        assert_eq!(None, id_de_type.try_as_plain_de_type());
+    }
+}
+
+#[test]
+fn generic_type_is_either_plain_or_identity() {
+    let generic_types = DataElementType::iter().collect::<Vec<_>>();
+
+    for g in generic_types.iter() {
+        let total = g.try_as_identity_de_type().map(|_| 1).unwrap_or(0)
+            + g.try_as_plain_de_type().map(|_| 1).unwrap_or(0);
+
+        assert_eq!(1, total);
+    }
+}
+
+#[test]
+fn generic_de_type_codes_are_consistent() {
+    for det in DataElementType::iter() {
+        let actual = DataElementType::from_type_code(det.type_code());
+        assert_eq!(Some(det), actual)
+    }
+}
+
+#[test]
+fn generic_de_distinct_type_codes() {
+    let codes =
+        DataElementType::iter().map(|det| det.type_code()).collect::<collections::HashSet<_>>();
+    assert_eq!(codes.len(), DataElementType::iter().count());
+}
+
+#[test]
+fn generic_de_no_accidentally_mapped_type_codes() {
+    let codes =
+        DataElementType::iter().map(|det| det.type_code()).collect::<collections::HashSet<_>>();
+    for possible_code in 0..=15 {
+        if codes.contains(&possible_code.try_into().unwrap()) {
+            continue;
+        }
+
+        assert_eq!(None, DataElementType::from_type_code(possible_code.try_into().unwrap()));
+    }
+}
+
+#[test]
+fn actions_de_length_zero_rejected() {
+    let encoded = DeEncodedLength::try_from(0).unwrap();
+    let maybe_actual_len = DataElementType::Actions.actual_len_for_encoded_len(encoded);
+    assert_eq!(Err(DeLengthOutOfRange), maybe_actual_len);
+}
+
+#[test]
+fn de_length_actual_encoded_round_trip() {
+    for de_type in DataElementType::iter() {
+        // for all possible lengths, calculate actual -> encoded and the inverse
+        let actual_to_encoded = (0_u8..=255)
+            .filter_map(|num| num.try_into().ok())
+            .filter_map(|actual: DeActualLength| {
+                de_type.encoded_len_for_actual_len(actual).ok().map(|encoded| (actual, encoded))
+            })
+            .collect::<collections::HashMap<_, _>>();
+
+        let encoded_to_actual = (0_u8..=255)
+            .filter_map(|num| num.try_into().ok())
+            .filter_map(|encoded: DeEncodedLength| {
+                de_type.actual_len_for_encoded_len(encoded).ok().map(|actual| (encoded, actual))
+            })
+            .collect::<collections::HashMap<_, _>>();
+
+        // ensure the two maps are inverses of each other
+        assert_eq!(
+            actual_to_encoded,
+            encoded_to_actual.into_iter().map(|(encoded, actual)| (actual, encoded)).collect(),
+            "de type: {de_type:?}"
+        );
+    }
+}
diff --git a/nearby/presence/np_adv/src/legacy/deserialize/mod.rs b/nearby/presence/np_adv/src/legacy/deserialize/mod.rs
new file mode 100644
index 0000000..3119f48
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/deserialize/mod.rs
@@ -0,0 +1,416 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V0 data element deserialization.
+//!
+//! This module only deals with the _contents_ of an advertisement, not the advertisement header.
+
+extern crate alloc;
+
+use crate::{
+    de_type::EncryptedIdentityDataElementType,
+    legacy::{
+        actions,
+        data_elements::{DataElement, *},
+        de_type::{DataElementType, DeEncodedLength, DeTypeCode, PlainDataElementType},
+        Ciphertext, PacketFlavor, Plaintext, NP_MAX_DE_CONTENT_LEN,
+    },
+    PlaintextIdentityMode,
+};
+use alloc::vec::Vec;
+use crypto_provider::CryptoProvider;
+use ldt_np_adv::{LegacySalt, NP_LEGACY_METADATA_KEY_LEN};
+use nom::{bytes, combinator, multi, number, sequence};
+
+#[cfg(test)]
+mod tests;
+
+/// Deserialize an advertisement into data elements (if plaintext) or an identity type and
+/// ciphertext.
+pub(crate) fn deserialize_adv_contents<C: CryptoProvider>(
+    input: &[u8],
+) -> Result<IntermediateAdvContents, AdvDeserializeError> {
+    parse_raw_adv_contents::<C>(input).and_then(|raw_adv| match raw_adv {
+        RawAdvertisement::Plaintext(parc) => parc
+            .try_deserialize()
+            .map(IntermediateAdvContents::Plaintext)
+            .map_err(AdvDeserializeError::DataElementDeserializeError),
+        RawAdvertisement::Ciphertext(eac) => Ok(IntermediateAdvContents::Ciphertext(eac)),
+    })
+}
+
+/// Parse an advertisement's contents to the level of raw data elements (i.e no decryption,
+/// no per-type deserialization, etc).
+///
+/// Consumes the entire input.
+fn parse_raw_adv_contents<C: CryptoProvider>(
+    input: &[u8],
+) -> Result<RawAdvertisement, AdvDeserializeError> {
+    let (_, data_elements) = parse_data_elements(input)
+        .map_err(|_e| AdvDeserializeError::AdvertisementDeserializeError)?;
+
+    if let Some(identity_de_type) =
+        data_elements.first().and_then(|de| de.de_type.try_as_identity_de_type())
+    {
+        match identity_de_type.as_encrypted_identity_de_type() {
+            Some(encrypted_de_type) => {
+                if data_elements.len() == 1 {
+                    match encrypted_de_type {
+                        // TODO handle length=0 provisioned identity DEs
+                        EncryptedIdentityDataElementType::Private
+                        | EncryptedIdentityDataElementType::Trusted
+                        | EncryptedIdentityDataElementType::Provisioned => {
+                            combinator::map(
+                                parse_encrypted_identity_de_contents,
+                                |(salt, payload)| {
+                                    RawAdvertisement::Ciphertext(EncryptedAdvContents {
+                                        identity_type: encrypted_de_type,
+                                        salt_padder: ldt_np_adv::salt_padder::<16, C>(salt),
+                                        salt,
+                                        ciphertext: payload,
+                                    })
+                                },
+                            )(data_elements[0].contents)
+                            .map(|(_rem, contents)| contents)
+                            .map_err(|_e| AdvDeserializeError::AdvertisementDeserializeError)
+                        }
+                    }
+                } else {
+                    Err(AdvDeserializeError::TooManyTopLevelDataElements)
+                }
+            }
+            // It's an identity de, but not encrypted, so it must be public, and the rest must be
+            // plain
+            None => plain_data_elements(&data_elements[1..]).map(|pdes| {
+                RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+                    identity_type: PlaintextIdentityMode::Public,
+                    data_elements: pdes,
+                })
+            }),
+        }
+    } else {
+        plain_data_elements(&data_elements).map(|pde| {
+            RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+                identity_type: PlaintextIdentityMode::None,
+                data_elements: pde,
+            })
+        })
+    }
+}
+
+/// Legacy advertisement parsing errors
+#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+pub(crate) enum AdvDeserializeError {
+    /// Parsing the overall advertisement or DE structure failed
+    AdvertisementDeserializeError,
+    /// Deserializing an individual DE from its DE contents failed
+    DataElementDeserializeError(DataElementDeserializeError),
+    /// Must not have any other top level data elements if there is an encrypted identity DE
+    TooManyTopLevelDataElements,
+    /// Must not have an identity DE inside an identity DE
+    InvalidDataElementHierarchy,
+}
+
+/// Parse an advertisement's contents into raw DEs.
+///
+/// Consumes the entire input.
+fn parse_data_elements(adv_contents: &[u8]) -> nom::IResult<&[u8], Vec<RawDataElement>> {
+    combinator::all_consuming(multi::many0(parse_de))(adv_contents)
+}
+
+/// Parse an individual DE into its header and contents.
+fn parse_de(input: &[u8]) -> nom::IResult<&[u8], RawDataElement> {
+    let (remaining, (de_type, actual_len)) =
+        combinator::map_opt(number::complete::u8, |de_header| {
+            // header: LLLLTTTT
+            let len = de_header >> 4;
+            let de_type = de_header & 0x0F;
+            DeTypeCode::try_from(de_type).ok().and_then(DataElementType::from_type_code).and_then(
+                |de_type| {
+                    len.try_into()
+                        .ok()
+                        .and_then(|len: DeEncodedLength| {
+                            de_type.actual_len_for_encoded_len(len).ok()
+                        })
+                        .map(|len| (de_type, len))
+                },
+            )
+        })(input)?;
+
+    combinator::map(bytes::complete::take(actual_len.as_usize()), move |contents| RawDataElement {
+        de_type,
+        contents,
+    })(remaining)
+}
+
+/// Returns `Err`` if any DEs are not of a plain DE type.
+fn plain_data_elements<'d, D: AsRef<[RawDataElement<'d>]>>(
+    data_elements: D,
+) -> Result<Vec<RawPlainDataElement<'d>>, AdvDeserializeError> {
+    data_elements
+        .as_ref()
+        .iter()
+        .map(|de| {
+            de.de_type
+                .try_as_plain_de_type()
+                .map(|de_type| RawPlainDataElement { de_type, contents: de.contents })
+        })
+        .collect::<Option<Vec<_>>>()
+        .ok_or(AdvDeserializeError::InvalidDataElementHierarchy)
+}
+
+/// Parse legacy encrypted identity DEs (private, trusted, provisioned) into salt and ciphertext
+/// (encrypted metadata key and at least 2 bytes of DEs).
+///
+/// Consumes the entire input.
+fn parse_encrypted_identity_de_contents(
+    de_contents: &[u8],
+) -> nom::IResult<&[u8], (ldt_np_adv::LegacySalt, &[u8])> {
+    combinator::all_consuming(sequence::tuple((
+        // 2-byte salt
+        combinator::map(
+            combinator::map_res(bytes::complete::take(2_usize), |slice: &[u8]| slice.try_into()),
+            |arr: [u8; 2]| arr.into(),
+        ),
+        // 14-byte encrypted metadata key plus encrypted DEs, which must together be at least 16
+        // bytes (AES block size), and at most a full DE minus the size of the salt.
+        bytes::complete::take_while_m_n(16_usize, NP_MAX_DE_CONTENT_LEN - 2, |_| true),
+    )))(de_contents)
+}
+
+/// A data element with content length determined and validated per its type's length rules, but
+/// no further decoding performed.
+#[derive(Debug, PartialEq, Eq)]
+struct RawDataElement<'d> {
+    de_type: DataElementType,
+    contents: &'d [u8],
+}
+
+/// An advertisement broken down into data elements, but before decryption or mapping to higher
+/// level DE representations.
+#[derive(Debug, PartialEq, Eq)]
+enum RawAdvertisement<'d> {
+    Plaintext(PlaintextAdvRawContents<'d>),
+    Ciphertext(EncryptedAdvContents<'d>),
+}
+
+/// A plaintext advertisement's content in raw DEs but without further deserialization.
+#[derive(Debug, PartialEq, Eq)]
+struct PlaintextAdvRawContents<'d> {
+    identity_type: PlaintextIdentityMode,
+    data_elements: Vec<RawPlainDataElement<'d>>,
+}
+
+impl<'d> PlaintextAdvRawContents<'d> {
+    /// Deserialize the DE contents into per-DE-type structures.
+    ///
+    /// Returns `Some` if each DE's contents can be successfully deserialized, otherwise `None`.
+    fn try_deserialize(&self) -> Result<PlaintextAdvContents, DataElementDeserializeError> {
+        self.data_elements
+            .iter()
+            .map(|de| de.try_deserialize::<Plaintext>())
+            .collect::<Result<Vec<_>, _>>()
+            .map(|des| PlaintextAdvContents {
+                identity_type: self.identity_type,
+                data_elements: des,
+            })
+    }
+}
+
+/// A "plain" data element (not a container) without parsing the content.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) struct RawPlainDataElement<'d> {
+    de_type: PlainDataElementType,
+    contents: &'d [u8],
+}
+
+impl<'d> RawPlainDataElement<'d> {
+    /// Deserialize into a [PlainDataElement] to expose DE-type-specific data representations.
+    ///
+    /// Returns `None` if the contents of the raw DE can't be deserialized into the corresponding
+    /// DE's representation.
+    fn try_deserialize<F>(&self) -> Result<PlainDataElement<F>, DataElementDeserializeError>
+    where
+        F: PacketFlavor,
+        actions::ActionsDataElement<F>: DataElement,
+    {
+        match self.de_type {
+            PlainDataElementType::Actions => {
+                actions::ActionsDataElement::deserialize::<F>(self.contents)
+                    .map(PlainDataElement::Actions)
+            }
+            PlainDataElementType::TxPower => {
+                TxPowerDataElement::deserialize::<F>(self.contents).map(PlainDataElement::TxPower)
+            }
+        }
+    }
+}
+
+/// Contents of an encrypted advertisement before decryption.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) struct EncryptedAdvContents<'d> {
+    identity_type: EncryptedIdentityDataElementType,
+    /// Salt from the advertisement, converted into a padder.
+    /// Pre-calculated so it's only derived once across multiple decrypt attempts.
+    salt_padder: ldt::XorPadder<{ crypto_provider::aes::BLOCK_SIZE }>,
+    /// The salt instance used for encryption of this advertisement.
+    salt: LegacySalt,
+    /// Ciphertext containing the metadata key and any data elements
+    ciphertext: &'d [u8],
+}
+
+impl<'d> EncryptedAdvContents<'d> {
+    /// Try decrypting with an identity's LDT cipher and deserializing the resulting data elements.
+    ///
+    /// Returns the decrypted data if decryption and verification succeeded and the resulting DEs could be parsed
+    /// successfully, otherwise `Err`.
+    pub(crate) fn try_decrypt<C: CryptoProvider>(
+        &self,
+        cipher: &ldt_np_adv::LdtNpAdvDecrypterXtsAes128<C>,
+    ) -> Result<DecryptedAdvContents, DecryptError> {
+        let plaintext = cipher
+            .decrypt_and_verify(self.ciphertext, &self.salt_padder)
+            .map_err(|_e| DecryptError::DecryptOrVerifyError)?;
+
+        // plaintext starts with 14 bytes of metadata key, then DEs.
+
+        let (remaining, metadata_key) = combinator::map_res(
+            bytes::complete::take(NP_LEGACY_METADATA_KEY_LEN),
+            |slice: &[u8]| slice.try_into(),
+        )(plaintext.as_slice())
+        .map_err(|_e: nom::Err<nom::error::Error<&[u8]>>| {
+            DecryptError::DeserializeError(AdvDeserializeError::AdvertisementDeserializeError)
+        })?;
+
+        let (_remaining, raw_des) = combinator::all_consuming(parse_data_elements)(remaining)
+            .map_err(|_e| {
+                DecryptError::DeserializeError(AdvDeserializeError::AdvertisementDeserializeError)
+            })?;
+
+        plain_data_elements(&raw_des)?
+            .into_iter()
+            .map(|de| de.try_deserialize())
+            .collect::<Result<Vec<_>, _>>()
+            .map_err(|e| {
+                DecryptError::DeserializeError(AdvDeserializeError::DataElementDeserializeError(e))
+            })
+            .map(|data_elements| {
+                DecryptedAdvContents::new(
+                    self.identity_type,
+                    metadata_key,
+                    self.salt,
+                    data_elements,
+                )
+            })
+    }
+}
+
+/// Errors that can occur decrypting encrypted advertisements.
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub(crate) enum DecryptError {
+    /// Decrypting or verifying the advertisement ciphertext failed
+    DecryptOrVerifyError,
+    /// Decrypting succeeded, but deserializing from the plaintext failed
+    DeserializeError(AdvDeserializeError),
+}
+
+impl From<AdvDeserializeError> for DecryptError {
+    fn from(e: AdvDeserializeError) -> Self {
+        DecryptError::DeserializeError(e)
+    }
+}
+
+/// All v0 normal DE types with deserialized contents.
+#[derive(Debug, PartialEq, Eq)]
+#[allow(missing_docs)]
+pub enum PlainDataElement<F: PacketFlavor> {
+    Actions(actions::ActionsDataElement<F>),
+    TxPower(TxPowerDataElement),
+}
+
+/// The contents of a plaintext advertisement after deserializing DE contents
+#[derive(Debug, PartialEq, Eq)]
+pub struct PlaintextAdvContents {
+    identity_type: PlaintextIdentityMode,
+    data_elements: Vec<PlainDataElement<Plaintext>>,
+}
+
+impl PlaintextAdvContents {
+    /// Returns the identity type used for the advertisement
+    pub fn identity(&self) -> PlaintextIdentityMode {
+        self.identity_type
+    }
+    /// Returns the deserialized data elements
+    pub fn data_elements(&self) -> impl Iterator<Item = &PlainDataElement<Plaintext>> {
+        self.data_elements.iter()
+    }
+    /// Destructures this V0 plaintext advertisement
+    /// into just the contained data elements
+    pub fn to_data_elements(self) -> Vec<PlainDataElement<Plaintext>> {
+        self.data_elements
+    }
+}
+
+/// Contents of an encrypted advertisement after decryption and deserializing DEs.
+#[derive(Debug, PartialEq, Eq)]
+pub struct DecryptedAdvContents {
+    identity_type: EncryptedIdentityDataElementType,
+    metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN],
+    salt: LegacySalt,
+    data_elements: Vec<PlainDataElement<Ciphertext>>,
+}
+
+impl DecryptedAdvContents {
+    /// Returns a new DecryptedAdvContents with the provided contents.
+    fn new(
+        identity_type: EncryptedIdentityDataElementType,
+        metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN],
+        salt: LegacySalt,
+        data_elements: Vec<PlainDataElement<Ciphertext>>,
+    ) -> Self {
+        Self { identity_type, metadata_key, salt, data_elements }
+    }
+
+    /// The type of identity DE used in the advertisement.
+    pub fn identity_type(&self) -> EncryptedIdentityDataElementType {
+        self.identity_type
+    }
+
+    /// The decrypted metadata key from the identity DE.
+    pub fn metadata_key(&self) -> &[u8; 14] {
+        &self.metadata_key
+    }
+
+    /// Iterator over the data elements in an advertisement, except for any DEs related to resolving
+    /// the identity or otherwise validating the payload (e.g. any identity DEs like Private
+    /// Identity).
+    pub fn data_elements(&self) -> impl Iterator<Item = &PlainDataElement<Ciphertext>> {
+        self.data_elements.iter()
+    }
+
+    /// The salt used for decryption of this advertisement.
+    pub fn salt(&self) -> LegacySalt {
+        self.salt
+    }
+}
+
+/// The contents of an advertisement after plaintext DEs, if any, have been deserialized, but
+/// before any decryption is done.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum IntermediateAdvContents<'d> {
+    /// Plaintext advertisements
+    Plaintext(PlaintextAdvContents),
+    /// Ciphertext advertisements
+    Ciphertext(EncryptedAdvContents<'d>),
+}
diff --git a/nearby/presence/np_adv/src/legacy/deserialize/tests.rs b/nearby/presence/np_adv/src/legacy/deserialize/tests.rs
new file mode 100644
index 0000000..b577cd9
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/deserialize/tests.rs
@@ -0,0 +1,815 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use super::*;
+use crate::legacy::actions::{ActionBits, ActionsDataElement};
+use crate::shared_data::TxPower;
+use crate::{
+    de_type::IdentityDataElementType,
+    legacy::{
+        actions,
+        de_type::DeActualLength,
+        random_data_elements::{random_de_ciphertext, random_de_plaintext},
+        serialize::{
+            encode_de_header_actual_len, id_de_type_as_generic_de_type, AdvBuilder,
+            DataElementBundle, Identity, LdtIdentity, ToDataElementBundle as _,
+        },
+        PacketFlavorEnum, BLE_ADV_SVC_CONTENT_LEN,
+    },
+    parse_adv_header, shared_data, AdvHeader, NoIdentity, PublicIdentity,
+};
+use array_view::ArrayView;
+use crypto_provider_default::CryptoProviderImpl;
+use init_with::InitWith as _;
+use ldt_np_adv::LdtEncrypterXtsAes128;
+use nom::error;
+use rand_ext::rand::{prelude::SliceRandom, Rng as _};
+use std::vec;
+use strum::IntoEnumIterator as _;
+
+#[test]
+fn parse_empty_raw_adv() {
+    let data_elements = parse_raw_adv_contents::<CryptoProviderImpl>(&[]).unwrap();
+    assert_eq!(
+        RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+            identity_type: PlaintextIdentityMode::None,
+            data_elements: Vec::new()
+        }),
+        data_elements
+    );
+}
+
+#[test]
+fn parse_raw_adv_1_de_short_no_identity() {
+    // battery uses the header length as is
+    let adv = parse_raw_adv_contents::<CryptoProviderImpl>(&[0x36, 0x01, 0x02, 0x03]).unwrap();
+    assert_eq!(
+        RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+            identity_type: PlaintextIdentityMode::None,
+            data_elements: vec![RawPlainDataElement {
+                de_type: PlainDataElementType::Actions,
+                contents: &[0x01, 0x02, 0x03]
+            }],
+        }),
+        adv
+    );
+}
+
+#[test]
+fn parse_raw_adv_1_de_long_private_identity() {
+    // 3 bytes of payload after metadata key
+    let adv = parse_raw_adv_contents::<CryptoProviderImpl>(&[
+        0x31, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
+        0x0F, 0x10, 0x11, 0x12, 0x13,
+    ])
+    .unwrap();
+    assert_eq!(
+        RawAdvertisement::Ciphertext(EncryptedAdvContents {
+            identity_type: EncryptedIdentityDataElementType::Private,
+            salt_padder: ldt_np_adv::salt_padder::<16, CryptoProviderImpl>(
+                ldt_np_adv::LegacySalt::from([0x01, 0x02])
+            ),
+            salt: ldt_np_adv::LegacySalt::from([0x01, 0x02]),
+            ciphertext: &[
+                0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
+                0x11, 0x12, 0x13
+            ]
+        }),
+        adv
+    );
+}
+
+#[test]
+fn parse_raw_adv_3_de_public_identity() {
+    let adv = parse_raw_adv_contents::<CryptoProviderImpl>(&[
+        0x03, // public identity
+        0x15, 0x05, // tx power 5
+        0x36, 0x11, 0x12, 0x13, // actions
+    ])
+    .unwrap();
+    assert_eq!(
+        RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+            identity_type: PlaintextIdentityMode::Public,
+            data_elements: vec![
+                RawPlainDataElement { de_type: PlainDataElementType::TxPower, contents: &[0x05] },
+                RawPlainDataElement {
+                    de_type: PlainDataElementType::Actions,
+                    contents: &[0x11, 0x12, 0x13]
+                }
+            ],
+        }),
+        adv
+    );
+}
+
+#[test]
+fn parse_raw_adv_0_de_public_identity() {
+    let adv = parse_raw_adv_contents::<CryptoProviderImpl>(&[
+        0x03, // public identity
+    ])
+    .unwrap();
+    assert_eq!(
+        RawAdvertisement::Plaintext(PlaintextAdvRawContents {
+            identity_type: PlaintextIdentityMode::Public,
+            data_elements: vec![],
+        }),
+        adv
+    );
+}
+
+#[test]
+fn parse_raw_adv_1_de_length_overrun() {
+    // battery uses the header length as is
+    let input = &[0xFB, 0x01, 0x02, 0x03];
+    assert_eq!(
+        nom::Err::Error(error::Error { input: input.as_slice(), code: error::ErrorKind::Eof }),
+        parse_data_elements(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_raw_adv_public_identity_containing_public_identity() {
+    let input = &[
+        0x03, // public identity
+        0x03, // another public identity
+        0x15, 0x03, // tx power de
+    ];
+    assert_eq!(
+        AdvDeserializeError::InvalidDataElementHierarchy,
+        parse_raw_adv_contents::<CryptoProviderImpl>(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_raw_adv_no_identity_containing_public_identity() {
+    let input = &[
+        0x15, 0x03, // tx power de
+        0x03, // public identity -- since it's not the first, this is a no identity adv
+        0x15, 0x03, // tx power de
+    ];
+    assert_eq!(
+        AdvDeserializeError::InvalidDataElementHierarchy,
+        parse_raw_adv_contents::<CryptoProviderImpl>(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_raw_adv_1_de_long_private_identity_with_another_top_level_de() {
+    let input = &[
+        0x31, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
+        0x0F, 0x10, 0x11, 0x12, 0x13, // private identity
+        0x15, 0x03, // tx power de
+    ];
+    assert_eq!(
+        AdvDeserializeError::TooManyTopLevelDataElements,
+        parse_raw_adv_contents::<CryptoProviderImpl>(input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_raw_adv_private_identity_ciphertext_min_length() {
+    let short_input = &[
+        // private identity w/ salt, len = 1
+        0x11, 0x10, 0x11, // 15 ciphertext bytes, + 2 salt = 17 total
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
+    ];
+    assert_eq!(
+        AdvDeserializeError::AdvertisementDeserializeError,
+        parse_raw_adv_contents::<CryptoProviderImpl>(short_input).unwrap_err()
+    );
+
+    let ok_input = &[
+        // private identity w/ salt
+        0x21, 0x10, 0x11, // 16 ciphertext bytes, 18 bytes total de len, encoded len 2
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
+        0x2F,
+    ];
+    assert_eq!(
+        RawAdvertisement::Ciphertext(EncryptedAdvContents {
+            identity_type: EncryptedIdentityDataElementType::Private,
+            salt: [0x10, 0x11].into(),
+            salt_padder: ldt_np_adv::salt_padder::<16, CryptoProviderImpl>([0x10, 0x11].into()),
+            ciphertext: &ok_input[3..]
+        }),
+        parse_raw_adv_contents::<CryptoProviderImpl>(ok_input).unwrap()
+    );
+}
+
+#[test]
+fn parse_raw_adv_private_identity_ciphertext_too_long() {
+    let long_input = &[
+        // private identity w/ salt, len = 7
+        0x71, 0x10, 0x11, // 21 ciphertext bytes, + 2 salt
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
+        0x2F, 0x30, 0x31, 0x32, 0x33, 0x34,
+    ];
+    assert_eq!(
+        AdvDeserializeError::AdvertisementDeserializeError,
+        parse_raw_adv_contents::<CryptoProviderImpl>(long_input).unwrap_err()
+    );
+
+    // removing 1 byte makes it work
+    let ok_input = &[
+        // private identity w/ salt, len = 6
+        0x61, 0x10, 0x11, // 20 ciphertext bytes, + 2 salt
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
+        0x2F, 0x30, 0x31, 0x32, 0x33,
+    ];
+    assert_eq!(
+        RawAdvertisement::Ciphertext(EncryptedAdvContents {
+            identity_type: EncryptedIdentityDataElementType::Private,
+            salt_padder: ldt_np_adv::salt_padder::<16, CryptoProviderImpl>([0x10, 0x11].into()),
+            salt: [0x10, 0x11].into(),
+            ciphertext: &ok_input[3..]
+        }),
+        parse_raw_adv_contents::<CryptoProviderImpl>(ok_input).unwrap()
+    );
+}
+
+/// Test method body that creates an array, deserializes it into a DE, serializes it,
+/// and asserts that the same bytes are produced.
+///
+/// Evaluates to the deserialized DE.
+macro_rules! de_roundtrip_test {
+    ($de_type:ty, $type_variant:ident, $de_variant:ident, $flavor:ty,  $bytes:expr) => {{
+        let parsed_de_enum = parse_plain_de::<$flavor>(PlainDataElementType::$type_variant, $bytes);
+        if let PlainDataElement::$de_variant(de) = parsed_de_enum {
+            let expected = <$de_type>::deserialize::<$flavor>($bytes).unwrap();
+            assert_eq!(expected, de);
+
+            let de_bundle: DataElementBundle<$flavor> = de.to_de_bundle();
+            assert_eq!($bytes, de_bundle.contents_as_slice());
+
+            de
+        } else {
+            panic!("Unexpected variant: {:?}", parsed_de_enum);
+        }
+    }};
+}
+
+#[test]
+fn actions_de_contents_roundtrip_plaintext() {
+    let actions = actions::tests::all_plaintext_actions();
+    let bundle = actions::ActionsDataElement::from(actions).to_de_bundle();
+
+    de_roundtrip_test!(
+        actions::ActionsDataElement::<Plaintext>,
+        Actions,
+        Actions,
+        Plaintext,
+        bundle.contents_as_slice()
+    );
+}
+
+#[test]
+fn actions_de_contents_roundtrip_ciphertext() {
+    let actions = actions::tests::all_ciphertext_actions();
+    let bundle = actions::ActionsDataElement::from(actions).to_de_bundle();
+
+    de_roundtrip_test!(
+        actions::ActionsDataElement::<Ciphertext>,
+        Actions,
+        Actions,
+        Ciphertext,
+        bundle.contents_as_slice()
+    );
+}
+
+#[test]
+fn tx_power_de_contents_roundtrip_plaintext() {
+    let tx = shared_data::TxPower::try_from(-10).unwrap();
+    let bundle: DataElementBundle<Plaintext> = TxPowerDataElement::from(tx).to_de_bundle();
+
+    de_roundtrip_test!(TxPowerDataElement, TxPower, TxPower, Plaintext, bundle.contents_as_slice());
+}
+
+#[test]
+fn tx_power_de_contents_roundtrip_ciphertext() {
+    let tx = shared_data::TxPower::try_from(-10).unwrap();
+    let bundle: DataElementBundle<Ciphertext> = TxPowerDataElement::from(tx).to_de_bundle();
+
+    de_roundtrip_test!(
+        TxPowerDataElement,
+        TxPower,
+        TxPower,
+        Ciphertext,
+        bundle.contents_as_slice()
+    );
+}
+
+#[test]
+fn parse_de_invalid_de_len_error() {
+    let input = &[
+        // bogus 6-byte battery de -- only allows length = 3
+        0x6B, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
+    ];
+
+    assert_eq!(
+        nom::Err::Error(error::Error { input: input.as_slice(), code: error::ErrorKind::MapOpt }),
+        parse_de(&input[..]).unwrap_err()
+    );
+}
+
+#[test]
+fn plain_data_elements_matches_plain_des() {
+    assert_eq!(
+        vec![
+            RawPlainDataElement { de_type: PlainDataElementType::TxPower, contents: &[0x01] },
+            RawPlainDataElement { de_type: PlainDataElementType::Actions, contents: &[0x02] }
+        ],
+        plain_data_elements(&[
+            RawDataElement { de_type: DataElementType::TxPower, contents: &[0x01] },
+            RawDataElement { de_type: DataElementType::Actions, contents: &[0x02] }
+        ])
+        .unwrap()
+    );
+}
+
+#[test]
+fn plain_data_elements_rejects_identity_de_error() {
+    for idet in IdentityDataElementType::iter() {
+        assert_eq!(
+            AdvDeserializeError::InvalidDataElementHierarchy,
+            plain_data_elements(&[
+                RawDataElement { de_type: DataElementType::TxPower, contents: &[0x01] },
+                RawDataElement { de_type: id_de_type_as_generic_de_type(idet), contents: &[0x02] }
+            ])
+            .unwrap_err()
+        );
+    }
+}
+
+#[test]
+fn parse_encrypted_identity_contents_too_short_error() {
+    // 2 byte salt + 15 byte ciphertext: 1 too short
+    let input = <[u8; 17]>::init_with_indices(|i| i as u8);
+    assert_eq!(
+        nom::Err::Error(error::Error { input: &input[2..], code: error::ErrorKind::TakeWhileMN }),
+        parse_encrypted_identity_de_contents(&input).unwrap_err()
+    );
+}
+
+#[test]
+fn parse_encrypted_identity_contents_ok() {
+    // 2 byte salt + minimum 16 byte ciphertext
+    let input = <[u8; 18]>::init_with_indices(|i| i as u8);
+    assert_eq!(
+        ([].as_slice(), (ldt_np_adv::LegacySalt::from([0, 1]), &input[2..])),
+        parse_encrypted_identity_de_contents(&input).unwrap()
+    );
+}
+
+#[test]
+fn plaintext_random_adv_contents_round_trip_public() {
+    plaintext_random_adv_contents_round_trip(PublicIdentity::default, PlaintextIdentityMode::Public)
+}
+
+#[test]
+fn plaintext_random_adv_contents_round_trip_no_identity() {
+    plaintext_random_adv_contents_round_trip(NoIdentity::default, PlaintextIdentityMode::None)
+}
+
+#[test]
+fn ciphertext_random_adv_contents_round_trip() {
+    let mut rng = rand_ext::seeded_rng();
+    let de_types: Vec<PlainDataElementType> = PlainDataElementType::iter()
+        .filter(|t| t.supports_flavor(PacketFlavorEnum::Ciphertext))
+        .collect();
+    let identity_de_types: Vec<EncryptedIdentityDataElementType> =
+        EncryptedIdentityDataElementType::iter().collect();
+
+    for _ in 0..10_000 {
+        let mut des = Vec::new();
+
+        let identity_type = *identity_de_types.choose(&mut rng).unwrap();
+        let key_seed: [u8; 32] = rng.gen();
+        let salt: ldt_np_adv::LegacySalt = rng.gen::<[u8; 2]>().into();
+        let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = rng.gen();
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+        let ldt_key = hkdf.legacy_ldt_key();
+        let metadata_key_hmac: [u8; 32] =
+            hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+        let cipher = ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac);
+        let mut builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+            identity_type,
+            salt,
+            metadata_key,
+            LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&ldt_key),
+        ));
+
+        loop {
+            let de_type = *de_types.choose(&mut rng).unwrap();
+            let (de, bundle) = random_de_ciphertext(de_type, &mut rng).unwrap();
+
+            if builder.add_data_element(bundle.clone()).ok().is_none() {
+                // out of room
+                if des.is_empty() {
+                    // need at least one, so try again
+                    continue;
+                } else {
+                    // there's at least one so proceed to serialization
+                    break;
+                }
+            }
+
+            des.push(de);
+        }
+
+        let serialized = builder.into_advertisement().unwrap();
+        let (remaining, header) = parse_adv_header(serialized.as_slice()).unwrap();
+        let parsed_adv = deserialize_adv_contents::<CryptoProviderImpl>(remaining).unwrap();
+
+        assert_eq!(AdvHeader::V0, header);
+        if let IntermediateAdvContents::Ciphertext(eac) = parsed_adv {
+            assert_eq!(
+                EncryptedAdvContents {
+                    identity_type,
+                    salt_padder: ldt_np_adv::salt_padder::<16, CryptoProviderImpl>(salt),
+                    salt,
+                    // skip adv header, de header, salt
+                    ciphertext: &serialized.as_slice()[4..]
+                },
+                eac
+            );
+
+            assert_eq!(
+                DecryptedAdvContents { identity_type, metadata_key, salt, data_elements: des },
+                eac.try_decrypt(&cipher).unwrap()
+            )
+        } else {
+            panic!("Unexpected variant: {:?}", parsed_adv);
+        }
+    }
+}
+
+#[test]
+fn decrypt_and_deserialize_ciphertext_adv_canned() {
+    let key_seed = [0x11_u8; 32];
+    let salt: ldt_np_adv::LegacySalt = [0x22; 2].into();
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+
+    let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let ldt_key = hkdf.legacy_ldt_key();
+    let metadata_key_hmac: [u8; 32] =
+        hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+    let cipher = ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac);
+    let mut builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+        EncryptedIdentityDataElementType::Private,
+        salt,
+        metadata_key,
+        LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&ldt_key),
+    ));
+
+    let tx = shared_data::TxPower::try_from(3).unwrap();
+    builder.add_data_element(TxPowerDataElement::from(tx)).unwrap();
+
+    let serialized = builder.into_advertisement().unwrap();
+
+    assert_eq!(
+        &[
+            0x0,  // adv header
+            0x21, // private DE
+            0x22, 0x22, // salt
+            // ciphertext
+            0x85, 0xBF, 0xA8, 0x83, 0x58, 0x7C, 0x50, 0xCF, 0x98, 0x38, 0xA7, 0x8A, 0xC0, 0x1C,
+            0x96, 0xF9
+        ],
+        serialized.as_slice()
+    );
+
+    let (remaining, header) = parse_adv_header(serialized.as_slice()).unwrap();
+    assert_eq!(AdvHeader::V0, header);
+
+    let parsed_adv = deserialize_adv_contents::<CryptoProviderImpl>(remaining).unwrap();
+    if let IntermediateAdvContents::Ciphertext(eac) = parsed_adv {
+        assert_eq!(
+            EncryptedAdvContents {
+                identity_type: EncryptedIdentityDataElementType::Private,
+                salt_padder: ldt_np_adv::salt_padder::<16, CryptoProviderImpl>(salt),
+                salt,
+                // skip adv header, de header, salt
+                ciphertext: &serialized.as_slice()[4..]
+            },
+            eac
+        );
+
+        assert_eq!(
+            DecryptedAdvContents {
+                identity_type: EncryptedIdentityDataElementType::Private,
+                metadata_key,
+                salt,
+                data_elements: vec![PlainDataElement::TxPower(TxPowerDataElement::from(
+                    TxPower::try_from(3).unwrap()
+                ))],
+            },
+            eac.try_decrypt(&cipher).unwrap()
+        )
+    } else {
+        panic!("Unexpected variant: {:?}", parsed_adv);
+    }
+}
+
+#[test]
+fn decrypt_and_deserialize_plaintext_adv_canned() {
+    let mut builder = AdvBuilder::new(PublicIdentity::default());
+
+    let actions = ActionBits::default();
+    builder.add_data_element(ActionsDataElement::from(actions)).unwrap();
+
+    let serialized = builder.into_advertisement().unwrap();
+
+    assert_eq!(
+        &[
+            0x0,  // adv header
+            0x03, // public DE
+            0x16, 0x00 // actions
+        ],
+        serialized.as_slice()
+    );
+
+    let (remaining, header) = parse_adv_header(serialized.as_slice()).unwrap();
+    assert_eq!(AdvHeader::V0, header);
+
+    let parsed_adv = deserialize_adv_contents::<CryptoProviderImpl>(remaining).unwrap();
+    if let IntermediateAdvContents::Plaintext(parc) = parsed_adv {
+        assert_eq!(
+            PlaintextAdvContents {
+                identity_type: PlaintextIdentityMode::Public,
+                data_elements: vec![PlainDataElement::Actions(ActionsDataElement::from(
+                    ActionBits::default()
+                ))],
+            },
+            parc
+        )
+    } else {
+        panic!("Unexpected variant: {:?}", parsed_adv);
+    }
+}
+
+#[test]
+fn decrypt_with_wrong_key_seed_error() {
+    let salt = ldt_np_adv::LegacySalt::from([0x22; 2]);
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+    let correct_key_seed = [0x11_u8; 32];
+
+    let (adv_content, correct_cipher) =
+        build_ciphertext_adv_contents(salt, &metadata_key, correct_key_seed);
+    let eac = parse_ciphertext_adv_contents(&correct_cipher, &adv_content.as_slice()[1..]);
+
+    // wrong key seed doesn't work (derives wrong ldt key, wrong hmac key)
+    let wrong_key_seed_cipher = {
+        let key_seed = [0x22_u8; 32];
+
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+        let metadata_key_hmac: [u8; 32] =
+            hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+        ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac)
+    };
+
+    assert_eq!(
+        DecryptError::DecryptOrVerifyError,
+        eac.try_decrypt(&wrong_key_seed_cipher,).unwrap_err()
+    );
+}
+
+#[test]
+fn decrypt_with_wrong_hmac_key_error() {
+    let salt = ldt_np_adv::LegacySalt::from([0x22; 2]);
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+    let correct_key_seed = [0x11_u8; 32];
+
+    let (adv_content, correct_cipher_config) =
+        build_ciphertext_adv_contents(salt, &metadata_key, correct_key_seed);
+    let eac = parse_ciphertext_adv_contents(&correct_cipher_config, &adv_content.as_slice()[1..]);
+
+    let wrong_hmac_key_cipher = {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&[0x10_u8; 32]);
+        let metadata_key_hmac: [u8; 32] =
+            hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+
+        ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac)
+    };
+
+    assert_eq!(
+        DecryptError::DecryptOrVerifyError,
+        eac.try_decrypt::<CryptoProviderImpl>(&wrong_hmac_key_cipher,).unwrap_err()
+    );
+}
+
+#[test]
+fn decrypt_with_wrong_hmac_error() {
+    let salt = ldt_np_adv::LegacySalt::from([0x22; 2]);
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+    let correct_key_seed = [0x11_u8; 32];
+
+    let (adv_content, correct_cipher_config) =
+        build_ciphertext_adv_contents(salt, &metadata_key, correct_key_seed);
+    let eac = parse_ciphertext_adv_contents(&correct_cipher_config, &adv_content.as_slice()[1..]);
+
+    let wrong_hmac_key_cipher = {
+        let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&correct_key_seed);
+
+        ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, [0x77; 32])
+    };
+
+    assert_eq!(
+        DecryptError::DecryptOrVerifyError,
+        eac.try_decrypt(&wrong_hmac_key_cipher,).unwrap_err()
+    );
+}
+
+#[test]
+fn decrypt_and_deserialize_ciphertext_with_public_adv_inside_error() {
+    let key_seed = [0x11_u8; 32];
+    let salt: ldt_np_adv::LegacySalt = [0x22; 2].into();
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+
+    let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let ldt_key = hkdf.legacy_ldt_key();
+    let metadata_key_hmac: [u8; 32] =
+        hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+    let cipher = ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac);
+
+    let mut plaintext = vec![];
+    plaintext.extend_from_slice(&metadata_key);
+
+    let txpower_de = TxPowerDataElement::from(TxPower::try_from(5).unwrap());
+
+    plaintext.push(
+        encode_de_header_actual_len(DataElementType::TxPower, 1u8.try_into().unwrap()).unwrap(),
+    );
+
+    let plaintext_de_bundle: DataElementBundle<Plaintext> = txpower_de.to_de_bundle();
+    plaintext.extend_from_slice(plaintext_de_bundle.contents_as_slice());
+    // forge an otherwise impossible to express public identity
+    plaintext.push(
+        encode_de_header_actual_len(DataElementType::PublicIdentity, DeActualLength::ZERO).unwrap(),
+    );
+
+    assert_eq!(17, plaintext.len());
+
+    let ldt = LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&ldt_key);
+    ldt.encrypt(&mut plaintext, &ldt_np_adv::salt_padder::<16, CryptoProviderImpl>(salt)).unwrap();
+    let ciphertext = plaintext;
+
+    let mut adv = vec![];
+    adv.push(0x00); // adv header
+    adv.push(
+        encode_de_header_actual_len(
+            DataElementType::PrivateIdentity,
+            (2 + ciphertext.len()).try_into().unwrap(),
+        )
+        .unwrap(),
+    ); // private DE
+    adv.extend_from_slice(&[0x22; 2]); // salt
+    adv.extend_from_slice(&ciphertext);
+
+    let parsed_adv = deserialize_adv_contents::<CryptoProviderImpl>(&adv[1..]).unwrap();
+    if let IntermediateAdvContents::Ciphertext(eac) = parsed_adv {
+        assert_eq!(
+            DecryptError::DeserializeError(AdvDeserializeError::InvalidDataElementHierarchy),
+            eac.try_decrypt(&cipher).unwrap_err()
+        )
+    } else {
+        panic!("Unexpected variant: {:?}", parsed_adv);
+    }
+}
+
+fn build_ciphertext_adv_contents<C: CryptoProvider>(
+    salt: ldt_np_adv::LegacySalt,
+    metadata_key: &[u8; 14],
+    correct_key_seed: [u8; 32],
+) -> (ArrayView<u8, { BLE_ADV_SVC_CONTENT_LEN }>, ldt_np_adv::LdtNpAdvDecrypterXtsAes128<C>) {
+    let hkdf = np_hkdf::NpKeySeedHkdf::<C>::new(&correct_key_seed);
+    let ldt_key = hkdf.legacy_ldt_key();
+
+    let metadata_key_hmac: [u8; 32] =
+        hkdf.legacy_metadata_key_hmac_key().calculate_hmac(metadata_key.as_slice());
+
+    let correct_cipher = ldt_np_adv::build_np_adv_decrypter_from_key_seed(&hkdf, metadata_key_hmac);
+
+    let mut builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+        EncryptedIdentityDataElementType::Private,
+        salt,
+        *metadata_key,
+        LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&ldt_key),
+    ));
+    builder.add_data_element(TxPowerDataElement::from(TxPower::try_from(3).unwrap())).unwrap();
+    (builder.into_advertisement().unwrap(), correct_cipher)
+}
+
+fn parse_ciphertext_adv_contents<'b>(
+    cipher: &ldt_np_adv::LdtNpAdvDecrypterXtsAes128<CryptoProviderImpl>,
+    adv_content: &'b [u8],
+) -> EncryptedAdvContents<'b> {
+    let eac = match deserialize_adv_contents::<CryptoProviderImpl>(adv_content).unwrap() {
+        IntermediateAdvContents::Plaintext(_) => panic!(),
+        // quick confirmation that we did get something
+        IntermediateAdvContents::Ciphertext(eac) => eac,
+    };
+
+    // correct cipher works
+    assert!(eac.try_decrypt(cipher).is_ok());
+
+    eac
+}
+
+/// Construct the serialized DE and parse it
+fn parse_plain_de<F>(de_type: PlainDataElementType, contents: &[u8]) -> PlainDataElement<F>
+where
+    F: PacketFlavor,
+    actions::ActionsDataElement<F>: DataElement,
+{
+    let mut buf = vec![];
+    buf.push(
+        encode_de_header_actual_len(
+            de_type.as_generic_de_type(),
+            contents.len().try_into().unwrap(),
+        )
+        .unwrap(),
+    );
+    buf.extend_from_slice(contents);
+
+    let raw_de = combinator::all_consuming(parse_de)(&buf).map(|(_remaining, de)| de).unwrap();
+
+    let plain_des = plain_data_elements(&[raw_de]).unwrap();
+    assert_eq!(1, plain_des.len());
+    plain_des.first().unwrap().try_deserialize().unwrap()
+}
+
+fn plaintext_random_adv_contents_round_trip<I: Identity<Flavor = Plaintext>, F: Fn() -> I>(
+    mk_identity: F,
+    identity_type: PlaintextIdentityMode,
+) {
+    let mut rng = rand_ext::seeded_rng();
+    let de_types: Vec<PlainDataElementType> = PlainDataElementType::iter()
+        .filter(|t| t.supports_flavor(PacketFlavorEnum::Plaintext))
+        .collect();
+
+    for _ in 0..10_000 {
+        let mut de_tuples = Vec::new();
+        let mut builder = AdvBuilder::new(mk_identity());
+
+        loop {
+            let de_type = *de_types.choose(&mut rng).unwrap();
+            let (de, bundle) = random_de_plaintext(de_type, &mut rng).unwrap();
+
+            if builder.add_data_element(bundle.clone()).ok().is_none() {
+                // out of room
+                break;
+            }
+
+            de_tuples.push((de, de_type, bundle));
+        }
+
+        let serialized = builder.into_advertisement().unwrap();
+
+        let (_rem, header) =
+            combinator::all_consuming(parse_adv_header)(&serialized.as_slice()[..1]).unwrap();
+        let parsed_adv =
+            parse_raw_adv_contents::<CryptoProviderImpl>(&serialized.as_slice()[1..]).unwrap();
+
+        assert_eq!(AdvHeader::V0, header);
+        if let RawAdvertisement::Plaintext(parc) = parsed_adv {
+            assert_eq!(
+                PlaintextAdvRawContents {
+                    identity_type,
+                    data_elements: de_tuples
+                        .iter()
+                        .map(|(_de, de_type, bundle)| RawPlainDataElement {
+                            de_type: *de_type,
+                            contents: bundle.contents_as_slice(),
+                        })
+                        .collect()
+                },
+                parc
+            );
+
+            assert_eq!(
+                PlaintextAdvContents {
+                    identity_type,
+                    data_elements: de_tuples
+                        .into_iter()
+                        .map(|(de, _de_type, _bundle)| de)
+                        .collect(),
+                },
+                parc.try_deserialize().unwrap()
+            )
+        } else {
+            panic!("Unexpected variant: {:?}", parsed_adv);
+        }
+    }
+}
diff --git a/nearby/presence/np_adv/src/legacy/mod.rs b/nearby/presence/np_adv/src/legacy/mod.rs
new file mode 100644
index 0000000..0eb035d
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/mod.rs
@@ -0,0 +1,66 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! V0 advertisement support.
+
+use core::fmt;
+
+pub mod actions;
+pub mod data_elements;
+pub mod de_type;
+pub mod deserialize;
+pub mod serialize;
+
+#[cfg(test)]
+mod random_data_elements;
+
+/// Advertisement capacity after 5 bytes of BLE header and 2 bytes of svc UUID are reserved from a
+/// 31-byte advertisement
+pub const BLE_ADV_SVC_CONTENT_LEN: usize = 24;
+/// Maximum possible DE content: packet size minus 2 for adv header & DE header
+const NP_MAX_DE_CONTENT_LEN: usize = BLE_ADV_SVC_CONTENT_LEN - 2;
+
+/// Marker type to allow disambiguating between plaintext and encrypted packets at compile time.
+///
+/// See also [PacketFlavorEnum] for when runtime flavor checks are more suitable.
+pub trait PacketFlavor: fmt::Debug + Clone + Copy {
+    /// The corresponding [PacketFlavorEnum] variant.
+    const ENUM_VARIANT: PacketFlavorEnum;
+}
+
+/// Marker type for plaintext packets (public identity and no identity).
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct Plaintext;
+
+impl PacketFlavor for Plaintext {
+    const ENUM_VARIANT: PacketFlavorEnum = PacketFlavorEnum::Plaintext;
+}
+
+/// Marker type for ciphertext packets (private, trusted, and provisioned identity).
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct Ciphertext;
+
+impl PacketFlavor for Ciphertext {
+    const ENUM_VARIANT: PacketFlavorEnum = PacketFlavorEnum::Ciphertext;
+}
+
+/// An enum version of the implementors of [PacketFlavor] for use cases where runtime checking is
+/// a better fit than compile time checking.
+#[derive(Debug, Clone, Copy, strum_macros::EnumIter, PartialEq, Eq)]
+pub enum PacketFlavorEnum {
+    /// Corresponds to [Plaintext].
+    Plaintext,
+    /// Corresponds to [Ciphertext].
+    Ciphertext,
+}
diff --git a/nearby/presence/np_adv/src/legacy/random_data_elements.rs b/nearby/presence/np_adv/src/legacy/random_data_elements.rs
new file mode 100644
index 0000000..f416ffe
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/random_data_elements.rs
@@ -0,0 +1,170 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crate::{
+    legacy::{
+        actions::*,
+        data_elements::*,
+        de_type::PlainDataElementType,
+        deserialize::PlainDataElement,
+        serialize::{DataElementBundle, ToDataElementBundle},
+        Ciphertext, PacketFlavor, PacketFlavorEnum, Plaintext,
+    },
+    shared_data::{ContextSyncSeqNum, TxPower},
+};
+use rand_ext::rand::{self, distributions, prelude::SliceRandom as _};
+use std::prelude::rust_2021::*;
+use strum::IntoEnumIterator;
+
+impl distributions::Distribution<ActionsDataElement<Plaintext>> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> ActionsDataElement<Plaintext> {
+        let mut available_actions = ActionType::iter()
+            .filter(|at| at.supports_flavor(PacketFlavorEnum::Plaintext))
+            .collect::<Vec<_>>();
+        available_actions.shuffle(rng);
+
+        // choose some of the available actions.
+        let selected_actions: &[ActionType] =
+            &available_actions[0..rng.gen_range(0..available_actions.len())];
+
+        let mut bits = ActionBits::default();
+
+        for a in selected_actions {
+            match a {
+                ActionType::ContextSyncSeqNum => {
+                    bits.set_action(ContextSyncSeqNum::try_from(rng.gen_range(0..=15)).unwrap())
+                }
+                // generating boolean actions with `true` since we already did our random selection
+                // of which actions to use above
+                ActionType::NearbyShare => bits.set_action(NearbyShare::from(true)),
+                ActionType::Finder => bits.set_action(Finder::from(true)),
+                ActionType::FastPairSass => bits.set_action(FastPairSass::from(true)),
+                ActionType::ActiveUnlock
+                | ActionType::PresenceManager
+                | ActionType::InstantTethering
+                | ActionType::PhoneHub => unreachable!("not plaintext actions"),
+            }
+        }
+
+        ActionsDataElement::from(bits)
+    }
+}
+impl distributions::Distribution<ActionsDataElement<Ciphertext>> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> ActionsDataElement<Ciphertext> {
+        let mut available_actions = ActionType::iter()
+            .filter(|at| at.supports_flavor(PacketFlavorEnum::Ciphertext))
+            .collect::<Vec<_>>();
+        available_actions.shuffle(rng);
+
+        // choose some of the available actions
+        let selected_actions: &[ActionType] =
+            &available_actions[0..rng.gen_range(0..available_actions.len())];
+
+        let mut bits = ActionBits::default();
+
+        for a in selected_actions {
+            match a {
+                ActionType::ContextSyncSeqNum => {
+                    bits.set_action(ContextSyncSeqNum::try_from(rng.gen_range(0..=15)).unwrap())
+                }
+                ActionType::ActiveUnlock => bits.set_action(ActiveUnlock::from(true)),
+                // generating boolean actions with `true` since we already did our random selection
+                // of which actions to use above
+                ActionType::NearbyShare => bits.set_action(NearbyShare::from(true)),
+                ActionType::PresenceManager => bits.set_action(PresenceManager::from(true)),
+                ActionType::InstantTethering => bits.set_action(InstantTethering::from(true)),
+                ActionType::PhoneHub => bits.set_action(PhoneHub::from(true)),
+                ActionType::Finder | ActionType::FastPairSass => {
+                    unreachable!("not ciphertext actions")
+                }
+            }
+        }
+
+        ActionsDataElement::from(bits)
+    }
+}
+
+impl distributions::Distribution<TxPower> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> TxPower {
+        let tx_power: i8 = rng.gen_range(-100..=20);
+        TxPower::try_from(tx_power).unwrap()
+    }
+}
+
+impl distributions::Distribution<TxPowerDataElement> for distributions::Standard {
+    fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> TxPowerDataElement {
+        let tx_power: TxPower = self.sample(rng);
+        TxPowerDataElement::from(tx_power)
+    }
+}
+
+/// Generate a random instance of the requested DE and return it wrapped in [PlainDataElement] along
+/// with its bundle representation.
+pub(crate) fn rand_de_and_bundle<F, D, E, R>(
+    to_enum: E,
+    rng: &mut R,
+) -> (PlainDataElement<F>, DataElementBundle<F>)
+where
+    F: PacketFlavor,
+    D: ToDataElementBundle<F>,
+    E: Fn(D) -> PlainDataElement<F>,
+    R: rand::Rng,
+    distributions::Standard: distributions::Distribution<D>,
+{
+    let de = rng.gen::<D>();
+    let bundle = de.to_de_bundle();
+    (to_enum(de), bundle)
+}
+
+/// Generate a random instance of the requested de type, or `None` if that type does not support
+/// plaintext.
+pub(crate) fn random_de_plaintext<R>(
+    de_type: PlainDataElementType,
+    rng: &mut R,
+) -> Option<(PlainDataElement<Plaintext>, DataElementBundle<Plaintext>)>
+where
+    R: rand::Rng,
+{
+    let opt = match de_type {
+        PlainDataElementType::TxPower => Some(rand_de_and_bundle(PlainDataElement::TxPower, rng)),
+        PlainDataElementType::Actions => Some(rand_de_and_bundle(PlainDataElement::Actions, rng)),
+    };
+
+    // make sure flavor support is consistent
+    assert_eq!(opt.is_some(), de_type.supports_flavor(PacketFlavorEnum::Plaintext));
+
+    opt
+}
+
+/// Generate a random instance of the requested de type, or `None` if that type does not support
+/// ciphertext.
+pub(crate) fn random_de_ciphertext<R>(
+    de_type: PlainDataElementType,
+    rng: &mut R,
+) -> Option<(PlainDataElement<Ciphertext>, DataElementBundle<Ciphertext>)>
+where
+    R: rand::Rng,
+{
+    let opt = match de_type {
+        PlainDataElementType::TxPower => Some(rand_de_and_bundle(PlainDataElement::TxPower, rng)),
+        PlainDataElementType::Actions => Some(rand_de_and_bundle(PlainDataElement::Actions, rng)),
+    };
+
+    // make sure flavor support is consistent
+    assert_eq!(opt.is_some(), de_type.supports_flavor(PacketFlavorEnum::Ciphertext));
+
+    opt
+}
diff --git a/nearby/presence/np_adv/src/legacy/serialize/mod.rs b/nearby/presence/np_adv/src/legacy/serialize/mod.rs
new file mode 100644
index 0000000..38e46e1
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/serialize/mod.rs
@@ -0,0 +1,402 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Serialization for V0 advertisements.
+//!
+//! # Examples
+//!
+//! Serializing a plaintext advertisement:
+//!
+//! ```
+//! use np_adv::{legacy::{data_elements::*, serialize::*}, shared_data::*, PublicIdentity};
+//! use np_adv::shared_data::TxPower;
+//!
+//! let mut builder = AdvBuilder::new(PublicIdentity::default());
+//! builder
+//!     .add_data_element(TxPowerDataElement::from(TxPower::try_from(3).expect("3 is a valid TxPower value")))
+//!     .unwrap();
+//! let packet = builder.into_advertisement().unwrap();
+//! assert_eq!(
+//!     &[
+//!         0x00, // Adv Header
+//!         0x03, // Public DE header
+//!         0x15, 0x03, // tx power de
+//!     ],
+//!     packet.as_slice()
+//! );
+//! ```
+//!
+//! Serializing an encrypted advertisement:
+//!
+//! ```
+//! use np_adv::{shared_data::*, de_type::*, legacy::{de_type::*, data_elements::*, serialize::*}};
+//! use crypto_provider::CryptoProvider;
+//! use crypto_provider_default::CryptoProviderImpl;
+//! use ldt_np_adv::{salt_padder, LegacySalt, LdtEncrypterXtsAes128};
+//!
+//! // Generate these from proper CSPRNGs -- using fixed data here
+//! let metadata_key = [0x33; 14];
+//! let salt = LegacySalt::from([0x01, 0x02]);
+//! let key_seed = [0x44; 32];
+//! let ldt_enc = LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(
+//!     &np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed).legacy_ldt_key()
+//! );
+//!
+//! let mut builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+//!     EncryptedIdentityDataElementType::Private,
+//!     salt,
+//!     metadata_key,
+//!     ldt_enc,
+//! ));
+//!
+//! builder
+//!     .add_data_element(TxPowerDataElement::from(TxPower::try_from(3).expect("3 is a valid TxPower value")))
+//!     .unwrap();
+//!
+//! let packet = builder.into_advertisement().unwrap();
+//! ```
+use crate::{
+    de_type::{EncryptedIdentityDataElementType, IdentityDataElementType},
+    legacy::{
+        de_type::{DataElementType, DeActualLength, DeEncodedLength, PlainDataElementType},
+        Ciphertext, PacketFlavor, Plaintext, BLE_ADV_SVC_CONTENT_LEN, NP_MAX_DE_CONTENT_LEN,
+    },
+    DeLengthOutOfRange, NoIdentity, PublicIdentity,
+};
+use array_view::ArrayView;
+use core::{convert, fmt, marker};
+use crypto_provider::CryptoProvider;
+use ldt_np_adv::NP_LEGACY_METADATA_KEY_LEN;
+
+#[cfg(test)]
+mod tests;
+
+/// An identity used in serializing an advertisement.
+pub trait Identity: fmt::Debug {
+    /// The flavor of packet this identity produces
+    type Flavor: PacketFlavor;
+    /// The error returned if postprocessing fails
+    type Error: fmt::Debug;
+    /// How much space needs to be reserved for this identity's prefix bytes
+    const OVERHEAD_LEN: usize;
+
+    /// Perform identity-specific manipulation to the serialized DEs to produce the final
+    /// advertisement format.
+    ///
+    /// `buf` is `OVERHEAD_LEN` bytes set aside for the identity's use, followed by all of the DEs
+    /// added to a packet. It does not include the NP top level header.
+    ///
+    /// Returns `Ok` if postprocessing was successful and the packet is finished, or `Err` if
+    /// postprocessing failed and the packet should be discarded.
+    fn postprocess(&self, buf: &mut [u8]) -> Result<(), Self::Error>;
+}
+
+lazy_static::lazy_static! {
+    // Avoid either a panic-able code path or an error case that never happens by precalculating.
+    static ref PUBLIC_IDENTITY_DE_HEADER: u8 =
+        encode_de_header_actual_len(DataElementType::PublicIdentity, DeActualLength::ZERO).unwrap();
+}
+
+impl Identity for PublicIdentity {
+    type Flavor = Plaintext;
+    type Error = convert::Infallible;
+    // 1 byte for public DE header (0 content)
+    const OVERHEAD_LEN: usize = 1;
+
+    fn postprocess(&self, buf: &mut [u8]) -> Result<(), Self::Error> {
+        buf[0] = *PUBLIC_IDENTITY_DE_HEADER;
+
+        Ok(())
+    }
+}
+
+impl Identity for NoIdentity {
+    type Flavor = Plaintext;
+    type Error = convert::Infallible;
+    // No DE header
+    const OVERHEAD_LEN: usize = 0;
+
+    fn postprocess(&self, _buf: &mut [u8]) -> Result<(), Self::Error> {
+        Ok(())
+    }
+}
+
+/// Identity used for encrypted packets (private, trusted, provisioned) that encrypts other DEs
+/// (as well as the metadata key).
+pub struct LdtIdentity<C: CryptoProvider> {
+    de_type: EncryptedIdentityDataElementType,
+    salt: ldt_np_adv::LegacySalt,
+    metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN],
+    ldt_enc: ldt_np_adv::LdtEncrypterXtsAes128<C>,
+    // keep C parameter alive for when A disappears into it
+    _crypto_provider: marker::PhantomData<C>,
+}
+
+// Exclude sensitive members
+impl<C: CryptoProvider> fmt::Debug for LdtIdentity<C> {
+    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+        write!(f, "LdtIdentity {{ de_type: {:?}, salt: {:X?} }}", self.de_type, self.salt)
+    }
+}
+
+impl<C: CryptoProvider> LdtIdentity<C> {
+    /// Build an `LdtIdentity` for the provided identity, salt, metadata key, and ldt.
+    pub fn new(
+        de_type: EncryptedIdentityDataElementType,
+        salt: ldt_np_adv::LegacySalt,
+        metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN],
+        ldt_enc: ldt_np_adv::LdtEncrypterXtsAes128<C>,
+    ) -> LdtIdentity<C> {
+        LdtIdentity { de_type, salt, metadata_key, ldt_enc, _crypto_provider: marker::PhantomData }
+    }
+}
+
+impl<C: CryptoProvider> Identity for LdtIdentity<C> {
+    type Flavor = Ciphertext;
+    type Error = LdtPostprocessError;
+    // Identity DE header + salt + metadata key
+    const OVERHEAD_LEN: usize = 17;
+
+    fn postprocess(&self, buf: &mut [u8]) -> Result<(), LdtPostprocessError> {
+        let de_type = self.de_type.as_identity_data_element_type();
+        // there's space for the identity DE header byte, but we don't count that in the DE length
+        let actual_len: DeActualLength = buf
+            .len()
+            .checked_sub(1)
+            .ok_or(LdtPostprocessError::InvalidLength)
+            .and_then(|len| len.try_into().map_err(|_e| LdtPostprocessError::InvalidLength))?;
+        // header
+        buf[0] = encode_de_header_actual_len(id_de_type_as_generic_de_type(de_type), actual_len)
+            .map_err(|_e| LdtPostprocessError::InvalidLength)?;
+        buf[1..3].copy_from_slice(self.salt.bytes().as_slice());
+        buf[3..17].copy_from_slice(&self.metadata_key);
+
+        // encrypt everything after DE header and salt
+        self.ldt_enc.encrypt(&mut buf[3..], &ldt_np_adv::salt_padder::<16, C>(self.salt)).map_err(
+            |e| match e {
+                // too short, not enough DEs -- should be caught by length validation above, though
+                ldt::LdtError::InvalidLength(_) => LdtPostprocessError::InvalidLength,
+            },
+        )
+    }
+}
+
+/// Something went wrong, or preconditions were not met, during identity postprocessing.
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub enum LdtPostprocessError {
+    /// The minimum size (2 bytes) or maximum size (6 bytes) of DE payload was not met
+    InvalidLength,
+}
+
+/// Accumulates DEs, then massages the serialized DEs with the configured identity to produce
+/// the final advertisement.
+#[derive(Debug)]
+pub struct AdvBuilder<I: Identity> {
+    /// The first byte is for the adv header, then the next I::OVERHEAD_LEN bytes are set aside for
+    /// use by [Identity::postprocess].
+    buffer: [u8; BLE_ADV_SVC_CONTENT_LEN],
+    /// How much of the buffer is consumed.
+    /// Always <= buffer length
+    len: usize,
+    identity: I,
+}
+
+impl<I: Identity> AdvBuilder<I> {
+    /// Create an empty AdvBuilder with the provided identity.
+    pub fn new(identity: I) -> AdvBuilder<I> {
+        // adv header + identity overhead
+        let len = 1 + I::OVERHEAD_LEN;
+        // check for broken identities
+        assert!(len < BLE_ADV_SVC_CONTENT_LEN);
+        AdvBuilder {
+            // conveniently the first byte is already 0, which is the correct header for v0.
+            // 3 bit version (000 since this is version 0), 5 bit reserved (also all 0)
+            buffer: [0; BLE_ADV_SVC_CONTENT_LEN],
+            len,
+            identity,
+        }
+    }
+
+    /// Add the data element to the packet buffer, if there is space.
+    pub fn add_data_element<B: ToDataElementBundle<I::Flavor>>(
+        &mut self,
+        data_element: B,
+    ) -> Result<(), AddDataElementError> {
+        let remaining = self.buffer.len() - self.len;
+        let bundle = data_element.to_de_bundle();
+        // length including header byte
+        let de_slice = bundle.contents_as_slice();
+        let de_total_len = 1 + de_slice.len();
+        if remaining < de_total_len {
+            return Err(AddDataElementError::InsufficientAdvSpace);
+        }
+
+        // header
+        self.buffer[self.len] =
+            encode_de_header(bundle.de_type.as_generic_de_type(), bundle.encoded_len);
+        self.len += 1;
+        // de contents
+        self.buffer[self.len..self.len + de_slice.len()].copy_from_slice(de_slice);
+        self.len += de_slice.len();
+        Ok(())
+    }
+
+    /// Return the finished advertisement (adv header + DEs), or `None` if the adv could not be
+    /// built.
+    pub fn into_advertisement(
+        mut self,
+    ) -> Result<ArrayView<u8, BLE_ADV_SVC_CONTENT_LEN>, I::Error> {
+        // encrypt, if applicable
+        self.identity
+            // skip adv header for postprocessing
+            .postprocess(&mut self.buffer[1..self.len])
+            .map(|_| ArrayView::try_from_array(self.buffer, self.len).expect("len is always valid"))
+    }
+}
+
+/// Errors that can occur for [AdvBuilder.add_data_element].
+#[derive(Debug, PartialEq, Eq)]
+pub enum AddDataElementError {
+    /// The provided DE can't fit in the remaining space
+    InsufficientAdvSpace,
+}
+
+/// The serialized form of a data element.
+#[derive(Clone, Debug)]
+pub struct DataElementBundle<F: PacketFlavor> {
+    de_type: PlainDataElementType,
+    /// Data element payload
+    data: DePayload,
+    /// The header-encoded form of `data`'s length
+    encoded_len: DeEncodedLength,
+    /// Type marker for whether this DE can be used in encrypted or plaintext packets.
+    flavor: marker::PhantomData<F>,
+}
+
+impl<F: PacketFlavor> DataElementBundle<F> {
+    /// Returns `Err` if the provided `data` or requested [PacketFlavor] are not valid for
+    /// `de_type`.
+    pub(crate) fn try_from(
+        de_type: PlainDataElementType,
+        data: &[u8],
+    ) -> Result<DataElementBundle<F>, DeBundleError> {
+        if !de_type.supports_flavor(F::ENUM_VARIANT) {
+            return Err(DeBundleError::InvalidFlavor);
+        }
+
+        let mut buffer = [0; NP_MAX_DE_CONTENT_LEN];
+        buffer
+            .get_mut(0..data.len())
+            .map(|dest| dest.copy_from_slice(data))
+            .ok_or(DeBundleError::InvalidLength)?;
+
+        let payload: DePayload = ArrayView::try_from_array(buffer, data.len())
+            .expect("data already copied into buffer")
+            .into();
+
+        // get the encoded length now so we know the length is valid for the DE type
+        let encoded_len = de_type
+            .as_generic_de_type()
+            .encoded_len_for_actual_len(payload.len())
+            .map_err(|_| DeBundleError::InvalidLength)?;
+
+        Ok(DataElementBundle { de_type, data: payload, encoded_len, flavor: marker::PhantomData })
+    }
+
+    /// The data contained in the DE, excluding the header byte
+    pub(crate) fn contents_as_slice(&self) -> &[u8] {
+        self.data.as_slice()
+    }
+}
+
+/// Errors that can occur when building a [DataElementBundle]
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum DeBundleError {
+    /// The DE type does not support the requested flavor
+    InvalidFlavor,
+    /// The data is too long to fit in a DE, or is invalid for the DE type
+    InvalidLength,
+}
+
+/// Implemented by higher-level types that represent data elements.
+pub trait ToDataElementBundle<F: PacketFlavor> {
+    /// Serialize `self` into the impl-specific byte encoding used for that DE type.
+    fn to_de_bundle(&self) -> DataElementBundle<F>;
+}
+
+// for cases where it's more convenient to already have a DataElementBundle than a DE
+impl<F: PacketFlavor> ToDataElementBundle<F> for DataElementBundle<F> {
+    fn to_de_bundle(&self) -> DataElementBundle<F> {
+        Self {
+            de_type: self.de_type,
+            data: self.data.clone(),
+            encoded_len: self.encoded_len,
+            flavor: marker::PhantomData,
+        }
+    }
+}
+
+// Biggest size a DE could possibly be is the entire payload
+#[derive(Clone, PartialEq, Eq, Debug)]
+struct DePayload {
+    payload: ArrayView<u8, { NP_MAX_DE_CONTENT_LEN }>,
+}
+
+impl DePayload {
+    /// The actual length of the payload
+    fn len(&self) -> DeActualLength {
+        self.payload
+            .len()
+            .try_into()
+            .expect("Payload is an array of the max size which always has a valid length")
+    }
+
+    fn as_slice(&self) -> &[u8] {
+        self.payload.as_slice()
+    }
+}
+
+impl From<ArrayView<u8, { NP_MAX_DE_CONTENT_LEN }>> for DePayload {
+    fn from(array: ArrayView<u8, { NP_MAX_DE_CONTENT_LEN }>) -> Self {
+        Self { payload: array }
+    }
+}
+
+/// Encode a DE type and length into a DE header byte.
+pub(crate) fn encode_de_header(de_type: DataElementType, header_len: DeEncodedLength) -> u8 {
+    // 4 high bits are length, 4 low bits are type
+    (header_len.as_u8() << 4) | de_type.type_code().as_u8()
+}
+
+/// Encode a DE type and length into a DE header byte.
+pub(crate) fn encode_de_header_actual_len(
+    de_type: DataElementType,
+    header_len: DeActualLength,
+) -> Result<u8, DeLengthOutOfRange> {
+    de_type
+        .encoded_len_for_actual_len(header_len)
+        // 4 high bits are length, 4 low bits are type
+        .map(|len| encode_de_header(de_type, len))
+}
+
+pub(crate) fn id_de_type_as_generic_de_type(
+    id_de_type: IdentityDataElementType,
+) -> DataElementType {
+    match id_de_type {
+        IdentityDataElementType::Private => DataElementType::PrivateIdentity,
+        IdentityDataElementType::Trusted => DataElementType::TrustedIdentity,
+        IdentityDataElementType::Public => DataElementType::PublicIdentity,
+        IdentityDataElementType::Provisioned => DataElementType::ProvisionedIdentity,
+    }
+}
diff --git a/nearby/presence/np_adv/src/legacy/serialize/tests.rs b/nearby/presence/np_adv/src/legacy/serialize/tests.rs
new file mode 100644
index 0000000..192b8f4
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/serialize/tests.rs
@@ -0,0 +1,169 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+extern crate std;
+
+use crate::legacy::actions::FastPairSass;
+use crate::legacy::actions::NearbyShare;
+use crate::{
+    de_type::EncryptedIdentityDataElementType,
+    legacy::{actions::*, data_elements::*, serialize::*},
+    shared_data::TxPower,
+};
+use crypto_provider_default::CryptoProviderImpl;
+use ldt_np_adv::{salt_padder, LdtEncrypterXtsAes128, LegacySalt};
+use std::vec;
+
+#[test]
+fn public_identity_packet_serialization() {
+    let mut builder = AdvBuilder::new(PublicIdentity::default());
+
+    let tx_power = TxPower::try_from(3).unwrap();
+    let mut action = ActionBits::default();
+    action.set_action(NearbyShare::from(true));
+    builder.add_data_element(TxPowerDataElement::from(tx_power)).unwrap();
+    builder.add_data_element(ActionsDataElement::from(action)).unwrap();
+
+    let packet = builder.into_advertisement().unwrap();
+    assert_eq!(
+        &[
+            0x00, // Adv Header
+            0x03, // Public DE header
+            0x15, 0x03, // Tx Power DE with value 3
+            0x26, 0x00, 0x40, // Actions DE w/ bit 9
+        ],
+        packet.as_slice()
+    );
+}
+
+#[test]
+fn no_identity_packet_serialization() {
+    let mut builder = AdvBuilder::new(NoIdentity::default());
+
+    let tx_power = TxPower::try_from(3).unwrap();
+    let mut action = ActionBits::default();
+    action.set_action(NearbyShare::from(true));
+    builder.add_data_element(TxPowerDataElement::from(tx_power)).unwrap();
+    builder.add_data_element(ActionsDataElement::from(action)).unwrap();
+
+    let packet = builder.into_advertisement().unwrap();
+    assert_eq!(
+        &[
+            0x00, // Adv Header
+            0x15, 0x03, // Tx Power DE with value 3
+            0x26, 0x00, 0x40, // Actions DE w/ bit 9
+        ],
+        packet.as_slice()
+    );
+}
+
+#[test]
+fn packet_limits_capacity() {
+    let mut builder = AdvBuilder::new(PublicIdentity::default());
+    // 2 + 1 left out of 24 payload bytes
+    builder.len = 21;
+    let mut bits = ActionBits::default();
+    bits.set_action(NearbyShare::from(true));
+    bits.set_action(FastPairSass::from(true));
+
+    assert_eq!(Ok(()), builder.add_data_element(ActionsDataElement::from(bits)));
+
+    // too small for 2+ 1 DE
+    builder.len = 22;
+    assert_eq!(
+        Err(AddDataElementError::InsufficientAdvSpace),
+        builder.add_data_element(ActionsDataElement::from(bits))
+    );
+}
+
+#[test]
+fn ldt_packet_serialization() {
+    // don't care about the HMAC since we're not decrypting
+    let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&[0; 32]);
+    let ldt = LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(&hkdf.legacy_ldt_key());
+    let metadata_key = [0x33; 14];
+    let salt = LegacySalt::from([0x01, 0x02]);
+
+    let mut ciphertext = vec![];
+    ciphertext.extend_from_slice(&metadata_key);
+    // tx power & action DEs
+    ciphertext.extend_from_slice(&[0x15, 0x03, 0x26, 0x00, 0x10]);
+    ldt.encrypt(&mut ciphertext, &salt_padder::<16, CryptoProviderImpl>(salt)).unwrap();
+
+    let mut builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+        EncryptedIdentityDataElementType::Private,
+        salt,
+        metadata_key,
+        ldt,
+    ));
+
+    let tx_power = TxPower::try_from(3).unwrap();
+    let mut action = ActionBits::default();
+    action.set_action(PhoneHub::from(true));
+    builder.add_data_element(TxPowerDataElement::from(tx_power)).unwrap();
+    builder.add_data_element(ActionsDataElement::from(action)).unwrap();
+
+    let packet = builder.into_advertisement().unwrap();
+    // header
+    let mut expected = vec![0x00];
+    // private header with five bytes after it
+    expected.push(0x51);
+    expected.extend_from_slice(salt.bytes());
+    expected.extend_from_slice(&ciphertext);
+    assert_eq!(&expected, packet.as_slice());
+}
+
+#[test]
+fn ldt_packet_cant_encrypt_without_des() {
+    let metadata_key = [0x33; 14];
+    let salt = LegacySalt::from([0x01, 0x02]);
+
+    let builder = AdvBuilder::new(LdtIdentity::<CryptoProviderImpl>::new(
+        EncryptedIdentityDataElementType::Private,
+        salt,
+        metadata_key,
+        LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(
+            &np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&[0xFE; 32]).legacy_ldt_key(),
+        ),
+    ));
+
+    // not enough ciphertext
+    assert_eq!(Err(LdtPostprocessError::InvalidLength), builder.into_advertisement());
+}
+
+#[test]
+fn nearby_share_action() {
+    let mut builder = AdvBuilder::new(PublicIdentity::default());
+
+    let mut action = ActionBits::default();
+    action.set_action(NearbyShare::from(true));
+
+    let actions_de = ActionsDataElement::from(action);
+    builder.add_data_element(actions_de).unwrap();
+
+    let tx_power_de = TxPowerDataElement::from(TxPower::try_from(-100).unwrap());
+    builder.add_data_element(tx_power_de).unwrap();
+
+    assert_eq!(
+        &[
+            0x00, // version 0
+            0x03, // public identity
+            0x26, // length 2, DE type 6 for actions
+            0x00, 0x40, // bit 9 is active
+            0x15, // length 1, DE type 5 for tx power
+            0x9C, // tx power of -100
+        ],
+        builder.into_advertisement().unwrap().as_slice()
+    );
+}
diff --git a/nearby/presence/np_adv/src/lib.rs b/nearby/presence/np_adv/src/lib.rs
new file mode 100644
index 0000000..a6a155e
--- /dev/null
+++ b/nearby/presence/np_adv/src/lib.rs
@@ -0,0 +1,534 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Serialization and deserialization for v0 (legacy) and v1 (extended) Nearby Presence
+//! advertisements.
+//!
+//! See `tests/examples_v0.rs` and `tests/examples_v1.rs` for some tests that show common
+//! deserialization scenarios.
+
+#![no_std]
+#![forbid(unsafe_code)]
+#![deny(missing_docs)]
+
+extern crate alloc;
+extern crate core;
+use crate::{
+    credential::{
+        source::{BothCredentialSource, CredentialSource},
+        v0::V0CryptoMaterial,
+        MatchedCredFromCred, MatchedCredential, V0Credential, V1Credential,
+    },
+    extended::deserialize::{
+        parse_sections, CiphertextSection, DataElements, DecryptedSection, IntermediateSection,
+        PlaintextSection, Section, SectionDeserializeError,
+    },
+    legacy::deserialize::{
+        DecryptError, DecryptedAdvContents, IntermediateAdvContents, PlaintextAdvContents,
+    },
+};
+use alloc::vec::Vec;
+#[cfg(feature = "devtools")]
+use array_view::ArrayView;
+use core::{fmt::Debug, marker};
+use crypto_provider::CryptoProvider;
+#[cfg(feature = "devtools")]
+use extended::NP_ADV_MAX_SECTION_LEN;
+use legacy::{data_elements::DataElementDeserializeError, deserialize::AdvDeserializeError};
+use nom::{combinator, number};
+pub mod credential;
+pub mod de_type;
+#[cfg(test)]
+mod deser_v0_tests;
+#[cfg(test)]
+mod deser_v1_tests;
+pub mod extended;
+#[cfg(test)]
+mod header_parse_tests;
+pub mod legacy;
+pub mod shared_data;
+/// Canonical form of NP's service UUID.
+///
+/// Note that UUIDs are encoded in BT frames in little-endian order, so these bytes may need to be
+/// reversed depending on the host BT API.
+pub const NP_SVC_UUID: [u8; 2] = [0xFC, 0xF1];
+
+/// Parse, deserialize, decrypt, and validate a complete NP advertisement (the entire contents of
+/// the service data for the NP UUID).
+pub fn deserialize_advertisement<'s, C0, C1, M, S, P>(
+    adv: &[u8],
+    cred_source: &'s S,
+) -> Result<DeserializedAdvertisement<'s, M>, AdvDeserializationError>
+where
+    C0: V0Credential<Matched<'s> = M> + 's,
+    C1: V1Credential<Matched<'s> = M> + 's,
+    M: MatchedCredential<'s>,
+    S: BothCredentialSource<C0, C1>,
+    P: CryptoProvider,
+{
+    let (remaining, header) =
+        parse_adv_header(adv).map_err(|_e| AdvDeserializationError::HeaderParseError)?;
+    match header {
+        AdvHeader::V1(header) => {
+            deser_decrypt_v1::<C1, S::V1Source, P>(cred_source.v1(), remaining, header)
+                .map(DeserializedAdvertisement::V1)
+        }
+        AdvHeader::V0 => deser_decrypt_v0::<C0, S::V0Source, P>(cred_source.v0(), remaining)
+            .map(DeserializedAdvertisement::V0),
+    }
+}
+
+/// Parse, deserialize, decrypt, and validate a complete V0 NP advertisement (the entire contents
+/// of the service data for the NP UUID). If the advertisement version header does not match V0,
+/// this method will return an [`AdvDeserializationError::HeaderParseError`]
+pub fn deserialize_v0_advertisement<'s, C, S, P>(
+    adv: &[u8],
+    cred_source: &'s S,
+) -> Result<V0AdvertisementContents<'s, C>, AdvDeserializationError>
+where
+    C: V0Credential,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    let (remaining, header) =
+        parse_adv_header(adv).map_err(|_e| AdvDeserializationError::HeaderParseError)?;
+
+    match header {
+        AdvHeader::V0 => deser_decrypt_v0::<C, S, P>(cred_source, remaining),
+        AdvHeader::V1(_) => Err(AdvDeserializationError::HeaderParseError),
+    }
+}
+
+/// Parse, deserialize, decrypt, and validate a complete V1 NP advertisement (the entire contents
+/// of the service data for the NP UUID). If the advertisement version header does not match V1,
+/// this method will return an [`AdvDeserializationError::HeaderParseError`]
+pub fn deserialize_v1_advertisement<'s, C, S, P>(
+    adv: &[u8],
+    cred_source: &'s S,
+) -> Result<V1AdvertisementContents<'s, C>, AdvDeserializationError>
+where
+    C: V1Credential,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    let (remaining, header) =
+        parse_adv_header(adv).map_err(|_e| AdvDeserializationError::HeaderParseError)?;
+
+    match header {
+        AdvHeader::V0 => Err(AdvDeserializationError::HeaderParseError),
+        AdvHeader::V1(header) => deser_decrypt_v1::<C, S, P>(cred_source, remaining, header),
+    }
+}
+
+type V1AdvertisementContents<'s, C> = V1AdvContents<'s, MatchedCredFromCred<'s, C>>;
+
+/// The encryption scheme used for a V1 advertisement.
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub enum V1EncryptionScheme {
+    /// Indicates MIC-based encryption and verification.
+    Mic,
+    /// Indicates signature-based encryption and verification.
+    Signature,
+}
+
+/// Error in decryption operations for `deser_decrypt_v1_section_bytes_for_dev_tools`.
+#[cfg(feature = "devtools")]
+#[derive(Debug, Clone)]
+pub enum AdvDecryptionError {
+    /// Cannot decrypt because the input section is not encrypted.
+    InputNotEncrypted,
+    /// Error parsing the given section.
+    ParseError,
+    /// No suitable credential found to decrypt the given section.
+    NoMatchingCredentials,
+}
+
+/// Decrypt, but do not further deserialize the v1 bytes, intended for developer tooling uses only.
+/// Production uses should use [deserialize_v1_advertisement] instead, which deserializes to a
+/// structured format and provides extra type safety.
+#[cfg(feature = "devtools")]
+pub fn deser_decrypt_v1_section_bytes_for_dev_tools<S, V1, P>(
+    cred_source: &S,
+    header_byte: u8,
+    section_bytes: &[u8],
+) -> Result<(ArrayView<u8, NP_ADV_MAX_SECTION_LEN>, V1EncryptionScheme), AdvDecryptionError>
+where
+    S: CredentialSource<V1>,
+    V1: V1Credential,
+    P: CryptoProvider,
+{
+    let header = V1Header { header_byte };
+    let int_sections =
+        parse_sections(&header, section_bytes).map_err(|_| AdvDecryptionError::ParseError)?;
+    let cipher_section = match &int_sections[0] {
+        IntermediateSection::Plaintext(_) => Err(AdvDecryptionError::InputNotEncrypted)?,
+        IntermediateSection::Ciphertext(section) => section,
+    };
+
+    use crate::credential::v1::V1CryptoMaterial;
+    use core::borrow::Borrow;
+
+    for cred in cred_source.iter() {
+        let crypto_material = cred.crypto_material();
+
+        match cipher_section {
+            CiphertextSection::SignatureEncryptedIdentity(encrypted_section) => {
+                let identity_resolution_material =
+                    crypto_material.signed_identity_resolution_material::<P>();
+                match encrypted_section.try_decrypt::<P>(identity_resolution_material.borrow()) {
+                    Ok(plaintext) => return Ok((plaintext, V1EncryptionScheme::Signature)),
+                    Err(_) => continue,
+                }
+            }
+            CiphertextSection::MicEncryptedIdentity(encrypted_section) => {
+                let identity_resolution_material =
+                    crypto_material.unsigned_identity_resolution_material::<P>();
+                let verification_material = crypto_material.unsigned_verification_material::<P>();
+                match encrypted_section
+                    .try_decrypt::<P>(identity_resolution_material.borrow(), &verification_material)
+                {
+                    Ok(plaintext) => return Ok((plaintext, V1EncryptionScheme::Mic)),
+                    Err(_) => continue,
+                }
+            }
+        }
+    }
+    Err(AdvDecryptionError::NoMatchingCredentials)
+}
+
+/// Deserialize and decrypt the contents of a v1 adv after the version header
+fn deser_decrypt_v1<'s, C, S, P>(
+    cred_source: &'s S,
+    remaining: &[u8],
+    header: V1Header,
+) -> Result<V1AdvertisementContents<'s, C>, AdvDeserializationError>
+where
+    C: V1Credential,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    let int_sections =
+        parse_sections(&header, remaining).map_err(|_| AdvDeserializationError::ParseError {
+            details_hazmat: AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError,
+        })?;
+    let mut sections = Vec::new();
+    let mut to_decrypt = Vec::new();
+    // keep track of ordering for later sorting
+    for (idx, s) in int_sections.into_iter().enumerate() {
+        match s {
+            IntermediateSection::Plaintext(p) => {
+                sections.push((idx, V1DeserializedSection::Plaintext(p)))
+            }
+            IntermediateSection::Ciphertext(c) => to_decrypt.push((idx, c)),
+        }
+    }
+    let mut invalid_sections = 0;
+    // Hot loop
+    // We assume that iterating credentials is more expensive than iterating sections
+    for cred in cred_source.iter() {
+        let mut i = 0;
+        while i < to_decrypt.len() {
+            let (section_idx, c): &(usize, CiphertextSection) = &to_decrypt[i];
+            match c.try_deserialize::<C, P>(cred) {
+                Ok(s) => {
+                    sections.push((
+                        *section_idx,
+                        V1DeserializedSection::Decrypted(WithMatchedCredential::new(
+                            cred.matched(),
+                            s,
+                        )),
+                    ));
+                    // we don't care about maintaining order, so use O(1) remove
+                    to_decrypt.swap_remove(i);
+                    // don't advance i -- it now points to a new element
+                }
+                Err(e) => match e {
+                    SectionDeserializeError::IncorrectCredential => {
+                        // keep it around to try with another credential
+                        i += 1;
+                    }
+                    SectionDeserializeError::ParseError => {
+                        // the credential worked, but the section itself was bogus, so drop
+                        // it
+                        invalid_sections += 1;
+                        to_decrypt.swap_remove(i);
+                    }
+                },
+            }
+        }
+        if to_decrypt.is_empty() {
+            // no need to consider the remaining credentials
+            break;
+        }
+    }
+    invalid_sections += to_decrypt.len();
+    // decryption may produce sections out of order
+    sections.sort_by_key(|(idx, _section)| *idx);
+    Ok(V1AdvContents::new(sections.into_iter().map(|(_idx, s)| s).collect(), invalid_sections))
+}
+
+type V0AdvertisementContents<'s, C> = V0AdvContents<'s, MatchedCredFromCred<'s, C>>;
+
+/// Deserialize and decrypt the contents of a v0 adv after the version header
+fn deser_decrypt_v0<'s, C, S, P>(
+    cred_source: &'s S,
+    remaining: &[u8],
+) -> Result<V0AdvertisementContents<'s, C>, AdvDeserializationError>
+where
+    C: V0Credential,
+    S: CredentialSource<C>,
+    P: CryptoProvider,
+{
+    let contents = legacy::deserialize::deserialize_adv_contents::<P>(remaining)?;
+    return match contents {
+        IntermediateAdvContents::Plaintext(p) => Ok(V0AdvContents::Plaintext(p)),
+        IntermediateAdvContents::Ciphertext(c) => {
+            for cred in cred_source.iter() {
+                let cm = cred.crypto_material();
+                let ldt = cm.ldt_adv_cipher::<P>();
+                match c.try_decrypt(&ldt) {
+                    Ok(c) => {
+                        return Ok(V0AdvContents::Decrypted(WithMatchedCredential::new(
+                            cred.matched(),
+                            c,
+                        )))
+                    }
+                    Err(e) => match e {
+                        DecryptError::DecryptOrVerifyError => continue,
+                        DecryptError::DeserializeError(e) => {
+                            return Err(e.into());
+                        }
+                    },
+                }
+            }
+            Ok(V0AdvContents::NoMatchingCredentials)
+        }
+    };
+}
+/// Parse a NP advertisement header.
+///
+/// This can be used on all versions of advertisements since it's the header that determines the
+/// version.
+///
+/// Returns a `nom::IResult` with the parsed header and the remaining bytes of the advertisement.
+fn parse_adv_header(adv: &[u8]) -> nom::IResult<&[u8], AdvHeader> {
+    // header bits: VVVxxxxx
+    let (remaining, (header_byte, version, _low_bits)) = combinator::verify(
+        // splitting a byte at a bit boundary to take lower 5 bits
+        combinator::map(number::complete::u8, |byte| (byte, byte >> 5, byte & 0x1F)),
+        |&(_header_byte, version, low_bits)| match version {
+            // reserved bits, for any version, must be zero
+            PROTOCOL_VERSION_LEGACY | PROTOCOL_VERSION_EXTENDED => low_bits == 0,
+            _ => false,
+        },
+    )(adv)?;
+    match version {
+        PROTOCOL_VERSION_LEGACY => Ok((remaining, AdvHeader::V0)),
+        PROTOCOL_VERSION_EXTENDED => Ok((remaining, AdvHeader::V1(V1Header { header_byte }))),
+        _ => unreachable!(),
+    }
+}
+#[derive(Debug, PartialEq, Eq, Clone)]
+pub(crate) enum AdvHeader {
+    V0,
+    V1(V1Header),
+}
+/// An NP advertisement with its header parsed.
+#[derive(Debug, PartialEq, Eq)]
+pub enum DeserializedAdvertisement<'m, M: MatchedCredential<'m>> {
+    /// V0 header has all reserved bits, so there is no data to represent other than the version
+    /// itself.
+    V0(V0AdvContents<'m, M>),
+    /// V1 advertisement
+    V1(V1AdvContents<'m, M>),
+}
+/// The contents of a deserialized and decrypted V1 advertisement.
+#[derive(Debug, PartialEq, Eq)]
+pub struct V1AdvContents<'m, M: MatchedCredential<'m>> {
+    sections: Vec<V1DeserializedSection<'m, M>>,
+    invalid_sections: usize,
+}
+impl<'m, M: MatchedCredential<'m>> V1AdvContents<'m, M> {
+    fn new(sections: Vec<V1DeserializedSection<'m, M>>, invalid_sections: usize) -> Self {
+        Self { sections, invalid_sections }
+    }
+    /// Destructures this V1 advertisement into just the sections
+    /// which could be successfully deserialized and decrypted
+    pub fn into_valid_sections(self) -> Vec<V1DeserializedSection<'m, M>> {
+        self.sections
+    }
+    /// The sections that could be successfully deserialized and decrypted
+    pub fn sections(&self) -> impl Iterator<Item = &V1DeserializedSection<M>> {
+        self.sections.iter()
+    }
+    /// The number of sections that could not be parsed or decrypted.
+    pub fn invalid_sections_count(&self) -> usize {
+        self.invalid_sections
+    }
+}
+/// Advertisement content that was either already plaintext or has been decrypted.
+#[derive(Debug, PartialEq, Eq)]
+pub enum V0AdvContents<'m, M: MatchedCredential<'m>> {
+    /// Contents of an originally plaintext advertisement
+    Plaintext(PlaintextAdvContents),
+    /// Contents that was ciphertext in the original advertisement, and has been decrypted
+    /// with the credential in the [MatchedCredential]
+    Decrypted(WithMatchedCredential<'m, M, DecryptedAdvContents>),
+    /// The advertisement was encrypted, but no credentials matched
+    NoMatchingCredentials,
+}
+/// Advertisement content that was either already plaintext or has been decrypted.
+#[derive(Debug, PartialEq, Eq)]
+pub enum V1DeserializedSection<'m, M: MatchedCredential<'m>> {
+    /// Section that was plaintext in the original advertisement
+    Plaintext(PlaintextSection),
+    /// Section that was ciphertext in the original advertisement, and has been decrypted
+    /// with the credential in the [MatchedCredential]
+    Decrypted(WithMatchedCredential<'m, M, DecryptedSection>),
+}
+impl<'m, M> Section for V1DeserializedSection<'m, M>
+where
+    M: MatchedCredential<'m>,
+{
+    type Iterator<'d>  = DataElements<'d> where Self: 'd;
+    fn data_elements(&'_ self) -> Self::Iterator<'_> {
+        match self {
+            V1DeserializedSection::Plaintext(p) => p.data_elements(),
+            V1DeserializedSection::Decrypted(d) => d.contents.data_elements(),
+        }
+    }
+}
+/// Decrypted advertisement content with the [MatchedCredential] from the credential that decrypted
+/// it.
+#[derive(Debug, PartialEq, Eq)]
+pub struct WithMatchedCredential<'m, M: MatchedCredential<'m>, T> {
+    matched: M,
+    contents: T,
+    // the compiler sees 'm as unused
+    marker: marker::PhantomData<&'m ()>,
+}
+impl<'m, M: MatchedCredential<'m>, T> WithMatchedCredential<'m, M, T> {
+    fn new(matched: M, contents: T) -> Self {
+        Self { matched, contents, marker: marker::PhantomData }
+    }
+    /// Credential data for the credential that decrypted the content.
+    pub fn matched_credential(&self) -> &M {
+        &self.matched
+    }
+    /// The decrypted advertisement content.
+    pub fn contents(&self) -> &T {
+        &self.contents
+    }
+}
+/// Data in a V1 advertisement header.
+#[derive(Debug, PartialEq, Eq, Clone)]
+pub(crate) struct V1Header {
+    header_byte: u8,
+}
+const PROTOCOL_VERSION_LEGACY: u8 = 0;
+const PROTOCOL_VERSION_EXTENDED: u8 = 1;
+
+/// Errors that can occur during advertisement deserialization.
+#[derive(PartialEq)]
+pub enum AdvDeserializationError {
+    /// The advertisement header could not be parsed
+    HeaderParseError,
+    /// The advertisement content could not be parsed
+    ParseError {
+        /// Potentially hazardous details about deserialization errors. Read the documentation for
+        /// [AdvDeserializationErrorDetailsHazmat] before using this field.
+        details_hazmat: AdvDeserializationErrorDetailsHazmat,
+    },
+}
+
+impl Debug for AdvDeserializationError {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        match self {
+            AdvDeserializationError::HeaderParseError => write!(f, "HeaderParseError"),
+            AdvDeserializationError::ParseError { .. } => write!(f, "ParseError"),
+        }
+    }
+}
+
+/// Potentially hazardous details about deserialization errors. These error information can
+/// potentially expose side-channel information about the plaintext of the advertisements and/or
+/// the keys used to decrypt them. For any place that you avoid exposing the keys directly
+/// (e.g. across FFIs, print to log, etc), avoid exposing these error details as well.
+#[derive(PartialEq)]
+pub enum AdvDeserializationErrorDetailsHazmat {
+    /// Parsing the overall advertisement or DE structure failed
+    AdvertisementDeserializeError,
+    /// Deserializing an individual DE from its DE contents failed
+    V0DataElementDeserializeError(DataElementDeserializeError),
+    /// Must not have any other top level data elements if there is an encrypted identity DE
+    TooManyTopLevelDataElements,
+    /// Must not have an identity DE inside an identity DE
+    InvalidDataElementHierarchy,
+}
+
+impl From<AdvDeserializeError> for AdvDeserializationError {
+    fn from(err: AdvDeserializeError) -> Self {
+        match err {
+            AdvDeserializeError::AdvertisementDeserializeError => {
+                AdvDeserializationError::ParseError {
+                    details_hazmat:
+                        AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError,
+                }
+            }
+            AdvDeserializeError::DataElementDeserializeError(e) => {
+                AdvDeserializationError::ParseError {
+                    details_hazmat:
+                        AdvDeserializationErrorDetailsHazmat::V0DataElementDeserializeError(e),
+                }
+            }
+            AdvDeserializeError::TooManyTopLevelDataElements => {
+                AdvDeserializationError::ParseError {
+                    details_hazmat:
+                        AdvDeserializationErrorDetailsHazmat::TooManyTopLevelDataElements,
+                }
+            }
+            AdvDeserializeError::InvalidDataElementHierarchy => {
+                AdvDeserializationError::ParseError {
+                    details_hazmat:
+                        AdvDeserializationErrorDetailsHazmat::InvalidDataElementHierarchy,
+                }
+            }
+        }
+    }
+}
+
+/// DE length is out of range (e.g. > 4 bits for encoded V0, > max DE size for actual V0, >127 for
+/// V1) or invalid for the relevant DE type.
+#[derive(Debug, PartialEq, Eq)]
+pub struct DeLengthOutOfRange;
+
+/// The identity mode for a deserialized plaintext section or advertisement.
+#[derive(PartialEq, Eq, Debug, Clone, Copy)]
+pub enum PlaintextIdentityMode {
+    /// No identity DE was present in the section
+    None,
+    /// A "Public Identity" DE was present in the section
+    Public,
+}
+
+/// A "public identity" -- a nonspecific "empty identity".
+///
+/// Used when serializing V0 advertisements or V1 sections.
+#[derive(Default, Debug)]
+pub struct PublicIdentity {}
+
+/// The lack of any identity information whatsoever, which is distinct from [PublicIdentity].
+///
+/// Used when serializing V0 advertisements or V1 sections.
+#[derive(Default, Debug)]
+pub struct NoIdentity {}
diff --git a/nearby/presence/np_adv/src/shared_data.rs b/nearby/presence/np_adv/src/shared_data.rs
new file mode 100644
index 0000000..b511ed2
--- /dev/null
+++ b/nearby/presence/np_adv/src/shared_data.rs
@@ -0,0 +1,77 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Data types shared between V0 and V1 advertisements
+
+/// Power in dBm, calibrated as per
+/// [Eddystone](https://github.com/google/eddystone/tree/master/eddystone-uid#tx-power)
+#[derive(Debug, PartialEq, Eq, Clone)]
+pub struct TxPower {
+    /// Power in `[-100, 20]`
+    power: i8,
+}
+
+impl TxPower {
+    /// Power in `[-100, 20]`
+    pub fn as_i8(&self) -> i8 {
+        self.power
+    }
+}
+
+impl TryFrom<i8> for TxPower {
+    type Error = TxPowerOutOfRange;
+
+    fn try_from(value: i8) -> Result<Self, Self::Error> {
+        if !(-100..=20).contains(&value) {
+            Err(TxPowerOutOfRange)
+        } else {
+            Ok(TxPower { power: value })
+        }
+    }
+}
+
+/// Tx power was out of the valid range `[-100, 20]`.
+#[derive(Debug)]
+pub struct TxPowerOutOfRange;
+
+/// MDP's context sync number, used to inform other devices that they have stale context.
+#[derive(Debug, PartialEq, Eq, Clone, Copy)]
+pub struct ContextSyncSeqNum {
+    /// 4-bit sequence
+    num: u8,
+}
+
+impl ContextSyncSeqNum {
+    /// Returns the context seq num as a u8
+    pub fn as_u8(&self) -> u8 {
+        self.num
+    }
+}
+
+impl TryFrom<u8> for ContextSyncSeqNum {
+    type Error = ContextSyncSeqNumOutOfRange;
+
+    fn try_from(value: u8) -> Result<Self, Self::Error> {
+        // must only have low nibble
+        if value > 0x0F {
+            Err(ContextSyncSeqNumOutOfRange)
+        } else {
+            Ok(ContextSyncSeqNum { num: value })
+        }
+    }
+}
+
+/// Seq num must be in `[0-15]`.
+#[derive(Debug)]
+pub struct ContextSyncSeqNumOutOfRange;
diff --git a/nearby/presence/np_adv/test.json b/nearby/presence/np_adv/test.json
new file mode 100644
index 0000000..953eebf
--- /dev/null
+++ b/nearby/presence/np_adv/test.json
@@ -0,0 +1,24122 @@
+[
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8CDE04CBC59C9134F37B1FFBCF5C1136",
+    "aes_key": "0C04AAE1338E928EA903CAF2FD806749",
+    "data_elements": [
+      {
+        "contents": "3DF2D0883246D50B5C981ADB",
+        "de_type": 163
+      },
+      {
+        "contents": "5628511D93E01312D69F5484",
+        "de_type": 317
+      },
+      {
+        "contents": "C255FFF1D4F8501E3467B084BDD124DF26",
+        "de_type": 721
+      }
+    ],
+    "encoded_section": "69901356E7F8215A0B45D559EFD0EE88A6398B911000C807A0FFE7C79ABD61B1862AFBD097AF9001D042A9F585F02B4DE34C7412A717A08034ECDC1862BB599B6CD7CD3F95D191135555C01A0D1A71EBF2593213E9439552D625736E024EADFA950BA7B78D6AD844AD0A",
+    "identity_type": "private",
+    "iv": "2170459EF8C3E6DB3BFB808B62A5D03E",
+    "key_seed": "43A340DE5AFC350888FB696FC77D8CB0467668F18E7EDCB8CC3AC2F59F075ACB",
+    "metadata_key": "593580A4B65DEF1E6B117C8055CB6257",
+    "section_mic_hmac_key": "CDB8526FA8BEC42B51495EEA23F347B2F8E07A757DF63FE9C5C9100E8EB39435",
+    "section_salt": "C807A0FFE7C79ABD61B1862AFBD097AF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8630E9D33F2AB78558BB4AF5C09F4C9E",
+    "aes_key": "E9FE3EF4069698F338256E23AAC08029",
+    "data_elements": [
+      {
+        "contents": "C70548D64F0D131D8551D3C2B3",
+        "de_type": 448
+      },
+      {
+        "contents": "E4EAA94038A8B4A0D46C83695DABC05262C7DA5ED2395B673527C5C337",
+        "de_type": 859
+      }
+    ],
+    "encoded_section": "6790134C7B6E97BE50C21ADAEE4D5EC611313B911000A6C0ECE0A9D25663F329C6C218D07CB59004603C46143E88C0F872F341BE2C06FB4DF9ECF1A970CAFBCD5315C9D8389770E627D3C913690256AA8BD753910DBB4FEA57E8AC5125E5B906CA0E0DF17081F34D",
+    "identity_type": "provisioned",
+    "iv": "39201C314CBC2D3F88EE094E627E7ADC",
+    "key_seed": "83FEF3C4A9E58DAA566F19AECC7C9CEE6EA4BA37F360EE8A40A26FBB99938F4B",
+    "metadata_key": "90A529D185FE0105D76179ED5AC841C8",
+    "section_mic_hmac_key": "8466111DFC334299442A84F91E3F6616C1023F2A29C72670C483F2445C18B75A",
+    "section_salt": "A6C0ECE0A9D25663F329C6C218D07CB5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6FB3720F743A68E6474B1459990DFAC6",
+    "aes_key": "A2E0437B429330BF82B8BA3B2B762770",
+    "data_elements": [
+      {
+        "contents": "13851601256B24E7",
+        "de_type": 404
+      },
+      {
+        "contents": "82FAAF4977AE0B80EAAC",
+        "de_type": 81
+      },
+      {
+        "contents": "C9B19F78DDF6FD66AA623267E9656C2E1EEB9F0F8253B1041626",
+        "de_type": 152
+      },
+      {
+        "contents": "EFD96E20D81B0ACD",
+        "de_type": 474
+      },
+      {
+        "contents": "2120F35E2B9EB9D5027BDC",
+        "de_type": 264
+      }
+    ],
+    "encoded_section": "8490137D769DEFAA2E8B1BCD01332139B1F4F99110008F7DCA2DC4146183C14177A6F847468B90043E07B7A107CC2C88A183F2D8D5A6C4A6119DFCB0603F251F3994F0468C56F2014A98BEF0881B342F28E7E83B89EBB28E2E54D88B0AAFEB4FDE73F8C8D918E818ED997A0CFB3ED6344189D0A06F4FDD3F780FC6E87421578FF68B06E6E0",
+    "identity_type": "provisioned",
+    "iv": "52A7C3FC58494668CB193C7C583AB583",
+    "key_seed": "D0B97B7B4CB8CF85A9E707ADD592E017BD7B3964F59801EA9A08DEB3E8A3EA47",
+    "metadata_key": "6AF91918569B21EC14C90B099284EEED",
+    "section_mic_hmac_key": "EA04A0F8FF46882A8B759E7E9D53CAAF2D847C393B5A47F6AA4284DA1BF8CF11",
+    "section_salt": "8F7DCA2DC4146183C14177A6F847468B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6F144BE070388B857B001873992CA0EF",
+    "aes_key": "0165985CBCA678350F250112E1354FCE",
+    "data_elements": [
+      {
+        "contents": "B6D2CE67C704514BB9F370812B470A56BA4BDD",
+        "de_type": 164
+      },
+      {
+        "contents": "49DCA454994B399B9914768E457F",
+        "de_type": 701
+      },
+      {
+        "contents": "FBD41AC2FCBB9B47F6B04863B8139AE83A9AF049A137F2A766",
+        "de_type": 466
+      },
+      {
+        "contents": "73A400CB6E36EB45BD1AE7",
+        "de_type": 172
+      },
+      {
+        "contents": "1113B990D3D4B31D4CEEFB849F8CAFD01A82968A61",
+        "de_type": 725
+      }
+    ],
+    "encoded_section": "A09013988012579D82091B81D39640A1F4B47891100077789262A428CFE712797C28D85A644A90021BBE826D956C08B86149427A8EFA6D801523C348FA78AF09433AF1A947269D58CDCA26055838209A01615CB0FFD9C55234D2EF9805FCB1FF8ED66137B2DE6A8C34F57F6FAC98645D1C482E851C77BFB1ACBB5A22E2CA297BAD14CAD0C08E4C8424C7A6E683C7EE8392A091DD9217DD6E5396D3644F01EF3CAE",
+    "identity_type": "trusted",
+    "iv": "7BAE887BD9B8BE99864343D585848A63",
+    "key_seed": "70CC58965C36307BE580E2793ACDC8D792FCFE8B17392B4F0B7A6ABC31D3CF02",
+    "metadata_key": "E503087FCE974FEDCC3290C2ABC2AF15",
+    "section_mic_hmac_key": "173560AC7513A51677C06801D39CE68B2E32F6BA7C02364800EF73AE27916ACC",
+    "section_salt": "77789262A428CFE712797C28D85A644A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BD864BCB86CC4FAFA1DF15D05C693F70",
+    "aes_key": "B7A853164A7D88165F7044725DE648FC",
+    "data_elements": [
+      {
+        "contents": "B6A9A4926FEDFDE5D8D870BA06144690",
+        "de_type": 175
+      },
+      {
+        "contents": "B8C403AC879A7EBB6D69458D",
+        "de_type": 720
+      }
+    ],
+    "encoded_section": "5990139BE32BB50428F39C6510AB0BCAE0A4519110002542EBE3983FF77643536AF98A47BDFE9001D2EFF80C4D9A6391063A16F2E989F5C02424E527596A15A5E2424EEA7317214FEEC57E1C28E1F47C8BE40C43839BD6CC2EE1",
+    "identity_type": "private",
+    "iv": "F1411FAE6BBB7AF0F798EF7898C1A026",
+    "key_seed": "15C3A38E12E82DE3D05867A72C09259B2F163E0F7E2B900013FD9589E4FCB08B",
+    "metadata_key": "BEF599A91BB40E6A3A12D69AA8AA40D5",
+    "section_mic_hmac_key": "B268F77855AAFA3A0AEC62CEF115FAF98C4616536512F7AD13EBAA17CC36237E",
+    "section_salt": "2542EBE3983FF77643536AF98A47BDFE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4112B2B6BC0C275800AF30E221E029A",
+    "aes_key": "CB3E8DA92E33B125E206698CCDDB4E17",
+    "data_elements": [
+      {
+        "contents": "99A2BBD12EA3D487BA35A47215",
+        "de_type": 374
+      },
+      {
+        "contents": "3B4AD8B0AC9370A0DBECE41039A7C136D66AE40E251A274483E1E04B",
+        "de_type": 322
+      },
+      {
+        "contents": "3B5465ABD3AB9E51E37FE1825D19EBCB6D75",
+        "de_type": 882
+      },
+      {
+        "contents": "C3303DEB37C1CBF6F2D83CF60B5AAE7343",
+        "de_type": 508
+      },
+      {
+        "contents": "5AC15AF945563810514171B4D3CF13EB7CD056ED84CC4AD84E5C8C",
+        "de_type": 734
+      }
+    ],
+    "encoded_section": "AD9013C80618AEF0E93826CCBB9F1FC3CA1D2E911000BA4390D760820DE7D19BDD18E12105A99001E4F5385E499355B62DC8EB87A3B4B44BF0A799A099FF59F83CF7042DC080D469575ECB02FD8DC04FB60539411A4142E3386DDB945F456D90F6104B6D5893E7697CCB294A98597A07EDA2FA2A1B5C92DC85F720DCCC7B4F25639F1A8E912041148020E7EF5DBFDB6455C1DEF20F9B7A14218826843B218FA12FEC92D0AC0C0664304BF11B3962",
+    "identity_type": "private",
+    "iv": "E39A28DAC41BAE56D9C38A90DE18970E",
+    "key_seed": "F8956985D12A7454C239C35BD7F5B98FED6987FE6097F27888DC942E9B4F5BAE",
+    "metadata_key": "0DFAB0A1A5C1F1FB82F4E19C387EF630",
+    "section_mic_hmac_key": "D52D92CED4F96F98A96CDE0CBCBA70D22D695FE28A792490C9EC8AD3D7C512E4",
+    "section_salt": "BA4390D760820DE7D19BDD18E12105A9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8281FAD7EBE43124AD3E52A64BDFC08",
+    "aes_key": "37FEED11494EC97655A7CDFAAFA0B332",
+    "data_elements": [
+      {
+        "contents": "2FEB5C0E9CB50EA61479D2",
+        "de_type": 182
+      },
+      {
+        "contents": "",
+        "de_type": 76
+      },
+      {
+        "contents": "EDFE252EC0AF1BCF3203E68626BD87DC210591FB4087E5",
+        "de_type": 186
+      },
+      {
+        "contents": "F3B28EE0AA3540",
+        "de_type": 53
+      }
+    ],
+    "encoded_section": "6A901326C139F9297299F3291C4C5449667C1E9110001C4A655CE96B261144D0DC30EEB06E819001ED20997FF72B0145678564A0823492B38F82A2908345E56312025794BFAB4154F007A7B8B672F38D5D78E5E201BB839A44D8E5819E8EE1563FF02619DBB4F3179D5719",
+    "identity_type": "private",
+    "iv": "6DD5002B0EC75F051EC1C94C9C5BD7DC",
+    "key_seed": "4E462ABDDDE34121284FE9958F24C16DBA38929E38A34F2019783CDAD5E08706",
+    "metadata_key": "AFEB6946137C5F406D7849DBC57AEA66",
+    "section_mic_hmac_key": "8C3FF0042FD0E1C4145EFCD9A7A84D636B6A58BE736B10AF391C72DB7B4CE6B7",
+    "section_salt": "1C4A655CE96B261144D0DC30EEB06E81"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E64361FB1C8C7325B408FAEE1E49547A",
+    "aes_key": "7BBC46B2F18B3D283060D0A697FD11CD",
+    "data_elements": [
+      {
+        "contents": "9E4B0F0E1E5F8B4A48E6E85204B7B761BB77C2B8E9D87A",
+        "de_type": 398
+      },
+      {
+        "contents": "4DA86FD08563540F21F4D25BC7B6C8FFE5D0C256F695231A9758CB",
+        "de_type": 536
+      },
+      {
+        "contents": "0EF79DA8BA03209867C317EE62ED67FE793C10338A07C7509E5B394A",
+        "de_type": 892
+      },
+      {
+        "contents": "E5282DD8F645D9C437993F0B64E1C0126B51",
+        "de_type": 44
+      }
+    ],
+    "encoded_section": "A2901389A25CC355CD62CBE4A5003ACDF8EE059110002E283829FBEBE221CF9A1F91C1B0BD1D900171AB8293D624A4D2BE56FDE47583BBD8845F3855B25932CD6A1DCA7098797D301AFBFCF9A4A8A806E391C54F110D1B9D80A21CB9769249E819530E57270E20135F0406FC4C0BB0BBFB5EF126993AEE724E98B9E92A5B6992F8298B8C4FDC7D631588EAB84DD79BD92555DCD93E5FACC5EC36EB8B9F8DF0AB62F718",
+    "identity_type": "private",
+    "iv": "A926171CE5153CBD347A51C9978CE93F",
+    "key_seed": "F36B60BF6F555557AA212FC62B5C02A13C9C2BA4DF41EDD5A72F16AE66D236AD",
+    "metadata_key": "BB668D0081DBF606A285AD033DE92814",
+    "section_mic_hmac_key": "91908BF2F777B922CC1CC476A770C7FCAECCE0DE0B2A8F95FE44D507024B93A2",
+    "section_salt": "2E283829FBEBE221CF9A1F91C1B0BD1D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9DB5D8E94ABD7216DABD6C8F66C5F52F",
+    "aes_key": "75EB4826F32F9F8B7328CB265FDE141A",
+    "data_elements": [],
+    "encoded_section": "379013542EB74608EA671B4B9C539D5DAC9E0B911000371E5AA6A854D8B34632AF62FB16F9E39002958BD9049E4B9D49DB40BFB15A1DEB0C",
+    "identity_type": "trusted",
+    "iv": "FE2F66ADC508DBE090043C56A1D4CC2F",
+    "key_seed": "5694BC71EA736D6F1C9F9CB3F7359AF337754178D62E0CB2C8305813F7334036",
+    "metadata_key": "D7DF4817E2E00574C1CF3B5BA51411C3",
+    "section_mic_hmac_key": "B6CF96993547CD0B865BA29ACD9E7989CCA2A2CCFD940E81C97A613423F34D2B",
+    "section_salt": "371E5AA6A854D8B34632AF62FB16F9E3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "815CAF890EB0DEA3D861BE22C7BE8485",
+    "aes_key": "34D85A4581FF6A69DBBD8CD74D881E2A",
+    "data_elements": [
+      {
+        "contents": "8E976835BD38B761F8F5C5E3",
+        "de_type": 175
+      }
+    ],
+    "encoded_section": "469013F70BA8EF34F0B010A6EDFF3E02486FFB91100057434E8D7DA6137D885EE4B43DA850B09001367A8D04108F605A363DDE7A55DBC6D28C92FE23A27E7D70FF072A469793CD",
+    "identity_type": "private",
+    "iv": "0F43CBDBB69194C72762C45B8A959AE2",
+    "key_seed": "9DCDB616C7824FE6E29EDEE371A1F019AB9035DEA6A2FAEED01086EB7C7BA56E",
+    "metadata_key": "386504600FDC6BB6D29B931F997569C3",
+    "section_mic_hmac_key": "40CCE5D2E8BD439CE407FADC7D03C1E5E3EE7BDB2AE09C3DAEEDBCD383994AAC",
+    "section_salt": "57434E8D7DA6137D885EE4B43DA850B0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "20AA489B07F54A47398F0D452085BA80",
+    "aes_key": "70E8FE98FC7B2F2BAF0F571C5A6CA285",
+    "data_elements": [
+      {
+        "contents": "895FC4C4D7C5327B823935153EE5",
+        "de_type": 603
+      }
+    ],
+    "encoded_section": "489013E548BFD8D8BF4BABE9BBA791575D88F0911000EA0BC8652F833AA286C9B67BDBEEFFDD90012C035FA41FD24BC9E2154A4A746EC39BD898F5AC0D626F6FDC9EC1625F4A6E0278",
+    "identity_type": "private",
+    "iv": "27675AE693055520D818FA2DF75BA1DD",
+    "key_seed": "7BE2B5351B3AF721D834EFC7D92EDCFBB356CD30C149CFF13FFA6BB9E9EB4E9E",
+    "metadata_key": "C51BF8A84C682176009DAFC96E45E52A",
+    "section_mic_hmac_key": "63BB6F972081FE41233CC4657536A17D3DA9AC374FCCAAE4A390FBB9467E6B10",
+    "section_salt": "EA0BC8652F833AA286C9B67BDBEEFFDD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E7BF03DDA652D45DE79BEC7C63C52888",
+    "aes_key": "DEC78F8DAAD1135EDA4BA73CA2EDDE93",
+    "data_elements": [
+      {
+        "contents": "CA",
+        "de_type": 831
+      },
+      {
+        "contents": "0681689828FE001F46FB",
+        "de_type": 640
+      },
+      {
+        "contents": "A0",
+        "de_type": 925
+      },
+      {
+        "contents": "6EF5787D1B7E",
+        "de_type": 821
+      }
+    ],
+    "encoded_section": "559013122F1A904EE013BF5054BD17CB565C7B911000BA917BAFABA916680B68E584D7B3C74F9002124726B3336C5A2E714BDA406F4ECAE6942867CFB87D060B7CA2B90E553A7980483C575AA8F669191B6652D622FF",
+    "identity_type": "trusted",
+    "iv": "5623FFAEE945A52FED893932E2C2831B",
+    "key_seed": "EB421B623B6601022B06C3B84A805B0BECB369AC96BDDB227D35F720BB88E54D",
+    "metadata_key": "481736D7E51E562209CB88D5098D7AB8",
+    "section_mic_hmac_key": "73839ABE23D964F432D5109E0FD1AF2B7458ACA6C4FC8C81B00F17697ADC7140",
+    "section_salt": "BA917BAFABA916680B68E584D7B3C74F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4F478C39E6822FD65B039A579058329",
+    "aes_key": "942E583271C5BAB68F5A289F13B4AD3D",
+    "data_elements": [
+      {
+        "contents": "6740DA0B7D7422B46668B2A4748EF1723D4740177B561E28",
+        "de_type": 25
+      },
+      {
+        "contents": "57673A8C3CA46CFBA015193726BA9D1B87C155F230",
+        "de_type": 157
+      },
+      {
+        "contents": "966C4FDAFD61602A93A588FCC9E9",
+        "de_type": 997
+      }
+    ],
+    "encoded_section": "7A9013E8068D3273AD4073892EC5B38DFE7A85911000F20408CF4792B57C5EAB5F364D498024900485D9D787000902A41BF9B32EBE0B9BC5457E424445793F00C68FF17BA783444CED2BC3DF3E7FD930C5D53A8FF8A279DBD838FEA95D0DB5047C90A20128D099424453872597B42EC79617D8460C78EFCDD06166",
+    "identity_type": "provisioned",
+    "iv": "97A725CAFF2ECB63466FC4FE92F1D93F",
+    "key_seed": "3B1148D64481A45A5ED6A0C71204CE9EFBBBFB24772F4376D14A60809095A80C",
+    "metadata_key": "E356AB5D0B7B4A162CFFB3DC9200B03E",
+    "section_mic_hmac_key": "622F90CBC74C39F7E270CCFEDC73CC2501A788B6233CE65018C90D315EB1B5BC",
+    "section_salt": "F20408CF4792B57C5EAB5F364D498024"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E3E029E6CCC13E76F6537200F6FE6609",
+    "aes_key": "13395363678EB859D922B0AC513D569D",
+    "data_elements": [
+      {
+        "contents": "E88903",
+        "de_type": 1
+      },
+      {
+        "contents": "9177F23C1703",
+        "de_type": 498
+      }
+    ],
+    "encoded_section": "449013DAEF852821B69637E7ECB1814AA11E6E911000C35F60118757A8DC6AC94A3145568E2C900258CBCB74090D6AEB5721940B6889ED4C3C225551A6693E6011097D84BD",
+    "identity_type": "trusted",
+    "iv": "FECC334DA28A05283126BB74D6D86328",
+    "key_seed": "836FC0759CA3CBB83B1DC440AAC7EA8832723A1804CCF55FA82B3DE62CF6EF94",
+    "metadata_key": "108F487561268EC3E2139081F2C18B93",
+    "section_mic_hmac_key": "1FAB84D97BFBBA1E719918D561F9F49A7190014740FDD66FD6521884BF997D91",
+    "section_salt": "C35F60118757A8DC6AC94A3145568E2C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ED9AB8CBA38B0378A57060CAEEB7DC37",
+    "aes_key": "85016D4CE263E72594660319A4008F5C",
+    "data_elements": [],
+    "encoded_section": "37901315D82A68468424FC66C3F583A599E184911000484C4A72DC77F3D141DFD0251501313C900421DAA8789829C8B74D5A81CD5E003B97",
+    "identity_type": "provisioned",
+    "iv": "91A3EBC0493D70CC75CD52A15EDE7EE1",
+    "key_seed": "DC9A2935DA138DBA468602F58BA4C10B2CA2073931C2CD76EB89BE9E0C62EC35",
+    "metadata_key": "6B7B939EC1DFD9DFB28A5AF4834D9837",
+    "section_mic_hmac_key": "A37F2450D25ECFEB5F5BA3B902280E75A8CD266E134AFA52489EC23247D191A0",
+    "section_salt": "484C4A72DC77F3D141DFD0251501313C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AA01BEF21050FC2F2E10253E8D1C1976",
+    "aes_key": "EC5750863DC5A63EE6C924204FDA7434",
+    "data_elements": [
+      {
+        "contents": "C9FB1F10A5EECEB78957471B0E9F5DD4F6B378",
+        "de_type": 843
+      },
+      {
+        "contents": "4E43DF33AFBCD1D9659E19B0A90FCB04634B",
+        "de_type": 419
+      },
+      {
+        "contents": "4F3484030125E7350D12E9663A",
+        "de_type": 51
+      },
+      {
+        "contents": "",
+        "de_type": 39
+      },
+      {
+        "contents": "7604411E964954B0FC27",
+        "de_type": 233
+      }
+    ],
+    "encoded_section": "809013E0B47E9EE5B8805FAE10443E6B5463BF911000DB703DF2D395F42E99EA0544CF85C1F790025E4F401EDB54B36B8CBE582AA5BD19FE4C2671F43DAA3F4E1A060E06AE4A7922BB500BF7E27485959C1A3129450249D0909ABE0F1C34BCED066AFF0140262A2007FA37F2617803C68B429540B65383073558874972F06DE286",
+    "identity_type": "trusted",
+    "iv": "9B68EF8ED1D81A8E00D41A8EDF863F8B",
+    "key_seed": "1D03BFEAD804837303B5363C8F089C79B3FAEC4D566803A636C8C566180D9587",
+    "metadata_key": "3F72F934C211CFBDE074CCB0A54DCD50",
+    "section_mic_hmac_key": "331F932E99A5D100F95C6DA9ABBDE9486649FA13D9F40B6075C678B1FD02E42F",
+    "section_salt": "DB703DF2D395F42E99EA0544CF85C1F7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "75A2C0202C54B148B3A8325523E39AC4",
+    "aes_key": "62C0EBC73039A209769197670BA21D32",
+    "data_elements": [
+      {
+        "contents": "1053D13B0CD897",
+        "de_type": 913
+      },
+      {
+        "contents": "08D336BE6750FAADCC063556753748C6D80E7BFE3AA5016139DC9EE23054",
+        "de_type": 385
+      },
+      {
+        "contents": "CA9FA19B1A1D2662477670DBAC88B27E484B45A21A4EB0",
+        "de_type": 78
+      },
+      {
+        "contents": "150352672FC7AD44BA4F3AD0AE8F1FB86B342072982DCA44D8C028",
+        "de_type": 246
+      }
+    ],
+    "encoded_section": "9990130900396AEDFDC487B3C663EED8CEB672911000607C74788B6319F4BEB5D1B4CB02D7BD900118F1E3D46294A4BA21D910380DE516BE171072179B90364446BA39519AA03E30382BAD7560A891FFB6F72D1F17D6C6385762460985DCBBBF3C890F8AAE57BE0BBBA483917D4CCA0A6837669F7B00D710D0CC2E760E3E0B4903CDCF5AC83DE4CC1995FB93278C9E0EE2667A93387B1ADBA08C",
+    "identity_type": "private",
+    "iv": "F2C95E5EC2FA105C282643BA7C800549",
+    "key_seed": "4B6810C7997D7DDE597C9268442CE989762AAD10290801679FF4594198DEA08B",
+    "metadata_key": "83562D42E58C363E0E48127F1B3897B2",
+    "section_mic_hmac_key": "43A0F588C743498AB2FC9BCEB915A1BCD353E02B9AB75CB952A6430C4D6C9062",
+    "section_salt": "607C74788B6319F4BEB5D1B4CB02D7BD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "212440B8E8D36B2CC1327699BFC93206",
+    "aes_key": "6A2AD6F934FAFA71982F6C4AA26A4F56",
+    "data_elements": [],
+    "encoded_section": "379013D5557C5A6CE2CAF81CE036A91EF70A3E9110009DC45FD603A6B020B509B8D9BFC969DB90041218B5589E2AB40D4B0B82061756E4DB",
+    "identity_type": "provisioned",
+    "iv": "F72C452B0E570EB5B9DE952C4791095A",
+    "key_seed": "47B2C609DC4A2F6785197E6EA791FEAFF65BA00A43E5A18A677933ED15386ADA",
+    "metadata_key": "8F209D0C0585905DF5DE92BD3B654667",
+    "section_mic_hmac_key": "D9FA303E247451D08056ADF12DBDD9EC49332E3AC4CA3E301069728FE0063569",
+    "section_salt": "9DC45FD603A6B020B509B8D9BFC969DB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "433465189236D09078373B8ED0CCCCAC",
+    "aes_key": "E43BC17300BCFBEB25108453100382C2",
+    "data_elements": [],
+    "encoded_section": "379013A40450E97B1E7F305B04EEA1CC6C6FF7911000858846A0F9FD9E2E0611D97BF2EF06469002A3D2D64941BB2C16BE63E6233FA8BBD9",
+    "identity_type": "trusted",
+    "iv": "5FFB8A197BE6260CBE3EF3F5A69D6F9A",
+    "key_seed": "950084CE1A17C18014492E2D819E1A4A8918E418B5D793D41CE40AC01962AB45",
+    "metadata_key": "F3105517DA032D58D69A3604C768A207",
+    "section_mic_hmac_key": "81F142D0B4A95BBF07A155889C7B253A70BE5AD20EBEE9E38B730A9201FADD47",
+    "section_salt": "858846A0F9FD9E2E0611D97BF2EF0646"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AE407D2A8A6A0F933972D7926F06C555",
+    "aes_key": "6684D1C9DA338DD00813CE3BACA74FDF",
+    "data_elements": [
+      {
+        "contents": "BA4B31050C802CCFD9F9",
+        "de_type": 261
+      },
+      {
+        "contents": "A07F15",
+        "de_type": 533
+      },
+      {
+        "contents": "3D59A78F9181304C3974C28F99BA56FC",
+        "de_type": 680
+      },
+      {
+        "contents": "BF97709E54F7",
+        "de_type": 452
+      }
+    ],
+    "encoded_section": "6690134F1022868C775755B32E82021EA423C39110001F7DE96605E9315D3517A53C620C9DFD900485ED9FED88BAEA7D0F7F2649C5C60EF3A8B1985EAC9CA0670D89222827DA233F046290021C3D90C872AAA85B5DAA376E3EF6359C0B865FBDCB1DE9AC211D91",
+    "identity_type": "provisioned",
+    "iv": "7CB6244938A943AE0C2223EE5478D9F0",
+    "key_seed": "2DF4F998B4046363F13903E444563666752112E7A50CCA849AA20A1B632BA11C",
+    "metadata_key": "81D88DAABD6499A41CC39A0B69C88149",
+    "section_mic_hmac_key": "2579AC31B40E6259D86560A179396A8C8D2460B065479AD84D1672A8E6AAF100",
+    "section_salt": "1F7DE96605E9315D3517A53C620C9DFD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6BEFDA99ED6531BCC16097D12D8E054F",
+    "aes_key": "5EAB15A140D70A229BB83A187E9F02CB",
+    "data_elements": [
+      {
+        "contents": "0F0E43C4406FA2936FA381",
+        "de_type": 236
+      },
+      {
+        "contents": "08C74C0A5E82AB",
+        "de_type": 569
+      },
+      {
+        "contents": "B739FE96118484",
+        "de_type": 911
+      }
+    ],
+    "encoded_section": "5990133C1C7C478A9872741B2CACDCE6EF85F59110005F03C93641025F2C7C9AFE7A14A9CCD590040783A8D0F38BBB63558E4FD0359A1ED0479EB554E8FB8D695366CEAC447857027FF727D304764FE2A2033DC87C56017725F3",
+    "identity_type": "provisioned",
+    "iv": "3DBA7081144B735EA26C11843C84939A",
+    "key_seed": "A6E1BBB65242EF0297CFD3F36A26E92131DF8AE1124785A313A03CBA129A5708",
+    "metadata_key": "B756D4BB650054A9B555F945179AC0BF",
+    "section_mic_hmac_key": "672FD0220AD1CE18CB5C2865E369343213F98286F70F932B6864E77878042155",
+    "section_salt": "5F03C93641025F2C7C9AFE7A14A9CCD5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "936F85512A5DA1B653FB8A2DCF27EBF9",
+    "aes_key": "212B797347439C09143EDEE8D49D1145",
+    "data_elements": [
+      {
+        "contents": "4C46272C464F1F327ABA",
+        "de_type": 300
+      },
+      {
+        "contents": "90DFEBBD2FD42483D8",
+        "de_type": 576
+      },
+      {
+        "contents": "9C67",
+        "de_type": 590
+      },
+      {
+        "contents": "54EE",
+        "de_type": 237
+      }
+    ],
+    "encoded_section": "5A9013FEC4DE90AE4B04DB998D69D7B9DAB3B6911000071925257522B40B840ADEA964E0F8549002A053445506418A7BF78DB30EAF544AC34AD6F4B2298373091CF13DB14519C86BEA5E5241124929BC2DF6F87314D8C22DE90D9A",
+    "identity_type": "trusted",
+    "iv": "2575BE3DB96C9E3EB6C7635C6F6B0E7A",
+    "key_seed": "F57E01ED4A19496DC227DE1B016B09C1EBE135D484ED8B80DD00C6EC31ED5B5D",
+    "metadata_key": "DEC2CABDD66E55B71A83AFC163D7FADB",
+    "section_mic_hmac_key": "4D01BAE5168047AD89DA9A7126549672887F9CDDA5442E356BED3D6B00AAEBFD",
+    "section_salt": "071925257522B40B840ADEA964E0F854"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7E7DA96580420BA0D659EC43121322D8",
+    "aes_key": "A8FB66F215BC84C5FE083146B193AB8D",
+    "data_elements": [
+      {
+        "contents": "FFB586B557659859",
+        "de_type": 397
+      },
+      {
+        "contents": "4263",
+        "de_type": 671
+      },
+      {
+        "contents": "E0886DD5892A663968BF0F850FDBC48C32E2C0C1268AD368AA794D",
+        "de_type": 612
+      }
+    ],
+    "encoded_section": "65901376D02BAAF38EA4CB4BDD1C73BC3871AC91100051AEC209767B8CAA7980A3BD7C3FAFF29001AF29552C93754001FD0D837E2314FDCAAB5F3F83221EBEAA38EE14E5DEB24E81B4DD949B42A0A8AF3FA573DFD9B28FF81902561D21E508C845551668B4A9",
+    "identity_type": "private",
+    "iv": "17EBA64E62386CD3B3A3DFCAA57C8990",
+    "key_seed": "598D2245CA116C288DD7F884902FD6966A3EAE9F42C0836BE31CE29C29AE3EF8",
+    "metadata_key": "05686049146A99EB4A1FE87216DCAB1B",
+    "section_mic_hmac_key": "6FA0EF16D9CAA4AC317B88DC23341FDB92AF5B2B4EBAB09202AB3CA30C38CB75",
+    "section_salt": "51AEC209767B8CAA7980A3BD7C3FAFF2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4E5974753C765E7C366AE0ABD13B6032",
+    "aes_key": "B33B94CD44650B66F7ADBC2EE729BB6E",
+    "data_elements": [
+      {
+        "contents": "86DD5BAF9A7C3DDD8447254F3203CA9E",
+        "de_type": 588
+      },
+      {
+        "contents": "AD60D51F76FB590E2E783C7120C160E0DC15543848D74BD898BF21",
+        "de_type": 887
+      },
+      {
+        "contents": "46F5356343E961455A3F74",
+        "de_type": 584
+      }
+    ],
+    "encoded_section": "7690133360E0A798FBD58AC2C9E37CEA3A383E911000FE2C7ED573CD9CBA19F2AA6AFDD623299001A71787DF83BE1DE49338E1ACF15530E60197A15D7D3007AC410A6D443BBE7F7694D2B54E3FF5BDB62ABF52F85A5180C014FB86A8DE0315F7CF97F2FEA63E21EAB45758898AD526D9AB8B38726E9315",
+    "identity_type": "private",
+    "iv": "06E07BBF2D5201688926629511421FDA",
+    "key_seed": "66E4D540348E429F58155175C858A8BD1E7CB0999B49781D348A321AA6138173",
+    "metadata_key": "48A307411309490BED28B84E99A5557E",
+    "section_mic_hmac_key": "1BBC012E6C6D7955641BC6D4D06550739840EAA718C15AD3A19816957E58528C",
+    "section_salt": "FE2C7ED573CD9CBA19F2AA6AFDD62329"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "74CB68B7EA1E95E04B832182154B0A91",
+    "aes_key": "B022EAFEFB9FF1B5C2F98A40B9ACC3D4",
+    "data_elements": [
+      {
+        "contents": "7E37E828730AB3F87C1EB99B8E",
+        "de_type": 787
+      },
+      {
+        "contents": "9135DA70E02D2232DED4F3F5568A0371",
+        "de_type": 420
+      },
+      {
+        "contents": "C89D3EC94DD71F",
+        "de_type": 236
+      },
+      {
+        "contents": "07F52CFFDEF1D58177543155723441BEDF06D3",
+        "de_type": 980
+      },
+      {
+        "contents": "CEE968AC8F1B700C2BB3019A4E9472CA7E",
+        "de_type": 169
+      }
+    ],
+    "encoded_section": "8E90134F49609F3C0B6286BCD6BB68D9F4E24E91100052CAF10EC936B174958042A90C112E5B9001ECDBEFA0B57D0456BF272B7A1D20269C96F6B666647AC239FAED67E348F463D9B7DF48FAF7A27BD87A9CF5E6B66F7AEE194A485F76350003AFFDEE337DDFCA1DA36D0CC1BE171B72A48C70809218513429B567E3465E8FF5E2033367E102CA20AAC3F702B0DC1A",
+    "identity_type": "private",
+    "iv": "A5C0BD5B8496CED016A2AF10A6F91FB1",
+    "key_seed": "BFBC7FF2263EBED86F9C96A09FC127CE977C9239CC08316F8287B00DBD0B3498",
+    "metadata_key": "A832A816BD5B77EDA8EECCA1EBABB014",
+    "section_mic_hmac_key": "710B9F30D232D15E9DE12974DA748A32F65D122AD460B292ABAFB60338BBB60E",
+    "section_salt": "52CAF10EC936B174958042A90C112E5B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BCCA0E7341FBF76B2B5F5BA041CF1E5A",
+    "aes_key": "D12B503A2F126AF19D0AF97566785ABF",
+    "data_elements": [
+      {
+        "contents": "64749203BD66A2F9ECBBE0D588092B4354",
+        "de_type": 19
+      },
+      {
+        "contents": "C163763F7A4D635495BD26B704AA19D140DAA82EC06DDAC118",
+        "de_type": 908
+      },
+      {
+        "contents": "60B0B36271380D99A2A25F",
+        "de_type": 222
+      },
+      {
+        "contents": "796D6F2B775593F100B9",
+        "de_type": 760
+      },
+      {
+        "contents": "3A0B8533F323DE0B7C2B5DE29F34DF3D265C6CE5190AA0F958811D",
+        "de_type": 994
+      }
+    ],
+    "encoded_section": "9F90136082051F8CBEAA0CCBC6113961AF0C93911000B90142AFBFD356D46AC2B2720D1F8481900205E87BF19BCF1B2CFCED4986FC2A31A121106BDD978C20BC7E027FD26CB2AA0052C1DBB34B42F03C324129015E97C6FE9694ACE4FD254641272F6873CA455E6863D3025F03D209F1C554D250F0EF5BDC10CDCD01CF4831D8C9F30EB2586D41A2CC2D6CDECF4F42AAC02C1B985BE84A98831A26B00B27596A",
+    "identity_type": "trusted",
+    "iv": "4765E55F52DA037253303C93F66A6DCD",
+    "key_seed": "50CA1651529AAF0D0E3874C19E7EE47519CBEEB16DB1A7EF99F69315502A02C6",
+    "metadata_key": "70AEC06B61DD252B459F5BE7FC72F7E8",
+    "section_mic_hmac_key": "598AC0D450A9FDAD2DD86DAFDA3011B9179E56DE268CBD38AB8B9B9726B0B2D0",
+    "section_salt": "B90142AFBFD356D46AC2B2720D1F8481"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2C14A845A98E4C0EC1D3D37E7770C558",
+    "aes_key": "A68054A9CC008CCE3091CECA4B305A11",
+    "data_elements": [
+      {
+        "contents": "DCB2B2ABBEAB26EA71BB01D24C",
+        "de_type": 12
+      },
+      {
+        "contents": "E3109D",
+        "de_type": 799
+      },
+      {
+        "contents": "EA153371A83C3827DE52AF886B3ABDDC5601",
+        "de_type": 223
+      },
+      {
+        "contents": "358C051EF89D4B2A70A66557C0E40523E07CEE5D702602A63301",
+        "de_type": 466
+      },
+      {
+        "contents": "1E3264B6EDF37242534C9123818D649D38695C4AB285727F7AB64D6D33FE",
+        "de_type": 662
+      }
+    ],
+    "encoded_section": "9F90134CFBFA0A7E0F1D95CE9E7DDE4D9D0F119110007C677DA19284373DF76BF8DC23F62A2C90018ED6D11D434C81E0813AE27A8A08FED219D8D2D509FBE4D738C507D35AF118126F68CD7A0CBDB12D6416E38172D47F328DD389DB4AFD0D27028366DF30755D45C06DA90E6A00EE097C5354215144CF3C39D600112B8853736303B3D5589D9690891FD597AFB197D8272C0FF4C4774BB0EE0E8BBD16981621",
+    "identity_type": "private",
+    "iv": "0BCB734C4A958CAA0BD6818BFC616225",
+    "key_seed": "52E8480972975E4BA2FE7605453EA8349E9BC5A94E29540433F860556F01884C",
+    "metadata_key": "8FC6598BCE8ADD3790D7EBDAF49D0103",
+    "section_mic_hmac_key": "ECCEEA279B282C887A23EC16580BE97CDD50135DEA36DCAB5DF44156A29C1607",
+    "section_salt": "7C677DA19284373DF76BF8DC23F62A2C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "229EEACD212DC405EE4811F9A977F2CF",
+    "aes_key": "B650D65C7FBB23472BB72579A77181E7",
+    "data_elements": [],
+    "encoded_section": "379013D438766EAF4C661EDD88BAA0FCB42A1E911000855BD2F01023E6A57B6E71DD49DAA2AE90041D6AFAB5B808B58855F9C7AA4F4D7EE8",
+    "identity_type": "provisioned",
+    "iv": "9902444F8F3857B3E0BEA260972F28B6",
+    "key_seed": "80897CE9046AAA4A739B63E163EB437BCFF71E3E3653B6EF46E3C6AA06D7A121",
+    "metadata_key": "34683AD177E872DCBD2A5E7E63EE0A3B",
+    "section_mic_hmac_key": "BAB117F9C1BD11C895F4602EE9EF166CFDB9267B3954B5CB5D84D4737676E3E5",
+    "section_salt": "855BD2F01023E6A57B6E71DD49DAA2AE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A0C8512737C3A026EA6F37CB99230EC",
+    "aes_key": "9E758D2B63DDD9875440E40B527116E7",
+    "data_elements": [
+      {
+        "contents": "EB02C160F935EC11145161E1CE4018A85DC6C6B87E",
+        "de_type": 947
+      },
+      {
+        "contents": "",
+        "de_type": 273
+      },
+      {
+        "contents": "513989E8F256F4BB4833E9",
+        "de_type": 980
+      }
+    ],
+    "encoded_section": "60901342D70D1E94399CE4FFC098059653E5939110001D9723326BB9045D0FA8AD2D055AB7E290013A4BC24317039BC6F6742EDF1BE1FF740DDA42AA9D246BFDB1004EE8CCADE443AEDB88834895F0E1DE5C71512B93FB850303B6C36838EBADFC",
+    "identity_type": "private",
+    "iv": "A498D9B0ABD9DF7BAE1C56730B8EE99D",
+    "key_seed": "007973A9512305072C4B09ADE63EE2B1473CC8800EE101C3B15B7601A53CA570",
+    "metadata_key": "7D44DCD6C2EAC7C368BF131C16F56757",
+    "section_mic_hmac_key": "FE60C7116D645B0830D381EF145EEF0D76CED5639BDD5BE55BD6796495102AE7",
+    "section_salt": "1D9723326BB9045D0FA8AD2D055AB7E2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AA5C563E4C1823D73563F7C3706AFDB3",
+    "aes_key": "C999C60B91C13F5DFAF5217C0D5B5C34",
+    "data_elements": [
+      {
+        "contents": "A5A7EBAC14D1B41520E40AC51864A16754521D4A7E54F92A7D",
+        "de_type": 88
+      }
+    ],
+    "encoded_section": "52901375BA880AD3ED961F78870D04157CE0E6911000EE361CB440B15CE82D93E0C1DA85A9379004C2FF0F23A2FF140F44ADBE468A1A74B9F702645EB8D1D9A8BE0BC82F88D404479CE665DFF4AE98007DC791",
+    "identity_type": "provisioned",
+    "iv": "538C25B23A3C86BCDA97A0CFD35A6FC6",
+    "key_seed": "ED88849FC0BDA24F6E40D9DE41DA1E13D489B4532491DC76DF1FA6B2119AACB7",
+    "metadata_key": "FB3E3B0DC3A793B84A8BAA8B76C66339",
+    "section_mic_hmac_key": "8B61AC0A77B70BD562BECA6B9EC68D3AE19A43F75E7C20DCBBB772E72335031F",
+    "section_salt": "EE361CB440B15CE82D93E0C1DA85A937"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "619C4C8EF05A933823C2D65A31B92B00",
+    "aes_key": "9A57A7F7C65D4129320E88946A9DC223",
+    "data_elements": [
+      {
+        "contents": "CE0E4BE0690C0A5BF044",
+        "de_type": 831
+      },
+      {
+        "contents": "BCA982D5431D61B73230868E555B97C3464366E2A4267F64",
+        "de_type": 200
+      },
+      {
+        "contents": "C82659D54B9B19F6C502A2",
+        "de_type": 338
+      },
+      {
+        "contents": "45B4B7C9A022B79136DE",
+        "de_type": 197
+      }
+    ],
+    "encoded_section": "7A90136D731B5176129F207201B4A5D0F6673A91100096D3507A4EC35496932F887BD27700429002BD18C7C64DBAFDF85D34F178917F923C0656AB4C77BD56DA1FDFD011885B997312645D52617E2F428FAA6CBD6CFE285AC1713EFAC1A641DAA3856D5F455D08BCDFE7F308E22A41706C5556B5E8996955934EC0",
+    "identity_type": "trusted",
+    "iv": "8D39404C79316D7EA939A237B0DA32A8",
+    "key_seed": "25C985FC227F539121AA167BFA906D05760D8AEFF52102154CBC785FDBD64514",
+    "metadata_key": "14318D2A0E05B5E1A77A50CDEABFA81F",
+    "section_mic_hmac_key": "123A5EAAE2B67C4169444F1235E071BBD36804622722A7DCAB1A321F22507A81",
+    "section_salt": "96D3507A4EC35496932F887BD2770042"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ADA623A6380A3F4522EE69542E99D25E",
+    "aes_key": "331F18CC2ECBE380C1590D5DBCB4E970",
+    "data_elements": [
+      {
+        "contents": "0174A015",
+        "de_type": 588
+      },
+      {
+        "contents": "9D5A034F0AFBAF",
+        "de_type": 17
+      },
+      {
+        "contents": "E0AAFAD94D19113E64B96863147869E9859DE50FDE4270216231B3184D",
+        "de_type": 99
+      },
+      {
+        "contents": "F24EB6B5AEB4FEA479F5083B7F028FA4B5B8D4DA82AE263A34",
+        "de_type": 356
+      },
+      {
+        "contents": "F8911686E780BA27D8516A00999512CFA3BDA6B6",
+        "de_type": 955
+      }
+    ],
+    "encoded_section": "9990132880845C490110E6A5557732B923E92D911000621BC78DBCDEABAF66E6D1402BC169059001AB11D8A9FF159246AF50E950BD8E400E4D615242ABF1080B0B75A379AA4368ACDBCA95F2010F3841D150725F8A670CA3FFE83412241EDF6EC0C12D1A5CB71D15F9C121E2B378017E5D61F6C1036A8B25790B193380C3897B66D488FA4DA297E39DBB71D3F430B4035F7EBF539DF3F5296380",
+    "identity_type": "private",
+    "iv": "C98BFAFEF62296B28CD51297CF787F52",
+    "key_seed": "86109574BBFC42BC1D620F4EA1018967D9B48E655E5C6DFEC0FB6773CCA774E8",
+    "metadata_key": "8D07E48C35FB78B8A5513345B3C40C9A",
+    "section_mic_hmac_key": "70AD2654896DB69E49246717749BA8FE8262F0A9EEBEF5D947BCB5253224BE17",
+    "section_salt": "621BC78DBCDEABAF66E6D1402BC16905"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "397D6D6B5613F8AC2FAEA44797C0A638",
+    "aes_key": "632129B34E30FEC65D800EA6BE5F7A61",
+    "data_elements": [
+      {
+        "contents": "796EE13738E80BD71145D729",
+        "de_type": 756
+      },
+      {
+        "contents": "1D7E9E3DF4EBC7615F0923B7C6352829DDD5E4E295F9695E3E75",
+        "de_type": 960
+      },
+      {
+        "contents": "C9308827A08A7B53E73C3D8FB9DDC3A9C61E50425623FFF66B7DAB5FA9",
+        "de_type": 391
+      },
+      {
+        "contents": "3740A8AA731F460FCBF8D08E17437A92EEBE2554CA90D8E5B063165D199A",
+        "de_type": 666
+      }
+    ],
+    "encoded_section": "A490134F9B86D148E83C40F686AEA68DECE504911000FFB3EB0B6BBD03AACDE886D4B64963A790046E990FA420DBE8370E20B582D0F390FC2EB3B4027A44D55BE09DF6AED7C73280D7B271397917B220A8E81422893C7FD705E02ED8A0D672DEF820343A46C18FF08611639060A1324C24DEFC5B4E8BCE9F9CBAF58E48EAC6DCFE80A916FB7CDE7582422D06E9287896BF6F4211D2395A5028690E94F6CC2136252D8A7105",
+    "identity_type": "provisioned",
+    "iv": "5276C1A1ED1B081D2A2A6F5DEA96F665",
+    "key_seed": "D95BE815CD7B0FD68B3E7446B8B2D79E348D548C6183AAA1BC4AEA344738987D",
+    "metadata_key": "25302242FB45A172D3B3FF58EBB4068C",
+    "section_mic_hmac_key": "CF8906BE97A01B93944A42FB2DB4610CD87BD1678F8C88F0486D9BC527FC41C4",
+    "section_salt": "FFB3EB0B6BBD03AACDE886D4B64963A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AF24B060AFFEAC233E864603EE00A9CD",
+    "aes_key": "D93AAFC5986BC8683E27129BE1E82563",
+    "data_elements": [],
+    "encoded_section": "379013E9112895D9EA079C03219B88C45A925D91100033555799B45F9C4B35FC02644ED660DA90026A0D952277833EE72223017DD0D09AF3",
+    "identity_type": "trusted",
+    "iv": "768BFD528B829A1EBA49204A0CCB4B02",
+    "key_seed": "970EB18227C61CEC00A2A05F5263593CB7C0495397DD0F533DE7CFDA67180147",
+    "metadata_key": "122A3B297DC2A96CDB5B3BBB05D6B536",
+    "section_mic_hmac_key": "2192C8F4C87ECD29422DF7A686A1EE7DA0943B83F89D81442550BD786F1F648B",
+    "section_salt": "33555799B45F9C4B35FC02644ED660DA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "82B9B8A6DE7077940685F5FAA7DF422F",
+    "aes_key": "7BFD4D7DF1E0E9C478A06570E9B9CD94",
+    "data_elements": [
+      {
+        "contents": "ADB48AB0F67DA8D5A9618BA4253EAAE7D39E310D5BD37BC56AFCF41F",
+        "de_type": 461
+      },
+      {
+        "contents": "9A86354A04BF30E00DBE8C414A9FB24C86C8EEB7FC83E460",
+        "de_type": 936
+      }
+    ],
+    "encoded_section": "71901316B26D715D337B501770721CCBE8D13B9110002C99BBEA9A300BAA95863AB8AB9A9BD39001FF44AFBB9D1C0A28266B562AE0E7B38C1BDA2D66BC2DEED15F33F3034E934A9D7FF8E3718F68A23361EB574956A6D723F38EE0575D4A922AD0DB7DCECAE52CF2C44BB26E1E71DC16BCAE",
+    "identity_type": "private",
+    "iv": "7718D52D9D5CC851A7B2C047E8E56916",
+    "key_seed": "2C2905CFE0366D03717F4F8084FEBD30602C7CB22BAE0F5E8AC4902C762AC880",
+    "metadata_key": "35E0C0C417D995CC800143D9A392B94A",
+    "section_mic_hmac_key": "A8AC22011356C040DDDD1830F1881474FAE157EDF4D0129D5DC616244F495E51",
+    "section_salt": "2C99BBEA9A300BAA95863AB8AB9A9BD3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D49E9CD1D20A4B4F340A593D6BCD93A9",
+    "aes_key": "A8BD4420579EA3F0F63C1BC03F9F6893",
+    "data_elements": [
+      {
+        "contents": "3B986384C79F675F",
+        "de_type": 650
+      },
+      {
+        "contents": "",
+        "de_type": 640
+      },
+      {
+        "contents": "40EB0279736AAA9A100E2C26941448AE2277AB",
+        "de_type": 990
+      },
+      {
+        "contents": "",
+        "de_type": 470
+      },
+      {
+        "contents": "91318CF7EE4B2E35241F",
+        "de_type": 694
+      }
+    ],
+    "encoded_section": "6B9013DDCFA87C6ECA5D9778AE29ED4AFDE2FE911000182084A74C01395449B1A065B30D8080900433A6E91CED224E8632C5205DBE49C3C810CC5A826F3F058111AF85E8729E0900EDEAFE67BA46EBDD09A8D9390F47EF040498143310AB8776ECAC80461AFD91D2A5318B82",
+    "identity_type": "provisioned",
+    "iv": "134179E764FCE0DF7ADA95F934D30276",
+    "key_seed": "BDF4556FC6C4D53488D013E20A98C17524875EAD68B64ED0BE9E0EB9DA2B7BBB",
+    "metadata_key": "F4DC6D1E64678F9606BDF71B0EA52BB9",
+    "section_mic_hmac_key": "96D8CA32AD841897F0AE2C292B9359E901760A16B9FEA999490FA1CC80C944E5",
+    "section_salt": "182084A74C01395449B1A065B30D8080"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F6A8AA713174F7D9C61E5328D2FBC88A",
+    "aes_key": "C2221BD4696591A3CEB7806807E54F5B",
+    "data_elements": [
+      {
+        "contents": "BA4C375C376640ACC08AA1864AF3BE5AEB9A59",
+        "de_type": 667
+      },
+      {
+        "contents": "54F3E1E4DDDA",
+        "de_type": 390
+      },
+      {
+        "contents": "3F3851F502FC37945B512B2DA0398A6AF6299C08DF21A49A",
+        "de_type": 664
+      },
+      {
+        "contents": "BF39F68C7BECA2FA6D4A56E4F01589339D619761",
+        "de_type": 425
+      },
+      {
+        "contents": "53B006EABB64D1206347779AEC7E47CC",
+        "de_type": 177
+      }
+    ],
+    "encoded_section": "9B9013E2396E53181A2D3263100883209CC1C2911000A30816D0EE95944953EAED4DF1C8E2069004407CB081B3ECF537ECDC12A2C42A866F9CAD0593863B3C5FB9425336A46BEC045CA6EFEC8439DAAF4C7107C4A09A5678FF4787379C733C9D71E520F141F7E1C9D048E2C6C56C0B7E1AE04A11CBB9EC7DAD91F8B8B3A783DCAB0CBE44B354B19F2D205E3550BE0CA3E25FB15F8368D0AD060D1BDC",
+    "identity_type": "provisioned",
+    "iv": "49DDF471C624612F805C254CACC512DF",
+    "key_seed": "9B73B7B20095CE1A1B91186605AFA5C48463E2A93E1F3163AAA0DC4ABA51D273",
+    "metadata_key": "7755D72850CB417465414B8AD50BC492",
+    "section_mic_hmac_key": "E15A4CC4DC3E2E1AFFEE0D584E82999BDC30D6BEC9C1143A236A4354598E69FD",
+    "section_salt": "A30816D0EE95944953EAED4DF1C8E206"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B7820F847BAB14663F5B9729C770A903",
+    "aes_key": "ED1C41116C53D174E700C90465D29FB8",
+    "data_elements": [
+      {
+        "contents": "40980514A48D57566E6CEDBC1F13125EBF242B6BE09C",
+        "de_type": 982
+      },
+      {
+        "contents": "31CC3F9A09A2163C86581D7A795A2C7D3BE9AFD63F00D797A4",
+        "de_type": 304
+      },
+      {
+        "contents": "6D85FA25468C5164AF6E8D7A5CCFE94DD7759B684850E0D007",
+        "de_type": 633
+      },
+      {
+        "contents": "191D0F07EF",
+        "de_type": 686
+      }
+    ],
+    "encoded_section": "90901336A6FD32C63BAB8221AA293FA3979ADA9110004FBD36EB5BE03713867E3B3B06A4B53C9004C4F0B8515D402330041A6614E4BA859F1A6444377518C0289C14D01EDEE0939FA2BE910809ECEBDD265B2E89B26C60B42428084CA567C85EB2B76C8035DD8B8787E94AB3C760DBD281CD84D0C8CF8F281E486096E34230F0DE44456677971EDCC5A2F5DA4E0ACFBD94",
+    "identity_type": "provisioned",
+    "iv": "C157C8C8BAF421A7020E0F5AD4399A7C",
+    "key_seed": "0D5FD7A0EB16F50FB1C3CBB0ED4EFEB3C022AC15566F7481FBD9DFADF9BFE596",
+    "metadata_key": "26294EA549B9B814C43F866176D22280",
+    "section_mic_hmac_key": "676112EF0807098F45519595990076B83DFCBD0E55B9414225990D9A6046FCD7",
+    "section_salt": "4FBD36EB5BE03713867E3B3B06A4B53C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4A8D0B8F6B7F9E6221EDCAB57C36BFEF",
+    "aes_key": "B9A82BE9DF86E2FCD72839955485B828",
+    "data_elements": [
+      {
+        "contents": "2B0FE4B16D2740AF13A500",
+        "de_type": 209
+      },
+      {
+        "contents": "BBB807A186D2C3F87855",
+        "de_type": 999
+      },
+      {
+        "contents": "8A34F77DD5A61121C4917A48AA085776ABE1",
+        "de_type": 323
+      },
+      {
+        "contents": "ABC7CC",
+        "de_type": 138
+      },
+      {
+        "contents": "7A5C43A5C1B70C0403E055FCDFE81A5297DA1FD729C47776DC5D5F",
+        "de_type": 499
+      }
+    ],
+    "encoded_section": "8B901302D13FE7AC33AFF3924F23BB90E9D53891100058FD054F518764F7FFA68EDC5E76897C9002C8019C9BDB34ED694F527F1A74A171D4DB910B76FD198A047FF0A723356BCAC3F103689FC91F58B627B3E1E761849E237D9F28D154025D4153CA2D22555EF4351328FB3B9473CD12972BB2B2EACBB1B8612525B21BF117E283394DF7A464BFF56D7CE298",
+    "identity_type": "trusted",
+    "iv": "8BD5C8CF29932090561C480D4AEB8E36",
+    "key_seed": "321AF261DCA753BEE3CBAF5D7DE64DCBFB04C0585F7FA27D20D11CC0059712D9",
+    "metadata_key": "F0BE3BEB618DA219C8DF306367CD47F4",
+    "section_mic_hmac_key": "00F983CFCF9D1F0F4E8D74A6FA26E6F8A13E7EC53388C10E81EF31FFECAEEE87",
+    "section_salt": "58FD054F518764F7FFA68EDC5E76897C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C7BA44249D8BFABFAB9B54F90B12F222",
+    "aes_key": "A56D794C950BB5A50D04EDB2699B967E",
+    "data_elements": [
+      {
+        "contents": "773856891169289C79ACE48945E05618FC738071",
+        "de_type": 799
+      }
+    ],
+    "encoded_section": "4E9013B45A17060677E85EA10D75DDE8C12D3C911000CADE7094733167FAC6390816307D14159004DE8DE98CF28805D142425AE5F24F616AAB3BF83AD109A4F753E55F37D7AC1E6FCF6534806D9740",
+    "identity_type": "provisioned",
+    "iv": "BD0CD0756F90453E808F180E923758EC",
+    "key_seed": "E0440C8BB83D2E4A5ADFD1B123A1D55AE0C78ED8F14C14DD9CF1AA5B3CF3D650",
+    "metadata_key": "5CA211769EFD29892C0058779633355F",
+    "section_mic_hmac_key": "36CE6C896028CCE6845B791384FFE622B9E8774F12F44C00CF410FDD543D7EE1",
+    "section_salt": "CADE7094733167FAC6390816307D1415"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EC717CB0D92304E7C8A5886A78DB5034",
+    "aes_key": "7E9A8C8DE80E37F263D24E3DDF281A86",
+    "data_elements": [
+      {
+        "contents": "34E5A87FF8650308",
+        "de_type": 954
+      },
+      {
+        "contents": "FB132CF4999537D6DBECC9CE4D88BC0E0C66437891091F49E137569E20C0",
+        "de_type": 277
+      }
+    ],
+    "encoded_section": "639013E9DEC88D9D254BAF7E818338DB5B69699110006B1150D7267D5DA8573E97C7DE07E1A89004FBAA70C03E33206A3417BD94DB9CF1B17A1C2B7968732BE4326A647FE22B4F2CEFF689ADAA4B278FA37931CB60D22363385B4816C4736F2A05A6EE28",
+    "identity_type": "provisioned",
+    "iv": "9D13A28391F3EC75EAB2C424E505FD99",
+    "key_seed": "CC5C727CB341CB25BC5AEFBC7D49177263FB4978B4E4E5186BABE100E5F3212D",
+    "metadata_key": "6616F3E1AB67EEAAB018CAF0368EE6EB",
+    "section_mic_hmac_key": "BB1DA65CC10CE54179F3E39CED7BC4A00CDE225FE15A11E2A0B26A01C2EF00AE",
+    "section_salt": "6B1150D7267D5DA8573E97C7DE07E1A8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F817848433DAE38015DA750CED78183B",
+    "aes_key": "020009EC448EF1E4CEB74B078296868E",
+    "data_elements": [
+      {
+        "contents": "5946AA9A7E7F78583A2593221E",
+        "de_type": 819
+      },
+      {
+        "contents": "F3FCAA87BBFFBB6DAC6D",
+        "de_type": 396
+      },
+      {
+        "contents": "7616F64C32BEB7A3",
+        "de_type": 848
+      }
+    ],
+    "encoded_section": "5F9013C1CEAC79565703663F399E1968C2470D9110007BD86A32FF05C5A3467AC4770AD53060900405E742BD974A141B76639EDE0CF231F727BD196A8C863E60EB8B78E51632632F66AC501B2AC22B50F5EC417B9140C81BD8DA0070E2381DAF",
+    "identity_type": "provisioned",
+    "iv": "69D2FD8DE211E9C5BB873A2D7D2B6CB9",
+    "key_seed": "A0334C2F26179EF4E774DCB7CD5A391CC98BFF20B494B723245929CF735448DF",
+    "metadata_key": "9851F80BA3762814A9E72D468DEBFA61",
+    "section_mic_hmac_key": "15D84B9D02BDE9C0C9DA6AC3EC67292ACD5D8630CCEF4641DB19DD4CC8D895C5",
+    "section_salt": "7BD86A32FF05C5A3467AC4770AD53060"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E40CA7C0648E07D9192133CC75F0615E",
+    "aes_key": "28081717F56B17979C8FA959D1705DEA",
+    "data_elements": [
+      {
+        "contents": "3684845D716D939E",
+        "de_type": 119
+      },
+      {
+        "contents": "5947145E79893A962656DB4C59AD50EEAD01F1",
+        "de_type": 727
+      },
+      {
+        "contents": "5978AE5D485DCFFB9867D2F0",
+        "de_type": 641
+      },
+      {
+        "contents": "962B9E9370A4C36C43FEEC0528002B35ECC2ED",
+        "de_type": 938
+      },
+      {
+        "contents": "EB29C1",
+        "de_type": 186
+      }
+    ],
+    "encoded_section": "829013293A19BEAE341B678E05CA9E75DBA8BC91100057B76CE356A06E76CFA8BB68D107FDC39004037C94F1AFD8F33D737F2064155467C3207485B5F71525974A812736FB82850AB38C76D001D5E5CD0B4328D0671D515BD3A96875EE561D2771F74DB2AFAF4EFABB0F0F12B7A17E237FB068C81260B34C1A1BAF706519F3803E23C0",
+    "identity_type": "provisioned",
+    "iv": "40F169746958A56E53FED40BF97B2393",
+    "key_seed": "D49D918900133822B62FD10A29B94E6BE3A2292AD816F2E70BDBC54D028FE522",
+    "metadata_key": "D4AE0FE4DCC55363A8466CF3B4F51435",
+    "section_mic_hmac_key": "1D49C1AD9F730E0160754250778275FFD5799B819699A89B58EF2B3A41903A8B",
+    "section_salt": "57B76CE356A06E76CFA8BB68D107FDC3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "757EE18FCEFF081F4652936C61C98FA4",
+    "aes_key": "402C0F4BDF07820EDD02DB5D70184906",
+    "data_elements": [
+      {
+        "contents": "16023C5646467C0D21089216EBCD2C5413BCEF76CE991FCF661FC4D0C699",
+        "de_type": 362
+      }
+    ],
+    "encoded_section": "589013F1FC637B2DE2561AD1B961848A1C31DE91100012709EC52C322E758DD1D4B3347B16299001DBD653A91D6CFA3EB9D465D9633FBD9D86F1ABE4C9CD01BA0EF5AC6DDFD32AD069F6A6AFA8B424DE31F9D096DDF88B5517",
+    "identity_type": "private",
+    "iv": "94F193ED7C3685CBF02FBCAC1BD8AB90",
+    "key_seed": "01466D478F60FB0CA89BE406E370ED7BF41C0BDC1B4E3C00A21D639968FAEC72",
+    "metadata_key": "55850F8341492920ABD7B9F783E48899",
+    "section_mic_hmac_key": "969F5321DEDA0678199C25C7FD9428994949F8553438F227114C2E2E2DC84599",
+    "section_salt": "12709EC52C322E758DD1D4B3347B1629"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "42BBB939A0B851EBB455B0B9CC6CA629",
+    "aes_key": "3A239E17B2D8469E47B47F8AD8026A61",
+    "data_elements": [
+      {
+        "contents": "A85630426C2034091E33C8805C8470161D9E03FBE5FFC6DA16",
+        "de_type": 1000
+      },
+      {
+        "contents": "",
+        "de_type": 680
+      },
+      {
+        "contents": "22B766878655BAE8D17D60104A",
+        "de_type": 203
+      }
+    ],
+    "encoded_section": "66901361BFCCAF1C31DC52F1BCBDE2CA129C719110008D11CCCA32A98B153EAE11A9A82D5B8B90011EE1A3D2126B9947D2B7738A2AAFDFE4AB95B394A7152262808E7E30B50085DAEFD42870EE6C929F3D694215247C54659972A9EDBEFA4504FC8A8E44174522",
+    "identity_type": "private",
+    "iv": "B4592168B5F6432ED7AA739A5EFD1BEA",
+    "key_seed": "B80CF25126E7DF740A3C7A4C3F070220ECED0A230C46D4166786B7924A3EB873",
+    "metadata_key": "AEC4D47281DFB8882A751CD4D30AC338",
+    "section_mic_hmac_key": "8505CF64E272040C22176713164AB15E9A59595E77793D79E4FA517901E5619E",
+    "section_salt": "8D11CCCA32A98B153EAE11A9A82D5B8B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7FA90676A637142CF7CB5C912AC1F98F",
+    "aes_key": "DA5F3DD4DA5B5420500EB8F9CAF9807B",
+    "data_elements": [],
+    "encoded_section": "3790139616C2562B842335B3474F07B4D10A81911000F24039339EF2187F8D6958E05AAE8D2B9002DA1F8883F7B4BD72A21F62487E578D60",
+    "identity_type": "trusted",
+    "iv": "F24D530E53213A55CF5A6DE13E8BDEF6",
+    "key_seed": "217B43E5524A922F4BA6D492809942BB9021143D3337961443AF613301210AB0",
+    "metadata_key": "83202E063706BD296D9F1E4A7F1C7951",
+    "section_mic_hmac_key": "234DA6C4D3E64D80479D48A109F449C888A444DB541E0CDF9E6ED02303C82A84",
+    "section_salt": "F24039339EF2187F8D6958E05AAE8D2B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "67D52BBE900B7D4B9C3689669C4574BE",
+    "aes_key": "CF50974C04B44AF21E8DA91AB769E3C5",
+    "data_elements": [],
+    "encoded_section": "3790134F982E377F44CCE5EDD47A02E14D0074911000EC29B4AC8612C65A3910C4F542341B169002F16B78F5F6A227EB47469338E73B5591",
+    "identity_type": "trusted",
+    "iv": "DCA9FA6379C1592FCBF87CF2C356022C",
+    "key_seed": "BB1C2824578A27C5BD463EEA37C51DBF8380C9C418DA31629EFB9BC3E2E1E5AF",
+    "metadata_key": "F716A36DE6F63EF6280780B52950B263",
+    "section_mic_hmac_key": "36DB68165CFBE7D58747A358D101CA6BCFEEFF26F6071452017AFEDB64EF411E",
+    "section_salt": "EC29B4AC8612C65A3910C4F542341B16"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A8166ADB4DAE7D4B20347694120671F9",
+    "aes_key": "ABD91B9CED37FF55564836110D6582FE",
+    "data_elements": [
+      {
+        "contents": "E5ED8A82CCC764F7A2223F9C6D4701FB4E",
+        "de_type": 485
+      },
+      {
+        "contents": "30A7FADE0C23C8528D5CF2043572EAB8D6981184",
+        "de_type": 430
+      },
+      {
+        "contents": "2697",
+        "de_type": 607
+      },
+      {
+        "contents": "C8052125E93A57796DC2FE0A560176FA099D06309581D8CF0349DCD63D",
+        "de_type": 175
+      },
+      {
+        "contents": "E7D9B6F5BF4B0A7321F2A3BB4CFA955BB0723229527586F2D8AFD286",
+        "de_type": 802
+      }
+    ],
+    "encoded_section": "A6901329A398A67801759F9CA6A0FE27829740911000B048311CB6B2A4B7CE2518E1CD9356239002F002B86EE8DE89899528BB9568107ADE1966E76715DFF2DCBD3149DEEFA21EDFB4FCC9E4BD0099887239950EAA3AE6245C379A2EA7A2010F82B5966FD9BD4791D3B9281A622EE0C21C089EB54F342574EE043B87CC8C9CDC920EFA3C1026B277E34B6D8A19A9A54F8E4D7461781F87F64B697AEAAFDE058D2D68A0600E6FF3",
+    "identity_type": "trusted",
+    "iv": "ED7F17674307775199068DBF510647C7",
+    "key_seed": "D0BCE2863FDBABA82CBA792D89EA4DB95642305B5967BC96C22D5936E155CE1C",
+    "metadata_key": "6993BBC4A4D2A05F8938EF1CA65CB545",
+    "section_mic_hmac_key": "6E7BB863EB3E1B0026872D4487C94E020D0BD53572D65D7C0D6C860A8D6D0479",
+    "section_salt": "B048311CB6B2A4B7CE2518E1CD935623"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EE774E050991C3C3C9021112F6F6EC06",
+    "aes_key": "AE6E6D8F193D0262BC994CF38FA772DB",
+    "data_elements": [
+      {
+        "contents": "442095408DF056",
+        "de_type": 170
+      },
+      {
+        "contents": "85CA4D8451F85564A337E66E3D",
+        "de_type": 101
+      }
+    ],
+    "encoded_section": "50901385B9A090D6F00D94495AC0F8196830709110006141474D448BDE019B1ACCD97B5898A29001B076A9F616D35B3F67A9324816D2268BC4F1884707102D3D23202C966E0647ED7FAB056222AD712CE5",
+    "identity_type": "private",
+    "iv": "069306DBC724AD554F5241390602AA31",
+    "key_seed": "9CC25445803440DBF96652CC28DA5AFA1735953DCA314BB7EC9FC1C11C3E4DD1",
+    "metadata_key": "541C17F0B1EFF90F37B511C84CB01D06",
+    "section_mic_hmac_key": "6E7AC64E36AC9A870E06118382D82BC2B47D35820715A53DD9954F4BE868517D",
+    "section_salt": "6141474D448BDE019B1ACCD97B5898A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D51174BCF89730FA639EF480EB430A8F",
+    "aes_key": "DA6B7E261E3C36E6FCF07C079887B799",
+    "data_elements": [
+      {
+        "contents": "7E03CE74C8591B567A1EDA2A366C7E",
+        "de_type": 734
+      },
+      {
+        "contents": "66ABCE0999131CDE50E7C35DB2D8BE895D9938E4E658D37B9A4601",
+        "de_type": 511
+      }
+    ],
+    "encoded_section": "679013CAFCD53B1A04DDA344493191C7EAC7B99110004A952640E5B79A89A0655B00CF018DAC900446881055D48B06AA711F6C8DC456BAACAC13BFF4D46C5A85AC0102A2DC9BF94DC1F012EE6198AA698214B30A1414C363E1020F23A4822AE91A04BA2FE48AD10E",
+    "identity_type": "provisioned",
+    "iv": "07F3DB13F74CCEBDB585C022ED0F4B56",
+    "key_seed": "33B0E0FBAB31D8FE35848E2F78C9D5390DD11ED65F7E4BA39C71D748E92438C7",
+    "metadata_key": "D695C5430C16E9EA343D065570644C0E",
+    "section_mic_hmac_key": "93952E5EEE989B740674ADE0A44A2C64D6A4CF9AFBA3446C07967C14FF5F72DC",
+    "section_salt": "4A952640E5B79A89A0655B00CF018DAC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "774C0D533FE66410BDD55592E3036A0F",
+    "aes_key": "18AE71C0EE69346777AB7B1E8C253B3B",
+    "data_elements": [],
+    "encoded_section": "3790135D1CB9ACA8C85EBA088DAEEB5F7B2F0F911000B88681185AA3C583D44424B27FE983BD9001D1435474765A6D46A2E1DB20190EC0B5",
+    "identity_type": "private",
+    "iv": "DD2B97D25158EEDC1E23AE53BFAFC480",
+    "key_seed": "58339EC9EAC03D85F9E049005AFC9CB869C91E42AD1579F9B483A94AF53AEF85",
+    "metadata_key": "3849D3FB177823CF145390B303471646",
+    "section_mic_hmac_key": "9514FBB9156CFFA72FB2B0D83B2E1A7F8F12E1089A54B602A1B6E1954BA75500",
+    "section_salt": "B88681185AA3C583D44424B27FE983BD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A4628CF753A8EA365C9B865A1882111",
+    "aes_key": "A155E6D506D2F148E0AB36A972E814BC",
+    "data_elements": [
+      {
+        "contents": "8C77898782AFDD3BBB5415BD",
+        "de_type": 639
+      },
+      {
+        "contents": "7B0C5D7023C73B8522C9EA75",
+        "de_type": 903
+      },
+      {
+        "contents": "9CDB06ED0CA5436E486401F2BD230C0BFB4C",
+        "de_type": 421
+      },
+      {
+        "contents": "B7841BAB20AA8DFFAFDBE875C19C0479189092AB",
+        "de_type": 914
+      },
+      {
+        "contents": "7DBC5D",
+        "de_type": 13
+      }
+    ],
+    "encoded_section": "859013018B2B85208E151D0AE32ACE1338E72C9110005F4F13AE0A18955384461083CBDD4808900253E05D4D34C0F0AE7B49116B244A88D9A46A108C9CC629BB2425C7FFA06C65B8776B3F14DB40950B88A64CB748A51F9774EB4D520DEAB00ACCEA9B8C21BBCD78DE99503D58C3180C74D9975717039336048301DA335326C27A515D26BA18",
+    "identity_type": "trusted",
+    "iv": "D19E93815AF20322A04DA98F0C71E960",
+    "key_seed": "EFAE9C42B2580C7BD3B6F72022C14514C52214F90B4592AE55DBA17AECC21CA9",
+    "metadata_key": "D8DA27FC09648F9A7B03CE89C6C0E73B",
+    "section_mic_hmac_key": "C9B288EA8BD044EF4F94D580F71B5411A511D4BF8731FAA43760FFE5854D690B",
+    "section_salt": "5F4F13AE0A18955384461083CBDD4808"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "63C164C01739526FDFF320C932DF63AA",
+    "aes_key": "6571AF72F4E833E632EA672CD1ED748F",
+    "data_elements": [
+      {
+        "contents": "E3590FC9ED1455080A7F9141290E3A7A86CF07E56EC946",
+        "de_type": 158
+      },
+      {
+        "contents": "DCEC6A40CE44EBB393E18282D6EC2942AF3E4C0ECA67ECD01CD450",
+        "de_type": 331
+      },
+      {
+        "contents": "E7",
+        "de_type": 627
+      },
+      {
+        "contents": "550A",
+        "de_type": 213
+      }
+    ],
+    "encoded_section": "7890135C8416F66FBF8296AFC54C0B51DD9D54911000C730E6814F61380EFAEF16F4AC12251B9002290C795417F652150706F2122E017A644903C036E3A38349C982CA8A03D481CAC715B9B95F40189FE7470117B3D7097D8DF2B09187190A285B937C7CAB276D0801AE6B224F710CBB80585C3A66EDF99293",
+    "identity_type": "trusted",
+    "iv": "23C8041707E666CDD9B92CE4E16390C6",
+    "key_seed": "E54B5923FBCAC75CF05EBA91DF3C5A62DEF8A88671EAE2D9261C30FD83245BB4",
+    "metadata_key": "DB91F1262351AD353C9CEF87EC701A18",
+    "section_mic_hmac_key": "0A44BEDF00C054D356FEC008D901B583FC99CECB4DD06FF16BABD31C7595312F",
+    "section_salt": "C730E6814F61380EFAEF16F4AC12251B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D6A2EAD0DBDFF521DB943F9164E9ABF5",
+    "aes_key": "BD03B9DA72C3E8AFC6C0E7E62F02D66E",
+    "data_elements": [
+      {
+        "contents": "FB62FA28DE416B3FF7C32CDE250E503A38AC512010D9A11E21ED08",
+        "de_type": 580
+      },
+      {
+        "contents": "5B6053833E7DA425451F",
+        "de_type": 86
+      }
+    ],
+    "encoded_section": "619013B8C630B2133545FF1C0C09F167B63A769110005DBAE9CE6653D2E2B9466DE1F81BE8BA90022F5C1D5F8C8B84AE9E2988700331EC43097F2B12FC61E105086BCDF84D27411E91717096B8EFDA92630445AE4D2F984A2863C71CBA45AC3290A8",
+    "identity_type": "trusted",
+    "iv": "E82975873E9953E02212AF85698F56A9",
+    "key_seed": "88F7698955CC78F3019EA531FB78FB1DB904390B04C10F42F19257F35001FA89",
+    "metadata_key": "66E54B6B9FB695DBD3CA8C66C5FDF514",
+    "section_mic_hmac_key": "C739EE6C7D4FDF5A76FADA66C0872E628EE444761679A4005F45F01CD1A748CC",
+    "section_salt": "5DBAE9CE6653D2E2B9466DE1F81BE8BA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BAF192B97D33369E018E81BC50AC8F7A",
+    "aes_key": "325B3B524F9BF9100439F3089DA3C7FA",
+    "data_elements": [
+      {
+        "contents": "B0",
+        "de_type": 856
+      }
+    ],
+    "encoded_section": "3B901356FF1D5E7200783B9778078D010BA13D9110001FC604425A47F60D3C1CC80624EC40139004A2EB00B81AE9CE42819E6CBB1CDA25BC43B99433",
+    "identity_type": "provisioned",
+    "iv": "5BC3D50F1BBEC06A2B6B68DA3D21075B",
+    "key_seed": "449CF830F890204B2D836B34548904080906F492D5CF84FC0C2C82D782CAB553",
+    "metadata_key": "79C0215D30C0B475C608D77C570B4CE8",
+    "section_mic_hmac_key": "6B3F15514E22EE373A70F39F81516BE169F8AF5458E35CBB3C5B60AC036A6E64",
+    "section_salt": "1FC604425A47F60D3C1CC80624EC4013"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "719A721598179D4D4B26E2ADC7E3C50F",
+    "aes_key": "ABADECB605978F38B860C1AC618EF22E",
+    "data_elements": [
+      {
+        "contents": "2B481F57DBA2E4528AADB3F65A2E0A10FD912A517252F49806DC",
+        "de_type": 452
+      },
+      {
+        "contents": "7EDA82863D",
+        "de_type": 366
+      },
+      {
+        "contents": "8A8868E25778C9D2DBF3E428",
+        "de_type": 541
+      }
+    ],
+    "encoded_section": "6B9013B2C0BE2B338651F83C9DEE9FF7A5E9B3911000320082AFF78C58B12275134DD71800779002E109918D72EB73A7CF12E71CB578633A99BBE624409264B989AD42AD9FF7386B107AB874BE50CEDC6C193CC56FB20F9986CF982065C0867E248B792655F223FB1B99B268",
+    "identity_type": "trusted",
+    "iv": "EACEF787A9AA0D378B47AF7B7BAACC41",
+    "key_seed": "8C96ADE771F0EC82E8A65EAB09768E0D2779DC80D10AC3A93C69EDADA363C9D6",
+    "metadata_key": "980207617795323129DA7B883489A471",
+    "section_mic_hmac_key": "878F73081377F28C1DCD6BA7A3C9CCDB12B2F9D0577D37F2217558C7D5B560B7",
+    "section_salt": "320082AFF78C58B12275134DD7180077"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "898AF84E18B19268BF0066E1B843DB2A",
+    "aes_key": "D18AA5914985AE77CE2FCE7552F09B46",
+    "data_elements": [
+      {
+        "contents": "4615409B344399237B3ABDB8F670E5B8655C8EF5449E5DE40A9A015E197A",
+        "de_type": 851
+      },
+      {
+        "contents": "3D6EBF61130ADEE935CA18BFEFECD70BD2F9C05F276F52860E6C",
+        "de_type": 516
+      },
+      {
+        "contents": "9E",
+        "de_type": 916
+      }
+    ],
+    "encoded_section": "79901393C3CD52AE720625794E99D501168018911000B225FB4D96E5A2AD5966E0201447323F9002B0CE58BA8230AE27D19688FCA438C5C94AAD5E60F0750EB7F63D98739E51CDCC0AEFF8E374AD8CA4B87E671B1163F8075511F02B94493CE489C0BFD6626FFCD80A78A99F869E6D048D89A29D7EE9DC94572B",
+    "identity_type": "trusted",
+    "iv": "0F973AE8405A878AAF91F3F3030CCDB5",
+    "key_seed": "FC64BAB5EBFD28BCC2DF64A332591AC18E67D4F0D8D04B09D15BE99F992BD0F6",
+    "metadata_key": "2817DC0D3018C8208062F9F09F0217C5",
+    "section_mic_hmac_key": "DFAB6D5BBC1AEEDC067EC644D7AB15D0A0FBBFA0FF766A45BC6AE217B00C1A76",
+    "section_salt": "B225FB4D96E5A2AD5966E0201447323F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6CA09CF038262F0B86AFC0F196F079A1",
+    "aes_key": "DC35D7E7C27384B92F1F218AA96E5815",
+    "data_elements": [
+      {
+        "contents": "F11DD7ACEED992",
+        "de_type": 439
+      },
+      {
+        "contents": "19CA080B4B458E94D3973AEBE5",
+        "de_type": 120
+      },
+      {
+        "contents": "",
+        "de_type": 973
+      },
+      {
+        "contents": "138501DB6DF8DE97",
+        "de_type": 122
+      }
+    ],
+    "encoded_section": "5D901335901EB3DFE18DDCC333E258CEBC67A6911000C453204CA5BF1BE8A080F58E1E046BDB90013A59DFC6058F6E641E7F6BCE6B71D94D022FF601B5D7CB45AE24E902357B8AB7332484AFB64A5EE9B2D654B67879279632B8226CD83A",
+    "identity_type": "private",
+    "iv": "C4013A2D4DCC401351902092CA23D50E",
+    "key_seed": "9C31224BE4354E49AFB6CCD5EE02E4CD13A1E57ABE9FD2CE2501A039B51E6425",
+    "metadata_key": "7A67555F40D8FA75031A57BFCA376901",
+    "section_mic_hmac_key": "32FA238989BD8A58E646578F6ABF19C7A49B10F8A626BBAA984C7163A6129896",
+    "section_salt": "C453204CA5BF1BE8A080F58E1E046BDB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1AD93C4DB2AA2956308F6B40D2227DE4",
+    "aes_key": "702409CD2C1478EA23213540CAD5A499",
+    "data_elements": [
+      {
+        "contents": "A104DBE9FC480BD7403A4F2488AA305DB6CDC31C85923D7F71B751",
+        "de_type": 441
+      },
+      {
+        "contents": "3AC2773587350DE26099CF",
+        "de_type": 827
+      },
+      {
+        "contents": "320622",
+        "de_type": 969
+      }
+    ],
+    "encoded_section": "699013A36C4D395FF98F721DECC40BC9CE7A96911000687BD81DC1D918FE6F5EA0EA6871D83590016D763DF756CE03623E713A3A5CEFC54FB9A77EDA7C91BA0072023850ABE73DE6F6E4CA176F830D0E0A33FA5D169D172F2B50ECC62C75A95C5A9BACBE4FAB29A3DB7A",
+    "identity_type": "private",
+    "iv": "AF815000B11B4D2338590EE859E43B26",
+    "key_seed": "BCF8775858AF8BB34B9296C2B9CB9604AA68CEAF0E015FC23F88F60CA73E0EC1",
+    "metadata_key": "22AD97286075323B5D9C97A18C8516C2",
+    "section_mic_hmac_key": "E59A1CB6BD1ADF2BF24F4C657428105B097C70A80EE4F707ED96551FE4FE834C",
+    "section_salt": "687BD81DC1D918FE6F5EA0EA6871D835"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF0F5C6FF715661FDD243EEFCC3DF000",
+    "aes_key": "465940811F2D7624AF1BC24ECF583A31",
+    "data_elements": [
+      {
+        "contents": "ED5B2856E0",
+        "de_type": 480
+      },
+      {
+        "contents": "5C9037389AE1E052391238AFA847305B8D52F177ACF119F8F5958475C1DD",
+        "de_type": 458
+      },
+      {
+        "contents": "F1207137",
+        "de_type": 42
+      },
+      {
+        "contents": "9EA01A",
+        "de_type": 627
+      }
+    ],
+    "encoded_section": "6C901358A772231DD98A3887EE3F43DBADB5219110002BC0BF28D21A7964B7F0993AE4F5B0EB90013C3E4A659C9FF925633BE6B56F540526D0F5ECDCA82350FE06A01B7DF9180909C186D3892E87DFE229957C59982999EE546326D04870BA1F7D953C8F4E7BC2A62F0940C9C1",
+    "identity_type": "private",
+    "iv": "668CB07C7E17BBC9C738DB7DDE67F0B8",
+    "key_seed": "D86A2754D9774433632916979DA1EBB2D15DEBE68568D976D6F611E7767C6CD4",
+    "metadata_key": "7D9BBF1CBA464E5B3D3E1132C99C3D2D",
+    "section_mic_hmac_key": "16C2939D01D4B63ADDBC2CE217C412B1DB240E79171BDF904BF90A2F0E5DD55D",
+    "section_salt": "2BC0BF28D21A7964B7F0993AE4F5B0EB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A4F08E8443AAE40F4E7DAC88701D0A61",
+    "aes_key": "E32648F00DE2B1472DF2AC0C21D46D41",
+    "data_elements": [
+      {
+        "contents": "67ADC5EFF86C7C6823C644A2",
+        "de_type": 245
+      },
+      {
+        "contents": "A2FE5429988C99F4608621F625D2",
+        "de_type": 446
+      },
+      {
+        "contents": "CDD480DE03360DAE07242D23F079",
+        "de_type": 236
+      },
+      {
+        "contents": "66517DDF7ABCB8577D19413F67E25F",
+        "de_type": 307
+      }
+    ],
+    "encoded_section": "7A90138693FA8FDE6BC60CA1E4714073108989911000C10DC9C0C4A68B9018C3488D10740CBB90044E395EF33AEC517158560D95A90F95FD4F901983D6F8FFDDB7B22CA5054BADD29B844F5E589C81D03EB39FC74D0E88B8D6D708CB0A8A8073FEBC2DC580146760537167FD194907D3DE050A6CD1807E2A7B2BC9",
+    "identity_type": "provisioned",
+    "iv": "40B3E8038361FDC0CA520885C4BA45EE",
+    "key_seed": "12CA6E10625D8A743F3980FF5B82786D1E11A0B2E7095D1C60B6500947C7A80F",
+    "metadata_key": "47D63E40F400537213FA6C39741EA95A",
+    "section_mic_hmac_key": "C2DC1307FFA2E742682513F21A7F585D155EB98549978992A6561DA4F9C2779D",
+    "section_salt": "C10DC9C0C4A68B9018C3488D10740CBB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7F3B4AC49A6859D7121614C35F5B54B0",
+    "aes_key": "A0E754DDBDC126DED5C2E5BD3ED151A8",
+    "data_elements": [],
+    "encoded_section": "379013F66D7FA47F0BF107AF009FBD4FD70BD3911000FD6B5B75A82F46AD1EE3944D6229D1059004094FD3464A10B7EBB9FD171DB106A835",
+    "identity_type": "provisioned",
+    "iv": "5F212B399449367351A9BE5E8CC87ACD",
+    "key_seed": "687577B839C89F80ABB09A60CB09330F201F7E109C18AABCF5B7CE3ACCEB7C9D",
+    "metadata_key": "9190921467B2FCFC928327A128A00D5D",
+    "section_mic_hmac_key": "EE0BE709ACDA6445F99E7F9709367F1970CC0FF034BB9BAB2525B06838192DE4",
+    "section_salt": "FD6B5B75A82F46AD1EE3944D6229D105"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1D2E3A430DA547BCCC40814B7CB98093",
+    "aes_key": "EB9DE857753B905D9DAD3D6D68B97845",
+    "data_elements": [
+      {
+        "contents": "7D25",
+        "de_type": 960
+      }
+    ],
+    "encoded_section": "3C90138C32DC48034E13962C03225C7CCC98E19110001F9ECD3C6A5399AE4A22D21D04D50F3D90022E75DADE997D7635B4AB53D54DB577263C8E60D0F7",
+    "identity_type": "trusted",
+    "iv": "DE93D4114DE77843376E66C9C1FED8C8",
+    "key_seed": "FF1AD1F98E7A02BFD970E2E6D969E4BAB06F89AAE1D901C5158ECEA444EE7569",
+    "metadata_key": "0A83D4CB8541829EB4E13989DEE85722",
+    "section_mic_hmac_key": "336BE3349032B9BE9AC4E030B439CA29C22300C39C29A768E5429DFDD59CB347",
+    "section_salt": "1F9ECD3C6A5399AE4A22D21D04D50F3D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95EF9550DD4E6DAB348F32EC6ACE9ACE",
+    "aes_key": "9282028C74EA00E0A695AA0127941CD4",
+    "data_elements": [
+      {
+        "contents": "014FD0938269F334",
+        "de_type": 26
+      },
+      {
+        "contents": "B419499BCF2AD0B5",
+        "de_type": 732
+      },
+      {
+        "contents": "998BF95EF3754B4684BA80",
+        "de_type": 84
+      },
+      {
+        "contents": "61BB19",
+        "de_type": 525
+      },
+      {
+        "contents": "E911B16D15B9D70D53BCD3B27705427D11C34D8EC29011A6FC33A1205D",
+        "de_type": 9
+      }
+    ],
+    "encoded_section": "7E9013F9317F3EF17F72D0E6E671B482D48FE8911000A5E06CFDFE69CCD42F56062A56578B739004E967DC13B2AEFE2F508828E75102BA7D102B73D8563823F379ACE502595F925B51489A8A865904136429350CA3FC0E80475D5EF603BFBBF13483E718CC349627424499020BA3738BF25127BCF7FB6122FFA582FC9D4806",
+    "identity_type": "provisioned",
+    "iv": "0B48A691BEE1A64AC8D64656A4C6E8F5",
+    "key_seed": "BAC80598D5D058B07BAB96DD55772405A2E8A8F533907534D9A0E3FAA9F30F8A",
+    "metadata_key": "F759E495DD16BC4B4536A72A4FD88C2E",
+    "section_mic_hmac_key": "A69B4595E2EF8D19BDD30DB2B3A6C6890840D061A2516C12B9C137832906B7FD",
+    "section_salt": "A5E06CFDFE69CCD42F56062A56578B73"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "70F3562E36D87A53735B298C8920DCCE",
+    "aes_key": "2A04329E89E63A6EEE1E5B9FE26FF072",
+    "data_elements": [
+      {
+        "contents": "E26993B71A36032D7B6BD3BE1DFC1A916A6BFDE486468C",
+        "de_type": 619
+      },
+      {
+        "contents": "4E4B6D3471BA6DE8958649F7A8F3F2D1D8B858BACA4F9D737E622F",
+        "de_type": 159
+      },
+      {
+        "contents": "0C30D8A9B7F50CE9EC",
+        "de_type": 992
+      },
+      {
+        "contents": "D682BEFA334E31CC3D253BC9B8F9E7",
+        "de_type": 379
+      }
+    ],
+    "encoded_section": "8D90137C433C789FC67F116E0B42170BBE1A2C911000ACC738CA77736DA78E61AE2F8BFD56EF90029BDCB44AB171091ADCABA9B4C47698F06A60E7785AE6EB868FA0D3508C4028357D558423ABD64E685A53B84E7CEFBA04B41B7AFE9701E27C2A655BB0FD8E4BACEED81D020887BDEAD433D10A2ECC65781E33C048D8FB20599660EF16CA4964D39E1775E80970",
+    "identity_type": "trusted",
+    "iv": "1AA5C3111877402AB12DF3A5D98BE228",
+    "key_seed": "23FE203BEE209B85F8FBFF96FFD45C5CBBBA541638C875E7D3E882407E75BF0A",
+    "metadata_key": "9D984FDB62E86B53E9D7DF7A14C9961F",
+    "section_mic_hmac_key": "3D5C46804EE11C44B04E69BD02A26FC9F8140A98E0BF5B6B28601D9BA19223AE",
+    "section_salt": "ACC738CA77736DA78E61AE2F8BFD56EF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E17588ABD3AE8E7D6C334D1B0AF92891",
+    "aes_key": "EC4481D436C1713129486151E496D152",
+    "data_elements": [],
+    "encoded_section": "3790139A5DA17E993C1658DBFA6658604A3001911000D08F272BBAB54B86764CDE901B979BE09002B897890E043267F8EE1F98C5F9BBDD30",
+    "identity_type": "trusted",
+    "iv": "251B33B9AF829B6ED1ABDA627054F6F7",
+    "key_seed": "EAEC6309BB2C6EFFBCB0C2BE01F11E4F90F5E7B8887E818D5AC1D4A7DB57069A",
+    "metadata_key": "F542D812841B2DD775BBB4A8410C492E",
+    "section_mic_hmac_key": "F67EF00325C91A6AB801927DA0B6796DD8DC33C90329FA717824EE7E180C1760",
+    "section_salt": "D08F272BBAB54B86764CDE901B979BE0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2345A6D584F3974CF098E8C192904039",
+    "aes_key": "4DB8F7C88764BB94D3A3ABE8A1F8AA20",
+    "data_elements": [
+      {
+        "contents": "FBD07BACA069E273FABEB5458519AC66",
+        "de_type": 270
+      }
+    ],
+    "encoded_section": "4A9013928EE6E8ECEFE0F28379CF5C9032291991100098A4C16E5FDCB9E737355B6BF7EAB38D90028A111BA84A1E974CF9DEB93971DA7789A71713E4BFAEB4AC83415674B15BAB0CF85A89",
+    "identity_type": "trusted",
+    "iv": "212CD8997AAA9236F1FDA4DB9BD918A7",
+    "key_seed": "67E2C8B99AAEE6CFD7809BF4BE4439021C1917798195E90C095AB601C718CE52",
+    "metadata_key": "F1FEE18C49BA92C3F2F65E445A273F17",
+    "section_mic_hmac_key": "76ED254493D473BDC8188E855AE215771406C7EAD2655C0699E1408905F39146",
+    "section_salt": "98A4C16E5FDCB9E737355B6BF7EAB38D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F9AC3BDFBD989B3B7B99227F4A75895E",
+    "aes_key": "F4A4A68E314433E1525A20A7CE56CF0D",
+    "data_elements": [
+      {
+        "contents": "8953B51DCADD4B6DDAE1F254D6FF075F023EE782962BA2E5EC3F",
+        "de_type": 51
+      },
+      {
+        "contents": "3B90B29DDDB595115F94",
+        "de_type": 474
+      },
+      {
+        "contents": "3AE3DC2B64E42DEE4591D3017A373707622603E768FF",
+        "de_type": 420
+      },
+      {
+        "contents": "606367570FAEE5",
+        "de_type": 567
+      },
+      {
+        "contents": "8058E4",
+        "de_type": 400
+      }
+    ],
+    "encoded_section": "899013F28C4419C0F39FEF91816ED59BB640CF9110008A20C8F8A8F8066BCC1BE4A65AC5792A900117084AF29AE92FD19FA96EBE5C8A2A42563981458E841FB326A570E844CB1C9DF86C5ECD71E381212CA1AB349CBAB6E08E587987A237010D73012F12DA01137A6DB31DC714AC92A7E6ABD3D25D66DDD4A3F017E36180B1BC81BE906A37A7E5847306",
+    "identity_type": "private",
+    "iv": "001886333197146B65A467C6A5ADABD0",
+    "key_seed": "9FD56F525349238F02680E5213FA5A0976841E232787AF705FBCBC9B20064E11",
+    "metadata_key": "688DE85D9D408FA2DE99A56F603BA664",
+    "section_mic_hmac_key": "496FC8B5DDFF85EA5AFB6257048F16A63C38E6B1B0B6880B6DC982AC06F61F5C",
+    "section_salt": "8A20C8F8A8F8066BCC1BE4A65AC5792A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "82BA44E40EE515F4EDB7BD0835B26BCA",
+    "aes_key": "E63C191EBB567BB2A374A6C5CA7789B9",
+    "data_elements": [
+      {
+        "contents": "936AD5B9E6439EFB69339392A4FD2913",
+        "de_type": 897
+      },
+      {
+        "contents": "BB64D6B15EE9AAA7A2A4E90CD9D3D7DFF853855652F3C314",
+        "de_type": 128
+      }
+    ],
+    "encoded_section": "659013898A83F5E4A7D3DB3F24B83BBAF8FF0C911000A9BAAB812351BFBC259E10C891B67FB490020580A146D32401847A52599D99C1059DFC1B9E2C00E18BE478924C134C5EF2FCB007EF712EDB4C8A69389EA6AAE580B3A3D549891C657768EE03112B204B",
+    "identity_type": "trusted",
+    "iv": "A40BE5CD2ED5BB0EBB4725421B8DCAC5",
+    "key_seed": "3A2C30261D095C238E882B56F8D8CD61B607E7386D35FE3DF3C577A501D583B2",
+    "metadata_key": "39DB2F2278DB54194F32AF85B1E78C21",
+    "section_mic_hmac_key": "DDBDFB689EFB7F278636DAA76509101635BD2F29F5374C2FE5FF61C0BC7777A8",
+    "section_salt": "A9BAAB812351BFBC259E10C891B67FB4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A8B3C773BB49A28374AB878083EF4DD0",
+    "aes_key": "A7AE16ABAAB4F23FE69F81219078B6B3",
+    "data_elements": [
+      {
+        "contents": "941B67D98B",
+        "de_type": 482
+      },
+      {
+        "contents": "B56226DF686EE11F00F46D8EAC2FA6B3",
+        "de_type": 124
+      },
+      {
+        "contents": "1DAEF38ACABF3F7F72E0C36D95CE462F",
+        "de_type": 451
+      },
+      {
+        "contents": "C5AE1183996F56207CB46CCF9292D5FE2076EC2FC7DCB8BC5B5C",
+        "de_type": 200
+      }
+    ],
+    "encoded_section": "8190131E760FF2E9791B7C00259DE6622D097B9110008F7B71C5430C84A4A66BA8D98FB94F4B900234D15FEF96C1A3789732CCB516DA820979DAC80D2385402A65AE0C15A2234225C44833EB9FF44685B5C5F63331C9A54DD49754676E9A9EFA33BC008618F6FF6EFDA711690EB21B15E1FDD560000C2914756DE9B3ED6F3E26972B",
+    "identity_type": "trusted",
+    "iv": "A3F606AB7B1C0576ECD16E9FE421CDD9",
+    "key_seed": "9B041D4F0C1EF90F3FA1F40CC00F8E2B5F76237D87E8A3532B59953F72C44806",
+    "metadata_key": "654C72908F7B826008996F7F055E37BA",
+    "section_mic_hmac_key": "9F368D4991C333653B18B8E47BC2228B4B8AF094D9B0CFAAB697EAA4BDDD0EDB",
+    "section_salt": "8F7B71C5430C84A4A66BA8D98FB94F4B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3FF717A2F51020F0A8E7EEF5A58FF598",
+    "aes_key": "6B159573A0B1AD7A064F2B0C7E112009",
+    "data_elements": [
+      {
+        "contents": "170495D7E094775F3FE95D8B687AEED4201D2565013BB6D143B4368AB3",
+        "de_type": 261
+      }
+    ],
+    "encoded_section": "579013C0015142640B5256342482B97540A7F3911000391F6DD321079B0843F5D827A33F72FC9004DC8B35CA45AA35A6FBD7B3775EE4A1E612928B2B6F7915B574AF3B76C69D151D7B6948E811B99489CC62D223399F4007",
+    "identity_type": "provisioned",
+    "iv": "DB8D8BB540FE93482C143E02B46DBB41",
+    "key_seed": "2A25270DBE2575BF55DCA0EAE26CFBF9B57CD40F4F3676A108C187C20D4A6F26",
+    "metadata_key": "970D974CABAEDE9ECFE8B1A9CC874879",
+    "section_mic_hmac_key": "405D13A8D5CD5035A191FDB35DD6D3EEB16ACDD4253098B9DF5626EDD56F7329",
+    "section_salt": "391F6DD321079B0843F5D827A33F72FC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C604ED2EC8A3D1C29EC5A827AE9EDDA2",
+    "aes_key": "52795E8FBEF4F5EB97CC11774B1B3C3B",
+    "data_elements": [
+      {
+        "contents": "3E",
+        "de_type": 834
+      },
+      {
+        "contents": "682F12CA13A8346A46FF",
+        "de_type": 549
+      },
+      {
+        "contents": "11DD9D8544F5BF2CA35D580E223AD090D48C62E3085AB6CFF4A756",
+        "de_type": 194
+      },
+      {
+        "contents": "A949786794EB5D",
+        "de_type": 543
+      }
+    ],
+    "encoded_section": "70901355836184F4627B8EC7B78B6BB25D230A911000B462B56430FA636C4A6077DAE3E8490C90014B885213D89DC53C660697E09A405EEF027A56F667D32250711FB9AF57E6B173293D4EC62278A5047EE2D95D71CF8297D0BB81882856A9C03855BE2759368C3B68A19E2B7D4926DDF6",
+    "identity_type": "private",
+    "iv": "9FB083D020CF0194A51614C38F4CB78E",
+    "key_seed": "BB328C2C3773B18C637890F7F307C4D5EE297251BD0A3F101061B7C7DDE4436B",
+    "metadata_key": "2044D85EFE05830A56C3828A60E1B22F",
+    "section_mic_hmac_key": "9296C374AAF9CFC2E968F9D212EA9FAA10E7CA1712E740F8C423F58377DEBEA6",
+    "section_salt": "B462B56430FA636C4A6077DAE3E8490C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E4AE638B1788F6A4A7AE8A95A170217D",
+    "aes_key": "F86260862227268C0AC94B2821714BEE",
+    "data_elements": [
+      {
+        "contents": "095F42586EFFA90A02AD1377438DC0FB442F8BC36B084071A340",
+        "de_type": 991
+      },
+      {
+        "contents": "21D38A40C8F0CC8CD37E8B99E395",
+        "de_type": 663
+      },
+      {
+        "contents": "0610976CBF91C272697FF6F3DF90CDBF",
+        "de_type": 331
+      },
+      {
+        "contents": "C46F54",
+        "de_type": 806
+      }
+    ],
+    "encoded_section": "7E901310E81093792AB0299A1F5B9AAEDC438A911000FE1897EC2C7F696F9A12BA2E3AB8FF109001BD9694097F3C01B81BBAE58DC0AE45DCEEE6725DEF44E95C4651F50683E6E1452ECE362EB210B8F69E64C2147D7ACCB82C7A8FFBB1872CFB90BD33A33CB73837084C658664373AB183EFDE54555E374E0282DBE99F4FA4",
+    "identity_type": "private",
+    "iv": "0B8F21A0532C5CC2183796C8116C1AB2",
+    "key_seed": "144F46384687F7622633B6BF79597124B6602947F71FE56D358D8255FE706F75",
+    "metadata_key": "FBA8A028F20EDC2617B4EFF42F1B6449",
+    "section_mic_hmac_key": "6842368E240421D08BB41E23656533362CC290661EF54E887756D7BDE52E90A6",
+    "section_salt": "FE1897EC2C7F696F9A12BA2E3AB8FF10"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "21D9EBBF5909A89E702560D71E29B2C4",
+    "aes_key": "81CA1370B0438486CCDB17555BB775B0",
+    "data_elements": [
+      {
+        "contents": "111FCD56D62B43",
+        "de_type": 52
+      },
+      {
+        "contents": "C15A18724AC7E528B46E9E35F7554B1209E7F902A60333061B5381",
+        "de_type": 424
+      }
+    ],
+    "encoded_section": "5E9013D9B742F3C9077E30BF514C324378A6A6911000074399230FFE3522BF65A0E4DCCEEF149002A212E54AD7F78EE74E021C037C9C0B3A4493EE50C04B6BD43D728CCD62DF48707D3D3503E56426ED0CEC9DC87AC7FC6596B8DC23D4E10B",
+    "identity_type": "trusted",
+    "iv": "BD67CFC964A067113164BA2579085C26",
+    "key_seed": "63FB25167C581FE8ADE6766A9CBB04B2D734564EA92161E6DF67C3776B7589E7",
+    "metadata_key": "93081F4B0D4644A3EEFB094ACADCDB72",
+    "section_mic_hmac_key": "B01F9FFC04A6ABDFA23B54EE3A0855251B07ECBA387FAC32783C2D1E31502187",
+    "section_salt": "074399230FFE3522BF65A0E4DCCEEF14"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "376F7973FB47B8DE4EFBB10BA01B4CAD",
+    "aes_key": "AC46F566457606055B133DAA5632FDA9",
+    "data_elements": [
+      {
+        "contents": "4FABE07C139A4BB10FED0547",
+        "de_type": 717
+      },
+      {
+        "contents": "B0A28EBF12",
+        "de_type": 337
+      },
+      {
+        "contents": "2EC51325F981AF5E505025CF2432078896A5A4C5079CC2AF4067C5A9",
+        "de_type": 565
+      },
+      {
+        "contents": "B50C",
+        "de_type": 246
+      }
+    ],
+    "encoded_section": "72901355710202686237786A7FAB75ED3F998E91100094670B48A85C57471200A7A15C35EF2D90044551AD5E4D9C0F656F0D5A1EF39F021CF714060E5F72C5E4165827B2D33B39A68AD8E0B747C2FCB223D61B51C4CD32C0C14273A496135AD4459FC8615EF2D076B9942FB9D6A3F6A39F8152",
+    "identity_type": "provisioned",
+    "iv": "1F042222693F97550BC695DE068B0F27",
+    "key_seed": "B7CCCD49D67B3D822F0EB6389CD28D0D0F709EBCE75A1D41CF78BDAB9C649F8E",
+    "metadata_key": "D484AF3D402DCE7C7765AFE667044B4E",
+    "section_mic_hmac_key": "9D04723E57927BB0E47023BFFFB73D7ACD3A75807E62C48D34D81F47DCD2213C",
+    "section_salt": "94670B48A85C57471200A7A15C35EF2D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "633A93C20610A1F816E80581D99A8B3E",
+    "aes_key": "4371A9D1A3EB70A57E84488A54E24687",
+    "data_elements": [
+      {
+        "contents": "AD8C2BC724A8477BCDABB0118A33D84A98C8807FB87D9CEF9FCAA3D1",
+        "de_type": 853
+      },
+      {
+        "contents": "01B3970FC3FDD7E7ED030AD7AAF1AD72863B93FA61",
+        "de_type": 658
+      },
+      {
+        "contents": "8780D33466F56DB455D0D46E24CC32AE0695308F2F63BC6548B4",
+        "de_type": 728
+      },
+      {
+        "contents": "8F76",
+        "de_type": 45
+      },
+      {
+        "contents": "94F61429E70AEF3E8003487BAB3AE1D6319FC95FD097672D626F",
+        "de_type": 65
+      }
+    ],
+    "encoded_section": "AB9013195BA9A9F3767992302308D00CC1C1EE911000D293112ABD9E9E2DE6C9580BFBF3EEC590047F67987EF7E1FA205D9F59BFD255EF665258B5DA63CDD2CA567DA31D331C085AAB47056FB34C5637C13EC88A08BD9D7D96250A8CE4B314B4FAA00870BBCB5F2B060BE6492B524821708BD765303EB55C2C3DE721F34C3249BDD36AE5595B6AD9E9BAE6925E0BBEFEF7D5400A5BB802BD8F96D54B15C2F0A4E672174CEA6E0EE5C2030648",
+    "identity_type": "provisioned",
+    "iv": "EF05D22E05D50648CE4B24BAB3070391",
+    "key_seed": "63626EA34F2C9B87028C0977809D2F7768E73DD48D9D4BC4E9A8AA6AB63E51CF",
+    "metadata_key": "A028CF69452B18E0B48C12F43A92BFFC",
+    "section_mic_hmac_key": "CC71E5A17B3F67FC8293349047F85966CC1D2107A6C9A868904CE012FF6D1EB7",
+    "section_salt": "D293112ABD9E9E2DE6C9580BFBF3EEC5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A2FAFCF0C3D4653B115D3C2BE07661CB",
+    "aes_key": "D3F0BD209D67F0C6793F151852DEBD06",
+    "data_elements": [
+      {
+        "contents": "82A3CE3347A4",
+        "de_type": 831
+      },
+      {
+        "contents": "F3AAF8D0",
+        "de_type": 633
+      }
+    ],
+    "encoded_section": "4790130DB30D981DE33703A0264019ADBDA644911000B76D1505FDE3A6DB5745C79C2ED803CA9001486C1A884EB0CACB9ADF1F0D7FF508AB81EE16696136F0FA512B4FD6C6A16B9E",
+    "identity_type": "private",
+    "iv": "A35D9428CEF6CA021B52076EA6DCB262",
+    "key_seed": "CA2DD34D998FEE70368831DD2798E0F1936A589B1C1A5B60FA3D0A4C8D4E0FF4",
+    "metadata_key": "599B29224832981BD60E11082FC157C3",
+    "section_mic_hmac_key": "5095030D99F2E81933347E8311CE3391BD1FB3C0B5F9397915FD1ACBC0B1494B",
+    "section_salt": "B76D1505FDE3A6DB5745C79C2ED803CA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FE6A04FEB87E30414222FE02FC1DED3C",
+    "aes_key": "AD143FFF025A7B908F3028F255017A0F",
+    "data_elements": [
+      {
+        "contents": "B41FFF16CE",
+        "de_type": 692
+      },
+      {
+        "contents": "C5EE2285043F76FF038B30EF5EC3888A9D9EEFAF6EF2C4A7F1",
+        "de_type": 275
+      },
+      {
+        "contents": "4F22FC1B2C68EFEA",
+        "de_type": 389
+      }
+    ],
+    "encoded_section": "669013AF4FE79DE836E8BAC2A418D44693F4EC9110005DE51155F2A2EE8C7E16026723F4B81E900295FCF7C7A95DA0AADD01DF2EF798AC707CB88138553B4DECBF061D353A6206561B4756BEBFB3536AF66EC01D29C4842F1522AC4894BE7B69927FA6DE2F5B7F",
+    "identity_type": "trusted",
+    "iv": "983E35C1E9170FF4EB62F9C900BFDE14",
+    "key_seed": "3894FC2EE542091EBD73841E9C92E846682B47EE41ABC7BFC9A6CFB9C7EC4282",
+    "metadata_key": "0C17FCFFDA6B8AB386C3D801A33DDC7E",
+    "section_mic_hmac_key": "310376D63A925F217B048D0E4C6908764C80444503F89A3AA1763951A33FCAFB",
+    "section_salt": "5DE51155F2A2EE8C7E16026723F4B81E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CEB2DB3907DA1426F9AEE8AAD33216DC",
+    "aes_key": "33F5AB96D76920C2F144DE4962D862ED",
+    "data_elements": [
+      {
+        "contents": "0E094C04A66FF6909AD423192740",
+        "de_type": 511
+      }
+    ],
+    "encoded_section": "48901337DBFB04B30BCF0A8422AEED7BE57B73911000636EAA5C104EB02DDC7F6EE4968AD387900179756A7F8E031AA7411DC75308F251B330B7FE2D754B5E999D9DB499716B48AE6E",
+    "identity_type": "private",
+    "iv": "79A3FE62EBD753E71B1445F203F5F781",
+    "key_seed": "B2B7DDAC8583B3D6E27434EE969DEBA37C310AC0764D86B202280244015F4D4B",
+    "metadata_key": "4E807DECBB61C3EF3A3530264B354C38",
+    "section_mic_hmac_key": "50A2AF48A3375502973C8E59A22E83359F137EE2391724F8CEA70E71D7DA9FD8",
+    "section_salt": "636EAA5C104EB02DDC7F6EE4968AD387"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8581CCA00A9614D0A2F3F513490ADC2",
+    "aes_key": "9B6D1622C67BFCD29AC65E8A5B503A9D",
+    "data_elements": [
+      {
+        "contents": "A1AF",
+        "de_type": 717
+      }
+    ],
+    "encoded_section": "3C9013926DC8C5AB1FAD70EA31134CAFD3EDA9911000ACBE394BCE0BA06BEBA61EE1737000CA9004A9631597C4C3F54FB2DE97D60CB38982950678FB41",
+    "identity_type": "provisioned",
+    "iv": "82EAD32BC4E1860FD17E049036F408A2",
+    "key_seed": "F6B2520AAEB47FCC56D10059ACB35A41937374E73497583FC997CD9643E2E0D2",
+    "metadata_key": "312D0D394B55AF6328C2527FA2754E92",
+    "section_mic_hmac_key": "077FE6345CE01680AACD3CD7514C8B248F35325D8EDDA3BB4AE284D01068340B",
+    "section_salt": "ACBE394BCE0BA06BEBA61EE1737000CA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A8936F1979C158886EA3687E6802647A",
+    "aes_key": "C123C7A271606C99EB7F65A90594DB01",
+    "data_elements": [
+      {
+        "contents": "503EB3",
+        "de_type": 360
+      },
+      {
+        "contents": "DCEEE7F22896FC9B32B55C34A0FEBD5443F897062EDF",
+        "de_type": 693
+      }
+    ],
+    "encoded_section": "569013AF54CE1D3CBE08F7711B3755799477B3911000546E3934E379D2D397491FE39A9C82FB90028608200CA18E4F6256DDE1C34367161B23C14E639155B0D9A24AD8EDAC13316CBBB6F45BFE2DC243C9259D8E66ED46",
+    "identity_type": "trusted",
+    "iv": "5BCD15EE9166022B1383FA6733B14C25",
+    "key_seed": "21E6F589CF96987FE3A3CB4FBF3EAF56F057D19B1E95A312AC51A43C4F810A0A",
+    "metadata_key": "13E4BB8217379D14813705DD1D830EB7",
+    "section_mic_hmac_key": "0349739276968E6FCFFE70B6CA646BE03C7BA2A905B676C37AC67C9174C5023B",
+    "section_salt": "546E3934E379D2D397491FE39A9C82FB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1BD514F1002291FC8579AAF845DF2230",
+    "aes_key": "DD4891029D9730B48DE4C95DC2B32849",
+    "data_elements": [
+      {
+        "contents": "2DD2428876819B13D3",
+        "de_type": 842
+      }
+    ],
+    "encoded_section": "4390131A15BD6E7E99C7DF950BA8486CE47426911000A3C9342FBF29A1B56D1BF70A126385899004066176CFC62D6CDBA8BDABF873C1B76C928C16281576D8EC953B356C",
+    "identity_type": "provisioned",
+    "iv": "DBC1EC47C39EED7FC5BACFCBD3E50F33",
+    "key_seed": "119A29D81C336C1450B9A52B08D5FA1C82BEA2F7EA53EADBDC786F17EA5174EC",
+    "metadata_key": "A11144C257937AA9AB72AF4D400943AE",
+    "section_mic_hmac_key": "77495025D48B3D4BA26ABCB62AC9489A8CF1EEEA8540E85B22F44F6F70302EBE",
+    "section_salt": "A3C9342FBF29A1B56D1BF70A12638589"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7CB42CD67E6B64297634ED57EE9A84FC",
+    "aes_key": "80748A341D96F6CF336DF1A491AB1DB6",
+    "data_elements": [
+      {
+        "contents": "96DA066AD9185B22D2E69A26F2D47377",
+        "de_type": 529
+      },
+      {
+        "contents": "8C54B317A75F31CF50FC60B0FC7E1BC16E",
+        "de_type": 943
+      },
+      {
+        "contents": "63FB812B761B5EA081E0E7743F2BFDCFBCF360083F3C46",
+        "de_type": 638
+      },
+      {
+        "contents": "26",
+        "de_type": 4
+      }
+    ],
+    "encoded_section": "7A90132D1AB37039B085A7A9C70BE256B8094A9110001CA7C89408F3F729EAFB6FF60C3AFD049004AE29327125D2A449F33B1E6A8A7AABF9FF1B96CCE102DA7B3D0D8F9F828163A7D7BF775250D2C8EBD9C2DFE30CBE79A1AD0F5D3F40868351D67A6D0D4BDB8EE0408FB6E59CA2C19EC94D81A05DC10B685D26B4",
+    "identity_type": "provisioned",
+    "iv": "14C33DEE0CD9255F91CB3DB918642ADD",
+    "key_seed": "E0C0046701BC9386E772D494429939639AF9845521C2718C1ADCC28BACDBFFBA",
+    "metadata_key": "B16130046B39490E2360E8249AEBA2F5",
+    "section_mic_hmac_key": "77D4D3388B0329728C3D684A0513235BFDF00100185824A42A29F1833081B293",
+    "section_salt": "1CA7C89408F3F729EAFB6FF60C3AFD04"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D3B33E595721C50D2105135754F892D4",
+    "aes_key": "6759279E5AF9E480F163DE933C79D7CA",
+    "data_elements": [
+      {
+        "contents": "5A",
+        "de_type": 459
+      },
+      {
+        "contents": "876A88BB07E3",
+        "de_type": 919
+      },
+      {
+        "contents": "650357",
+        "de_type": 366
+      },
+      {
+        "contents": "3965C8AACA7BE822FD421DCDD5416DEF11A5ED",
+        "de_type": 182
+      }
+    ],
+    "encoded_section": "609013E4263C83FBE154EBE9B418C8E1F92A2E9110001C68B664FC0B6735A00A9C32DAC328FE90023E487DCF351F9A4B55726B5324627617478B27454D994520BE41E126B4F0FC225770EECBCE400FDA160986F267A97446F5EE178DB730669B5C",
+    "identity_type": "trusted",
+    "iv": "FC06614343EE9CF8E5A4D06EB3594318",
+    "key_seed": "5F6F3840D07D9C758A5D3FA6CF48325B79DCA9357C30DEA1E35AD885916612A4",
+    "metadata_key": "7C701457BE076B13A91CB3033AADA84F",
+    "section_mic_hmac_key": "0964A5F27C3EE5BC3CB8DD22F71FCE6F30C9B15BB4DACDF2D04FC5EA4F909881",
+    "section_salt": "1C68B664FC0B6735A00A9C32DAC328FE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4A0B5B35DBA6225783403F4DE018659",
+    "aes_key": "473B79E267C0D84E4412A4093255563D",
+    "data_elements": [
+      {
+        "contents": "33B53C95303F25",
+        "de_type": 993
+      }
+    ],
+    "encoded_section": "419013AAFF2B02E2B22C8C7AB49138C7BBBD129110000517504587FC306540BE7FE50F18898F900444C2F40376DAC920EBFA282D8EFF436D9A36B53B58D5BD48ED08",
+    "identity_type": "provisioned",
+    "iv": "7CD1649D9693811DA48B34243B254D09",
+    "key_seed": "FC839072ED4097D2EE824442D37A0F95B80BE907398E946F0085ACF1709B5013",
+    "metadata_key": "F62052D0301C5441B3A568D4294A8523",
+    "section_mic_hmac_key": "282471379DA6B963F2436B4AE2C5FC3348826856CDC1FB0F8253115B208F8B2D",
+    "section_salt": "0517504587FC306540BE7FE50F18898F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "93CC5E3BEDD29966EBFE44F20068ABD0",
+    "aes_key": "0E7C22653A3C4E73E38247BD04BBA53B",
+    "data_elements": [
+      {
+        "contents": "AE8F1926F17DC55FDA14D4D112FF57872DCE3C90D5",
+        "de_type": 532
+      }
+    ],
+    "encoded_section": "4F9013DD23F4E8CEE064993278A409CED7F59D91100024B889D2BAC8DFE8490B8DB914A2C6179002B9CCEADF1CCCE30FF715B151BF3376ADBA9A4C086F89C357AD894C88A85EE085EF3E4A11802A2A78",
+    "identity_type": "trusted",
+    "iv": "3EC81F59D1FCB6D4F75A7027CE96B1A4",
+    "key_seed": "0C290657B22EAA068CC79DE1762BD7AE049F34DC9801C029C183C20B7641E2C3",
+    "metadata_key": "9D8BBD240583337C47347E2E3527305C",
+    "section_mic_hmac_key": "C8887D8C621FB6A6FDFB0BCC033014D68EE1D6E4B3587EA4BE7DDE9F3981C430",
+    "section_salt": "24B889D2BAC8DFE8490B8DB914A2C617"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C5CBBCC948D1D87B9AFD66807377E695",
+    "aes_key": "8A9C73FDE45E8AACA4CD44F6DD70418B",
+    "data_elements": [
+      {
+        "contents": "9A2BC2BCFEA2",
+        "de_type": 48
+      }
+    ],
+    "encoded_section": "3F9013A5F912E862C431DAFC9EC3B5E8E7A958911000F7F65F4A4F260B1A6FEB1A59AD18C1139004F28E1460E2D4086FEF3182AE2343658F4D6A362C6F3D7A3E",
+    "identity_type": "provisioned",
+    "iv": "2D897492AACFDE004CC854FB0837712C",
+    "key_seed": "7EA6A1B03842D637543676B12E61F6D9F1C60C9FE015E30D53AEF8D698F317C2",
+    "metadata_key": "EB718446E9F62D1D5E1C71FE9DA626C9",
+    "section_mic_hmac_key": "3B4CFB52E8711CE0B1154C45AD7C1A05C36F26307463C4DB5AD8A584EBB74487",
+    "section_salt": "F7F65F4A4F260B1A6FEB1A59AD18C113"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "65A047E0391416283B7306BDCBD0DB41",
+    "aes_key": "E5AC27A9E1CFD23C71098444F5FEAFB6",
+    "data_elements": [
+      {
+        "contents": "FE46A0590767816BEBF65CD0A06F0248F6060C86C6552155942B12",
+        "de_type": 53
+      },
+      {
+        "contents": "04DB45",
+        "de_type": 573
+      },
+      {
+        "contents": "4120206B315914CFE259150DCC0643146D86",
+        "de_type": 269
+      }
+    ],
+    "encoded_section": "6F90134653404B3A826DA5D63380AE51571889911000434EDD9F18AE06EBB1887589C846F4E19002F724DF5E9B4A15ABDD0C93D42FBA6E44D5B0C564A2364B59B4F8AF594071B81F429CEA6A6A97D2808C57378A1660A528C7813D9FE4AF8E6A8A82C2F0EBD3CF4D95E4DEBF15C2EB22",
+    "identity_type": "trusted",
+    "iv": "940185F0052AE8B5655BEF6A900141CE",
+    "key_seed": "725E4D87BD5610F4BE9F424729C7BC6F3B89C7A5FBB5FB976A405BAEC28865C7",
+    "metadata_key": "5529FCAEF9E42680CC37BCF7A52CB571",
+    "section_mic_hmac_key": "1072211CFEE4A9B080F5CE4A682975C8C702B0D25FFB50ED39673238EF61AAD6",
+    "section_salt": "434EDD9F18AE06EBB1887589C846F4E1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "11B8A815C96272426FE670EBD95F2A74",
+    "aes_key": "9CC50A2EB9DC906838B319D6F635B290",
+    "data_elements": [
+      {
+        "contents": "CF8CA8F97258BDAA03C9F47FE93C73628555F7B7188DD071",
+        "de_type": 863
+      },
+      {
+        "contents": "50DDF94F9A90AF06402A8EE4E5E0440C068557",
+        "de_type": 140
+      },
+      {
+        "contents": "FD530CD016",
+        "de_type": 560
+      },
+      {
+        "contents": "3EC44909478F",
+        "de_type": 565
+      },
+      {
+        "contents": "9322306E45BE",
+        "de_type": 259
+      }
+    ],
+    "encoded_section": "829013111DE9F4FC976D1FCB172FF6475BC43C9110000DA35B02A62A0DFD3EEEF6F0C95B67169002D299BC5DEACAF00803395A88EBC7286257F4B34EED000A0D84C2B5697992CD343E351FC180BAB101781C0002BEBF9FAF4332F2D568B6E928BD2F3C990094FF1EF912B8EBC584A544FF6D769A320755F673C8F82964AE77516FB951",
+    "identity_type": "trusted",
+    "iv": "8AAC6F64AF5CD7541A317ED78BDDB48A",
+    "key_seed": "BB9F80C0E138923EBB663EFC182D0643EB8B9C4A58A98D58C3837AACBB2752C8",
+    "metadata_key": "F9A2A06EB5CAF1152BF79B6E21E842AA",
+    "section_mic_hmac_key": "4095220E1316503E17A6FDE2D4E6CDF34BEFC40685288156F7446D5068CFA9BC",
+    "section_salt": "0DA35B02A62A0DFD3EEEF6F0C95B6716"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A4808B2F62685B5F55475AB574E7E26",
+    "aes_key": "AEC76AC229D0DE42E296D372873706DD",
+    "data_elements": [
+      {
+        "contents": "A8CBB6C27EE05402885DDF07B4B192AA53C304C6",
+        "de_type": 822
+      }
+    ],
+    "encoded_section": "4E901339AEC7384257FE89C3AAEB488B1E2D289110006ADF613C2421616F31B9639D876AC2B99002EFD645D79149ABCBBB2BAB3C0B00BBD1720EAF50BC23D78FA75B236C51B304C40863AD3FC62F6C",
+    "identity_type": "trusted",
+    "iv": "AB8EB79353453909672FF436216919D1",
+    "key_seed": "50201DD1C8E2AC7B1A62572253D3B22E09BC1F9ED9B3B435CC4A4C3A654771C8",
+    "metadata_key": "BF749E18C5E02BEE9705A1E2A8EDAF8E",
+    "section_mic_hmac_key": "3DC9AAA970DB8BF9EDDF51BC73AA81AED4227BEFE5B4FB374D33464C9B1C845E",
+    "section_salt": "6ADF613C2421616F31B9639D876AC2B9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1F59D9660522D8FBA3B16883F70F11C9",
+    "aes_key": "370A64FE5AD9B1FB602447BF4BF9D514",
+    "data_elements": [
+      {
+        "contents": "F67DBEA2F3E590F21C3A313915",
+        "de_type": 734
+      },
+      {
+        "contents": "7E112C",
+        "de_type": 336
+      },
+      {
+        "contents": "56D3B96A1D91F0CF57",
+        "de_type": 138
+      },
+      {
+        "contents": "00EE1F",
+        "de_type": 336
+      }
+    ],
+    "encoded_section": "5F901339F817C69D4CF580D378EE7E242984BD911000A71C128E5EBBB0E4FDF891F77639D1E490010D5F79F998BDD9BDF1F7BC2EFECC5EE2F9F994830D2FBA0C803101745C51A41E07AA18ABD1312F3D56CF58841BA20A60D7FE34E36DB0F27B",
+    "identity_type": "private",
+    "iv": "B092FA4BCCA953F068CC959747D83639",
+    "key_seed": "692463627EBDE72CAF060DBA5FDD40E032568C3B81C9DFE4B20DC148D32F7035",
+    "metadata_key": "71DF47545B930AF7861785B2A0519571",
+    "section_mic_hmac_key": "9FDD7949219C0824705B41969A6B0B39564EB3C376A443F740F9F3983CD9B3F4",
+    "section_salt": "A71C128E5EBBB0E4FDF891F77639D1E4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BE2BAFF188D27B3DEBB76D55424CF7A8",
+    "aes_key": "11519220C41A2431E087DA954F82DD2A",
+    "data_elements": [
+      {
+        "contents": "AC894032C14D4442280719211CDA8F42A8FC90497439B5A14529",
+        "de_type": 146
+      }
+    ],
+    "encoded_section": "5490139DD2CF23FADFFE0C94A6E8E327F720A7911000B38B64D0469A8468D3CAA65B8BB04228900224C6C7A8B2C73344F312ED7FCFF642112C0E3F95526AEBB29729E203C85BC3D9AFCF3050772AF4D320820A0883",
+    "identity_type": "trusted",
+    "iv": "069FD992E0C1DE2F9D197CC3D0342099",
+    "key_seed": "FD4AA1F19FAA7BC4F26ED6AF2153079A6D9F6BF4F144C95E609947E620E07BDE",
+    "metadata_key": "C092C09E74DAD832EA8DD576E23BF873",
+    "section_mic_hmac_key": "F721743C7C61BDBC19597A30DF414CE7EA3D9BE816140712FC23440F473F1DEB",
+    "section_salt": "B38B64D0469A8468D3CAA65B8BB04228"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "77549089D6D3867FA06DA36615503637",
+    "aes_key": "AF5B34E65AD38943EFBCC3B3870CFA0E",
+    "data_elements": [],
+    "encoded_section": "3790139B1BECE4655A5CB45B6D3A30BFE6730B9110001F22305A25CC405B049D1131AA3B46559002410D700D2FE5856E61E834BADD1FF8DA",
+    "identity_type": "trusted",
+    "iv": "5714AD90F45BAD10E57F8C79C0D16BED",
+    "key_seed": "71F4BEA99646F1706EA4A84397EB43CE6B44E381874992EF972617EB640B3A36",
+    "metadata_key": "53A2FBE800F5224390B2F5417E7F9C1D",
+    "section_mic_hmac_key": "600452BABA57916415DF1C59CEC4E50D72E1BC14B9DBA7842BDC4A3AAAE81384",
+    "section_salt": "1F22305A25CC405B049D1131AA3B4655"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AA4A1FB44833A27A2820C26ED4EDA010",
+    "aes_key": "C1F9AF7702938F9DADD7257B4478BFAC",
+    "data_elements": [
+      {
+        "contents": "7AED34",
+        "de_type": 407
+      },
+      {
+        "contents": "7784760988FFAC4996",
+        "de_type": 189
+      }
+    ],
+    "encoded_section": "49901306DC71C77895654B6FA9840DF88823F5911000026B34871390A27E60707AA4CBEE91A190025B45B3472ECEB8587465A76CD0C08AB383049E0E095AFE3EA26DB78E9DD412A1E1BF",
+    "identity_type": "trusted",
+    "iv": "4883588693CA0745A10C85CF49823C55",
+    "key_seed": "75295A1F3E2689CA79744BB328404DB873F3C4BDECCE9FE9C2781494B59D96EB",
+    "metadata_key": "4F1AC34364D0257D3CA00300DFB1F1F8",
+    "section_mic_hmac_key": "AC27EC75005A294F6A63263B6B4B15981A6FC481B65646FF315A9FD7E1C72468",
+    "section_salt": "026B34871390A27E60707AA4CBEE91A1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "078DDE8D05FD1B537A238D6645219040",
+    "aes_key": "2766ADE6816F4045B273D4E1CBAEF9E5",
+    "data_elements": [
+      {
+        "contents": "6EBC1F8D58C1565541E9F64D5460BB5C0A95ED1DFC9E29FBBB",
+        "de_type": 808
+      },
+      {
+        "contents": "3135E9387E084FCC35B173C0E9F9AB",
+        "de_type": 347
+      },
+      {
+        "contents": "DB92249A54ABB93E6797CA85039FA215647FB4",
+        "de_type": 21
+      },
+      {
+        "contents": "79288DD2716427CA78A9194491",
+        "de_type": 721
+      },
+      {
+        "contents": "73EDF5",
+        "de_type": 529
+      }
+    ],
+    "encoded_section": "90901373F65B3C85D86824F42F83B84048C6229110009E38512BAFDF12A3783C75D6C694F62790015B99A08B9D7A88AF8172BFBEE70CAE42260C83F0F60F06B79C125D77323EB12D7F5FD27ED9B916562485B9C9DC9E2DFF08F5B19FCF7CF8CFFEB6B99D95AB5D5EA00384953D3A053681FA63BB86B565B479EB49282780CE91FBA3C2976BC7F7B945BCC3E8A59A6C7F55",
+    "identity_type": "private",
+    "iv": "EF43F76400A48297E2B662EDDF34027C",
+    "key_seed": "4EF8A2BA84737FB0150841C23EC25D43C47FF933FA9AB2C5927D5B507C87EA2D",
+    "metadata_key": "378AD8906BDB267835B3C09C96A19575",
+    "section_mic_hmac_key": "A7C12070CDA75EBCBC890C8F85E21D6069C91006B0350065806CC188E5409CCA",
+    "section_salt": "9E38512BAFDF12A3783C75D6C694F627"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95BE8BAF31EC4BB917CC3A2C7FB03DD4",
+    "aes_key": "212A4DB3EDB93B86E38661EAB32D3899",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 657
+      },
+      {
+        "contents": "46CD03FCCE18F7504C5C855CF189298CB67858A974ADB18500437642",
+        "de_type": 190
+      },
+      {
+        "contents": "3676B5CE1A207A",
+        "de_type": 142
+      },
+      {
+        "contents": "28383F354FEADE799572E4D15C96B4F6F0",
+        "de_type": 145
+      }
+    ],
+    "encoded_section": "7790135ECAF5AAE1BA1C64EE01424B51C2867D911000CDD06ECFAAA6F2401AD94229ACCA991590048D658DFC9B60B28E0997C8D85E975BA9D0B823487BA20A7C004379A82C97193F06260554E7B6D51C198EF01120BFD7284EC9963828D910D83D90812C2772E3357505FAC4036F483231B41124A3A8DBF2",
+    "identity_type": "provisioned",
+    "iv": "4B39E2AC421BF39FF32CB77ADA2A7923",
+    "key_seed": "653C200BFC98321AF11AD97638B4088CDF44F10D20996A2E39B6AA52628D81E0",
+    "metadata_key": "9328E95CDBAEB26EF1D330AB07A34FEC",
+    "section_mic_hmac_key": "10D58DADD334BB6D030EC8703174E882455E4C6626AA29BF6032013EB5CCAC41",
+    "section_salt": "CDD06ECFAAA6F2401AD94229ACCA9915"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7A7BC9104E4F6277DB44B83EC568D7A2",
+    "aes_key": "1E4B737CF0D3DE9B0AB7B23C62E19000",
+    "data_elements": [
+      {
+        "contents": "82C5DC605CC0B0C534A07204CF6EE9800C258F5876A2BB4D67BE97FA",
+        "de_type": 53
+      },
+      {
+        "contents": "0BAA5558",
+        "de_type": 865
+      },
+      {
+        "contents": "",
+        "de_type": 15
+      }
+    ],
+    "encoded_section": "5D901316F449431385886874B56F21C6EF076D911000CF9BB4939F48BC5B870C1274DB7FE0EF90029BCFE0E6FB66D97C97B97146DC9923FF872C1C82F9E6D58075046BD6EAAC9BC620B1087C9766192D38AA2B9B02D703637EF7434C1F95",
+    "identity_type": "trusted",
+    "iv": "5EDF27336329967B430B8BBC6511B3AF",
+    "key_seed": "6EEA708F4D7A23E95A290D0F7C7C2C1FABCCB06E2BEDDAB673FCF52531CB9949",
+    "metadata_key": "D58071E30F1F4F280A52547C0D940B6B",
+    "section_mic_hmac_key": "748BB640722F4197BE2AB67B25D10B13D0463BDA9651A7A09D072B29B678034B",
+    "section_salt": "CF9BB4939F48BC5B870C1274DB7FE0EF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6B2784661C35BE0A3E429A2C6964C55C",
+    "aes_key": "B7A7DD23E0BA11F990A724517482CDE2",
+    "data_elements": [],
+    "encoded_section": "379013D9B173EADBD3B3B83EFDA96221945EF591100013800CD344B3A2AE1F5013E1DFAD3CB090046474715969917E830F5BE55D47CFF831",
+    "identity_type": "provisioned",
+    "iv": "4A91BFEB38EDE9B000D0E68B1789117C",
+    "key_seed": "4272E95BD5A3F9E55FCAF98D88C776F3F43860BA57169089F0F43923F9743AD6",
+    "metadata_key": "D5513C47ECE8FC6A0544F3F67055C101",
+    "section_mic_hmac_key": "34C33FCC3774716A479B5A1B646C375BB563B045C8E1B020594E0C6CC637B402",
+    "section_salt": "13800CD344B3A2AE1F5013E1DFAD3CB0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "129B711CE9903C07E3C79E0C66953083",
+    "aes_key": "018DF0C4092B2887012CC0E3FA06138D",
+    "data_elements": [
+      {
+        "contents": "36166C05E659A86C25318FF5",
+        "de_type": 486
+      },
+      {
+        "contents": "C9113E4284307544D5452CF918",
+        "de_type": 207
+      },
+      {
+        "contents": "113DF414AC6D1ED5005B46712D2C585BDC195F836C545B4C9D63B8E3F7",
+        "de_type": 59
+      },
+      {
+        "contents": "DB7FEE8E34B1106ECFC83CD95F05",
+        "de_type": 278
+      }
+    ],
+    "encoded_section": "8690132D01834FE1F90892354A8D60F469D69A911000723A408BDAF7D502315A69861DBE19359001E5557F8FFBBA84A06E145068D2B755EF7C628F44909A90F69A26ACE41CC47C7A5CDB5ED9276B167EAAF20B92CBE3FDAD487F587119D70BC069CFB0709ABEDA42D6C799F4BAF2A0FE359CC18BC2C8CF16937F30BD382B6D5EA6590E94366134",
+    "identity_type": "private",
+    "iv": "A804F89694F4348DE72BE6DA40146DE2",
+    "key_seed": "3A3D0F62E7DB4E7B35A2BED010905C168A5BF029F93487B4B70FE06DBFD8F336",
+    "metadata_key": "6A4DECAE9A088A4100B25933DE8CE454",
+    "section_mic_hmac_key": "965B4BFCCC2FB9473AB9E3BCC41A5DD7C74311C9A8E54F6E59D7644D2686388F",
+    "section_salt": "723A408BDAF7D502315A69861DBE1935"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E0CA1AA3AF1191E3819741B3DEFFAFDE",
+    "aes_key": "1D5E8EDC48783BA37E4B1799FABB4ABE",
+    "data_elements": [
+      {
+        "contents": "7FDFE51E7ACA9FD4E4D768319A58337D53CDE7B59C0C13D39C91",
+        "de_type": 315
+      },
+      {
+        "contents": "066D6DC387C291",
+        "de_type": 697
+      }
+    ],
+    "encoded_section": "5E9013C567A94B8DEB58041FA6003F6984B55E9110004FA8AEFE32E28F03CA08C323146179A8900481AB869FF38C4A4AC07EBA8593D4078D298254845195108E6EDC6A46E534309A92E2C2EE6B7E585F2F80192B922F7A1B1E27205153D5A8",
+    "identity_type": "provisioned",
+    "iv": "1A49425E07C48D0C622000F534815E10",
+    "key_seed": "E3A4AC9730A13980D92CD512ECA0E6FB9C005C05DD4EC6CF1B16AB10BE9BF0EE",
+    "metadata_key": "6EFD60E02792E27FF514484A55667047",
+    "section_mic_hmac_key": "D1E5D811FB30478207868A6B7F75BC379740BC5FE2D67928A9BF1C27287F5729",
+    "section_salt": "4FA8AEFE32E28F03CA08C323146179A8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4370155ACF139B1128FB84304A5528CA",
+    "aes_key": "2F204AEAFF274885B403599787146CFF",
+    "data_elements": [],
+    "encoded_section": "3790136E72A2B54E54872677EB0711B10EC0F6911000CD2155E85F2D8011E7CC8A841B84663B90043BD0BFF11972D8A321CC2FEA6CDD5D3D",
+    "identity_type": "provisioned",
+    "iv": "5899873C8E3AA02A04117D7944F99F79",
+    "key_seed": "9117DBFBC2B7828BD194A841123189D3EFAE7883292BE6D930D5DC654DE163E6",
+    "metadata_key": "2A711976FD8AA71BA52B4E0C159B57EA",
+    "section_mic_hmac_key": "E62B18C7ADA86D2F488DFEB4F44226604EBB71CA197B52611CBC971436E4F416",
+    "section_salt": "CD2155E85F2D8011E7CC8A841B84663B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E1396C2167C2EA23035DDE7F637A22E7",
+    "aes_key": "DF1174BCE2216174DB0591EF868BCC00",
+    "data_elements": [
+      {
+        "contents": "C47031946FBC56732583D99C55B6E1B7521BF87FD7",
+        "de_type": 142
+      },
+      {
+        "contents": "BE62881EC8915D5545B185E4",
+        "de_type": 854
+      },
+      {
+        "contents": "847F051E569E3050817AE714F1CFBC836A",
+        "de_type": 460
+      },
+      {
+        "contents": "F5A734560E04909565F8EE8D110FCF79CCE8441355DB69E248324AC1648B",
+        "de_type": 674
+      }
+    ],
+    "encoded_section": "9390137EFF576731E303EC0E67FA37528CF42D9110009AF304AEC06D6F647D0A6E7F9496F1EF900287E198A1643D026A2A57FB2CC6BB455BD96E7BFFA40AE2E0F9BFEBE079F650D4D224D6E94A45361D5E07FB6B1F607E183CC2740C4219AB4C920CF3E07894945D049586FF2C414ECB417B5A09BFFF01767922EDE5660AA194C03678B4956DF45C18C6D98272A2E20FA9C89F2B",
+    "identity_type": "trusted",
+    "iv": "2F57A532E27C6BB9EFAADD309841DCB9",
+    "key_seed": "F1B9E7ED359076DBA893F8BCCE52A92DED14DBDBF49FF9AC463049AB69D6E69F",
+    "metadata_key": "C2681503C3157A0ECA4ABF5BC029ADC9",
+    "section_mic_hmac_key": "2533F7CA4EB0FA17F8F5EA530CFC482EFDDF3E7E17C7634BADAF773AB0FDC314",
+    "section_salt": "9AF304AEC06D6F647D0A6E7F9496F1EF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C033469A194C17D236D3799F6F810289",
+    "aes_key": "D583C2344A2A9FFFA466F6636DEDCECD",
+    "data_elements": [
+      {
+        "contents": "ED3C30FB7E039894503CCBF3372AE73F62E6BA062DC86BA80D5C",
+        "de_type": 321
+      },
+      {
+        "contents": "56A50CF71ECD4A4D6F8C657A3ED1044F4EB9E8ACB5B67928",
+        "de_type": 329
+      },
+      {
+        "contents": "5C249B18B1A02CE7C5E369D4768F374C94F96FB97EF7E20C566B",
+        "de_type": 781
+      },
+      {
+        "contents": "11914865B2C8E598C7ED5BDDC4009B7552F7B8",
+        "de_type": 392
+      },
+      {
+        "contents": "5E8574C9496DB164C59CBD836C60",
+        "de_type": 421
+      }
+    ],
+    "encoded_section": "B39013058AE9E776265CFBF3FEA5B70CE54268911000FE248957483BBFB171D44B82FFF83FBE900179E4BBF07C901D822A2D5DC2540F5D6B7B32E8150931481CA5299DDFCA680E80EF5554527CF0BB2A857809C703A7594CF02E853D3A713F1C5729A4B37493F64998A0DCD4526C5E1618DE6D16B4307D7843DCFCA192300FF4756FC138BA4B2E157A6D2B5EBEC21DB497053C9717F18250C715CA28DA39F9C1F0C0FBC213AC70DC09308014136458565B01A59E",
+    "identity_type": "private",
+    "iv": "2BB4BDD29DAC7BF3D31AF7575D4373BC",
+    "key_seed": "82E084D15CD7B6C70978DE7DE19596B673CF3EE29A36A32B713496FD67F6F0A7",
+    "metadata_key": "ABF22A200F57CB114D5BEFFD477200A7",
+    "section_mic_hmac_key": "95AB213F52D4E447B6FA5CC544650DDEFB78F285502122175C2F5A103EAD2243",
+    "section_salt": "FE248957483BBFB171D44B82FFF83FBE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D9B6B1F0A69B7B9FE27E8F80069567C0",
+    "aes_key": "C84D0EFD9E47A5D90640A9D7088C5021",
+    "data_elements": [
+      {
+        "contents": "09E6F8330E760D01400A2CFA",
+        "de_type": 572
+      },
+      {
+        "contents": "D2B4",
+        "de_type": 911
+      },
+      {
+        "contents": "761F7E",
+        "de_type": 72
+      }
+    ],
+    "encoded_section": "509013BACCDFD8DB04ECC45DA02B6F1463200C9110006BE4250FD8E960F073C28F3C812DD785900480B27E5A6720404EDD1A03BD7FE9ED984422FE604E77EFA797683D4C65FF1848E25775431C5CBC0D0F",
+    "identity_type": "provisioned",
+    "iv": "568C52B6699A1EFE8632D2AA7CA08F1E",
+    "key_seed": "D80152B000A2814B443ECCC3D861C7480435D9A4AE7C76B354627BE49B903022",
+    "metadata_key": "235F082A46F70C6D07D056CD8302E590",
+    "section_mic_hmac_key": "77249D32B9918E829AB8EE9AB7F1690521BFE9444D8E1C6631D0F3CA0E7A97B0",
+    "section_salt": "6BE4250FD8E960F073C28F3C812DD785"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9622F4D79E9333730B78B9BC45D018D8",
+    "aes_key": "EBB969EA5208D59DC720981E0D7165B2",
+    "data_elements": [
+      {
+        "contents": "8910331A35E52B5CEDF5475C",
+        "de_type": 49
+      },
+      {
+        "contents": "C44C8D",
+        "de_type": 1000
+      },
+      {
+        "contents": "58AA13",
+        "de_type": 182
+      },
+      {
+        "contents": "FFA1715C6158",
+        "de_type": 988
+      },
+      {
+        "contents": "C738C7E2",
+        "de_type": 195
+      }
+    ],
+    "encoded_section": "6190131EBFEC19E821203A81CBA5997277B45391100018A3D32C6D68ECCE86C2636223BC415590041D5D7AF03942C18470CD2FB24DE76784722AD38725E712ADBDF3C681731E6A071438027266CF94D0DCF8B6977AF5EF09433D569ECD90BDC280C1",
+    "identity_type": "provisioned",
+    "iv": "2E0E4A900067722E740C48782D2727F4",
+    "key_seed": "34CA6A5E14C31E2B58FD467CA282371F135FC0E6488219FEEC3D194361416ED3",
+    "metadata_key": "1534AC915B12F7B14CFEC07E905B70B4",
+    "section_mic_hmac_key": "D1B3305F817AB4E6EDA0079FF3B8CA3E7466641381F5D38F31D4DD6336A97C42",
+    "section_salt": "18A3D32C6D68ECCE86C2636223BC4155"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B456A45D23A5C23B3FC7D4FCC2E17915",
+    "aes_key": "0793945D13EB6A7D4F00A59FC158C557",
+    "data_elements": [
+      {
+        "contents": "AF",
+        "de_type": 339
+      }
+    ],
+    "encoded_section": "3B9013DBC90F36C9F1FF8E9371E022326D96C8911000D1988E9F53E270167134FE84104498EE9002A2C66A9C2629C64B6F3CF8EA1BD17FA32F63DD11",
+    "identity_type": "trusted",
+    "iv": "B44C9675A36625470E2D7A5A381596E0",
+    "key_seed": "5E555C4138D5A22C3A975EF93D7C88FBB90B32618661D9EF2A66B14E19E1169C",
+    "metadata_key": "81744A6BBE8C683D7D720AF41783148E",
+    "section_mic_hmac_key": "6E96EBA658E9B9630FC00A38353E4B124102370FD3ED8183ADF0D746326AD0EB",
+    "section_salt": "D1988E9F53E270167134FE84104498EE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "865DB128D0ED615465C4AF33ED747467",
+    "aes_key": "83F6665949CEA0499C06623CE213A83B",
+    "data_elements": [
+      {
+        "contents": "648059EC9A6D7DBA28F98FAD7AEEC6532CE97E6BFF447DEF",
+        "de_type": 114
+      },
+      {
+        "contents": "6E640399BB35A3B4306409C94E87FC01",
+        "de_type": 668
+      },
+      {
+        "contents": "A93CB545FAB30A4742664D4149",
+        "de_type": 830
+      },
+      {
+        "contents": "A3232B62A0E5C5AF352A143BAAE7C285A135A7D4EA5D61",
+        "de_type": 853
+      }
+    ],
+    "encoded_section": "8E90138829246CDB07510CF107652C06222C6E911000668D1D8BCC2E706445B18633C2B2A6E99002285B7692049B38967A46FAAAC9E3B962F961FE806B1FF948E425BA1A82F01DCC601E4AF2000370385A54669989A6D2845E984A850B9FA9FBB5CEA3A4FFD736DBAF48FB432EE5BB8D3F696604B4E133E0543D383D46966C1D47265E1EAFF9FB5D9EEC945343CBB6",
+    "identity_type": "trusted",
+    "iv": "D300ED57F1F0333ED617F9A48A54D00E",
+    "key_seed": "E8CEAB1757CFB2ACB155DD5BBE2A45EBC383B29CC512CD445BA0D4B323F3D50D",
+    "metadata_key": "BE82E42542AAED90F4D6ED5B276C9865",
+    "section_mic_hmac_key": "21EFE7D3CEC8D334C1F5CFDBE2EDD1E3F9B164D8949D629F21348FCFFE479B3C",
+    "section_salt": "668D1D8BCC2E706445B18633C2B2A6E9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7C9D65E47B5C2E0CFA5E700CAE8565D3",
+    "aes_key": "9652732429DBDC4E2E1991C0C86D0399",
+    "data_elements": [
+      {
+        "contents": "603A05EB6CDE557F2181CE8F5C8DE566F7AD9A4EBEB2",
+        "de_type": 755
+      },
+      {
+        "contents": "916FD503DE6BFDA7FB44FCAC3AC2D01E5F9737401235A13BC3965C9660",
+        "de_type": 197
+      }
+    ],
+    "encoded_section": "7090134C8A120B8D74F21503A3F4A924CDC7E59110001C3CF25827D6B07C3DA29410FB3E65889001DE17683402ED39894A9F8D8D73A1379C3177626B72CC7E228915BA9E59842F22EC52A4F12DE1C87B505E41B7F197448F7208E9CCDE7B332E7362B1EDDA249FEA891DA5E428BA7F3B8A",
+    "identity_type": "private",
+    "iv": "D9839CC6B5FA3B7F43F0359AAB386887",
+    "key_seed": "048EB4D544BC85B8026222BB3BF8E829BA5A1D9732B000747C831471D8F584F2",
+    "metadata_key": "98B4B953B6639A1E2E9C264A98BB0247",
+    "section_mic_hmac_key": "A84D8352E99395F20F3B254C761D0647E4CE0D0F5E731F1F02A32D63F721B4E5",
+    "section_salt": "1C3CF25827D6B07C3DA29410FB3E6588"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "396496EE83B2146F12878D5AECFA7945",
+    "aes_key": "701449FA0ED699CB50D88C55F912595F",
+    "data_elements": [
+      {
+        "contents": "3D46DBD04F9E743F41453ACAF24A",
+        "de_type": 797
+      },
+      {
+        "contents": "EDA9FF21CF420BB69ACDFCB00E088703575C",
+        "de_type": 220
+      }
+    ],
+    "encoded_section": "5D9013ECEDE0D46A9124E3C806AC962EF9EC6591100037B25A8B910D21BEC099277838BE0E4B900425DE05F6E9A7D84E24D37D2F7A4307188B1F1E4086A13339E08BB3FD2EB4347B2C3063C09619BEEB61AC53A22B95FEF1EE53A1B8BCB0",
+    "identity_type": "provisioned",
+    "iv": "04D50AADBF5216FEE365473AC14EFF04",
+    "key_seed": "4ED429772F3805E33E327BF674F122DB7E906C7295C6094808E1E775EE2AC748",
+    "metadata_key": "F5BB3CF730A57E58B11EAAB014887EBC",
+    "section_mic_hmac_key": "8B6143DD499724FE80FF2A1CD6186E62D7C8D583265147D222D13BE276EA5B76",
+    "section_salt": "37B25A8B910D21BEC099277838BE0E4B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7E8AE3C9278DEAAB44A0549F62B2AF72",
+    "aes_key": "BCA92DE9B6063961D1F84ECA0C7F6C93",
+    "data_elements": [
+      {
+        "contents": "2CAB785B1AFCD27B65CE80FDD46ED10B10290AB73C307F67EB",
+        "de_type": 542
+      },
+      {
+        "contents": "C74E88BE9C94",
+        "de_type": 979
+      },
+      {
+        "contents": "6DF7B3CD8E17AB4EC4BC118E66622D75",
+        "de_type": 321
+      },
+      {
+        "contents": "23B264B671089BF640B146674E",
+        "de_type": 287
+      },
+      {
+        "contents": "D8526CAB4734644BBFB165AFF944B3DE",
+        "de_type": 396
+      }
+    ],
+    "encoded_section": "92901352EDBA6D632939142BBC95D1B5F6F3B5911000BFF4B3C12EE83E3D7E4D8D334B07650490047DD8DD4231311B1DB06638CBB34F60AB25275FFA10D6C82C325EB5607166A808122420D469489946DD0ED9FF8011AA5F665A5BD3260D64248A48EE3C212CF15EF03DB424536E1AB2CCE9826A89CC0F597C747787A078D98D614D33A71AB3BD1A8F06E6A85EAD38875BB7B0",
+    "identity_type": "provisioned",
+    "iv": "B2938060C2FB3A233E0B0441629A5D54",
+    "key_seed": "A9C66A81FA32BF7736824A6052703C683CDAB0690363FEBB064EC5BF5EAE2D85",
+    "metadata_key": "14F59D0003905680A8E6A3F9F03710EE",
+    "section_mic_hmac_key": "D34BC3D1F158A7340C574C280BFF773A087BFB40DA47AD5C9D59781A5CD6B9FF",
+    "section_salt": "BFF4B3C12EE83E3D7E4D8D334B076504"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "58D90C3496D916C45B1F9629D196FE3E",
+    "aes_key": "3F254DF7C078D8B9BE085F49D44FCE1A",
+    "data_elements": [
+      {
+        "contents": "DAAC6DB1",
+        "de_type": 269
+      },
+      {
+        "contents": "20B5",
+        "de_type": 92
+      }
+    ],
+    "encoded_section": "4290135841F4D3C484D6F0F42B623604D620519110002E6A604207A7F9600BA8826B040124D29001A9A00D43983AEF2049A5CC3D6139B73A1FC6DF1F28DA3B526D64A3",
+    "identity_type": "private",
+    "iv": "A2F7257D7DBBB78925E177FBB9F3E6A6",
+    "key_seed": "5D9A4B660496D7408099AD3AF204A372D5E1B90B5DA37B518FABA1FC72EB29ED",
+    "metadata_key": "E483E747549C5E8FF2E43903A508FF7D",
+    "section_mic_hmac_key": "006E79B19C1D3EB14ADA776B34A4D7601ABF822FD8E69A1BE6F354245E4FEF69",
+    "section_salt": "2E6A604207A7F9600BA8826B040124D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2EA5530CA0FDCA0E3D26F54B36C63756",
+    "aes_key": "C944C8581944D3A7B2145C20572A48BD",
+    "data_elements": [
+      {
+        "contents": "87",
+        "de_type": 543
+      },
+      {
+        "contents": "624BD963E5CD706B8CEA97FFE4F19FEB72164DEC299F657830EE771F40",
+        "de_type": 38
+      },
+      {
+        "contents": "1F73",
+        "de_type": 693
+      },
+      {
+        "contents": "0E690425BDF2F9697C793C79D9A4B31BA621D37550295D8DEA1650",
+        "de_type": 455
+      }
+    ],
+    "encoded_section": "7D901303D613B4D65DBD34B0C37617F6403DAE911000A90775A9B65F4CEC0DC078F9EC5AE2EB900165055500DB14C4C9DF1475CB2947DAC616B755A1DC498623CBD1E5876A143201343233A2795172250398353EA567A343F7545CFF7D0D47CC7FA7C78040C5AD20AA8A802F2D5931EE0C69B984A697B56C19A71AE99BB9",
+    "identity_type": "private",
+    "iv": "8CB642644013FC19152A421C7AA99747",
+    "key_seed": "160F89D53618D964B47995A7DDB753A8A5E48A1C3252E469E57AE50C1CAEB0BD",
+    "metadata_key": "5CE66B8C2BEE9225C1AB9CC4C80A166F",
+    "section_mic_hmac_key": "F22F3AB674F0F89BE488643EF7D0AF9B0DC35E89EADE13A9D1563250970962B6",
+    "section_salt": "A90775A9B65F4CEC0DC078F9EC5AE2EB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1D51D1DA179BF1915279BF30DE1F4B03",
+    "aes_key": "BCEBEE8528219B39A7950E3D66C9B154",
+    "data_elements": [
+      {
+        "contents": "50528FD9150AD0773ADB5E08436CAD30C30FDA",
+        "de_type": 592
+      },
+      {
+        "contents": "C44A41",
+        "de_type": 561
+      },
+      {
+        "contents": "561F383B33C5EEBDABBDA184A1A4605A82",
+        "de_type": 814
+      }
+    ],
+    "encoded_section": "67901398BBC302C18E49799FA9EEBE11B8FBF1911000C2261F071C3C3CACB7699B63CD49EA1F900142DF2A9BFB0F1A01DEC1A14194866B92A2374755F6DFC853AD50A93FD547E6BFE9FBDEF421A6A18B3D882669EAAE1E4A4C4379BF01D5B44003CA2A66BA38CEB4",
+    "identity_type": "private",
+    "iv": "E7FC9AA29E2E9B3025EF3BBF9D18E508",
+    "key_seed": "28CCFC888CCB929D63843492569B71440F998A36D7F006F7E724F777B5B6EBB5",
+    "metadata_key": "AEC3202A86B1814AE764DD7C97BA19AA",
+    "section_mic_hmac_key": "7443E143DD31C1C97B1BF6E1932D9FC76E5796BE5D2B088062FA5958F4E2ECDA",
+    "section_salt": "C2261F071C3C3CACB7699B63CD49EA1F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B33B26F42720F3F275CAFFE124CD7B60",
+    "aes_key": "B6BF74F4EA862207D56E4B42492C3CF5",
+    "data_elements": [],
+    "encoded_section": "3790135B9259B281BE3914623875BF9E184F98911000C3391346E87D492348FBE56098116AF89002D57C10A9667412E9067FB677AB7A26CA",
+    "identity_type": "trusted",
+    "iv": "45217E0F0C06D7B7918C468D9F0CF490",
+    "key_seed": "175D317E4277BD3F2EDC5F019D5EE8617624648F818058FBA3D605EE3666DC14",
+    "metadata_key": "B92E7217A6255FD283368724DAC465DD",
+    "section_mic_hmac_key": "CB3E7306030B4707AAC625998DD40082CB446835BED1A2B78DE401CAEB39D842",
+    "section_salt": "C3391346E87D492348FBE56098116AF8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "872CE0191545242D5BF00528AB6C7091",
+    "aes_key": "8032D6560A386D2B603442FE39BA3C7F",
+    "data_elements": [
+      {
+        "contents": "629E6EF672C12AB58DE63B36856CF2EA31E8B9AB20",
+        "de_type": 508
+      },
+      {
+        "contents": "74C4F6C190C2",
+        "de_type": 354
+      },
+      {
+        "contents": "53C627E2262407A36E657CB2D4BE0F4254F68754752D7F76EDEA38BEB0",
+        "de_type": 585
+      },
+      {
+        "contents": "9FCFCD14189045E1EA71527C23E0",
+        "de_type": 36
+      }
+    ],
+    "encoded_section": "889013BA20D5744F0A5B0D208F3FE3875B284D911000FE0E258981EF48CE93EBC213AF3008509001345EBC4DB96528D67C20FEB41E9D7546D0146497B05D4701A172C2B41AED376F0450242A7F99BE6C14749DC04AAD3C3F2FA1E2531C1B7723D1D8651D0360252A83CC256B1001FB12EA9977FBF620BF8D461649F3F0171A3A457F84660A0B61CB9F",
+    "identity_type": "private",
+    "iv": "B31619F16E2A96F0C1834F1CD39193EB",
+    "key_seed": "9B06F9933F5497ED81E7115DFADFC68121B611E0AEC678B4DF8DD3CB4BAEE49A",
+    "metadata_key": "5C8F5F80BB667FAD70D156F07AC0C375",
+    "section_mic_hmac_key": "98FAC07C93E48317E374F2C0AA92E9794BDCE4C9323684D245EF332F0A032D28",
+    "section_salt": "FE0E258981EF48CE93EBC213AF300850"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "086B1E981485B9E1899F0EC60EB9E83D",
+    "aes_key": "AE86A76940D9517BC921B369256E4DDA",
+    "data_elements": [
+      {
+        "contents": "E0D97D47C6C09CD6A1DB96F46DBBD02BB351713DF1F2B0",
+        "de_type": 882
+      },
+      {
+        "contents": "FC3BD546F065A256DC995A5FD110C59F231A47A65CAF7020C7D582E0E6",
+        "de_type": 867
+      }
+    ],
+    "encoded_section": "7190130F2D843A93FC1F1CBBECF81D2A1C6FC0911000495249EE8F8F7ECDCE556774EF54D8B590045C25EAAEDA1187C4C0786320BB35C0FAB443CF096A783348E054BD52DE5D813AFFC6E9E04F9119B64BFDF45ED2D9C410CBDD53B9E6B0056F89AEEAC6702F71FF0F1A03E872EA10D42028",
+    "identity_type": "provisioned",
+    "iv": "15CA63A0FB423A4345E9E1C6B9A5702F",
+    "key_seed": "3DDFBC62D50D8068946200951BF0019D32100459E073453DCB6AD714BBB239B8",
+    "metadata_key": "88E6A925FF482DFDBEF5286BE14362E0",
+    "section_mic_hmac_key": "C0AAF2B1691A87BF9585A47B1C43F73D15657247D75AA873CB27DC2717A16956",
+    "section_salt": "495249EE8F8F7ECDCE556774EF54D8B5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4AA9E6490E510E2078D1C0C3C39A8FE2",
+    "aes_key": "00B42CF723FFB9E400D6E279979133A7",
+    "data_elements": [
+      {
+        "contents": "7EDDDB47C2233581E9E08E",
+        "de_type": 172
+      },
+      {
+        "contents": "29FF84",
+        "de_type": 411
+      },
+      {
+        "contents": "465EEA463E31B716E8F836EF7AA2F4F3841FC0DB6397C2",
+        "de_type": 297
+      },
+      {
+        "contents": "E547C85EC74056696A",
+        "de_type": 916
+      },
+      {
+        "contents": "115F4417",
+        "de_type": 682
+      }
+    ],
+    "encoded_section": "78901348721D68E725F93B39C9A8583F2A65179110000941A104B100C80468194C862B7044DB9004D6BDEE7AA257D998A85D7415504BF0A40A6748CBF0B55C1EA5F7D5D2B9D0D48052FCE5A679E9BABA967262CE798ACF31397983254EF161DCCAC8789DFD88D052C33592CA3682E9DC143104E4506C0CF0F1",
+    "identity_type": "provisioned",
+    "iv": "F9428E5DFFEE82FC83DA408FAD488BA6",
+    "key_seed": "DC69ED874663A6D1321BD38B4FBDE1469EF8033DA98BFA2ED613C62BDEAC381C",
+    "metadata_key": "EE6FDA87A6449B99DB62777CDAB5A388",
+    "section_mic_hmac_key": "E227F098FB6C323970409D263B84AF7F8CDB64BA4D5F13DE8AE304534DE8B2A1",
+    "section_salt": "0941A104B100C80468194C862B7044DB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AB93EA96A6733359BAD13F6BBCBF7B61",
+    "aes_key": "A52EF583D412622DA1C23480D23A385D",
+    "data_elements": [
+      {
+        "contents": "29DB99B161DA96A74C67E613",
+        "de_type": 62
+      },
+      {
+        "contents": "714F915FE037AF3F5CB8",
+        "de_type": 420
+      },
+      {
+        "contents": "06F14F79DE3048918C71D3",
+        "de_type": 843
+      },
+      {
+        "contents": "D522C29C",
+        "de_type": 635
+      }
+    ],
+    "encoded_section": "679013C6C4FC258307EFA7BCB4439224E74253911000AC7EDAD03EA393EFAE096E5CEFB2CE65900449CEC3FDE6A1D76BAAA872A48CDEC69967A588F62B2BB08A7F9171FAAB1DC49C863FEBEFFCBB817EC29D18DE97FBCAC780743BC6A83E9B5F508B25EC0E51EFFB",
+    "identity_type": "provisioned",
+    "iv": "51A074E8F49F530A81C6ECEA74E8CDCF",
+    "key_seed": "1522F314EAA2926513648D2B83271A75BFEBAAD5387061BE1230F1D8EDC66652",
+    "metadata_key": "E758C77E18404342F1376AC800912CDF",
+    "section_mic_hmac_key": "0F67209BF8099626E6B190676AA37C880BCFF6FB3276D2F9E0A831DB10E4781D",
+    "section_salt": "AC7EDAD03EA393EFAE096E5CEFB2CE65"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "095CA3F2D80C77F0418F84F670BFE4DD",
+    "aes_key": "E98006F8F0DBC0CC557E88A28C8BFCC2",
+    "data_elements": [
+      {
+        "contents": "42DF097BBAED32E65BDAD093BB844FF43E4AC0350B7936287FD513A3",
+        "de_type": 462
+      },
+      {
+        "contents": "856C428A8B8613E12BEDA66CC0B14F80E4AE91625DFB55",
+        "de_type": 846
+      },
+      {
+        "contents": "5722372800A0436D655ABCCE6E1AFC666D996774BB8F5749633D",
+        "de_type": 434
+      },
+      {
+        "contents": "B4",
+        "de_type": 989
+      },
+      {
+        "contents": "17C86D",
+        "de_type": 843
+      }
+    ],
+    "encoded_section": "97901310C6A1E0973AA6302F83F5AE781EF3479110009D8967ED6923306F238BB3006CDA188D9001041B76BACDB753CFFBE885494E2B902326FCC7B845B95EB51BF31D16FDB3B8F1A31165528F6B88DC94C53FD7BE2034E003BD25E0258E27874EC2A30DEF2CB678D1D2B3155A6801CF086B3CC55E9777C651643D5ABC9E09397E8760C20DAA9749047403B15F28F2ECE9504BD5E926697B",
+    "identity_type": "private",
+    "iv": "8BD95493B557D0D6BEE013DF112FB494",
+    "key_seed": "37CBFD8DB4C74643FE9E7DB197BCB40CCD42B5F18E9F2B7D992F3E85FA23E11E",
+    "metadata_key": "FFE4710FD8DE1B837916E1876A10EA14",
+    "section_mic_hmac_key": "51F1387A1CD7B6E8FA54715C4D49B041B88B1EC083BFE9196EF4C3159ED8B240",
+    "section_salt": "9D8967ED6923306F238BB3006CDA188D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D627C02EC7A9E006CB069B3BD4087015",
+    "aes_key": "DE628F5616A31A91575202E224BF8654",
+    "data_elements": [
+      {
+        "contents": "CE3B7D68CEC6826B",
+        "de_type": 768
+      },
+      {
+        "contents": "4B98C12698675C54D6BFFA3284320DA49C",
+        "de_type": 307
+      },
+      {
+        "contents": "6C472F7D1F024972817EBF5D9CFBFDE075C093A2C147460E4E34407E78",
+        "de_type": 501
+      },
+      {
+        "contents": "01D2ECEF31D5DC0647092519E4B01200DC",
+        "de_type": 579
+      },
+      {
+        "contents": "6E88C150DDC8756487059C8509B830ECE39A6650B9A50E795E96C8E48B4E",
+        "de_type": 7
+      }
+    ],
+    "encoded_section": "AA90130868EE3BB2CC54975E92D446C82484A1911000973274E6978EEB00588121FF8F3D27239001954DEF19883BF50F4EC920B26896C66CA5E39D8CCADCEC933FEF576ABBF18F03128EC12C963F80262C6B34F00F850047928D6C145AC20B109AFECB4CF1964254EBCB825846E26C4C1F9D25B68B86955F4AB0C176BB905BCF2DFFD31CB7DF833FEA3BC9FB1E7ACA47E0A4F2469A3DF5AC4A4182C1E20E84EE649F09FDE92FDF7B4DEF91",
+    "identity_type": "private",
+    "iv": "6917AB8BD905BB352E8079F1F88931DC",
+    "key_seed": "DE1289A8ED8D1DF4BDF85AB82ED562ACFFA82F00634CDA0A87DE125DC862B0DE",
+    "metadata_key": "DB5CAFC921FD2A72293660D037EC29B0",
+    "section_mic_hmac_key": "DB3248777D235AC436DD5D78A6601B8391D75E9D13FEDFCC95E5A7EF5E1D5793",
+    "section_salt": "973274E6978EEB00588121FF8F3D2723"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95C2D7868282E5790EBDDCC89759B4C1",
+    "aes_key": "CD7F86C35D2BD47F9DF1F0929CDF7123",
+    "data_elements": [],
+    "encoded_section": "3790138A13FBFBECC148589176B2F090064A779110003FE8296502CF32A8202018AFC04A52159004B1DCE781C276A9FC00F5380DC9399063",
+    "identity_type": "provisioned",
+    "iv": "413A5B6B45F312FDF51C8DAAECF692F0",
+    "key_seed": "21C30C7548CC08332F259C493F122582C9D2CE04E2E3F22E715F9EDCB12D7100",
+    "metadata_key": "2AECD34AD9CC88413723844F52128EB3",
+    "section_mic_hmac_key": "D31EB890A1B0AC8F46E70771ED9F20D0FA173F33613BEC221A9502FA131B07D3",
+    "section_salt": "3FE8296502CF32A8202018AFC04A5215"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E96C90F3BE79939E8784E2DC5B31BDFE",
+    "aes_key": "775282A7208DBB1E7F6605D293E01569",
+    "data_elements": [
+      {
+        "contents": "A40AE87570892CED908675E9B1",
+        "de_type": 353
+      },
+      {
+        "contents": "C003",
+        "de_type": 516
+      }
+    ],
+    "encoded_section": "4C901368AC6D32D83AE84E55E96F8D2AF048B89110001B662351BB4DEF5C1AA42CDB493A8B36900133373940E3DE0962AAC26099DEF282AEE69427FEAB5A78CFC17FAB668BE3863DD7E13207E5",
+    "identity_type": "private",
+    "iv": "957E38A6D3C646EF05B80926BAC32F8F",
+    "key_seed": "FFEAF2E7E81186AA1F7546BF64C02F19B713424698C2D27230B0C18D0FA88778",
+    "metadata_key": "76052E1B1E33C77A468457355A7A480C",
+    "section_mic_hmac_key": "171933B371C424F5B76BA421F60FCAF87DDA0B96E37278E25F336724BE96573C",
+    "section_salt": "1B662351BB4DEF5C1AA42CDB493A8B36"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7134809DD3BCC616EC1193B90257A9CD",
+    "aes_key": "4F8BFC75339A3481169241E6142BD16E",
+    "data_elements": [
+      {
+        "contents": "813D3DB42909EEB672E0068FFF5D5C11FF27862ED0A7B49C2DF69A1096BC",
+        "de_type": 368
+      }
+    ],
+    "encoded_section": "589013C03A5C09B42E407DFBEF97C62255E63691100075B3832C1FDAE86E2FC3F936C7FA33E4900412099B1DFDD67635F1F0F5EDA28912BF4EC1876FDDFEF75B39246E62447E0AE9BF9C0D5DA26B1C71B0A995CB31D31E2B06",
+    "identity_type": "provisioned",
+    "iv": "87A512B81D64F5E12678BA49BBE8827E",
+    "key_seed": "56ABD8D2A0121F6B2036F5995FB901C671902708CE8F122F9FA2EEEDA76B60A4",
+    "metadata_key": "E2D1095A39383B17B22D89AD524A2503",
+    "section_mic_hmac_key": "3F04EABBB85B4DDDBC2EE93DB5DC9E5748E086829E0A933E5484A2828309C7A1",
+    "section_salt": "75B3832C1FDAE86E2FC3F936C7FA33E4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "04822A3F914BEB02DE158387544B33B7",
+    "aes_key": "9E61F07423A43898F2B2BD793AE78265",
+    "data_elements": [
+      {
+        "contents": "573A24E1C0",
+        "de_type": 73
+      },
+      {
+        "contents": "5737FA2542C8DA3B14D5AF59E185EC",
+        "de_type": 145
+      },
+      {
+        "contents": "B3D90DD4027492BBD8F6A03869891466D2F7",
+        "de_type": 517
+      }
+    ],
+    "encoded_section": "6590132A1E9626DA0DB9A7149FC698FF5A112A911000A5516EE85A8E5F68A7A20CD1AD0F4D8E900151BCBC864AA670083AC7607F17733752559F4B7A02ADBCFCCF538935D532EA7429ED06742544428A52A88BBFBF205D7E1E16D64EF0449E9F70CB8697AC1B",
+    "identity_type": "private",
+    "iv": "C1B1581BE83D958184B1F20B62878655",
+    "key_seed": "434D7F1E6F20E72E968B6967177C7172E89F20605C6A0CEECB940DED13C73417",
+    "metadata_key": "E31B56FB8461D5D0C9CB4D65029B27F0",
+    "section_mic_hmac_key": "D7B91FDAD07753CB972FCB2300055E27CF54F56F1B5C208126917ACB4B98B40E",
+    "section_salt": "A5516EE85A8E5F68A7A20CD1AD0F4D8E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3BDCCBBD6FAEA4D81F0C38846EDB0007",
+    "aes_key": "2009340BB233CF0120BC7B9D43FF6EA6",
+    "data_elements": [
+      {
+        "contents": "9321C26068C444C77A4C",
+        "de_type": 568
+      },
+      {
+        "contents": "5610C34A4873EE4AEA0D64E07AF9F0805EDB22",
+        "de_type": 616
+      }
+    ],
+    "encoded_section": "5A9013BC4CF26CB67978FB671CC8C30360E7F691100000CCB08A96F8FFEE613C18F090085B059001A1F803A6ECEDA8A6D891CA8D93D521231DF5C635EBA09165E8E53EB8A5577299D4F9BE41035EA3C9E9E43A7CF32D44D4DD7BC8",
+    "identity_type": "private",
+    "iv": "4B3E5E0EC2C11AB77F1B5F0F282B1549",
+    "key_seed": "ED165FB36D9788873B3C2AB86363A5FCE5728FDBFA33798E8242A27ABB4E314D",
+    "metadata_key": "E207E837B797DCD4B7ACB5F58312805F",
+    "section_mic_hmac_key": "C9EED4F111AD3783F9F497CE8EBE2591277DCADF8C96A4E4E31648C62C31154F",
+    "section_salt": "00CCB08A96F8FFEE613C18F090085B05"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4E7FB1A6499207FA6E81670CEB1A517F",
+    "aes_key": "ACBD147D71B379B5788ED1708E5AAB0D",
+    "data_elements": [
+      {
+        "contents": "F33836DB6662BEA48A083FEFB086714D",
+        "de_type": 544
+      },
+      {
+        "contents": "008185A991906A5F1E2F45358097F39258",
+        "de_type": 503
+      },
+      {
+        "contents": "A887EB3A5A5DDD3E234CFD84860E570D769BEBDD",
+        "de_type": 401
+      },
+      {
+        "contents": "7FEC120653B2C2F4430F1D4E",
+        "de_type": 285
+      },
+      {
+        "contents": "6C55DC27D312CEF55DE857C7",
+        "de_type": 614
+      }
+    ],
+    "encoded_section": "9390139C09EE9AF9FD231DE8BBAB6A3006E327911000BB8C90B1631FA5349DBE93A8F8089D829004A288A109B78774698FD5CFD572F82AE470B5DB59FC33E58AA8D84517653DB8FFE57FA6DC1584B21D29FB3B744BC763DEC891B42CBBF2162E5634FD2AF6ABBB98E8A222E1F86DB6E92F9E79613D133EE7324A21F78F9F024EDF1BE8C5CC21A1330DE313169D2130088FA49904",
+    "identity_type": "provisioned",
+    "iv": "4D83F30109D4707667D1BAABF2BA1312",
+    "key_seed": "1CD41F0D8F60C95335ECC8B03AECDA964413DFA25F51950A867F86A91E4206BB",
+    "metadata_key": "CE44E301C09D5B72BA4D077648431CF7",
+    "section_mic_hmac_key": "8607BFB5EA7F4CEEE160990667025D950511D4D909A1ADCBBEB8D6F87E9B2F2B",
+    "section_salt": "BB8C90B1631FA5349DBE93A8F8089D82"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ED8F34826D86C32F70C23B1B7A4B931A",
+    "aes_key": "489A79206A9D1A6778D00DB2A49A6BA0",
+    "data_elements": [],
+    "encoded_section": "379013ACB36757EB46FC893FABF338BBC613D0911000FFBC4E258FF5E9F7D2E3BB3B6B0C03C69002DA9B70F9A96DAAEA10B5DD919D09267B",
+    "identity_type": "trusted",
+    "iv": "0FF0CAC823EC377E5757B4DE2E57EA4A",
+    "key_seed": "D38C6B417FCB3755D9EB0813204623F4D6D15CD26949DFD5639A905C4C58DBBD",
+    "metadata_key": "BA5D7A52C4E2F3B7BE99BF65507ADB9B",
+    "section_mic_hmac_key": "5002DC45274213683ED0C9D8364625DB71326B85DB9B7370F4462D54A94527D7",
+    "section_salt": "FFBC4E258FF5E9F7D2E3BB3B6B0C03C6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7505C20263B4515F9CB242EED923D870",
+    "aes_key": "665A4ED25C48BBCD326496615C99D4EF",
+    "data_elements": [],
+    "encoded_section": "37901355742976F9F16F16C040E5D6ECF4882E91100095564CA7F1E190FC5EE16F47CCF6C23390013538A67CCE880536A01C72FF44A360A0",
+    "identity_type": "private",
+    "iv": "D6BE377B90522E1975AA152F05AC1714",
+    "key_seed": "D1D38E6F7A3C498D1CE230C517F2980757908842DC5156207BEBCE1090091671",
+    "metadata_key": "0A2CF8E7C024A0973C504D339D272277",
+    "section_mic_hmac_key": "A6E7D3BA8BE08EF7DEE3F254B9FA1BA00EAC09FDAE80FB3594A7F45BD20D03D5",
+    "section_salt": "95564CA7F1E190FC5EE16F47CCF6C233"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA8E64EDDB1675A292FB90F2BA2412CC",
+    "aes_key": "30F49692078E22708DC9576A3D30B872",
+    "data_elements": [
+      {
+        "contents": "91F9F257617B60E1",
+        "de_type": 29
+      },
+      {
+        "contents": "926A971187C6A8743030B07C43C7F92AC3",
+        "de_type": 144
+      },
+      {
+        "contents": "F86E6E5010AC0B38CD920ECBA177745EB482C8C550CC55835C0C4B03",
+        "de_type": 855
+      },
+      {
+        "contents": "FAEC19832C3B80EC7D3D54893B7D8A197AE10BEA0942C77B1860E009E784",
+        "de_type": 666
+      }
+    ],
+    "encoded_section": "95901373ABB9225851815BD480DA08FA8E6D25911000229044FA21CC77C05DE710EE2B6D8903900444EA1F1D35B55D569CCBEDA5F7A130C9733885E75A3E64CB291A1FB898AA1D38ADFA7F54FC82C99CAD3FF8BFAF84E1A629EF64CC44C42A6EB46848C1C484521C3DB5424E9A1373A5B6B61E04B4E9D1CDCF8895A83BB87E3A227105E86461B6A688D9017998EF9037C71724622127",
+    "identity_type": "provisioned",
+    "iv": "B50D2E6EAF29D66713CFD26E4684BCBF",
+    "key_seed": "DAF73BE7AE7DDB8534853BB9AFD81B9A0F84990C601800F064E785AC4E655E85",
+    "metadata_key": "3F7EBA8DE8D0F68019C31AACAF5261F0",
+    "section_mic_hmac_key": "6E85868E853E08E194206FFC05E20676767CC9919ED9D83EFDFF045CBDE41127",
+    "section_salt": "229044FA21CC77C05DE710EE2B6D8903"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ADAB88DD84C90EC093A37DBD22747F09",
+    "aes_key": "70E5FCF2EA88CD2F7E195CF371F91614",
+    "data_elements": [],
+    "encoded_section": "379013F3E7199AA4111F9CF619FF98EFE320779110007302B6AB9A8C6635C582F17B5C3A0C0C9004AE7E83243075B04693077AE9E27EB88E",
+    "identity_type": "provisioned",
+    "iv": "4406E6C3D68D6ABD808E34740D9E8D33",
+    "key_seed": "9DE259395C1D23114C8FF35253E3B2FD3FF1CD43FE56C35A9A13636E5A88E4FC",
+    "metadata_key": "2D61B2E8816F45A67189DC8CC7247768",
+    "section_mic_hmac_key": "CE942B542959217EF710089A1AF55AD6422DE8D0E57E67CE9E3A2F71E68C3FA2",
+    "section_salt": "7302B6AB9A8C6635C582F17B5C3A0C0C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "93C14952EC8743C5ABA14B9E3CD2A212",
+    "aes_key": "92A48E1409E79E488DE6F3EFB23E8637",
+    "data_elements": [
+      {
+        "contents": "9B8E20ECDFBA7BD59E1115FE",
+        "de_type": 678
+      },
+      {
+        "contents": "1A875433F13FDAECE0BC0F3DF535F1EEE4B48519A5F09094",
+        "de_type": 456
+      },
+      {
+        "contents": "DB29429B7B5EC416E915AF6199C7799B580C8AF38FDD2CA0B978061857",
+        "de_type": 71
+      },
+      {
+        "contents": "9A3C1C6FCBFA243767F11F699FBB05C45E0B",
+        "de_type": 676
+      }
+    ],
+    "encoded_section": "959013DBEDC73C45241D9A454F0C6A9FCB95FE91100060F06A98234891C9EC864EF4C451528090013CFA5840B3F51C06556DC68F28B66C20F000A26CA532D3E66410933BFE1A27F9BD731DADB297BF8D2410821546727456C472E78C2236559A6A19C98C1112955B8E2EBA08F99CCEFFFB79C84294BF3E110D48EDE4C46AEE3B68DBEF75C21B9E899F1B780153C7BCDCF063698B7BB6",
+    "identity_type": "private",
+    "iv": "7B5C65A46F927A75E810DC5BF783DF87",
+    "key_seed": "2D88999EBC4AD1D16AFB3F6956C25843E701958CE6456DA83F2108CF03D1E055",
+    "metadata_key": "844CCA7389ECBD8B35A9570B59100971",
+    "section_mic_hmac_key": "632ACEA290B0CFD3A4404D9FF8C0544E2D2734358F2F12C62280DABB6A50CD5D",
+    "section_salt": "60F06A98234891C9EC864EF4C4515280"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "31D8F19C7BA1B4815280B53E4C848B73",
+    "aes_key": "F5A28DFA51BF40D655E31AD80FD3A00D",
+    "data_elements": [
+      {
+        "contents": "B835",
+        "de_type": 317
+      },
+      {
+        "contents": "0E",
+        "de_type": 505
+      },
+      {
+        "contents": "87E0ECED60A5F831AD115AE163ACD38DD2334F0C2C",
+        "de_type": 724
+      }
+    ],
+    "encoded_section": "58901345C41F264D52643107E9FA58DBA9B42591100025E0D336AA3C2B471BD678673723E5CA90014031003378B065A86FB1CBEEFA7194AE280FD23FE579BE5DC32DD905686D0E706C6893BA092D4FB7960F9D296026A3EFDA",
+    "identity_type": "private",
+    "iv": "D61308A82CDC546B11B0B1FC341BF594",
+    "key_seed": "040A634AABD48B4660C06ABFEC3FCD61ECE2D52BA2A5E434E8D9477A654CE176",
+    "metadata_key": "36A1D6F085BCD1378E14173389DB0956",
+    "section_mic_hmac_key": "A0862AED0DEBD64349EC492BD7E8ACA6F7D874D24DFC983AE1F287D06F147B23",
+    "section_salt": "25E0D336AA3C2B471BD678673723E5CA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "09C377FC67DAC5FA8D0C7E1077618F01",
+    "aes_key": "D7AC2B958F079D386B0B392BF01F537E",
+    "data_elements": [
+      {
+        "contents": "01F59AE40EAAA786B7C46D8B5C2E1CF22A7927D79566",
+        "de_type": 254
+      }
+    ],
+    "encoded_section": "509013153E5C4EAD84B8372B09243DD7F8E90891100064F6BB71376AC822BD1EB434AFB7CD6A9001E4317B766820FEDA9F298B00E0CC0C1BA0F863130C35C146C86C683DF5D53D67E28733C55C3BCBFED5",
+    "identity_type": "private",
+    "iv": "CCA05AFA378ED7E3B6E33DEBCFBF204B",
+    "key_seed": "E224F6BA2E99537502A84B96F633F5E8F2020772A7298A359C860212261FBC8C",
+    "metadata_key": "FE01B6AEDE1A55184EB6477E1E0EC794",
+    "section_mic_hmac_key": "A47DC26C0806F40C5A322E13CB35735CC128C1DEE916EB60DA5BFA0A39F2F661",
+    "section_salt": "64F6BB71376AC822BD1EB434AFB7CD6A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EDD2C2498BFB7A5CC6C86DCF37816EF1",
+    "aes_key": "B638E541BF8E9E4D3F8CAB0D9C43E637",
+    "data_elements": [
+      {
+        "contents": "53BEABE818B66A0648BBC5634C",
+        "de_type": 583
+      },
+      {
+        "contents": "15B95BBF16",
+        "de_type": 965
+      },
+      {
+        "contents": "A72D1FB5F1FCA1FCDB6BD086B1AB05984A2CBAC020F65EA3DCE95ECC8E82",
+        "de_type": 617
+      },
+      {
+        "contents": "BEDBEB964295D2487E60521A0B779C41C92D001865F636E6D188",
+        "de_type": 611
+      },
+      {
+        "contents": "4698F885A5C7385C57CCB1",
+        "de_type": 524
+      }
+    ],
+    "encoded_section": "9B90133F363F1A9D391313EDCB62DC7AA6FDAE91100007942426FD3FFCE7249E32B5F9E1484D900298AA6A9DF9942745B0947DA0AA8DB7E48C35BE7A0E4A439696CBF426A0091045DDD1C04A3205A048DF546DE43851CC0686DE448A75CEA658D7D6092FAF23BF29CBD23D5F5ED23F974838B625C25D73F8E5BD6ABB82860479288BB7D7D0978779F30A9071FCF6EFE1392E1FEE30F696D95FED120D",
+    "identity_type": "trusted",
+    "iv": "6B4203747F8A557FCE61C1E19010B25F",
+    "key_seed": "1590AE9CF009E4B80464AAFBFCAAD6BC46EBDDAA6E628A422A1B4249F4FA830F",
+    "metadata_key": "1935DBB80CC48394742FB7C36B028FAC",
+    "section_mic_hmac_key": "71D7A4B4FE0AF5B94EA90A46FC83E860689BA4396E20B502B0D4864EA65BCCAA",
+    "section_salt": "07942426FD3FFCE7249E32B5F9E1484D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "935B3FFA8B8135594E8527503826B3D2",
+    "aes_key": "93E2CBB2A2EBF1A3AEDB88002066B1A4",
+    "data_elements": [
+      {
+        "contents": "2E4398A194FCB5AB5D16115ECCFC8DF14F",
+        "de_type": 641
+      },
+      {
+        "contents": "C1EA5737",
+        "de_type": 754
+      },
+      {
+        "contents": "B29CCCE545D2C871",
+        "de_type": 110
+      },
+      {
+        "contents": "6EA75755FC7744088E0F7B362E41237279C4FE285F5C635F07D3CF752607",
+        "de_type": 973
+      },
+      {
+        "contents": "874045A5D8A7AA4E81B9EE2882373798DD9ECB95A34E11",
+        "de_type": 733
+      }
+    ],
+    "encoded_section": "979013EA6D1A285718D881780D442828F059B99110001DCB8556D111B113078C24BA2F06257A90028982A17443826EBF908DDC14E2E9453E86613E316703C30041097712D0D411DF102061D68772BD9E8C2092DE956BA65B2E07D9B0A7B17923D252DFB126135175629DD89BF5C96D17EB260EDF8A3D5B81D553CDA272E2DE310635BC84C3954F2A0793434C18915A2C3116A46BD0B858BA",
+    "identity_type": "trusted",
+    "iv": "1B9858676FA1CEB84951BFC4467F1C8B",
+    "key_seed": "CAF5566753E37F13983777EDAAA48A37A6571043DF2006AEF7D119B7AF42CDB0",
+    "metadata_key": "F253A8C6D3DBF176DD97993A3374EE11",
+    "section_mic_hmac_key": "ED5EC19C2A28BD1AF19B1AFF30EA766510474865A3F7F1A202C54F8B4F381B78",
+    "section_salt": "1DCB8556D111B113078C24BA2F06257A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4E0560D260CF64013CD1C5CC2E650168",
+    "aes_key": "A3BDBB9EAF2B23B5B4FF966CE7145FCC",
+    "data_elements": [
+      {
+        "contents": "1FE258CEA28507442694EB54141E014514673A8BC93C",
+        "de_type": 794
+      },
+      {
+        "contents": "43B8336BA71888E38BCAAE61CE2A14800F8391BE83AD3084",
+        "de_type": 752
+      },
+      {
+        "contents": "E1D434ADA8FDE1F7D4DAC388C51B119ED88A3BBB15176E5C2B4D4F",
+        "de_type": 681
+      },
+      {
+        "contents": "05A7198CF43DE4",
+        "de_type": 195
+      }
+    ],
+    "encoded_section": "9390130807BD8B1CD2AEEF80505B5DD980558A911000235636B0516C0EBF29BFEA053BA6F2AA9001E8C847964A02279AB5856888A436078FBEE7524388992EDAD6505EA5910375D473D171744D84BE74C660D2E11F39587D329E1E9179FEB630C8282FDEF0943D8A1C05C27CEAB78D3F2E4840F84C0E111DE4488459DE4476D9EE8F50350B123B54057D3672B664AA442F43E812",
+    "identity_type": "private",
+    "iv": "8E5A00D0BE05A48A2BA357E27C2A67C0",
+    "key_seed": "E90D5815F43501F8DC7DADE9C1FF1E8B42893B9CF708DF00B7C7852C5A4132DC",
+    "metadata_key": "EDEB59B65043C9D70892DE01B1FAE8BB",
+    "section_mic_hmac_key": "DEB63991F7F5B2C38BE71212E5F29C6EAA5030154229B40D1369EECBE2D4B44F",
+    "section_salt": "235636B0516C0EBF29BFEA053BA6F2AA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5B1529C4EF462754DC819B8A7A990368",
+    "aes_key": "85EFE96F8D4DE137F7742C19A794CFA3",
+    "data_elements": [
+      {
+        "contents": "11DFFC1867A923A6F11B76237535D43A",
+        "de_type": 507
+      },
+      {
+        "contents": "24",
+        "de_type": 689
+      },
+      {
+        "contents": "987A00093A8A9BFA2BBFD82D5822586699A7B76899C3CA21B80AA95413",
+        "de_type": 341
+      },
+      {
+        "contents": "816761B857BFB83A8EB308A3",
+        "de_type": 313
+      }
+    ],
+    "encoded_section": "7D9013904699D605A53254C2CF00ECC73CB8E6911000F2EAAC8EE7A9ECAC553E0E8EA6E370369002917F7D53E0000B7D92469C691DC007DDD552F7EF633EC0ECD760CE5A2A5551F2B3EA3B9FF460BA6CB1AC699693216AE065736771BAB5DBFC447BDFD3A0486F7E891703FD14D140190E06692A5C0E4601F0A11CCE364D",
+    "identity_type": "trusted",
+    "iv": "5AE06EF1A9B235583770B28C6F519692",
+    "key_seed": "8CB9FDA44549F1764F0FEDD6C7EC01D2D861BEB2F8314ED90C4780AF46140765",
+    "metadata_key": "4099FB6F91A2857E338956FE29D1A1BA",
+    "section_mic_hmac_key": "C98F2D369EB883C1758AE560E8A1E093C2978F0322E39F8F9EF2723257C7E73A",
+    "section_salt": "F2EAAC8EE7A9ECAC553E0E8EA6E37036"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6AC9566CE6E59CA80D112ABFEC45D36F",
+    "aes_key": "B8E9265C2F748123F5B9F751A7A2D03B",
+    "data_elements": [],
+    "encoded_section": "379013A8BA2217F87C377CFB1EDB0276E64980911000FDAAC5F8B202E266DF331B4D9B46FE4D90011536961048D58AC961B34A4EEB49CDF2",
+    "identity_type": "private",
+    "iv": "B005B7623A86312314C0C0D7FCBC3F2D",
+    "key_seed": "C8A695C2B0FBD7385393A196CCBD82493358E3BE62E1CC7BF2C71186DA29F5D4",
+    "metadata_key": "8E5B6E18F6AD98F4150A32FD656B0C08",
+    "section_mic_hmac_key": "EFBFE5124202575DDAD381003750174824B77800E8707A9CAEE7804E3A63EF16",
+    "section_salt": "FDAAC5F8B202E266DF331B4D9B46FE4D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A7AE7921CC86A87A8C75811E6A9E03A6",
+    "aes_key": "250B08B04A835AAFB9E6076FE700799A",
+    "data_elements": [
+      {
+        "contents": "C6B28E20E9790237477E",
+        "de_type": 504
+      },
+      {
+        "contents": "28606C895F0801DE3F0ABC9EE5D131CDDBEFB3A344D6",
+        "de_type": 396
+      },
+      {
+        "contents": "7127F17814E2EFB43948",
+        "de_type": 537
+      },
+      {
+        "contents": "3082C7",
+        "de_type": 705
+      }
+    ],
+    "encoded_section": "709013C4A2A5BF3547013BBA1B383831D1BCE091100036E0549437A58C8096108736E2E54F839002C5F3CFF2372998337EBB3B98F98ECD208A00A91C9C03D46423D1282994D4AE2AE73612F111C2107AB19ED220A1C50DF885BE240BFFF7BA40FC735FF5159D92C1C36BDE1A3E8DECE91D",
+    "identity_type": "trusted",
+    "iv": "FF91837F451EDF3D18A22D3321C100B0",
+    "key_seed": "37279E81EB85F4A82ACB0A83D1E35C175878673E5991CA8CA24DBC718459BBAD",
+    "metadata_key": "4D47D647A7586385837A57466C13DA37",
+    "section_mic_hmac_key": "176D917352650AA00449B407739BD411141689F7D493E0FB4DE373F6EB227D09",
+    "section_salt": "36E0549437A58C8096108736E2E54F83"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "31CAFA91829553CE7076258C50ABA254",
+    "aes_key": "39055F82C293C2F814D14BB7082021A4",
+    "data_elements": [
+      {
+        "contents": "138DB57FC84A2A9FF858980497BD66AD07B3D35861D398",
+        "de_type": 908
+      },
+      {
+        "contents": "F1AC596899642AB4A3224A33E3F4BEB89567D138A00897",
+        "de_type": 97
+      },
+      {
+        "contents": "F33377C511B8F1A14E",
+        "de_type": 994
+      }
+    ],
+    "encoded_section": "769013A24F473D02C870D82B5A2C492367719791100093084927BDC539B7664A642EE828FBCE900473352C75BD958A2419FE4C5177410E191C38BE4D8B0B21783969B4FBF28D572EC372B59CC8C5BA0E38D9278308403C87CFFFDABBBAEBCAB827E53AF03E87A4E5F443604A7DC6DC78DBDDF0542CE645",
+    "identity_type": "provisioned",
+    "iv": "DD57E44D3F0D0F3DDD0201BAD985A27C",
+    "key_seed": "6E931D385053BA0B12BBD523DCC73B3B4E67551C3F5E2B4DB28D1F877CEE5266",
+    "metadata_key": "74DA1C3C2C26438FA854D14D71B8E385",
+    "section_mic_hmac_key": "DBC7B9EB0B1B3B982AB762BD1AB304184D1400952590DDB7D0D04E1C394ED3C3",
+    "section_salt": "93084927BDC539B7664A642EE828FBCE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C49F4B14FB613C049B9F05EB9CE7879E",
+    "aes_key": "CF327AB0B447A7AF29CA225D0C66BF88",
+    "data_elements": [
+      {
+        "contents": "EA",
+        "de_type": 603
+      },
+      {
+        "contents": "4BFE2D10A8F98339DA94AC7FD972892BE0F7F94C112C2F9018D6",
+        "de_type": 512
+      }
+    ],
+    "encoded_section": "58901345F54B3BB7D5FA01A970B7F3DE3035239110005BD59D6B596E746EB47FFAB378E67610900142AF5B387E46C1D390817ADAE02E9776069475827A331978DBE74C0B598B62EFD874514FD69C4A497DF102F7E7D28E2C15",
+    "identity_type": "private",
+    "iv": "49CE2D4CDDD1FE4C7F55FC3188137869",
+    "key_seed": "62748144FB2FB8F3D1D26B7E29407D49E03EFD9152E00668A8D4CC98B33C1C6C",
+    "metadata_key": "BDA4A1BB532F0F3759B50CC5FBB7FF0D",
+    "section_mic_hmac_key": "92915252B41A8BAC323ED59D919DE01B1983FEF1232D5D3A49618998A334AEC4",
+    "section_salt": "5BD59D6B596E746EB47FFAB378E67610"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "50478F0C95C5ADFF1E22DBC94040F350",
+    "aes_key": "5C24804ECE27E5BA68E99847F7F885AA",
+    "data_elements": [
+      {
+        "contents": "EEBFBE7C8584ED74277C8B3E2B502ACEBF24B267DE6D894B",
+        "de_type": 194
+      }
+    ],
+    "encoded_section": "52901366A0670E47B7DC095DCF73102FDC73E69110007B56EC0A6BABDB182C71BB10F5F08D279001B9D91DAABDBFE394958F6E84E6CD12D44D75C23DF167B985A9192F31C1086D9764E1F18B9B0510E5B85C8E",
+    "identity_type": "private",
+    "iv": "FB5AAAE3EACB3C7010D00F3F5D2C3BDA",
+    "key_seed": "ACA00C1D38AB3622FC6476156686D8C3546B5D7DE0D35CB2E577838779F26FEF",
+    "metadata_key": "F13BAF19DEAB019E02548A01243255FF",
+    "section_mic_hmac_key": "D5B4C8E5CBE16DEC491C3D0B361CE588EBC197E0F8C07B66E45C620DBCF0BFAB",
+    "section_salt": "7B56EC0A6BABDB182C71BB10F5F08D27"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B09E7223DB55CA715A7CDBAD5996A263",
+    "aes_key": "5A08C9A027433AA95DB2853BDA25B1CC",
+    "data_elements": [
+      {
+        "contents": "4D49B84727526D565B651F",
+        "de_type": 191
+      },
+      {
+        "contents": "F5B14E3F786C1DF52258DD7B7E5240A7707EAA887484A166AC4E54",
+        "de_type": 408
+      },
+      {
+        "contents": "A3ED876A074183595073A43A689030",
+        "de_type": 910
+      }
+    ],
+    "encoded_section": "759013C7D3F5BC51A900A5862D9C97C6420421911000742D8D5C8DE82797022EA2DBA6D1D34D9004ACA1B9AF6447CE5086B439B1BAEAECDCFBC67943ED19B7FE2AEEBE927C13A54A0CFF804BD8F6B6273D3750CAD751DE373DCDFFF91B61F4F4BC31F8931DD6B89073E2C00B353709314955E535856C",
+    "identity_type": "provisioned",
+    "iv": "6A4EC7D7D1DF376EFD6C30D4752FD4FE",
+    "key_seed": "B7FBE1F1586D2B63C20CB1153D7204A8CE46AF139AE5ABF1E2473727EF014DBB",
+    "metadata_key": "FF8E365F1C10EE5D9289E6E2A3431604",
+    "section_mic_hmac_key": "FFE968EAFBFAC3D8464618A92DEB901E018E5AD5DC3E4CCD2AFE7765B97E4208",
+    "section_salt": "742D8D5C8DE82797022EA2DBA6D1D34D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "90D4B993DDD10894C7DE4892AA9205F3",
+    "aes_key": "73BAC41B294391FD5D5288BFC9903EF5",
+    "data_elements": [
+      {
+        "contents": "27F554F5A7C415247701F0FC053C47F0EB0F055075E60B56",
+        "de_type": 291
+      }
+    ],
+    "encoded_section": "5290135D9848ABB456C6795F5FDF8A0D2671739110008C9B682EE5FE5EB5CE1BD9870CD71A9990043229E5C5C36B418090ED95DDBF6CC97A05C02E2DEEB8080D6B4B9DADB45B6FC5A20FCBB7CC08B5ECC2909D",
+    "identity_type": "provisioned",
+    "iv": "7695C534D867D68F7C1932B112715819",
+    "key_seed": "6975C61D58BA24A1B4EE54ADDD2C442B98EB26E46A705F388DB5E2ED510B4B28",
+    "metadata_key": "D17E6640A3CA07E378F7065697EA5991",
+    "section_mic_hmac_key": "F96908B8BF76281EDB7BBD7ED61C717F9696F1D86A35A08EAE230403A1107554",
+    "section_salt": "8C9B682EE5FE5EB5CE1BD9870CD71A99"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "68815B831AA0916F568E55263A7A48B2",
+    "aes_key": "5EBE57C4F71896FC3D6C0F1234CFE4C8",
+    "data_elements": [
+      {
+        "contents": "2D2EF51996D21B2E51463AF39E92",
+        "de_type": 266
+      },
+      {
+        "contents": "B5B3289B121AE9D357AFE47D5E824F60",
+        "de_type": 506
+      },
+      {
+        "contents": "CD3BA06429D31778484A63DFE622C417FC91017592E7B2A9999BB95F",
+        "de_type": 605
+      },
+      {
+        "contents": "D75A6907BAA74620FA2085",
+        "de_type": 41
+      }
+    ],
+    "encoded_section": "879013A6C5D0E432008BA653FF7129A306A3EC911000EA1BB84D74CCE63FC6E8A7BAA4D0E8BE9001A66002D08581D42781E1B71D02A14371C531338D6A14F22495832CB9F5ECA5BF022B9E62D6A72168A5889635871DEC3B4BF993A31FA6D88D147BF16E48B99F9F78D7433C9FE0D8900F2B64CFDF5C5B54AD9BDC2AEA6A53CC6AF84FE9AAF59193",
+    "identity_type": "private",
+    "iv": "C35B01B06E5D277079BA8AD9DBC8F362",
+    "key_seed": "F0C3EF794389DDA400ADC8FAA947DD95143F6607B459C306BDAAA576F465E52C",
+    "metadata_key": "AF790FA02EABFB6819FFF681B9DF902B",
+    "section_mic_hmac_key": "71A8D29B91A31FF5FDDAA7C80D68F46CFBBC16402B57282E74129BC4B17499D3",
+    "section_salt": "EA1BB84D74CCE63FC6E8A7BAA4D0E8BE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4A9A6B72387F31CDE7DEE4E7E406DFF6",
+    "aes_key": "B3591F7BBEBCFC4D19A43572B2BBBCF5",
+    "data_elements": [
+      {
+        "contents": "287900DBF7C6EF207125FA0402",
+        "de_type": 126
+      },
+      {
+        "contents": "3DB9807390DD723B2BE6D68E83DF7C2770667A585BAAFDFC6B60F23B6DDC",
+        "de_type": 914
+      }
+    ],
+    "encoded_section": "6790137F9988226CFB15EA43A400BD295BDFCB911000642FBA603E7E92B57E9AE3A01C2A4067900198D788FD01113B8A8C929309797B3A7297B90D01EECEF4B43E92B07E402D59F4C898D6DB4567499719BB98EEF2FDF3949CE4345E58D410B47377BA3A76EF5946",
+    "identity_type": "private",
+    "iv": "85FCE66A5FA02412A1234692C64896BA",
+    "key_seed": "2CC2199AD55B6F938E243F37DA6ACE29254ED61B0B37B0304329430A2A76E0D0",
+    "metadata_key": "631559C94CC2789DE04E60E2ACA530E6",
+    "section_mic_hmac_key": "9A892BFBCF0FD28F4E5A8F4C5758870EFE840BA65BBBD08F47BE62CF648FCC10",
+    "section_salt": "642FBA603E7E92B57E9AE3A01C2A4067"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3B58BD1E258028DC7224E170E5D91527",
+    "aes_key": "A74001E2A3666357CAAC0E33C1855E10",
+    "data_elements": [
+      {
+        "contents": "12A3E1127075B64AE49D7BA96E1C1B",
+        "de_type": 739
+      },
+      {
+        "contents": "A234A52C0FEA5B1BCCC9BF31ABE4",
+        "de_type": 956
+      },
+      {
+        "contents": "8F",
+        "de_type": 184
+      },
+      {
+        "contents": "07D259",
+        "de_type": 483
+      },
+      {
+        "contents": "8CF495883089242BFDD53B4564044BE87A18AB4C27F3506A",
+        "de_type": 646
+      }
+    ],
+    "encoded_section": "7F90134E199204C2471A9115FF2C632668284D91100075629F4391815BD952FB3733BE9FD5ED90029DB3CCDF47466BCF742E415F1B2808173977D02F7174626840312C0AE5F9460BB6D9896D1C906C783523FE087FC586B3CDBD3837F712E2754A920C13760D62AD1407E0FDF94E5A10A0F6B6435DB107288AA0E8DE89F61C41",
+    "identity_type": "trusted",
+    "iv": "ED3E7F6915FBA4453344C5B6E412C564",
+    "key_seed": "1846D5BA042D86730983D0AAF49EA0AB2B83BEB46A36ED91FB14A9EF471FE246",
+    "metadata_key": "E0FD1F3EEBC6BBA6FE654CECD49DB39A",
+    "section_mic_hmac_key": "91BC8A5166C8148062C2CEDFC69EFFFCF988181F45B5B0594999ABD9A6A1D293",
+    "section_salt": "75629F4391815BD952FB3733BE9FD5ED"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6980A6133FD8A5C51F3C733F504318F2",
+    "aes_key": "2114E6476D43B88B62350530B2B5E255",
+    "data_elements": [
+      {
+        "contents": "78D82AC0B53E7EE9DB8E175A4F4C8E3FF309",
+        "de_type": 238
+      },
+      {
+        "contents": "DC40997B9DC9FCE9D3A685B4",
+        "de_type": 949
+      }
+    ],
+    "encoded_section": "5B901364A48CB28EEFCE542E48C436C6E5C9F9911000D88F6109B3C4201C37D0BBCF905E844F9004C5199C455C3382BAAE410F855270883316438EF9A3A4B9F4AA0146A64D40287EE6570800272C4DA3CBD9E8E6855AF2B117E45550",
+    "identity_type": "provisioned",
+    "iv": "2677516D425DE7E57AA134A908F6FA77",
+    "key_seed": "2446CFBD94DE790A7817A3B309B6578724F386F8699C9E60F64E843F1E6F41BE",
+    "metadata_key": "F6619D96FAB75B632E6DB605E17C804E",
+    "section_mic_hmac_key": "467BC68954AA7C5F2E3BC686A88A219025CB25E054A00A51BA7A22F9A8EB85B0",
+    "section_salt": "D88F6109B3C4201C37D0BBCF905E844F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5755CEF6FE6FD55A41FA44CABD97741F",
+    "aes_key": "E8708156531B7A958D952DE7627847BB",
+    "data_elements": [
+      {
+        "contents": "23C735",
+        "de_type": 355
+      }
+    ],
+    "encoded_section": "3D9013409B507183829B924D89F0CDB0114D6B9110005BB6431511D93263B7DB812C5C3169FA90010A0D93D550F4B038870E73551CCC98CACB4BFB4A37AD",
+    "identity_type": "private",
+    "iv": "4190244089F66CA5612739960D6B6265",
+    "key_seed": "A0B97402658B7EB8A9CE7FA833B06BE4113813C5DF44BB4CDD2A1026623CE93E",
+    "metadata_key": "27EA5EDBB15D6D851213D99E85394969",
+    "section_mic_hmac_key": "CBA9B0CE3E1538B7599EB74522BD58E3D6B30CDE7047123EAB8E6C837D3A86C0",
+    "section_salt": "5BB6431511D93263B7DB812C5C3169FA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D12CA4BC0DF622B6F2A6C38F244ECA88",
+    "aes_key": "FE420A08BE520C56C373D90506399368",
+    "data_elements": [
+      {
+        "contents": "2B284B656DFE764CCE6BD0B8A8DC69FFE06A60A0",
+        "de_type": 982
+      },
+      {
+        "contents": "36636E1715B38A596BCC68ABEE73CFAF34EA87B634386C02",
+        "de_type": 537
+      },
+      {
+        "contents": "5BF461ED52EF4F04EB97039F41300BD52529363361208E673FF097D5E9",
+        "de_type": 49
+      },
+      {
+        "contents": "22E82E947110CD667295C59CABFD9CD0340C6F950AB0",
+        "de_type": 665
+      }
+    ],
+    "encoded_section": "A19013E8415BF7F48BAAE5E2349E6AF8C46097911000AEF9DA74479EEAC0C4E65E88E8E8FFE49001A158884B1C0FDBE25B9BFF7F48E3501E1CE87D4BB0C4EDE04ECBE90ED47B150732C022C9666FDF3E7315F74B7776FC5CC9A7E16CA18E90869D563005189D665167689E5DD8BFF6C5C08A8F2EA8025E8BF9C360E5B11918C31F682542595396B18CB98C0F6F2C4B1B7304864F165D897D17CD113D95B5927CD4D2",
+    "identity_type": "private",
+    "iv": "36217155A9B1C113637F5B31A0D52462",
+    "key_seed": "D77AB260151CD044C7B2AAB6E05FBC8E91F36BA08D99DD9DA9B6672CCFB80622",
+    "metadata_key": "D98AE815017F1CCD49B73838CF47C569",
+    "section_mic_hmac_key": "1C58860A31C39611669FD41F05F3DB0E5FB3841796071415958EFD3873F6134C",
+    "section_salt": "AEF9DA74479EEAC0C4E65E88E8E8FFE4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2F7824830FE99F6CEFCEFF4E8DAF9306",
+    "aes_key": "B8C0F18B36A2C4CDFF83C57209CA0877",
+    "data_elements": [],
+    "encoded_section": "3790138347AEC84C563EF86AF3A100CB5C2028911000D26AE3AED6E647BD9318ED7324A032609004420C7090DAC986AC7383E0B07C7D0218",
+    "identity_type": "provisioned",
+    "iv": "B20E80EACF53908799869F1431A64093",
+    "key_seed": "89C8925B2181AC409D718497B652931F78526AEEF0F0D29B16A94CEC57D1C5B7",
+    "metadata_key": "7D40A615D28BD9CABF573DC1990929E7",
+    "section_mic_hmac_key": "8082F293C5E89429553A6F138CB27C283BDC31F342E0049F6871D614B4E0672A",
+    "section_salt": "D26AE3AED6E647BD9318ED7324A03260"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "50835FC1D56A351C460893484BB405D0",
+    "aes_key": "5A5B7EBD7ED56C23D8B6F82912BDAC08",
+    "data_elements": [
+      {
+        "contents": "6CC2B418F4BCBA2E3C334BC068E5",
+        "de_type": 371
+      },
+      {
+        "contents": "7D0C99B63FC2F485D42A56",
+        "de_type": 361
+      },
+      {
+        "contents": "5DA48C5C3DCD",
+        "de_type": 659
+      },
+      {
+        "contents": "",
+        "de_type": 95
+      },
+      {
+        "contents": "3780B32198E3",
+        "de_type": 965
+      }
+    ],
+    "encoded_section": "6A9013522A8B8B0C6E757ED4C020BCE2FA2876911000C7C5CC64D2848A6F5E9B06024AF7CF7490010553DC253CA3A8379FAF58AFC20732CDA0D2D6F1D16B659C6DFA077FB83412170B8A58A249F77F5AEB8D72AA86D3C93F64631650ADDFC8C12FE570B139123F8348B1CB",
+    "identity_type": "private",
+    "iv": "8C1907865989C82AC1E7C94F46ADC1F2",
+    "key_seed": "4108AC4D0FFDFA538E12F709EB5EE2EC58107D42CCC21743E35C4366C8A6E037",
+    "metadata_key": "B569E2A8F95000A5D8616779A1EAB30B",
+    "section_mic_hmac_key": "7B4E3B5C475E1C8FB665FF5942256874C076B8305992371CDA125A3CE0289D25",
+    "section_salt": "C7C5CC64D2848A6F5E9B06024AF7CF74"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B63F775898D49530F53F98C8736B4AD7",
+    "aes_key": "1B2DA0F7C59B3FF7DB2E82675228D075",
+    "data_elements": [
+      {
+        "contents": "039C353B728226EABC1C9BB92C",
+        "de_type": 805
+      },
+      {
+        "contents": "BE5252DD4308972B310168F705",
+        "de_type": 936
+      },
+      {
+        "contents": "35EB21FBC97D47937000F4EC2FF4960751502BC7980B1B3D31",
+        "de_type": 579
+      },
+      {
+        "contents": "759DF16D57824FA1F519774AFE9966",
+        "de_type": 906
+      }
+    ],
+    "encoded_section": "8590138E794DDD1F90AA00C804A1D55D74199B9110000C181E2D488AC2E6382460989CCFD4A79001EB8A74FFF9481D0F8537BDA5E83313389FA2EFE7CFFD063AE79E634FFF0690390AF5D99664325FE479E22B30E672E3A1C9FA7C51C10023DA9D3934B8E2B5E7B302F7D924B5A3841CFFCB5E4173084EB27D0AF3135DC5CD7BD0CC13817AF7",
+    "identity_type": "private",
+    "iv": "ED7A001999A7212E0F8D0A8BBF06F0DA",
+    "key_seed": "D8C605A919DBCA02E857A0E787D643B68252650909FBBC4F92B621C0825DEE63",
+    "metadata_key": "C967056677B2FE105F418127AB4C9BED",
+    "section_mic_hmac_key": "76DA9B9114E01E24DACA9B02E6EA5BBBDEDE38A8CF33001989B421B67D73D5F6",
+    "section_salt": "0C181E2D488AC2E6382460989CCFD4A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2DEC4BAFFCF3310DBE0F3413788D397F",
+    "aes_key": "E519A2D987D271CF5D3EBFB41C42302E",
+    "data_elements": [
+      {
+        "contents": "F8F7F2291376122477777F1C028B89957234FD1B4D8FBF",
+        "de_type": 294
+      },
+      {
+        "contents": "664104580D04F0299BFA7EA1E379B5140E891DB347F49FE31F58E1",
+        "de_type": 873
+      },
+      {
+        "contents": "8798DB136C098E7EED7A1D",
+        "de_type": 383
+      },
+      {
+        "contents": "3351FB9BE8807FC9D78EE332A0",
+        "de_type": 685
+      },
+      {
+        "contents": "A6F525066B3624AD7ED50466EE08AC9EF6141EFBF0451F87AE8277DF9CF9",
+        "de_type": 827
+      }
+    ],
+    "encoded_section": "AE9013D653FD5F4549F54B1911CAF49FF594F1911000CF4D14BE750B5BA5E49644317DEBD84590015F4C834B18AAE2AA790AC546C1BD9EFBB4FBDC4054A9E5BDFA9E3DFA77C9EA9DDFC714ED34337541979D845D155D15F5EBEA4D7E577172FE9DABFC8EA60B659BF27BC9EA813FD1C6EB693D28F11B35FC1B55CAAD3FACF09A30C6AECBC39FA1F95B6359AD3E7D5135C57B2823637768F51C0608BDC8362E6057A074F6C6A74E34C5CABF14CA7CA1",
+    "identity_type": "private",
+    "iv": "A9FE4C8782689FC14D8BCFBD33F242AA",
+    "key_seed": "E4398DC2A8F536C4250186EC57BB080E3905C0DE7136E5E6684A94DF38020DD3",
+    "metadata_key": "8286CB1DD719F554E9CA70EF5BB78182",
+    "section_mic_hmac_key": "52BD0E9C4C000F837DF8A80D471D145A9625B8F118641FE81B5CCF958F3F35B3",
+    "section_salt": "CF4D14BE750B5BA5E49644317DEBD845"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C2308865C3D290C95E557AEB1189623C",
+    "aes_key": "E8BF8FAA9C15279F3C712FDC28EA9E1F",
+    "data_elements": [
+      {
+        "contents": "AF0F38B4A0EE47BCE5B3F0AAF54D",
+        "de_type": 27
+      },
+      {
+        "contents": "6B2E9F0DF07EB6D9877DE3E238059802D9D04315E0D6C4AFC8DA",
+        "de_type": 337
+      },
+      {
+        "contents": "FA8917EF757AC107B1DD4C",
+        "de_type": 903
+      }
+    ],
+    "encoded_section": "7290138C4539BDC8F8AE4C73FC0ED661D0030A91100007DB45B2A020CD435ACE131E78F8595F9001C20DFF6C112B8F2F9130961C3C0A1B8121F539E238D4ADE2C865A086CC93D56D69D2BF38310ADEFE69AD2FD2679A4203E67D8472A329F52C07E85EFF4684F4113CD7C304090D02494B42F6",
+    "identity_type": "private",
+    "iv": "DA52FF1A543C36D4DCB573EED3492B02",
+    "key_seed": "2AD3751078D15056347708E40974A33C922CC41CC28FDDF988F2E2A5A2239A86",
+    "metadata_key": "FD7BC17ABBE3AE00CB69C5B13AF815A6",
+    "section_mic_hmac_key": "B01C2D3C9C7F049E5F6B994286E4ED7A767AD9727DB0FDE9E0604CD09C5E6EFE",
+    "section_salt": "07DB45B2A020CD435ACE131E78F8595F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0E6250F5E1063FFD5625E4899B7EC23C",
+    "aes_key": "82B4EFBC00345E53944B62098AC4741E",
+    "data_elements": [
+      {
+        "contents": "84BB",
+        "de_type": 108
+      },
+      {
+        "contents": "754F4890235008945EB5DDA0C5794514",
+        "de_type": 296
+      },
+      {
+        "contents": "817310F380A4523BA475A885AC",
+        "de_type": 534
+      }
+    ],
+    "encoded_section": "5E9013257C860C9FE68D13E448BE77AC156B6A91100073EB2D1A7B9A79694383A83819BA58C19002980493534B01BE7A4C0D57A3B7C279037B65AC33424C40D9ED3D3ED5CCAAAA3387F19EF03CEDA947228D791FA10E21C394650A6DECAA80",
+    "identity_type": "trusted",
+    "iv": "7B7ABAED849E8CB85465909BB1008A27",
+    "key_seed": "39FAF4627996D3A4E86A2609345F8CCFBE215FA4959EE8CDEFA7C7ED76F0F063",
+    "metadata_key": "D5CE99E6634247D8D39A6F9FC822F098",
+    "section_mic_hmac_key": "4A8284901D526E778AE208C2A347A49FB10CC2A27E1CED6CF06E1629D5D6A8ED",
+    "section_salt": "73EB2D1A7B9A79694383A83819BA58C1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "73267BDA51FFF82F035394D3EF80D6CB",
+    "aes_key": "3D76734B202CDAB569B4AA364BDD8C38",
+    "data_elements": [
+      {
+        "contents": "2C4473F60CB71FDC87628B247D3DDCE92B0638",
+        "de_type": 432
+      },
+      {
+        "contents": "2D130F6710326FE796AA4A73ECB006B595BD3EE95433AD3CA014",
+        "de_type": 327
+      },
+      {
+        "contents": "88799981CADB882884B4C47884D0944B8B37045F31",
+        "de_type": 884
+      },
+      {
+        "contents": "B2BE3EAF7781B27C26D1C1DED2D503",
+        "de_type": 326
+      },
+      {
+        "contents": "8DE982C8211A0DB37462DF80908A",
+        "de_type": 957
+      }
+    ],
+    "encoded_section": "A59013DD5CB96E28C1A8F5DD5FEC82CB88BE639110007C5463B073E37C64784907BEBE5BBDEF90021514E83EE8FEF5010680B26A5530A8FDD2A2EDFCF02D32FC9F74DE8654F3816A4E9B62D75A7C768B2D247C127C2016A0F2EA412B31A9B75D74DB39BC47617A87C767C3F7E134FD14E3051635789B5C8B29EB1F4DCC60CFC947589904C336DC786AF79471140DD27C5C4808749AEDCCF2DB7848B30022B64A53FC2365DA27",
+    "identity_type": "trusted",
+    "iv": "CEC5679AEB9A51471B5D4681A305DD04",
+    "key_seed": "6F3DB15F4DF627B06073393BAE946B216F91AE6FE5B3CDBF13FF7EC6641A464E",
+    "metadata_key": "0162EF842711DBF3B94E4D471EF750AE",
+    "section_mic_hmac_key": "5529B07938C0FE667CB13099BBBEDAD33B2FA644FEFE54C02B5923CF6A8AA2B7",
+    "section_salt": "7C5463B073E37C64784907BEBE5BBDEF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8F6E3B41929E4835D8A92894E01D3370",
+    "aes_key": "1E7D6DC597401B8495A444FC0DF6BA1E",
+    "data_elements": [
+      {
+        "contents": "426A68378FBD50DAED7B3FB1E90B",
+        "de_type": 275
+      },
+      {
+        "contents": "A915A4A2D2DBD35A71628777FC2454B2",
+        "de_type": 860
+      },
+      {
+        "contents": "44AC7C57E6F86C622909FA47E9",
+        "de_type": 956
+      },
+      {
+        "contents": "20F924FEB103DD50F1A1387EEFAE248676929FB54D48B1E465AE45DF05",
+        "de_type": 25
+      }
+    ],
+    "encoded_section": "8A90130A637967EDD9E12ED105059ED73AFBC69110002FD7D90E8EE16536DC7C67F3E60A010D90023894E74272B0D304BCB3E9DF7FC43C807AAFBD40A77D397D77611BCBA2EAB0DDCDB669DEFD729738A57FFD70703EC2B9695A2A37BF34C0DED20B89D6BC2F8F42711A79429C95A4A0E2E190E8BC6FDC6C7A61ABC01BA824D0CEDB71884F62A33D906D9F",
+    "identity_type": "trusted",
+    "iv": "5DD25A67393B6865442B019CFDB5DF8C",
+    "key_seed": "EF233E0B6A8EC2808EF6FE4C625A6FC21809031077F4C3AF242E4B437D8CAF32",
+    "metadata_key": "6E4695C00A4D71156E1F33ED864069C7",
+    "section_mic_hmac_key": "AC752138D071EEBE9D679C8FC065416E93AE38BFCC21C4F313155F29B827D906",
+    "section_salt": "2FD7D90E8EE16536DC7C67F3E60A010D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "87150E19C730DBF9A86B9E12160CE5D3",
+    "aes_key": "C66FD1768C38128B074B1F8EF5D796EC",
+    "data_elements": [
+      {
+        "contents": "73",
+        "de_type": 429
+      },
+      {
+        "contents": "E6381B5087F9",
+        "de_type": 492
+      }
+    ],
+    "encoded_section": "449013E5B8AE1079C8E1B92B68F9546E149847911000EF0F6F02489A17DBEAB359CE6006C8C09002451233A8A062D0578F6040C49FE712945A45FECFE12A899C112ADEFF99",
+    "identity_type": "trusted",
+    "iv": "AE5502584C0BF952B7CCF3A06D79FB4B",
+    "key_seed": "4C90F913AB9E4AB30DB8EC14CEDABA184990B8630D6E72E3EC55DA678F647567",
+    "metadata_key": "84C0A99DDE5671E33E2916B2C6635A97",
+    "section_mic_hmac_key": "2F96B9CFBB5F2DA7B16B79E2A51B49F8983319461C5E782DC80DE00A36CCB650",
+    "section_salt": "EF0F6F02489A17DBEAB359CE6006C8C0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AF2F88F8670B45CC12E1F0BB195537E8",
+    "aes_key": "057F34718269CBD6CEE1F96A2281FF4E",
+    "data_elements": [
+      {
+        "contents": "788CB56081AD4BF210B3D2BF2AE24354FC967C426C0D457BF5",
+        "de_type": 419
+      },
+      {
+        "contents": "8F48AFD689E68D180BC9",
+        "de_type": 231
+      },
+      {
+        "contents": "7306BEAFEB639848A3B9006FC5049BC2C570FE64F15F56F5A0B01F47",
+        "de_type": 416
+      },
+      {
+        "contents": "042BCBD8C26AEF494B0262B0203F8C862A3B36BAC14A419BE1AD",
+        "de_type": 390
+      }
+    ],
+    "encoded_section": "9C9013BE62CCCE821A4AB67616B63F417CD90D9110009F2AD41A47D93BCD76F3269EB9ADDE3F900160304961426D9B4BFC017C3599287A4B1509319EF24436CB3E3DDC8A5392E1A8AA714B880956F63F1085F709F1483A3200848F85E8BBC7255F0F878D7FDD472D1FE7664AA5849AA65D890CC229D08AC669C863793A678E9D03B7887856953EF9876DE62D09BFC10B0970C1828D7E00CF9FF05FDE6F",
+    "identity_type": "private",
+    "iv": "00CAED3CFA112DE322DD39A9D46B1057",
+    "key_seed": "6CF216D98ABC54B3D01EAF03E690AA8F705D853D1A409C98AAFB64AB5DB8B777",
+    "metadata_key": "3AEF7BBF65BB6397D331899133978ADE",
+    "section_mic_hmac_key": "4A3B921039E9959F13555CFF983C7FFEFB4C2EB3F8009280814C77E18F2C4E0E",
+    "section_salt": "9F2AD41A47D93BCD76F3269EB9ADDE3F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7794B8D1AB196CA8AC2105A839BCD4A8",
+    "aes_key": "0ADF3A9468C4E726C4DB2A608549EE98",
+    "data_elements": [
+      {
+        "contents": "CB1B557B230D",
+        "de_type": 585
+      },
+      {
+        "contents": "7DBBD4ABC8B4E7589BE1D51921022C026D3D9B95",
+        "de_type": 531
+      },
+      {
+        "contents": "DA2FC203F623B7EB1D",
+        "de_type": 544
+      },
+      {
+        "contents": "2474FDC7BF11E245A27F94E7ED426428CCB3",
+        "de_type": 437
+      },
+      {
+        "contents": "3EE60DA7CBAE5B47FE578E49FEFB1A221F08B825",
+        "de_type": 650
+      }
+    ],
+    "encoded_section": "8F90137E678458819B7DC2C5F15AF080B953859110002CDE4D9F6C04C8FE5FDB6C5E32FE2CCC90025D8153CCCA9FB64C5FB097FA5E89BC09E1C5814AD60F68CCFD49AF6FB93D7D5F9A6032BE33FC6B1C250E5AAA4D26D7D73C334E84411E72B9D486E133675636E3574B0C8B5C43CBB8240F59C0CD41D90F886DDF0BA9177BE3CB9FED65F79FBD0018B8032567A6D069",
+    "identity_type": "trusted",
+    "iv": "1894035341D848E48F9A51C823863216",
+    "key_seed": "91506AB916B8A078A6DDE8B0BE901CE7AF4696136DE8D7DE45CF849F7270AC5F",
+    "metadata_key": "6EC956F9A4E19C08DFE8D4A622325516",
+    "section_mic_hmac_key": "0F4C9028DF6BE7AADA4E075A6BA1DD00677087758012415836160F2057ACD8A1",
+    "section_salt": "2CDE4D9F6C04C8FE5FDB6C5E32FE2CCC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "26EF54C5E545BAFE7E3FE21889954F4B",
+    "aes_key": "067B439C57F9DE70894D5719B7DB2B35",
+    "data_elements": [],
+    "encoded_section": "379013080E311384411FF6770D2B94AC7ACE169110001FEFA67CEE0923857B10DD52D0B34E71900450893BB7FEACC5728EEDDF1D26ABC6A7",
+    "identity_type": "provisioned",
+    "iv": "7EED03455676377622DA473E4F16F32A",
+    "key_seed": "DED047531F38D53F63678999DBE4BDEFD7B784848EBB7E002F96458E93504118",
+    "metadata_key": "3BEDA0C2BC240C647A331E616CC299AB",
+    "section_mic_hmac_key": "C64D36914AAE044A5615D8C61DE6EFE50B28A276550B62F2CE5085A1189616DF",
+    "section_salt": "1FEFA67CEE0923857B10DD52D0B34E71"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1F519C5224D33911C941374BC65E28D4",
+    "aes_key": "0BE9E36BBA46D40FFEEA09B8F0D5F5C8",
+    "data_elements": [],
+    "encoded_section": "3790130CA72F7349FE92C154A357B63BCA5350911000F93678548B2DA382420B7D5B5C7ABFA19001315D8C73AAB7AF4B00B43FF2E33BECC8",
+    "identity_type": "private",
+    "iv": "9057DD64AD863A184C580C3AC515EF1C",
+    "key_seed": "6C2ADF30FFE6F8DB97F237FA6563503EBED4A6877A7A90F4453C927C5C46A965",
+    "metadata_key": "2A9DCA48AF9238C08F03CBEBAADB5F36",
+    "section_mic_hmac_key": "E8E29CA7B172FE28485E42B6038344EB3850A3B4FDC0526A3FFDCE2B658588C7",
+    "section_salt": "F93678548B2DA382420B7D5B5C7ABFA1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C1576CC52ACA6AEE4E6D72D158321A1A",
+    "aes_key": "AA5444E04F5A5D4CD410584D05BC77C0",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 425
+      }
+    ],
+    "encoded_section": "3A9013E14E5F87EFDCDF15AC1D1B4DCDB691E09110004B1A66BA4FD083871ED0239BADD179979004C17822C5F498155EB82DC5852D9A67BF6E66F1",
+    "identity_type": "provisioned",
+    "iv": "509D22CF33947815509F6D320B155E69",
+    "key_seed": "E42FC4857670BE08A3D4A3A2E7CBBBE2C720CC04CCC411247AB51CD36D87FA3B",
+    "metadata_key": "BD1150EB7D9B06D0FB9688D424143BF7",
+    "section_mic_hmac_key": "0E3917077E4EBF69E843FD7BB0B38765B9BEC3C55D4DDAB58A5FBD74B586622F",
+    "section_salt": "4B1A66BA4FD083871ED0239BADD17997"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "377BC9095D04B301058A806B59A57F57",
+    "aes_key": "5B7C325293C552B1B1286B3F5A988FDA",
+    "data_elements": [
+      {
+        "contents": "BE2875720FDD655D",
+        "de_type": 392
+      },
+      {
+        "contents": "76E75061",
+        "de_type": 901
+      },
+      {
+        "contents": "A6DCBCB08EE974DA3C2677054843F1E3BDC74894A82BDD3ED8E8F231B3",
+        "de_type": 989
+      },
+      {
+        "contents": "F6C0F899C87F7B6F2ADA4CB6AC54F679D871",
+        "de_type": 891
+      }
+    ],
+    "encoded_section": "7E9013D5DEDED151C0BF96D220B3AAFA310EBD91100046C9B3269C4FAA4938C3BE157869EACA90015CD656AB893D2F34D12B52C9212BA6E26191D2054AD777025E72D552876D7F603193F642B9A0AAAAA8F327AEA1C88760EB9968177017593879A486601E2A9FCA7B9AD3F4E3761177516CA335BE2C0F250DB498656A4681",
+    "identity_type": "private",
+    "iv": "9BF1FF6714915AAFE0ACFC6AFB53B67C",
+    "key_seed": "80F614A0EBB5AB849CCC3343443DBD9560983BF83E7F699E742CD736F7C86CC4",
+    "metadata_key": "BF0EB0030D8626F493C9F89271E63EA1",
+    "section_mic_hmac_key": "D32162D8264CD760B9C3FB677C389333D77FBD6AC51BE51FBD11354B4F04151F",
+    "section_salt": "46C9B3269C4FAA4938C3BE157869EACA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BC027A216DD34B788B55394D74F2ACF6",
+    "aes_key": "F4500F319B2E1A064448EFD061A1A869",
+    "data_elements": [
+      {
+        "contents": "51CDB7E7020C96926D5B015EF6AFC86FAD",
+        "de_type": 209
+      },
+      {
+        "contents": "A8",
+        "de_type": 16
+      },
+      {
+        "contents": "6CCC0F2F8660",
+        "de_type": 145
+      },
+      {
+        "contents": "1A6A8EF8B495F771C4BFADF39CFB37",
+        "de_type": 602
+      },
+      {
+        "contents": "FA7D",
+        "de_type": 393
+      }
+    ],
+    "encoded_section": "6E90133436164C4FE9F77A9C7A4331E5670A3191100028BE87A539716E6151518CD624233C80900258DB4E150403902E214CA9BCC5B8DF6F2A79CE406C90817577C0B3ED6D873AB480CC6989346F6893AA42C6F4EB5B83044F3FB86E41B035A7DE509DD369B86297394170886D61A1",
+    "identity_type": "trusted",
+    "iv": "0B7F0AF24D63480085FCF7948C1825BB",
+    "key_seed": "F058BC14D7150596F7251F711B065981E786691012EBC6032D16DD5EA125975F",
+    "metadata_key": "CC6B26C79E16DD81D63644043D76A92F",
+    "section_mic_hmac_key": "6012E0F51DC90446DCD3BDF0701CD4C3A5C9750318C2BE597AFE5EF2E0FDFCBF",
+    "section_salt": "28BE87A539716E6151518CD624233C80"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1A08F7A48EA6CBEC743CF81FC6D56821",
+    "aes_key": "D97C644C27E58A5A498EA72243B4A95C",
+    "data_elements": [
+      {
+        "contents": "AEC98CDC9931D9FA7B",
+        "de_type": 273
+      },
+      {
+        "contents": "0C0C0EF256DA68",
+        "de_type": 380
+      },
+      {
+        "contents": "D3FA7A86",
+        "de_type": 877
+      },
+      {
+        "contents": "EDD68F83E5679FD3AC94D4C2429CF0315E",
+        "de_type": 68
+      },
+      {
+        "contents": "500D0CFF89F6",
+        "de_type": 67
+      }
+    ],
+    "encoded_section": "6F9013DEB0470A1F0FA8A932BFA955957CBC0691100078E0F69271423A55D3CE7B9BAB03CA979004A1F0A1F01FDCC777695FA1905956FC2C0B2E0ECCE69A1DF5B30E799BF694545A488742FCA43945D42FF4A4D85375F6A70A580DD6C262AB36D7EAD41B29960339ED26DA7BA7422477",
+    "identity_type": "provisioned",
+    "iv": "AE5AD7C635F64E56905AA85E0F9B3B82",
+    "key_seed": "CAB76C82AB54159962AF8F8A9E0A6DD4C9B50C5F177EE962D20809A4F547A270",
+    "metadata_key": "1E7A975F40C89469B15AC5375E4373BF",
+    "section_mic_hmac_key": "AE063C8CFE9CE240A12A366F41D2A4B4A8A8BF6A1C423E8B70B3B47D15CD6A5D",
+    "section_salt": "78E0F69271423A55D3CE7B9BAB03CA97"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D2CBD32D735A997DA15835EFBFA7373",
+    "aes_key": "00FB26A966AEA71F4F3F81EFF6E5829E",
+    "data_elements": [],
+    "encoded_section": "379013B611C34F3E2A898D28DFF2CAF8F00DEE911000BAC5A68FFDDEF9369C1C0BC7CC3720309001B9E0939D28E54DEE710832446AA1307C",
+    "identity_type": "private",
+    "iv": "2A71513622E51E6F2108327F7097E087",
+    "key_seed": "F3BA939307B540A9669FCF4BBA080D1ACB6CEE90C507BF68A4E6AA370D7D984D",
+    "metadata_key": "DA78623C0201AE798FFC6E8F80F84884",
+    "section_mic_hmac_key": "7F14654F8045636DB98447C3BBF86EE7A1956CDFB14CE500A7D8F98C15A43011",
+    "section_salt": "BAC5A68FFDDEF9369C1C0BC7CC372030"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "77ADB3A8157794B68D57E93BF8859870",
+    "aes_key": "4F6EF047DDC92999AD39D14F5E9E8EC0",
+    "data_elements": [
+      {
+        "contents": "4479FC904BF6F8",
+        "de_type": 306
+      },
+      {
+        "contents": "C97FAB7582641A84D1D8FA",
+        "de_type": 403
+      },
+      {
+        "contents": "785BDB2AECFE00",
+        "de_type": 132
+      },
+      {
+        "contents": "34EB7B5DD6FF9A7C75",
+        "de_type": 660
+      }
+    ],
+    "encoded_section": "659013283C8CA35E4ABDC728046AC5E81C10BC911000479E4DBF68E781F32D60231F00FADA7B90012B74C5F9D7D1ACA3B1FDB3BE49719E5B9FB7005799CDED08ED36939500614AFE7585F03593DD5A9C6F9D58A2D508BC234C4471D86AF173D7FDFEF2023448",
+    "identity_type": "private",
+    "iv": "3DCB029A083103E2C7C69763285546A2",
+    "key_seed": "8951296E131C87D3A0A8F8A6E3F91B507A9FC625F2209CFC470E09AB7ECBAEB4",
+    "metadata_key": "E621F60D8C3E75309AC74418E87493D5",
+    "section_mic_hmac_key": "7BB1F0E37007179FFF5E50DA154C0AB6DC07FB15A3A8C2B9CB80FB0B22A3A366",
+    "section_salt": "479E4DBF68E781F32D60231F00FADA7B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5523CC0A3ACAB8E002C5B03E4808D625",
+    "aes_key": "A93EAD18C04AF23BA0B446769ED0D4AF",
+    "data_elements": [
+      {
+        "contents": "57CB2931FF",
+        "de_type": 736
+      },
+      {
+        "contents": "3BCC86FA67D655249461AA5516BB1059579B79",
+        "de_type": 61
+      },
+      {
+        "contents": "7ABEF8CE6D3F04A289C51F3FEEC213AEBB27F491B29F2812F9",
+        "de_type": 660
+      },
+      {
+        "contents": "857393CDE700048F7929F87E700697268B389A526F5B4B",
+        "de_type": 849
+      },
+      {
+        "contents": "DD1F9B8FC82DC694DCE9B17CE1FF",
+        "de_type": 903
+      }
+    ],
+    "encoded_section": "9B9013BFBF9B27EAFBBF9603C2ACA1B8D00B51911000A3C249C74FC22AFC978CE2AB76F99ADC900178863494C9773EF2ED49036A65ADF8B0FCB15AFE7E05523E02D4CA7347DB21D17F63773ECD2FDAD8FEE232AC5B3C3D3EBEFA8DDBD922DEB36CF1CD53C74B55B976651149CD3E192EE54750B4CC7C0108890C5B620F308407DDE2D9E61DDC47286033EC1ACCF7ACAB012F26C116AE0A1F4BA35611",
+    "identity_type": "private",
+    "iv": "ABF1E4825C9043D121C73EF13E7093BE",
+    "key_seed": "811D8AB3E0A91917EEFFE6A65492B725DB16CEF6AC605EC55A719CF855FF4821",
+    "metadata_key": "D0E00E77083797F00688A8B8432BA577",
+    "section_mic_hmac_key": "B1913208DA43E67D32EBD684C9E51C730CA7EA852C57A61B7EC3B6D296327E7F",
+    "section_salt": "A3C249C74FC22AFC978CE2AB76F99ADC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7B9E42554FB00BFC2CAA42EEBAF748E1",
+    "aes_key": "A93E1B7DC96488FC144480BB65A01C57",
+    "data_elements": [],
+    "encoded_section": "3790138A7CF75B48199BCD5F84CE324A50434591100083E5B4BC98CDA2E4DB2A784724360B57900214878DA8B2CF9E53C4506769CF1E4376",
+    "identity_type": "trusted",
+    "iv": "9779E069B6FA6140944F01A97D4BC89C",
+    "key_seed": "BE0D17E6FD478876E8B9BB74BA9EB382D38D2B98637A318D609A377CA7B83480",
+    "metadata_key": "5595C8B32A8E9C4C83D565DE60F704AE",
+    "section_mic_hmac_key": "7DE7B0C7C21CD1CE05291A17EB174ED90CA69598DD3085DAD647D6FE71A0E0CB",
+    "section_salt": "83E5B4BC98CDA2E4DB2A784724360B57"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "660D2523BFEC72D9DFA03CFCB4094237",
+    "aes_key": "EC158E6BDA8C755EDFA4E7E40E38469D",
+    "data_elements": [
+      {
+        "contents": "CBDCAACFC2C1898E42CB7A27D4661011705D60C5F32DA720C800",
+        "de_type": 965
+      },
+      {
+        "contents": "8F661004B6A92E32BECD006F274BABC1ACC2D3A90FACB1FFA87EDB06",
+        "de_type": 710
+      },
+      {
+        "contents": "626C92A5FDA9B4E1",
+        "de_type": 188
+      }
+    ],
+    "encoded_section": "7E9013F4C1C954AF5D56967CDC2892BD9A9D019110002204CAA1D9652AF0E2DB758DDA67ED3490016FB87E2EE1E01DE9673E1EB155582A33E799954ED39A22240BFC01E566CFBF7B6D67BE1DB06FB422AA106DA95983C2D230A1BE5C31D12A15F84FA7F580532B15AC0376768035A69094E530B9050A99028721CF9BCFC70C",
+    "identity_type": "private",
+    "iv": "8ECF0A26DDE36F8B649DECA07753D512",
+    "key_seed": "5C7C830B694068C1EE51EF76A04D99C195B8A1836095698FDED6934FE84DCED1",
+    "metadata_key": "3257B5AECD39C702BB9D5DF3D8A3F617",
+    "section_mic_hmac_key": "045161FB09CE9C68B8F4F79F8ED355A581305F8B9E92503C1274FAEB0F333BEA",
+    "section_salt": "2204CAA1D9652AF0E2DB758DDA67ED34"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "941BAB785F65055B50D126F54845E785",
+    "aes_key": "36AC7BB4C245CD5A4E082AB5820EFC91",
+    "data_elements": [
+      {
+        "contents": "2B78D10F49303E6870D7D466267F6FE2CD3FFF2545",
+        "de_type": 355
+      }
+    ],
+    "encoded_section": "4F901362962B873249BBE0926B653C83801D70911000AB6695F933776370BBC72AC0856836489001E7C16A69C4CFD200DFB8F7B42153F8A70A967EC5E42D4D2EFD82CA7DB23BA8CDFFF0921EBD24343F",
+    "identity_type": "private",
+    "iv": "C08AEFE2C72088FA9684354784D5B33D",
+    "key_seed": "B20D5B6D74823D69BC64FD37C1298865DE0C23FAB71DACCF4BD83CC5AA4A6F87",
+    "metadata_key": "643E478373531F6F17E71D77550A819D",
+    "section_mic_hmac_key": "4130AA9A3A6E3B0AB872AF92A125F5673A4CBCF6528884520AB8E8A239D93660",
+    "section_salt": "AB6695F933776370BBC72AC085683648"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "455F57E0747AE27EC84FF60FBDAD21C9",
+    "aes_key": "10A3829309D3BB339971100F42811992",
+    "data_elements": [
+      {
+        "contents": "003457",
+        "de_type": 798
+      },
+      {
+        "contents": "6F479F21",
+        "de_type": 728
+      },
+      {
+        "contents": "B815202D9A4B1DFE2A29282156288A",
+        "de_type": 592
+      },
+      {
+        "contents": "F9CDED3294668BB0FD17353C62DF3B78FD85DD",
+        "de_type": 311
+      },
+      {
+        "contents": "7A8C86FBBFC0A452B1B6D1CCCD05D5B3C0D3D519",
+        "de_type": 641
+      }
+    ],
+    "encoded_section": "8390137EFDF8FBCA2BE02D60FDA5CDC52DFDEC911000F9AB6616323C5ACE5C8BBC2F57A4AB0F90012AC5B5D47CBD499393205125BBA713DD97759656839106EA68290A930C46FD260E464B447024CC6554323EE4569315B65BCF8838C238A98F5D07BD4D2545DB255A91C9B878E54B5FA09F97C265623A26B01052F91797C11F9B6B36D6",
+    "identity_type": "private",
+    "iv": "F32FB41CBA0C981CB22F0EF3E128EA1B",
+    "key_seed": "2876E980A8F706B04EE8BC575F7F37E79118170235F478E82333F5592FB95A4F",
+    "metadata_key": "B7657539A88CA716DABF9DB888FE80C4",
+    "section_mic_hmac_key": "078EF4BA19AD750FF10E9234E6F176F4CCD372371D1A1D3F22CE054FA7C8369F",
+    "section_salt": "F9AB6616323C5ACE5C8BBC2F57A4AB0F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D2DB2DB9A8BCF5AEF392BF7F8EDB59EB",
+    "aes_key": "89A33186987B8B2D38B8DAF629F6BB21",
+    "data_elements": [
+      {
+        "contents": "53DB5DDC34D45ADFE541BF69",
+        "de_type": 875
+      },
+      {
+        "contents": "832E",
+        "de_type": 697
+      },
+      {
+        "contents": "1E44D10B600CF4E81ED44BD76A4431B6C23805C1D3AD9DD9",
+        "de_type": 666
+      }
+    ],
+    "encoded_section": "669013E6A1661A04FF0FB79DA17C60495D887F911000426F9B2D45B1019868EA8D7A205A98C990015C3B65037A20CD24E568C61253296917152A7BBD973F3D7372E2207E3E95AA20F8B0E1BEEF741BCA197680E124C9DE12AC5015FB0094F3157A3176ECC58565",
+    "identity_type": "private",
+    "iv": "52FD9A08C2A4744A0ED4DF7DF5A1965B",
+    "key_seed": "1E1C95D178D5D3721482E1AB313BB1CC17CD81107270466954FCBB0AFAE33245",
+    "metadata_key": "8C9E4E3F1616569227DD78E8524FA000",
+    "section_mic_hmac_key": "08A59583A45FF4E63BD51BB22C22049438A228AB48E59DE4180CC9B13F48EF92",
+    "section_salt": "426F9B2D45B1019868EA8D7A205A98C9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D61322B59881683F4CA689625954B4BA",
+    "aes_key": "C5D0F13868492D25CCD7A9ACBB0821CF",
+    "data_elements": [
+      {
+        "contents": "F0D028E4A63FCF08590FE7AA1F78290A952D058A44E483AD",
+        "de_type": 255
+      }
+    ],
+    "encoded_section": "5290133934FA6C6ED6A147EC05881A8DBC9B9C911000D154AA47D8B433C113D44CE491BD27C99001B754FF6A6FAF35E8981928F2129E687D75C7D8A44A4BC54F0A5EAD534A0E8D814D20B27456D3B4DF49DC40",
+    "identity_type": "private",
+    "iv": "39D3563760AC6862EC2BE2D078617533",
+    "key_seed": "9A8AC70E3C17AA4920C892C557DFF22DE933A5225517A506A4A2DA31AE8D13D1",
+    "metadata_key": "E3FD32B1669F4BC7CD8A270537729FAB",
+    "section_mic_hmac_key": "E66F30B485A5F04FF29CCB6FA9354EEFD9519EEC7BFDBFB867FEB3151D6F9A2F",
+    "section_salt": "D154AA47D8B433C113D44CE491BD27C9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8A71F9A833292722EB3AC152EF9E3C2E",
+    "aes_key": "D6C3FE4169BA5C1F7DD5E31A69DE04C7",
+    "data_elements": [],
+    "encoded_section": "379013091C3653AF02D4CD451FD1CC61DD194E911000D08DFCA5EADA20717FD66C7001A13AB89004F7BB3F2D2ECE19D69359C262107426D3",
+    "identity_type": "provisioned",
+    "iv": "D2F89CDEC85C3065FE1855983963A687",
+    "key_seed": "D3A4F31DF78BB537F4319E42EAC800AB91E2A4E0A4860BFDD8F24C38CB24A82B",
+    "metadata_key": "9FCAF36AF47A83C352D8D4DA69C6F3F6",
+    "section_mic_hmac_key": "14F18D13ADF4C22190EF457CE51A6575BAB65698EFD94FBE18CA227D5386E358",
+    "section_salt": "D08DFCA5EADA20717FD66C7001A13AB8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B56527D15C00EA6C1F64191500E82B17",
+    "aes_key": "6A43BCE02D294DAB0096FBF48E31B9BE",
+    "data_elements": [
+      {
+        "contents": "4634BF3FD479C9804459313CEA",
+        "de_type": 340
+      }
+    ],
+    "encoded_section": "4790133CBE647AE20CBC397A25F52A5B56C936911000A59F02BDE2106CF82A01787C33DF2A089004A05865B1C3F0DDB00C3434147F19F333F1796D784CFD0FA34DD93E3136BA3414",
+    "identity_type": "provisioned",
+    "iv": "3B1A323410690A2F02B5259796488D38",
+    "key_seed": "3AF4E5F9F468FC934D60EB5B64FE42E73F995ADF8530734194AC832AC71BD742",
+    "metadata_key": "8A76F8A2C4C7D2FF7B656DAFAF4D251B",
+    "section_mic_hmac_key": "0635464DCB6685C1D8CD3340BB3E81A1247AFF24A980B5E6690DECDC45854B75",
+    "section_salt": "A59F02BDE2106CF82A01787C33DF2A08"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BB563222EE04AC29FF7A04090A36481C",
+    "aes_key": "95C44DA79C172EA55314090F38767175",
+    "data_elements": [
+      {
+        "contents": "D75B5DDB4C68A3EA5441964A4D",
+        "de_type": 322
+      },
+      {
+        "contents": "37B4C50550C810B4C812417DEB4199026C9355",
+        "de_type": 351
+      }
+    ],
+    "encoded_section": "5D90135D599966D1D25825A58E1CABF51DEF0D911000C01337053877FEEE2433C8675EABA35D9004C3AB83900533AADA9D91C0B11245FE4C8FFEFA907B7F99C9EEA4DD312A7FDA8E24AB21207B8A383DE2F4FF33FC95873FDF96B3303D11",
+    "identity_type": "provisioned",
+    "iv": "17815F8BD9BFF92671528C5F612433BE",
+    "key_seed": "AA1CE89203994182C1FF59E97EEE5E15337C4FC31EBCEA71B890BA95CD103B7A",
+    "metadata_key": "FF7FF9290BBD363B0D43B3158D234AC4",
+    "section_mic_hmac_key": "3FFC5928A11FBE71404CC8CBB4BA8BAE630CDE5421E3165598B0404E72475196",
+    "section_salt": "C01337053877FEEE2433C8675EABA35D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FFB446A0CC75E485DC5F7D16E3B40C5A",
+    "aes_key": "489063A42F9BCD0D45A9A2E19A414039",
+    "data_elements": [
+      {
+        "contents": "62F1CF47D18470AEB527B7F6775296CC6EFE09",
+        "de_type": 177
+      },
+      {
+        "contents": "5ACEF1AA889FDF113138CDAE",
+        "de_type": 498
+      },
+      {
+        "contents": "34AE",
+        "de_type": 271
+      }
+    ],
+    "encoded_section": "6190136C2A97611B8AD5309E3CAB84A3CF565F9110005AD8B5A464405396CF27B92E3318855B9002C9BC281DB61BB7A2B2C669121E354A6D749B4F8891943647B28F0183FB7D0070AF55DF680EBD14987C99345BF20FC263B30FB8ADDD031444FA2D",
+    "identity_type": "trusted",
+    "iv": "D79BA5933791B503075CFC01E0FB7712",
+    "key_seed": "730687FF006CAEE1C0A66A01E54D4A7CF50BEB7A2D7536C0C4AEAB53E00F1513",
+    "metadata_key": "1401AE3D42B1A7EEE03E608B06B44F01",
+    "section_mic_hmac_key": "0270565C4972225F54D2DE44ADA82F04A11FB206EE8016554CE2E34150CBD41D",
+    "section_salt": "5AD8B5A464405396CF27B92E3318855B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AF42F66B6003BD6524B54DA8D2252AC4",
+    "aes_key": "12383F430FBF68B10F14C36E22CE44C7",
+    "data_elements": [],
+    "encoded_section": "3790132E7185611C4A574D7A958EF281ECDC9F911000AB00F549C0723FF724278B0E94281421900254511D764D856B3D86F6921C0B69BA63",
+    "identity_type": "trusted",
+    "iv": "02BC7DD34BA8A194DEB6394D367379A3",
+    "key_seed": "EAF9F8E130E1D639D765601C07BB3926936B173EAAC71351D43EDF767CCC7155",
+    "metadata_key": "3CED07F3973098FEEC050DAA89D1BAB8",
+    "section_mic_hmac_key": "5599A5813A1058AECC22B1B3DB8A24CE041AE2F6A287A7886C7131C67DCA6F8C",
+    "section_salt": "AB00F549C0723FF724278B0E94281421"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "25670EC81D48FF31F8771189AA170F3B",
+    "aes_key": "5461131B01024CAA85D6F3F04C747EA2",
+    "data_elements": [
+      {
+        "contents": "70F812A1C77562795B634A15",
+        "de_type": 752
+      },
+      {
+        "contents": "4A7098AB14408AA7A49E737FBBB777F0",
+        "de_type": 512
+      },
+      {
+        "contents": "132D64D069C144AA18E7515196547AD6E971",
+        "de_type": 313
+      },
+      {
+        "contents": "07F0E91FA7CEF471AF7E42C74DEFE8AB692B1B5FECD68E4EDDE089",
+        "de_type": 278
+      }
+    ],
+    "encoded_section": "8C9013A42FDE96C60F5F6E2292A1ACD8538E71911000C655B6AD55A141DDDDC8CA239D12944990047F71A803B61F1EEBC3D498E2916784FFA19ABBA694831D36F6E272FF47788F91DDCDDBCE7922E6410EB61D510D257B0A5BF1A89A2C5567300C40D27FA1F76D6C6D1F9DA88844E5B390D02F9A29FAEAF08E5A0401A824D58BE5489B6F272381628C0CE5D552",
+    "identity_type": "provisioned",
+    "iv": "BE73A8FB567E9F85D0AB30D9EF198482",
+    "key_seed": "5FBAB9B4DA6E55AB6A28DB0CFC1848B4B1A2A740176A41779A2B0CA53C85E0C8",
+    "metadata_key": "5A0FC8681CCFD973AFFC3A8A343F875D",
+    "section_mic_hmac_key": "01BD476EF165370B6064C3C61ADB7EB35C28E6AA661DE67AE23DEFD9BF0C62F6",
+    "section_salt": "C655B6AD55A141DDDDC8CA239D129449"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1698A0A2CBC569C04A8ECE5934215D84",
+    "aes_key": "67EEB4455EAB868F8530E5CC19A6D3CF",
+    "data_elements": [
+      {
+        "contents": "3F598536EC1EE56157FAC56036CA37D2FBD91CEC62CF817655879F6C6FD7",
+        "de_type": 699
+      }
+    ],
+    "encoded_section": "58901366D5FF91CA1E85781CB65F9F44A6A915911000D09661823870EA098CD4B79528F570549002B623382EE2174931E09C30B1EF4966869EB8E162A0B91F6299A507A566090E48B276A0AA84B82A02C9388E1572A5749905",
+    "identity_type": "trusted",
+    "iv": "E685B253F5DBECDE5E299677701C3C52",
+    "key_seed": "6F12AA77CA2C0963B48CA6117D5AA7971BD017CB4DCABA81A94027F92A478D36",
+    "metadata_key": "E91B270B0C39EE00A7445A9FEA85589A",
+    "section_mic_hmac_key": "A4D97829E2F5B49AA35B36C8FF77301335A033C6B4BB97987D119B0116A24E80",
+    "section_salt": "D09661823870EA098CD4B79528F57054"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "81CC782D7A1DD2CDC0AB810AB984643D",
+    "aes_key": "B0EB8589C9401F28FC0C26469D89A63B",
+    "data_elements": [
+      {
+        "contents": "D90FCFF0DAD5588D662E8A7486AEC74A9422",
+        "de_type": 382
+      },
+      {
+        "contents": "707B",
+        "de_type": 231
+      },
+      {
+        "contents": "6A6AA7D74F5FD3FC85A3",
+        "de_type": 733
+      },
+      {
+        "contents": "230C99B60765E1753C29C065FD9F9B7F512CA13613F1",
+        "de_type": 47
+      }
+    ],
+    "encoded_section": "7690130FB4E3079CDF302AB7752B12365B7DEA91100088A69F0ECC5AD36DCB48C315F22D302C9002FDE9D76DCF16CDE15E6497EFA632888F9CC783729E139D9B5A54CAF585BDCD3DE00C43748F971D6E8B945DD0A63A53ECC8405AD75DD96ED285EDB30010951E7D995334F0D562E5D5A96B7B69C99180",
+    "identity_type": "trusted",
+    "iv": "3F139EBD60CEE2DEFABCBE5D8C03CC33",
+    "key_seed": "C97A976A77C57D2A16038BF394B1ABCBCF2CB1535CAC921B837418C75FFED5A6",
+    "metadata_key": "253F314C26118C9FF2156BD6B103CF12",
+    "section_mic_hmac_key": "1C2FE36935B0D3B8B54F8F7ADA894CF63D60E34C4E43E3BEEE457239D9CFA090",
+    "section_salt": "88A69F0ECC5AD36DCB48C315F22D302C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3F68DECEB46FC2B26A80632B9F0BC551",
+    "aes_key": "AAB3D40BA404341AB33B80C75A455956",
+    "data_elements": [
+      {
+        "contents": "06A9EDAFCD584B6E38788637216971",
+        "de_type": 671
+      },
+      {
+        "contents": "2108A76D",
+        "de_type": 220
+      },
+      {
+        "contents": "E1AFEA550370A4D8",
+        "de_type": 302
+      },
+      {
+        "contents": "B089AF93656690E7F5D458574E009638064A02ADDD",
+        "de_type": 606
+      }
+    ],
+    "encoded_section": "73901363D824CD389AB1B5405A4084503F93F591100018C01A505928C235EC10AF668DB40FB390020577FABC21B8AD30907FEEE2AA7B75F0DD28EFCBC3A42056D1AAA57CEDC6BC99DDE47E5481C4AED0104EA28B805A32D55C06605488536113061524D6E8D3E082EFCFE9EA04C60E6205DFEA60",
+    "identity_type": "trusted",
+    "iv": "D24223CF7DD83A7A535C1C8C475F8069",
+    "key_seed": "6AB190C93E00BE55D327A52A7D6E2A6B55EA6BC42F4B4758DF942A0FEE5527C0",
+    "metadata_key": "0911EE2B4CE448C904D7EA949BFE7924",
+    "section_mic_hmac_key": "AB82958BB658137045E64CAB0BF661E3E93D0CD7E9E09F8C5094832C3F324770",
+    "section_salt": "18C01A505928C235EC10AF668DB40FB3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "16F428987093EF4C71103F7DAAB954D7",
+    "aes_key": "B654E0BC4980FBAEB1A7BFF6016EEEE4",
+    "data_elements": [],
+    "encoded_section": "37901338DF36C24A081C8C465579F807AE0D719110003EEF9CADA88DB5EA3CC0A49B3594282F900164F64D69E7941A231ED4B5655C92A27D",
+    "identity_type": "private",
+    "iv": "A08E3CAD668107A8797F8679F356AF13",
+    "key_seed": "E2C7557906E3BC6E94E7CE260E8AA2C1381629F7BCDE83BF6EBD249FAC95E085",
+    "metadata_key": "8C974F54F1D47E4E6076477FB073244B",
+    "section_mic_hmac_key": "5C1D2E2FFB430890D90C0A9D98C3E39F8CCE5C0F7134AA5C01E83F876C1B6147",
+    "section_salt": "3EEF9CADA88DB5EA3CC0A49B3594282F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A6ABE19EA26BB9FE65BBC1F644681FBF",
+    "aes_key": "8DCCD08E61E8BF6B3E29907C8FC4A48A",
+    "data_elements": [],
+    "encoded_section": "3790132CEE5446EF5E2D00BFDAA9BB01F11E6791100081833175A7ABCE8DC548433B6ABFEAC99001C4782C58F1F77A879FDB53B0D7DA71BE",
+    "identity_type": "private",
+    "iv": "89DD6857CF308FF28B8F20AD6121D2FB",
+    "key_seed": "BC9EBF601245D8B4FFB331D0DEEAFF5EB2F4D255B27CA6F589FFE244D7F8BA61",
+    "metadata_key": "CE7B6849F29274DA2B5153DA263EB715",
+    "section_mic_hmac_key": "77EABC4A9722507E888315D75AFCEADDAAE374D29D8482C32B49E4DE797AD72B",
+    "section_salt": "81833175A7ABCE8DC548433B6ABFEAC9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DBC312045F0B91D01D69B4C7D64CA84E",
+    "aes_key": "8AF7683D5C00432FF70F5C0F21B62ED0",
+    "data_elements": [
+      {
+        "contents": "8C33E56E140674BC4DE6B6E6503B665690A0A5",
+        "de_type": 962
+      },
+      {
+        "contents": "52A891F8F72BD3D53F300F6DF78386EEF406",
+        "de_type": 809
+      },
+      {
+        "contents": "E4B5E9A863195AEC5A1F58940287190C21F4EED5A114F9877D",
+        "de_type": 424
+      }
+    ],
+    "encoded_section": "7E9013AFEE4868B269521650E527FD6505254091100016B2164140F3A7D4D99588A1F07BB6829001627CA78389F5EB99D9DCF985143E7064B51264680CE657B458350306830F5330349B5943199B49D65CA4FAE46097C0FE5784578C7B937D17650DB5D7F9BB64518ECA0900F6537B0A1A9D9B09D72AAD18F927E8CE44B48B",
+    "identity_type": "private",
+    "iv": "EFFD6E65CE5969A045DC17F469C55D21",
+    "key_seed": "CF1BB3DCBDD1B4B1854312571D0D9E4CD3E51CB66886F8101DBA51454DAB3B43",
+    "metadata_key": "7712D6C6361462BB68F275E64847F92B",
+    "section_mic_hmac_key": "5976A38A5FC248E579FAA97C4AD81B01EDDB181D787DA79C55C6A5B2A3043320",
+    "section_salt": "16B2164140F3A7D4D99588A1F07BB682"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6EE5BA8B14844183D1C587D61EA65F06",
+    "aes_key": "8C770833C8746D89219288A5F1C77A29",
+    "data_elements": [
+      {
+        "contents": "4EE9017827E633A83A1F3DF3727636D33D68F25F096F",
+        "de_type": 70
+      },
+      {
+        "contents": "8E501147C6",
+        "de_type": 700
+      }
+    ],
+    "encoded_section": "5790134F8715DC2D2DD29001712938C4AC092A911000E5BE413F286D53CEB80C4C43A77C8F429001A090B0006FBA8B3AC2B4E6D8749565A555C2823BACBD6BEA07F06CD282865CDD8DFB9AA1EA9CAC5ECB512E94EAA509FF",
+    "identity_type": "private",
+    "iv": "8AC60B5B6C4BF4DA33864292D1A49040",
+    "key_seed": "256E590E325B44B0145FD955AA40CFE7AC01B57FBCEC373C94F17E1B9BBDFF20",
+    "metadata_key": "0B9043CF8075D46F3E0FC946A79A18D9",
+    "section_mic_hmac_key": "D3479310DD4C5AAB4263C51FA03D1F8593365098868C23A374211FCDE1908DC0",
+    "section_salt": "E5BE413F286D53CEB80C4C43A77C8F42"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D941C60088DD645313DFADB182C82558",
+    "aes_key": "E9919CDC3C08848B22D3C9AF7834E623",
+    "data_elements": [
+      {
+        "contents": "9BB7ED5BF7DC448BB3",
+        "de_type": 330
+      },
+      {
+        "contents": "D4539A5B30220667E3A4C193",
+        "de_type": 950
+      },
+      {
+        "contents": "57CB6A30E9BE0B44E14D42C6A9DF1F40F78E5A72CCAE8DCE6ED20E8B8D87",
+        "de_type": 94
+      },
+      {
+        "contents": "21EA5370D8F897F0C836F9C0D7D8D20D9031B6AE",
+        "de_type": 220
+      },
+      {
+        "contents": "1ADF486290D5EA500318FF",
+        "de_type": 121
+      }
+    ],
+    "encoded_section": "969013A9786ABE6D8971BD5514FDFA8CF2AC559110001142426FD9F8AC8E04980A76C8873DA1900263DC49F57C111C30ADA31DC772A46B34F87451042E48206D7BCEAA5D1C5511C413D77CEFEE13355DA1535D628BD04516B2983741CBB4266ECCC6252142347B8113956A28B3094390F7799F541BAB5FE11D7C3DE41C546B090467648933DAB1D5D4939B75B75C9BFA68FD0640EC3FD0",
+    "identity_type": "trusted",
+    "iv": "4C74A83C4F3D310530BC20A76606169A",
+    "key_seed": "6CFB25BD6F1AD54702025AA20976E8CC36E5125EFCF766339E9FF00608383FD5",
+    "metadata_key": "B6623EF31E56177E5E2FA2D34EF08217",
+    "section_mic_hmac_key": "1B6CE9263DCF22995C99D2E8328D6FACDC3B3729A0B2E8EEE4992C6231B5992D",
+    "section_salt": "1142426FD9F8AC8E04980A76C8873DA1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AD17F621C4099C16E1364DF5EAAD46E9",
+    "aes_key": "4162A567DD3D59242D948EC4388D3BA0",
+    "data_elements": [
+      {
+        "contents": "D1AC9D",
+        "de_type": 319
+      },
+      {
+        "contents": "AF10369D76F126F65771B19AEBF8CB7063AFDDAF",
+        "de_type": 568
+      },
+      {
+        "contents": "8EEB01E953A7DBD9FAE4543BAF174901D9946C89422B007F22",
+        "de_type": 659
+      }
+    ],
+    "encoded_section": "709013BF382460F591A5AF35356E3138DE8BBE911000F008A0E0C87CEC6F7481FAEE41DE2972900492A0930FDADCC989A95DA24F2BECB1F0120086D7B4BCD531450DF307DB40F1B3B6E2A2BEFB0F2A158EDA479565E941CEF4DD226E05EA5A377DC6BAD5C4DF31346DB5887886E07D1F5A",
+    "identity_type": "provisioned",
+    "iv": "E2E2D8C0EAECB4E929DFDAC68E4A87CC",
+    "key_seed": "6A41B3A483120C6592A27A6DA224A2CE97A3630D7380BA9B492B7670C2DCA431",
+    "metadata_key": "84B633DF772A8582F240990C6505CFFC",
+    "section_mic_hmac_key": "6DD9ECC46CBBD6FFEB27625580412AA19C944BB3EE91E7BDC856B7DEE375FE6A",
+    "section_salt": "F008A0E0C87CEC6F7481FAEE41DE2972"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EBDFB8A3FA70511CED2FD2BAC79AEA0C",
+    "aes_key": "6A02B7B1B88FCF1141E10889BD473530",
+    "data_elements": [
+      {
+        "contents": "78071178",
+        "de_type": 776
+      },
+      {
+        "contents": "49A8B73C22BDABDBF1",
+        "de_type": 36
+      },
+      {
+        "contents": "E34B4BA2CF",
+        "de_type": 205
+      }
+    ],
+    "encoded_section": "51901367AA7D0CEB9619E38E3BC8FF5C259F59911000282ED516C9E632397B697EC6D5C023189001E888308F07AF62FEEC9F6AF1492CF04DE123DE408A607131F4454B1439A68F73D2FD5624B674550A37F3",
+    "identity_type": "private",
+    "iv": "FF4CC7BD41CE43FFD5B10FB55AC1C4E8",
+    "key_seed": "2860FE966BB48A14B70CC4D212BA76776EE122D2A3C58A45001060CDCFBEBC25",
+    "metadata_key": "A87D121E726F9D661E37F5829450D07F",
+    "section_mic_hmac_key": "EED14F69A5D27D0ACDB1A1FDFF1D5FED2FE02A60F0597F60376092286816EB42",
+    "section_salt": "282ED516C9E632397B697EC6D5C02318"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF919F4B960D6466F6140686D0FA9252",
+    "aes_key": "E64125AAA9FDAC6241981F9DD418A55E",
+    "data_elements": [
+      {
+        "contents": "59C49F092732737FF5AEE11EEAA22EF01B0F8E8438D0BE8D8EFF99AF",
+        "de_type": 472
+      },
+      {
+        "contents": "",
+        "de_type": 38
+      },
+      {
+        "contents": "05F2391B9C27F2F93B4F90090D588DF3B94B1E",
+        "de_type": 920
+      },
+      {
+        "contents": "E088646F209D208B75C2",
+        "de_type": 573
+      }
+    ],
+    "encoded_section": "7B90137043A1380AAFA41C6CBE5A04DE25FF85911000C42674BE68576F2D75F9993288D240939004EB40F863F87FC7F36AAF85EB09F252C69D551F07DCACC4364B7D1470BD606DB9EB51F3EBF8721B9DF168910D7287029C237EDEDE9D4C07046349A46B7BB4ED83742649EC807874B64F3F34DD6F079C749D2C527A",
+    "identity_type": "provisioned",
+    "iv": "CB56304CEDF311EF61555C248ED67AFB",
+    "key_seed": "C7CA3CF04F910C2F618556A302B2AA4B21AD9C6D33B623B8D55D250468B92DD8",
+    "metadata_key": "70A8E9692001AAA64431EABDF02BCDA8",
+    "section_mic_hmac_key": "FD97007887547EE99A2BC7160E149E08A91C640BB285B5B80B3E18B3A87E7A60",
+    "section_salt": "C42674BE68576F2D75F9993288D24093"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B7D3C684246A638889A81C2A50D9CA69",
+    "aes_key": "3C90071725C2D7C73AF1A21FFC7DCE1D",
+    "data_elements": [
+      {
+        "contents": "8D580692F89B5EA1E3CA4154F0CDC018E0",
+        "de_type": 812
+      },
+      {
+        "contents": "C9E79F183FA7E85C6A93B992E99A10D3B9FC39",
+        "de_type": 160
+      },
+      {
+        "contents": "DB1462A10152",
+        "de_type": 248
+      },
+      {
+        "contents": "83067D1B116DE15914D21DAEEBBA563D9B11C7263399C97C91F267A9",
+        "de_type": 67
+      }
+    ],
+    "encoded_section": "889013120757F626EFF3FA706F5F7D9258F969911000C82A55BEE9331ADFEAF004B1F8411BEA9002269BFA035A00CFF999E7A24EEA0BDA41AF2435C3000FB78786E40EA307FF724CAF0E107ECC03677F508CFF053E269BEF7C643AE9FB379142A28C8B526720D5C02C616293082B34C65ED08F6D0A9B040A4A19907709AC21CF3C887546F6D4830DBE",
+    "identity_type": "trusted",
+    "iv": "8D1D26E68602B0801C1BA240B64AB2AC",
+    "key_seed": "0E7F40995A8CB111A533A7D3D37855140BE8A688302F897B91EE118209F89E0B",
+    "metadata_key": "44724015014CA24A6AD976E039AF5254",
+    "section_mic_hmac_key": "67861314F763C77B267EB38601ABC850E44635BB29A5E015A9BF97AD02B11887",
+    "section_salt": "C82A55BEE9331ADFEAF004B1F8411BEA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2275164A24418E8253458C856948175A",
+    "aes_key": "FCDA486D97B17E4B73B64FCB6AC2E512",
+    "data_elements": [
+      {
+        "contents": "62A5892D",
+        "de_type": 200
+      }
+    ],
+    "encoded_section": "3E90133D01BB959195FB48361985459C950BF1911000EE19D4FD43C4A26C45CCC2F73391D2B790018D15AE13971DFDBC5C660CE316817A9AE8DBD7388C7FD3",
+    "identity_type": "private",
+    "iv": "5F5F397CA6FE206A01324ECB021E3229",
+    "key_seed": "E62A5DFC2D220D5A60C44680C620B02EE4B967CA42C0662143C9301CE3647489",
+    "metadata_key": "69F403CDA27C235769E0B517D73371B2",
+    "section_mic_hmac_key": "336592D0479F0A275CE32751290E25373CCCC3DEF8A76D2E1E19EFEC29652BA6",
+    "section_salt": "EE19D4FD43C4A26C45CCC2F73391D2B7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D37D8224BCB2A88E8A32373B761C5ECE",
+    "aes_key": "299ECDF8023A36C8961C3847B7865F23",
+    "data_elements": [
+      {
+        "contents": "B2C987A7B7",
+        "de_type": 461
+      },
+      {
+        "contents": "5B5275A30550D0451989E8CCB707F4BB4E1FD7E4067559",
+        "de_type": 660
+      }
+    ],
+    "encoded_section": "59901351BC1AD8D62AD25E038519C98478075591100067A626FD764561B80156B43BBE18FE2290015BFCAA16FADD4E137A681CF88C1AFFE67981CA680202D1EFEF1539610538D8B2093E92A2C90B89CDA487E480ACA010EC5696",
+    "identity_type": "private",
+    "iv": "84E53FE82B267ECCA4C338365D976371",
+    "key_seed": "D054FA0157A869AB9D6ABB5966714E4699E3120582643226CCFD8172DFEDDBB3",
+    "metadata_key": "3BEB83127D47BFFBE32C9CB76F2F95BD",
+    "section_mic_hmac_key": "A41BBD631F9F0DAB81C18776F6877DEAD586AA8C2822E14910DAD1256FEF741E",
+    "section_salt": "67A626FD764561B80156B43BBE18FE22"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C7053AA74A4BA2AE0F70F44E089D29D1",
+    "aes_key": "65F1F9E585E540072E2DE478FE1AD76A",
+    "data_elements": [
+      {
+        "contents": "1A6312AB5101EC2B51494185A33F7F7CA3D3AA6A52F9BCA5",
+        "de_type": 27
+      },
+      {
+        "contents": "626A45FD",
+        "de_type": 163
+      },
+      {
+        "contents": "2AC1B1D049847CFEDD3EA121A0EF",
+        "de_type": 805
+      }
+    ],
+    "encoded_section": "69901379404B1053D12C1265E80377181C80079110001D9694EAFC36DEAD331B1AF01E6FAA569004F2611593ABA4DF715ABB0A60045DE939CCFF012A67BE7120EB8622F467C40A55A438E9FAC305C7F3DD3D7F1575561AF3B80071400A1E23474E4FE5A753060054AFC7",
+    "identity_type": "provisioned",
+    "iv": "BBED73E1526356DC7465518B78F1789A",
+    "key_seed": "4FF6F2ED889471ADE07505655C61FC55A296E2A781ED23D697FEC64C46F7BFE8",
+    "metadata_key": "02EB04450E5882DAD40B9C11E74ED571",
+    "section_mic_hmac_key": "BD2564C4DF163F2CFA403BB08891432ED59C1DAFAA05014FDD02DB19006E41F1",
+    "section_salt": "1D9694EAFC36DEAD331B1AF01E6FAA56"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2DDB3F10CE6908DE4064A6EADAA44CB1",
+    "aes_key": "D71B858543B064C2FA1C226CED9715D4",
+    "data_elements": [
+      {
+        "contents": "3C79B5CCA08F604A35179CF79E27EE4088EAF9284082C9B9C6E5A6E3",
+        "de_type": 98
+      },
+      {
+        "contents": "6147",
+        "de_type": 603
+      },
+      {
+        "contents": "A5327E05BDBCCBF609037A6A47ABC084",
+        "de_type": 684
+      },
+      {
+        "contents": "FDD029D869BC2792F863D0A330B26BA567F312",
+        "de_type": 660
+      }
+    ],
+    "encoded_section": "83901346D8A7AD53629FBFB4554D2893B59A3E911000193EF4A81E23010C50F7AB9D66E7B1F99001D4BBBA69FE1C5DA04ABF63E88F73FE4AEDA30C5D6AEF3F2E38F53427C49EE027B70FEAFD31011161C5F054CC6D4A916EE183785B7384149E601390215DFC3815E502695076125919A5D0A396C7769222A3E1CB02D660F4FF07F695F2",
+    "identity_type": "private",
+    "iv": "24B30EF97AD89F61F32199637B14D984",
+    "key_seed": "AFF8A5868B46113882EDCBAFFB25259BDB083CF55DDD4EE8CEA0BBF5A8E20783",
+    "metadata_key": "54ACE29DAB4432CA8456C3606A3A3285",
+    "section_mic_hmac_key": "F69C1B262B9E5E9E937CE8396D019326A61FA1598383147B8864197F7E1748D8",
+    "section_salt": "193EF4A81E23010C50F7AB9D66E7B1F9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3B652C1DFA6EA396CD6299D7C2F1FC99",
+    "aes_key": "C74B97594BAC6BCB81E06F3860424E34",
+    "data_elements": [
+      {
+        "contents": "29ABB0E895D880",
+        "de_type": 996
+      },
+      {
+        "contents": "68E69922B69FE5381A0B6FD2B3",
+        "de_type": 210
+      },
+      {
+        "contents": "1AA391EC93E13CB834A47EBB0D3C",
+        "de_type": 457
+      }
+    ],
+    "encoded_section": "629013C84639CCD7C09FB779FF9746B0D86675911000CDEC9DF81798E081266AA31A02A495F09002AEBB7F8E231C56ECEE3CFE99FBD91140E8BD6E472F819590F8C4407D808E44117A9E6450CEC6AEA3421C3CF6C3A17D76F4BED944670B334DF6ACF8",
+    "identity_type": "trusted",
+    "iv": "B202A0324BDF0E7D7D79A0FABD70C00B",
+    "key_seed": "8211EFA73C0465A1C10B9518F949E4A9E51D9844F8A714E96AF4020A7BDC03F3",
+    "metadata_key": "90634220E3FBAE89FFA4415C6717013B",
+    "section_mic_hmac_key": "AFC6C865E7CE529D7BA7137EA854E27BB97DC12411B15FC5D2CF5661705DF098",
+    "section_salt": "CDEC9DF81798E081266AA31A02A495F0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A807B550B6F46E1AE79A6963B4EF980",
+    "aes_key": "B267961F7035BA20C9ACC38375A8B8BA",
+    "data_elements": [
+      {
+        "contents": "883DDF57",
+        "de_type": 378
+      },
+      {
+        "contents": "5D7C88A0669FB0",
+        "de_type": 65
+      },
+      {
+        "contents": "B735EF9C0366D2BD9A208B7DE02C2F6316739CDAE55A161AC5",
+        "de_type": 883
+      }
+    ],
+    "encoded_section": "639013EA03F4EEC56AB81C3840FE707CD0EFBB911000C7A6D417E567FF06D8580DEDB22B6AD790012869A0017974950F3D3AE671F0B17C46335580B531F54DFEFE20792D26A9CBC80E562100C19F01B6AB91652AE86A1DA3BAA1B1BAB6C6142806A518A6",
+    "identity_type": "private",
+    "iv": "0F1F6DEE9C4E6ABFCA411807FC543D4F",
+    "key_seed": "2AE4038986ABFB4F994675F74257DBA4D1421BB7FC26EBD550902478326516C1",
+    "metadata_key": "0442ABDF1AB578F04E9828DD59C89747",
+    "section_mic_hmac_key": "BDFCD117EF5E7BE2DE8DD21889827C98D3F04E1DF008171A7F780F364FEE870C",
+    "section_salt": "C7A6D417E567FF06D8580DEDB22B6AD7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "776476995C0D81CC3EB4BF74DA38DAE8",
+    "aes_key": "F7B37CECCCB3A565FE1CA8003E320EB1",
+    "data_elements": [
+      {
+        "contents": "BFE38787DFC2F2E3D6E3B3C87F815EEA76D65A215C71",
+        "de_type": 171
+      },
+      {
+        "contents": "FDEC8C66519082CD2A451946464B59",
+        "de_type": 236
+      },
+      {
+        "contents": "9E90",
+        "de_type": 49
+      },
+      {
+        "contents": "3572D5AC806B58595850066B1725445CB8",
+        "de_type": 327
+      },
+      {
+        "contents": "BF3ABE62A330",
+        "de_type": 696
+      }
+    ],
+    "encoded_section": "8390131C77D267901CBF78476EF0C05DDC63C591100044DD945128151D3723FEB2519B34EC1D9004652B4B46B0FE74A2B003FB8DE0B02E064E02544FBD3F094FA6D08F17BC432C0E33DC15EE29ECCEADAFA28E6D97942CEAACB9CA570F7C8E18EDF12CDAA49D314049FBEC0D3986BE84CC8D7E5D5D6F4375A5C24980753F106F6DCB2544",
+    "identity_type": "provisioned",
+    "iv": "15CD9E5FBF435001DF27D9AC024E5168",
+    "key_seed": "3F81DB1789AE3442A9D41D4E812CB79D5956A9AC3144B0915DFCE60F0F81FFC3",
+    "metadata_key": "4DBCE7E27EC36E0D440AB84EA5F8BB43",
+    "section_mic_hmac_key": "30DE6D9065BC10A08AA0E19A128FEDA88875C36F07B91F83B03E4224E8A74513",
+    "section_salt": "44DD945128151D3723FEB2519B34EC1D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ECA254EFD9254459DBDBE5273EA5F20F",
+    "aes_key": "0BC0403DF4AF8576D78A3BB0D4FDCC07",
+    "data_elements": [
+      {
+        "contents": "2F00BEF93EA080BEEAA53211087262B08F",
+        "de_type": 387
+      },
+      {
+        "contents": "5A90C81267154FCE624E6CEA5DEA28F2680EF8513A",
+        "de_type": 446
+      }
+    ],
+    "encoded_section": "63901363C6D2E7FE3933E6E8C471788DF819C09110008B835CBB4228316A6BB5B90E18A8129490011E6DDE87751A08BDD4CE6EFD8793A3904FC0F36CC6BB1EF5EEA2E31100FE6E7E9A46F882E749F96E2C0661E5840221A3B8A51F54FAB65E9210C9FCB2",
+    "identity_type": "private",
+    "iv": "DB42DEB1413B50415B6A102990A829EB",
+    "key_seed": "D19CECB68227395C94499B9CC6894791C0E82E27127CD7682E7DBD8F9490F767",
+    "metadata_key": "7D38C494CC9126F3A5BD9628E79753E6",
+    "section_mic_hmac_key": "D3B48E774D5ACDB850D28528416D9082C05293E9D8D3D1899995BCA079813485",
+    "section_salt": "8B835CBB4228316A6BB5B90E18A81294"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D40604809AE5414A69F499F9A2084923",
+    "aes_key": "43DA76D20A53C5710A6C8F0F23BE369D",
+    "data_elements": [
+      {
+        "contents": "6870D2577C383B1AF270",
+        "de_type": 377
+      },
+      {
+        "contents": "807C81B75BE63B70659AE0BF8CF98D",
+        "de_type": 468
+      }
+    ],
+    "encoded_section": "569013339274CBE7D243DB20B292B6B966C0D291100030135510DBAFDA8C02CE0B4B744849CC9004EBA03D2B32850AC067301E495DAF062BB6A8F42DD991AC4DB31CAECA481B4EE1C2C26420AE65E5C90E732CFDD1DB56",
+    "identity_type": "provisioned",
+    "iv": "D2ED05465CCD69AF9831D0BCEE567D33",
+    "key_seed": "43F86EBB5F1440944C76F2C1EEC4EA165CD42A18E4DDEED0CA71F3B02545C5A0",
+    "metadata_key": "21E1FFA752F642FD002CF75F03582A03",
+    "section_mic_hmac_key": "8D6D65F4C2F58AC8158EF41A66B55AAA11748E33D0E7AA767650575CD25707A3",
+    "section_salt": "30135510DBAFDA8C02CE0B4B744849CC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "926C1D3213E846D408D5CDE85933B335",
+    "aes_key": "9F95537E5023A014C7F72E7CEB7D4464",
+    "data_elements": [
+      {
+        "contents": "57CAAFB0DDACEEFAF44DBA2DED57871F9B515547",
+        "de_type": 928
+      }
+    ],
+    "encoded_section": "4E901348A78A9E475F21CCDD2623E5AE795ED6911000A053D3FD557046F3B2EFF163A286FFAD90044495EAA257D8CB317317797423C05C60FA98796BE873025FC53D7E00BBA1DEAFE8836981267613",
+    "identity_type": "provisioned",
+    "iv": "99D1B79A79B7F1E4847C100368EC5125",
+    "key_seed": "43D16F607338CC46B1C8FF4BE147FCB700E0B2511657B6F9FF01DDBC2D3A342A",
+    "metadata_key": "D68EA89AD98D6D24E8B7B82AB7536740",
+    "section_mic_hmac_key": "32F44768525E151F19138193CDB98D65A034F25E801F6C8F33A82B30FA4D0E73",
+    "section_salt": "A053D3FD557046F3B2EFF163A286FFAD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F864FB2EEE7E1ED4DF98C3467E48B8C3",
+    "aes_key": "CC29A730AAE43BD7F30415E1A051A488",
+    "data_elements": [
+      {
+        "contents": "C6DC7C08",
+        "de_type": 253
+      }
+    ],
+    "encoded_section": "3E90137833ACE50465F931877DB7D7AFB960D7911000D27E59EA9C470CA9F69FFAD69B551F6C90022F92AE5F85FDF07BD21B155FCB131B2E5E9CECEB47E6A4",
+    "identity_type": "trusted",
+    "iv": "275F908574FBD8A2275047C81C121CD7",
+    "key_seed": "D2B7827360775208AF3BB8E7490C3C6D5028FFB96EE975FC5734E38222B9ADDF",
+    "metadata_key": "234339063D81600FF7474FF6211ADEDD",
+    "section_mic_hmac_key": "7ADB9CA113BCD62008945F73FA7994733668E83A8AB7B9CA91070BBC7815437C",
+    "section_salt": "D27E59EA9C470CA9F69FFAD69B551F6C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "09CAA0D1CD15329ADC186D389540E0FB",
+    "aes_key": "7FBE39B5E000B0D4D4310F86C0C77257",
+    "data_elements": [
+      {
+        "contents": "CF5A0E6FC4323ED2962E29A32620F94D",
+        "de_type": 22
+      },
+      {
+        "contents": "5FA1",
+        "de_type": 475
+      },
+      {
+        "contents": "F925E11BAE8107FCA842E3FF3DEDA2B457492AFC00",
+        "de_type": 7
+      },
+      {
+        "contents": "2EF99B",
+        "de_type": 436
+      }
+    ],
+    "encoded_section": "6B90139ABB3280E93847008026A21A68DD8389911000410866079E5D5895F00BEF4E871EDB07900213C71635A353B960F1FFF8C887A29746EC545860C2F7A2C9E648FDCA182ED91B9898F8040A51988D57DE0072219221CD042F325A0D7F5E3729F2A57A7264137EDA44A505",
+    "identity_type": "trusted",
+    "iv": "068DAEEF03EA46D6FC6CD92C3380A259",
+    "key_seed": "D1FBE8A8B1F0A0CCADF811DA6E544082D29F06086D81D2292B8C6E74D9D5DF1E",
+    "metadata_key": "1AFE5CC550D16DE87D2B0FF7E6819703",
+    "section_mic_hmac_key": "F1C2416FE95371BDE2A956F01F87E4EE9846559BD49E595E7CF12B94B12112A8",
+    "section_salt": "410866079E5D5895F00BEF4E871EDB07"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B52500F5E788EC0D9F202750CAC085F2",
+    "aes_key": "AFC28DEB740608CEF6933F762B5DC760",
+    "data_elements": [
+      {
+        "contents": "CC71059E41408063",
+        "de_type": 815
+      }
+    ],
+    "encoded_section": "42901380AED3DA4C95EB79F4EE45542D6E0DE4911000E4028B093A498111783EB7DD8699C93D9001A6F9A9F7B35C4BD33BB58A778EE44DED05555AFCEF345B8D569079",
+    "identity_type": "private",
+    "iv": "23C6574F20E50D4F213492150AC24286",
+    "key_seed": "91D3A91830E1799A07EDB05207CEBA50D0028C33A90B491BEC4FDB2125865278",
+    "metadata_key": "92C66C8FE82E8DBD7E8BA7674E9C6D62",
+    "section_mic_hmac_key": "7CAA4DC585DA1048AA5D8C6E651593F69CE6271C01908D4029BE1AB88225223A",
+    "section_salt": "E4028B093A498111783EB7DD8699C93D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F0F4AD67EBA779F535AEDC38D65A50FA",
+    "aes_key": "C4D22667103D39080515F16B399C2B1E",
+    "data_elements": [
+      {
+        "contents": "BBCE",
+        "de_type": 736
+      }
+    ],
+    "encoded_section": "3C901312715A779B6C3D834913F48E32201929911000317B2985660C6467DEA5DF915C1B01EB9004472D6C62E2DA0443EC06282742414A522F6BB01D1E",
+    "identity_type": "provisioned",
+    "iv": "D603605B1B5BBC279CB53CB62864755E",
+    "key_seed": "72CEC520E533E54D5A1ABE67BE9EDB9D24467FA17223625EC4F9270492D4A112",
+    "metadata_key": "1CEA77C0C5AE8B84845B85C7B74019D3",
+    "section_mic_hmac_key": "653ADDF62F68AED4759E0C3502FC0DE4B2090880EF84863E28B682064F67C519",
+    "section_salt": "317B2985660C6467DEA5DF915C1B01EB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4B6F7D8078261461839557F775072AC7",
+    "aes_key": "D33613E0E705E3BAF1AB414E7B8B371A",
+    "data_elements": [
+      {
+        "contents": "4A570A844770D914B0535BCFEFD79151C420E51AA33CA9",
+        "de_type": 449
+      },
+      {
+        "contents": "DF",
+        "de_type": 488
+      },
+      {
+        "contents": "5AB21ECD1526FB43A2E6414C23C7",
+        "de_type": 597
+      }
+    ],
+    "encoded_section": "66901382C6BDC0EF1DBBAA998D10EBEC81B61D911000BEB184901DA4A24184AEE1C55976EF7790015B749B64DF8A580F02266F611E8C8C7D4BDC033D3CE18C4945CD0769FA01B9D6DD8FF07789C44510A075008C8C802ACF280233C71C1ABD3BE2599087F83A62",
+    "identity_type": "private",
+    "iv": "B9F7A23E2F58C8D71C60140FD2E3BBE7",
+    "key_seed": "BA82C25F8A56CAD3684A3F58D67C7A86B4945E30D802589ADEEBD5C3D511C0C4",
+    "metadata_key": "F2DCCC3A2933263D82ED2B297E474826",
+    "section_mic_hmac_key": "4EE3CFB20981FC63CB453B5E132E5F2288FB721FC1AB883F4E76E6BBBB80C836",
+    "section_salt": "BEB184901DA4A24184AEE1C55976EF77"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D8E5FDD20871FD58731256D0CB62C5A2",
+    "aes_key": "81F7ACCB7AC20D054E182DF743F2AB1D",
+    "data_elements": [
+      {
+        "contents": "A6E35C990A736F98F18D46BB8B45BF506CDA38175F",
+        "de_type": 563
+      },
+      {
+        "contents": "",
+        "de_type": 685
+      },
+      {
+        "contents": "874AB6FD2685235570223B8385",
+        "de_type": 470
+      },
+      {
+        "contents": "6108D0C9F1B5E5CB8FB07EB6416867AFB020BE19",
+        "de_type": 655
+      },
+      {
+        "contents": "6EA64895FF65D99FDB904123E5F27EC2F0E9A97AAEE6B538C49B26F8C473",
+        "de_type": 351
+      }
+    ],
+    "encoded_section": "9A90137ADF3C84DEBC92F97B49EA4834A4EBE4911000B1E4987063CEB1317DE77C59EB0EABD8900431D8888C02834CB45FE988BF006D1432BF8DB613C713F2F96ED4D664CFDDABEC4319489E16C0007A21759E65CB769F8C96B83998C249F827B6FD8556000D46CD64428BFB6866834ED512101F88D059230260245D767036C70C233D0AB7C08B551D85419007BDEB71A0B1E33189FACB8C9B9F65",
+    "identity_type": "provisioned",
+    "iv": "FAB7B8F8457C545C22003AC5688B99A6",
+    "key_seed": "D9066D7E1EC8750F01AA286D6C0EDFFED57F08E546D4BCBC37F11E1884D2737F",
+    "metadata_key": "2847567D7BB29F859D0A6BC885863F05",
+    "section_mic_hmac_key": "A2040734F9568DB02016A4F637352BA3E9170A92EC7320BE2806396ED4827FE9",
+    "section_salt": "B1E4987063CEB1317DE77C59EB0EABD8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AFDD41BE6280A05A4A182FDDBD8556BC",
+    "aes_key": "1DA3396BF0DDA834C815856E590D10B1",
+    "data_elements": [
+      {
+        "contents": "9B41A639FC2D04D26CC0D9EAEE9D214C127C481DED57FBEC2950852964",
+        "de_type": 261
+      },
+      {
+        "contents": "F3E90E9164C65F910F9AFC0D3D91107C46A0A18882A25C6B35",
+        "de_type": 797
+      },
+      {
+        "contents": "181DB352E5D07F6195FE073994C661459C171C9F109CBD715ABDEE7D",
+        "de_type": 733
+      },
+      {
+        "contents": "53161D8FB05C583C438417F60CD2C593088AE431304F3BEFF1E5B937",
+        "de_type": 26
+      }
+    ],
+    "encoded_section": "B0901306299081577F1C9415828166669B1282911000818F17425C86B46D19F4314DC23929F09004EE71DC1AA65D63AA0CD9DE7385172A9753FE6A42CB6EE3A75F4852C60B9081648278D22C0A2E6708BB2E4949086D1EFD6E4CFED85A6405F8B1CAA3C3DD14DF4160D4D590345D89AC83E27AFAB4C16238740466504647BCFEBD3B97DB4E0E94CAA14965A1C1F20C6589C7AA7E0F7B1B22678432254FEC8D79A0029DE579A4F35A1DD424468BD60E00F8",
+    "identity_type": "provisioned",
+    "iv": "D6C941E5267C2582F6BB2979EDB74CB3",
+    "key_seed": "EA39241FCDF3BD8D9C8F1D804A9C415F255924EA22EB3259B9EA106F84CA7A04",
+    "metadata_key": "1EB0839E25260819532489218DAF085D",
+    "section_mic_hmac_key": "724CC97DB96191B388126C7AD9192181B6DD813C09AC9101073C4189297D7450",
+    "section_salt": "818F17425C86B46D19F4314DC23929F0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "08EFA9C40E0A0036570392CD33DB1F45",
+    "aes_key": "56C7B28E8595C1A33D39AB4F8B140F29",
+    "data_elements": [
+      {
+        "contents": "C69770",
+        "de_type": 273
+      },
+      {
+        "contents": "ABE13AA30EC88530",
+        "de_type": 592
+      },
+      {
+        "contents": "D53E9C2881E7EEF2",
+        "de_type": 940
+      },
+      {
+        "contents": "A720A74DB9EDEC417C2C55A064353336D8EB0F3AA7B3",
+        "de_type": 443
+      }
+    ],
+    "encoded_section": "6C90135C7B1B79CD9BD45F21FB487249C913FE91100003081F0A5D56CC9F2C4A87EADDE0070C9004792D26E35675BF2F6FBC982F307C53936F49AF1AF5D87945942B78A15F8BBCC14021660FC4F8E4B00DAE05757A14C346EF08660F04A2F1BA65FD0E48190779C3C0689BAB3A",
+    "identity_type": "provisioned",
+    "iv": "61E889286F4D0CEEBBC96D05B3742610",
+    "key_seed": "A4AFF6856A7095C4B9DABDB1515C4407FAB5B905D0D58D798BD812842FED8CA8",
+    "metadata_key": "9FB8CC22E26477665685F51D727B2E09",
+    "section_mic_hmac_key": "1A637F0C06551F322E26314D9642C2DC7ACC72C9DD953A548B0B5F4E4EDB76CC",
+    "section_salt": "03081F0A5D56CC9F2C4A87EADDE0070C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "37AC5ACFB5D9A0305EA7BB5CDA443D11",
+    "aes_key": "E6D6BDD49482D54AE9C5AB69142256AB",
+    "data_elements": [],
+    "encoded_section": "37901372E83A536FE8DCE79BBB6DF0FC4095599110008E387F351A94036BFA085A8F6864730A9004464EEE74741C2C2629FE91C5502736DF",
+    "identity_type": "provisioned",
+    "iv": "B137733181B7AB2C833C606028FB6B22",
+    "key_seed": "F6D27F4E02DAC7253E0907998FF49D7A39391439377AB5EBE1F0137C336A85B8",
+    "metadata_key": "FA450266B083FBC3EB2C8692E7F5DBA6",
+    "section_mic_hmac_key": "DB503A7C3D87F83AA4C66220C24657F84518AF6140D55CCDC1EE611A3C20984C",
+    "section_salt": "8E387F351A94036BFA085A8F6864730A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F7E19D646D39679C29404EE3B6A34048",
+    "aes_key": "5E08BDDDBAC3331F8D8446C868788EF8",
+    "data_elements": [
+      {
+        "contents": "01F8CE76B237517269F2CDEA51F7B8",
+        "de_type": 445
+      },
+      {
+        "contents": "DA9EB0A51417DD89A87E69E1B3116DAB",
+        "de_type": 636
+      },
+      {
+        "contents": "9B6FBF25E22A186B2F1367BA94A80D880D647179BC392A4A68B4E4DB90",
+        "de_type": 635
+      }
+    ],
+    "encoded_section": "7C901342E89E1476F32CE4BDA127349115775C91100064F1AABAFC1A089A905BC9C5B4AE2854900149E174A599134E70CDACDFF18247C44F80F02090E0AF6DDAD80132F4843EC9FF8CB591D31FAA203E9AFE269A7F76A7E08AA0035AC8359CBC7D74DB6B6612CA9BBC657D9BD9B1F6615050A3D8A690C7AFFAFA67F7EA",
+    "identity_type": "private",
+    "iv": "1ABCBB904C64337AAB7BED61676CDE36",
+    "key_seed": "A004861A769F72CC50175CF18E439570E9ECEC2C784AF1B05B2EC10B40E05901",
+    "metadata_key": "8A5B72CB0CD76DFACC878DC16F43896B",
+    "section_mic_hmac_key": "6AB27792A42D0A05941D5D1431346BE6B5F245A6F137FF63E8C101CC545C9E0B",
+    "section_salt": "64F1AABAFC1A089A905BC9C5B4AE2854"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "034796B51E627F2138D8A4FB86959B34",
+    "aes_key": "036A24D477FEE94B8906821BFB6CF3BC",
+    "data_elements": [
+      {
+        "contents": "28DF05F4C663510E51CE9C01EC46117A1C",
+        "de_type": 524
+      }
+    ],
+    "encoded_section": "4B9013F9761369F75CFDCC25753E3962A266679110006E553201E38251B2EDC4E36504D7D7BD900185791665A709E7D80D9B1D7C4FF9C51E0A486C6AE1B9C63B0D233D845580067782694D81",
+    "identity_type": "private",
+    "iv": "2C13274C3949E9003F13C503E031E9B7",
+    "key_seed": "88C9ED0E90F51DCA3C12A6AD22F4639B8B8E7C276F98E94164837BD2C45C341C",
+    "metadata_key": "DE936A57C9D6BCAF001EC964B6C5EA04",
+    "section_mic_hmac_key": "70514EF46B1EE66FF24179E86CADE9551893991E76A99E8D10C70D2297F760E5",
+    "section_salt": "6E553201E38251B2EDC4E36504D7D7BD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "46184E36FEF285DC6E4F57A9C01538C2",
+    "aes_key": "A200BAF46DC86EE97B8FE5EEDB22CB4A",
+    "data_elements": [
+      {
+        "contents": "632D326CE5387E432410DE871CC167BB760657E21D",
+        "de_type": 421
+      },
+      {
+        "contents": "F36E9E2F130BC0254E4799F473D372C3486919",
+        "de_type": 130
+      },
+      {
+        "contents": "DEC218926E9C715196096355C86AE17311DC256F49",
+        "de_type": 172
+      },
+      {
+        "contents": "06DA3BDE65C616FC1F",
+        "de_type": 348
+      },
+      {
+        "contents": "50F9FD",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "8F9013FC2BEC7FB7E301EA360D6B3C0A0FAC6A911000DEF111A18B8FA9C6C326D4054421021090013023A39CD835BB827B0477272151FE970F97748FA2B575EF993BBF6175CAE761A96E3F9FB81C92A9AA6D9B06A19A5C3A88D601D1A67CC00C5E926A7CEB87EF0BAF0FC4F3B8A0925184D187CA130D900364D10122CA3CDBC30A6639B580198D459B88773B50F2EAB0",
+    "identity_type": "private",
+    "iv": "45EF8ACF1EA3FA8F1E19CBDE20594893",
+    "key_seed": "068098719BD63AAB986B7EA1D5881F6963A30AAA9C2E80E40059BAA15F0662FD",
+    "metadata_key": "B1D87DB284A2982EAA53C596995FCE88",
+    "section_mic_hmac_key": "258571568C4C153AE5597025CD6DC193B300B6A2FEB89A24682E7934414D5DFD",
+    "section_salt": "DEF111A18B8FA9C6C326D40544210210"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0DE15B10175F1DFF2628C70D0AED6B46",
+    "aes_key": "E90504071197BE226CD357D5E1AFBA84",
+    "data_elements": [
+      {
+        "contents": "A2531C952A42C417BB18C97ABEBF39505DBF6730C079B7D7",
+        "de_type": 497
+      },
+      {
+        "contents": "D0F28E7F9B6967A9199BC8B7D02399E87CD4C29995",
+        "de_type": 239
+      },
+      {
+        "contents": "",
+        "de_type": 210
+      },
+      {
+        "contents": "493816D45767C5A9",
+        "de_type": 684
+      }
+    ],
+    "encoded_section": "789013F48A6170B368DC90652516A11336D98F9110001F72FEC00A10F48A24F0BDC9E209A86090016DE45596DDD682BDB0CB6D432842C6653E61E074800DB1AD134A2D06A0F9EA32A67D3A000C3CCF76E2F12D59EC4C570A1796ED6DACA5428E45C9A071BB382DC283D4E67F77D5624D4F8DF9C8192ED8967C",
+    "identity_type": "private",
+    "iv": "628959806C6FD40FB815F90B8E383C92",
+    "key_seed": "38B809FA67BF591F2FC3ED5E89FF69196E8CEDBB2C70A5C4214FFDF0C6720A89",
+    "metadata_key": "683AAC0A90779BD7E8E6102C59C33CFF",
+    "section_mic_hmac_key": "9F76A1AFC8EC596D5C12E7B2703DAAB5C2147A3F152CEDD5569C004568545419",
+    "section_salt": "1F72FEC00A10F48A24F0BDC9E209A860"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A66D131470862B0A800CF36CCAF21F9B",
+    "aes_key": "A4E365EA6FC7E436B0803863A359E74F",
+    "data_elements": [
+      {
+        "contents": "37F6CB293369D0AE08C0CF498F725063BC941429D4748D88C1F5A8",
+        "de_type": 440
+      }
+    ],
+    "encoded_section": "559013340F4D1F8D98CCC159758FEFFCA24CB99110001549A78B42DC99D25E0FA7D7DAB336E0900461A9ADB4F53BC3EA94A61A8C9486F83C5A94D311D481D1E1C4B98FADD358CEF1E8C9E48997577EE881358BF6C720",
+    "identity_type": "provisioned",
+    "iv": "2E46CC58F90B1F259763DF87D28CFB5B",
+    "key_seed": "866216209CC3BA31A0CD00FE866C661906FD82FFFA1AF1FDDFE05CB3FE5D160E",
+    "metadata_key": "6E43E73A2F75C729FFC5EE5FFBD37BE0",
+    "section_mic_hmac_key": "386FC2463C51822E0D2E18CF7A0CBCA1A2259F0F97DBD49AF0CF76A070BDC5E1",
+    "section_salt": "1549A78B42DC99D25E0FA7D7DAB336E0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DDDF41B6ADF98A34F574AD71850DE058",
+    "aes_key": "B737AA1DDDF85031F002DBE5C45F3E20",
+    "data_elements": [],
+    "encoded_section": "3790135EA759302F33AEF062217EBF5A4B65E99110009BFAE224D28BDDB0C9CC5D46415FC3A09001084F44EB87F5634E839BEE652E071D6C",
+    "identity_type": "private",
+    "iv": "10C16D86C9E0BE1F6347112C21D5FB8E",
+    "key_seed": "E6582A2C793283D86BE936BC765C9EB0512329DA8952DA2D43DC010F82ABDE73",
+    "metadata_key": "860157134E0A0D7293D61B43F2587D9B",
+    "section_mic_hmac_key": "2506BB15AF3D9F480145093EFCC12190B38AF4BF2645C2120B4BD2CDE4F40C28",
+    "section_salt": "9BFAE224D28BDDB0C9CC5D46415FC3A0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "628478EA2295D16F6B27D99F0A27D544",
+    "aes_key": "78D9C68A8B7E0EA68509955971559804",
+    "data_elements": [
+      {
+        "contents": "4933BDAFCB68075E6CC5A5423F4C",
+        "de_type": 795
+      }
+    ],
+    "encoded_section": "48901379A1BB27F73791D000D5228DF7C135D991100081BA33E21FE4ABED1A04C9D95BC2D6B49001FEFD2CC7172F6DA36547950D23EFD1F9B487B44DF40F4E3EC3F0DB2C10C86272AD",
+    "identity_type": "private",
+    "iv": "93505D7F5898E41D69F7EA457DE34D54",
+    "key_seed": "0C8434F9786244C9AC393011DF523CDCBF30DD322487316CA06424819AD2BC67",
+    "metadata_key": "2129E9F8F1D9A4599073E55B273AE84F",
+    "section_mic_hmac_key": "1F04FFA93D7247CD23DAD80C54D3A02C0F6805F05D593A7F1969729E2B66E149",
+    "section_salt": "81BA33E21FE4ABED1A04C9D95BC2D6B4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6636A8179A7539B6C145AB036ABC61DB",
+    "aes_key": "52871CCD3C531DB8ED5E0CD2B9408382",
+    "data_elements": [
+      {
+        "contents": "4AF0AB96E0D92C99E994BFCE92BE3294658B36",
+        "de_type": 653
+      },
+      {
+        "contents": "4950FA0E9C1DD840913D09DFC7801DD66057D63E42B231E7",
+        "de_type": 35
+      }
+    ],
+    "encoded_section": "6790138403EE19A982413945659E727142CBDA91100060ADDDBBA5581E0492927FEDA1839F849001858A8DB882908AB6E59B43DD60DD864E39280BADE1F2263C2BFDB26294F6DD996C7EC2DBB9966A9E022C78D8B31C8A94D77E708F405B40AD605E35EAA7AD2B6B",
+    "identity_type": "private",
+    "iv": "6FCFFA1DD673BD46A33DCAD5D78A0818",
+    "key_seed": "435D4CFBFD90B09EB4FCB8618F4F3126B3941B90CC7781365ACA74B7C2419339",
+    "metadata_key": "720D20F73E7ED7BD2CFA70320D90CB4E",
+    "section_mic_hmac_key": "22C29F385E3F714233A8934D6D44C0F3F1FF950C26AF4786B49A3EC81A71C98A",
+    "section_salt": "60ADDDBBA5581E0492927FEDA1839F84"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C19D8AFBE64F931379D7EBF939CC24A1",
+    "aes_key": "9EFA45E698A339160EA80DF0ECF36499",
+    "data_elements": [],
+    "encoded_section": "379013B9692752CF3F41AAC03CA730A6AFC85C91100061DD84CFC18E2CBBBAB60CEB86ABE6D690013AAD9F2BF775CB780D9D8E13858974E0",
+    "identity_type": "private",
+    "iv": "BEB8CB30E6ADB86DEA9E572D0583A578",
+    "key_seed": "27A648DE4BFFF66325913B794954218B87ED3D79662BE80BC4AA978B26878ECC",
+    "metadata_key": "5DBFC0AE842BFC1347055279953E9BC6",
+    "section_mic_hmac_key": "9DF3EB07A1D92235053FE039F478DD9CB6A554F79CCE713C5C813019099ACE9E",
+    "section_salt": "61DD84CFC18E2CBBBAB60CEB86ABE6D6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7466F38050B9EEB5A0B483CB30465DC9",
+    "aes_key": "EEB41F887877D842CC4EAAA67F83610E",
+    "data_elements": [
+      {
+        "contents": "5E96DC1DBC05740A894EDA",
+        "de_type": 560
+      }
+    ],
+    "encoded_section": "459013D0902F2AB5972B41BC0ACAD9B2261DB6911000E35AA601D5935057BFCF03242D9BBA329001F2F956F617516A1DAA125A88C54E29A596932F5579E7D6D834E3B879E6AE",
+    "identity_type": "private",
+    "iv": "77EEB2974146266D349B9088200A5905",
+    "key_seed": "92B2AE2BE975A24FDA5C81265161B32E9C3AB9766B0DC2D0B30A4FFF8B996572",
+    "metadata_key": "3A4EE38FEE87B6F7B68270402F9E3958",
+    "section_mic_hmac_key": "2E0ACBD90AA030C11B3784BC17D59DE09E11094317E45FFA4169516A3DBE7C49",
+    "section_salt": "E35AA601D5935057BFCF03242D9BBA32"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8122FF813F37EEFC5DDF551646A94693",
+    "aes_key": "788ADD1E00191939A9782119A5E2094B",
+    "data_elements": [
+      {
+        "contents": "710E0E6A6762C48EB92508787416BFCA6F",
+        "de_type": 714
+      },
+      {
+        "contents": "24C9CC8AA0E42CD275",
+        "de_type": 396
+      },
+      {
+        "contents": "29867AE4823526C2E11B419C62",
+        "de_type": 632
+      },
+      {
+        "contents": "6E5B1B035D83BA417C8ED1FFD0571C24F4C0E9EAB9342F852FDA",
+        "de_type": 596
+      },
+      {
+        "contents": "1A515A8766EF2E",
+        "de_type": 702
+      }
+    ],
+    "encoded_section": "8E90131E8C489B1336454D3128B130C4134236911000F46F979A1B7FD0A2A5C73E3243A8FAA6900483E4723D8227881FF2C1F5945F3C894A7772752A61B67F9B5735667C9C1B06665CDA3BAF634A498B9B5F401D0DE765E0C3C6A51755C948CC3C196A7B4C79CBC2F95A4D968B060E08FD8170F96B8C13E48FD125BB6080672950A8359D6F1CC7DDA17A3642F19C54",
+    "identity_type": "provisioned",
+    "iv": "D27F64127716122FCD1CAA9208F77EE9",
+    "key_seed": "BDB0A9567EBF4EA0C328570726D21525495553082AA9CDA9E5D64AF80F45E64E",
+    "metadata_key": "65504F6C8B7E976ACE5E952FC5FED4BD",
+    "section_mic_hmac_key": "B6593C39E6D71521EBC7CF3AFD16E1E6C949CCFE6C94139B93213D443C4A7A95",
+    "section_salt": "F46F979A1B7FD0A2A5C73E3243A8FAA6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "307E6BFCF6A782B991CC2A749B09636C",
+    "aes_key": "6DBEAF71EE0D2A9DA8AC1029F2DC4345",
+    "data_elements": [
+      {
+        "contents": "CEB40AC198172437DE1BB258C1FA08291A70B949500E30BF",
+        "de_type": 199
+      },
+      {
+        "contents": "7CEA871566BD69B35E3A775D9DD09AFD0B",
+        "de_type": 458
+      },
+      {
+        "contents": "FF2D5A9236A40ABEDA2FD0847FFA45532475",
+        "de_type": 957
+      }
+    ],
+    "encoded_section": "7B9013ADEE4B07E8BCBF39E2EE45BCB9936BA4911000866FF3E8F11D08BB28FC9A2164C3452490020D0C51AC4563D2DC3CB268190F86800DD0CE78B2F4F0133A4F91C1A4487E068364F8FE0F99246BCC25632D849D0FE3E736800381E2344F29D37AA35301B9F0BFD37E8C41DA3F53748103C55EBB0C4948C5EF306F",
+    "identity_type": "trusted",
+    "iv": "59BDFB301F008CC7E84C962512E1210A",
+    "key_seed": "F37001F68E3C17DA62CB445F3BC5FBBE1B0830EC43DD07D578A4E4AB93A97BF9",
+    "metadata_key": "B18E09134D29AC36E182306B8E741109",
+    "section_mic_hmac_key": "EEF9ED52B0AB9B2B9B98E4BC115730A79D864479BF14ECDF01F8A22AD23C4EE3",
+    "section_salt": "866FF3E8F11D08BB28FC9A2164C34524"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BFCF368DFA6337A5BA78CF4B60B08E3A",
+    "aes_key": "7B27B37D2C56F0B288D61271E9F697A5",
+    "data_elements": [
+      {
+        "contents": "AD849E",
+        "de_type": 717
+      },
+      {
+        "contents": "F58E9B4BF3EB58DC7F",
+        "de_type": 556
+      },
+      {
+        "contents": "34AB62E364A56D0517E902AF49",
+        "de_type": 839
+      },
+      {
+        "contents": "885B928824E57AD5D4FD8A70A59A78",
+        "de_type": 483
+      },
+      {
+        "contents": "03EA0136C4685295DA9A77EDE4A8C1E9EDF7871B",
+        "de_type": 671
+      }
+    ],
+    "encoded_section": "829013B346FEBBCF63B0EAB3803D13636BA71391100071DB218D918D828C92E0204CFF4B611E90019CFF0B8A1B3FE54FE239B42BC4796958C108B1C88A768B734BBE536CFC6610873D309DC76A67AC9E17767D6190361A3F6C2CF17B58FF16A9FDC2C500A183F07FBF578CE7A0308800E9B98EE9D42405320EEE6B6016B0B05C96E6C8",
+    "identity_type": "private",
+    "iv": "C53DB4F70A67DE7DF7307CA6171F3BD2",
+    "key_seed": "5E2B18C1833B41338025453418B8B8395C11EFE691C8EA7E763AD464DA64EB76",
+    "metadata_key": "B23210152FEECCD9598793E38B2CEDDB",
+    "section_mic_hmac_key": "EA04B6A0DC8DF1B4703A0F3C1B2CB76FE339295CBC5C34ED626D8CA9998EE78F",
+    "section_salt": "71DB218D918D828C92E0204CFF4B611E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DED5FE514596D4F6FDC651F4401A1285",
+    "aes_key": "21350A13179CD8E8DE946AF344533A28",
+    "data_elements": [
+      {
+        "contents": "7D4DBE88BB3F4D56AD861F",
+        "de_type": 73
+      },
+      {
+        "contents": "F95B18F59E",
+        "de_type": 982
+      },
+      {
+        "contents": "02D2A88797C6763C73BE592A2AA8C4B9236F9D",
+        "de_type": 832
+      },
+      {
+        "contents": "6AF8E9C04E1C42",
+        "de_type": 91
+      },
+      {
+        "contents": "111046E7",
+        "de_type": 187
+      }
+    ],
+    "encoded_section": "729013E6D0C9F2B312B4FBC87905D44CD5E75A911000B55AD57B5E62C64382DF184E318BFE5690013F8096D9AA8FE721FED8E1732C0CA8A385307A136AEC083D2C1D73EA7113137B23A3B2B001EA0724492396E0282A267BE561B1528F994AEC04DA56119BD003808B010FD2F692A3801C03B1",
+    "identity_type": "private",
+    "iv": "D4C3B01CA68065A08589F17A43EF28F5",
+    "key_seed": "4FF752A463D1E2C0D678C24320449F18FCD0746909FCE6FDC1B516D72A7C1CC9",
+    "metadata_key": "7388750D8003EE00CC5F84E1409B12F4",
+    "section_mic_hmac_key": "939E08A95A08847810EE6BE0708474DCF4404FDE883B6378CAB938B76E8BD12D",
+    "section_salt": "B55AD57B5E62C64382DF184E318BFE56"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CD9E10B9F020174B29E5AD90E0E7084F",
+    "aes_key": "141D0AECF29D4ABE5B4D665284700976",
+    "data_elements": [],
+    "encoded_section": "37901351EBC383C07087BF0D7C785964C144CC911000E40E382B6E96BD40764C5F0D5415D0279002D1951D7B47B5F5853EC55EDA09251A97",
+    "identity_type": "trusted",
+    "iv": "6D1D36994AB7C4A0EDF441816A844237",
+    "key_seed": "247D236C67F1F56D1ACD8817170F45C500530BB9D122900272CC2E8A30A89359",
+    "metadata_key": "39B3703CC7908B83CF3B53A3238565EA",
+    "section_mic_hmac_key": "21EB0469854E8E7DB1904AA28BDAD5869B325E8E6B116E216B327A0DF9B70DF7",
+    "section_salt": "E40E382B6E96BD40764C5F0D5415D027"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "03A133AE87140BE18A3EB46B94941E52",
+    "aes_key": "9589F697EB5E5F3D2C1683B41215C4FA",
+    "data_elements": [
+      {
+        "contents": "FFA5C5",
+        "de_type": 787
+      },
+      {
+        "contents": "30EC973D18D69C314A4DB86B47B73786D996EE5BDD1EFD7056",
+        "de_type": 739
+      },
+      {
+        "contents": "97D8216B95BC62D8B6A24918CF8F0B6EF86BA3189A0D3A75CA4CE0EC8BFE",
+        "de_type": 704
+      }
+    ],
+    "encoded_section": "7A9013CA7679919FE47E62BD141812222962C9911000538B7CD44D330EDE7EB3810E2976BE3B9004B8F73A0634838BA4090A034F8AF96FF12A174C058DD82300D11D28D86109FD09F788CAB9E55D989073D594FAAFA7AE3D67456CB956D78996FEF9D0B9519D60BF25B383AA1559495B7EFD3D903BE11F816659DD",
+    "identity_type": "provisioned",
+    "iv": "2CF79EA2D302D0652647EE01347F48C9",
+    "key_seed": "C9BC1C391B0EFCFCD4B29D9C159DF75D040C4383251F2918B5675A149A6413B9",
+    "metadata_key": "74C107B8323774F37E4E2A54503915F6",
+    "section_mic_hmac_key": "E52B5B1FB65F064CAA5F7602FD57755AF4E2615FB78019B51541FB7EECF535BE",
+    "section_salt": "538B7CD44D330EDE7EB3810E2976BE3B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3AE4359592BF7F201084BB24660C771C",
+    "aes_key": "B8773C17826A4385B9284B3589766262",
+    "data_elements": [
+      {
+        "contents": "DC71AAC54ECB1B47647F31E69C394FC4AED39298C6",
+        "de_type": 62
+      },
+      {
+        "contents": "EC2D",
+        "de_type": 37
+      },
+      {
+        "contents": "C79A5EDAA0A03DBC18678509",
+        "de_type": 107
+      },
+      {
+        "contents": "74F8",
+        "de_type": 677
+      },
+      {
+        "contents": "1E3926BA0B",
+        "de_type": 957
+      }
+    ],
+    "encoded_section": "6D9013E5E33AAF3D46ECD6E7ACDC59462B6BD491100016C31481FBDA8F5298370904482F6B0D9002CECC579F805F85B4FDF7CD77CAAFFC9F702C00F4EAFDBDD6A7B88A6F41CC4D299135CE06E2A1F852818F6E08D69AF50CE298BE2F506FEBFBE601E97F17A324501BBBBEDEEAE8",
+    "identity_type": "trusted",
+    "iv": "6142669F10695320E11C7EA40B354D1F",
+    "key_seed": "32A9BAE8DE4585B275D88FB2E96D02B59BF865964276A9C6C3E847953AAE090F",
+    "metadata_key": "23347E850700388424B419DBDBCAC33C",
+    "section_mic_hmac_key": "3F2036BBAAE4896B8DD2D61A0F698D61613B4BE0B4F19660B6BEB71294B46817",
+    "section_salt": "16C31481FBDA8F5298370904482F6B0D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6D656A4E2FC03D80DC3B6513FA2F6F99",
+    "aes_key": "9E24A3900D6E56EACAF9A3F141FC042D",
+    "data_elements": [
+      {
+        "contents": "DA8064399B756E",
+        "de_type": 292
+      },
+      {
+        "contents": "ACA505B2F1",
+        "de_type": 97
+      },
+      {
+        "contents": "00E6055661B70886AD75E59AB2D35846",
+        "de_type": 461
+      }
+    ],
+    "encoded_section": "5B90137BA9E7F1BF772CEF94B3DDE2E8F230E7911000FE36015D37F6E2747DD1786609B9805790013F0F6B3758EA34EDDF61606E0A6FF7E98129DDFAC299DD07D45094A490496F3C4C479C0DDE225303DE62051B03CD6E59080B259C",
+    "identity_type": "private",
+    "iv": "F48F5053B7CBB0D2278CE266444D173A",
+    "key_seed": "3A0DDABFB9F1B1289651514C2F2BFA4E5907BFB05A34320064EF1D3DEC357CC2",
+    "metadata_key": "3A2FD2BE39A37010435F2EC8567BAA0B",
+    "section_mic_hmac_key": "9EF5C5CFFE0C3EEC958D358164165AFAF42350E0A7E930A8D6052C334BF4C3F2",
+    "section_salt": "FE36015D37F6E2747DD1786609B98057"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "980AFFFE379C22B79DE841EDCECEED5E",
+    "aes_key": "CA4B0DE90665264505C4CD89237FC2BF",
+    "data_elements": [
+      {
+        "contents": "C871A9B1",
+        "de_type": 695
+      },
+      {
+        "contents": "4F174A736E938697E7A4EE944DE19CD2921EFC1456CE9A5E48EDC9A058",
+        "de_type": 921
+      },
+      {
+        "contents": "8451A82242DCD1E5E990A47E2B710B",
+        "de_type": 792
+      },
+      {
+        "contents": "ED",
+        "de_type": 822
+      }
+    ],
+    "encoded_section": "749013335E6ED7B39E6DAC22789B547DE11CEB911000A11F350D23470D8D6714C4C5025E7ED690045992C6A6AB032F0743FB9C5C76DA9D27BE1B7896DA8473DA5305E1EDEBA7FF83B153DEE304349FBE73B34E47291F64350A2A8CF88250291CBEE24A62FEE68799E245C09AC54A1C01314CBE10AD",
+    "identity_type": "provisioned",
+    "iv": "FBF7F6587930B12B75185D427824D820",
+    "key_seed": "01AFED11D971E1477C49247EFA03A233971ED579A3D54BD6EA1F735E1DACFA69",
+    "metadata_key": "06878DE1EAF8F6CECDF30CFB61C4A20F",
+    "section_mic_hmac_key": "57B4D6F98948B6EADF732619716977F377438B038ED51BBBE9DEA245F660A799",
+    "section_salt": "A11F350D23470D8D6714C4C5025E7ED6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "142D92DF381FB02ADA5BFBBDB3194225",
+    "aes_key": "EF29932C9885D543FFEC36215E5C7D8C",
+    "data_elements": [],
+    "encoded_section": "37901306A47A102A3519418B25A673A5F52904911000297D7D672519392F14F37525A0A77E1E9002C478C7D3D651D54D047F7D8DA3EEA47F",
+    "identity_type": "trusted",
+    "iv": "753CC945341DCF47B1AC1615D664131E",
+    "key_seed": "C7F29427E4BDF07FFB51959101758A7034EA2A2E3441E719DFC10633AA1532E8",
+    "metadata_key": "F5CB77F80D986B392A01A036D807050E",
+    "section_mic_hmac_key": "39F6B1ADF27329472F39BCAEA60B1A75B68C8CF921FE68DE7A0CB5280A0A7565",
+    "section_salt": "297D7D672519392F14F37525A0A77E1E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9CED41C417A0C7A7D1A660CDAD238B3C",
+    "aes_key": "1B214359E8F6A0A67001E9763902678C",
+    "data_elements": [
+      {
+        "contents": "33",
+        "de_type": 916
+      },
+      {
+        "contents": "33D198321B338170A869F5085BB5C78B0551E2A5223599B1A684",
+        "de_type": 423
+      },
+      {
+        "contents": "46C92249B50D",
+        "de_type": 801
+      }
+    ],
+    "encoded_section": "619013CD128065A30C39221D969E1F403884AD91100045A40C690EB4CE8A31994874C36EE462900281E30F108565FFA512ED054F474331ADD12B4F12F9C772B5951C86183268ABC15B171D58A35B3491EF58AB10CAAB690F816686CC6EA03EA6BF55",
+    "identity_type": "trusted",
+    "iv": "9D7191BB69D4CFEFA0C02406AEE9DA24",
+    "key_seed": "2E54E9BEE7263BEDEF24DF26B14D0568D3122209AC5242CB266E7AC650B82FE5",
+    "metadata_key": "55A4DC9840046632FCF02F5A3D8A21FD",
+    "section_mic_hmac_key": "7AB0218829879A7518E725ADDC26869198DF9A790D6F59E1A813B8F0E0D83747",
+    "section_salt": "45A40C690EB4CE8A31994874C36EE462"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D9EA401291CA51C522CAB05537839268",
+    "aes_key": "2A29ABFD0A8B0B9DBBD433BC6FBF2694",
+    "data_elements": [
+      {
+        "contents": "D65B4F2CD54532FF49DCF70BAE60834255889E4C0B84EA00A597",
+        "de_type": 897
+      },
+      {
+        "contents": "",
+        "de_type": 672
+      },
+      {
+        "contents": "4381B746F456521012706DABA9E514",
+        "de_type": 247
+      }
+    ],
+    "encoded_section": "6990132DF63F223549475A6E9136749C83E4AA911000384273880FCA6E5CC28BEBDE3F02D7009001D4155F568EB768FDB8983007689B9F0BDC070243F3C1397F7DB5D70A2EDB97A39DFEE8D55A8AA282A599849FEC4AF90A61A54A01D407DA6CF9AA89C8492164483C13",
+    "identity_type": "private",
+    "iv": "9FCE9E12716169DABB86DDC631CEBBC5",
+    "key_seed": "D12E1DB0961229C72F7A1F9FD2E03A575B304EB3CBC77D6787D2A00D76348A29",
+    "metadata_key": "39437BD0EDF1F0AE69E6C168EC28910B",
+    "section_mic_hmac_key": "3FB5E39551A2434E164547A99C8572C213DEDAA602680E7573453FAF22C2D892",
+    "section_salt": "384273880FCA6E5CC28BEBDE3F02D700"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "52E5DC1D919E92A17EC425D120EE446B",
+    "aes_key": "1070D36A68639C052708BDD149C76B0D",
+    "data_elements": [
+      {
+        "contents": "0691E0D075CE0152FAA8BC5ECE77F1FD8715A0",
+        "de_type": 193
+      },
+      {
+        "contents": "6748926F6E2859A23BC42442C9A67286DE92581E8CB6C438C934522AC6D5",
+        "de_type": 452
+      },
+      {
+        "contents": "C05DC7EAE1890C046D11C3A09F",
+        "de_type": 18
+      },
+      {
+        "contents": "750A482F94219F642DAE0BB5731CBC8D429831078788BD23C97ABE9C",
+        "de_type": 410
+      },
+      {
+        "contents": "50C92B13EFB267255543274EF78B39E26E13C4B4F41CB9FC0C5132F1",
+        "de_type": 947
+      }
+    ],
+    "encoded_section": "BB901336682108499C15E3C9A3E960E1F0BA779110002BC1ED01E66270117CAA0CD05F05809890046D989D2205B8E302C5466A2316960D9A353C986CC3CEC221D254C1CF319898253B6EFEE1C58519F6DE75054473AD0B52AA87A8B589505B46AA814B222ECCBC43B52461DEF067D9A1D5BC34AFC835B04268E040DCCD08BDF7ED3B752D5CBB69C098DD782514EA0D4B085BFCFEC4A6DE1004304986AB4CCFA7ACE721070AAB913E3A1570A80638905137012669EDA49034BC143CA2",
+    "identity_type": "provisioned",
+    "iv": "638C93531115E6D017707DE649B22BFD",
+    "key_seed": "6114574A94E6D39027823764C6CEFFBC698CF543C7FFDD43E649CC447A84C1C4",
+    "metadata_key": "B27C10EBBE24E783576D83E48C9318EF",
+    "section_mic_hmac_key": "912A9018303053335B666556024E27E0DED70D189846A2FD0946DBCE9C5DF1B5",
+    "section_salt": "2BC1ED01E66270117CAA0CD05F058098"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8E7A8AD9FEB5AD035C6915F3978DCD52",
+    "aes_key": "4CD663AC711C40F5E58CCBBB5612D69F",
+    "data_elements": [
+      {
+        "contents": "1733D5DE",
+        "de_type": 202
+      },
+      {
+        "contents": "6F7CDC83033D",
+        "de_type": 849
+      },
+      {
+        "contents": "5CDC08111E0B1D094075ABCF883D89DA6E193CC7781A30",
+        "de_type": 291
+      },
+      {
+        "contents": "78",
+        "de_type": 295
+      }
+    ],
+    "encoded_section": "6590133E0D7409282A63D00B1043F3FDBC8962911000B9E781A89DC0DC26E307F2DB5AE84E859002079E2F53C842642D1766655B3CD0F95B8EEF98FBFEE2B6551EEDDD58AEFF4EEE8B1184BE4DD778D241C7D19A23F45F33B182D6F2E3D4B214189BDC3E07E9",
+    "identity_type": "trusted",
+    "iv": "AAFB4982D1299671CBA1E5169690CDCE",
+    "key_seed": "1C0AA7DE5CE402F06C25EBEBFA297A7B8CCD03AE2747C549ACD657BC10A6617B",
+    "metadata_key": "4F8EE08FF29009BACF5DF132DFD9FAC7",
+    "section_mic_hmac_key": "57457810563B685ED78C42BAA44DFA37C84037B6D733079E5BF408BF8DAA63F4",
+    "section_salt": "B9E781A89DC0DC26E307F2DB5AE84E85"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F368D766AD577D0FA2BA4EAD2AA71F16",
+    "aes_key": "1ACB9732F1E49D43B9F2F6DE5F9EA426",
+    "data_elements": [
+      {
+        "contents": "AED88C9593D7026A7E5FBD645A6CC0",
+        "de_type": 756
+      },
+      {
+        "contents": "29366161EA3148D44306A03FD2B1B9B64C9D54BE45AD",
+        "de_type": 966
+      }
+    ],
+    "encoded_section": "6290131DDD462C802488F8FCB53337F0E295B5911000F6FCA1B3F6B059B23F66D8C4EA051C6C9002C816881A036092A98D6E2C43B56997B3418206577AE5FBD2ED140513DB563765F8BC8F24373A34598CE965F612E6973213F68D8725BF8687E7C0E0",
+    "identity_type": "trusted",
+    "iv": "AA80F0C2853387D57352DA38D31DE2C6",
+    "key_seed": "F191675B85BE363A41115825E9F96AE944B1BB30A4F44B5BF264607F23ED1D03",
+    "metadata_key": "1463A91940AA85E20E4C102FB214B062",
+    "section_mic_hmac_key": "7448C6F70050A2F6807F37A50CE846D85570164633904F6988DBCDEE309BA469",
+    "section_salt": "F6FCA1B3F6B059B23F66D8C4EA051C6C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A8F73F308C8040F875068751AC07146F",
+    "aes_key": "4ACCA77F6443A997EC976E8DF29BF045",
+    "data_elements": [
+      {
+        "contents": "B4206451A977B5C7229B3706C7A9ADB5F1A2",
+        "de_type": 397
+      },
+      {
+        "contents": "56357AB9D8F59AC35C31B4A33719",
+        "de_type": 768
+      },
+      {
+        "contents": "E4E7555166",
+        "de_type": 650
+      }
+    ],
+    "encoded_section": "6590139B75C6E2F93374031891CB7F183D1DA5911000ACB22E5B30D0DBBAF07D77E81CF008949002CB361E9901B9D970AAF01C9C930078BB28E92B29E27979BCC204CC7E57B37D2A092B33A50FB2F58E104AF02590F8F81AD33F181D7E85F6CCD8E6D65D4414",
+    "identity_type": "trusted",
+    "iv": "784701EF2AE2B9C7B1656B6F24958EC8",
+    "key_seed": "A7FD06108A6EC755ACAEC565266DA3FEC76F5CF8AEC4F29279FA144BCA3FD6DA",
+    "metadata_key": "E09B7C55C7B8349092D91225F448EA53",
+    "section_mic_hmac_key": "6ED015FC8D0B189DC70E4BD1E8F88E688F25A796E6746035FF22D0554F821365",
+    "section_salt": "ACB22E5B30D0DBBAF07D77E81CF00894"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E576698436DEB6610A845CF01D163105",
+    "aes_key": "83226FF4A58EC6DD7E6662BBA5D73F52",
+    "data_elements": [
+      {
+        "contents": "BE5023",
+        "de_type": 476
+      },
+      {
+        "contents": "7EE00AC9BEBFC7C3C7D4CCE6F44E",
+        "de_type": 426
+      },
+      {
+        "contents": "71EF3EEFC6E87B1B92",
+        "de_type": 192
+      }
+    ],
+    "encoded_section": "5A9013F92DE8DEABABF71EDBEE8EB0BCDAADFA9110001D54B5EA6F822E53B05665A0162703EA9002AB621DAC7D9F5733D7BA7EE8934A3ED4C31CD45C0D582B0A5F7CAF5E87CF7CDE253F4CAF4DF1441BB1A46B43C45D688A870AB0",
+    "identity_type": "trusted",
+    "iv": "C2400D4299944D6C1488DCF1E22D6C06",
+    "key_seed": "79D29D153C585EA5E90C3B79529B16FFDAB71BC5A04AF937E790545AE9928DA0",
+    "metadata_key": "5D7452C2BA345F191BF6AE6FDF6C563E",
+    "section_mic_hmac_key": "79900D2FE4048CA7833B859F37FBDCC0B15F7171C80DBA0B1885285696975A1E",
+    "section_salt": "1D54B5EA6F822E53B05665A0162703EA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4768B89F8A7E384991F18A0495BFEA04",
+    "aes_key": "7547BC2888B8E5542CEE7A3F3C5222AF",
+    "data_elements": [
+      {
+        "contents": "E3A9",
+        "de_type": 870
+      },
+      {
+        "contents": "3BE13855A3139F39614D0FDD428930B89082B2432BC9446EA11C",
+        "de_type": 8
+      },
+      {
+        "contents": "93147F162D3D03E6B280D73646F2F2DE8550F029E4A0475EBEFC1D61",
+        "de_type": 47
+      },
+      {
+        "contents": "D4C4C08E4626E9C9938060448D2DF71E5923",
+        "de_type": 203
+      },
+      {
+        "contents": "2C955691391A",
+        "de_type": 984
+      }
+    ],
+    "encoded_section": "949013BED9D332000D6028E9BE7FF8D5D9662991100026BF874FD30958064B7FDE50DC5273249002EF9D3A6DB0E2E9F377CA7ADE125F20C814A7314F4DB049E59DFCF842AC9C3A0CDE83E86BE477EC0945CD68D713C355886BF6EBFD0B4ED3E1F130059F0D536690144269E0E575CD11ACBF81624828907DCDF86CA826D7CBF3311FE1201C677DBF3ADD1ABDBAF3F6B3435A5D6EAB",
+    "identity_type": "trusted",
+    "iv": "8A114B142A29B0A8FBEC8D802FCC9565",
+    "key_seed": "7D5D6E5B68DF9E882D754A65671ABD44CE108669284BD684CCF6CEF2C2EF0FB4",
+    "metadata_key": "9D8B48CDBE1FF6BB72F17A12043F41E5",
+    "section_mic_hmac_key": "8D6A740A35A73FE7F878D2921B3D960BAF0A3486AC0C9A8819E424B1F030AC3A",
+    "section_salt": "26BF874FD30958064B7FDE50DC527324"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F28906CA902C635D308F902E45DD2E48",
+    "aes_key": "8706D4875D9BEFE21A3804E22B9ED548",
+    "data_elements": [
+      {
+        "contents": "A84365F157E64CB62F",
+        "de_type": 509
+      },
+      {
+        "contents": "00B4A0D8FDB5521E004F7C38139C984657",
+        "de_type": 628
+      },
+      {
+        "contents": "8030144ED75B3228FDA5437A5B278EBEB81FEE8F9BFADD2D",
+        "de_type": 343
+      },
+      {
+        "contents": "F533F70043C57E4A829DDE726DAEF9DD7D19",
+        "de_type": 397
+      }
+    ],
+    "encoded_section": "879013829B3FB9CEEFC0DF72E63F15AEF50421911000F4F886D3942FF01D3363FADE908CBA20900179CCD98A4373FE7DFDD4B86DAB02F51D3B9E496075E671296CAFBC5F734874DCC4392FE89EB640208C8190D0BA0DC376190FBC329D495D4C8AFA2F6743C88947A5F618F7F5B938D389734CEAC2D74DE84FB58B2F1DC8557F53A0191F9C0F7767",
+    "identity_type": "private",
+    "iv": "D91919E5DA29C49D3A27EB7004C3A3A2",
+    "key_seed": "8EAF75EBA0A679B7FC0745B9A3A151467037141B8960B3CFD153873489ADE1D6",
+    "metadata_key": "F8B965AEF3130CB5B1EDF79BD3B380DD",
+    "section_mic_hmac_key": "CDDF228D36AB57418939E4B225AD5E940A66099B1673E9C72617C817EC65FD85",
+    "section_salt": "F4F886D3942FF01D3363FADE908CBA20"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F07F58FCDFDB03D86254EF18C7ED9F5A",
+    "aes_key": "212FBB8DB7A61540976A129092DDC6A3",
+    "data_elements": [
+      {
+        "contents": "507444EB19C5A2F5AB0408A7B1C9FB6B722485864B7FED",
+        "de_type": 517
+      },
+      {
+        "contents": "340127475FEF88C37C16738A27767280A60265E9ED7C00F7",
+        "de_type": 419
+      },
+      {
+        "contents": "459F7AB3EC821FF2FC5E3271D76CD4B927C7DE9283DA3D1F58B6",
+        "de_type": 907
+      }
+    ],
+    "encoded_section": "899013359EADDA79D6D36D643040E2F246FF5691100088BDA9DB826E3AF39A28BD3DA6D11DCE900162FB285CFC9832A941DA01960F1D23CF4C3B6B16D419D9128C57D4791005DB0CEB59681013CAFB837D214C1B0254DEC08CEEA521C4B63E0691E22197BFB77A63E5B404A6C59A5C8106C03C9E64555264AF6995235AFCB618796984136391294C9908",
+    "identity_type": "private",
+    "iv": "5AF941CA9794322BC9567FDCEA50EE5F",
+    "key_seed": "063078D957BA49F5766C90098FACE0A30FA35A51E25EDFAA85A718A10C3E7DEF",
+    "metadata_key": "C92F572CCC40BBDF3908F3E0463113FE",
+    "section_mic_hmac_key": "893438116FE775A831B08322B6A69563A8CCB89BF0D0E1B072F9938B2F1E53E6",
+    "section_salt": "88BDA9DB826E3AF39A28BD3DA6D11DCE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A3DEF8B9B61DEC75C9D78AD7D305A942",
+    "aes_key": "B88BB7EAAD96923279AD8895FDED98F3",
+    "data_elements": [
+      {
+        "contents": "2BF8EB8F1B59A8A6BA8411C989B45CE02489926496131DD2A1",
+        "de_type": 620
+      }
+    ],
+    "encoded_section": "5390137966542D2D7E1BB1B1CC4A69D4611B2B911000E895C370737AED915CE90F8886219DC490023E6EE711BADFC9627B0C800710236B909316CA48CC9975AAAB452A50852576114CA2040B2E46607C1453837E",
+    "identity_type": "trusted",
+    "iv": "31951BDF7F8295133ED6F0ACC391148A",
+    "key_seed": "8D101AA09D57A75F449D3E2FD7DEAE6BFE2732B8650057B906687BE5273267FE",
+    "metadata_key": "E360E68E7237460157062D59F02667AE",
+    "section_mic_hmac_key": "B0229F3856F27C706D246C0A9825CFB5A8A42F943213DD297DF6C9161B01537C",
+    "section_salt": "E895C370737AED915CE90F8886219DC4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D9FDC10E7DD4CEE9E6DDC58E32010C56",
+    "aes_key": "13BD95BDB3765C222D83F09E7709B4CC",
+    "data_elements": [
+      {
+        "contents": "C34DABECB5407708",
+        "de_type": 745
+      },
+      {
+        "contents": "B74FFA6EC993AFF7188E480EFAE2B5716CAC6D94BA01A6E295",
+        "de_type": 893
+      }
+    ],
+    "encoded_section": "5E9013C6528C5F67233A0621D667CDA9647C8B9110004FEBAAA8799785F0596398269E32B38D9004005AE0E84461B3A20D959FE3BEA15F943AA33F119D493B02089D7D3BA9441428B675702D1E218A838A546A4ECA06621081AF4A649467EC",
+    "identity_type": "provisioned",
+    "iv": "74BCB96F895B5DDC9846D24C91CA1ADA",
+    "key_seed": "8DB972FF69EDFE8ADA506F8F4EE6A594F5693A3702C8387D0B19FBA6285FD3E3",
+    "metadata_key": "99C123B1D364F1879AEED1E415AA2A73",
+    "section_mic_hmac_key": "FD1423E5F7DA04EA60CAE11C985935089218744423CC43B3097F1AAD90F197BA",
+    "section_salt": "4FEBAAA8799785F0596398269E32B38D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "86EFC69A56E5757AB62A058D5554CD89",
+    "aes_key": "159ACE5A180AC4E017D4451EA22FAE2B",
+    "data_elements": [
+      {
+        "contents": "CCC0D2FDE58D59143764A6F1805538AEACE1B9B4765D8AC26D0B96",
+        "de_type": 575
+      }
+    ],
+    "encoded_section": "559013C0A81EEC39B1B937912A6CE13ED810C79110000D4B9B8A8C4EED41C8621ABC440648CF900104798C555D077454425379DDE878641DCC3C7B6BDF25F1A1E6ED6D58D0CBA6BCDFB8069B6964894A6679C2A51D3D",
+    "identity_type": "private",
+    "iv": "24F1D1D3D8E4FFA7AB4B424DEFBCE37D",
+    "key_seed": "D637DB7EDCC17C5CE28A181364497144C75064BF385DAEC9ECBE88C4733DC522",
+    "metadata_key": "C8D76EBDD7E6D70B1368BAD74E63D830",
+    "section_mic_hmac_key": "A74FF6ED127426FB488F765F3D4FB28627F8430C15249C32719A4011A3C49929",
+    "section_salt": "0D4B9B8A8C4EED41C8621ABC440648CF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "54B49E29E6C813A6AB600E4FC5B37E1E",
+    "aes_key": "7F2AB782AEDECD14B491B2A8582AE47C",
+    "data_elements": [
+      {
+        "contents": "E372",
+        "de_type": 535
+      },
+      {
+        "contents": "59C944D70BEA1D61D2B148C437F0BD845A6DD9",
+        "de_type": 452
+      },
+      {
+        "contents": "028BA7012BDEC80C4408BB13B6",
+        "de_type": 60
+      },
+      {
+        "contents": "F239F4",
+        "de_type": 695
+      },
+      {
+        "contents": "AE8259558B908BAEA271AF1F6E7AA9AE2C8FBBC285B601AE7B",
+        "de_type": 383
+      }
+    ],
+    "encoded_section": "8390139CB02E72EB97CACCF9A78057EE5CBB309110006A4AE76AEE22009E704B7BD28FE8B2B1900279183874B6909CA5B47A0A86DD6182DAA730343CE2371932D34189949A26ED2DD187AC7575922178E8444DB225910D31030B992DCD92AEAF97563272CAA76CD1558DB0B684B62F740E85794CEF78EACEA7058B4831760BE43B970A2E",
+    "identity_type": "trusted",
+    "iv": "58DD2660273A4248EE13A8C1AD2C5184",
+    "key_seed": "C4634E111562A719DA2BB9EB976735028B2ECEDE1ABE15ADDA7CD3157B233D1D",
+    "metadata_key": "566DDB44E374E986BA026292C0EA365F",
+    "section_mic_hmac_key": "5EF675045878EFD2070A5A9798BD142A6C34978E9DF077E79BB8A68A4177FD35",
+    "section_salt": "6A4AE76AEE22009E704B7BD28FE8B2B1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "501218BE1988D66E80E7EF243937E186",
+    "aes_key": "6BE6B27C8417AAFBE97B75179DAFA7FB",
+    "data_elements": [
+      {
+        "contents": "8E3197168683F9454DE6DB69F69E94EA3F5A8F61695068C520781441C0",
+        "de_type": 229
+      },
+      {
+        "contents": "25D1",
+        "de_type": 764
+      },
+      {
+        "contents": "FAE449BA2F60AE991245DB",
+        "de_type": 519
+      },
+      {
+        "contents": "08976D80D1EF3AF9E7EBFA2C5FAE",
+        "de_type": 126
+      },
+      {
+        "contents": "3410",
+        "de_type": 40
+      }
+    ],
+    "encoded_section": "7E901311389A9F657FB9CDF7216FCC6FDCB5C1911000ADF1D2506EAC7BA9C0E2E598762A41E390018EF9292BFD0E3B84847F8B3AAC77E5C20E9F9C8B5DE8B0C389E7BDFA1847AC7EBC51267223EF07CFB0DDF9F6F11B9A7C346D5C081AD766F7330072EFE978E18ED4D7E22F5E724FF86504EA9C3B2F615ED7E6A73989C029",
+    "identity_type": "private",
+    "iv": "4334EDBE069FE9E747E594070B35865C",
+    "key_seed": "D8791426EFA31574B5323D3468CC282EBD37B522C10B0254B75900D545549C68",
+    "metadata_key": "EEA46B5BE346C68C6B9D2FF155B847B9",
+    "section_mic_hmac_key": "36586A0A4B1A9EFF83B9D2C27288B2EC000F5A729D845039CB4C4E2E25D050CD",
+    "section_salt": "ADF1D2506EAC7BA9C0E2E598762A41E3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6F7E74F849A9CA7DC6EFEB3C4E185CD2",
+    "aes_key": "3E0BD976A1EC7956BD5A218B15CA1B88",
+    "data_elements": [],
+    "encoded_section": "3790130111305FC43F978EFA9FA71298D70A3E911000482B018116837E1A30C802D1FDB1D5E1900434436C965FDF5AB2C0A9794A5F1E438F",
+    "identity_type": "provisioned",
+    "iv": "8CE2936C0F96EB822A07C82B25CA86E0",
+    "key_seed": "5CE432AAE1CA1837C7ED7EFB8ED5B8202DEE8F3D33404A2BD800691E60AC84DE",
+    "metadata_key": "60F06359C33E56E540F0D562F6D795E1",
+    "section_mic_hmac_key": "9756EC3F8B6D24028B7578FAEDAC3E00F01EC763B58705AFCD3C406CC8E2CB9E",
+    "section_salt": "482B018116837E1A30C802D1FDB1D5E1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B7D6F035E98A76528AC824E633BCF35E",
+    "aes_key": "855A405A9B896759D95909C8C01D85ED",
+    "data_elements": [
+      {
+        "contents": "A9AF7437A71199911EFBC7F467ACE00B3068C2",
+        "de_type": 54
+      },
+      {
+        "contents": "BB4F94CBBE7AE4",
+        "de_type": 206
+      },
+      {
+        "contents": "4D3A907AEA42D758A8A8F3469F106BE9",
+        "de_type": 34
+      },
+      {
+        "contents": "D65F6C8BA7CE3B27AC2B2719BA42575144",
+        "de_type": 639
+      }
+    ],
+    "encoded_section": "7C90134E69BAA34FCC557E20B36B17747D03369110003E74770F2C3BFC7824E73C395259941490022DC2535A7F643CDEA3AE4B0F0C6EF90B575E93CBBF59D9D6B71462FBA784B35C7C36060F51A0FE48AE363A6EC3CE8AB49D9C1C1313C173694407489A8B70CA26A3BD4C099C54AD65D7425835D44949728C287A2359",
+    "identity_type": "trusted",
+    "iv": "1A27663FC7C2377EF8D2C5186C1FC4A9",
+    "key_seed": "64AC1AF89078CCC339162EBD5DED72869833D1952CA107DB18AC60A825F1B53C",
+    "metadata_key": "9D5934F8E0592C5D89895210409C8A41",
+    "section_mic_hmac_key": "257F10EC7FFC7A37AE8002AC855DAEDB519FF790BB018AB37C07B3C95FA43B84",
+    "section_salt": "3E74770F2C3BFC7824E73C3952599414"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5F4055051684020E65946E512C943EEE",
+    "aes_key": "2E4C09B79D85D06810D3098DC1851254",
+    "data_elements": [],
+    "encoded_section": "3790135F9E24B4FFB9D55DC0C402783C77A352911000DC13DEBE3C218E84F7B6BF1A5EE5F99790011059D0BFCCD933671F56E42FE6EFFA15",
+    "identity_type": "private",
+    "iv": "EE7A0DEC1B5D713DF6F6FDEBBB2BFD96",
+    "key_seed": "AE002F1AE69DA6D9E55CE9698288B1A24649A79EC710AC0EA25FA2ACEEC513C7",
+    "metadata_key": "8102DD3A02B8CBC1139B5CAF2E1D73EC",
+    "section_mic_hmac_key": "0645A1FF34AFF1BA9649FA6289B1614F437149CD7D365604EC23650C4990BCFE",
+    "section_salt": "DC13DEBE3C218E84F7B6BF1A5EE5F997"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "65274318E96A5F3C8F853A0140948CA9",
+    "aes_key": "A2AB55C2875BC6E1A5C6524613D979F8",
+    "data_elements": [
+      {
+        "contents": "E1365D118F175446B5",
+        "de_type": 109
+      },
+      {
+        "contents": "6FD06861E3",
+        "de_type": 537
+      },
+      {
+        "contents": "75B17DA591EE83",
+        "de_type": 876
+      }
+    ],
+    "encoded_section": "54901395DF3F04E4A427202405C00CEB8517909110008555384C43C1617A30BCF72E5F4BDFB49004F86629CAAB13685CF011DEE82DF4F262F18C02E125C649BB23BD45920E75158EA9070F51274096B90CE869ACC3",
+    "identity_type": "provisioned",
+    "iv": "21A90C0A73430152D69C286DE55FE6CA",
+    "key_seed": "D544199BCE9630C3A38FA486B24337076B81862E1EF002CDCF3F47D2F4F01312",
+    "metadata_key": "5890FFFB39DC0CAEC2CD1DC14D8CB75D",
+    "section_mic_hmac_key": "6D897F4D0C20E588E90887DA70802A1D1AF3566423DB51B7D461A67F1C47FA59",
+    "section_salt": "8555384C43C1617A30BCF72E5F4BDFB4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1F4709A197E6740270684FAD01BB82D7",
+    "aes_key": "34574FCAB952B550B440E2640175B9E6",
+    "data_elements": [
+      {
+        "contents": "9186",
+        "de_type": 495
+      }
+    ],
+    "encoded_section": "3C901331255D9705F45F7E9517B88F8F638FC291100079F10183D40E8C82C058C764B953DA829004CB302F29874367F55323ECCAF05172CA35D7FC6D6D",
+    "identity_type": "provisioned",
+    "iv": "947390D6150675057CCEA6FD5718F0BE",
+    "key_seed": "7AF2D95F589FC38F0B6F85DF707C22EB88F763BB671E1CB970B193AC44D4BCE4",
+    "metadata_key": "4CCF453BB6EBE955C870535451F6C69A",
+    "section_mic_hmac_key": "4473C6534983305DE8102EA9118C4735929E70E0544A1EA512560B21FCB48F1F",
+    "section_salt": "79F10183D40E8C82C058C764B953DA82"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "96C04195E083ED70F192E617E1D76783",
+    "aes_key": "AEB96E57873EB15A971A619B5FE4EB80",
+    "data_elements": [
+      {
+        "contents": "6FC6CB1C012F258C24A6A57A7926E27F5A830A34A367",
+        "de_type": 382
+      }
+    ],
+    "encoded_section": "509013410BA26E4CACF5CF673D585B58D0F3FC911000446BA66C82AFB4E9C11CB66EEA6DEE009001F4E644F392CA55B8341671E0AAC030DF17CF0EA76EDF81F2EF4C0CB1336BE6CE9D27DC8D8A4A29E735",
+    "identity_type": "private",
+    "iv": "891CE2EDBC65C4B0D16DF9F624DBB82A",
+    "key_seed": "3D9AB03EC3F93120532D2E778D3C2BF4DA9315896076277F2873A31E4FD5F52C",
+    "metadata_key": "CFF78360D994C96E284EBEED93EA4BA2",
+    "section_mic_hmac_key": "21BBCAC3997CA4151E9A097276A550A0F483AB80B38134DC980C94B9A5271A6B",
+    "section_salt": "446BA66C82AFB4E9C11CB66EEA6DEE00"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CC96FC6587992A00059BF3E0DA2289DB",
+    "aes_key": "AF54E2E9237E76444AAAB77B58C5446C",
+    "data_elements": [],
+    "encoded_section": "379013D8315BBD994D5A670BA6F780F2F028BA911000C755346DFEC27ECCDA898324E69CFB4B9001A9B1E0D2CB309713FC58CB798396531B",
+    "identity_type": "private",
+    "iv": "B60129EA4D27D57E45CD421948D742C6",
+    "key_seed": "807DD8CF77569513B6ECBC68ED9B08E5B9475FF6607732141FAEC638A8DD28BB",
+    "metadata_key": "5481564D04DD0017AE4179A82AF221A9",
+    "section_mic_hmac_key": "73FFAAF7157A3AE517296592E0B8D13E506DEEC834FE1206ABAA050A9FEE92FC",
+    "section_salt": "C755346DFEC27ECCDA898324E69CFB4B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7963E5F18FA7E59600E6F25FA4930837",
+    "aes_key": "FCBEC40F3C80A09B60135334EE7DA35F",
+    "data_elements": [
+      {
+        "contents": "2EF5EFF372E4702B096C5B858328F410579E1E008EF2E275D6EA",
+        "de_type": 692
+      },
+      {
+        "contents": "BAFCA28BFF",
+        "de_type": 398
+      },
+      {
+        "contents": "7E468799B29D34E1914D34B97B4AFBBE",
+        "de_type": 966
+      }
+    ],
+    "encoded_section": "6F90134BF4B2FA7735A0143B1B24205E3408F8911000B1236CD7CBD12702AFECBE9635A14A48900263C48BBFAB388B046AADED238F69E1F9A7BE917E59BFBCA2CA3B2C191C787A8C3139DBAE0B72FCEE19B98E0D9C261DA6907D9561B53B735561603F687041709A1913BF7925139044",
+    "identity_type": "trusted",
+    "iv": "79447B6043F287557A38B57CB6D7279B",
+    "key_seed": "52895D125C5472A019409B363AF56DAAF368CA65B24E76E891500A8C3A324F81",
+    "metadata_key": "C3BD8D140D94E6945DC06DAAAA211DC4",
+    "section_mic_hmac_key": "C35368464E906272C5B9B8C782E9F88A8AE3AB9474742AD6F770FAE52BCB88D8",
+    "section_salt": "B1236CD7CBD12702AFECBE9635A14A48"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7A0C1DF60064EF2276AE5C8F6E773415",
+    "aes_key": "4AD58F3983D0B6326C71F9AAF86CD10B",
+    "data_elements": [
+      {
+        "contents": "205DD11E927B089869B334A9C59D75032B498C8B26270EE984AB",
+        "de_type": 916
+      }
+    ],
+    "encoded_section": "549013603FFB31E477AC33FCEC9446E9C1E230911000B4DDA6DCF6B60042BAF08C824B9C9F2990019D5D07E65857011663A028155D02FF6E932BB511C55C1E2730444597E2AAD904948C7BAF9CFD59D59973745C1D",
+    "identity_type": "private",
+    "iv": "AAEA80FB40CF47A6266A06730EC30156",
+    "key_seed": "90152000F437AF07947A71307DFC0618E116E9AA2AB8988722818AF41CDB59D1",
+    "metadata_key": "BDF2BDE3B7905DF7CF58590982B89E52",
+    "section_mic_hmac_key": "AB7A1DD69A86B1BEBC2DE6100FBE90AB1C943D5695633CFB48AAE2FC961EE093",
+    "section_salt": "B4DDA6DCF6B60042BAF08C824B9C9F29"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2F4226AAB45A2040B831D40B0EBA4407",
+    "aes_key": "1222E1C06D6E81FF2AE737DC583C0737",
+    "data_elements": [
+      {
+        "contents": "C02B48E3A60445D37BF70DF40C44CC320203B03EA1F04994",
+        "de_type": 866
+      },
+      {
+        "contents": "",
+        "de_type": 984
+      },
+      {
+        "contents": "D402CD4FD797FF62E8D7AE",
+        "de_type": 37
+      },
+      {
+        "contents": "AAA43BF1A7AA06F9B2F63D52787D1A7AC58D557F",
+        "de_type": 916
+      },
+      {
+        "contents": "77B0DE2AEDC7048163",
+        "de_type": 621
+      }
+    ],
+    "encoded_section": "85901322B04151D900C31B678DCA782E1E6323911000D57CCB532F3318CCB7BF62288C95AB1C9001D7E937561EC6F7FC16952EC2A7E0898E9976D0028A3A31B6BF858AF26AAB5A1E7A4F36A5588F8F28A4CA3CA8EA4404494575ABCE0A97E8360771F784C26226019DED4E8FB6EE3A96750B9B934A09E28668C6992E8F50D3B794DC6AF2513D",
+    "identity_type": "private",
+    "iv": "1ADEEB6BE822DDC74F93D2362A2B0441",
+    "key_seed": "82AFE392779367A6D4B3787AE009922456277EBC7FE04447BC2D1162778FAD11",
+    "metadata_key": "9BDDC51177CD3D9311F1D17661490B86",
+    "section_mic_hmac_key": "16342C46DF929343DB72EA520ED728F49F3E50BDFFCE1CF291C3697620133BC0",
+    "section_salt": "D57CCB532F3318CCB7BF62288C95AB1C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CAC0617E69DE77A280ABE6A5F3E624EB",
+    "aes_key": "77FE9A2730A3B80F387BBD0589358B33",
+    "data_elements": [
+      {
+        "contents": "A6A3C4AE4BDF8941",
+        "de_type": 417
+      }
+    ],
+    "encoded_section": "429013C0975C03854C80B4E07AE4CA3076AE42911000EA332A8D5BCA0D6314BDC58F1D09498290024FB2DCBD1FC2137DD2C4FAE1B9A76B2B307B72B1C97D8322DFE749",
+    "identity_type": "trusted",
+    "iv": "0CCD2727784E9E5B84D45D62A93E8957",
+    "key_seed": "EA3D228C2BEB0E89B3C9B28A17D2BEC7F763376D8455DC991C33FB3CD9CCCE7F",
+    "metadata_key": "528A7422DECDD593FD1ADC1755835C08",
+    "section_mic_hmac_key": "18216F8A0F08FC18F8694B2658CC0B1F391BFC3E82B6F8B24E321BD6371971C9",
+    "section_salt": "EA332A8D5BCA0D6314BDC58F1D094982"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "623AB1FBEEF5D3827676D5F2A39FED9C",
+    "aes_key": "AEFD0C18567BCB6348CB3A0B0D40567D",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 971
+      },
+      {
+        "contents": "DB43DA9E48BDF35056FB18CA10F46359BD1A30A20D5655482FC3976EB92A",
+        "de_type": 729
+      },
+      {
+        "contents": "97652C8CA93C33047BA67FBB",
+        "de_type": 766
+      },
+      {
+        "contents": "D6525FFF50D38FBEE9",
+        "de_type": 487
+      },
+      {
+        "contents": "1866ADC89365521D269D6FF6A1972629DCDC",
+        "de_type": 421
+      }
+    ],
+    "encoded_section": "8B9013137611183EB9AAA3F69202645FA0DCC09110000BE535680DC0F532EA22C2F75B8A066C9004BDDE3F2ACBAC8630F0A35CE5A424AF735799E14DADCA023F6200522E83069F8ADE4786A502D31EA079439238D5A9590B1227C5CAA9CE01579FEA21D1DBECDF0D95691CCA2FC601B27D5696CF25128DDFD16CCCAA5C96675488611E407310D067851CE7C6",
+    "identity_type": "provisioned",
+    "iv": "DA1292F56F9B309A57103588C56F0B86",
+    "key_seed": "20232B2934D61F4254E1B430C941D99408046EDA864CAE9CC1F30B003DA3F15C",
+    "metadata_key": "958125E98D4CCE39EB85BB7A1799EE11",
+    "section_mic_hmac_key": "B2AC01EDB57C1E96D629F9DF9B299A97C7A8078AE389FD3C4CD495C17E9C04D3",
+    "section_salt": "0BE535680DC0F532EA22C2F75B8A066C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "274851FCCE9C7A4AEF4AE64A5CDF1B35",
+    "aes_key": "096944332E1C31DBE39227572D5E4FA3",
+    "data_elements": [
+      {
+        "contents": "6E64A76F629EDE6983839536E6746048F9407203",
+        "de_type": 828
+      }
+    ],
+    "encoded_section": "4E9013B4E77EEA1D31017802F64F86FAEF7E31911000BED45389016B48EF6F638B053B3EAB3690021297C8C1D17FDD132207ADA56F2E1DB48EFCC6972936EC031E5A1C12EE25BC554477A6838C8273",
+    "identity_type": "trusted",
+    "iv": "1F4EACA3D2A66B67B8100E7FD56858A9",
+    "key_seed": "4B40631EA3307B8B03B324AE583A624B14A3846AD22A98AA8A6476CE18B72519",
+    "metadata_key": "856BA488B5E3073FE98F90EC7D43D9FD",
+    "section_mic_hmac_key": "89252A2B55F7FC94ED83D11D1901E8354EF6A832522A61E77DF2100FA5B40E85",
+    "section_salt": "BED45389016B48EF6F638B053B3EAB36"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0EC0CD8BC147F50646909D6EC4CC2134",
+    "aes_key": "D4342D083B5848972862E5244EFD574C",
+    "data_elements": [
+      {
+        "contents": "61538E97",
+        "de_type": 674
+      },
+      {
+        "contents": "142298DD27C29352869DBD73AE86918E77E0",
+        "de_type": 321
+      },
+      {
+        "contents": "B04E54",
+        "de_type": 64
+      },
+      {
+        "contents": "08BDEC39FBEB13292A5317B91CDC",
+        "de_type": 546
+      },
+      {
+        "contents": "AE3883A3D67D64CFA5B52195337D40B768695A28036AA392F25A9B302816",
+        "de_type": 255
+      }
+    ],
+    "encoded_section": "8A9013C70296B62647E222527D694A181E0B3C911000E66DDE309D386AED3A9E6F4F4E72AC2D900476583A491A2BB7D5B11ED5D5D40D40427D285AAA7C31BF39774FB2333DAD5E8428A8728BF4619A5F3E1F646C9C637412FCB7E60BD95712CDC6DBBCA7A64509C4CF24A63615566468376BCB88515DC32CBE4462ABF2A5B902AF44CCAA8034D1B98DA864",
+    "identity_type": "provisioned",
+    "iv": "C8A684AD4924F67F2BB34B665F767260",
+    "key_seed": "0B21B7F5AFA2FD60F417160706E110DAD08D558B7F873A7145E2F5846B30EE14",
+    "metadata_key": "9AFEEF6AC49A69F403F130619CA3C015",
+    "section_mic_hmac_key": "EBC37528F0E1D39DDFEB12F6229FF778D381BFD32C22EDF0A22AB350036560FF",
+    "section_salt": "E66DDE309D386AED3A9E6F4F4E72AC2D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "107DE67CF73BF73111A7D273F220324F",
+    "aes_key": "C909F88E99316114E33AA6727A466458",
+    "data_elements": [
+      {
+        "contents": "8EFDC86CCC6C78EB",
+        "de_type": 542
+      },
+      {
+        "contents": "AAA1E33F8F43B229EB8189E8",
+        "de_type": 551
+      },
+      {
+        "contents": "54E27639599792ED49",
+        "de_type": 92
+      },
+      {
+        "contents": "72C8",
+        "de_type": 187
+      }
+    ],
+    "encoded_section": "6190139BDEA29D9DC86B46F9D2BBCDA4366F1E91100088D8F556CD3AF2EA81FB25030F2C782B900230E146653F1669A7ACFDF87FCD45399FC47FED90B8920E5C85A2B5ED2E31FBA1EBABB429881EAAC9CDBAD9B7B529A7AE7756AF294C1F46800357",
+    "identity_type": "trusted",
+    "iv": "F42D4010A9B9750FA68C39E1E7293CAE",
+    "key_seed": "6433B38B99F099F8291F1AC0E46556F0110E50A48F622C7ADAE2F70FDDD13A00",
+    "metadata_key": "433F040898968971CD78BA25C93FAF72",
+    "section_mic_hmac_key": "2D3DAD9FC1AFD294EE70B0F00D78E57ED025932D5EAED1E85F5DA314C4372F8A",
+    "section_salt": "88D8F556CD3AF2EA81FB25030F2C782B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "23DB2534F86E837128D4B5867BE7B9D7",
+    "aes_key": "FF021E596C3FB19F91E10975989481D7",
+    "data_elements": [
+      {
+        "contents": "092500E2322279050831D86A9D0C412D262AF1",
+        "de_type": 889
+      }
+    ],
+    "encoded_section": "4D901361744616A9DF4D232AD6583E68EC94E491100045112DE3235917ABAE281CBB93473C8C9004A8CA160F322458CD3FFA1BE531D8FCD0009177A286DB8E8D4BDF1A77962A55FE3AE696EB057D",
+    "identity_type": "provisioned",
+    "iv": "EFFEF8C52517139FA621AC011CDAB4BE",
+    "key_seed": "9A62A13579CCEF2E7654D15F2A1BFAABB99E94396396BA14B5D488488BBC454B",
+    "metadata_key": "5CEC4B1BA12D44BB925EE396A95149B5",
+    "section_mic_hmac_key": "3C093A169750EEEF1645B87A283453DB15D44FA8FE8E6D36885E5E079736E0DF",
+    "section_salt": "45112DE3235917ABAE281CBB93473C8C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1FB79ABE6FB18715F8DDA68BD6B15373",
+    "aes_key": "0BAF583B5891233D33BA6B74D5E422B5",
+    "data_elements": [
+      {
+        "contents": "0D611B00EF235E26",
+        "de_type": 578
+      },
+      {
+        "contents": "6DE7D6C995",
+        "de_type": 500
+      },
+      {
+        "contents": "310C2C3FA8E0702122BA85A3427A256F065CE1EAEDC1B9F7D4F04F13F1",
+        "de_type": 579
+      },
+      {
+        "contents": "3F1A1AF9FB1A3B409C278ED4098EA6CF87E02457F525",
+        "de_type": 947
+      }
+    ],
+    "encoded_section": "8390138D06F7CEA300F4FAA9EAFF32BDDB833F911000911991BF08A3D1BBEA49C971CD66D43190049130C7E781DB24A1E2C7255DF0FF30DA65DCC1AEF1188EC72B1D6ACD5B6E42E904B513B03DEA16D250F9B146741427C0FE6E29624849A488542A956CEACBAE834CDB227CB06520F4453A08C795A729852015823C3F540167A6B9B6C6",
+    "identity_type": "provisioned",
+    "iv": "C0073097AE5243E3E6861876E66B6C42",
+    "key_seed": "04A20B7ED383D59B567CF62F30B25564D6509736B9141C273B638EB3A111EBE2",
+    "metadata_key": "E6B382E4B38BEC2DF51C9084B2A1484A",
+    "section_mic_hmac_key": "2DB0DCBCB00F8B684C3876EBC116C87B388F8E4EC2E4169536E5C34E2524DF60",
+    "section_salt": "911991BF08A3D1BBEA49C971CD66D431"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6E07E0694343C77F296426DD6E13D64E",
+    "aes_key": "1ABAD934592B2D7736D998BAC1194ECA",
+    "data_elements": [
+      {
+        "contents": "DB8A57783224CF9C",
+        "de_type": 267
+      }
+    ],
+    "encoded_section": "4290138A4D553E3BCB5789F1E01ACF4D8D7955911000D0E797023C8E23832AF2DE31413FECA59001B98036E2FAF383E70C58D8A5DCDCC5C7B528D95B9238054791D51C",
+    "identity_type": "private",
+    "iv": "57B0B15DF8CED13A80F93751E71DE9AC",
+    "key_seed": "B593545C0D736C1BFAB6E76CA49AB7DD942229C6E8B781B468ABD7C60ACBCB97",
+    "metadata_key": "90687B3B2AA61278792878E85A897B9A",
+    "section_mic_hmac_key": "FFA3F38A2550890AFF05E718065CC2A4AFE5EFC392122B4D0B12CA96AE3ABF58",
+    "section_salt": "D0E797023C8E23832AF2DE31413FECA5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "962353CB1C07FAF6686149577DCC75DB",
+    "aes_key": "E9007665D3AF271921E87A78F657A08D",
+    "data_elements": [
+      {
+        "contents": "DD845D55",
+        "de_type": 566
+      },
+      {
+        "contents": "00E752395426921A92C74AA1560976DA2AE78C9D33",
+        "de_type": 290
+      },
+      {
+        "contents": "CFE5A4F631D430593C281AF3371C862120623F7AC4",
+        "de_type": 179
+      }
+    ],
+    "encoded_section": "6E90138E7F8FE7DD8A3FBCF4B8077EF8542315911000F36F9FB7D32C243DF950E4B059E15F9190014A5AFF2BA024EEE91B2A86D089FB84084BF6D938B4B23C220B8C47E388A344199E965D14EB2524F47A4BB2ED0A2BECB01B63071D79034984E9A386C256902483D60EA4B5A1AB78",
+    "identity_type": "private",
+    "iv": "83B1FD00052754192029CB2F83E4297F",
+    "key_seed": "CCA7390D51E680A3B3072F1C9E70064FF16DD44C9D62A37B248C73FD833AC660",
+    "metadata_key": "523BB1997FAC71B83F2B60F42589EE95",
+    "section_mic_hmac_key": "0EE49B03E4B64FC2B250B0D2C4612D020494181E761B23ABFE594F97040CEF24",
+    "section_salt": "F36F9FB7D32C243DF950E4B059E15F91"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B67BF6F1252F5E0EF8816F15D301A39F",
+    "aes_key": "43407D6D91B96435811F30A50BE54FA0",
+    "data_elements": [
+      {
+        "contents": "0235ABB510F05341",
+        "de_type": 824
+      },
+      {
+        "contents": "CA9166B5",
+        "de_type": 12
+      },
+      {
+        "contents": "1FDEC6B16D164A545D8B64995C00",
+        "de_type": 38
+      }
+    ],
+    "encoded_section": "579013B31D8FF7387C6F88EA6FE4E1EF24DA329110004C349BCC1D0FA5EF838F76A707E05F8F9002ACFCF23B0B23FF24956B6407E513CB77D0D7B1884C904DF788AD961EC5FC1BADD31E34E027C38199C5476203E4CA0FAE",
+    "identity_type": "trusted",
+    "iv": "5AEBFCFFA3004CCAEE5DDFF854D820C0",
+    "key_seed": "E1B8FF062302C677E36789FCE15BF3CA6C1436D6A0B78E5D3B241F946678ABD7",
+    "metadata_key": "DD3F2168FAB2123B9450F54E86B66A11",
+    "section_mic_hmac_key": "BE20035F0C2A7E3BBCB38D949A8CBE3F3F1929D5658501B05BA0A14177EB1982",
+    "section_salt": "4C349BCC1D0FA5EF838F76A707E05F8F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "683691EE3E8A8E95F4787967AC569B94",
+    "aes_key": "4B42E071DEA02B52101DB6E24B78FA20",
+    "data_elements": [
+      {
+        "contents": "993E9EBC3173EA199AF4BDF4626FB2FF1AE7FFC46C5DEF",
+        "de_type": 21
+      },
+      {
+        "contents": "6D16",
+        "de_type": 274
+      }
+    ],
+    "encoded_section": "5590130DFDF1B79474D9F039992B840380FD319110000E05D59BD69C24AB85016E9CBF7513F39001E420DB5C31A3BDD1FE0E64CC581F32309E4F949318B591E46A84742D6E0AB75086EDFAD1D098CE4C78421F02775A",
+    "identity_type": "private",
+    "iv": "F35FF701EC37712BDC76295C2D1895F6",
+    "key_seed": "2496DFF7490AF44C61EF3D47167BA33E22B738B68C5D24EDEA6D9087BC4F0758",
+    "metadata_key": "CA1F7C7043728303F66ECE50ABA40834",
+    "section_mic_hmac_key": "00DED9280F77E5541D670B81449E4EEE65A2003D6933A1EB4F2C20BCC8453899",
+    "section_salt": "0E05D59BD69C24AB85016E9CBF7513F3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "196DC4CE0B019790D86640A73F7ABE96",
+    "aes_key": "8338D017A81A7041C6D4FF4F533046CB",
+    "data_elements": [
+      {
+        "contents": "445F36A981DE5A534274F1B8CBAD2954CF66016F275A3A",
+        "de_type": 500
+      },
+      {
+        "contents": "8A1215636ECAE1EFED9182A21900224066DCAFFAF0F9D42CA05D79",
+        "de_type": 608
+      },
+      {
+        "contents": "4B605D68943C67774567CB69957D827DDDCF7F2A280BE76CC6",
+        "de_type": 652
+      },
+      {
+        "contents": "EA46EDA7D7586C247F8101FEF4DDB2",
+        "de_type": 523
+      }
+    ],
+    "encoded_section": "9D90137836767DD16EB5D181B94393B7C9C4D49110005AA5A767B7C8F390E7B84598F1E6ECEA9001F907A884F970AA1379060520D3DC2C794766F852A608DED6EDA2BB11652C88B605D333829E95E4CDDA7F2EA77AEF23BD32B61F4DF8D2994458286871792C64F6D9BFB9DC6DB688719294349997D166BFC2CA7EF0C6ECB78C8E6ABE95404372904758CBEA1E5C7805E2DC10FA9FC6A28233C0569FD0A8",
+    "identity_type": "private",
+    "iv": "D977A2029F9F9599DD109B5F935234EE",
+    "key_seed": "DAF58A433FD1C92223C83A1D458C16A6D791C35B6D233A5B0802CD73481F6730",
+    "metadata_key": "A3611E071012852B91B390F2EAD716B0",
+    "section_mic_hmac_key": "1B677F76106044CF24E36F00B46DE7F48FC244D3CF907DECE2B2F39216579EDD",
+    "section_salt": "5AA5A767B7C8F390E7B84598F1E6ECEA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A6DF7A7591C801A5C966CA40B18C959D",
+    "aes_key": "7AAEB3A3D128791FEE4FD4872BE02E6D",
+    "data_elements": [],
+    "encoded_section": "379013F742C6E278A2ED6465DB07BEB12CFE50911000C7F758AF24AA696D1CB7D0A9D65C582E90043FA1230A35535BE33302A53CBA4418AC",
+    "identity_type": "provisioned",
+    "iv": "B445034001A0F499175F3C9EB0AE92DA",
+    "key_seed": "39C904DF3BEEA18AFEB7BE38D6B8E6069401DEAA759330C9DC25C4BE112CB5A3",
+    "metadata_key": "0ABF633959D782380E4E947D27A805AA",
+    "section_mic_hmac_key": "54AD001651F4FEE64341F38E740DBB8FF123F756D68FDEC00E8B7912B13CED89",
+    "section_salt": "C7F758AF24AA696D1CB7D0A9D65C582E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "88705DD1C65299C03EA7AA7496559581",
+    "aes_key": "5651F9236F827EFFC434AD9F005D28D5",
+    "data_elements": [
+      {
+        "contents": "45040FF6A5CDA9835F818B484CB70A07B9EF939F",
+        "de_type": 875
+      },
+      {
+        "contents": "908557DCC7A672E4559E4280BFE4B0DF7CBB9033D57420F140A2B585E2DE",
+        "de_type": 418
+      }
+    ],
+    "encoded_section": "6F90135B57ABF5DF4973307BAB1DB3C4AA6C80911000D91CE3FF1521638C0EBFB1C24543DA3B9004642281555CFA95167B0E6158D7F0EF0D5BD41FBE8A2DDC73B00B17998905773562C1BE381A66298FADDCF372204D30794F124C34FF7139623F41E957E4AF81A7379BE160E3B23135",
+    "identity_type": "provisioned",
+    "iv": "7FB08290F4083C8C63DD2DC495C1EB45",
+    "key_seed": "EC1290EF880DE14D1AE6D5B0F5A835DCB8DDEB83B7991C7FEA02F738A7C0C94C",
+    "metadata_key": "52C1C131236DC4C9DBEF317D1266471F",
+    "section_mic_hmac_key": "9695F74C29EA748DD4457C18285F53555A358F759EB1183889B4A15320A846F1",
+    "section_salt": "D91CE3FF1521638C0EBFB1C24543DA3B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F4DC0B55884950152C6F0C5C01475956",
+    "aes_key": "FAF30D19065FBD5D679D78E7C7EA0B92",
+    "data_elements": [
+      {
+        "contents": "5EBE58BB8F41ABFE605EFB39B48A4E7861EC80EC",
+        "de_type": 455
+      },
+      {
+        "contents": "FE52251B3CE9AD42F9A3ECC5A213D742F37415",
+        "de_type": 207
+      },
+      {
+        "contents": "85C6D2468DDC1B42286E73284C03C718DD3E1FC5FD3050",
+        "de_type": 556
+      }
+    ],
+    "encoded_section": "7E901315CF56AAA74A2A4F82F00092990E8814911000743CD7DAFB42FC38076A13E7E1F4177990044F324B65EF22A2272B929464CD7DC2C2D75872E649A1D7DEFE164D58E07B41F473505815C0BC34702A02C0E4F113866170FD1B15EB58D7994E0D33A206C0C44A2F092679874A1D1674EAEAAFD99E0FC19E6F744E0A7347",
+    "identity_type": "provisioned",
+    "iv": "FB564977E2D99426D140FD689871A2BC",
+    "key_seed": "A62634BC57E141BEFC2564C14B48325117363328C53CDA48F814D4807048B48B",
+    "metadata_key": "574603EF40BA6009E312223A51E8E2E0",
+    "section_mic_hmac_key": "86ABC6D41CEF55446F03A0952E90F664718C4822451D24A3FC27E2898C84EB40",
+    "section_salt": "743CD7DAFB42FC38076A13E7E1F41779"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "53234126DBD29BAF6097EC8D34317852",
+    "aes_key": "84425FEC4A06780FE396F9DD6040DEA0",
+    "data_elements": [
+      {
+        "contents": "6ACFE4B438C70672D7AB",
+        "de_type": 986
+      }
+    ],
+    "encoded_section": "44901360C0D9E68524187C1C25A4716FE61009911000B5E48CB9F2C2281E5195D2D12ABD09169002C39DB32F9F0C574E62CB199AFA336A185270C735884423B5B93B0DDFC7",
+    "identity_type": "trusted",
+    "iv": "D9119243F3D9CADDE86862B5ACEF8CD3",
+    "key_seed": "92A8C510E73A47699B0C22ABD2914EC022E9AC8B797E993DC4C6255EF66BE228",
+    "metadata_key": "39EA512E22B067754A318A3CCA5964C9",
+    "section_mic_hmac_key": "12BCBCEE50AD4DF7923CF35B1AB83583A1F4E502748556DF89A646200C3732FF",
+    "section_salt": "B5E48CB9F2C2281E5195D2D12ABD0916"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CEE234610E9993DC98C3D370D26F3DF7",
+    "aes_key": "51D4F92C953723A8BA9288131BEFFB59",
+    "data_elements": [
+      {
+        "contents": "3B1748685E7204CD0AC2500BB88742F69E53",
+        "de_type": 467
+      }
+    ],
+    "encoded_section": "4C901383131BCC9CB08EC986EEFF6504BA974D9110008FF0CEDF1640457BEF1F5CDA7D58BAF5900483D0B4BA6B8D9B80C5C9E12480C55424936562E3C68999DF6C4FC8256C9A0B17808194DB2A",
+    "identity_type": "provisioned",
+    "iv": "98603F701E96147E49F0A3F8C4174589",
+    "key_seed": "6532ABB7061C073E531A655B8F49D1D2311AEFF08E26F15B3CD5EF6AD3A960E2",
+    "metadata_key": "20F0584320BFF42FC597A41280E5BAC9",
+    "section_mic_hmac_key": "02101BA95A03412345F3552A5C163744CB1B4B1EAA3232E2CEABB4C862AF141E",
+    "section_salt": "8FF0CEDF1640457BEF1F5CDA7D58BAF5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "81A1175E23E1EC7240337AFAD6BC7EB7",
+    "aes_key": "FEDFAF2A6E7FC0E21A91E59BF8B332DA",
+    "data_elements": [],
+    "encoded_section": "379013A99129E69382B3F3FF02558A9A25CD15911000A7CF353E32FB509A39BF6698EAA646BC9001C2A2D18471E1D05CE78FB1967ED58068",
+    "identity_type": "private",
+    "iv": "3CB4F19740A089755A2925ABA96D2237",
+    "key_seed": "3B1D9789DE417E14DE7F5FF6AE8BE7DB5CB6617453BDD7FD1A216DEE5531D68B",
+    "metadata_key": "E5D8C1873FBC970ABDA794974C2FB35C",
+    "section_mic_hmac_key": "687C291B4FD7331659D26806502AE31343D972AE2E6E7AB83D647AA57C22FAA6",
+    "section_salt": "A7CF353E32FB509A39BF6698EAA646BC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3002A18B6213325D185827101B8FEB1D",
+    "aes_key": "CA1C7AF04A4FD83E87A9E9E730289BF9",
+    "data_elements": [
+      {
+        "contents": "8699B5A78970A2427D55BD82D4",
+        "de_type": 656
+      },
+      {
+        "contents": "DCDAE8E9DF3EBFA2C6094F42E6C87791ED",
+        "de_type": 517
+      },
+      {
+        "contents": "F0B0161E1BE7ADBE7B8B72CB09CF4ECD8B7BA0859856F8FE24",
+        "de_type": 288
+      },
+      {
+        "contents": "B30B",
+        "de_type": 56
+      }
+    ],
+    "encoded_section": "7B90132C905FBB2C863EB4079E8B7BAD34C5839110003682E85568AAE0E82863BAD2FADA6FDD9002F9EA810B398843E60BB488546F7BE02E1B50043AD29711AACF37D90F6E1DF855915265AE4B2A4F8CB2253B76F8ED0E828288F2D47F06106F01A00C8F07333054F7EB00AC58C060BAF7F3BA9BCE4C6F031F9A93A9",
+    "identity_type": "trusted",
+    "iv": "B2B61B37788EAA1C5A3068450C9E7C63",
+    "key_seed": "EA552C43BFFF78260A603EE8B1C72EECA8297D7373D60BE107F83AB7C147D7D0",
+    "metadata_key": "E748E53B8B84D6D63DB643073B39ECB5",
+    "section_mic_hmac_key": "0E9B918DD78A73505AC657B398BB35861E5A69907965F1BF5D3306B59AB12A7C",
+    "section_salt": "3682E85568AAE0E82863BAD2FADA6FDD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F88AC9429FFC97BD5D9191F120126A01",
+    "aes_key": "1D105B146BD337AA7EFA523A71C9E1AB",
+    "data_elements": [
+      {
+        "contents": "00C5DF062D335BD726CACBC7A0B67B0B",
+        "de_type": 620
+      }
+    ],
+    "encoded_section": "4A9013DA781FD242A7193FCE5BD9F370AC8C309110008D1CDE6542BCF8E73879AC69688FF55990049CFE71AED546CA5745D7C06F4E689A5D8319E344654EC9495226DB8024DEE4182A8F08",
+    "identity_type": "provisioned",
+    "iv": "68DE89B24537AA1B093F7FA14AEA7D49",
+    "key_seed": "A6845D869AEDD2ED427829ADEB09807A8A5300A2675344EAECE93BEFEA0A6701",
+    "metadata_key": "2B83AEA0BE02DB20AAFD114A9C33D1C9",
+    "section_mic_hmac_key": "D5E0B90E46BBE6913978A5213BE51F2C9B9D9628FD986C96A5A82E1DEA8E073E",
+    "section_salt": "8D1CDE6542BCF8E73879AC69688FF559"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0DF16EC423548F3D0B47CD91150015E7",
+    "aes_key": "4C28452111DFF26A316FD05F3E3004A7",
+    "data_elements": [],
+    "encoded_section": "3790132CC5741EAB8595660B062128880D944291100091B18AAB56D0B536F1791EE8D2C9FC1C9002A188B363001A99AEF63B8F1E5E0CC9B0",
+    "identity_type": "trusted",
+    "iv": "5FE3E1280133A66360FEF6157D65A3E4",
+    "key_seed": "E030711E2C294C058D619E45659774C93E40067CE130DB3AD1B883FBC8E3B95F",
+    "metadata_key": "75FC79BC1F5F4A71F3919FD3A658B8E2",
+    "section_mic_hmac_key": "86756856EA5D1111E0D45443BC003A04D28D46FA3D9D06C19CF3BDD207CE17E3",
+    "section_salt": "91B18AAB56D0B536F1791EE8D2C9FC1C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D2CB7EFD8AC55A4B7782291095063735",
+    "aes_key": "E53A8922160B243CEBE1723E102DF96D",
+    "data_elements": [
+      {
+        "contents": "90E198FFA1A1771232A470B41C3618551F808B37619364450C82D0",
+        "de_type": 57
+      },
+      {
+        "contents": "AA3536B6255F1E330F33A40BFC23BF0BE08BFDE03B278FAB353B55BF",
+        "de_type": 475
+      },
+      {
+        "contents": "ABA930A2B7EA27DDAFF5",
+        "de_type": 520
+      },
+      {
+        "contents": "CB27A674F14A84E844A2DEE7CBFF32C1ED",
+        "de_type": 333
+      }
+    ],
+    "encoded_section": "9490135104FB10A397689EB08C2D4E9BBB0C1E911000979A8AFA25DB21F7EC13D146CFC1410F900460CB56ABE59BB2DC4C6C17EDB2CA9BA8D3214665237A16FE0A4124A3C5465CFCBCFAC32C1DE41A9D42B99C8D8D36EC9D3653CE7F286A0907AE9A8D270E3DEE03F7442D7DA18075C6620D6292861C1FD97902A798F643343DA5F9879B71FE88D1D6514F1B41E9A209748FD124F0",
+    "identity_type": "provisioned",
+    "iv": "4C1351CC073E7B86D90BF026FF0807FE",
+    "key_seed": "91980B5B07EF7D557FA8F5E60411D2A0F2F449E1F9FA2631250BD86E5C8B0142",
+    "metadata_key": "8104BB265F6A7B5B61C316DB48EF06E1",
+    "section_mic_hmac_key": "0DF5F3A00DB4D6AFCF99FB6826F9DC765C289B7937587D1461D825FE4D6FAF41",
+    "section_salt": "979A8AFA25DB21F7EC13D146CFC1410F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B184B09431BC6D20C3CBD8D108EC4E2C",
+    "aes_key": "4EF35CEA87B3BE66A3C3D72A64E4CA2A",
+    "data_elements": [
+      {
+        "contents": "F02092",
+        "de_type": 129
+      }
+    ],
+    "encoded_section": "3D9013AA922B9D3EEB866D6046657CC594A33D9110002A4E2A1E8DA81FEDF04B8250BA2383A89004B6DC8634A6410E0FD602D04433BC254A51A050D6419E",
+    "identity_type": "provisioned",
+    "iv": "5ECC70A88EB4E67063D4E0F57831F4F4",
+    "key_seed": "098C5CF53518E9D1F2F2D8D0AC948B9B8CCDEA905F999934824429C0426E34F5",
+    "metadata_key": "7D82E485F54A2C30295125C2A1984EE8",
+    "section_mic_hmac_key": "E8881B4E5CF4A053EEB38D0D8B18C7853E2001926A46471B75B864B23DECE677",
+    "section_salt": "2A4E2A1E8DA81FEDF04B8250BA2383A8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "47452213CC5FDC391929EEE09F724D0C",
+    "aes_key": "24274A9E54725581BEA8C3AD99D6FB45",
+    "data_elements": [
+      {
+        "contents": "55",
+        "de_type": 280
+      },
+      {
+        "contents": "C5E7F5858DE92DDC1EF5A8",
+        "de_type": 403
+      },
+      {
+        "contents": "D111",
+        "de_type": 802
+      }
+    ],
+    "encoded_section": "4E90137CD48DFFAF75C3050516CB8439CE77D0911000C7E763251945F46C637602F94E61A62590029B749B79A1E7192F10EE205ABD363E48F834C31AACD41E39E7B104C201C6D805EF464DD0C5AD59",
+    "identity_type": "trusted",
+    "iv": "FC666787DA6880BF68AD87F281129436",
+    "key_seed": "16376750ABB42AAE45961441C9251B3006EB249781EBF712994AD8E297BFB3FB",
+    "metadata_key": "BC8BA065EBBFD5F28D57B63473F648DC",
+    "section_mic_hmac_key": "D050DE0A2C557BDF173F3820B540F059F4F902A963D23AB07A27E97341433925",
+    "section_salt": "C7E763251945F46C637602F94E61A625"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "397E5C2A10FEFD98E9764BB2850F9F70",
+    "aes_key": "B86A8C3BEBB410A7CA7937C27982E5A5",
+    "data_elements": [
+      {
+        "contents": "4C84393779DD47BB70185D28196CE896331EAB",
+        "de_type": 999
+      },
+      {
+        "contents": "2DAE45BCA9D994FA2F8642E698B26E",
+        "de_type": 224
+      },
+      {
+        "contents": "6CC6616B25874F1670FA2664C467A442CAF6DA681FFA8B",
+        "de_type": 588
+      }
+    ],
+    "encoded_section": "7990132E1215A7A422203DE07796127DB3749791100050120AFB3D493DB82A96A0EBAEDD595B9002290C00E97BAC5F0AE286B2F1B3EB9C9F65554CA39D2F0BEA8DC26C3C3FF3877C260EAB0C966B6D187F472E076B43ED87238C272FE87723A973DE2746FC47707E4646665461E0CCEF8D72E5AC6E410B53D4D4",
+    "identity_type": "trusted",
+    "iv": "671819F4C129CEA59570A45E40042DE8",
+    "key_seed": "42FAC575479AF4CF414FD25107A31CAEB82E876F63F2AE64F158B1193C1CE4C3",
+    "metadata_key": "75A7213D0E26DF12A237EA4969C2EA7A",
+    "section_mic_hmac_key": "0A42A390A90B39228144B934135AC7F799CF4FBB70BD8414F1687C8530F94931",
+    "section_salt": "50120AFB3D493DB82A96A0EBAEDD595B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BDDEC437FBD471B4309CEA1E0151736B",
+    "aes_key": "56B2E5280671CEBDB46B21FDEAFDA8EE",
+    "data_elements": [],
+    "encoded_section": "379013AF79FB24D9AEBD4EDB9BCC1B15E3A610911000AC735789ABF3C926FE9787D8124F26039004EB9FD655DDA7116ABF7A20E5D0BDA234",
+    "identity_type": "provisioned",
+    "iv": "BD94284A1DED0703E49EB2A616033C17",
+    "key_seed": "D972FC64B93F5C9942A0ABC8646EE78A152FBB8BC0704F52FDDC48B7FF56CBB8",
+    "metadata_key": "A392A526A7068B94B1E3E25A0429F56A",
+    "section_mic_hmac_key": "922DBDD6A4F8865AD9824AD8FC62B30AAD2F8BDB93D3BCDEAACC3305E32A19E2",
+    "section_salt": "AC735789ABF3C926FE9787D8124F2603"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A9B77465966324AC9F3290D2369987F",
+    "aes_key": "7E5CBD3F2102129DB706C8EE75A333EF",
+    "data_elements": [
+      {
+        "contents": "847502E89C450B3FCE072D156090AD6C52B2D8",
+        "de_type": 645
+      },
+      {
+        "contents": "761BBA3496528070633DE149451D9AD4E3558F7476",
+        "de_type": 537
+      },
+      {
+        "contents": "AE9C840B555C",
+        "de_type": 582
+      },
+      {
+        "contents": "F4703CA172",
+        "de_type": 113
+      },
+      {
+        "contents": "DD2959D22A5E",
+        "de_type": 365
+      }
+    ],
+    "encoded_section": "7E9013F9BDA274AABFD8D976598D24C4DF68339110009D4C783A6ED077F63A108F3558B4FE919001677C1A3E9ECD221759776116DF4219E28E1D79E7A658B09286A4A54EABD817A44B57078452B9E6957E7B49D0D73FB94970474298DA5CB0C6C2908BF42578F79E5EC1992A89A39264D9B49F1B5F559DA0F6C6D9314E8516",
+    "identity_type": "private",
+    "iv": "CC837603730CF2CFC59BE454DBF623BA",
+    "key_seed": "282A075FC7CF3101EE966ACAC968FE4841AF6C4531A5F2655E301C611FA6F075",
+    "metadata_key": "2DB58866CCCD71AB219184D30AFB8ECE",
+    "section_mic_hmac_key": "1A735D24B9F9C6A3ED6D2C01C9D797EE696EFDE44D92D2E7AC9C01BE5E18C915",
+    "section_salt": "9D4C783A6ED077F63A108F3558B4FE91"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "62CCD10524DAC73729C1C47D671A9B35",
+    "aes_key": "6B3EA1B46FAD6834DDC93E9C98BF83DA",
+    "data_elements": [
+      {
+        "contents": "B29B0EA86E6A724DCCAD1FAF",
+        "de_type": 68
+      },
+      {
+        "contents": "FB4B7ED6",
+        "de_type": 380
+      },
+      {
+        "contents": "87E233EA396E891F9DD432C299",
+        "de_type": 36
+      },
+      {
+        "contents": "ADFB0CEED7C144A0C6EEA37805ADD5D906F9D24009",
+        "de_type": 584
+      },
+      {
+        "contents": "75167BC12CE8255FEC4FDABECD6C",
+        "de_type": 650
+      }
+    ],
+    "encoded_section": "84901321304B13B0CE78A9C654EA01BE27EC87911000356CC7D48B00218080567F86C8C226B59002B265CCC13ED42B84041556DD88578525CE07A7AC025EACA3F2F55D0F8A26C3F2A8B63D8B00173466BF45EE5F56CE1B3BA5A388238E532DBD0CE43823A12591752022676716BBBA2696C01A2E07367068170CEA04E4D675821C3AA19184",
+    "identity_type": "trusted",
+    "iv": "DE1A81AF6B53D4D1D4D50534FEE5254C",
+    "key_seed": "38A92224674C6F2BE57B36D8A191E576633DF9BA3D76DD32F70D72D415878DCB",
+    "metadata_key": "C140E14318193C8ADFEC1D2CBFA8213A",
+    "section_mic_hmac_key": "BE625934853E588137352DFC9C3574A129F96C993C4221C8990D91FB635B4F67",
+    "section_salt": "356CC7D48B00218080567F86C8C226B5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3E4E649CF35F5DD9CB2AC8E02E80445D",
+    "aes_key": "07A72FF7D07703E075A69D477BAF0177",
+    "data_elements": [
+      {
+        "contents": "9A68B1D0835C59498A7B483199",
+        "de_type": 698
+      },
+      {
+        "contents": "514E4A96E7057DD993624378D31FFA9CECF7E7B08BA9B4C73F",
+        "de_type": 405
+      },
+      {
+        "contents": "36364E971DCE98A7C23B164608BD1D4A410B79CFF32CACDD",
+        "de_type": 584
+      },
+      {
+        "contents": "6D6653D73680A3DF70FC0A0B098913CA93879CAFBC1845DA745E",
+        "de_type": 331
+      },
+      {
+        "contents": "15DD526DC963112361A3",
+        "de_type": 865
+      }
+    ],
+    "encoded_section": "A89013CC1FFAF0DB58D146DFD9B332AAE9C0F29110001730E6F86D0561262F4E315CBAFF7A9790025D2C78819ECA218C6938BAF148CB6A981A2D0884BE9EF00D8E5680E2636626FCA4B60503C6C524ACAD4306DCCCF2BB36DE37EED4B651E8C4992C87E3EEDF4E8E6C1BA2298791412E1275FF53DFE8C771C880D127D47815972F804EF4CB42CB7C8B73A89CFDFADF42BE03DB2F21F1D92EC5DCDF46E58C17A6A3FC5F92BCF001819E",
+    "identity_type": "trusted",
+    "iv": "F869FF07F98E32C0AD55CEF91658D60D",
+    "key_seed": "5D1E0AB8AF70BD4F1F5E7AC632B46F0D3976CD3409D96D6336FFC71E0D0B1A39",
+    "metadata_key": "4745EB0C29D3829EA920471E4CF7FA2B",
+    "section_mic_hmac_key": "A542C3B2AD831E3212C0A66B8F78C7F1D4AE757BCC53E59EB57677DCD3B2289A",
+    "section_salt": "1730E6F86D0561262F4E315CBAFF7A97"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0E7BD813499926A0801C92B1929A3591",
+    "aes_key": "CF5EAFF5A6CF1C2D8D38957F9E572031",
+    "data_elements": [],
+    "encoded_section": "37901304FF4DE46CD91B9856A4E7F1BBD4C17391100006366EBDDDB9BDC2F6571EB0EE6D56079002C75CC331866205C21DC58413AEA40526",
+    "identity_type": "trusted",
+    "iv": "04A19C41665D6BEB5815BFFC82D2F20F",
+    "key_seed": "A2C54EBB8A466BDCC870DC0F024B654CDF6065B7982FF161DB4309726E8A9FEA",
+    "metadata_key": "40D555232C844D0DB6AC3D8B67C2106C",
+    "section_mic_hmac_key": "1B5B2EA645019085A538706A3639AFB2EF7F9DCE0262A9D156DE539C5887A246",
+    "section_salt": "06366EBDDDB9BDC2F6571EB0EE6D5607"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A904A75B1FE8745F8A7487D6A1F266C4",
+    "aes_key": "299B6E8D83C5F4C5FA5D7191776D5B74",
+    "data_elements": [
+      {
+        "contents": "9D8ACA4EEE438F77F1ECF161C93E79C2",
+        "de_type": 25
+      }
+    ],
+    "encoded_section": "4990138B48C8DA765DA321BF9E7F74E018BCCD911000D5DCA899C05920FBA96B57FD6BC22BA29004E9045654EA86C9EFF8533142B7EF6AA31D947E6A37AA8BEAF9C4072DFDA603495A11",
+    "identity_type": "provisioned",
+    "iv": "F7C11436DE1634CB790BFEFAE15A83E7",
+    "key_seed": "C2DE50F20E7A123F3221A92B1BDAE0BCC707FC399081324F41A2CD10D6E9DB19",
+    "metadata_key": "2561C501E52AD7DDDD24E5578A2BD779",
+    "section_mic_hmac_key": "510E4C8F9ED86CCDF0EB2F6E1282A8AD8087431F380602848EFAD4FA30A46662",
+    "section_salt": "D5DCA899C05920FBA96B57FD6BC22BA2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A9E993AA4BC248E9A7B18624A78A94D",
+    "aes_key": "0CF2C9FE3C3CD3B9A51293022090179F",
+    "data_elements": [],
+    "encoded_section": "37901393A3A8C7855ACB50AB3802D631C9C1F191100049DD85316190F271FC5BB2F620EEF235900225DD3667C9BD35154CD7B85A46923769",
+    "identity_type": "trusted",
+    "iv": "C3A5CDB16311D0A0FD03C473522159EF",
+    "key_seed": "213E324AD5D67474CB40E6F49657F14EE29D80CFEDC37794DEAE1485807056AB",
+    "metadata_key": "8B87195CD4A305E6383792D307FA7002",
+    "section_mic_hmac_key": "4826260A12292DE75684A3CC1020AC5F7D8F469BF7B7EFC3A9351FC22BAD1CC1",
+    "section_salt": "49DD85316190F271FC5BB2F620EEF235"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9B07AE29D7E24466EDAB0C5C73C14BDC",
+    "aes_key": "07C40F75E92319B0204F538597F215D2",
+    "data_elements": [
+      {
+        "contents": "F22339BFB847E90ED663BF729597FA326FA5F62AEF5F6C5A9FB3",
+        "de_type": 403
+      }
+    ],
+    "encoded_section": "549013564A1558904D7ECE81BCD9C42924A30591100005233215A686F5A39C58599759C1A43F900274A22947028C3BB7FAE0C8534773058C000D1C97B23B36A2670BDC8F618CEB1AFF283597F687C9112D84AA87A2",
+    "identity_type": "trusted",
+    "iv": "FA40033D2CD29E29AD8C494507B1612F",
+    "key_seed": "F9D1973B9579CAA560918B5AEBFF76FA48AD3DC1E0051569330F4D44F2998A0D",
+    "metadata_key": "AFB9AF8982A61787B90548314BAB69BA",
+    "section_mic_hmac_key": "AE7047E264D302914C648144850D03551C69C6F92EC92263B0942F4115DDD4E4",
+    "section_salt": "05233215A686F5A39C58599759C1A43F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AA66A68B0A3E886BD9F44096E51B4D5E",
+    "aes_key": "316B88C5751E2FCD16B56AD488855D6F",
+    "data_elements": [
+      {
+        "contents": "3C10A90C59A5B3AB5B927DC7AE03D4A0EFC634808E12A7AD40465EBCB5",
+        "de_type": 483
+      },
+      {
+        "contents": "F8A58360070B908E24356B895258022AADEEE54B6ACA714AFCF7C349",
+        "de_type": 88
+      },
+      {
+        "contents": "A082",
+        "de_type": 230
+      },
+      {
+        "contents": "2E",
+        "de_type": 484
+      },
+      {
+        "contents": "67B2DDE6",
+        "de_type": 116
+      }
+    ],
+    "encoded_section": "849013BCCCC132898E376863C442E9D8411187911000FB535FD638820271787F1073F7886A1790020977D491E02CBE4C40A898A2B0132274D0213C6922DC3C44998456DEAD435761A0368FBC64137FFF54A12F6620BE0F06E71D2BBAF4317948F67907E841EEDE7DBEEC5EA81AF57D7A9C69390865382019406815C5CC1A747EC60A74FCDD",
+    "identity_type": "trusted",
+    "iv": "3D7C449B089A03FEC65839104E037743",
+    "key_seed": "6C82B15F2C059B5835E16ABFD28FEAF239E1A6E57AAD960CB852488196620D8D",
+    "metadata_key": "9955C2F5670EF9CB149A40EAC4A3A3E1",
+    "section_mic_hmac_key": "B19CA117C40072B06E08437F1DD8F48ED95C857460627636E99E04D3958F5E87",
+    "section_salt": "FB535FD638820271787F1073F7886A17"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8C90321F97287B8A091727E2083D892D",
+    "aes_key": "409C8416E73CDE13637F2E461F74A4BB",
+    "data_elements": [
+      {
+        "contents": "BF7419DB336DB433E3",
+        "de_type": 71
+      },
+      {
+        "contents": "C7437F5427AF382361526C55B748240F486BECD95871",
+        "de_type": 173
+      },
+      {
+        "contents": "FB6A6EDF9FDB3F",
+        "de_type": 778
+      }
+    ],
+    "encoded_section": "6590135BF61E4E7A9A3C8B73569D2C23DE591C9110009759D1DB407678D65A146AFD04322D7A9002915E8088FE74A7EA709194BB7E82B3CA9D4A67118CB3CEB441029EA23771ED3FB2B5F2077913AB93D66731AD972BA9B6DFBFE8420AC29D36AD7619E8741F",
+    "identity_type": "trusted",
+    "iv": "48F689048B5CA464B88E0C399ED506A0",
+    "key_seed": "FF7801A75633E88D16C9DA1732FDDD7662C9B1F484E904B53C1171069A0C25C5",
+    "metadata_key": "C34841270E8866200C48012EA3CAD332",
+    "section_mic_hmac_key": "B393831A2B040BDFC47CE74F8192998613BA5874343AEF5241B6914809AEA3AF",
+    "section_salt": "9759D1DB407678D65A146AFD04322D7A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4680C0AB3A162A977F1C57FD6ADD5D6F",
+    "aes_key": "ABD9FDE4027238879ACC0E31B1DC8A2F",
+    "data_elements": [
+      {
+        "contents": "2CAB91011DE905C17B63F3ADDAC747F301C0775F1B06256F0DEF",
+        "de_type": 580
+      },
+      {
+        "contents": "98C4592D01DE564D0360A35C983D16A9200FBD625394BCB770FE927F",
+        "de_type": 345
+      },
+      {
+        "contents": "AC22AE18E6DFF87F2441616A3CCFEA17DB0262E00C5A",
+        "de_type": 116
+      },
+      {
+        "contents": "5AF4697ECF2E9560DAC164049C4C39C08E8038E8C7C5111D096737FE12",
+        "de_type": 505
+      }
+    ],
+    "encoded_section": "AB9013A9E3A860FA238886DFF136BAC79FAE34911000D56769B70F704174E61314E11917885090011AAB5050921F7F0C7EA625DF749AD07909D6B5200976E5F635FA2BFDB181F4D0FA37891826DF9F37580457EB33017A35964559778C9EC2839033159CA8426821731FE0798DAD92825ADF33234AD09F3133A6DB08F90A87FAF7ADC7D149EC4F65D29E5E8C677DA82642B290E287C48D6DD8DC76B1EDB530DAAC4F1BED596F2FAE1C5800D2",
+    "identity_type": "private",
+    "iv": "D88E5CD358B6FDE88C0BDA86B4C07FA9",
+    "key_seed": "FBE039E8BE5927062F30F03F84D8C8F3EA8405E02AD071A5464764457B2CA67D",
+    "metadata_key": "8B6C89F2D5ACB0DD38EB8969A8AFCEA7",
+    "section_mic_hmac_key": "FB915D2EAC4E6D75ACA0FFF189B2B4CA9092970C105D455A9850B9D492DD8322",
+    "section_salt": "D56769B70F704174E61314E119178850"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "99EA2AB3143DE296D87275E3796EA726",
+    "aes_key": "B5369D466D6D66216E050B46C9626E9F",
+    "data_elements": [],
+    "encoded_section": "3790133258DA52075DC6CF650B3F7487D0991A9110002174376D9188577E3AD67895F40932219001E35CAFE972108A18170DCC16E8EC167A",
+    "identity_type": "private",
+    "iv": "620B7155C2DACCD4E172A0948B739392",
+    "key_seed": "4963C0F1DC3A169ED67E6D81873F3D8AB7C56776FEE18E8E24B227951D98F67B",
+    "metadata_key": "8AC856F31EDAD3C1D3B3ABFE13C69367",
+    "section_mic_hmac_key": "11EF3FB260DA29B8A761F75D3D1DD5258FF416466FEDEF1498754AD7B4F8F3FC",
+    "section_salt": "2174376D9188577E3AD67895F4093221"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6EFE58B2D4AFF119286E71653FFAFF55",
+    "aes_key": "1827305AC9AACA2A8BB69F7C721D9AEE",
+    "data_elements": [
+      {
+        "contents": "A51A7BFB530482EE1A59FC50F9A29741189B68A6AE939F",
+        "de_type": 549
+      },
+      {
+        "contents": "6B5F83744DDE1AA1C365C2480782B682866505D7549709",
+        "de_type": 717
+      }
+    ],
+    "encoded_section": "6B901339002EA6193FAD09FDF604C4E349E59E911000699CF720707E6FA5CE226F88AF8BAFED9001E27EA2E4CCD2461B944DCEB37E4B4B63B5F711F1A9C5DCF9A41A192CA9C5ADB735391DD0443C3C955489CF2AD75226E8EA1357595655BDB3E3601E7B33E5D8066B3F37A7",
+    "identity_type": "private",
+    "iv": "D364E25A638A624590BE1FA2F096594D",
+    "key_seed": "B5E64F3EEAB9749EBA831D592F1E9FC5AB925C3C5E0CEA6E129C6B8B8B4C342D",
+    "metadata_key": "5027B1E2C7F8CB8A2D11ED67C651EE3E",
+    "section_mic_hmac_key": "92BC5538046351A15ECC14E24E3982932E910A143E5D28F9DBB38340FA03DCF1",
+    "section_salt": "699CF720707E6FA5CE226F88AF8BAFED"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1BCD64B4EED1893C32BEF93DD9C971B3",
+    "aes_key": "DF5A125BB90A2D17FBEDF9B7C989D191",
+    "data_elements": [
+      {
+        "contents": "E8F6BC0AA73516D2AB139F6FB8C9E48BB6F580EB70D3AC91",
+        "de_type": 87
+      }
+    ],
+    "encoded_section": "519013835800D943EF3DC1B88575BC5477D0B5911000B7CFA8B2DB92728DA2812D9C0EDCD07590012BBEF78BFE3208F7DDF21AF44FF0DD82D580026F9F770A5E9F40C02C24C2E36456528561D0009C2B26E6",
+    "identity_type": "private",
+    "iv": "919E1A3794638BF621ECFA33E8A6DF57",
+    "key_seed": "03678FFD5CBA3537E25A891FAA50484AC0AB58A7D035D8DBBCB351D8643BB57A",
+    "metadata_key": "D2D13AC88CAB6E55984166209D685D96",
+    "section_mic_hmac_key": "2E0D2D30096D2F381F6C14F8393BC8DF670B3E975FA2BC937C10976F47BA5CFA",
+    "section_salt": "B7CFA8B2DB92728DA2812D9C0EDCD075"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "57CAA17E3435CEE5F8CDDD11F8C71927",
+    "aes_key": "FB555F776983D6EF70245A2A74330862",
+    "data_elements": [
+      {
+        "contents": "4D3378D9DAC41CEEB8BB45129747FCCCB813B17E1E046C319A6A",
+        "de_type": 687
+      }
+    ],
+    "encoded_section": "5490135808863DB438BC813BB23FF000567C7F91100040EB6E953C154ED8BA7B70AF72AA84D290048B21A3E3351576DD8C0DF85AA924B4F0CD3BE49C8844E49ED2F1F4852480C165BA80DEB502D0BBFDABB448FD07",
+    "identity_type": "provisioned",
+    "iv": "122941F68AA7A85356610AB70E8F7347",
+    "key_seed": "77BAB0D78ABC0316711301212D5429493421B2F32FD219C784512871C37891E1",
+    "metadata_key": "55E20264C236C78308649B3A717CDF5D",
+    "section_mic_hmac_key": "9299E65289E576D14465C3782E08EDFA71F7F0C4B96DF5D9A027A20C09D44F32",
+    "section_salt": "40EB6E953C154ED8BA7B70AF72AA84D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "918EC773233875D9A8F95ECBAD0F1FDC",
+    "aes_key": "9C727238CA3610D54D119E718CD06BBF",
+    "data_elements": [
+      {
+        "contents": "62F33A8DC96064763369",
+        "de_type": 146
+      },
+      {
+        "contents": "692DB5463436975E424A40014D6B7453611B22431310",
+        "de_type": 87
+      },
+      {
+        "contents": "36EC94C156296D1A90",
+        "de_type": 121
+      },
+      {
+        "contents": "9F399BC4",
+        "de_type": 102
+      }
+    ],
+    "encoded_section": "6D9013C4073FE83CA7F9FEEDE4564CA14A7D3A9110008AA71BBFDDBD5BDFE769C6AA971E20F690020F902663091D7F10A3326C4D6B7AE0CE21D0C7958477125C301C53AA265F8A0B76B38BE77C63049ACD8FABDFE029010F95D25F182016A122C041FDCFD2A36878BD53F608C7C1",
+    "identity_type": "trusted",
+    "iv": "8161FE7F58DD7CB51C94E893C3E77E37",
+    "key_seed": "7689440ED67C78632C580EB736AD5409C5B70833835188FCFEF762CA0ABA64C7",
+    "metadata_key": "CEE36091D48B6A6933349BAAEDB06D3D",
+    "section_mic_hmac_key": "A6C8112D9A7DD48D4AF3531A38C820AC7FD247231F4F433E8B11238B7EA5156A",
+    "section_salt": "8AA71BBFDDBD5BDFE769C6AA971E20F6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DB711D39B427852337FA71D91CF55BC5",
+    "aes_key": "A81B8FC02A525DCB4C2ED8CDDF285900",
+    "data_elements": [],
+    "encoded_section": "379013129BADABE83AB0218BA8A7AFA43684A19110009DE7738771FABFE6960860DEB9DBC4879004259342BAC650F527B4A5A74597FC93FE",
+    "identity_type": "provisioned",
+    "iv": "B504D33DE1BB8832C1EE8AC54297D743",
+    "key_seed": "ED24BBB04F28035C8765F7FCC5F1453E85D4781DD1640F498A9619D56ADFCA55",
+    "metadata_key": "16E55700FF5D1BD29430088C8A23C42F",
+    "section_mic_hmac_key": "10B0CAA2CE15EDEE6A19C905EEDBC6F8C082C77AE22A83DAE646614B1AED0493",
+    "section_salt": "9DE7738771FABFE6960860DEB9DBC487"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "15ABF702A2921EC4DA6280535C861765",
+    "aes_key": "22CAA40B3717F99A3FA4B2A1E7055588",
+    "data_elements": [
+      {
+        "contents": "6064E54E",
+        "de_type": 130
+      },
+      {
+        "contents": "B513C3896B41F8954528634301C2D8",
+        "de_type": 319
+      },
+      {
+        "contents": "1337431F91509A4888A9F8853595A5546D1256650020D6BF151A0763D534",
+        "de_type": 276
+      }
+    ],
+    "encoded_section": "7190136F47402C06F69E2F7BF935775D518D1191100026443E2A7BB7B32D564103572A0CAE959002A855F03507F04308929B2E733D645113B958A3DEB579A55DEF36E35F3B62FA005BB752019A3556269FB98D95644DDDD59CE945E8E9C5B9CEA3057392DFC1C1B818EE361431C2E0C6E3C8",
+    "identity_type": "trusted",
+    "iv": "253F2EF0C8214125C7A3E1D209E540E7",
+    "key_seed": "F82F3CE7CC922B30FE16EACE6B79D0BC9ECA63849C981B97FA704A23CF9AC8B7",
+    "metadata_key": "63DA0B806E8F3FDADACCFC2312159E4D",
+    "section_mic_hmac_key": "B3B26A8FD11B78B0AE02C2F6C0B7196539CB880B46059BADF89752BB504CB95A",
+    "section_salt": "26443E2A7BB7B32D564103572A0CAE95"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1CABC21DB1C0C240529AC3ADB636F5D1",
+    "aes_key": "2F97C4674DF327D354244B462E131D1E",
+    "data_elements": [
+      {
+        "contents": "3A8A8E0EA56B61160E614B6125C829",
+        "de_type": 828
+      },
+      {
+        "contents": "40A3AA30E70403F1B8CFD4D830",
+        "de_type": 267
+      },
+      {
+        "contents": "5D51B6",
+        "de_type": 335
+      },
+      {
+        "contents": "81D0363DE104",
+        "de_type": 110
+      }
+    ],
+    "encoded_section": "679013332ED64969A6D47284A3DEEDAFC7DAE19110009301091AC070334AF39D4CABBE2E483C90044E44E6E6C66C28D442F35A77230D9B10B07ED47776CC060B127913850E739C8FBEB68F9296788975DA87970ABB72936522DD38FA9093C98EF5E501B3D30D1658",
+    "identity_type": "provisioned",
+    "iv": "18685A3BE2ECB910DD222B30E86E51E6",
+    "key_seed": "DBFFECF4EF406EA2C2EBF09122890602CF3F8C1423E72694F437ABE9A82A33B6",
+    "metadata_key": "7AC9AC9E384723D87516CC941478E97F",
+    "section_mic_hmac_key": "C30AD5035C7291B24097C6E6E34CDE7922C49A0850A2BB51A902C9F8428DC220",
+    "section_salt": "9301091AC070334AF39D4CABBE2E483C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "18E66C02947BCD1286672E1283BDB6BC",
+    "aes_key": "1578A1F187076139B90136E77F5325B4",
+    "data_elements": [
+      {
+        "contents": "2C4D33C31E849376984F5DE450BE7BB9",
+        "de_type": 838
+      },
+      {
+        "contents": "73EED2D77B81D9148ACB2086BF5CA2076E8AB12A8E415E9063E3F7",
+        "de_type": 870
+      },
+      {
+        "contents": "4C5B",
+        "de_type": 222
+      },
+      {
+        "contents": "993987B210C00D832A84D6C2",
+        "de_type": 786
+      },
+      {
+        "contents": "0B292F6A1F2C4E7DA470",
+        "de_type": 158
+      }
+    ],
+    "encoded_section": "899013A4E785DB6CFC84659689C9721A0681C59110006A298D4CFE290BC52CE0399AEA97C85290042D4C1056B7D2A834275E94A129445B1D230D19CC4DFEB321DED2C89D5565F5D2F3FBE7296E0A8B1391D0C17CB73871CA9DEEE1E1856DED3B5E4944B5473963DF10C107D0260FB71335C4C6CA0132465C56393F7E2B317ED72CEFD4FD4E4C4EF7F025",
+    "identity_type": "provisioned",
+    "iv": "D00CCF4974F89E0EA8E4AEA7B8B6A4E4",
+    "key_seed": "3EEEC66412789D30B844E8BAB2DD02F80DA4B193058C1F094B7F00C1CAEBFE31",
+    "metadata_key": "D2BD10BCC3E0A1341A1E5CB881FC46CA",
+    "section_mic_hmac_key": "07783CFD28D58E0E7E7A58A427BD526F8A23CCDB6D476C893A6577BFC8ABB9D9",
+    "section_salt": "6A298D4CFE290BC52CE0399AEA97C852"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EEA784B50903BB1F3867A3309D3BB38A",
+    "aes_key": "F1584E98535678BA37B4B88C1A1DAD6B",
+    "data_elements": [
+      {
+        "contents": "B065975A23",
+        "de_type": 776
+      },
+      {
+        "contents": "97D0D8C01773B81CBB85D4654D48F679E3",
+        "de_type": 64
+      }
+    ],
+    "encoded_section": "529013FAB685D2A4E8D074AF6CC499253657A09110005BCF7C32DB1AB7213B08D65BEB96C64090043C30F732BA2C311688F57CCCEEBF13239AA81DFC7AB291C3C348B1FC0188CD137DC2199FED907A60AE4E89",
+    "identity_type": "provisioned",
+    "iv": "2417AC781347135F7C4AC5E3FF5610D3",
+    "key_seed": "A4C8D1AE27A88EE937949D1DDE2C4812AA80B3B1325E85057DBAB45B89890E92",
+    "metadata_key": "98A2EF99CDCF4366703D6CA384F606B4",
+    "section_mic_hmac_key": "818E8767FA4D512C0A422AAC5298D9E6C492AA82728538F3E8563D48113667D9",
+    "section_salt": "5BCF7C32DB1AB7213B08D65BEB96C640"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9FFCDC2887E86DD97B1CD7CC7C926E61",
+    "aes_key": "12C10DFCA2552603C1FDE479C2F70930",
+    "data_elements": [
+      {
+        "contents": "43D56D17A8F5E03D91BCF4E8C3701AAC",
+        "de_type": 233
+      },
+      {
+        "contents": "DD441A6FD3736A718759ADCECDE1",
+        "de_type": 388
+      },
+      {
+        "contents": "FE2437CBB6710097203765E501C075A7BB84D0DE6BD7",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "749013BD1B29276423429D5C32272760B00E74911000A69871C2D73E23EF30656C35210BC89190029822466D8A6CB94523F1F44D254C56B91C690540A37F233A1AE710FC4543D795BA11ECDC085FDB87B25BAE832933A76BFED60786C41FC80AB6303E572681F54EDF82F395336E6B5BB2F525D963",
+    "identity_type": "trusted",
+    "iv": "B7C4C6B5D46933E315576FB563020BF5",
+    "key_seed": "6F549E0C976D9C561F18C3B7E2A11E1DE9CDBB3F5D961C8D897C4D62D7237D5D",
+    "metadata_key": "3CE3E026CFBC07F235AE24EA5D5488C3",
+    "section_mic_hmac_key": "D669B98BC3C5408BCBDFCF32F721B5958F42F8D0121B4CF506D250F7E9193564",
+    "section_salt": "A69871C2D73E23EF30656C35210BC891"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "18FB5256D82A557D54A999C1A04077D5",
+    "aes_key": "BCB3BA61D328D7EFB9438222D888AF99",
+    "data_elements": [
+      {
+        "contents": "AF5BC7C723B9708DE8AE0F997685FFC56598015F233DBF1E",
+        "de_type": 978
+      }
+    ],
+    "encoded_section": "529013AFEA8B9B0A8FF8674527A31C8D5513D191100056E5750F6C377F9375156905EB02B0FA900403BC01343DA39F80CAB2AF188CC4D9EECFABE9CDBF75E32FA15F5BEC5AC24C1BF393C1C245415B38FA5C82",
+    "identity_type": "provisioned",
+    "iv": "C2337185C26056CE4441225DFE7060CE",
+    "key_seed": "3E54A3C0661B47A2B56B69385D57F404B59CDAF04806F5CD5E08C42AD1798316",
+    "metadata_key": "57D1F6D82B6598012DC38DF4102E9D49",
+    "section_mic_hmac_key": "02D21B6BAFC774F8225F653E3FA74CA072DEE643C20AF9AD115C0F656F0A8F7C",
+    "section_salt": "56E5750F6C377F9375156905EB02B0FA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3534341126EEDD02268A7CF907032A29",
+    "aes_key": "941672BC6294A5FC9E6AC03BAEE156A5",
+    "data_elements": [
+      {
+        "contents": "ECE25FB7FE3EDCEEE8",
+        "de_type": 642
+      },
+      {
+        "contents": "CAB4AF",
+        "de_type": 177
+      },
+      {
+        "contents": "FB38F904FB0A925E59AB186C824D1D121A",
+        "de_type": 81
+      },
+      {
+        "contents": "32E132145BF7683C7095FD150387",
+        "de_type": 990
+      },
+      {
+        "contents": "0C6369F4074A8980786BB4",
+        "de_type": 338
+      }
+    ],
+    "encoded_section": "7B901388065746E077EC8D797B0F0FF690A0F69110008B5B67D02A2EDE80F9E163D2BBC2C82E90049D2356AD8289D2ACBD6BDFD6AD70D136CA59E15E92B5D2D9AD3D1EA16E97828F9C722C6F32937EE2CFE7E3C922E9A969BFB73BD10F1F6E83AA574DF3B638EA680838FF779235BF394F6ADE59208709F6FCA13DA6",
+    "identity_type": "provisioned",
+    "iv": "17F834E108A1E530E9C6DC04CE6B4658",
+    "key_seed": "DC2133269CF982E3FA4D23A8A3D7ED820B8C708C44037FE6D84DDEC982B4C971",
+    "metadata_key": "F785519027C49D46E817F41766D90C39",
+    "section_mic_hmac_key": "DAC78E12E6374EAA18B9DAA80A771A75969D0C6C343200000C0C32281796A829",
+    "section_salt": "8B5B67D02A2EDE80F9E163D2BBC2C82E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9A85F942FCF43F69C7574D1CD2A0D0F2",
+    "aes_key": "0E0534CB941D842104C642B8A1F18A70",
+    "data_elements": [
+      {
+        "contents": "DBD9D02102C6ABFEE1E045959BD444",
+        "de_type": 556
+      },
+      {
+        "contents": "CF6DFA9CC175A07C269B84B190BCA7A1",
+        "de_type": 330
+      },
+      {
+        "contents": "319BE819",
+        "de_type": 775
+      },
+      {
+        "contents": "8F6E2B78FCAF4B5CE5D246F94621ABC50DB3B19C7B98D570C85818B8",
+        "de_type": 958
+      }
+    ],
+    "encoded_section": "829013E659F7589D9F22BF2F1E35BF3E6978F59110004BC4FDBDA1E0D06770F14BF61545244B900233E4203AAB4515AC6A71CC634449CFC1DFD064491ADD2C14E9E378C9E2098D434177D5549DA4D0EB463B520545ACD12D4805CEE4B52D218CEB5667F770833B5B64EDE4EFB737ABCBE830B68090E53965ACB5242A660E83CB82F558",
+    "identity_type": "trusted",
+    "iv": "DA6BF37D65F973CA1A00522E49BC32C9",
+    "key_seed": "54C796907B5F73DA86CF7C183276E8FB928EC324D625DD57859A986635668117",
+    "metadata_key": "ECD687DD1F9FF1CD096D76E6034F6F9A",
+    "section_mic_hmac_key": "6DADAB8D9E47EB85161A5159FE728B9F74842B24584FF530D98584C0F6B265B7",
+    "section_salt": "4BC4FDBDA1E0D06770F14BF61545244B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9A5D74B1191EDFD5C9FFB3693DED74D9",
+    "aes_key": "C86DB754655DE997EC3B092B814A9D08",
+    "data_elements": [
+      {
+        "contents": "B24E8C398A097EB6DB8070",
+        "de_type": 122
+      },
+      {
+        "contents": "FF8934664FEA786A",
+        "de_type": 959
+      },
+      {
+        "contents": "0496A8",
+        "de_type": 491
+      },
+      {
+        "contents": "290027D82CF848264ABC51B38B9F50301A2BE901B1865A",
+        "de_type": 917
+      },
+      {
+        "contents": "BB57846504B148C0D3D06CB420F09EDC69",
+        "de_type": 518
+      }
+    ],
+    "encoded_section": "8390130089ED0335A7EFC59F0CF825677AF8629110003BC66A7E83C34665E8148E8F405DD6B19004D3446E2F9CCA273520BEE5910B42717AC24D55486EF1D4496F38B97F29F7ABB26ACB299A32164F4FBBD64DBD128650D6C4487B681812C9B810D559F1DF7A2E619A9A2486EC27B55F48A49DB4D3A5EA3BC486BD5359EA31CC1E1E101B",
+    "identity_type": "provisioned",
+    "iv": "9FCCBD881DDFB881671D7C7F7F1FB16A",
+    "key_seed": "48C3FB983526200C3940D06E401D1E447353B058DD3C4A1F518B9CD8F045B31C",
+    "metadata_key": "449A2DCCC6E26F9AFBB91071ABE75193",
+    "section_mic_hmac_key": "F57B9C5889C41E7D404CA50D39992A03DDD9D7348FBF57C9A8B5867A01219571",
+    "section_salt": "3BC66A7E83C34665E8148E8F405DD6B1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B9B184BAC61B4F93DFC9C3067F371D17",
+    "aes_key": "CF403FA1E7BE86B53AF114A1B0D9C426",
+    "data_elements": [
+      {
+        "contents": "B051C4367A69BF4878",
+        "de_type": 528
+      }
+    ],
+    "encoded_section": "439013E664890A3457FCFD7EEA5AB752B14D2991100097E8397B9ED7E8E71313D8D606145444900402DC632F0AFED33FC49DCC6693C993BBF5040BCE4A4D0900C1076958",
+    "identity_type": "provisioned",
+    "iv": "F46A38E8A66A6D683FC6B94C6C04640E",
+    "key_seed": "BC6F5B315462737EC913FC8716950B18BDAC5D2D7CE7B62E987736D9C8A51D00",
+    "metadata_key": "4132EBD8503194CDFFA3DB4A9CF4E9F5",
+    "section_mic_hmac_key": "77646D5AFD46271C0B3E18910808CBAB5F5B196B0C7F4363A719C58FFDA9863C",
+    "section_salt": "97E8397B9ED7E8E71313D8D606145444"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E5934BA045805A7421A56BA0D4CB8F9B",
+    "aes_key": "888368B6CCCA3B33D5A6FA3CFDB8D12B",
+    "data_elements": [
+      {
+        "contents": "D6CA9F03DBF64CA2B9439E2AF8672702F81E82B4",
+        "de_type": 767
+      },
+      {
+        "contents": "6937CEC064BCA1095885872E",
+        "de_type": 993
+      },
+      {
+        "contents": "746A7794E1520BF389F1",
+        "de_type": 968
+      },
+      {
+        "contents": "DEEE6D20B58534F9C1BA4D746648CE",
+        "de_type": 645
+      },
+      {
+        "contents": "",
+        "de_type": 190
+      }
+    ],
+    "encoded_section": "7F9013ADC90DB7AB8EC54F721AC09BF0A8E89E9110001FFA28EE4F6B26C093F26CD48274E4749004CBC23042E5B3B7E471C006FF749F88E3212AD450377C64170A389DE0A1D02C4F37AF61AE5374AC0B38C772117A1AC53D6C19CE24488A51C292B903548563A6F09ADE9742B311215D27EA48C7EBFD970179AF4C509A7A528B",
+    "identity_type": "provisioned",
+    "iv": "C666D37611C02A62008EC134E0043096",
+    "key_seed": "065262498762C06838CB80F57356EF74A34649A8B256444C31D0EAB095B48038",
+    "metadata_key": "424141E8B96A7A3B35DF2F27CBE572AD",
+    "section_mic_hmac_key": "E4AC63DB35CBEB6526D701F511D6F93C0EAC5AAEEE8E15511F560952D60BE443",
+    "section_salt": "1FFA28EE4F6B26C093F26CD48274E474"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8B09B5CC8D452AED21A27051C4212C03",
+    "aes_key": "20CB5F8E502A5C231631433D3EA74C3A",
+    "data_elements": [
+      {
+        "contents": "FDFA36FDC1E841BE8CB8CF9F786927EB3C875ACA8782A40F64CF87",
+        "de_type": 994
+      },
+      {
+        "contents": "C217151453818FA83E",
+        "de_type": 302
+      },
+      {
+        "contents": "CEC2831E815B7741DA4AE1B430191A52A9AB542623796986904825A9F29F",
+        "de_type": 375
+      },
+      {
+        "contents": "61106F238FAC929705D579362ED8F0654FFBECB7B3",
+        "de_type": 882
+      }
+    ],
+    "encoded_section": "9A9013AD9DD460657404924554D5ABA137FCE1911000FC40CDC9F0268A4359DAAD8CC738FBAE9001B4A4E4F36C74E4630E303CF82CC7389673E052C09E190A6EE06D066956B4DE265F30D6BB6A1FFB90C7B0AB0E988DBCD6890AD54EDB925700587ED26438093EC7522F59C4D96DC3A05D57BED63FC0FDDE6921918B0401ADF02DE8A5015FD893589AD840C2D9A883970D73D4E78252E108E952CC",
+    "identity_type": "private",
+    "iv": "3AF0046E60E52B687DA9B405B04EE4C9",
+    "key_seed": "187A06076F56E434B68E0198E97AD9A3DEE2B8330921232770A7081304A5A197",
+    "metadata_key": "20D24EE641F15A53359F2173BF22D6E7",
+    "section_mic_hmac_key": "92281B4C5EF9136F18CE22F5B052F0782AC51DE3872A56AEA4BB5EA9BD6F02F4",
+    "section_salt": "FC40CDC9F0268A4359DAAD8CC738FBAE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1980BDCD7189D278FDCABE4B5A1606F0",
+    "aes_key": "E6AC160A241743BD2F26D4A0613D370B",
+    "data_elements": [],
+    "encoded_section": "379013EE631DD1C657D166AC8350CB989079D2911000452D2E63C89D362EE8D6B4C81675EF5D90012FE7D7BE11D828247000351610FCA587",
+    "identity_type": "private",
+    "iv": "F86E064E37573CE05667B8CF12753CB1",
+    "key_seed": "80BFAC30C797B1AD69B178398369D8DEE740D9020AAFE9AA25A7E30E82C6150F",
+    "metadata_key": "C4D4EEDFDA9C4A7F8A605B6AC7BE644E",
+    "section_mic_hmac_key": "60CA863FF6016A0BB84CA68A347B1E20B94CED09D9D0FF8F8AACD72CA9D5AA06",
+    "section_salt": "452D2E63C89D362EE8D6B4C81675EF5D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CE3637F7C9AD29DC4903BBCE71B3EDF7",
+    "aes_key": "283D03C921033734F5FC72BDBF2CC23B",
+    "data_elements": [
+      {
+        "contents": "B9D0AAEF",
+        "de_type": 758
+      },
+      {
+        "contents": "13E90EA2DE8A3B96E136541945E1D14A54D07038940ABB3FAD225AF3",
+        "de_type": 983
+      }
+    ],
+    "encoded_section": "5D9013F16575E13C3E78AFED9CD58FA081D9DB9110000ED633E1509B9C35BB340C85E69F20409002CE471E855E16C0CD3B96A38178D8ECDA75CF3128C160846194A450B3991578950E8CCD5021E3EF114EB46E4E412602DE3E762B0CE436",
+    "identity_type": "trusted",
+    "iv": "4A371511BC88F24D6FCADCE37088F34B",
+    "key_seed": "FE21995688DB34483CDE840FD00F9A96CC425AB8E6775500C108430EC0E823D8",
+    "metadata_key": "64C0230DC2C5593746B2B0CE14AF63E3",
+    "section_mic_hmac_key": "72108A75932EE23C133B987C0E818D81822E004E67F1B47DE6F9C1DB088264DA",
+    "section_salt": "0ED633E1509B9C35BB340C85E69F2040"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B162D1322B5D26249649CB969B4F8102",
+    "aes_key": "E92585DAC5D7F4662EEA29655E50A4CE",
+    "data_elements": [
+      {
+        "contents": "A9EFEEF17500ABA6053E234D49F9",
+        "de_type": 176
+      },
+      {
+        "contents": "29EF333A49CF43E20C253605AA083893D2",
+        "de_type": 459
+      },
+      {
+        "contents": "2FA4FB0EA60274A5CACFA47E4B",
+        "de_type": 504
+      },
+      {
+        "contents": "83A7CB21AA6B3A1923F7382E4FCBB313D3E7E61DAFAD3E7EEF32CB3EF93C",
+        "de_type": 313
+      }
+    ],
+    "encoded_section": "8D901309D5FE388C56BD4E5F6322943FC3A048911000F5C76DF48CEC6BD8CAE990AE8BE181C79001A92EE39ECD5870537FF134794D9F747F6DE78C4512B3F087F0637BCB1B7EE8A0539D82E806149FC2B0D7F76FE39D9C4D820F714CEA248E808605929CA89FDDFDAADFAF87CB1EB88690382E08185623C09585E5489C21B5941F607AEC56E2CC36DEF0244846A8",
+    "identity_type": "private",
+    "iv": "BB9EE514C99F0518104C87999D49A754",
+    "key_seed": "AC4EC8D356CF255D5AE8B9FA0B792CEAFE7947F8559AF2723AC8B966579FC0DC",
+    "metadata_key": "4576F651F9196F707DCE4E1F599D0783",
+    "section_mic_hmac_key": "8BFCAD24C2D370096D0E954E9A3363C8C0B239729D5B0A45E9B093A6A377B2A9",
+    "section_salt": "F5C76DF48CEC6BD8CAE990AE8BE181C7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5B297B4DEAA667E3D6FB370EC0BF95F3",
+    "aes_key": "99F1560561D5A887142C3C55D312DD52",
+    "data_elements": [
+      {
+        "contents": "5C2CE141B3E5A889599146",
+        "de_type": 37
+      },
+      {
+        "contents": "1848600B2D546BCFBBF6C7C8705D",
+        "de_type": 192
+      },
+      {
+        "contents": "57DC2206B48105B60FA3C8BBF187A500",
+        "de_type": 487
+      },
+      {
+        "contents": "7C3D131E2C31",
+        "de_type": 195
+      }
+    ],
+    "encoded_section": "7190131A58CC7F4415B7BF7472C0F89D5AC2E391100084075A84F9CB2D02F54F96F87F1A163E9004C6AEC8AE7B9D25088001CEC6C53AE2D4FC8FFA1615483B6AE2DE6FDA409B13F33028543707A88A02A2C462CB81AFFFC81B3655BD8D733A13F133BE4138D8DCBBFA21E7FD4B72CFB66E63",
+    "identity_type": "provisioned",
+    "iv": "8B28D0A8180C17783E7653EEBAC132BF",
+    "key_seed": "577AD6CFCFE8E1C3ACBE1993BFAA7FA05F81EAC8AC1E83C7E0198DAEBA7FD1F4",
+    "metadata_key": "73BB407DA49FC66BB9C315EA94EDF8BC",
+    "section_mic_hmac_key": "995E2E8ED0F4F4C1CDC5D13DF3C903B149EBD84F41E4D088A801A8B9396EE8F3",
+    "section_salt": "84075A84F9CB2D02F54F96F87F1A163E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA6DED68CF0959239D11427F74FE997B",
+    "aes_key": "9FFFC08CB431531D60DBE654D099E048",
+    "data_elements": [
+      {
+        "contents": "539C2665DD42B55FB0E9",
+        "de_type": 658
+      }
+    ],
+    "encoded_section": "449013ECAADB35F533CF451CBF0B38EC937432911000D32DB501E334CAB82F79520F3C892DB79004E7750EE5BDC44BF9BF13543DF92F315E25D7E54780C7A2623492AA0175",
+    "identity_type": "provisioned",
+    "iv": "023DD3C725AE97C27DC0788CC095B6E7",
+    "key_seed": "9EE6A42100524DD1D112A596D5405581586D40BA87C77DD85F8A6AB92EB9E1FD",
+    "metadata_key": "AA74890853C6C5BF4EAB72B38C5E2C2A",
+    "section_mic_hmac_key": "3B6C00CF957CD21086DABBB8FE4042307ABFFDDECA6D3CEB512F81C1F133F6F1",
+    "section_salt": "D32DB501E334CAB82F79520F3C892DB7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AAC3A533A7C2AB440C26A8183F71CE3F",
+    "aes_key": "8B68336A07D6283B517488B995AABE65",
+    "data_elements": [],
+    "encoded_section": "379013954DFB4D6B1382D53F3D36B4521E1647911000C6ADAE90AF6B99E17D60C8613C5BA3F490044466909ED06184090A9DBCF69FDFF46F",
+    "identity_type": "provisioned",
+    "iv": "42DF51FB3C37AC171470D60D4E2F04CF",
+    "key_seed": "7C3FB67838916AB0E4F7BF68FE8A28C509A2A15BB3240BC8AB6CC3F99F52705B",
+    "metadata_key": "393F240A2C6F9EC4AFA756425A9CC2AF",
+    "section_mic_hmac_key": "AFA33F6D9DACC54E13B4F5248468F614561745ED8A0F29CD0F2E430873D9CE2C",
+    "section_salt": "C6ADAE90AF6B99E17D60C8613C5BA3F4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "81C6585DC0B3B9D152F79A23DB1C8882",
+    "aes_key": "E97F5929B62C0A82220838B588728F26",
+    "data_elements": [
+      {
+        "contents": "72B7",
+        "de_type": 536
+      },
+      {
+        "contents": "1DC3",
+        "de_type": 937
+      },
+      {
+        "contents": "97CA765CF7E2E2C48B42330799F54489C934EB912308FA958DD04703",
+        "de_type": 387
+      }
+    ],
+    "encoded_section": "60901338E7ADD6C6548D813C99134BA15D9A5D91100022EB17486F7CD2CBA6E39434537B2F57900207BFB512D4879502860E54B41669139A48DD0E42BDC66FDDF265ACA9CAA359F1E4CB1482A3D506646B21698F37317D0564F842CD44919FD767",
+    "identity_type": "trusted",
+    "iv": "BB11AC5F4D37033EC99BCF8E6779C7B7",
+    "key_seed": "11F86BFFAA9B66C77616DD6B32C63A6C81C50541BE9EF6E04AF0F953895036B0",
+    "metadata_key": "AC3C67CAA7794A04DD94CF515419466F",
+    "section_mic_hmac_key": "60B2EB5CF45F6600ECEC676CD76A4604B744E166B5935BF4C5C750634AD081D5",
+    "section_salt": "22EB17486F7CD2CBA6E39434537B2F57"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "00511EF933CA6DC0EEDCB94B38987087",
+    "aes_key": "0ADAF776AF20958595ABCB87A10E984F",
+    "data_elements": [
+      {
+        "contents": "1A464229DF04C31CCC08944B21D55EEBE9C1BE489B1790",
+        "de_type": 339
+      },
+      {
+        "contents": "BD56E1750AB74F38437A7EDD986E21",
+        "de_type": 92
+      },
+      {
+        "contents": "B0668FAA2F6BFDF67FD9033B8D0675680BC452D2FBD29D4F288B93C2",
+        "de_type": 768
+      },
+      {
+        "contents": "9E5C09A349090B3CF9B575821F0CE393462D",
+        "de_type": 850
+      },
+      {
+        "contents": "655C5910AD15C62A126D2FAF109A26",
+        "de_type": 399
+      }
+    ],
+    "encoded_section": "A890132778CBA5093DE49E4CDF829C83BBC8B0911000FED627BBA15D95068F43ACFDF42D2426900157609145B639C9C92C2A81A0717C11219DFCBCE7DD6B6A80146CA785EC92DE677C43AB269672AFF27FBFE8A4A34EA6E4DBD5C1A53E8836BC8149E27A59A449E6752025DD324A5FBEFE17DC2EB8C0CEFA651F949CA334A0E3FBF9657C5B0C8C9CC819BF2C85EE8BE5813819372E1308CEF54567F70B8F6534A008CE0D407ECDA3D9",
+    "identity_type": "private",
+    "iv": "EFB9C48ADED0FBA9B2F10E7799B1BC11",
+    "key_seed": "05BA0D78A0AF7D0FC55A4B640C8573C74115E6BFB35CF849EC024CE0E5ABA91E",
+    "metadata_key": "4D0EDEF4A062C6A83A925F727C997C68",
+    "section_mic_hmac_key": "C3F3B8305FF694E5BE8EAAA0752CD8DA61D3E6BD544AE2DED8663F4B34ABF95E",
+    "section_salt": "FED627BBA15D95068F43ACFDF42D2426"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95758969EAEFE0163C295B1733BEBDFD",
+    "aes_key": "08B89985AB9371EE8A7C749FA10D7965",
+    "data_elements": [
+      {
+        "contents": "42F3FAF94ED0FB40C070",
+        "de_type": 906
+      },
+      {
+        "contents": "2870FEE3B66905C1C865B578458847CAF0F8AF67",
+        "de_type": 827
+      },
+      {
+        "contents": "555387D04F9A2CCA92EE39E54408ED6F2E",
+        "de_type": 767
+      }
+    ],
+    "encoded_section": "6F901375D05E0E76CDDBB5ECC6637172CAA0FA911000A1939F4A327A3FE2596522A22DB6C5A59001E0EB6C5B53D04DC02C32041E4880E4D65D84151A34F27CA74E7005C9BB2CC12BA2B343395FE847997119EA78AB0C1AC5B3F643A538C4FDD3BDA97B1872BF596AF0B0A59832B2D648",
+    "identity_type": "private",
+    "iv": "2ECC3361C8C791708F4C7B8C39C15D79",
+    "key_seed": "DA612AD55892DC4C53B80590D940929D72984DFF5A5F6F03DC23DF8E8533B512",
+    "metadata_key": "B1CAB6C41D016206FB92AD7B4DDE8B4C",
+    "section_mic_hmac_key": "3D75FC10EA014EA03A511D12A3001062354C69FD19910D31F7931635417D9350",
+    "section_salt": "A1939F4A327A3FE2596522A22DB6C5A5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA6000111B7177C842D94B678C834DDF",
+    "aes_key": "0FCEDA0332ACD49A195ABB867E6BAA1B",
+    "data_elements": [
+      {
+        "contents": "CEABACE7D381A232FC75805204E7270B700D5B4FC2D8BD",
+        "de_type": 672
+      },
+      {
+        "contents": "9AD36A4438B590412E41CAD870CC8BA2CA27315D",
+        "de_type": 178
+      },
+      {
+        "contents": "CE20C944EC92910AA9878C",
+        "de_type": 587
+      }
+    ],
+    "encoded_section": "7690133D110BD2D3C885F07437DDE3630C5D7E911000A4E404D0D8DFCC6F1EADFCCFF09E925E9001F6AA807E5AB71B59EC053660E13A15739A1BEABDFAA147D3285CD42CC0AD05CC1541D234FDE1FE6F5B0387CB7421B3212218FB7135516304295DF97339562FABAAB5D3D86107F5F7E8BABF6D23DAEF",
+    "identity_type": "private",
+    "iv": "A9DCBFC679102BB70F88C434A62BCB58",
+    "key_seed": "FB9B3394FA19B352B121F5176DC2BDE9DE6901F8A3C47AE297527EF13DF6061E",
+    "metadata_key": "1B044AFCC875CC44C5305B79FFD030BD",
+    "section_mic_hmac_key": "A9BEE21E360D0E27366461547D779FE698A82E16E40C2D20413DAC39E851C75A",
+    "section_salt": "A4E404D0D8DFCC6F1EADFCCFF09E925E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EFB53470C08C0623EB392B698DA54733",
+    "aes_key": "560C8CA057D94CF4EF794E192324F93D",
+    "data_elements": [
+      {
+        "contents": "668992",
+        "de_type": 643
+      },
+      {
+        "contents": "13DA",
+        "de_type": 684
+      },
+      {
+        "contents": "0644943798483CDE51287D117570D6B1879BE0B677D86D7FDA9E502E",
+        "de_type": 838
+      },
+      {
+        "contents": "8DE3050FB50AEAFE8825211569FD59526395E0FE71F9464EFD0032D945F8",
+        "de_type": 659
+      },
+      {
+        "contents": "8CC01BB0BB481C4C355440B4A65D3611345B036268B913",
+        "de_type": 578
+      }
+    ],
+    "encoded_section": "9C90131E6B368314CBA81922DF93F3FB58882391100028EBFFEF24B6C89067BB31A550C043319001A26FBBE8A1AD2304583A63C804B269F163BCE88B8D89377B7CD26A0DBF6D331A12C84759AE583C7F7FEA4194BDDD77154DF89BA4B4E024E13E9AED6FA0B7FB27D467EA2A568B5C3324354AAD300CEB8C987E98E31234178DFD263E04027E4B8F0BC0EF53E5D77F45CBBA26B95E88D1036BA7BFCE96",
+    "identity_type": "private",
+    "iv": "F9F2984CE55D17978DA1F074305C9C96",
+    "key_seed": "BF601538B31CFC67922FF6BF44150DF8DACE1485BC93284F4166B11EFAA5344F",
+    "metadata_key": "5DFD83B4E657AA2BCD8A0373490573C5",
+    "section_mic_hmac_key": "470CF61CF85A1249F42A5CB24EC08AAB431E1DF4EC0B0391751B313C36715ACF",
+    "section_salt": "28EBFFEF24B6C89067BB31A550C04331"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AFAF84AACEF8881F848E7B85C7539880",
+    "aes_key": "CBD54146C955B6C8F00BA1D38269EA98",
+    "data_elements": [
+      {
+        "contents": "FECDB0E0EA56B7ACE68A83",
+        "de_type": 120
+      },
+      {
+        "contents": "0B733BA3",
+        "de_type": 781
+      }
+    ],
+    "encoded_section": "4B9013524EAED100DC3E32D41005234B543740911000EFBBAA34F6A5D2CCB39DFCF9C89714DF90025EDD541786FA33A58E7132F55209DBEF9242C353BB72CDD1550FF0026E18AC166956E6FF",
+    "identity_type": "trusted",
+    "iv": "413D670613BA8E8838386AA10F29C898",
+    "key_seed": "91165D9E35460BAE2E80856F736CA95A1CB0DDBDE92E6F55B2B0592E976A8030",
+    "metadata_key": "3999C8B72B85830A4F46CC24C0CEFEC0",
+    "section_mic_hmac_key": "3B4E66850E50DDB2376FD26E0B6506F2144DE3E4C9FF0F0ED3A2A95AA2B2CE4D",
+    "section_salt": "EFBBAA34F6A5D2CCB39DFCF9C89714DF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "437431D701ECBD564CE91F04AD002790",
+    "aes_key": "B7DBA314333C96D6E7420CC20C3BDB7D",
+    "data_elements": [
+      {
+        "contents": "08F45E72C77E4F763109",
+        "de_type": 522
+      },
+      {
+        "contents": "4BCFD9294127CEFA59C6E3B17F5F",
+        "de_type": 246
+      },
+      {
+        "contents": "A0AA932C07DC7D06E224D95EC31C4AEA2BEC4AD37A66DD",
+        "de_type": 459
+      }
+    ],
+    "encoded_section": "6F9013074F186DD7876DD0F5374206C65F523E91100050205EFE1CBB39FD3572899E4A9FAADB9004544DE8447ED37AB18AE43746E06D5331A4102428F2EE7CFF71482BC080EB01EFD1A42970BE9132663CF654846A92370CF909076D780976F02BCB93F4B739ABD92FC18DC1DBE28EDA",
+    "identity_type": "provisioned",
+    "iv": "F2DA6B13367A1D956592B937986DCADA",
+    "key_seed": "CC5669D6AB653BA0D76496518A8BEB80C904747724CF21ABFE711EF4E66C1717",
+    "metadata_key": "CD38133DCF3BE5E85AD5152614EBCC70",
+    "section_mic_hmac_key": "A5696785B14A4D7352246FFAA8926DA57C2D47B5E8FD9CAD3DEA52BE766122EE",
+    "section_salt": "50205EFE1CBB39FD3572899E4A9FAADB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C90A438A50E93F2464F0EE55291F2472",
+    "aes_key": "783982C76051896CF3879D01AD48E82B",
+    "data_elements": [
+      {
+        "contents": "DE3D9E2E05876097FA1D8C",
+        "de_type": 129
+      },
+      {
+        "contents": "D066B484718CB966E1F4BE4B3DD52C712077A3",
+        "de_type": 145
+      },
+      {
+        "contents": "1A8F96D8CFC568DE5FA81E2E25B21F",
+        "de_type": 162
+      },
+      {
+        "contents": "8E1B11FA0970BB66441B5D9EE43569EF92D9A93D9443F868",
+        "de_type": 296
+      }
+    ],
+    "encoded_section": "8890134276D816E4465BD410B3B16E1D9E7D5991100023F02B2A00F1E5E9A1ED089BC433715F90042013AD595A1742D2EED91B031F13E399FDF21F4B491120694D72ED8E822B87C7C13CC13019BB1672281428A2F2ABDA6FEEA9661AC3179C926B3A51A3C529040BBE048DCBAB14D4DCE8093CD66015BA0E77B61B922E20325F51799611608E694330",
+    "identity_type": "provisioned",
+    "iv": "213A6CA4A300251C8E06F982E3ABCE8B",
+    "key_seed": "E5C922600165DE89DE7441F0312C7B5F977D674631C91D6046227C6A56B1E21E",
+    "metadata_key": "3CA2053EF6F21F47E9FAFD974B23C5C6",
+    "section_mic_hmac_key": "5ECE1E81AFAFCE2FA416FC9DBBEAEBEB154F1C6A956CF2B32A0795E7438C7975",
+    "section_salt": "23F02B2A00F1E5E9A1ED089BC433715F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DE17942EEA2F8A64B88FA1BF6DEC9995",
+    "aes_key": "17BCEBB9A4A9490F404AEF55D5729ECC",
+    "data_elements": [
+      {
+        "contents": "A039F67CF7F3",
+        "de_type": 399
+      },
+      {
+        "contents": "E9CE7BC13F8EC91D4A7B2DD9AA389F472F5090E17DF4FB99546AD8A73E85",
+        "de_type": 470
+      },
+      {
+        "contents": "71F962A82E4C980D",
+        "de_type": 494
+      }
+    ],
+    "encoded_section": "6C901356238CA02CB62DF82AAA695B9F99C76E91100067859E665050534B84E37961D658822790025D988421412F895E343CA8EEAADEE1CF2E12DE25EB2C2DD52B2368A7C2451CDF00DBA31B44801576BD6AF8B6D689EF232C4250C363ABEF30F39E6276FC9FCC28A33A83287B",
+    "identity_type": "trusted",
+    "iv": "842B1A1F3A3102058F7575310293CD3E",
+    "key_seed": "F5E1B94291A9CEDE059BD01045DAAE8E7BF8F9B4DCFD98C816F14D17E5AAAC3B",
+    "metadata_key": "9CFF8F87781CD2434DB335C063DA7EFB",
+    "section_mic_hmac_key": "96EA7A011BD46B42FED04395B7554816A3770C9627EA8140A954C834E6D95788",
+    "section_salt": "67859E665050534B84E37961D6588227"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EEC4ABA003D9CAA5E225EE938E59A88A",
+    "aes_key": "A3ECB264388150FF04523DE0CA4AF3FF",
+    "data_elements": [
+      {
+        "contents": "5844574BA986DBBC3FB734C6A0E1FA9D5117CF282C06C47E6CD568CBFB",
+        "de_type": 826
+      }
+    ],
+    "encoded_section": "57901396739698F47EEA126FA41FFEAF83526B911000A1C40F8D2851B55CE81385810F82C8999002889342B7DD12A80AE6337FDE0EE82E22533592B5E902E6763AAA274863B2CE7B4621AD059338821618D09ACC1481A060",
+    "identity_type": "trusted",
+    "iv": "6F7CE3865CC971472C29270AE628765F",
+    "key_seed": "FB21E795C55BD93DD87F63107ACC78ED61E9E17DE0EA81C9A6300BA63F1B369C",
+    "metadata_key": "35D70D76E387E1BCA4D02CC6BFBA51C2",
+    "section_mic_hmac_key": "3EDBCF936225088A78F30EFA4825982F6EE29398679AB1661C1F365D47538EC4",
+    "section_salt": "A1C40F8D2851B55CE81385810F82C899"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "40DD0AE6AE5E4181F03C8A77CD35D51B",
+    "aes_key": "016F45AB063A9098880BD35B56F93324",
+    "data_elements": [
+      {
+        "contents": "75192B40B7328370B88E0983A13901EB57AB1522A4646850D869CD",
+        "de_type": 851
+      },
+      {
+        "contents": "6A21620BDC9E",
+        "de_type": 810
+      },
+      {
+        "contents": "6F1BCC7D79A2C824CD4417A720A7C470C2EFA8E901E643E8B4",
+        "de_type": 502
+      }
+    ],
+    "encoded_section": "7A90139875296CA1A492DC5433EC0C158390D291100016C8B52E762259821BB72DDCA26B7B4B90022BA2F6C9F36284CA3BD06F8F1C7316988CE9C1461EFD1081A9C6F88C03039DF4C3798990FD9CB1B7535582A27E091340D56BBBCC6251D716F0F64208893548ABFB4B8CEC8273B1B9E188A528783672B31188C7",
+    "identity_type": "trusted",
+    "iv": "E4D5AB6C234F20EFBEFDB8D47694BBA8",
+    "key_seed": "604C1B551B481F1A897F85DEC2F35DDCDC7C5AF74CE2B45B8680F76EA13DC626",
+    "metadata_key": "CBE00FD5F6CAEE0428F8AC2EBBB876B0",
+    "section_mic_hmac_key": "DE57E2DBDD55226FA52611244EDF1FD974C633EE264AC51EC09AC1F9E192F60E",
+    "section_salt": "16C8B52E762259821BB72DDCA26B7B4B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "493740337B758DD54FEDCDBBAD59FDEF",
+    "aes_key": "2CC6A4D0D81ACF8B800C71D3883DB5AA",
+    "data_elements": [
+      {
+        "contents": "E05DA93367830FBFF2A5A06D84DA99A681101A994B5AB5CD",
+        "de_type": 299
+      }
+    ],
+    "encoded_section": "5290139E7281721A0C71BFE961E2BB6EE3EE169110002DAF1ED3BCCFA03A33C8A12EDD6A774090043E221E6BE16A640381C047CA79D446940E7159C2D63E49730A006BC0B71019200340F11B7BF4B6AA8F80F1",
+    "identity_type": "provisioned",
+    "iv": "CD540D1F885B93C6019EBC6B1AEC866F",
+    "key_seed": "DA6F8D036A011F4EF959EEEB64DD7DD7BDF1E30F0EAE672B49D8A68E6D175BED",
+    "metadata_key": "EBD30CAA381AFB2446A295F1E33A205C",
+    "section_mic_hmac_key": "8728D6EB04D094F213ED25E9DE0C797856C5CB6378061EA7A7E0DC5F801DCDFE",
+    "section_salt": "2DAF1ED3BCCFA03A33C8A12EDD6A7740"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6B6C93C92DCEA4FDFB0EE6F40BE8DA9C",
+    "aes_key": "19BAB81AAD722A2E0CB0E1FC5A14A854",
+    "data_elements": [
+      {
+        "contents": "7580DFFCE3D30EDD2DB5AC5F18C4AA8E8D",
+        "de_type": 370
+      },
+      {
+        "contents": "EF1E4F25CD5A8888CD41F0237A75EDDB9801E706578EA0619C",
+        "de_type": 207
+      },
+      {
+        "contents": "FD9E1EA36172D0F5EF",
+        "de_type": 761
+      },
+      {
+        "contents": "3FE5D2D5B86DC22E2BBC14612748CE40507CED56B0ABE2",
+        "de_type": 822
+      },
+      {
+        "contents": "8C7B1B818C82412946EC964A4AFCEC5D77F2E49AE42F247CA419",
+        "de_type": 628
+      }
+    ],
+    "encoded_section": "AA9013CA08132660CA46BEE4E55FFBF82D98F1911000EC8314769B664C86461B6EA9E12773969001D9853FBE75F68B42B3E95C7D5B3E08DAF0585FE8292777E631F36ED2E0E0A639C821F5AE2786DBE51893D9DF92C68EF63E01F735F69790B7847ED685E3D4851F53D672EA63164B84322A49DDA9BE84427590959F035A608D964F3C49D6BED8E446AF319FBAA9BCC749199BC14CC3B0F5D74E1E6BBF6517A41FEEE61B5112A968883EDD",
+    "identity_type": "private",
+    "iv": "147048CD988E7F8643E32E2449ECCA07",
+    "key_seed": "61D23B0B31E7D1C9A401378119A082952523D5A3ADD9D2C56EB29D695F8EDFBE",
+    "metadata_key": "40ACD53A2B51E6F0C26CBED7D58B2D0D",
+    "section_mic_hmac_key": "CBCD4D44B600248C33BD5BF177E470EED36A1295E9F2E7813D3BD827001A2EF8",
+    "section_salt": "EC8314769B664C86461B6EA9E1277396"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "80E94BB8F2BF0314AD27A08808A81E8E",
+    "aes_key": "D48A2B9E344DC5E13A29F40C4F4B0BAD",
+    "data_elements": [
+      {
+        "contents": "32DACC08BD9CAC4BEFF141E364D6D9B408EAAF",
+        "de_type": 840
+      },
+      {
+        "contents": "F2379E76F0E1972ABE60536A9B004F93F0F6229E",
+        "de_type": 693
+      },
+      {
+        "contents": "",
+        "de_type": 482
+      }
+    ],
+    "encoded_section": "6790138854BC068046A9DC6438D9AE0A6707A09110002FA6884A260B808CCEC3C12E058DE4219001B1313868C07F461355998AA9C33D1625542C04A413FC422FDD8BECE20E4EBD8157ABA83E0FE1EEF9D471266DC5EBB50B910DB51086D3AB261A0C64EAB6E1199B",
+    "identity_type": "private",
+    "iv": "09E7564C426DEC118EE479ACA32437E0",
+    "key_seed": "AF6DF5E99E86E3CD676BCECCA7295E1313B989E329F4540A9FAD643A0F1ABE51",
+    "metadata_key": "C064817D63652D0DD19F5A6ACD6BDE17",
+    "section_mic_hmac_key": "0E01561E7D972FC6EDE73397C102E4062644EEC472F6DC93FFA93AEAE66DCD6D",
+    "section_salt": "2FA6884A260B808CCEC3C12E058DE421"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0873B091BF980929D63B07E49841EA92",
+    "aes_key": "360F5E0D4F6F7F0D293B7C17B02629EA",
+    "data_elements": [
+      {
+        "contents": "13E936",
+        "de_type": 684
+      },
+      {
+        "contents": "151804DFB79EF7222A24A5701D87E68208480E",
+        "de_type": 606
+      },
+      {
+        "contents": "80D6BDDCFBD6B69BC93D93D53C",
+        "de_type": 492
+      }
+    ],
+    "encoded_section": "639013DDE68E24EE100BC81DE740B78E1CCF98911000AC07A89E68FF59661FE04EF27BAA690C9004A89E30884E4411C87AFCDF22A2AE9DFD4358D0990799ECD6D36A392C3C2F382C4056A2029A15D0C6812B5854F70C369A2F942262DE9729FBA65E79FE",
+    "identity_type": "provisioned",
+    "iv": "136FA42D9B2B99B94F546C2C7E449F74",
+    "key_seed": "F11C412BCBA4EC9352B8503D40CC8263F8910C07ABAF1BD91F7058EF6D8145EB",
+    "metadata_key": "64E6F3A83672ED26CB920D57705CE772",
+    "section_mic_hmac_key": "2C1630C0416F925EC56A27E00FD6824259447F4718C8100EBFCE6E2E592E1D9C",
+    "section_salt": "AC07A89E68FF59661FE04EF27BAA690C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2B72A7EE969EC60FDAEC5744A282CA4C",
+    "aes_key": "47A4A0C53E8BF557955DE007FBC442DD",
+    "data_elements": [
+      {
+        "contents": "C36CB8CC680B4B33EA02671DF361BEA7BF",
+        "de_type": 411
+      },
+      {
+        "contents": "6B97B27BDDDD6494FCAB9389B244",
+        "de_type": 429
+      },
+      {
+        "contents": "3024307E3A7DB9BFB1BAE994A324960889F4FBB9B147B6C0EA45ED9CB7A9",
+        "de_type": 370
+      },
+      {
+        "contents": "F9A393167AA68988D465C5D2CF1CAD56",
+        "de_type": 502
+      }
+    ],
+    "encoded_section": "9090136B6CD3A51BF4E8F1B05CE8EEA8A990F3911000F16B5FD28A6DA1856DDB813CBAEC800C900441E630201EC8BDBE9513A703235C64F1DCF0C6D9834310A132BB3BAFA165197DF0F0F1006AA34CF11BFD0186C9C20474029FF28E3F80BD3D4E28435AC1730F4F012AE7E12E4B260C114A645E60DF99E0E29F4C6CF94FF1712176DE6C55A9CB340354954A855D178664",
+    "identity_type": "provisioned",
+    "iv": "46B8EBE1F9E5813B4C1B6E0C2582AB6C",
+    "key_seed": "99324A5E7EAC85B893713A8A71B791F414AECEDA4718E972BAAF5C09C94B4E04",
+    "metadata_key": "540C5DD8EEF491F8E2DDC5D4277D32C2",
+    "section_mic_hmac_key": "8D660846F1432E8E440689560D543DD3533238ED0D71B70F5E7E61A509FC7604",
+    "section_salt": "F16B5FD28A6DA1856DDB813CBAEC800C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7D48E37E2858A787F24D7ADCDEC6B4F8",
+    "aes_key": "0A887E550738FEDE515876E254B32262",
+    "data_elements": [
+      {
+        "contents": "2479050EEB",
+        "de_type": 377
+      },
+      {
+        "contents": "819CE61E221A075010D5306CC7F29BB848A7DBDE1CF044",
+        "de_type": 438
+      },
+      {
+        "contents": "73FA1B3A7FF53255786C2C206501040278A66515021557CD",
+        "de_type": 906
+      }
+    ],
+    "encoded_section": "74901383D8F28210514557CD5238BD75B0004891100055505B97347C3937A4A25E8EF11E19C29001417D67B71ABDF30298BD1958110886A41360A6C45AA9D02B9F92DB44FA632CBF1437D182C83159AC936C13CC75403A5148A34CEC6AFDD77FDF6127A57C584C9715224B26F646038A21B02647AE",
+    "identity_type": "private",
+    "iv": "19F9D2CDE3659048AE4151D6175039BF",
+    "key_seed": "8DA828527A20965322074BA930562586E6463DEE6D45E788F18D66D42EB73AD2",
+    "metadata_key": "0011F0F2FC05ACA4E1251189DA36D627",
+    "section_mic_hmac_key": "B2F4D66EB2C40A21EED774F25B5E8B7C9B7A6BD4DFFDA446DBE766047D32AAFE",
+    "section_salt": "55505B97347C3937A4A25E8EF11E19C2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "31FB9D5AB71199BD3D5A5108CF837244",
+    "aes_key": "4A55292BFFA7C78A73FE80786C9ABEF0",
+    "data_elements": [
+      {
+        "contents": "9A",
+        "de_type": 692
+      },
+      {
+        "contents": "ED6453FA7D5A41DFFA12CA200D301C75661C",
+        "de_type": 772
+      }
+    ],
+    "encoded_section": "50901323EDF88A11D2105770DB1A1ABF5FEC3F9110009AF3A095E594F715D19B7D83511B49219004C7E360A866771654C1D7E3A58FF19045AF2BE397E964EBDD97C959F54316D0F91B61A2E508D5D4EEED",
+    "identity_type": "provisioned",
+    "iv": "1E787E4FAE77DE57752F91B18558A915",
+    "key_seed": "8C34BFAF25C9C03A5B69EFE1952B394E9ABE8326B25B51260094A712B34D004B",
+    "metadata_key": "FE52B2D64213A21002B8C7B956010B5A",
+    "section_mic_hmac_key": "D81C4340E189DD4964D0C19F4A57551233074991CD1AE1D48EFD8138B89C5BEF",
+    "section_salt": "9AF3A095E594F715D19B7D83511B4921"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CB2018262182E6D33BA5AEFB0CBBE143",
+    "aes_key": "10B52CC57509D02CE36E78220DD10359",
+    "data_elements": [
+      {
+        "contents": "308DE91BDEC2875E",
+        "de_type": 808
+      },
+      {
+        "contents": "85C2A96A3D4831F7BD91A8CE97F32ECA38602F5B7AAFCA8E56932F",
+        "de_type": 143
+      }
+    ],
+    "encoded_section": "60901348D690B04EFA3BDF4C3E8DD74A70B2C491100089BFA018D4593699A057C59303FDFE159001E8683BAAA53B40C1F61575F920F120AB62C9011FA9625A8AD44FF8014C65004A6AB6EED92C54C298AED9D6C5786557B2652923E4B162EDD974",
+    "identity_type": "private",
+    "iv": "15094DE55EF692E976BDB1EB2E745CB1",
+    "key_seed": "4D3212178C679CC76E36E4EFD849D100876E4C5C736EE0B01E151B5E35E587D0",
+    "metadata_key": "17DB670A98FF3B44602C3F65108464DD",
+    "section_mic_hmac_key": "447DA33BE77C14468DE40322000D3776B80F7C4C7B86FE52477BADD157B552EE",
+    "section_salt": "89BFA018D4593699A057C59303FDFE15"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "47861A7A891274B6D1655A79F98921A7",
+    "aes_key": "9FEB0CE8CF647F32689CFE9E28ADBCF5",
+    "data_elements": [
+      {
+        "contents": "9479B8564C4C861081E6D40EA07313E136A03B205A37292A9F",
+        "de_type": 767
+      },
+      {
+        "contents": "20FB6D81898875FB84B96904690ED4D15C3CD5C6F17B1B5BBB08",
+        "de_type": 958
+      },
+      {
+        "contents": "23880B754346286380FD62670369A54B",
+        "de_type": 970
+      },
+      {
+        "contents": "32891E939A61CA6F8CA86CFD4BC1B3F1629927",
+        "de_type": 871
+      },
+      {
+        "contents": "335F55B4E34382BF37EBC5A21CA9624E",
+        "de_type": 669
+      }
+    ],
+    "encoded_section": "AC9013204837C358B2A875405D09FBD7B3992B9110007BECADE8EA1435CDBEDBB18E469114CD90045863BDF633745EA129538D9B3BF1263E6B09ED55748179F0FBECA95B8AA38C87CF1DC3EA24AC9955EC83759B362C2A1DF7FA8D251A5F294D9BDF349819D535EE4C752BC42C555C0DED91CA4AF570787FB68A0702BAA497BFB342030E81B8816B76B8D79F380A80EF0B4F96CBB9194D5961198F675C06279040BE4523B520B17A323E342059",
+    "identity_type": "provisioned",
+    "iv": "C55BA6CDFD4A092E9D94E5A89F1AE2C0",
+    "key_seed": "28D860FDABC254A35234D5E56C8F072CCE1A5D1CCF76524FD9E9805DB350C23F",
+    "metadata_key": "B9D69EB1576E56E08FCDABB5FB775F60",
+    "section_mic_hmac_key": "949A61FE8DB02C341BC58D96B84585433522ED90E57D604684380A8A2FB46F9B",
+    "section_salt": "7BECADE8EA1435CDBEDBB18E469114CD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "242B4AC6DBBC48533D80BF1FF9A4BF08",
+    "aes_key": "1964275B07A2CDE782A915674B2C3B30",
+    "data_elements": [
+      {
+        "contents": "B0593CB5472B608EE74D7AAF4483E3BFBB6EC807D36B2D7C3FF2177F",
+        "de_type": 378
+      }
+    ],
+    "encoded_section": "569013168E3FBABE4BD7F9026CB85EFA63BDE8911000CAABF68BB9EA843F3160944F444553419002B2A9BC48B3ED25A01FFA491A2AF4EF727511880B33161D0EA013F792EE3C0E468C3F265030A1B29240F37A7538D111",
+    "identity_type": "trusted",
+    "iv": "98B3F79C48E45D75E4FC709E41D150A7",
+    "key_seed": "AB5F98D672AFA5DBEDD0E7805FC1B4ABE971B54CF02DC2E543267FAD43B35882",
+    "metadata_key": "448C2CAFA3490A9746664729BB8931F2",
+    "section_mic_hmac_key": "63938C028CFC2E53E88F94C2646B8CA4785423173A512051B50D02D2704751FB",
+    "section_salt": "CAABF68BB9EA843F3160944F44455341"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FD0B85F4098C82550A9EC6DA9D240983",
+    "aes_key": "89CF85C86296167F6F1CEFD3C5A4E4F1",
+    "data_elements": [],
+    "encoded_section": "379013540CC96A83E31A5086D355E221B7B4DC911000092281802DC11AD81D24A85EB69CFB689002BA7E7247677B83453C745F87E64F4474",
+    "identity_type": "trusted",
+    "iv": "6302C0AB71F4F52B8D7D57088A495AFB",
+    "key_seed": "B5DFAA6C34894DD3C1371C2D525CD1040228261883DF3C71C446EDA72203921D",
+    "metadata_key": "1B17E9776E56ECA0EF359DF062118638",
+    "section_mic_hmac_key": "5C681440F84C62B8A7342600E73987E8E883A629B0B9791B26F53673D830E072",
+    "section_salt": "092281802DC11AD81D24A85EB69CFB68"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4C2EBCD9668E6E1D431E059EDD16D0B7",
+    "aes_key": "EC3A1D6A13083AAFD8DEDAE93F24FE23",
+    "data_elements": [
+      {
+        "contents": "BD9F8933F20E3D83BAA4537CE0B99A8E21",
+        "de_type": 898
+      },
+      {
+        "contents": "A7F0B8AB76E1F886AF2F54B4C8EA991B",
+        "de_type": 433
+      },
+      {
+        "contents": "2C8F580D0FE48B",
+        "de_type": 265
+      },
+      {
+        "contents": "7FA7C5C31A427B669C3B923BF5E06A74586691",
+        "de_type": 780
+      }
+    ],
+    "encoded_section": "7E90137F75593A7313AEA3845F542E199694AF911000C229127841779C7A5C4295D5969988F0900400A4D8B0D35EDE45A79C0578B7F93A687E7BD4E8B16F53545FBE12C6A99CD768961DF08D544D978C5E2CF6352BD2E2332181D46C4196BC0CC9AAAAA01DC2E32DE9D7F41480769306C071113EDDED0EC4C1E56353E2DBE0",
+    "identity_type": "provisioned",
+    "iv": "DA2728120E5CD3EB3AB342BB30E97EB6",
+    "key_seed": "C644228C08EB7994A9A2F594C73B5A6C60D7D35D6DCB5CC02BD356CEAF43B0F3",
+    "metadata_key": "5DFE12C82CE8EC51C896FF3A05C99A8C",
+    "section_mic_hmac_key": "92C128F03A968B4E386393F1A92FD7D5330A1354BFCEAB5CC3546913D799B338",
+    "section_salt": "C229127841779C7A5C4295D5969988F0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1CAF5E2F6922816F4DFEEDD6EF50E3B0",
+    "aes_key": "05BCDFA12204C89B560461D8D0FE199F",
+    "data_elements": [],
+    "encoded_section": "3790135F8E313E539461B0909160F59361A52B9110001DFB04A1D36A2D1246395348A3DC32B690012EBBABD8762AF1563969C0A4C0944756",
+    "identity_type": "private",
+    "iv": "33953147560A0CE8D874DBE2E43ACE03",
+    "key_seed": "826FC403B24CD2C2C09615C7615519DF4F307F825FBFB6F9FED666C30009E00F",
+    "metadata_key": "27045092CED412FED90E2830E2885062",
+    "section_mic_hmac_key": "CCABF9B74F78DB6DD3D0D52AFA0A682CE02CD0A922BF6DB9C30FCF6AE0C32AA2",
+    "section_salt": "1DFB04A1D36A2D1246395348A3DC32B6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1EF0DF08D58298A0E357D58C46A37EB7",
+    "aes_key": "048A4B2AA3DDE111E4BA17205E03C662",
+    "data_elements": [
+      {
+        "contents": "010756998EB5D06CD09797872B98F792BED2FF8DFDC5",
+        "de_type": 314
+      },
+      {
+        "contents": "2D49F47794A626D6136EC1B131DFBEE037DA81FF",
+        "de_type": 805
+      },
+      {
+        "contents": "3233E2AD33C84C20EE5C873647FF2C973F33C2EE2F",
+        "de_type": 198
+      },
+      {
+        "contents": "F801D66076A8D735EC95383F07DE6E61",
+        "de_type": 151
+      },
+      {
+        "contents": "61FE63986EC6C8AE1DEC1D60",
+        "de_type": 74
+      }
+    ],
+    "encoded_section": "A090135F57C94D2A4431B25F9E82466B7F7F75911000135861848398D4D2D008FB8F23BA28609001597090AD434166B89B3C1D0E8C9D519026C80588D401F0FE4C1024A011246A8C34EFCB98FE65AF5E9143ED806F38AEC55CBEC4E5331527A788F61DBFDE946500BA9CAA2363F2652B11421D386DC1CDC7491DCD16544DE410447903729849F858AB6AC3A538E2C7A08A26DD39D4FEDEB03A89000214260E53DF",
+    "identity_type": "private",
+    "iv": "E824A7EB69FFBDDC98410CA5AB2B2ADC",
+    "key_seed": "7E5E71048A74C3408127CE6A9F9AE1E2C6BB9328824165310E7AB1F2C46268CF",
+    "metadata_key": "7F11E9659E1ABCE558A04E7072106314",
+    "section_mic_hmac_key": "9BD45B87E27D82FBF6C663E8D208F1C033A9751F7C6A1FA7AA9BD3DBAE9C920E",
+    "section_salt": "135861848398D4D2D008FB8F23BA2860"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "56745800DD04412A18EF2923C2C1E5C5",
+    "aes_key": "B9CCB0BD14721C95C4B8A82343B0DC69",
+    "data_elements": [
+      {
+        "contents": "3210F9990AE69BCE70A95FD0",
+        "de_type": 546
+      },
+      {
+        "contents": "4311BACC1959CB4110506351FC8282D2340D",
+        "de_type": 710
+      },
+      {
+        "contents": "ECB77BF5070098A9CA3B5476FA51289575431A",
+        "de_type": 699
+      },
+      {
+        "contents": "456E941BF4E877C7C0D3AE3194184576B38648",
+        "de_type": 943
+      }
+    ],
+    "encoded_section": "8790132B1F4D078DABBB8B2F7F1AA4B2CE000C91100043713488CD976125D5C9021673B54BD49002DFCA02F508566D9987015A4B9EA57B18348BB3BD0673AF96D26EC99CBD8F3710AD07925C202D19CEA07E2A3E174737A01A87BD7BB64E07668D0F73704A3B07D3AE1658C07351FD670EA94CF4F2255C2245B6776B348613C593373C419E33BF97",
+    "identity_type": "trusted",
+    "iv": "E9F160D212F5F23E6E0C7395A49A8E17",
+    "key_seed": "3FA2A3D35B24B6E8BD5CD626AA7B3BFA7C3B4BF09CDDE290728DCEC2F3C4D0FA",
+    "metadata_key": "5926F8FA508EBAF60496AFD11B60B167",
+    "section_mic_hmac_key": "936442541778732A30D1A91F94FC0F18AF5DFF9E328C37594578316656B47723",
+    "section_salt": "43713488CD976125D5C9021673B54BD4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A987A4F50BFD7B25C8A49901CF43A052",
+    "aes_key": "A5595C267A34F4870597DBBD4827DA38",
+    "data_elements": [
+      {
+        "contents": "33118B478C00918923C55B1DC54A31C5BF790066C778B7",
+        "de_type": 933
+      },
+      {
+        "contents": "3882AA0EBE9E8D",
+        "de_type": 402
+      },
+      {
+        "contents": "578FCB48E206B3D6C98EAC841DE9D1AC69D43023E62AD6",
+        "de_type": 610
+      },
+      {
+        "contents": "728D9B96470AE5B5ADF38A1A9A4215C031970DB045DCE4E2BF",
+        "de_type": 779
+      }
+    ],
+    "encoded_section": "9190131C0606B17B45C8BE9367B22C9B395B76911000EF7232F8A53316C10FB9B12BDBF874C290019BDC987EE78BE56EFB2B4DA056A45DE88D0B51BB0BCEA3D5D16437415CBB54912083E236626B501B8892CDD61FC154F5FDD5B6603E0AC315345B0B66C9ECF7A1C73735771D014ABB59AC6F08E89E47D78248067B5D01EB5D86227C029BCC2BB0E6BB44FF9BE8B4C9F6D3",
+    "identity_type": "private",
+    "iv": "CBCBD0C1CFF1E1A93AA4A851A0A412CE",
+    "key_seed": "26FEC8FD9564D289B5D8F52A5D92F3374D16F03EA56BE5F4D7598CE444605B3D",
+    "metadata_key": "7A37107DFD235BC0A8A94FD05AA69EF8",
+    "section_mic_hmac_key": "4AF863F5A51CA185E843E04C8ECBA614DE86D229BDE71D113E280FF688AD0A6A",
+    "section_salt": "EF7232F8A53316C10FB9B12BDBF874C2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B177C937AD0440B365E3C3CED0B4ECF5",
+    "aes_key": "7D40AF7575970745C5A0F7D70E3385A4",
+    "data_elements": [],
+    "encoded_section": "37901300CA2C36D77EEB66F56395B5F88615F1911000190E5E624C8AF7EE88442E6F45D52FDE9002379C9C52C7E36620BA82C76E9F9C833E",
+    "identity_type": "trusted",
+    "iv": "FA5F5B43D79163347C5CEBE72EB7D1A7",
+    "key_seed": "C26723C79C5316A9AD2DA3F33FEAE4A2E88A2A1135E1DE408ACC7EBBC97DA81D",
+    "metadata_key": "4917FB622BBA8489B507FEC52AB3E689",
+    "section_mic_hmac_key": "E0624BAD763E837D01A7DC8475A6D4BD032BF029DA06117674E1E46B41FD59E6",
+    "section_salt": "190E5E624C8AF7EE88442E6F45D52FDE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FA2D6DC34EE5F2448477514FA147A69D",
+    "aes_key": "0E1EE274831F71B301A6E8DD14D07B5D",
+    "data_elements": [],
+    "encoded_section": "379013409E9C337F0F080FA88218EDB7D662DA911000F54BBAAC999D3077F2358E0F5D6F6E189002CAF808A29DABEE53046F9E213AF03D3A",
+    "identity_type": "trusted",
+    "iv": "AFAA0446DB0D21D787121C963804CECB",
+    "key_seed": "26F4220C4937B3B3E8A07F53D536205F49A00890B97A10065CAFC190FC2D94B5",
+    "metadata_key": "E6D25ACEFE69AE468697686404908507",
+    "section_mic_hmac_key": "3772B9EE7DBFD9EAF93856E0ADAF7893EAE501B0AA4319634CC71396051E3D0B",
+    "section_salt": "F54BBAAC999D3077F2358E0F5D6F6E18"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A6280B06DBAACBF7D349965D5BC89A29",
+    "aes_key": "87E8362317FD13D66B3CBD2BA7945474",
+    "data_elements": [
+      {
+        "contents": "6F38BC6C3C51A12F811B2995",
+        "de_type": 995
+      }
+    ],
+    "encoded_section": "469013DF0934F5F3F9B6112BAFE9E4247E6E469110001714054198B85EB13501CCFB5238EDE09001516776B88AA711D867D8E555AB751386189FD0EA6AB0B46AE6FBE32F00BC32",
+    "identity_type": "private",
+    "iv": "14CAD16E8873456B63116AD8D44A1DDD",
+    "key_seed": "795C911C94D65CF52423B7FC80A1238AD2B368E9B63B84EE68B96C254BA9EBA1",
+    "metadata_key": "387D38DB6B421C87D9730E68378C6A66",
+    "section_mic_hmac_key": "527195983F0A34F82CC68E7CD179E0E76A715C42221BB028807E09633EBFA556",
+    "section_salt": "1714054198B85EB13501CCFB5238EDE0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B93D5B221DA6B6630432D05971BD097D",
+    "aes_key": "D145D00B76039023095EFCA293AE5C31",
+    "data_elements": [
+      {
+        "contents": "B85F85569E8BA916DBD401A29DA12D246B9CC1B8A5E1443FAB343099",
+        "de_type": 276
+      },
+      {
+        "contents": "2B31FE53220530EE7237618120",
+        "de_type": 912
+      },
+      {
+        "contents": "016008F70522603B5E4F6B76344F3D52C5A57B39E4038AF8A8F42A",
+        "de_type": 602
+      },
+      {
+        "contents": "B14882D90E5C4690F09CF3E945",
+        "de_type": 318
+      },
+      {
+        "contents": "FA4E574D4E2E615A3FFD2D185AEAF145B2D71925C152A6",
+        "de_type": 822
+      }
+    ],
+    "encoded_section": "AE901319824BDD1F5E974F6DCFDB43A2CF01E9911000B7B0B621D9724F0DF78391C91EA696C390013DF4B00F304BB7398762286C53648CFFC8255329F55930F1897E2C263298D50D3742A38F2FACCA2AD4DEC504F26B0807F402526FB44C656303A5B2C2FDDC0F66E986C1A4622D795D2F69FA1D7897BFD3C51B0C73B41A0FADD795C81A929126AF23142944F6B7D4E8555A23013398C47010884C0F528304A648B5CFCF48DF789BCBB9EF14D2A894",
+    "identity_type": "private",
+    "iv": "EDCD3E09ECC33CC0428B84B84A306290",
+    "key_seed": "F4DFBB6FEAF8AC93BAD4732CDB320B6E862122646F848E275919104C2D42A873",
+    "metadata_key": "BFE267A05480880B72716BE7339D871C",
+    "section_mic_hmac_key": "B8B176BDAFBE2009FAA4061560DECA5E315497E163390EF339DB071B15FB4B95",
+    "section_salt": "B7B0B621D9724F0DF78391C91EA696C3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E12D7AB4AD24788123EBE401FCFE0361",
+    "aes_key": "B9B30EA4622A6F9D8AD6F0E55BA4B942",
+    "data_elements": [
+      {
+        "contents": "3051CF22ED9D25",
+        "de_type": 618
+      }
+    ],
+    "encoded_section": "4190132465A472C19E1132D6920D85859C462D9110002A68F093B202AEE3BA5C5920E1CFD169900148079856121A9BD3EE0EE241012343707145363A5036B2FD221B",
+    "identity_type": "private",
+    "iv": "A8B13B39231EA9901D765FAA4D903CA9",
+    "key_seed": "F401092F0C5FE27E56C9A156F3758F00785479106A65D15BAE8A71EE0D74882A",
+    "metadata_key": "A13B7F9FC15F2BC3CE3DA2FE7A12B8F1",
+    "section_mic_hmac_key": "109B276D0832C380BEB445EE69833504C4C1C36336ED29FD5A968275539D06C4",
+    "section_salt": "2A68F093B202AEE3BA5C5920E1CFD169"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4A44E437E8CB79A4D9CD8B36C741598F",
+    "aes_key": "9DF76674041561AECBE242B96765159F",
+    "data_elements": [
+      {
+        "contents": "6DA30D675509E1A51259DEDA2F11E5B3BF23A8FD",
+        "de_type": 639
+      },
+      {
+        "contents": "87DCB0D2DC1A",
+        "de_type": 247
+      },
+      {
+        "contents": "7B59DEB0A3127B05BB534C71E77E35918E83DF59",
+        "de_type": 589
+      },
+      {
+        "contents": "",
+        "de_type": 101
+      }
+    ],
+    "encoded_section": "70901391E265F35A1E0577B27E896855A176F4911000BD2435F6F73228A37BC92F68AA6A147B90019E7DD0615640A2FE79D4239B6A943831D7C153CE9563FB645E396005A037F61F5F3F9D85A9F028D370A22BE88A7DEF734208CE97931054D7D6002432993830428EABA280091229CA39",
+    "identity_type": "private",
+    "iv": "4C0F11065C0D0A50281895D599B113E7",
+    "key_seed": "F3D388C12E7FACB9A9A10D71841128E5AA5B62203C4D9288CEF583FD0C973281",
+    "metadata_key": "36BE0AAEB9570FC44C86D948C112D2C9",
+    "section_mic_hmac_key": "6C082598D6635262737FDCD8CF2C84F0564A88B0619C46B1087BF10C19D3DF60",
+    "section_salt": "BD2435F6F73228A37BC92F68AA6A147B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AEA8992BCF56D8C977B4F23CD035215E",
+    "aes_key": "FDBDC8FC03D9D4BD00E02D7E95BC806F",
+    "data_elements": [
+      {
+        "contents": "29FD64AA2AF020C8C1DA859D8F",
+        "de_type": 274
+      }
+    ],
+    "encoded_section": "479013F445F2D544BA05B19A3476E945DFE97D91100072C4FF46E7236884EA75F40693BFF42E90048B3C5601202F9764171E03FC75A45120BFE756EAFF35D3CE64EA5C749E93FA52",
+    "identity_type": "provisioned",
+    "iv": "48F82C64D3B561EC02F68C129E705F7C",
+    "key_seed": "3B1B53F1A643F064C11C5FC0289D3AC60314493366D5286899B4398A579F5D64",
+    "metadata_key": "B1CEED2817D2815495A72C8BBB856EA0",
+    "section_mic_hmac_key": "B4155D5CEBB91D838092A22CE031FC3A18C751BD1C93277781EBD05EFBEA5449",
+    "section_salt": "72C4FF46E7236884EA75F40693BFF42E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7844FD878C399C26ABC3F5898F1EEE7B",
+    "aes_key": "26EFB718B9B26B32C37DDBCEF467D023",
+    "data_elements": [
+      {
+        "contents": "F17E9BF1E3F0713D0F30F2D160",
+        "de_type": 538
+      },
+      {
+        "contents": "D18840BFB3F67A8CA354755541827C27BA67804B9379D966",
+        "de_type": 121
+      }
+    ],
+    "encoded_section": "619013AEF9942B3FCE71119B0158F3B5CEFFC19110002D3887C9CC4BF9B5678676E908D6B65390010ECA727C2BEB2D8BE03CF1AF18057D68A28F3C87E05EFB8C46FD8F70E81C44BEA67C5B744AC821302A345A2A078260A815FE69088127C8B377B8",
+    "identity_type": "private",
+    "iv": "849FBD20C4DEE438141A13D97554D787",
+    "key_seed": "5162B090AA207D037425C2D3A1627A01009FCBE33076984181B26E948630B08F",
+    "metadata_key": "792BAA366C23A2878F7D5376867E03A6",
+    "section_mic_hmac_key": "1235C37B0CA4D707242A8DC6CCD79F80AA9DA1462E6AE7729F3C2680F38C3D5C",
+    "section_salt": "2D3887C9CC4BF9B5678676E908D6B653"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F42DCC02D50640A2F658B83FB4E7CCC7",
+    "aes_key": "616EF3104C743DEF83DDB73A4054469A",
+    "data_elements": [
+      {
+        "contents": "03383E9297",
+        "de_type": 260
+      },
+      {
+        "contents": "9462914DA98DB75E09",
+        "de_type": 412
+      },
+      {
+        "contents": "1DE476",
+        "de_type": 421
+      }
+    ],
+    "encoded_section": "519013D4E125FE1E65626076AFFDAD82D5BF889110007F4552E79D984C742B9DADB5F74E95189004D3AC96826BB9BEFC0F1E79081B62A2FE3B1E9ADB08AB470AE6F93E8B7A809190D6312B28EC8D81AA0801",
+    "identity_type": "provisioned",
+    "iv": "D7A0BC0D7FE96922460BA73213646E9D",
+    "key_seed": "3ED27ED5664D454F921BCCD0869CE1CC7B3BB85E7585375DCB33FB0650EF779D",
+    "metadata_key": "EB3C8E526E6D9235391E827F2C6E231B",
+    "section_mic_hmac_key": "BC311E65AD6DD040501783F1664655BABE513E3B907292CAFF9BE29FFFF4A448",
+    "section_salt": "7F4552E79D984C742B9DADB5F74E9518"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "362715986AEF2115C1E99FB44EFA1C75",
+    "aes_key": "C59A28A212B4FCDAC1E16462C5B1D165",
+    "data_elements": [],
+    "encoded_section": "379013A2A1BA7A82B6F9CDA55E5FCCAD4257AE911000B55714FC13B8BD3C6B8C0A7C668F1BBB900270E9E6041661BF6F78C6AB5322EBEB23",
+    "identity_type": "trusted",
+    "iv": "0D644B9401404857EE408775BC5A52A4",
+    "key_seed": "1568B68A9D59E4C9482EB671122CACB6663B00DE1215CB0FDF68A5B32E186478",
+    "metadata_key": "54A22FF50922686A95E211D724463375",
+    "section_mic_hmac_key": "46281BECBD442DFB726A2AAF39230B5EFE5018E343BC551B2E48A5750E83D8F2",
+    "section_salt": "B55714FC13B8BD3C6B8C0A7C668F1BBB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "505CECCB0BBF804F3680A901A0A84A21",
+    "aes_key": "4CC11507027A2925184A972BDDED37ED",
+    "data_elements": [
+      {
+        "contents": "0F4726CABAA7A44D817F00",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "4590133CEA393A75D831272811392FAF4A3545911000D776BD1C0C14FEFD55DC62B967C2318190041F745F67713849A775058D883A469627A056A7C207EED34AB4CE3B710878",
+    "identity_type": "provisioned",
+    "iv": "BED30BD783D7571B1564D14C3759997E",
+    "key_seed": "BD9A88F8FA79FEA622C56138525FEA07EFBF53800B3AE4CDE7C6CA69B2A0D9A0",
+    "metadata_key": "2BE32D599D847EEF1023E437601655D7",
+    "section_mic_hmac_key": "01D5077099F1BB11915BF29E3CFA7DEB563386EC878CA136DD6F0D1813ECFC2A",
+    "section_salt": "D776BD1C0C14FEFD55DC62B967C23181"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C295D404B8FC5E3737BDF1FD586EB54",
+    "aes_key": "333AC5989888D159B59BEE541183F1B4",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 376
+      },
+      {
+        "contents": "0EC58152447FB55294C763C5310B90C4B1BDBDBA",
+        "de_type": 897
+      }
+    ],
+    "encoded_section": "5190131DC5A94934AB3C124656E7E19C9D6D74911000D77197B01CECE72E38B7055E1B2A4E9190028EA817F765B15EFE6F9B1273E5164FAF6082E6F6CD317DC41D9C1DF860C7F17D7E205EE1D4ABBEA59EAD",
+    "identity_type": "trusted",
+    "iv": "380397FC7FC735D90D60C40DE97D64BE",
+    "key_seed": "58FE4D29790740442D5A1BD2ABB189DFC42B41E4507A0517E061063AA1BFF5E1",
+    "metadata_key": "E4FDCED3B8BA98A09E195E2521274AF2",
+    "section_mic_hmac_key": "22E7FBE87FE2B9FD4D24A0F8A6EF7603DA4AAFE314655DC486D46A197F95DABD",
+    "section_salt": "D77197B01CECE72E38B7055E1B2A4E91"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9B60494234512A3C9B6A5D72533BB7A2",
+    "aes_key": "8924A8A345E22836490AD4494DB516BF",
+    "data_elements": [
+      {
+        "contents": "FAB3FD79DE4BC47D2C14B8B99E",
+        "de_type": 615
+      },
+      {
+        "contents": "3479BDDCE860",
+        "de_type": 667
+      },
+      {
+        "contents": "18D959580DA781",
+        "de_type": 786
+      },
+      {
+        "contents": "615DB667E6E281BB9A3641",
+        "de_type": 610
+      }
+    ],
+    "encoded_section": "689013C05D97E98B3B8BB1E3DC27D55ED975259110008EE527EE8F974D8E0D0B5B3A665965A090027C5BF2D01D8AED7FA473E8B2DAFED89D2EED05E3D6065A114F2530D30AC5FEB37A439A32AF1D037C6C8EDD5B12505354D0FED97E72C125E079EAAEDCB44CC22355",
+    "identity_type": "trusted",
+    "iv": "8602AFBB2A34225261DC074174B8E670",
+    "key_seed": "CBAFC7E710BE96D3F94FF216AA7F2933E66B1F7C5A57DBAD6E79564DB908CF06",
+    "metadata_key": "0A8E7FD1F928402D5ECD50BD80D10A66",
+    "section_mic_hmac_key": "3099BF02D5FD168EC01E036738BFB8E30BC0FB4AD407AE3A08F8D8239F64F54A",
+    "section_salt": "8EE527EE8F974D8E0D0B5B3A665965A0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3FCD698F9489E37EBD7F6A4D3224C33A",
+    "aes_key": "F99653068BD2A63FB36578720F9F63C4",
+    "data_elements": [
+      {
+        "contents": "ADBD7E7559",
+        "de_type": 555
+      },
+      {
+        "contents": "48125DBEEC95494C0577757CBADE",
+        "de_type": 909
+      },
+      {
+        "contents": "E7AFB7E6690AA0FE3747EBE2F251B606A034A4D817B5",
+        "de_type": 14
+      }
+    ],
+    "encoded_section": "689013BB941D4C7CE5BC91FB3D4E6041E4AC9F911000ECBAF5C243C3B5BB209210D84B821A2A9002926509475302C3EC09089E68268572F1525C6382809682E9FF8EB06701D647A5AD7B8038E06C851B7A76FFE98403A5C7DB36893D5CF95FC349E98A177FE6C90CDD",
+    "identity_type": "trusted",
+    "iv": "D237427573873BBD2A6B372FB9284963",
+    "key_seed": "90D41DF3F409B5A2C6895CC449ED835C3C70E509551F8524DAE13F3F4E42A429",
+    "metadata_key": "86FCB812E49A140B17C7803C51121583",
+    "section_mic_hmac_key": "853B7A9AF337E2EBF2805550EE36447233D006CECB4E4BF7D4085C875F1497CD",
+    "section_salt": "ECBAF5C243C3B5BB209210D84B821A2A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0AD3C84FC7C58D3037142AF41852CD42",
+    "aes_key": "85571EBC9483AF47E86FBAEC31C8F2C5",
+    "data_elements": [
+      {
+        "contents": "D133239451",
+        "de_type": 901
+      },
+      {
+        "contents": "6C2762576EFDFB6F86A41D4FBFED",
+        "de_type": 422
+      },
+      {
+        "contents": "4510C7CEA7E09A03E0B7AE2EBACE9177BA7B1D46AD94256574",
+        "de_type": 922
+      },
+      {
+        "contents": "DFDAF2",
+        "de_type": 207
+      },
+      {
+        "contents": "C5335141F74C8E52E4F2230872366E83D2678B8C373D03987665C5528EAA",
+        "de_type": 844
+      }
+    ],
+    "encoded_section": "939013013988FEF35F4BCD059C3077FEB6E19791100091327AAC510808996400403A8CF444DC9002A0A7721297142DF288D8AF4E70874CBCFF74B11FA183925FE595C24F1E676AA8D158EA2605B283FC22951A389C097CF4DFEE6CAEB829CE8C387E3826C59499AA6FE04BAB5726249A4DB982986B1FDB3BAA5772D7EBDC16ACCBE061AB6914C61DA1F98B8ABFEE3360633E106A",
+    "identity_type": "trusted",
+    "iv": "82B513DD8F4CA0CE7C5E0E4889E860FA",
+    "key_seed": "5A29295C59212A429AB6EA78F278EAF3ED825F57AB0D2A129F52CC277B1B1CC8",
+    "metadata_key": "EC7EDC4ACB3143F6427A9519FDBA9416",
+    "section_mic_hmac_key": "80D950334DC3B27A0260AFE2ABAAB53C5E3C1EE022289A4A81D8933620814D90",
+    "section_salt": "91327AAC510808996400403A8CF444DC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C6C90D3B1F749744590F016A23507912",
+    "aes_key": "5921AACC16814BC770EACE04A011DEDF",
+    "data_elements": [],
+    "encoded_section": "379013C51A5B8064CCC91CBF70A7BDDE6A35B1911000CB58CD4EF7644C8AAE7BCF0E9123BD119002B868633C18CF476A943747630391F0B4",
+    "identity_type": "trusted",
+    "iv": "7D48634F169987CC2E53CE148B93BFF1",
+    "key_seed": "77691B80B2C0CA3BAD73653F05B84C0C31704FE6BCDA1551B055B1286F805F86",
+    "metadata_key": "0820719A54E2A8D41FCCBE04F6A19116",
+    "section_mic_hmac_key": "A9AB5A8E48AFA1C80E86E9764088305C75F440B1CCFABFA9BBAB981966EDC225",
+    "section_salt": "CB58CD4EF7644C8AAE7BCF0E9123BD11"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AA5AEF76D88EB7A98704D6F786978A79",
+    "aes_key": "D0B5E2F53665D4A49213F8E3CBD17238",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 130
+      },
+      {
+        "contents": "008A8A351B53EB339B92051ED484AF78D7",
+        "de_type": 212
+      },
+      {
+        "contents": "EA",
+        "de_type": 970
+      },
+      {
+        "contents": "61305021F575FEC5427EE4E5F007CC548C7D3DF098",
+        "de_type": 496
+      },
+      {
+        "contents": "819984253481F9F903BF58DA2CD7E426E11C681DB803",
+        "de_type": 526
+      }
+    ],
+    "encoded_section": "839013C5B60ED430A58C53A974CBA2B932B7DF9110002ADC62BC5A15E27A5D040BD13364457A90029A1C3316152852BF28F18AD8EA58D79CD5CD5460B1F6FDBF6A6DE7982068DBEF5A3F0DDCA5DC1AE558681667C1E896DED773B85E637CFD76AB97C02B7476D058AE259383001072DA55A825E8D9AD8B52640C2C17938D087A7C2C5376",
+    "identity_type": "trusted",
+    "iv": "F11001063B0781ACC0C9A56FD606E2DA",
+    "key_seed": "321B859773DD3BD05F2CA1B0EB5A8B2D50A2CF4800DABB6137B80E0B9E77C53B",
+    "metadata_key": "9F67F3ED285AA4A2065101F5170DC3F6",
+    "section_mic_hmac_key": "38CB19DA21A127986862AD06AE17603FAD6FFF450BEC8915C71765995E3C9E1A",
+    "section_salt": "2ADC62BC5A15E27A5D040BD13364457A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "85033540DAB893A56198E6C61D126215",
+    "aes_key": "FA3F91590A9FAE50C85DC060118F34BF",
+    "data_elements": [
+      {
+        "contents": "C1BD30E9571DFD4A46CE538674AEC77965",
+        "de_type": 302
+      },
+      {
+        "contents": "E0F4F75A38F47A611824C3C7C36D66EF4F66F7B386ED5055586875",
+        "de_type": 357
+      },
+      {
+        "contents": "45531A11802F333B",
+        "de_type": 496
+      },
+      {
+        "contents": "4884A8F995F73A415EA5AE2554B5",
+        "de_type": 935
+      }
+    ],
+    "encoded_section": "8590139CA7E3ED77C285D887178284CD648077911000D916BE31B39EB0B2C3C8627643F4064C9002352CC9CF57BCF7235F98A537B7DB5615B5DAB258536C24D51FFF0170A18125ECFA058FB63858701B8E98F1B8757F7A95194C86776C49C517F8D30868299BA3221D66BF197D6416A1CCE5044CBBA2EF9D42EA5DABCD618FB117B75E948A18",
+    "identity_type": "trusted",
+    "iv": "8B5180935197933E61C2A44911D15A10",
+    "key_seed": "8E6C7E27B061CB997479DE0B6369D0D06A74EA34B3CCE46E4C8E184D2F5670A9",
+    "metadata_key": "42018C7AC5101C0258523EF8C7F0A568",
+    "section_mic_hmac_key": "5583258D33DBCEBDD9E51458998869791B41A2F08F182F70B1E3291D42F82E25",
+    "section_salt": "D916BE31B39EB0B2C3C8627643F4064C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D3AA4C688EA0AD1918F1C9D71C75562A",
+    "aes_key": "580E68ACEADCF22076DFF033AE22E2C6",
+    "data_elements": [
+      {
+        "contents": "EBE2B615",
+        "de_type": 8
+      },
+      {
+        "contents": "CD5A0B2223F0E8D0F2C927261AA127",
+        "de_type": 597
+      },
+      {
+        "contents": "254D8F45F8E5265C7CA01CB5EBE36D2F5E",
+        "de_type": 980
+      },
+      {
+        "contents": "CB749F9F2474F2E1431C822E853FAD78854FF8D2D869E13E",
+        "de_type": 82
+      }
+    ],
+    "encoded_section": "7C9013EAD8F6468C5270D4F1F91C2FF6E4D795911000DB917CEFE3F87ABD3C6FE091FE7080169002CD415457D2264207614B3AD25C4684BD245F66E24FF1D32DAB7A5CF5E08EB4E4BFCD04485F639B90758CA40BFC86FB226273E95315E6640032AD8F42F5D6EAAB52D22E3067FF073AA6721FF5075A35E9892785157D",
+    "identity_type": "trusted",
+    "iv": "7CB9B3466AC81FA752E73027C9E7DC1E",
+    "key_seed": "F8649F5B5D4C6482A42BCA722751F19356663FCA5C79D85D635893696BF2ACA1",
+    "metadata_key": "DBF7DBD16D60B0AE863E8EAFEE60A8C9",
+    "section_mic_hmac_key": "A5D6A3FD29C470C7C27916035F632C5DCAD89CD7312132C6FF3941E8CDEAF515",
+    "section_salt": "DB917CEFE3F87ABD3C6FE091FE708016"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EB6BF655A2E80D1AF8D36AED56B6A486",
+    "aes_key": "17F445E7EA205A56027250C0346A2E71",
+    "data_elements": [
+      {
+        "contents": "014E6E7BB0D40BC7FCBF9BD3",
+        "de_type": 977
+      },
+      {
+        "contents": "A66F701F2B9A8451EB925DD5DFFB18273FD156",
+        "de_type": 400
+      },
+      {
+        "contents": "0B730FD3630237F45E3C6EA47F8EE72A69108C94BE72",
+        "de_type": 922
+      },
+      {
+        "contents": "AF35622DF4032B16BC69AA13859D54A3CE8A8EA0A637FD7B",
+        "de_type": 873
+      }
+    ],
+    "encoded_section": "90901303C3DADA1F1918061D9922E9F5508C449110006F4653653712F88848A16560CB9D4B289004814FF4D9FFA580804263DA2EADEAA12FEC181D131B19E561E2D3811571C796B15B584E6DF5C7B5809A3C61DAAEFBA0496D897583A8A8CF84CF5727911411A9B075C3F4F2ABF2565F7991C893638FD68729C425610B61FAAB5CFF4CDF3E4E7971C8C6DAF7BB92D08D30",
+    "identity_type": "provisioned",
+    "iv": "189A717116D2613604B3E642AE28A02C",
+    "key_seed": "706710F7D3107D9B7DE125A04EB20972E73151AB942360289B3BA4F23F7BB3A2",
+    "metadata_key": "9D3E61673F1406C976DB176EBE07B535",
+    "section_mic_hmac_key": "5907214C4AB21EEC7F1ADFF46C72E2F7D4141F5D7FA3D4A31B4E698530499066",
+    "section_salt": "6F4653653712F88848A16560CB9D4B28"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D78B7D217B2BAD5FABACC1946ABEBB4C",
+    "aes_key": "DDE0A6C66AC49FEA60647AAA0F51B3AD",
+    "data_elements": [
+      {
+        "contents": "7DE71497790F3C87A6B1",
+        "de_type": 591
+      },
+      {
+        "contents": "73168472EB83D78006B65795611C22B92E8C99",
+        "de_type": 797
+      },
+      {
+        "contents": "6FA0E9114BBD4F65224DE85910F489C4AE20BD64AB2184C32ACCAB",
+        "de_type": 266
+      },
+      {
+        "contents": "DC41AE5DE9B12057ADFCDA797B077BEFE31DD0352B",
+        "de_type": 666
+      },
+      {
+        "contents": "45E2BF06FD93AD81D32E391A18F6ED10939FB5D598925F060413E0C9",
+        "de_type": 864
+      }
+    ],
+    "encoded_section": "AF901361D877AB393135E03356064C028A5FE0911000573A6F5FB7DE8D281C473C3ADACA77FB9001EC4FEE7B442EBE106D892C85074695F12CFC7F7D03C692EB54BD467D8473F76D6C3F62AD849A82E3D4F0E2FC9B15AF8604C435C11880EC4690DED0BA67FD4D7ABD258E281C094F695843C59174BC5C59EC82C93D72BD9E9DACD4A8DCBF4B36DCE9F849A729A832325F85C097122E08CFA360CC073F8022F10C7B76E1FA8D67E0732A33DFE0259EA4",
+    "identity_type": "private",
+    "iv": "0BFF6C36B9AD3D46241C48C045404441",
+    "key_seed": "B595F2E119E405069858063A2D71A34C08CAEF8842CACFF2841103C33476B8BF",
+    "metadata_key": "81EFCD94E99E534D60F2189BAC02854B",
+    "section_mic_hmac_key": "F03A05B7EE67BF56BC9539D8102D174B556D970122EC292EA0AB6BFDB8E36A1B",
+    "section_salt": "573A6F5FB7DE8D281C473C3ADACA77FB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CBD7C88BB7E820DEA7629856F507C7AB",
+    "aes_key": "F7D24E7DF3FB39E4C01D50213CA4427E",
+    "data_elements": [
+      {
+        "contents": "B5427785105E6E551E41111DB9A5",
+        "de_type": 941
+      },
+      {
+        "contents": "27B605AB2C3FA4B3F91BCE5D3968A289",
+        "de_type": 241
+      }
+    ],
+    "encoded_section": "5B9013FF3841C3001F80A54E975483DB6C5D74911000F896663B53DF517B14CBF9A3A99BEB60900264CF1670CD3161CC7A9E07274C49BC76F0F30169FDE2C493E0E572AB011E1DFC60F52CA98E495C0F21BC81A5634B35D55B3A89E2",
+    "identity_type": "trusted",
+    "iv": "3F18203F323E679A3F665D4D7AB780CB",
+    "key_seed": "7C4425B244F0C63E398983EBACE4C33BE1DF8904348ADD1731379EDC614820F5",
+    "metadata_key": "CA10051ACA62C5408E9AD33AC0B6D62E",
+    "section_mic_hmac_key": "B923EC80759AA88B679B309AE389AD81B113BD3AD7ADFB1582575683E717CC35",
+    "section_salt": "F896663B53DF517B14CBF9A3A99BEB60"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BE0D6935B5CBCE532B644EBAEB0CB4DC",
+    "aes_key": "09F96BCC2EDE21309F12AF572473394B",
+    "data_elements": [
+      {
+        "contents": "76",
+        "de_type": 700
+      },
+      {
+        "contents": "83BFD32351F59A0C6C0886AFC296BD48C1E442AAA8CFEFCD1AFEBE91654D",
+        "de_type": 673
+      }
+    ],
+    "encoded_section": "5C90132605C5751F7E217A7E36D2C846C5DF8891100004FF20FC90A2D3B71931FA83687E046090045D73462C825BE89AACA4AD1EF3CDC4C5A6E3C257787693C51547CD927B09438CDECDC82610E04A0ECB445512CCD10A98ED7547A975",
+    "identity_type": "provisioned",
+    "iv": "0914932394906428A0D76EE9D518875D",
+    "key_seed": "67FDE8780AA1EEFA293EE8897234FE2C0D5DB854BF6A3215609DC44A601D448F",
+    "metadata_key": "E77492D379A619F8A40D54D91A5DBED5",
+    "section_mic_hmac_key": "F84CC8323ACBFA67420AB61721F4039EB2859FA694DD8C9FA15A9A5C5CE6365F",
+    "section_salt": "04FF20FC90A2D3B71931FA83687E0460"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0CE7F59C7D7A29C744084A1E346B308D",
+    "aes_key": "2740097F0EE9541B3FE75A1580500594",
+    "data_elements": [
+      {
+        "contents": "B3CC25",
+        "de_type": 323
+      },
+      {
+        "contents": "39E0F88DCD564592199E1D2F582BA79D054C292C6DBDAA0343",
+        "de_type": 501
+      }
+    ],
+    "encoded_section": "5990139E6B783FB0F70C3902C8A67B9019BBDD911000E3240073A3AB269A8AA57F0122D70EC490024E4CEAC73CE78AA7C17623FEA674A0F892D0DB5FD0DB28392CBDD7FE48F675E5946FC44FEAB8CD4683CAA251AA2084098657",
+    "identity_type": "trusted",
+    "iv": "3CDFAE3DA464D67F574AFDBBF69161B4",
+    "key_seed": "31F9C997DAE4B7C28566810532ED77A9BDA311E0357161B3933F6116C0E3AAD6",
+    "metadata_key": "DB75222950D33438C7D8BFC500EFE5CF",
+    "section_mic_hmac_key": "BAFA2EF3A4EC8A7EEF7B2E2EC74EB8C89D51D7589D5B316EE19388755639839B",
+    "section_salt": "E3240073A3AB269A8AA57F0122D70EC4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "73EB253EB94944B28A0929DB906F3965",
+    "aes_key": "B528A116686C84C53B6A71680E846ECD",
+    "data_elements": [
+      {
+        "contents": "F561F2FC",
+        "de_type": 347
+      },
+      {
+        "contents": "729617D310A7107E6B62763A15E8",
+        "de_type": 436
+      },
+      {
+        "contents": "26F23C2652A0978220A0CD",
+        "de_type": 679
+      },
+      {
+        "contents": "BA2CA34BF2F0FCCB4FE3C4FD0D8911F3E5E01837D810ADBB63F091B96D",
+        "de_type": 487
+      }
+    ],
+    "encoded_section": "7D9013FD4ED421EBA8A62819978D7E11C4292C911000880D39B609325E05472E3C5D8C6999AE9004358528DA38735AC35115FBCE268A37BF76F6FA4A2E2FB9C39F97E92EE39799487B4137A8D7EB669ABFCC1A46970CE5ABF8D0EF13085463535C4F871184E000260ACB47D637BE03A8FE21D3A302487A51DD89AAB1BCD9",
+    "identity_type": "provisioned",
+    "iv": "320152979988F1BEC69DBE6A55447602",
+    "key_seed": "492F19D4AEB5EA017282ADB13CF7BF4D5A271B78F75AD1BA202B5E3EADFDAAF4",
+    "metadata_key": "956FB218D86E0B1022B9D9EF9557E0DB",
+    "section_mic_hmac_key": "A1FE43F2B654C7609E652267C50E47E5006B9ADA95AA6FE9CE74C0A7688CE14F",
+    "section_salt": "880D39B609325E05472E3C5D8C6999AE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4DE153E88AE9F55EA216E8460C5B4AB3",
+    "aes_key": "437A29371741838743A218D22C151D97",
+    "data_elements": [],
+    "encoded_section": "379013EA44AEE04512C910A2DD265ADFA11056911000BBE190D2D9010D8B82EB6885F11888B8900494CB0BE562B2A7D547945AE25C11ACD0",
+    "identity_type": "provisioned",
+    "iv": "0D790B1F58DC583F71CC470CF2639578",
+    "key_seed": "E6A5B4A42797FD2443733A51FE08E0E20A97142163D82E17AED64395E2E25A1D",
+    "metadata_key": "EBE57E72E39DFF45F46CDC67406C79C0",
+    "section_mic_hmac_key": "2E2E7B8051FA5A344F74D36B3881951D476E291DA95F619AE54FDBA38F23E7B5",
+    "section_salt": "BBE190D2D9010D8B82EB6885F11888B8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F6B8A28AA97515625D1BC8744ABF581C",
+    "aes_key": "F4FD755476BFB54A67D333FDE5F21D38",
+    "data_elements": [
+      {
+        "contents": "11E6C336306364DF2C6FFE3C44296C238FBE80A7C39660",
+        "de_type": 553
+      },
+      {
+        "contents": "F895D8637D37F08C2FBD63460CC66EC79D61DC7814A8317DD9",
+        "de_type": 142
+      },
+      {
+        "contents": "023536380CB2B465115601F0549C1E225ED0DDDCC1A5757CE504348EB006",
+        "de_type": 426
+      },
+      {
+        "contents": "90163807A994663D6BA798C051E17A4FFE136343F70CEC",
+        "de_type": 711
+      },
+      {
+        "contents": "34C1D3B746DBE55C999FE970A78892E4312154893D",
+        "de_type": 686
+      }
+    ],
+    "encoded_section": "C0901358E24D5D9BCCB5631A933692B53ACC60911000041BF71ED6F92D89A7437595D5870FC490025408C683AD58FA66667A80D6B9A16201FE80656CD7F160DAE3A0E5D6C56059E87075977DFF54C593082FCD681599A8BEF62A9152700490EAC32F0A230A4EE201096056827AFF77B0E691B83E0ACA71195C60C372A7063A662D750D1EAF2B97BF3B7BEA594B7E25A2C0449AC9001C4CD601E5329D30994932854A78B8678AABC7AE2CD0A40590EDF91F91C0CD4BC5658543887CA9CB9E36EB0D",
+    "identity_type": "trusted",
+    "iv": "A55C04DE4370A9539D0054FEB77CBB41",
+    "key_seed": "A0F4708912E13265DC407CB2E58EBA265C246741CFA5AC92C5F45003E9DC3D73",
+    "metadata_key": "0755F41DE31C1DA14183BCE6ED2A793E",
+    "section_mic_hmac_key": "45DD4376D86A64ACF88C521BEC32316AD023B10200514E6C1200E364FDBB1C89",
+    "section_salt": "041BF71ED6F92D89A7437595D5870FC4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "80B55AAFF717D29EE2150527E786FC22",
+    "aes_key": "89D2E5C6EF19C4798B18A5AC956BA8A8",
+    "data_elements": [
+      {
+        "contents": "C925910705C708716C2A2E2FB9B7",
+        "de_type": 746
+      },
+      {
+        "contents": "7441B7",
+        "de_type": 798
+      },
+      {
+        "contents": "5616AF27BC9705EA841EE82D8A8CE2A4E4F4BE51D4",
+        "de_type": 284
+      }
+    ],
+    "encoded_section": "6690131B198CEAE84F43E5333491064B8C72D19110005A8BC686BC40CFD016A6549C3E3220A79001E09548FC1B654C438A8B9949692224C81D87813B39830B110F4B5FE0F9D58BCEB7CCEDF442B77A17839F79F00A0AD51DAC75D63B7B137949665C55C8EEFDBF",
+    "identity_type": "private",
+    "iv": "C87B5050A21E0BEF4DF28C8E2E86B9E2",
+    "key_seed": "62127F82AA866333831B924405D6AD1B36112C39901CA63820FF8CAFD841184C",
+    "metadata_key": "863325C4DECDBF4CC7BBFFF32518528C",
+    "section_mic_hmac_key": "5E35357D5B711AE75EBEB698D5FD818E165687A6C941F545EA7A54486433D521",
+    "section_salt": "5A8BC686BC40CFD016A6549C3E3220A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5CE67FEBA4AED76BB9C04DEA24F5121D",
+    "aes_key": "CD9B63EE81CCBC1A6FED8AB873DA6F9C",
+    "data_elements": [
+      {
+        "contents": "0E0FCD76BDCF900F512961B856A7A8177BD66FFBDB33F4F5F44459B009B9",
+        "de_type": 153
+      },
+      {
+        "contents": "C45B234AAC5688FC4196",
+        "de_type": 952
+      },
+      {
+        "contents": "CECEA9E54D144A541D",
+        "de_type": 299
+      },
+      {
+        "contents": "A5837AEB6B56F1C33168919FCCCA914D7668DA65107E",
+        "de_type": 583
+      }
+    ],
+    "encoded_section": "8A90130DF91C2EA62A4347A347AB4FFFAC68BB911000AABDF7BE435EF0A8DC2F5ECD0099C2169004FED4F8ABDB95DE277D5EA8CC2CDE85DA2089ECFD798827F8F757DEDB8EDEA4EE5A53A41316D8D3DB792007477A232506EDB88E6E15434D52978B671850915B0B4E91713CA3584FBC1E92581FEB81750D378A6E0D51835A8F3CA203DE4272FE41F2230F",
+    "identity_type": "provisioned",
+    "iv": "6AD1D35AF9DCFA8846CE08139586BE4D",
+    "key_seed": "3EB0A1FC103DE614F09A1A555E9F83A7B80B87712014B0CAD6C4ED25F52B9B33",
+    "metadata_key": "488C3EF28CAAB88A94CD82AE8EDFF615",
+    "section_mic_hmac_key": "2B44CC0286E9B946662DAFCA116AE8AC7464625D20BA4972F9CD5E09A226957D",
+    "section_salt": "AABDF7BE435EF0A8DC2F5ECD0099C216"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B9DEA2501303F34F7BAAF91B3FF6FDFB",
+    "aes_key": "6EF9C4550455F6B122A9842E4FF9563F",
+    "data_elements": [
+      {
+        "contents": "59E50862FE4633D3ECF91C3EDB72270FCBB5",
+        "de_type": 286
+      }
+    ],
+    "encoded_section": "4C9013D4619FC79CC7834813D1C2A27ABF790E9110000F0469848994E26F09CA0C6C440462749004F0A1A5CB662AE19B307355144B85F4EAF30056D216F9D2C0DE09D233F4C85B3A39BDB355E7",
+    "identity_type": "provisioned",
+    "iv": "EFBEDF6DCF3B97786CABF592BAF9F5D6",
+    "key_seed": "F0EE8773F58564994D1F3BA077E7A3990228BBEA25A527ECEC620A62279F0319",
+    "metadata_key": "FD3B6FF7375FFFF1CC29FFEAF9A4C2EB",
+    "section_mic_hmac_key": "7123A128F2D15A893EB34A5114774DE3D49285942274ED8F5F3FE198D58F3110",
+    "section_salt": "0F0469848994E26F09CA0C6C44046274"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8D8E8645D7B0FD0E9E36ECE388CC4F6B",
+    "aes_key": "CE9FFE75B22C96DA0FA83BC6AE435B4A",
+    "data_elements": [
+      {
+        "contents": "4C84EA9E7ABBE9805FDA1AE32592092F414A",
+        "de_type": 446
+      },
+      {
+        "contents": "E2013312F6",
+        "de_type": 100
+      },
+      {
+        "contents": "7647A9C883BD",
+        "de_type": 427
+      },
+      {
+        "contents": "",
+        "de_type": 434
+      },
+      {
+        "contents": "9A48A6A9C9FCACC1E8BC284FCF5A368125",
+        "de_type": 953
+      }
+    ],
+    "encoded_section": "739013765C4523E0C5459C2573E009ADD07AEE911000B52AEE3E5778873503DB2A7374157D499002C6032636BCCE82535DE0210C953C742AD0E29C1E270461E7C0D27DD7C81E402CBE795FA9F76971E0138E2533D0D47ADE1F673E73FB92A528A0BA6557AAEAB58AC529D3568B70625AEEB89E06",
+    "identity_type": "trusted",
+    "iv": "26E8F98BEE4A9526EA91AA37D9290E4A",
+    "key_seed": "C3F16DFE3A2C64284BF2ECC6CE660B8245B60CAF9C6BB378EC85AB0D2FBE70EE",
+    "metadata_key": "653436D31BEBCBB3B1A13D9118541883",
+    "section_mic_hmac_key": "2B3BD1A84191B22159C5FB85BD543C3673357A0F35AE67C6850E59CBE30AA17A",
+    "section_salt": "B52AEE3E5778873503DB2A7374157D49"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "034097967DC080A36D23F899968F81FC",
+    "aes_key": "FC52BBC65CB4A29005CDBC12244BB6EE",
+    "data_elements": [
+      {
+        "contents": "E911676F5B4E9F61",
+        "de_type": 566
+      },
+      {
+        "contents": "",
+        "de_type": 455
+      }
+    ],
+    "encoded_section": "459013C48F03E367BD6F91F0B051FB2D8791F3911000C713EC5C07873E7CD62C20B0DBCC23AD900203A6EDBA4B5584A004D3241D12A40A7D6249D1D9530358F146EC5843C68E",
+    "identity_type": "trusted",
+    "iv": "D2564B7B324F39EC38CA5B83BF40FE80",
+    "key_seed": "B0F6316F4E5AF9E14F4D2E0D83FF526A2FC1C243058E6388BC5DF379438AF84A",
+    "metadata_key": "2E0E3C928A480081465B77B49A94DD56",
+    "section_mic_hmac_key": "556C7EC0D6D6B7039D48F792BA144CBEACFCC0DBADFA48216F164BAEC8D63590",
+    "section_salt": "C713EC5C07873E7CD62C20B0DBCC23AD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0BC6ED4E4FAD31DE8B82828233A12365",
+    "aes_key": "3FEF727B599B4459455003A24642403F",
+    "data_elements": [],
+    "encoded_section": "3790134EF72ABDD3AFCBE1EE92620E4DA93B7291100041A9598B504C6C06A001007085FA9E0190018DDABDE4D015767D58FC48D349221A74",
+    "identity_type": "private",
+    "iv": "ECABC8AC7BA091020DC32E9ABD83EA8D",
+    "key_seed": "EC81188441C84DC2ABDB353BD825AFEE28068F397BD3E69DD9A1F51E5968CE7E",
+    "metadata_key": "D22BD70DD5645FD54109C0EF7BD0230C",
+    "section_mic_hmac_key": "B5B3BD02791CF9B92F1C14CCD4DEBEAC2DA75B7B1E09F9621358BAFDFA90BC66",
+    "section_salt": "41A9598B504C6C06A001007085FA9E01"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BF047090110BE62932CD9AEEA0A52C48",
+    "aes_key": "074D26AD25D20FB1036B4249E2E65B8F",
+    "data_elements": [
+      {
+        "contents": "C6A2397CF77000BBD2EBE6823B067AB8DBCA0B286C5CCFE016F1C4DD",
+        "de_type": 268
+      }
+    ],
+    "encoded_section": "569013EC3001BC38635A32132EA9F28B7384A59110001C583A0044B9A78DB388334F9CC28A6990047EE274D8D6CD6FF1A0C80003FEE139C37C699B106C421F4B6A2CC6519D742A54C5858A398EF3F71D3F41EE45CD0B66",
+    "identity_type": "provisioned",
+    "iv": "5FE0E2D415A4FAA3BCB05F7916A8DE70",
+    "key_seed": "D963624712D4A0EF3595BB91D3AD2544BDB5CEEE55BCD98BDFD6338616138018",
+    "metadata_key": "8DC8B52AFCC6441510745EBD7B64088D",
+    "section_mic_hmac_key": "0086E6595B16AE4D2DF1F4F0392D7454659FE056469DCC4A77F97CF03FA64580",
+    "section_salt": "1C583A0044B9A78DB388334F9CC28A69"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "70F216A7594C3FF0E50939B5F220FE79",
+    "aes_key": "F01E3A52411A7B1FED0BD6E66293A36D",
+    "data_elements": [
+      {
+        "contents": "7405920409",
+        "de_type": 27
+      }
+    ],
+    "encoded_section": "3E9013725A39A695F3E9F46AD197C21A99C2D7911000470C1930342C821B79454E20E5AB565B9001CC0690B842E78B7D6B78BEBD4211D467553DC5EDDBA2AB",
+    "identity_type": "private",
+    "iv": "0FAF61AA59E9CBFEDF4980C75B398AA9",
+    "key_seed": "179D0580612390420788D334FD020577FE02C7BD687DC505D187D79F08043268",
+    "metadata_key": "50780E0D785234C8EBF3AD1DB5C75B78",
+    "section_mic_hmac_key": "4B1B5D53E4470367C14FBFE4F7125B93600BB28C06C92793E1C64EA61627D5C1",
+    "section_salt": "470C1930342C821B79454E20E5AB565B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B3BFD568BC29834E2E7F3464E5C51A4B",
+    "aes_key": "FB487D058A744D7651D78F35E65719B7",
+    "data_elements": [
+      {
+        "contents": "DF9EF9CB0BFB15675BBB5538BEAD105177B941FC3D686B",
+        "de_type": 797
+      },
+      {
+        "contents": "7D24B6A84E",
+        "de_type": 884
+      }
+    ],
+    "encoded_section": "5990139FC1B788D94802986DBAEDA37EDBA2AF9110006BEF387F51D62868738ADD58FDE218249002E262DBF23D1632384B901434E093C6998AB986226C99C8F7F6B3F9380322ECFD251D8B8BCBC6F9D2F197CD856C2BFCA6799B",
+    "identity_type": "trusted",
+    "iv": "D1646EED1BE182D8F658BBA68FF28CD0",
+    "key_seed": "0DD1FE126C5BAFC3E252D7DA0594D99F343A912E0621148915369B386348172F",
+    "metadata_key": "12E52DC79FFF5748E238F667C4CCCFE1",
+    "section_mic_hmac_key": "B5B5BE70DA1B6E67300A257C9568D1D777263CCE944001D4571F86966237C266",
+    "section_salt": "6BEF387F51D62868738ADD58FDE21824"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "043890F126BF8FD56249E2C73E59800E",
+    "aes_key": "F372FC7CB4D3900FBB9C6B41921ECC89",
+    "data_elements": [
+      {
+        "contents": "14BB8E9B7B",
+        "de_type": 389
+      },
+      {
+        "contents": "0988FF91EFBA62AE84619FE5A71978B457EC739AE265D455856CFE",
+        "de_type": 392
+      },
+      {
+        "contents": "EFB5AA412C20472C54F22CA84AFA",
+        "de_type": 369
+      },
+      {
+        "contents": "2A6E32C24C3CD0AB1CABD0010F49A94664BE81399CF39DE9C8D225DFC67E",
+        "de_type": 408
+      }
+    ],
+    "encoded_section": "8F901394A25D3684C8351BA133D7935CF78FCE911000E97B66077075042EEFEDE4ED8B42744F9004BD060A6FE04F67326A3316058E3A354F32195D06920642A21D1F38DB9DAC8BFAEC958C457F0B5DE19626033705374CF5BBF3A4E2AB1C1197A411DAC42B636511827FB43F9BB83D28E1FB5F3F359DEAC8E6D4EEDCFE8496C6A27EC348C2778E1BD004BCFC5A154FAF",
+    "identity_type": "provisioned",
+    "iv": "16339A85CD833FB55944A135968EA806",
+    "key_seed": "E7C4E1D06521AAD6962A498287BAE9EE92361BE1FC7DF062564D0107649F6FFD",
+    "metadata_key": "B23F3EF58B4E7CCBC098C105B9D50E01",
+    "section_mic_hmac_key": "C37C26624B9F567661B253E21D89336D23C21ECC122FB83359DFE86203685E45",
+    "section_salt": "E97B66077075042EEFEDE4ED8B42744F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C063C2D07532B482BFDEBD663EDC8265",
+    "aes_key": "78886059E7F87F6478A15B1CCEB129C3",
+    "data_elements": [],
+    "encoded_section": "3790135199391E9E94DE46457DEFA2423C3BA6911000DD4628D624F0B29D1B9E298F42873FAA9004F3675D66D5129706C9DF1FF21F4ECBC7",
+    "identity_type": "provisioned",
+    "iv": "25A3BF84A38B4DC18D6DC400D33D85C9",
+    "key_seed": "6465DFE7C9EA8D4F1BAC260D41067AFE04D5F1417A8A2BE49FC8498C98675331",
+    "metadata_key": "D786EC2AF4CEAD98F381671FB41224B6",
+    "section_mic_hmac_key": "8131F5C4D353A851B8763D5A92396040F06246EAA72F1F6DE549E2D35A35B57A",
+    "section_salt": "DD4628D624F0B29D1B9E298F42873FAA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C94BA491AB602859E1F82F97DC7E31E0",
+    "aes_key": "F61ABA231C3721C2BD49328F3D090AB3",
+    "data_elements": [
+      {
+        "contents": "6C1BAB85BB39D714EE",
+        "de_type": 738
+      },
+      {
+        "contents": "28CE85B2A00672F37691D02111DFD1BFC21D",
+        "de_type": 105
+      },
+      {
+        "contents": "16A72D416A0D6851BB0CA8CDC2B07848B6A06A",
+        "de_type": 225
+      }
+    ],
+    "encoded_section": "6D9013C6D572F4EC76769832B2F2F3AC584A599110002556D8F2392B4790EA6FA9B70B18D3AC9001E64E58B31B1F9DA5DEED6593631E650F2B9C4FFF9C5105ABA3332D06A64436DD5B2DD2F3ED517E533889DE660536562FC3A0546FCEFBA559E85DEE0684134A3DC15C472539A7",
+    "identity_type": "private",
+    "iv": "EF82962F49EA98E5C08EB77194A2DD03",
+    "key_seed": "ABCB15E7264D97216AC3352B5BE3DB9678F9DFF1C5C9F62F8C911BB7D83DCC04",
+    "metadata_key": "6EC93C5286500B4D7E15754A4125AC6C",
+    "section_mic_hmac_key": "55B357AF96262F52A3F2DADF540144862D66F19D734277102308554E4A803C63",
+    "section_salt": "2556D8F2392B4790EA6FA9B70B18D3AC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "845E8EC3A0A25B2298E6431A91E189BD",
+    "aes_key": "54D20D731E4FF2CA206D66C95313ED43",
+    "data_elements": [
+      {
+        "contents": "C6CC76056F0FAB3CEB159B6C76EA0A",
+        "de_type": 781
+      }
+    ],
+    "encoded_section": "499013628E1C5A4B6BEEF1429B72C20D781CED9110009C067D1D8A1AABCCEACAE28F4441548B9004B8409502A72B1873614B1D9C3EF45B1610D462314B0FC36CDA1CAD8BB9EA670B76F3",
+    "identity_type": "provisioned",
+    "iv": "1AF8A3DB82F8E98F43EFD67273112AD3",
+    "key_seed": "723EB47D34E9D5F54CD657EA4B91BEDEC4508F5423940653B13CA3F9C0E5D0F1",
+    "metadata_key": "399A68C6D9EBD1C7136879DFFB4BB661",
+    "section_mic_hmac_key": "E42B114BDACD69D449050F295B9F8E1989927928C3DEFFC2C4B1B712156EC7CA",
+    "section_salt": "9C067D1D8A1AABCCEACAE28F4441548B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "23240D3B2662A867CAC09B37002EC151",
+    "aes_key": "7A6059F6D0A60CAADE7FADADF8A6DC28",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 946
+      },
+      {
+        "contents": "7C190D653583EE",
+        "de_type": 324
+      }
+    ],
+    "encoded_section": "4490131EEB5DA191A2CFBF9FE477A71C5B16AC91100023AAF945414E18B7B2DFA5CD8F56E1889004C3139ACE2449BBFBF8A129F85AB3959B7BADCD320FD0F0E5D14981B986",
+    "identity_type": "provisioned",
+    "iv": "AA2A519687C28CCF377AFC1E31A5CD8B",
+    "key_seed": "532906986C81E3D60E295AC315B7C414C3CE4CD64654AA7940223E5B0366A38A",
+    "metadata_key": "6B3994E58566DC0822C91AD7A9233DE9",
+    "section_mic_hmac_key": "2621946D28448B0FE1D49F42F14DBB771D036981A8BF60D68183E48F1370CE68",
+    "section_salt": "23AAF945414E18B7B2DFA5CD8F56E188"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1BF5D55B85DFE348E916009BFD94E23E",
+    "aes_key": "BBDCE9CD6AC6B4D05A30F0FFD12FCA85",
+    "data_elements": [],
+    "encoded_section": "379013C80B6B02142DDD201B73820ADF0B2E34911000A321FFAC8CD880B256A741A077BD1C4F9004894461CD30CFCB9D823BA848BB442098",
+    "identity_type": "provisioned",
+    "iv": "1125CA91BCA3D2C39E84F864736D3243",
+    "key_seed": "C06F738CE619A69F7C35F0853EE53BE4567F1AB96CF2DE1D42271BBD4A3FBE25",
+    "metadata_key": "9BBD434403D6B68CA9D0B2ECBE1391D6",
+    "section_mic_hmac_key": "072FCC113795FD057E811E3573E219B3F4F01C886808E060B2D8CBFFD05E2A39",
+    "section_salt": "A321FFAC8CD880B256A741A077BD1C4F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8FFF31D9E05C67B63EFE52C70B562B2D",
+    "aes_key": "69C6A32CEE99AC1D008C633D0322AFA7",
+    "data_elements": [
+      {
+        "contents": "775E02A1DD5313C05333CA56BF884A55C3C4A9",
+        "de_type": 997
+      },
+      {
+        "contents": "EE659244BCC7E04720E5D5C3633793B3A2F1801127960F4E846C800B17",
+        "de_type": 303
+      }
+    ],
+    "encoded_section": "6D9013167EBF9EFA9F7450FC14B8B4755652999110005A21C2E9033C4D92E3D0E343265854A99002617AC1869E187111E631A2E97C28F8179C94488578C3798499A6D1FCE3CF60D4A0265F81DC3CA0F43C49B70E8E00F7AAB6BE5E28175C99E4E868BEA0239098E94DFE43C3D830",
+    "identity_type": "trusted",
+    "iv": "EC1631F0E9992D01661973E10CAA0598",
+    "key_seed": "D304FF6EFEF40CB4745AD0C2112348A40F5BC04D3D91EBC2A55783A2F8869F82",
+    "metadata_key": "9EB2E5F2B16FE3803E28A17ACB2E9A56",
+    "section_mic_hmac_key": "64449AD305C717B9BC1C186F0BA4B8415CB93C34EC52608A7173EB512FD55EF0",
+    "section_salt": "5A21C2E9033C4D92E3D0E343265854A9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B9D3A1A05CBF5F5E1F69C7E362BFF3D3",
+    "aes_key": "7A609D1D39BAE76BA999840CD3FDA233",
+    "data_elements": [
+      {
+        "contents": "64A1E6D6457FADD30243A34640CB96D018D8",
+        "de_type": 759
+      },
+      {
+        "contents": "8E7893F12DDF3CAE263C8231E284580D78",
+        "de_type": 433
+      },
+      {
+        "contents": "8EA89C3191D3",
+        "de_type": 979
+      },
+      {
+        "contents": "726840E37DBCC2F0D910874214C21C",
+        "de_type": 516
+      },
+      {
+        "contents": "72F6BC7F5BB01EDDFC7892",
+        "de_type": 165
+      }
+    ],
+    "encoded_section": "899013B1B9AD2D96FD2C5F6C56A2AB23C6549A911000B4CFAF758BA05C70F0086695B8654E719001E317BFEE6A2A6D5DAE263832DC0A0357E3346EAFA060BEF5A39ABA906872C947DEBCAD36F176043900199327F70F11104B1E80438127A3EFAA37B2FC3B8E800ECA8FEB295316C6D3276F428119CD6BD748E5DAAF5774D51FCA31E5193AE9BC5BE3BC",
+    "identity_type": "private",
+    "iv": "F786B13173BD39A7BD5DEDECB2C6F86B",
+    "key_seed": "FC09B7FB045850F61BAF9F55BF5BD22944884C77EF5ABCDB29C98E9957760AD8",
+    "metadata_key": "F7F75BB418B3BDE041DB96A09A16B777",
+    "section_mic_hmac_key": "F08A8BF5C5B1E23F20301843ADBC149B886BCB75F017886AF29F123D686818AB",
+    "section_salt": "B4CFAF758BA05C70F0086695B8654E71"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "020BC589FF43EBC8F13AE2E43BBD7658",
+    "aes_key": "8F3E597366BF11B9B9AF34C266085D81",
+    "data_elements": [
+      {
+        "contents": "A08381B564B135F3322D33E64262AF5A6FD68A085B6908B5602602084C5E",
+        "de_type": 89
+      },
+      {
+        "contents": "9A76EAC96F1758FED565E92354C68AF267536BE3522D8D932EE5",
+        "de_type": 303
+      },
+      {
+        "contents": "FE73D94D1454A2BDA8F978490437A2BF36C2E72BF6487D5733B2E29F67",
+        "de_type": 907
+      }
+    ],
+    "encoded_section": "949013E74B20DEE21DBA2ED1608245C1510777911000A0EF20B9AB805B7746172E5C1CB9A42D9002C03E4EFEB9EBA55E204FEC5F7DC17B6021EE9C652A15486FD70278DE23455D858971C649F749BD2B072A3B573F12F841087ED3516549ACC27BBA69A8C39C36A33739760829F1815F782C784294E64BBE2A3B42EF1752F177BAEB5871E6F913B958F8E11E23DC292A20BADD025E",
+    "identity_type": "trusted",
+    "iv": "F9282C23FE33849259D66A40165A895F",
+    "key_seed": "88EAA2A88210FCD0A7C7A5B5F55583BEEA33324FCBD8F2530F7E8EF3D499A823",
+    "metadata_key": "81FD9DE2086417EE30A0A49B89CED2A4",
+    "section_mic_hmac_key": "E6954F5FBAFD6C29F2387CFE59C53D49B355501FF14351445F3685BDBB85C64E",
+    "section_salt": "A0EF20B9AB805B7746172E5C1CB9A42D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A022D2A91854E61C50C482B8CE339FEF",
+    "aes_key": "84109A4F76D0C313388D16CBE43CC8DA",
+    "data_elements": [
+      {
+        "contents": "E4E2A0D0943301F980E26F",
+        "de_type": 718
+      },
+      {
+        "contents": "AD9C95407E",
+        "de_type": 733
+      },
+      {
+        "contents": "E8",
+        "de_type": 49
+      }
+    ],
+    "encoded_section": "509013F3745670932BBB42D2C70A6D17C94DFE911000B39AD48FE7075F779F82D4E60C333F029001D708D6C505181C687C84F36F2A3169DFBD020DF19D5BB72AC8741EF60610A7B174A2FEBDDD22C9C7F3",
+    "identity_type": "private",
+    "iv": "D1E556A9A5AA49009D49E19983DBA615",
+    "key_seed": "7727741471C2E6CCEFE4EC70253B8788D228A3FE618117C6E76EF5E3309D2231",
+    "metadata_key": "E1569AA98E6BDB4D6DC9A5BD46195ABA",
+    "section_mic_hmac_key": "D461D7A01671D7F83124856867DC04B96F62EC0E4DFBF70CE9CAB556972531D9",
+    "section_salt": "B39AD48FE7075F779F82D4E60C333F02"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A7C810623229157F1FAB904377B695CF",
+    "aes_key": "5EB951C2968A33F2E7903255731EA4D9",
+    "data_elements": [
+      {
+        "contents": "39973FEFF2D8D62FE6C27BE3AF9B227662461635BB",
+        "de_type": 97
+      }
+    ],
+    "encoded_section": "4E90137D2063093EB07801E876E8716FE29D95911000CCD6600A1D0FAAAE97C25B5140102A33900435DC34F63BE56B05BC152597764EF8048746085FD4D12E96EE6A3BC13BF1A4E3BA669EBC3F8EC6",
+    "identity_type": "provisioned",
+    "iv": "9D738D7B215640FC45EA0AD04FDA685C",
+    "key_seed": "98BF712F93903FFFEC4E0EDC656D07CFC78D0ACDBE0607EF19A2A1ADBF4173A9",
+    "metadata_key": "9D83C372D120920E197FE972404E1C5D",
+    "section_mic_hmac_key": "A65DC4805D1B2611ED71FF80FC7D40384E3ABC352C533422DCD5299228179FB5",
+    "section_salt": "CCD6600A1D0FAAAE97C25B5140102A33"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "70BC4889A9135FEF8558DC85DA869313",
+    "aes_key": "2F78A0C2E0A662A6AFB80C6170329DD5",
+    "data_elements": [
+      {
+        "contents": "4FDBB2F43A4B80C48905A081D73F0AD23407A50A96FB872ECD365C654A",
+        "de_type": 5
+      },
+      {
+        "contents": "238F48BB7F230CA3231C0B8800F7",
+        "de_type": 463
+      },
+      {
+        "contents": "7D77BB7E5EE7DF8D11DEDABAF5",
+        "de_type": 493
+      }
+    ],
+    "encoded_section": "779013CD09FA4E2906A1B0497103C8B958A4B19110003848C27BB68D7751BD109AA798A5A1FF900111FFDEB247F0705D5D6FD0CD158A38EF11B40163ACEC63E1279BABC6736F3F940CACCDB6600BCBD5652625ED21844D854F0BF2467E5EBE5DF2FC8BE2CA6D6A18A5B60337D94F0E57EAF8B2E3EF417901",
+    "identity_type": "private",
+    "iv": "177479EC161C64F5B9015DCB22DEDDD2",
+    "key_seed": "067F5D95027B2A7BFF1C653CAC3040EA4DCA805369AA6EDEA735899CD2BCA30F",
+    "metadata_key": "67E79ACFB7EF2C6FA6357C154450DEC2",
+    "section_mic_hmac_key": "63F5C63B2306E218536A099BA9EBFD0EB16FDE66D04E8B917608F0CB39BFECE6",
+    "section_salt": "3848C27BB68D7751BD109AA798A5A1FF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0B62C9D1874CB2A9361CD266ACFE0943",
+    "aes_key": "3D59EBB776EFA1803E495CAA387DB727",
+    "data_elements": [],
+    "encoded_section": "3790131F6A24505B1F4420A388289F7F2BC22D9110008C40367DF7D629BC40F5D01CC680C53F900181FB9E16124D32FC426C1C4E4B2ECFE5",
+    "identity_type": "private",
+    "iv": "D7A366700B7C0223230E9E9677361443",
+    "key_seed": "3A4856049F6612A949BCC3647B5BAF36F9D71D0FDE813B824D5BCE2182B5FDF6",
+    "metadata_key": "9BAD67AA712DF9C5639C1D2398125C40",
+    "section_mic_hmac_key": "9D2C92937531075FD9D09129497BEF9111C0375C6302A80BBA61F0BA5CFC81D8",
+    "section_salt": "8C40367DF7D629BC40F5D01CC680C53F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7DDCD2740B158A2EDB7842390C73B169",
+    "aes_key": "BE02546B3D28D0CAFFA8600033802837",
+    "data_elements": [
+      {
+        "contents": "D095D2747F4A2EDE1623963AB0B48A2649E60C0255A11200044BBE",
+        "de_type": 885
+      }
+    ],
+    "encoded_section": "559013245407838E530FF4CA8D651DE3F4EBB79110003D4B11380D6AF601B651492FACECEA0B9002434F17846C767176E501E462F1E88F6256AE42BAA69F62FF748B1F10704C5ED834105F6CC1374C2A53C200BF8EA5",
+    "identity_type": "trusted",
+    "iv": "C6247D6BD8C642673B8FA1C533A9263F",
+    "key_seed": "35CBFBDEFA43F8AD872C6EAF8C743076EFA7F938EC2B3D02FD034A6045536605",
+    "metadata_key": "0359B617E2D475D366F7B2046DCB7383",
+    "section_mic_hmac_key": "99DE9888F8AD547E181420DFE74D8412E13836BEA0DED59264102E68033BD0B3",
+    "section_salt": "3D4B11380D6AF601B651492FACECEA0B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E644DE907183C18EB11F7B4A9C5D0725",
+    "aes_key": "4CFECD89D5D364E176F67F127F1FB0D8",
+    "data_elements": [
+      {
+        "contents": "A630BDB220762910",
+        "de_type": 443
+      },
+      {
+        "contents": "E10F32B0",
+        "de_type": 298
+      },
+      {
+        "contents": "6482387D8BBAD195CD",
+        "de_type": 918
+      },
+      {
+        "contents": "1BE384D2FE8053FE99",
+        "de_type": 555
+      }
+    ],
+    "encoded_section": "6190136FB3B3D8620CB4D3928F608BFBCC069D911000D48208F2E81A395B338FAB5BAE6C760A900459356113E165F119D38778927C6790DC5146415F4F254995E2EB98BD322DD85C4AE24D1F0CF4B0C26C46A06E5B72851A6ABD1D3EAA170A13F5A0",
+    "identity_type": "provisioned",
+    "iv": "8F553BBD4CBFF05A75898D3D39462728",
+    "key_seed": "64ECEB1A3107369944DFFD3FFB9BB33D5177269BD7EDC99034888AAB415CF7B3",
+    "metadata_key": "A6327CBE37966B45B0047F3B6D2387EF",
+    "section_mic_hmac_key": "D3BB8A8AA1510F67E77EAFE45F79E4685F26D90E5044AF2EC02FE104CB06C0BF",
+    "section_salt": "D48208F2E81A395B338FAB5BAE6C760A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F3BF8CE4146FEB417CCBEFF0575B6816",
+    "aes_key": "F7298D234884DBB39C5326BE9CE58BC5",
+    "data_elements": [
+      {
+        "contents": "1BEC46DF0FFE5BE99BBED7306A",
+        "de_type": 533
+      },
+      {
+        "contents": "",
+        "de_type": 224
+      },
+      {
+        "contents": "EEEC",
+        "de_type": 899
+      },
+      {
+        "contents": "82BB76BD6A80BF3A737E72086E8E992490971CA48C9A8B7220FF90",
+        "de_type": 458
+      },
+      {
+        "contents": "55E08CD9F499CF88B5778CD24C71C22B8933750C89",
+        "de_type": 940
+      }
+    ],
+    "encoded_section": "85901373651DA9F5520F901CB346E81A93BD0B911000536258509CB9BA353DABBFE54FA4826B9001485BDE12ABF28AEFAC16677B0520D2E545CB2237FF8822E97EDBEEE819385C1B09F12B982B0B2E2C0FB579F5294CAAD96D2DFBAA0DA210D867665F12A1F0576520BE4B11929C4FCA001D5AD95ED181FB8CF17BE130AC553C59F8E688AEF6",
+    "identity_type": "private",
+    "iv": "17FBACA04AE79C76C41CD2B82CD59C11",
+    "key_seed": "A5BCB398B80D10B1FD2423DA6F342D113AEB13C34668E640A968A8733EFC942A",
+    "metadata_key": "70E737B2D129BD7E2DF862F71B2E369E",
+    "section_mic_hmac_key": "6E3223166BF4E3A185BECDDD34CEB6D8C9D3A9E698AC5B8864B83423E825F10A",
+    "section_salt": "536258509CB9BA353DABBFE54FA4826B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "61013AED46837E354AA29735E8CE2453",
+    "aes_key": "DE2D317CB7AA56B32B262326965F8A9D",
+    "data_elements": [
+      {
+        "contents": "E8AB270D18C57B0ADC1CB3DC4C7449DA",
+        "de_type": 335
+      }
+    ],
+    "encoded_section": "4A9013192B45282D4FA290760B781F1613535591100075C506260F5D61EE14504C42FA5FAE13900479BCB215EE244D3C5BEA6A61E13FBFF3B3D49A9573819FD6929BECB1D8BE0DE085D6FF",
+    "identity_type": "provisioned",
+    "iv": "D8B19C28725DB25449B16530FBDECE2A",
+    "key_seed": "A2D7FA151A0EE90ECEBA6D4F4BF7E85A2C1CDCE93D705CF59AC6A10D2C098240",
+    "metadata_key": "8E9063E9449722E3852DE6C07E799974",
+    "section_mic_hmac_key": "1F9DE18CC2C895DB4D880DE858CE05A5708B2FA9B8D3C69D208A966D5B066D4A",
+    "section_salt": "75C506260F5D61EE14504C42FA5FAE13"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "05690CCA9ABE110947D18BB479062B32",
+    "aes_key": "DA0D102B8953A994B76B1719C0041647",
+    "data_elements": [
+      {
+        "contents": "161AE3D8B65862FE5AFC2D03CDD680F5",
+        "de_type": 268
+      }
+    ],
+    "encoded_section": "4A901385B1AC6803247FC7614C67F32266B3D591100079AECBDFB7F3F4301BFC7D23602E11329001FB8EC97CD186A2D2ED230FFE2A5288D7C82FF3C0E7317BE06C93C0453756B23A423135",
+    "identity_type": "private",
+    "iv": "83DDD162BE71C736E65BDE8181DF7A81",
+    "key_seed": "75BCE8199AE92DC7A3DE9EA798E10186ADCE6473ECB78562F185CA6F3E8E98F1",
+    "metadata_key": "A455F115BA43C061EED4320B1C4498FB",
+    "section_mic_hmac_key": "BD92C0272C1D2CB10BB6506C8C721BCB0B54EA71EC83C8213698C7228CE3AD1F",
+    "section_salt": "79AECBDFB7F3F4301BFC7D23602E1132"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E23B4C0D7BFB6FD8E6E0DA3261F9A3D6",
+    "aes_key": "1768A8ACB8EC354B0FCD2ABAAEC64760",
+    "data_elements": [
+      {
+        "contents": "23004D740BE1EE3B4B5A8DA3426480",
+        "de_type": 756
+      },
+      {
+        "contents": "EA0303D125",
+        "de_type": 669
+      },
+      {
+        "contents": "7541304A",
+        "de_type": 83
+      }
+    ],
+    "encoded_section": "579013390C93D780F8096F0D413AF90C632988911000814D8033C76A6E1B6B008F2E3D460D2C9001E94C0EAE1E10ED82B94C0A7ACE66BBE7BDB943A9BA6C1F2EEEB493A823DCDDEAD974FD717F8490E9B48EA52393E343CB",
+    "identity_type": "private",
+    "iv": "B5FB42C3108C8AE313ED69685648CAB8",
+    "key_seed": "29A23FD4ED5E66BCAC1ABFBA0E9FB6FC0059A6354C42936C4599A355AE3AC76D",
+    "metadata_key": "5A814D128ADA2D20663F759F0232DF46",
+    "section_mic_hmac_key": "2C69B4EED4E52D3EFBBAF37E9749E2C1660B73A951A75198191F82AFCEA2191E",
+    "section_salt": "814D8033C76A6E1B6B008F2E3D460D2C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1839D2C3BA13C005F5C45F0BDA96ACB2",
+    "aes_key": "A030D853E042AF8055935DF441217CED",
+    "data_elements": [
+      {
+        "contents": "2376F195FB1505C80FDE28394E2E398E2902A3CC84F9AD09FD221D10F0",
+        "de_type": 53
+      },
+      {
+        "contents": "99",
+        "de_type": 181
+      },
+      {
+        "contents": "4A4C47C2A18D15F2E4D1A89C1D4EF686C9CC40C1BC057C2CD1",
+        "de_type": 45
+      },
+      {
+        "contents": "C7BCADDBC0EAB47E6D22F5A11B59398E7354B1448FE9CCFD229A",
+        "de_type": 814
+      },
+      {
+        "contents": "FB62CE7C1BC06EB95602F99308D0393E10C833",
+        "de_type": 433
+      }
+    ],
+    "encoded_section": "A8901383E429525E34D29E92BD41227C23F2259110008265D5A57D3486212EF93FBE297FA43F90014E2A55BD81FAE9BD3FD32E7D6CA34D0840ABB8E12CF3BBD435270889D2E9B4286DB13CBCD73441D3433DDB05265FB5C691D77CFDC464121E194262F852EBF42CB2150CCAB45F4080AB5CD824BD0AED6EBB82EA5A26B26FD7B03B7F6E2459F48B6FABFFBAD719787564A505FBAAA90C5BFEE1FFCD39EF97847DB321CA2198E722B9",
+    "identity_type": "private",
+    "iv": "AEA7A390C40F8095ACEA1D8ACEDF3D12",
+    "key_seed": "C1C16A9F6FE7E6C00A780ED9A2BC1C487F9268805B474D3A1FFDC74FAC8B4E11",
+    "metadata_key": "6B2A826AF6C92F037F6FD7B91BCE34F4",
+    "section_mic_hmac_key": "39FBA69424E69CC24A79B0F09FA447BD5165511FD98631380A8B261F683A3C6C",
+    "section_salt": "8265D5A57D3486212EF93FBE297FA43F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BAD2528C1B7CB990D7AD3DCDCE3A23DE",
+    "aes_key": "DAEB2E5F4394BE918AF351E93D7A77D1",
+    "data_elements": [
+      {
+        "contents": "1597B826140F36A5953776AFA20014CA8CFBDE245C91A34D92C1",
+        "de_type": 53
+      },
+      {
+        "contents": "06D2005AEE6B77C800743724DF",
+        "de_type": 439
+      }
+    ],
+    "encoded_section": "639013E912574072B31B6DAECF1F281DB12A539110009BCEC0F8CE3CA49BCB70A4A232293DD99001DC051CFFD8482B3B4ADA0075EB65E1E16DF2E1136C057CD58A1045527F080A6F16497C198E95951DF5C4D854E167E80A1E5D0D2E62C1B3996095CB63",
+    "identity_type": "private",
+    "iv": "876E6DB1FAE9D6AC1498605E2D69D5B8",
+    "key_seed": "33A85E4AB836104AA7F44CA998500558FCAFC256B2977A1F1C8511785DA10B08",
+    "metadata_key": "49E5B24F9AB621DA9F7F7F2884A1C25F",
+    "section_mic_hmac_key": "C3F6790A2B82BA0B17EA93FAF612E4CD3D11451A4D28765F843B73D7EF7B4293",
+    "section_salt": "9BCEC0F8CE3CA49BCB70A4A232293DD9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A6447AA427EE701C9AA690F9984AEF6",
+    "aes_key": "8873AABC9EA3D48F6EEA776A7E15A0EB",
+    "data_elements": [
+      {
+        "contents": "D9B0253A3E1BE351",
+        "de_type": 903
+      },
+      {
+        "contents": "BEA6C715E6A06EC584526533",
+        "de_type": 5
+      }
+    ],
+    "encoded_section": "509013165A35A8BC76B529EEDE11257C4C929E91100040F88999F3934B36602BB79919F5EEB59001A6E1A6C4527EA8EE03C10B0E2FA65C0836BA3E179E5A8122A0C01CC4D63FB3BE89FB9E47C75EEDF481",
+    "identity_type": "private",
+    "iv": "0B977324602019C876020687AC0FD0F2",
+    "key_seed": "EBD257397FD934222D84245BC1EA73A7D14BC02B82D2AD05E789FA92FB021796",
+    "metadata_key": "4366982F4848A99069342C098FA0D5E1",
+    "section_mic_hmac_key": "CE5958CD6416383EA202CA5AF15B0E810BFCD99488AB311A17A895A5AD3C105A",
+    "section_salt": "40F88999F3934B36602BB79919F5EEB5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1AA084C1AF2A39928A561D1E9013CDD1",
+    "aes_key": "9278ABB20D9C47298A0BB81C3BAA05C3",
+    "data_elements": [
+      {
+        "contents": "A1042FF05E80458B9F79",
+        "de_type": 926
+      },
+      {
+        "contents": "4EB0D1BB7E711C9DB588F1ED5AFE54AE46A361B0547FA3C0",
+        "de_type": 299
+      },
+      {
+        "contents": "F382",
+        "de_type": 220
+      },
+      {
+        "contents": "DCECB4FA5BC7E7D72AA132127D27D43370480F1AB952E654ECD08ED5B28B",
+        "de_type": 911
+      }
+    ],
+    "encoded_section": "859013225389037B2722F8D27F2226F1449ACB911000AE062EE145A8CF45329EC95736762C939001BF95DC4B5B20BC1696BFF79264BF8CE88760D1BA0834E103C9C3DD35111224F93A46DDA193BCE22C3FFF0DEABD66C91933B5EA8B9D9DA8B8C8430FD8C4C9ADED4FBF843A3206D0CD4C2CF4258CC4C47FBFBB68C7A6D3E463C3D3BC2045F2",
+    "identity_type": "private",
+    "iv": "C789264887CAAAC20C0A84CAE6C16A6D",
+    "key_seed": "9C0E8A9E88EBAABFC8620322B4DC189D17AFB01B7FDE0BEB5027AB67B36D58F8",
+    "metadata_key": "602E08A242159621ECCBCF62A1BB77B2",
+    "section_mic_hmac_key": "B9DA231118DFFE6E168A4561180D096196D7460CE3E39ADF400958A411E91F11",
+    "section_salt": "AE062EE145A8CF45329EC95736762C93"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "618DAAB745E83D398987853966EB8D73",
+    "aes_key": "60BEC13C1D8742EA4711CCE37F8AFA57",
+    "data_elements": [
+      {
+        "contents": "A01201A2AAED58EBB95DA45C",
+        "de_type": 941
+      }
+    ],
+    "encoded_section": "469013F52ED257572229C484BEDA18270EA33A91100030A663A6FFE15F76DD3F29F84018F96A9002DBD150672794658EEE0B4D1324CAD3D9937518A48F7722287A7C4F15B16363",
+    "identity_type": "trusted",
+    "iv": "3D850D530781D998CFF408E7EDC5BA43",
+    "key_seed": "48F03D01564000EFB7BC8EECF1328FC6489327A7C79AE7CD4C190B5C41ABB61F",
+    "metadata_key": "1CED23D2582A5320DDC1C9A75F79535A",
+    "section_mic_hmac_key": "4D96D070171E81DABA26D6F55BC91CB938B694AB4D6AFF7AC324BCE2A36BAD7D",
+    "section_salt": "30A663A6FFE15F76DD3F29F84018F96A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F24BF18270E7EFC7882FD7300BCCC0CE",
+    "aes_key": "6237B593C1E95DA0E71B42F390B79E3A",
+    "data_elements": [
+      {
+        "contents": "5A0FB6BC7788",
+        "de_type": 347
+      }
+    ],
+    "encoded_section": "4090130BCE2E9C111E02B7CB33EAEFA76C1F189110009AE61B57A56E074D46354A6C28A6600B900291D225FD9D6DED94B1AE1A8DE03F95D14DBE075885CC06AD4B",
+    "identity_type": "trusted",
+    "iv": "9EEF6EB4A585A899C07623A06B6EDE18",
+    "key_seed": "053E32D215D9706EB8BA952E5C2D520754349EB64BA594780F1D04883FC20B69",
+    "metadata_key": "2E3EC7648FC3F6C1B64FE4BC64363DF2",
+    "section_mic_hmac_key": "709572F18493C4CFA68B26676369A9A17FF660AADEAF01A6D3C9FEF62BA7B65B",
+    "section_salt": "9AE61B57A56E074D46354A6C28A6600B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "141C71DBCD57779A9010CD756A76E381",
+    "aes_key": "7EC0F06C9555C817D80506D742CAE986",
+    "data_elements": [
+      {
+        "contents": "A3DA78C3A46A6465AAC28A7180F4AF3CED356195F59C354442",
+        "de_type": 848
+      },
+      {
+        "contents": "6FB0",
+        "de_type": 612
+      },
+      {
+        "contents": "5E86B240E0DA2EDD9FF1EEE13D08BF747F",
+        "de_type": 593
+      },
+      {
+        "contents": "3D5E1FFA8D17363A09EA3419E74ACAF8E530BEBFD2E5383435BA96E5E93D",
+        "de_type": 602
+      },
+      {
+        "contents": "629C",
+        "de_type": 535
+      }
+    ],
+    "encoded_section": "929013AED254BBC1126C996810D72CF962DE3F911000CC9DD44EEF9A16CCA9A5A353EB3F6C099004F512A3DF26EB3A448559BC668546BBC5E39939B408595D81DB2C9BCB22BF44105D4FC74069E211F76B1B5947632BAC38E032303C1E0BC15115DE5BFE6C5C64BBF75D7527DF0C1FDC42186D3B4E8A0B11F444E74E8455A8F32A792603FF5D06BDFBF4095FC8C3F19F2DC148",
+    "identity_type": "provisioned",
+    "iv": "1F3348A80250E67C0439DB33713640D3",
+    "key_seed": "B8F2BB87A76D6B19C9666E5AF7DD06F0965DAC56CD5E18D500660D621B6806C0",
+    "metadata_key": "791697B259A389A16454F472C26B07B9",
+    "section_mic_hmac_key": "5F025042B03F8AF6FEFB3F0ED5D572D80D15189DC8ECCD27CF4EEF05F4A57F00",
+    "section_salt": "CC9DD44EEF9A16CCA9A5A353EB3F6C09"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0DC36EABCD58AD31FD3414A5A79D856D",
+    "aes_key": "B7FCF0EFA53B3230297545213C0524B5",
+    "data_elements": [
+      {
+        "contents": "64BE90FC09B580EE",
+        "de_type": 299
+      },
+      {
+        "contents": "D9CE2C829CD03EA10E4EBE3ED32CF9F03848E2ECE7CAC2B5F062FAE306",
+        "de_type": 637
+      }
+    ],
+    "encoded_section": "629013586179ED9F640B114F3A74EAAFDA169E9110004F5F28DE93C71BD513CEAF1317690AC59002FD14A70AF3805F6DDA65F7309408708224077D83A630F4A6A28ED8F14F1E32072981D91CCC3AF19A091791B44927EA10A30EE18F261D3A902A5608",
+    "identity_type": "trusted",
+    "iv": "B841EB2BAAE284E872A3A2423601F00F",
+    "key_seed": "131324FEF7EAB54FCBA0F40F92167DD7334863AB7DFFA93D1B2E05FDBF7F30B2",
+    "metadata_key": "C39F84EF9D0EB94DDC0F35B032CFE945",
+    "section_mic_hmac_key": "3FBB040970723C36D6DAEBCC475E95F100D5CA410C938B7C7552FAC69DDB7E13",
+    "section_salt": "4F5F28DE93C71BD513CEAF1317690AC5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2F7A899B44F390B8C32AC3FFBA8536CA",
+    "aes_key": "C757CD4202E253D64F6ADD70D6802F76",
+    "data_elements": [
+      {
+        "contents": "E13B9414F8E4DC48F9E41F1ECEDE",
+        "de_type": 873
+      }
+    ],
+    "encoded_section": "489013F3E95BAC1CAFF7A986116C838955CA039110001F2D1152B9AC95ECDAD02511DC5ECC8790046AAC45B087398FC2276B1D1015032072B5AA69854873AF49A2F9D24711D6759A4F",
+    "identity_type": "provisioned",
+    "iv": "C697367BA74524CAB1168BFBF2922854",
+    "key_seed": "2730B32C6DCBEE3DAA66CBDAE3BF9E42890B4E0B46C57D0700D58081814CA0D5",
+    "metadata_key": "24AE50DE045D1238B2E0AF3EDE2E5C9F",
+    "section_mic_hmac_key": "052A829770EC3DE369B2A4504D75DAAF28577A7F4638B0356EC924B23C91C5E7",
+    "section_salt": "1F2D1152B9AC95ECDAD02511DC5ECC87"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A229253DEE5642D1A341465C48F81501",
+    "aes_key": "954B9BC25FA0947752A02707A1D72848",
+    "data_elements": [
+      {
+        "contents": "8F35A5BBDC9C1C",
+        "de_type": 193
+      },
+      {
+        "contents": "8894D592508CD3611F906F8AC44F706B1517F0B5980E268B99A0",
+        "de_type": 124
+      },
+      {
+        "contents": "",
+        "de_type": 795
+      },
+      {
+        "contents": "55DA51",
+        "de_type": 902
+      }
+    ],
+    "encoded_section": "669013C3BC7FE06F86785FEC6BB8D3EC2DF618911000DB52438878F9EADE488682807B3F9A009004BD9E07EDF91224F3EB734D17F3999A99C8262B2C91BBA94505C3DD67852AA19C7A748D56165A5399846D368009F6BA3131ED227A75A7D0BEDEC8FCB729FF26",
+    "identity_type": "provisioned",
+    "iv": "1C797DF15F0945FD31FB2CDE94CE2F44",
+    "key_seed": "B965BEC0EFAB1BF93ACBEC55D5FEDD7A9E4E35D68ED782E805445792B8FC8630",
+    "metadata_key": "0A51D7C3CBB8920ECE2C18C16103FF5A",
+    "section_mic_hmac_key": "1B403F3B1542CCC670E677988496CAC0EC233748D4D488BE8C64D6DAD9E97DA5",
+    "section_salt": "DB52438878F9EADE488682807B3F9A00"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0214D0382281CA031DCC305A1170C4A4",
+    "aes_key": "3AAF3FAF8B3ADE10CBECDAD2C0F9D9DD",
+    "data_elements": [],
+    "encoded_section": "3790137A79252A76378480754C9935BEEAC40E911000E697F979481D94C83D143D416EF15B0B90023C2D0EA174FE7B0F748EB3A897F86CBA",
+    "identity_type": "trusted",
+    "iv": "08AB0C2EF3B3DCEEFE63E345EDE819B8",
+    "key_seed": "236811C3C81857B831C028B6828F2E28AB948405B391377895BCC1011A82D87B",
+    "metadata_key": "8F3FB1BBD7CC2596188C022C816BEEEF",
+    "section_mic_hmac_key": "AAB0A17B5A667805AC94E43D775FFEBCF4832CF67F7839D8B60FC6C739C2A9AE",
+    "section_salt": "E697F979481D94C83D143D416EF15B0B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F6579933CDF9D9BDA0ACE32E7EF5718D",
+    "aes_key": "C939D6AA33F9BB4FE73AFABA9DB89CC7",
+    "data_elements": [
+      {
+        "contents": "51C2163162B4A1ED861DE57103CFB2C8CB4DEC24B75710563AF3C0",
+        "de_type": 969
+      },
+      {
+        "contents": "BC465AB618F9A89C2D6DCCE131DC68B3CFD45ABFE9B3A898F5B21EC3",
+        "de_type": 386
+      },
+      {
+        "contents": "99",
+        "de_type": 51
+      }
+    ],
+    "encoded_section": "77901388ED01CF901FB3C6740072CAE51AF8BE9110003A898F8BE6FC92035BAEC946D5CA2141900175BE48A38808002A983A169C804D96B80CDDE4849FA6CFF66B6955B8F60194B29566F29DC113B5A7DAC4EDEB369BE2B93C9CC3D605AE3FFE7CA863B9F9089B4477A1E591DAEC0F1FBBB2ABB65445E71B",
+    "identity_type": "private",
+    "iv": "D07741F4556EDB80F156377E05D86AC7",
+    "key_seed": "6EF6407596F397D8752C31399ECFD94165EEFAB886385098A7D2E62A0D322D65",
+    "metadata_key": "7005FC4F95DD57D7CBBA8286480EC221",
+    "section_mic_hmac_key": "D68F4EEA77F4A3A812BED734FBC151E6B564984E5BA51BE94F018B0F0E0A40A4",
+    "section_salt": "3A898F8BE6FC92035BAEC946D5CA2141"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "93A2A5408CB92C828DC2706D184B93B5",
+    "aes_key": "483CE8FA0C97190150C89044D0A3B562",
+    "data_elements": [
+      {
+        "contents": "B74426C4B81CD14DDC66B5D81F5048F35645CC49D784BF1901DB",
+        "de_type": 540
+      },
+      {
+        "contents": "ECFD9C9D59E8B557A961482F3CD9CAE1EC82445E",
+        "de_type": 684
+      },
+      {
+        "contents": "16CE37BBB3AB",
+        "de_type": 907
+      }
+    ],
+    "encoded_section": "749013EB2EC9939D0B5AD346C488C81AB2B7A59110003FB7A780A3D390141179A24BA5E348749004D79AE3EAA467DCDB6924035AA6B730BA38A3BA0DBAB8FADCAEBC40EE87FB03DAAE8D04D7F09A98C5DD245BF1993145D63CE6F39A2F2A954850DB8CA9B9927F3B8B7A0FB3D7F2FDF967C4A77C1E",
+    "identity_type": "provisioned",
+    "iv": "1B2672F3752153E4719D4D50F75B32EF",
+    "key_seed": "809959218AEE024135CF2F9D03A1BCAE95334C91241679F27D0E4BD6AE2D7A9A",
+    "metadata_key": "AB90DAB8B389AAB3B96925579A583559",
+    "section_mic_hmac_key": "F324525CD2C3407588B22B71BF7B879ECAF343FFA9860876D584BFF14594E621",
+    "section_salt": "3FB7A780A3D390141179A24BA5E34874"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4CF830D5D5BD08C26F4BE1EA5B97A4C0",
+    "aes_key": "F66E71F797BEEBFB0150F2C7F4C4ACD7",
+    "data_elements": [
+      {
+        "contents": "F16C3CEE603F93",
+        "de_type": 538
+      },
+      {
+        "contents": "F65E08453918E6910CAFBF87155D9B7D8E020B816BE6F064A76C2FFA3BEA",
+        "de_type": 728
+      }
+    ],
+    "encoded_section": "6290139D6BDADE8B80272A9C4DFA705CC8CD38911000FE1EC77402715D1928D59BC1A69DA35D9001E45533C131CE90457E1433650E9993DF71D74E3B90D98B1B2B7AFBECB6EBFB479C58E7AEC3EE3F689AFAA7515CDA6C06546883365168066BAD9371",
+    "identity_type": "private",
+    "iv": "7C7BE58937B2383F8EA9C91B1D8ACD8E",
+    "key_seed": "1E368F539AADA86EB50185328B05D9D859ACCB951D70AE6BCEFCDED587598484",
+    "metadata_key": "9BF76E47E18DEC4135F95D65CCC5AD5D",
+    "section_mic_hmac_key": "1A7880A4B012784166BB7BE7AD91425AEB6E10DA105FDE534824B10FB1F01B3F",
+    "section_salt": "FE1EC77402715D1928D59BC1A69DA35D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "42BCF8C051CF5BC8D61B1C61865A3D0E",
+    "aes_key": "7A7B9705EA9E3E6BD24E89A8B5EC5629",
+    "data_elements": [],
+    "encoded_section": "3790131EEB4FFCF3E322EC21209253D804E5F2911000EA5BCAD5F2FF77DB2C44939BEB5D1DF590045CC1115031BBEF4F64F4D7200CD7EFED",
+    "identity_type": "provisioned",
+    "iv": "48345860EA2F626260C6BB20B166B245",
+    "key_seed": "C61CA661BE7F95C09DEDD5E5B3AD5EEB7C83D5023B95CE53F5AC471FD7A88817",
+    "metadata_key": "2D8F7FD76DBFD36FC69923CB084C2ACC",
+    "section_mic_hmac_key": "DAD99FBEBCD2787C70637F3163FE6D98B3F12DBC5D3D68ABCFD48D7AC7FDF563",
+    "section_salt": "EA5BCAD5F2FF77DB2C44939BEB5D1DF5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A8C7424675FA2E7091A36C6E61AFDA42",
+    "aes_key": "6B31245D4D06FA075F0FE3B368DE594F",
+    "data_elements": [
+      {
+        "contents": "7527234E872383C3816F",
+        "de_type": 48
+      },
+      {
+        "contents": "31CDE714BFDB05AEACB81C2ACE",
+        "de_type": 272
+      },
+      {
+        "contents": "AD37A2754F3B9B",
+        "de_type": 772
+      },
+      {
+        "contents": "1DDCF4",
+        "de_type": 461
+      }
+    ],
+    "encoded_section": "6390136E1F6E5E79E07AAABFC71A1ADDC6855E911000B729ACD6ACEE902D62B36C16CA11B8F69001B5E54164389AD739445D291F8BB668F7D5F486336BE306D2E7537088CB34FF31793C482E1AA770D33E0EBCA3FA909F635EE801E8804D85EAB562B0A4",
+    "identity_type": "private",
+    "iv": "667E4FF1F49AB32EC02271C50F00BBCB",
+    "key_seed": "11E0919824E99AFA212ED1EE264C0CEE2079394A139A2A4E4E0480390224AA2C",
+    "metadata_key": "AE5E4C5CBF11AB13A15F2ABB45C3AA28",
+    "section_mic_hmac_key": "900B1BA0E694FDBC069672601E3FB6A7E1ABF57DCA900F43D366A2D433BE694B",
+    "section_salt": "B729ACD6ACEE902D62B36C16CA11B8F6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9561280F565350C87CFC48E0E922D70A",
+    "aes_key": "0FBDD950CB6A77E49DE3DA873E05BB4D",
+    "data_elements": [
+      {
+        "contents": "57EB419A6FDA6E141E64C96DA56184",
+        "de_type": 157
+      },
+      {
+        "contents": "B7F29895592845FD1F68F04F50E21FFAC6E0745B495D4D33",
+        "de_type": 725
+      },
+      {
+        "contents": "96CFCA71DD4AE920DB33",
+        "de_type": 63
+      },
+      {
+        "contents": "9A186713837F3023FDA2ADFCA7ADBA5F",
+        "de_type": 802
+      },
+      {
+        "contents": "8295CE8455A32E12E72A1A3EE445F3A7ABB33F552E28E8AF3B49",
+        "de_type": 650
+      }
+    ],
+    "encoded_section": "A0901301554DEAA33ECF529285855175B4075F911000F1B7A762DD991286560F50C190AEE84C900410A344196A44F2872D97E4A52C86D4705A0154AA77B0B6A8CBC8BE5707D232C64F3A58123494FD117DCA5F66289BAA6C1342A3C0139362180E4BC01D739BD9AA658244621615B70C03A47B547C3AD84D84AFFA59633EDC39CF23B84A40AEFAAA1F4EF584BC9F8C62E177641EAF8D2D3B5B72E70F5610EDDD66",
+    "identity_type": "provisioned",
+    "iv": "233ABC3B5240F3277A8A3D9B77736EB8",
+    "key_seed": "B3903A0B6F65A51C04C61F33DEAF2E4E2F8D9593C0418A08B5DEAE1B4B5083CD",
+    "metadata_key": "C20215BF9D23940621D1243DAF4EC38F",
+    "section_mic_hmac_key": "2189BED3EEB1C7F254F0148D32B6977850DC2393C6D569DC58F32AF838DA075B",
+    "section_salt": "F1B7A762DD991286560F50C190AEE84C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EBC1A6EFA2ED8CDA77BAF544E4D904A4",
+    "aes_key": "65E3A98AF7B85AC0781A211CC6FC72E5",
+    "data_elements": [
+      {
+        "contents": "3945EAF5EF2E084E1F",
+        "de_type": 46
+      },
+      {
+        "contents": "12E6F96050FACED899537AE8A6",
+        "de_type": 997
+      }
+    ],
+    "encoded_section": "529013BAD0AC44AFA4063EB49BA6CF34A8C03F911000774CFDF9430D5C16D57FEDCC76C727E29004BCB33E582FD7A3C616E6701A38DF24A61E13FC2680162A038B6419348DC7639F9DDA362DDF9A6545387A1A",
+    "identity_type": "provisioned",
+    "iv": "AAE212B6EAA3AA96187816E6FA3B50B2",
+    "key_seed": "310998B2C7F6D69281748342083D74ED44885D73C8873E97C0A00C866332A49D",
+    "metadata_key": "8897F642A09797D2D710391CE3F9A679",
+    "section_mic_hmac_key": "74D664F756163C18681A9CBE553DEF5E0B17C040E3E3B265CBD3DBB3A931FA18",
+    "section_salt": "774CFDF9430D5C16D57FEDCC76C727E2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "540624C3D336F7667597EEA1FD0CC48B",
+    "aes_key": "CA3CC08E1C4FB3974D9DE0A9FAD09077",
+    "data_elements": [
+      {
+        "contents": "5467F818B3EEB029B82D47A14A4E6451DD58EAA0030EF12E14",
+        "de_type": 565
+      }
+    ],
+    "encoded_section": "53901331A52875544D7A7D299A2D6BD3EB0D86911000EDC8ABEC4C7FE7D3A91094D9727CA4D690019C8DA9BEA8B990C4BC1F6F464675F74AD38BFB28C419904C514A9A1E22BFA28285D757D66DF54C47B115E01F",
+    "identity_type": "private",
+    "iv": "60998CDF9DD4FC9271DDC24FD00BF4E5",
+    "key_seed": "563B6F117F7191C693688B2C98794AA4B1219C581D2932A7636338E4CA8D995B",
+    "metadata_key": "E6ACE435015C0967BEEBC7525C84A68B",
+    "section_mic_hmac_key": "568C17091F1FA841D94361047719BAF85ADDF57B13C190BF3D2801A5B229CB5A",
+    "section_salt": "EDC8ABEC4C7FE7D3A91094D9727CA4D6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1BC71DB7C830793A62D4A1D64A194DC3",
+    "aes_key": "F00505EF81341DD41628D319A51CB9AE",
+    "data_elements": [
+      {
+        "contents": "72FC3313D216E421D5283686FA",
+        "de_type": 166
+      },
+      {
+        "contents": "835C0734",
+        "de_type": 332
+      },
+      {
+        "contents": "",
+        "de_type": 236
+      },
+      {
+        "contents": "6076F43AF0A453CB8D740CF39EC6",
+        "de_type": 789
+      },
+      {
+        "contents": "195A1FBE7A2D24A4C51D6796BCFEF82C298B3EE3F8B6B96FA53CF83D",
+        "de_type": 102
+      }
+    ],
+    "encoded_section": "809013BBFC5FEA8BAD0095718AD322503E917E91100061E7C6ED035A4567FFE6C83A52560A759001DA6B1C2FE7F73DAC214C4074DAD30A2099CFC96A89754C6643189C43AD82BC5999F79228BE9B2812A94F38A569194DB4AD2F0867CFE968BA6B993F8AC07E026C21B57D8AA2B4CC0CE6CF0C940191842F5D4F7E1FE9EC9194B3",
+    "identity_type": "private",
+    "iv": "C49795F17B8BA9676DBB69DEE5608FA6",
+    "key_seed": "9E55B64D97D55AD785A2D5CFF54FC31D8C2A10423F03AA4F41CA007BF5774179",
+    "metadata_key": "96332ABC07154AAD77CB7C037C364D8F",
+    "section_mic_hmac_key": "32C65336074D2DA5CB55280E59DBE181987F1631936DFE783CAB584B52276517",
+    "section_salt": "61E7C6ED035A4567FFE6C83A52560A75"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "173A13ABE2FF18D2F7109239F401FB21",
+    "aes_key": "333CD8634CB7451F95519C052CBDF152",
+    "data_elements": [],
+    "encoded_section": "379013096CBC2B8A796E245980C1862ACC387091100082E5BA46988B576F8618B5B352BB5AC990028EC4EB4825905EECE11DD62509238E2C",
+    "identity_type": "trusted",
+    "iv": "54E19448030FCEFB036FA3A918EECD42",
+    "key_seed": "F677983EE2A9987F61F7DA6B886866362469221DC726518FDDA105CEC41563BA",
+    "metadata_key": "D468CD1134E0BE76ABC05A5526F18EE5",
+    "section_mic_hmac_key": "42A1576B2B917F654B6230579B98D0BA1B999EBAE10F99EA920878A3C15DD211",
+    "section_salt": "82E5BA46988B576F8618B5B352BB5AC9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0600099A02ECCCDA983A853EA87B40CE",
+    "aes_key": "F8361A483C7259A77A4B9F7BCC18CF4E",
+    "data_elements": [
+      {
+        "contents": "0B1D4CD6D6D51CAC90BC02A63137AA3DC785E9ACDC08297B54AB0456",
+        "de_type": 152
+      },
+      {
+        "contents": "EA8FCBA28B2CA1FFAC4B2C880398B79C7D6CD79AD24EAB3A9F0C01",
+        "de_type": 789
+      },
+      {
+        "contents": "2B18E586B9BF45BACE62A8B8EDA7",
+        "de_type": 913
+      }
+    ],
+    "encoded_section": "85901302F968F6E1833E28F19F63391E02600E91100006F9E19728E0AAF75BE4634A1F8D7C679001DD5679B2068AF5DC2837E39A3B7140DED6261AAA8A19A8FD604F9B3C50805488C86DF7FA5C7A42443B73C78696A212057B7A6B2E3CFE277B29A3A5A5CC6C441F78C4E2644F4DBB5A6214820B3D184477CDB3F54442D0045C5C81953FB6C3",
+    "identity_type": "private",
+    "iv": "4ED9F6DDCCA5759F3290615269114852",
+    "key_seed": "A82F0B67DA493625BE38FAD39EA6116A78505439EB85294438EC967E0BB92974",
+    "metadata_key": "7EBAC6AB7C2E3EFE20C185415935BA36",
+    "section_mic_hmac_key": "93689F1002288DC64C2CA81A3ABCE1CF4CBA0AA1F2F1DABC39277D57E9C9199C",
+    "section_salt": "06F9E19728E0AAF75BE4634A1F8D7C67"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FEE965C5BD73B49EFD8B3D0AD98D823A",
+    "aes_key": "F3085A213CC43098896781968F34CF93",
+    "data_elements": [
+      {
+        "contents": "C9E41D4978E8",
+        "de_type": 328
+      },
+      {
+        "contents": "7A984B285B2F5D5DFC1CBA0B0C23CBF62C",
+        "de_type": 950
+      },
+      {
+        "contents": "D5BD48E7EA000500FB4D",
+        "de_type": 325
+      }
+    ],
+    "encoded_section": "619013B68441665A2CD396B8174905412BAF759110006EB5F5B21043BE04D6972AFBB86D172490014D74B48E16FD27458628305F62BB5EEDBFF77533E1C8263FAD5376C7D167245435D48B7D1EBB91E89A39D7D5061EAA1150E40B73D7542B2C5109",
+    "identity_type": "private",
+    "iv": "B4A43F5693F7467CB19116D40367BD3C",
+    "key_seed": "12FEE160551F2297D799E1571A8046AE738C4916ADF58AB6E8BC5283B9DF5A9A",
+    "metadata_key": "C42AE1BD877C17986AA1A9F062866318",
+    "section_mic_hmac_key": "208087A638859B6A21F491E525C97D8AF2C1C19945DC8C84227DD2330F89812F",
+    "section_salt": "6EB5F5B21043BE04D6972AFBB86D1724"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E6AF288C6E7479E495EB7FD64E6A311C",
+    "aes_key": "3BBB312D4C50E6220418CA88645FD3C3",
+    "data_elements": [],
+    "encoded_section": "3790135ADB592FC4E3261881C033CA13B722039110005CFCC4E76959DE69A46A26110CE5F5DF9004717A64A5F01E52B35C3229F3EAF20B46",
+    "identity_type": "provisioned",
+    "iv": "D93C814B4EB98D9D9A65D00AC707FEEB",
+    "key_seed": "67C74FD2F407B1F2168B9AF4072CAE89C5CE31E5CABE1AF1C318652C16234309",
+    "metadata_key": "C4AFF7489F452F80EFF17D0C1ECB7591",
+    "section_mic_hmac_key": "8F5EDB51B470611B53995F6D852A38302EA98584053DF49D5283CD62FA873885",
+    "section_salt": "5CFCC4E76959DE69A46A26110CE5F5DF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49BFBD2B9DA62843694633F892D4AF90",
+    "aes_key": "DF226FD90BD7B42958EAE9B73D9F3107",
+    "data_elements": [
+      {
+        "contents": "F0A7E8D6B009594814B97DFB5C3052AC0255ADE9B6AEED6BFB25A670A4F1",
+        "de_type": 525
+      },
+      {
+        "contents": "984EA937",
+        "de_type": 72
+      },
+      {
+        "contents": "537A4993C8A09B85C312",
+        "de_type": 6
+      },
+      {
+        "contents": "F2B65846498D58ED36F7",
+        "de_type": 56
+      }
+    ],
+    "encoded_section": "76901353D6074DF5E26C64A67DCEA4B54F4FE591100089522D3D4E82B879A6E227EABB6F5BF490021152819FE7C31E3AD6BFF55EA31B88B904DAC0687D0ACB304C7120D4ECE40AA347B7CC2FAEA00536233297D2976D13BDB1349CE159477020DC0541FC247FAB7E675E6746872058906C27EE206830B1",
+    "identity_type": "trusted",
+    "iv": "363DE09F4423704E05DA5D1A603F88EF",
+    "key_seed": "F7E644C0B35E3639F0759DD3459A4E81A7B5B1467D9E27782C9D58473F7D2303",
+    "metadata_key": "20B6032091C7B497C9C715B44A680055",
+    "section_mic_hmac_key": "AC7F9AEAC350B2BC7835A6953CBF050FAD9B1C761CFF5BDB1E766AF51DC97E6C",
+    "section_salt": "89522D3D4E82B879A6E227EABB6F5BF4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9AC61514FCC5ABD76F8B6A60FFF0CB23",
+    "aes_key": "65A5B1C977CE2B71E137FBB66464E4C6",
+    "data_elements": [
+      {
+        "contents": "AC018897D3B2098C96B4B2D04B18356AFDBE76873E902686",
+        "de_type": 433
+      },
+      {
+        "contents": "E6268BD9E23FBD9F54E89A33A9B953387C0875D16FAE",
+        "de_type": 859
+      },
+      {
+        "contents": "CAA87F4364C08B57BBD4",
+        "de_type": 524
+      },
+      {
+        "contents": "14300A4595500DEB37",
+        "de_type": 734
+      },
+      {
+        "contents": "54C2A5437292",
+        "de_type": 606
+      }
+    ],
+    "encoded_section": "8D9013578908536364B9F6141A96126731958C9110008FB91F1844A5A3601A18CA350436446F9002F172ECEAAFD2E24578444D8CA68C014E1BF6722524A2750B1A9E5F4CA3340EB3D4647E45E35F69C330C0918FE002C922F30018934D9CA78F81A41FE035CADF61D135281371ED2B022E532D29D9853BAAF17D7A66AE0EB5DFFF9E66799D98C36DA0EC17BF7971",
+    "identity_type": "trusted",
+    "iv": "E4F6D7F01E683F03820110FE9B9070C2",
+    "key_seed": "471763E7BB628F2107F6AF8F71DD0429FF9012C7BE7EC58C72F5C6CDE1C3C880",
+    "metadata_key": "949F830445560E2C7E0E156F2044EAAC",
+    "section_mic_hmac_key": "03D47D91A1AF8EC0141E699BAD459E2EE7F86F9B91A5386DB8D0D2218BA13E8B",
+    "section_salt": "8FB91F1844A5A3601A18CA350436446F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B796C0B874B37A965A635AACB0305B1F",
+    "aes_key": "E000F49E7E5F8307D27A471E27875CE8",
+    "data_elements": [
+      {
+        "contents": "211B11FE2C7B3F8A8907468866B92695234B9C06C56ACA1E7EF5118061",
+        "de_type": 336
+      },
+      {
+        "contents": "2CE435BB39131E9603EA734E8FEE299F26BF598EA5C2F0FFA518DB2C92E0",
+        "de_type": 228
+      },
+      {
+        "contents": "DAE3FC39546D53AD1A3A",
+        "de_type": 470
+      },
+      {
+        "contents": "9A2A563675DD8BFA71C9BE13C479DB4DE2544FB97004",
+        "de_type": 266
+      }
+    ],
+    "encoded_section": "9E9013F0451460F5EC18035FDFCC9B233FDCA29110003DD4F4235AB965B797DEE44EF0A0360B9001BEC49A84632B991E0A5501A56ED3D9709C189FAEEF2445DC131AEC2343D7071A578293B76D3F849B80C372268123838CA9FC2B0E14A41992CF2AC92DAD1299FA67225BE71F479FFA312946AE18774AF353C3C14C346A04F24747E6582F7C528AA1E49E9E03370D053B2D95178AD336A42367AB578EA993",
+    "identity_type": "private",
+    "iv": "0778412CA588FD3D607A36B1BBA305FA",
+    "key_seed": "63212ABDE0EA4E8542FD2403A0091CF53460C2CBD7BBFE6A434D24D6B871BEEE",
+    "metadata_key": "F61E19A50DE9B1E486865A0498D4ED59",
+    "section_mic_hmac_key": "5E754AED53501C62B51B214B3E21E8C1A39D0B8F1EF47FADCEE9C7391A437F36",
+    "section_salt": "3DD4F4235AB965B797DEE44EF0A0360B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "08F6F482433E821BF057DA969070B210",
+    "aes_key": "E17992E3DDE2E17996BF2D26B284BF2B",
+    "data_elements": [
+      {
+        "contents": "E01D05404D",
+        "de_type": 656
+      },
+      {
+        "contents": "DBB677B7AD69380E50712C",
+        "de_type": 651
+      },
+      {
+        "contents": "2983A0843D5DAB0CC087BD5572E983CE13C3F059",
+        "de_type": 515
+      },
+      {
+        "contents": "DB40E040A436133BE734C5855B",
+        "de_type": 515
+      }
+    ],
+    "encoded_section": "7490131512D60F63CD579B350AE46C619240C59110006CB2D3074DA5611D18E7200EA58D4D2A90010804A23809C9E79F68830337C1561EF95B58C35AF60D256BF58BC367C7C3CC923AE044959E8766170ECF6E24971DB1FFEAC71D76C7592C53B40B5D594BEEB51423C72512C50124951928ED0B15",
+    "identity_type": "private",
+    "iv": "E51C069184919CB5C41DF3A1973A12EF",
+    "key_seed": "3AFF0BDBA428B3E7A75CACF64B960384ED52F6055B53DDC869411C00CE3DFB33",
+    "metadata_key": "C7FF94EFD6BA7F4D49753C9C51F24C32",
+    "section_mic_hmac_key": "23FFEB85772F286F363ED40589D9069BB0CFBAD80C0F4709F2D7EA4D53AFD56C",
+    "section_salt": "6CB2D3074DA5611D18E7200EA58D4D2A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E01A36923644F0AD58157CDDEE3D6E57",
+    "aes_key": "28A7CB11218C9DD608B4C8A3BAE62AA5",
+    "data_elements": [
+      {
+        "contents": "4713D017ECA392781333",
+        "de_type": 890
+      },
+      {
+        "contents": "FAE2DEA46755BE0C6E0BC28C8587",
+        "de_type": 406
+      },
+      {
+        "contents": "CCDFAEAF820F69BE029967700E8D4EFA20",
+        "de_type": 192
+      }
+    ],
+    "encoded_section": "699013B733E709907E9B73EEECE403065285699110005A8F6B53799B2B96F01116C7EA43B24D9004C0CCEF4A0B0ECBE91A422DD0ED9680D23781E95311D3C78E5C154F71BC726E679AC9BB60314D4DE9B19994A6831286FA0A22B438098A7D10FDC1060F7354D0B4D6F3",
+    "identity_type": "provisioned",
+    "iv": "304D96C4F8C3E724140E327EB02BE4FA",
+    "key_seed": "4D76E8957C3244719D51B9433DF83AAB034452817E76DE43F5428B948592F061",
+    "metadata_key": "E158F1E40D3224565939655BC879DB05",
+    "section_mic_hmac_key": "1CBFDF042B635283167190A9E19DBA9D5EB04492AFDC9D4AECF9FD3DEA2FE78C",
+    "section_salt": "5A8F6B53799B2B96F01116C7EA43B24D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "093EA5DB990DD969FA4C4EAC9FD04300",
+    "aes_key": "C42479C9A8EF89FE3A3A83C323E39075",
+    "data_elements": [
+      {
+        "contents": "C5CEE03E05232CEB2706FCC52D8582E15D6E0309E39BEB1049",
+        "de_type": 376
+      }
+    ],
+    "encoded_section": "539013CAA95A7BBAE1DACC4C1493F1631714F39110007D6EAD457D2F7C96C246A361CE6D51F890029BFF6C5561F0D23FA684E8B3C5B67190B0E869847A48A703596DEE74C063E03C3796B437DF451F2E580E070D",
+    "identity_type": "trusted",
+    "iv": "3C508F99B78AB555A8FCCB86D451C384",
+    "key_seed": "9CC130089BC7A521C459F6951588707D1C39464D4FC5F83DE02A388DD9B9CFF6",
+    "metadata_key": "8E22B372F7843A39842E9C99A095222B",
+    "section_mic_hmac_key": "BB1185F021C79BA0B12496AB407BAC3B925D6C0D3E0FFB3D2489F110436C3725",
+    "section_salt": "7D6EAD457D2F7C96C246A361CE6D51F8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0D3999FA6D616562631A00DFA536DA4B",
+    "aes_key": "106EDF096A5A90718645B2350FB47A8B",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 913
+      },
+      {
+        "contents": "0439E4BC4E416859331F994B7A7967E242692162F0A90DC74A",
+        "de_type": 572
+      },
+      {
+        "contents": "3E46E2",
+        "de_type": 133
+      },
+      {
+        "contents": "C4D2B7F9B3404DAFC46AC58BC4F69525FC63290AB1C752B04B19349E",
+        "de_type": 248
+      },
+      {
+        "contents": "70D3E5634D",
+        "de_type": 544
+      }
+    ],
+    "encoded_section": "8390132CCE2783ADBF25B7605743CC2B5D735491100048186B398DF4CAD231B9A47C00BD02E29004AB47CF0C18763A5271A3CB987B200905499C2BB25ED2F511D33457321E221A4996DE183BD314F1EFAE36BC4AFAC00E3FE61E822D6A0C90E4964E39F50E0584ACD334757BCB7B150E9569E2F9B9E66ED9F09E1DACDC4B9300D8FD0D7B",
+    "identity_type": "provisioned",
+    "iv": "727C01C9645EE10F343B1F653FA8A03C",
+    "key_seed": "4CDA79980B1DF514C24C2A80C54C97B1DD2ACE9146FFE02B8D02317D7DC7FD33",
+    "metadata_key": "A4BBF9DDA5775F84FFC6E7A700B85F40",
+    "section_mic_hmac_key": "09863C0F71491893C00F06B6A38F5605951379845B88997B4C2FD7AE03BEEE05",
+    "section_salt": "48186B398DF4CAD231B9A47C00BD02E2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5F0DB8BAB212C01A15D1276C8111EB75",
+    "aes_key": "FD0804A8059A889D6462E272E40736DD",
+    "data_elements": [
+      {
+        "contents": "3AE626A64BCE",
+        "de_type": 913
+      },
+      {
+        "contents": "081BA24B63DB458284FBD02292F412DF67C22EA5",
+        "de_type": 664
+      },
+      {
+        "contents": "4EDD5AE85FBAD3B50947",
+        "de_type": 414
+      },
+      {
+        "contents": "FE5636FE49CC9B62F3F6F7F3D234D1C2814CD2",
+        "de_type": 252
+      }
+    ],
+    "encoded_section": "7A9013E2817D9D32C943EA7A07C69CB39C1F13911000CBCD80EA37EF7103BD971F1769362A6D9004B5D90F3F4B85363C35BFB1C5F2D33A6C32211C91023263539D31E4101561FA16843E7099B3ACE21CC285A818E5B121A53B8DC0C12AE39B07A1312A3E8DAB1854D32A11BF3AD661BD02FB69107D00509D5ABE30",
+    "identity_type": "provisioned",
+    "iv": "C85ED610C5284B60E85EE2EB65D824CA",
+    "key_seed": "50CC7E8BB70A560801376BE9507637A2E0DABB2C27C57ABBD4C6655996B310FC",
+    "metadata_key": "8AFB53C6D5AB8A8E040D6C43925ED79C",
+    "section_mic_hmac_key": "5EDBF3A1B90AC15F795203F2B7A62B8202C365C8DDD12125CA04492C666D5029",
+    "section_salt": "CBCD80EA37EF7103BD971F1769362A6D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4ABE96318E942D913EFEF38CE35EACA8",
+    "aes_key": "00CF98EE0A1B419B7F940F74FF10EE6E",
+    "data_elements": [],
+    "encoded_section": "379013F61D7E6303A40196D23DFCD2FD4AF8B19110003BD8AA188D8F355F6611B84C94D418BA9004FFB8BBB535C1A7E1DBF8A12938BCE857",
+    "identity_type": "provisioned",
+    "iv": "7251E4AE74A6EB8322818F09A004A0BF",
+    "key_seed": "0D13BBE27EBFE4514ACD491F0E66FC7BB7A115D79B73296EA83036EA681EE1C3",
+    "metadata_key": "238B7E260087E6974BF1001BD92CE7FE",
+    "section_mic_hmac_key": "4D70D13E0DB450B18F9B90584E9089EF8D8B0B21C1F28017AC0D542EE0201DEE",
+    "section_salt": "3BD8AA188D8F355F6611B84C94D418BA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "72037D0250C97CC1C26E0E715934B7F4",
+    "aes_key": "C96ADC6223409E5BDEB7AF3262EFB102",
+    "data_elements": [],
+    "encoded_section": "3790132EF73EEECCE1F32344D242781918B3D6911000D508D8EE1CB7B5B4457C34EAA1408D619002BA08D2ED7C5853A1C7D3661639BFFF3C",
+    "identity_type": "trusted",
+    "iv": "372B94248EC23F30A455DF27F397EE0B",
+    "key_seed": "C1DE01E9F5C668EED6E11935D5306F7610CD174CB883353086456D5D9689C611",
+    "metadata_key": "FCC9F9A491F6763794895FC2E8F5DA13",
+    "section_mic_hmac_key": "C62A4103BDAB300378CC50CE8F28DAE28D78D3C1F07219B2E1DE73FDCF606332",
+    "section_salt": "D508D8EE1CB7B5B4457C34EAA1408D61"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4F0B46BD474614611D7A9D1BA9DE0C03",
+    "aes_key": "C5DDEC1F35F8B6974302D062297B6792",
+    "data_elements": [
+      {
+        "contents": "E772DE467CD7896B78A062401310DF60A12164085D31EA7B",
+        "de_type": 783
+      }
+    ],
+    "encoded_section": "529013276DFA6BA513BEBCAB169691B61FD79191100093F60AA548031530136472E90FA8B2989001B948AFF95F6998BA8C8D95BC5B75710DE26D6A391A649AE60DBF82DA9AF2F8B01CDEF8018F226FE575B342",
+    "identity_type": "private",
+    "iv": "68F95B82D9FD1727831B1A18ECBC0F07",
+    "key_seed": "16120AD8398950406E4A12D5133D3C8F71D961E051B0970CAA8F8FAEEC187F83",
+    "metadata_key": "035A86F026FE0A595C1955FB1ACE685B",
+    "section_mic_hmac_key": "842116F8CB1EE997C7FECC683959AB4CD8EE3EC9C61152DE56F2BD2446A8F5E4",
+    "section_salt": "93F60AA548031530136472E90FA8B298"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CD771B262EC5CA3A5C0D0FB4B4D0A9F1",
+    "aes_key": "073C363B4DFA35C507EBBE01F75D4ACD",
+    "data_elements": [
+      {
+        "contents": "A510D052E5CDFE9B7F96A7076213D0D996D24E4D99",
+        "de_type": 220
+      },
+      {
+        "contents": "B0C476C075412AB26C51E6C0B8A01DB179F42A",
+        "de_type": 651
+      },
+      {
+        "contents": "A382A1DC37",
+        "de_type": 961
+      },
+      {
+        "contents": "BBA6CD7F93C8F950C7E3",
+        "de_type": 630
+      },
+      {
+        "contents": "EA45D2338F1A82639512EFD7A3DAF1716FD9279B32EED2",
+        "de_type": 448
+      }
+    ],
+    "encoded_section": "9490137FDA79A6A4413EF091B89DF894715D0F911000207A4ACED9DD7DF5469BA445D82C4A509004574B862AF8A5F1ABE9B7160D138C98870F4424CA9370D51712D0396D87644A2EDA5077AD5174F0FA4FA9F10B9B9E303D5CCEF3A36BA46D97F655644F44B747ADC2EC2164AB66CCE1502BDFA2FF38CF44D9B059DA0CC220246444E388020982B1267420374E3CF50BCF15FEA821",
+    "identity_type": "provisioned",
+    "iv": "8CE19168A15D76869969155EC24DB3F2",
+    "key_seed": "2B685F1252FBFB847B415DA3AC973CCB495EE32463325C507A28319AF15FEFDE",
+    "metadata_key": "7D65245E7BE0CB380D42E4D080C4B30E",
+    "section_mic_hmac_key": "3B54D8A9281273639E19E939070E13E81625D2C1FD16186BA429D58CA37205F7",
+    "section_salt": "207A4ACED9DD7DF5469BA445D82C4A50"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "55893FCB8F8DF622FD6A289A05C4148C",
+    "aes_key": "BF693BE1C25DBBEE6008755AE5E49920",
+    "data_elements": [
+      {
+        "contents": "33FD1BA6021EBCA4E5C7495D8E91578CC469D1E17551FF",
+        "de_type": 155
+      },
+      {
+        "contents": "0C14A55F473712E28050FD40E3CEE43A070CE813FA4C8F5C6C77CBF0",
+        "de_type": 997
+      }
+    ],
+    "encoded_section": "7090132ED1930BFB257B03FA14ADAE1B5C1D729110008C160E1D28A6D285D1DF356D50D4F79F9004769BA4CAE9955FDCF71B8BF9846D197E1959FFD62CAC6EC095FB709B140711B403EABDAFA3310E083886EBFA539F176EC7629D0A1B1EBC066CE5BE3244EB27542291E3E807F607F93B",
+    "identity_type": "provisioned",
+    "iv": "925B767E05ACDB3C182AF1B7052AD119",
+    "key_seed": "6043699A67E42BBFE23654CCA2ABCA973462107F14A3D255C6CE66FDED3BA8E6",
+    "metadata_key": "B182B23DF37C3FAB1127F1EC02EFC99F",
+    "section_mic_hmac_key": "47632D7EC5E8F44736F91AA12B9C6B57D099B9F23CBC3EF022C49F17DCD31BB0",
+    "section_salt": "8C160E1D28A6D285D1DF356D50D4F79F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B9A1E1F915254078F13383BEDA83CE1B",
+    "aes_key": "B2A38645ED7EB5C3CE73102FF9D2CF97",
+    "data_elements": [
+      {
+        "contents": "87818B3613A5D1AC040D",
+        "de_type": 304
+      },
+      {
+        "contents": "0CBF84397369C1",
+        "de_type": 98
+      },
+      {
+        "contents": "FE3972",
+        "de_type": 286
+      },
+      {
+        "contents": "4B",
+        "de_type": 269
+      }
+    ],
+    "encoded_section": "57901317514DDE22C7FA254E649536313E839B911000511A20E6594D496C588FEBBB9AAD242190017E66D43A84690796346F8436D0D8E8DE6F146D44C4AA622E9D739903FE39010B1BB3D07923199CFE45AF3E75ABD549B6",
+    "identity_type": "private",
+    "iv": "8FC1F2CC1AA763E1A5AE5B1A46BE72D2",
+    "key_seed": "8952E7BC0784A56739DFDFED452B9AEA99AF09D12A28E38DC923AB85A02F7AB6",
+    "metadata_key": "D9AF7A2E6CD1AA70B9689C5FBCD4D7B1",
+    "section_mic_hmac_key": "8A6D496379762DAFBF4409AA7526B7970A137210934D1F1419AF9B05283535E8",
+    "section_salt": "511A20E6594D496C588FEBBB9AAD2421"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "64B1CC633B622BA54618467268F0BCF5",
+    "aes_key": "57BC65DF5020C32CFF6B29055E11CC62",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 492
+      },
+      {
+        "contents": "370234107E41CF0DB00FC2DB6F95D5FE6F2669B8",
+        "de_type": 979
+      },
+      {
+        "contents": "0E7AA3067932410963858A7A0C03095826A2C1CFF616DD0A30",
+        "de_type": 484
+      },
+      {
+        "contents": "EDE7BB01C66E6AC77A372C5E0E99402D55BD",
+        "de_type": 909
+      }
+    ],
+    "encoded_section": "8290130FAB943DD3C3FFEBDF9EDBB19642A59E9110002FEE3F3C4DD0B38D2E90140654CF7555900497853980DAD64238E6974BB2DAE98D4DCFBCA0E2AFC6AD543A33EF8EE42F6DE0506A9B186A1FE02C409568362512C59DC04280B396E9FF8D4C4C2A3897412B290DB2076E1AA52580A11CB7463BE3FF3F0419A9D8E36079EE2CC38A",
+    "identity_type": "provisioned",
+    "iv": "8F5ABC9AA8000BE5F0185BBD0CB40B2E",
+    "key_seed": "FADBB185CBB88DE7D922282131A346D72869243A50911622E2EF1D5BD9F1015B",
+    "metadata_key": "5A7E3BABCFE50EF8B3CCBE8BB9741768",
+    "section_mic_hmac_key": "1D5E78BBAC91A6AA8738425112A23966439DCAE1D69161476501A605F4AFBC94",
+    "section_salt": "2FEE3F3C4DD0B38D2E90140654CF7555"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E5E46A2DA8C6DC22A69B3779CB44B1B6",
+    "aes_key": "D93ECA4F58BE626EE2B2584024D567ED",
+    "data_elements": [
+      {
+        "contents": "57186FD96B3B2A1B5099984E316AF34AD8F827A941AB",
+        "de_type": 289
+      },
+      {
+        "contents": "4F8EE606B8EE6567D40A3591485AB09B",
+        "de_type": 761
+      }
+    ],
+    "encoded_section": "639013F8605F4B7039EC7A0A92AE8839FEB15C91100073134AE922D5968E2AF8A54EEEE2E96E90019135A873371D039ED8BCF8D0E559F20B5A023516DB58A0FDA54F3B0AF0C3CB066277978EFBD3053F406ED380348DA8E0F365349D03349178A4CA5902",
+    "identity_type": "private",
+    "iv": "3ED5CCF399311A8CE0A94E9498F32454",
+    "key_seed": "C141FD581082AE08005BE0FE63B430D320CB1E6816E508CCE92D9E4487D97A88",
+    "metadata_key": "11EA53BA87F3632C176F7B6B7AFA42FC",
+    "section_mic_hmac_key": "3B60B3FCD92A91A83030C1F33B54242AD1A55699E6721016C8B3E9B95CBA7158",
+    "section_salt": "73134AE922D5968E2AF8A54EEEE2E96E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1AC4700BBC34FFCF56FE27722FDDAF8C",
+    "aes_key": "06FEC5659E272340991B55911FC8CEB8",
+    "data_elements": [
+      {
+        "contents": "8013EED9499B4FB30FE42FA2D25F73C62E30E0C13E4C1756629C87",
+        "de_type": 276
+      },
+      {
+        "contents": "D5F7EA0C7C5C2D3EFEAD2DA54C8854019E8508188CBAC37A1255",
+        "de_type": 254
+      },
+      {
+        "contents": "319793E7DCFBE4",
+        "de_type": 95
+      }
+    ],
+    "encoded_section": "7B90139E98AEFF088AAF2045661ED346D04613911000822C36C3F54743E8CCBB518C3E8A392D9002AEA2EEE26E1B161066AD737160B1815C36AF220A2BA8D8286A710BBAA1851A390F83083CDD47F4485A0D27D1ECCE811C16B614DE6AAE0854FC3C3F1DF2C1918D810CA3C926BED1062B00942B19759C4825C14085",
+    "identity_type": "trusted",
+    "iv": "B0238742AD552F78DC3F34B588EB1DAB",
+    "key_seed": "EE1B60A84CAAAC77DD6FD1B0A5770D58F2D65EF0D7284B0077E6AE18EEDDC910",
+    "metadata_key": "384A5B50211EF272A2A5C2DD917D9E4A",
+    "section_mic_hmac_key": "EB2659D6BC3B0E72645864BE08C039AD8E9BA70B6D26C5C49939BE6D4D007D86",
+    "section_salt": "822C36C3F54743E8CCBB518C3E8A392D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "688AB25983A9C40466E16ADC513ABAE3",
+    "aes_key": "709696F50854B468C9BBE0D3DDA9E26E",
+    "data_elements": [],
+    "encoded_section": "3790130D25512946BAE13F6E96DC89DFF0BB789110000322EC17288B60620CD9539AA9CD6B99900209B744C0B195BEDFB06D3DED5103CF0D",
+    "identity_type": "trusted",
+    "iv": "5C3D8F194A93E04EB34E7E59B3767F2E",
+    "key_seed": "8033F31A3FB892D45877E3398B8DD3444CB2E251EBC6B0D50C9C218384BCB792",
+    "metadata_key": "E0DB32B9221DD82283C29EEC5F782E0F",
+    "section_mic_hmac_key": "DC156CF79131E25E00AAAEA3BCFCB044C4E1066F84D7E07CCCA5E846E2E44156",
+    "section_salt": "0322EC17288B60620CD9539AA9CD6B99"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ECCEBEA1B1C11B3D5888C3E163EABDE1",
+    "aes_key": "1CCECFEEDCA3385145ED977B3AE8AEA7",
+    "data_elements": [],
+    "encoded_section": "379013FFB104D3791419F3C3E265B1C0A0FC56911000804E5C3901A32B9C8EEF076790D48E329004BA0FE90EBFB6C81ECA3D0551E6CE469B",
+    "identity_type": "provisioned",
+    "iv": "95D7DAB8C760196851972252AAC93D75",
+    "key_seed": "FA8D1357B505B8CD83B94B9D11A1D1EC33A1964F2D95D4F6BEF9D958921D58F7",
+    "metadata_key": "4018D81F725B848799F4B2682A494819",
+    "section_mic_hmac_key": "AFB505B132A0B25DEE858DA00379D267045E19BA3739311A01569BFB24662A1A",
+    "section_salt": "804E5C3901A32B9C8EEF076790D48E32"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "61CDB5B59D3DAF922471F816010577B5",
+    "aes_key": "05F8C6D879D6F0CD30C79C10892E5509",
+    "data_elements": [
+      {
+        "contents": "0B36121960993A4FF30D3F84CD32B8CABF",
+        "de_type": 765
+      },
+      {
+        "contents": "4FC94B",
+        "de_type": 122
+      },
+      {
+        "contents": "0345E7",
+        "de_type": 331
+      },
+      {
+        "contents": "BD882C86",
+        "de_type": 64
+      }
+    ],
+    "encoded_section": "5C901310D1179AE506FFBD55FB2F356E2F8B7B9110001437F875D102645621739E078680E1B390020CA5C46CEA1767F34848E4E702E94FC9607CAFF41AEE7253BA7976724E461327BF2CC028BA1709C0DF368CD08D8DA6B4BB9F48D0AC",
+    "identity_type": "trusted",
+    "iv": "97681895B3DBB45117F05275011522EA",
+    "key_seed": "8AC64ED6DE2150104B510FE6DD2A49C744CBC4733D5DEA36BEE78170375701FA",
+    "metadata_key": "D7A9DFF5ECB1F4F785F929BBB097CE42",
+    "section_mic_hmac_key": "D05EF6C19FBEC3DAC6AA35992FDDAF2D69DBF56CD43D6E406597F01CFA212C23",
+    "section_salt": "1437F875D102645621739E078680E1B3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6B659D0B21836653EFDDD806AF70C39B",
+    "aes_key": "1399E5BD319D9D09DE5CDEB4C62E52C7",
+    "data_elements": [],
+    "encoded_section": "3790133A73A266945AB5E75E37AA0E4712B7F0911000AE4C670CDA23AF45ED828FAE7E41843F900281FE9EEE78132A0A54E5434BDBAE9062",
+    "identity_type": "trusted",
+    "iv": "F46E135C5AAE51FD7DAF53E6CCCB1113",
+    "key_seed": "36CCC67956A6F1364CAA0B7DDE0CE6CFCB53118C140A74A05A76B2A4C13369DD",
+    "metadata_key": "1A4D878971F8F57335B5A002C861F202",
+    "section_mic_hmac_key": "A0DD0937541A8ED002593C07BDA8351A9450073F748DB427FD57517FF1AFDA05",
+    "section_salt": "AE4C670CDA23AF45ED828FAE7E41843F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FADB2D052C1C1C27CB44E1A944104714",
+    "aes_key": "6B0C0385579C8A4EA0D91C928907B6F2",
+    "data_elements": [
+      {
+        "contents": "2F556D2609FB6A2053A998A91A",
+        "de_type": 577
+      }
+    ],
+    "encoded_section": "479013AC0A1D0434D93670BA9C9E2CA4B5091D9110001CAF1A47003F980443B9E56B4980731D9004AB942B3607465541F191028EDEEC77069FF9D15D5F2DCE9FB8CB930F2BE41723",
+    "identity_type": "provisioned",
+    "iv": "70ADD8C102E04C438C17F623252033F5",
+    "key_seed": "5CA287810D59C030C8CC8E9AE4FA3B446FC363D0E09E229194FAD91781A7F196",
+    "metadata_key": "9716BAD8F56242A3925CED10C4583901",
+    "section_mic_hmac_key": "F82A3B7F6B516694C1AC37DE73BFA8E170C6C23B759C1BEA0616710350AE641D",
+    "section_salt": "1CAF1A47003F980443B9E56B4980731D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6DB6728F2572B9138DF53B200CD8E30B",
+    "aes_key": "9986ED53BA3786C54562944C5633D59A",
+    "data_elements": [
+      {
+        "contents": "A094756B831AC0F2309FE373E4952C5899ED54DFEFB5",
+        "de_type": 295
+      },
+      {
+        "contents": "A3AFF2F5E05A0DB339CD73AD20AF8E3F34E0D4E9D5",
+        "de_type": 457
+      }
+    ],
+    "encoded_section": "68901398BF6715F57B6BE9A1449634DDFBD298911000D70B75C90790F143E006F97C963933769004FBC0E23ECF8951689315A48912CF86B7D85E7919A42C8AF123F862374840F2A94A89054731060F3336C723FFE54CE1366BED63741EFF3209FB1C8CC66A5F45EAAE",
+    "identity_type": "provisioned",
+    "iv": "6F05B19E3297E8DE48A6B8ED9597469E",
+    "key_seed": "21D64EA0D529E3C695348D2130CE0D970FF226D913AD85D544BD8BEA7BF7C3A0",
+    "metadata_key": "24F2B33454E620FEA4DC86EE10C90693",
+    "section_mic_hmac_key": "1EA011BF9B8063BDE3E95256E1A30994F9959AD3A80815E54801FE1A278AF1DD",
+    "section_salt": "D70B75C90790F143E006F97C96393376"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E7ACA2839BC4C6A7ECA4351B5B4F4D83",
+    "aes_key": "6E674BDEE405F4DE0EF583E2F7649A37",
+    "data_elements": [
+      {
+        "contents": "08AC57735F3F1316",
+        "de_type": 580
+      },
+      {
+        "contents": "185169B0BD105E2CE86FA692CA800858C23770F6A16CD57851FC361DFA",
+        "de_type": 351
+      },
+      {
+        "contents": "20E1D14615FDCFB630EB3293D3",
+        "de_type": 692
+      },
+      {
+        "contents": "09290387F31B81C684B8D92C5B",
+        "de_type": 209
+      }
+    ],
+    "encoded_section": "82901317F1B6491210D57AC3ABF4A33C2E4E43911000327D3D22CEE3A22CA4EEE65584907D619001BE43CD470A29DB32BFFACF5DBE8F63E501FA2FB82107C7D69B26348FF76A96644DB1E9A41592348404289395A150FDE6E76E7EF186E35EAF0E4572E07F1A4A093EDC149AB0C7022CBFCD84625A56EEFE9F3091E5263B23D051A28E",
+    "identity_type": "private",
+    "iv": "F2E05B8E1B5D670B361A240EA8CE4C17",
+    "key_seed": "5BCD7AF92667A3FE3B5C1F6F60372ECB5D1DF8E564E880FE523E3EA878C34ECB",
+    "metadata_key": "DF80721C303A49EFF2EA2AAC271F7CDE",
+    "section_mic_hmac_key": "2AEFC8097B0182AECE54F5CCA2FA741652BCDA820D0465CE573017E950CBD89F",
+    "section_salt": "327D3D22CEE3A22CA4EEE65584907D61"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "99A12E831E51DDCEF24924B1975C0589",
+    "aes_key": "594BCE537928BBC2259C658BA8294F79",
+    "data_elements": [
+      {
+        "contents": "6D1735B3D6221CEF5727CCD86EB799FE9EF05A",
+        "de_type": 6
+      },
+      {
+        "contents": "",
+        "de_type": 289
+      },
+      {
+        "contents": "10B7B4667BA4EF81315DB3D16127A4F0D9A63457",
+        "de_type": 99
+      }
+    ],
+    "encoded_section": "659013FEDFB8B589D781F1EBA87BAF95B8FCB79110004EABCD4E5E6C9A575FC314EA1F9165AE9004C06AEB6AC5B16BD435D7E69748BA6977DBAAB9A6E1A7B0CDBF4975CF2DC4A48C154726F5214A4D3A78D750BD49C97C0493042074ADE2BE34E86EBE25C1ED",
+    "identity_type": "provisioned",
+    "iv": "C9339EF9AE4B3F518B1BD4313FA73C79",
+    "key_seed": "2456DB0645CFFB37C50F85C1A0E4B3B3D62592B305DA2409D29222993FBD8DD6",
+    "metadata_key": "6C65E9861EA62C009260583C667568F7",
+    "section_mic_hmac_key": "52400F51B5CF34C2FBD9281AFDB2964EE49ABFFF2AAC1AD9FFBF931DA7B2D362",
+    "section_salt": "4EABCD4E5E6C9A575FC314EA1F9165AE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "878AACD95530B43C7913E501C8C4ACEE",
+    "aes_key": "341A08C911C28E10C9938C1CB0DF998F",
+    "data_elements": [
+      {
+        "contents": "79AD383E5AC871E91A471ACC",
+        "de_type": 343
+      },
+      {
+        "contents": "C77A72121DB14B812CF89D5D",
+        "de_type": 218
+      }
+    ],
+    "encoded_section": "559013C3FA6A34319D21F0113A710161E774CB911000132290FAEFE4EB99C181B96B5076979990010E92F2BF8F3565A81C24082EB66420FD2D32F18669221F3EE9C5B23722845ECE0C11FC261180613DCE38D704EB91",
+    "identity_type": "private",
+    "iv": "92AEEEF801E75B6C451EBA001AFEF5FF",
+    "key_seed": "DB24DC46E2C2864BA42A405F8C19F782A9B4A8AFC8F69F7F7025A1CBE2BB968E",
+    "metadata_key": "18BF8290AB02AAD2100F28455E585FB3",
+    "section_mic_hmac_key": "7707AF050E3902074823EBF13FD3D36B64E2435BF116C00ACE0BB85A7CE59AE9",
+    "section_salt": "132290FAEFE4EB99C181B96B50769799"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DF0A3C777D4847C4EE6956A868840BC4",
+    "aes_key": "B09A907BD200E651C42C517BB92A38F2",
+    "data_elements": [
+      {
+        "contents": "7C30A6D0913132E43E6303A90005DB",
+        "de_type": 346
+      }
+    ],
+    "encoded_section": "4990136D86B8E26F22B175A2AEBDF6A520BF00911000C3CFBE28CE663F1BAACBAE369DCA6F7D9004B31F7A82993A384A7246B91E008B10DF5AE74B2E10809F089F3B0894C5B958D6ECA6",
+    "identity_type": "provisioned",
+    "iv": "00140D6DC0C9AE914E6EE880792BE76F",
+    "key_seed": "28C7233E1CABC3F5473F5B0F839133288FD4ACFB12C57CAFA92A6E56E9019822",
+    "metadata_key": "4A3A0B294F19898858F13AAFEFDDEE15",
+    "section_mic_hmac_key": "565E24A4C9C335FF6A36E420C84A2F4EA1E85610D246DAC5D0A0F2C8D40DCF98",
+    "section_salt": "C3CFBE28CE663F1BAACBAE369DCA6F7D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "48FB067349EA60A5548283F90D3FC74E",
+    "aes_key": "2D0054A2730B07075A868BA34305C0CA",
+    "data_elements": [
+      {
+        "contents": "4FB6BDA26FA11EB8EDFE6C6A",
+        "de_type": 155
+      },
+      {
+        "contents": "7870B1EE4FBD",
+        "de_type": 79
+      },
+      {
+        "contents": "F398B6D9B6328776C81B4FBD",
+        "de_type": 914
+      }
+    ],
+    "encoded_section": "5D90136AF14091CA00746306320474998A13DA9110003A9ABD9A4070DDAB398E95FB7F0E109A9004A8C4C17761B322D5EA37EF8E74F5497FD847156677DA00782677C144630049AFCB9CCBCC4C080548925A4926EBC9D13AD07F5E49962C",
+    "identity_type": "provisioned",
+    "iv": "8FF9284343646DA8172A83EFCCD1C15F",
+    "key_seed": "970E15EBA91441149A67E61DCE78BE67F995B606D2E76B02E9158E47E5142D72",
+    "metadata_key": "63862AAA507FF1AC7AB3E2F1B7597AFD",
+    "section_mic_hmac_key": "6BFEF95375643FFF9AAAA64B2FFB240E69A282B489FA6F23A0EAF8EE6C85747B",
+    "section_salt": "3A9ABD9A4070DDAB398E95FB7F0E109A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "833CB4935E9649B7AED0AF5AD62D9B6A",
+    "aes_key": "34867395BC36729AFA0E9651E17C16A9",
+    "data_elements": [],
+    "encoded_section": "3790131F3EAC01B28C1C974B040BCFEF38D838911000FE231478D02A9EC3AEAFB5EEAFD225459004252827D70ADAAC287267DD67A23ED9A6",
+    "identity_type": "provisioned",
+    "iv": "35902BD9F63C59083E5F15E541D6C89B",
+    "key_seed": "DE13251FC20C24143C5D1A3C1616030CBA3517EE9CB63416E169F86E5623C028",
+    "metadata_key": "A160EC6E23F3FA1C5155A3A8E982C28E",
+    "section_mic_hmac_key": "DA0632A39F94B40803FE3F706E0B7B5DBAED011230ACE7C4A00B90117B90F2F6",
+    "section_salt": "FE231478D02A9EC3AEAFB5EEAFD22545"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "271CBA3E2DE6311E84785053F08F6A34",
+    "aes_key": "48CFF76E51AC2C0956D41E9AD2D6B013",
+    "data_elements": [
+      {
+        "contents": "193684EB59862957D04183996B",
+        "de_type": 157
+      },
+      {
+        "contents": "3AB0E211CEE972C99EFE4022E1074C41663269",
+        "de_type": 56
+      },
+      {
+        "contents": "",
+        "de_type": 411
+      }
+    ],
+    "encoded_section": "5F9013B3D962B848554F750E23CE1DC503E29491100091AE51980C7684B16CA8C6D9F720C04790012581715CE9199E34170E21325A55D058820D62926B2671BA7CC37F6F90CD346310ED13CDA9003482DCC640C6516B93809FA6FE07218C6328",
+    "identity_type": "private",
+    "iv": "680126038E0D0C959C6F92CADF2B4DB7",
+    "key_seed": "70B633AFC7B05E5B54E499BD8F4556AAF5DECCD7A86DE04C45B4C3001EB24F80",
+    "metadata_key": "F8DF70B871DE7BB917ECFB0704A62685",
+    "section_mic_hmac_key": "D183ACB6D00F733F06179CAEFBECE5F4E0E5D690BBEF15A69904C143E4AB610B",
+    "section_salt": "91AE51980C7684B16CA8C6D9F720C047"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "52748CCA266DA944279BC16D0482E73C",
+    "aes_key": "44FF93170DA4A5EF9E35B21C2AC6E228",
+    "data_elements": [
+      {
+        "contents": "C3C03A02A3035C52D2BD8DB044",
+        "de_type": 952
+      },
+      {
+        "contents": "A8B3082EAD2495",
+        "de_type": 459
+      },
+      {
+        "contents": "D8F8770CD2FD961BE8F25B9B289B624E0D5EB550C558947A",
+        "de_type": 200
+      },
+      {
+        "contents": "BEE10F2031F41820F1B544709A29ED49E54809B3",
+        "de_type": 831
+      }
+    ],
+    "encoded_section": "839013100E58C7B0532D0ADFB41365B1A17827911000C755590B2F4894B1A5E48B0EBBF85A609004F74B503EF23735022525F4B920D6062FD791FB022FD24E687230D9864BEA2BB77119A3E96A5300B6A0703DC38A9F994E33ECDA1AFBDD0661930046C2F71D4CDECB25AE9D0FDBDA76D940119A557F4D1F552749690B30FDEB83F47108",
+    "identity_type": "provisioned",
+    "iv": "B386766CF3AECCE511F55D365BA53040",
+    "key_seed": "A4C01D2CEC164CD21C90FE0F05A6416F08A336DFFA5915EBBE3399F375E4E726",
+    "metadata_key": "A94A8413AF4BBB6A7F208BA3728CF664",
+    "section_mic_hmac_key": "A8AA56603BAF8162878DAF90AAAE3F2284AF34411328502FBF9BD05942239EBE",
+    "section_salt": "C755590B2F4894B1A5E48B0EBBF85A60"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5E4896E304E68E96A3B6EDD820E5F206",
+    "aes_key": "0573815A1D7E41DD84EFFE7BBB0A414B",
+    "data_elements": [
+      {
+        "contents": "CD459496304C08D118AD",
+        "de_type": 758
+      }
+    ],
+    "encoded_section": "449013FFD6666622A2DA34A2C275880506157F9110009874A69F2464B9DE4FF74F919CAC9D3890020A50F225CD2764D259A371F025387AECD2E84F2064417D98B96411449A",
+    "identity_type": "trusted",
+    "iv": "4F7C4F082F3718D52BA2A3222293DD19",
+    "key_seed": "4F2E1F3AD51A20DC3918600AD08D4D0BAF6B64E429F68D125AAF667BC17A725A",
+    "metadata_key": "CD1CB9AAD1597C77759AAD87938A9C36",
+    "section_mic_hmac_key": "DFCF245574F4751BB2A5DF4A84EE02D3E3D70ABD8FE987092B0F59ACCF2552AF",
+    "section_salt": "9874A69F2464B9DE4FF74F919CAC9D38"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F270C1808AE8861C06BE51C246839671",
+    "aes_key": "6711054A1EC414B5715B8AD33EC563BB",
+    "data_elements": [
+      {
+        "contents": "BB1EE72B358621",
+        "de_type": 690
+      },
+      {
+        "contents": "6CE1D344EB4F1641AE8AC5F9E2EAACC01E7C8FDC3D81AD77B2CCA371",
+        "de_type": 983
+      }
+    ],
+    "encoded_section": "609013E5F1F076FA559ED8A4CB17EC6D61EC6A911000EB93F9F5A15960A048CD6F8B8B6B58649001AD39CBA67C832FF3B377139EAD4E352D5BCF8E71974E4951DED2DB9918398D6AABF0DECCBE8E37224FE601F5CFFC705C5F227BCD511411796B",
+    "identity_type": "private",
+    "iv": "6723B26C84532019D6265FB1D9219387",
+    "key_seed": "5827EDF50C9C538E05C59270334EA25A707BAA6AECF563A6228C9A645DB95259",
+    "metadata_key": "E5034530CD6FE12AE1B8D9FA2BD772D4",
+    "section_mic_hmac_key": "D6EF9EE9456896020F182EE408581EF01B10CAF8A534693586E7F6A9A23A28BB",
+    "section_salt": "EB93F9F5A15960A048CD6F8B8B6B5864"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8389121A80436B19156632AC51695A13",
+    "aes_key": "6A5E04C19CC54841180722029D13F7C5",
+    "data_elements": [],
+    "encoded_section": "3790139684BDB26A1EB70A15B98EFB09D5111B911000FB98AABA968E22288FA299ACB4E405749002AAD65BA2AA0A63AB971C5722229B9C47",
+    "identity_type": "trusted",
+    "iv": "BEC2A53243D6F2707722FA034A317A68",
+    "key_seed": "1E700C710D7280FA6AC7439E403EDD5DE0257782DFD687BD323B57111DB15EEA",
+    "metadata_key": "8EF84C05AD7E87AA76F2D3F57FD231B5",
+    "section_mic_hmac_key": "AE770F2EBE85476AB97BAC70CAAF7F0B2D411DD01211E4F13855583E16EF211D",
+    "section_salt": "FB98AABA968E22288FA299ACB4E40574"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EAAEF0F0BD203FF07EE43BE082FFE487",
+    "aes_key": "5A8F6E1A06CF11AD9966D7DE70680E78",
+    "data_elements": [
+      {
+        "contents": "8D985C3C5BD7",
+        "de_type": 335
+      },
+      {
+        "contents": "ED8D6C68F03FA51B2F79759A78E8",
+        "de_type": 158
+      },
+      {
+        "contents": "15010A88EF1368AF73",
+        "de_type": 634
+      },
+      {
+        "contents": "04BBDC82881BC0AE",
+        "de_type": 964
+      },
+      {
+        "contents": "8FD5",
+        "de_type": 526
+      }
+    ],
+    "encoded_section": "6D90131F37122E6A01D9C8138CE142E9DE94FC9110006828E400EA55AC14C4AE3747AA7050FA900149BAB83CE2166727ABACAFBA637FAC4DE8F17FAB063D51BE286E68116796A8DECA3BFEBC98014CDEC2FB60D7E712C84057360216D6B9C222EBB6A6F1602D6AD41557BF75B28D",
+    "identity_type": "private",
+    "iv": "8A4C13A101DE46A8E1A4B39A7D458400",
+    "key_seed": "F4CA2D5D0F233F02D75BF99566E87F46887F3B57BC224D44B5C6CE2CA0B8F1F7",
+    "metadata_key": "673471840A043D3029819713668DFAE9",
+    "section_mic_hmac_key": "B1FB222C74B0ABDD529D06926D60C8685B5304B8FBE8491C38FB8A3DABAC9B2F",
+    "section_salt": "6828E400EA55AC14C4AE3747AA7050FA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9BC7CFB71D191BECC444808364D813C4",
+    "aes_key": "51518AE5E163D9D8D5416A193537ED76",
+    "data_elements": [
+      {
+        "contents": "4E18846D",
+        "de_type": 712
+      },
+      {
+        "contents": "4820CB3C92CAD5B8542AAE9A36",
+        "de_type": 832
+      },
+      {
+        "contents": "B5D2F1B6CD8A17DE1B03FC670CC9808FBCB4020B7BAE8FDCCD922961",
+        "de_type": 739
+      }
+    ],
+    "encoded_section": "6D90137D76CF1A4074CDE63F8C6C0329155D58911000F27909C892E859590581882380B7F73B9002FA6E25428FF322E54F5CBF0BA057B844E3391F0F719F4ABD296FCF239D824E940EF2B31760698498E6579D200686A63E33C766C109BAE6C2C7171305EF8D7D05B56A4E628771",
+    "identity_type": "trusted",
+    "iv": "CFED21D898A59168C5FB57F3A86AB6FC",
+    "key_seed": "5189E43E665A66541461FCB1DD460196AE5F64EFB70F344E5B00E6533566AB35",
+    "metadata_key": "C3C0CFA6645E1AF45DDEF7B3D1F74751",
+    "section_mic_hmac_key": "7F4EFFC52343AB47D1EC9C234841BED7BA67A772CC238A9AC005847361718BEB",
+    "section_salt": "F27909C892E859590581882380B7F73B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EFC325741A620CDF60ACE605C3356BE1",
+    "aes_key": "BB076A02A36F6D81B206B1C9C8236EE9",
+    "data_elements": [
+      {
+        "contents": "EE2C53A7B84776BCBE",
+        "de_type": 322
+      },
+      {
+        "contents": "3D831323FF7DD1D925C629564D92C87D7ACC5FF526BB2A0B5FAC9132",
+        "de_type": 610
+      },
+      {
+        "contents": "B38D897E0829B179A5FD66CDE9D5B5B0D574E04008",
+        "de_type": 240
+      }
+    ],
+    "encoded_section": "7A9013444AA5DE765AF1E12CF47CE2C37B6227911000249EB7CE39639EDB7AA5680B7445ACCD9004D0230E8B8D679112F9F650A8E4779C93FDF8F26AD5B381729C15F83A07808F094528BD326047036689E5DD4A92DE1B57DB883720D93E4CCA65058635AE9612A8E48DF6A8BD372262E06328D5FC5456FA168186",
+    "identity_type": "provisioned",
+    "iv": "BDC3752E0380EF0CCC465A207B36AC33",
+    "key_seed": "C855E8921027426AAFE3C38593C328834BC1DEB79007F68455F336A0AA2E6979",
+    "metadata_key": "249DAC8BD2E0A6D705BF4D5729A6B9E0",
+    "section_mic_hmac_key": "848CCE3F38671B20F910FB919492E1E80051AA4C9AE7FED49B71D4E60C8EDBD7",
+    "section_salt": "249EB7CE39639EDB7AA5680B7445ACCD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C45308E14C984650D43BCF505BC65F5",
+    "aes_key": "D1A76910387CF7AAB6CE4A0EF807FE49",
+    "data_elements": [
+      {
+        "contents": "AEADF60EEF2311B4FE8111065D40435AB79809469B08FC5FEE",
+        "de_type": 674
+      }
+    ],
+    "encoded_section": "53901393F3F5E4C94F10F460E9B79E4A8488F191100020F961FC32DAAFA88DBDD328319AEB7F90019FB4153E082B763922CEF5EFE91F357D2E83421DB3CD2AB47308C127A33A7079611224B3763E863656848939",
+    "identity_type": "private",
+    "iv": "C0E2E91FB0D154BF04CE881789D11166",
+    "key_seed": "7D4DAB11FB6FC7BE19BC0D9A56936874E83966C5F58686C9AB533FB3A6F3F2B3",
+    "metadata_key": "7682862834A4910F038FC5CDE1A7BB7A",
+    "section_mic_hmac_key": "244E6405668A612CC41EF88DB5D046256AD61698DB7E5D9CC632BDAEC18351C0",
+    "section_salt": "20F961FC32DAAFA88DBDD328319AEB7F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49716F792B5B2446878F04B9B080DF27",
+    "aes_key": "3FF2428CC19EB164069991144389B867",
+    "data_elements": [
+      {
+        "contents": "953F0048B02C14E8BA62C721240D68D90001B4DD0E897705",
+        "de_type": 401
+      },
+      {
+        "contents": "0775542388275325E3FA4DD2FFBBCFB429BA51CA4775F8A342B67030A3",
+        "de_type": 395
+      },
+      {
+        "contents": "E0246D98751CEEC87A2A86866D06EF",
+        "de_type": 165
+      }
+    ],
+    "encoded_section": "84901324809B6938CB9ABF43A1A28BE74FF373911000C05F2D1681AE6F6689FF8989B0CFBAEF900160F98F0EDFCB8E41846F503B92280E0BE2FC3E1D261CD9A2204AFBC3276A639296B87C27C143969FD3FFE020918D8FB9CA5846E095566F27EF8F45442B3BD2ACB637C8360D82172A970BE0574ABABD5D34F0EF773D4FA68982B24F8A8D",
+    "identity_type": "private",
+    "iv": "CA0256A71F1F8248F4E5804C5C80C42B",
+    "key_seed": "32F7B3C74E59251702FAE6CA0DDBC4D4DCCE002F82F064A92093EF0E0DFD96CA",
+    "metadata_key": "5AAA3B579A426D773E975C442A0D24DD",
+    "section_mic_hmac_key": "B3F114BA4764A3CDA2A0DE54E53F0747324DB0DAC3EE19C338FD5898948E7121",
+    "section_salt": "C05F2D1681AE6F6689FF8989B0CFBAEF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8F3ACF2B400ED33574CCB9AC82B7FF80",
+    "aes_key": "CCC54BB5C42A61F4F50820F1D64C601A",
+    "data_elements": [
+      {
+        "contents": "C4878BE538",
+        "de_type": 696
+      },
+      {
+        "contents": "5081C9BA7B0F06",
+        "de_type": 10
+      },
+      {
+        "contents": "E009C8169E51A37B7544A8EC8A1E6085C345D3350D7ADF",
+        "de_type": 400
+      }
+    ],
+    "encoded_section": "61901380D74E5F857F77C6324B0DEB8271F2F5911000535996FE591823883E8F94C9528142FB90029EFAF31276DE796DF3843E4C08FE5DA982EB047A4E932F1C689DB334E0DF51EC92622CFFE9AC50711E45207EA4493A88A6A2EA36741D6BE76801",
+    "identity_type": "trusted",
+    "iv": "6BA59F3930B610C64F9A97F9254130CA",
+    "key_seed": "A9F58DCCA97743D648C98BF39AEEC09D1042794054924AA10B601CDBAAFDA1F7",
+    "metadata_key": "E18C1EB3D52ADD20D13E6F5CD7253F36",
+    "section_mic_hmac_key": "B9336123B29683DCAF5421E6A934369E3D587749147C3D3A9C65DAA2FCA4FD5F",
+    "section_salt": "535996FE591823883E8F94C9528142FB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D906139BD4F5F0D43588F1E463870ED7",
+    "aes_key": "659E7E26B7350532979241C71A794A47",
+    "data_elements": [],
+    "encoded_section": "3790133051C1E0D286C009937A41FBEF966F4A911000E9B18B58534EBE29990D03A38305EEED9001A3F393753D761A490BD4204C22B88D18",
+    "identity_type": "private",
+    "iv": "652B4283066AAFDED606DF9F74BD40A2",
+    "key_seed": "92F464D53AC339F4CCABEDEA6C123D36319ADD612EDBE6674D1CD8673AB4B591",
+    "metadata_key": "6AF8037879F253615782CD0A041EB12C",
+    "section_mic_hmac_key": "AA4229BA575F5800F32326FE1981C126F79755D1F6B07BA91670B3E2C4178B55",
+    "section_salt": "E9B18B58534EBE29990D03A38305EEED"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D1DDA0E7AA3E69AE2F3370D6E15F4062",
+    "aes_key": "600F6D5E91AF5302CE554A57A7EBCA42",
+    "data_elements": [
+      {
+        "contents": "769BC18B3624C9C3F9538B96F668E73E7E53D36B16",
+        "de_type": 199
+      }
+    ],
+    "encoded_section": "4F90139FEEE459BE5B388C727B8A576E4C93619110004892C57DF0FF7BAEABC88477F349C4A79004AE6E76B72576ABD71FD6EFCA914797AC69C80AAC2283EFFEE9DB9A784D7518FD45A71BE14AEFCFD9",
+    "identity_type": "provisioned",
+    "iv": "1E805BEA0FDA0095E961BE043176F24B",
+    "key_seed": "1B19E9B42F8262E9ECB505D43A949363ED484EAD3D8B802C19B826C40C293778",
+    "metadata_key": "E6BC1FF04AAC597D5116A868BF0107A2",
+    "section_mic_hmac_key": "3B15004ADC3A4F59DFFC423D292165746C76969A40F763043F5F009EB38E5B6F",
+    "section_salt": "4892C57DF0FF7BAEABC88477F349C4A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F02914E89D274DECC66DF2B3C188328A",
+    "aes_key": "8E89A5C199B8E077FF0C020C9E5FD1D8",
+    "data_elements": [
+      {
+        "contents": "087FFF3F2F",
+        "de_type": 934
+      },
+      {
+        "contents": "447FF6BE8D5D86F7C59001FBFC19E00E",
+        "de_type": 163
+      },
+      {
+        "contents": "AD33",
+        "de_type": 695
+      },
+      {
+        "contents": "",
+        "de_type": 114
+      }
+    ],
+    "encoded_section": "59901386E81CDE1667FBFDD7799D04920C706F911000279EE983242C291A41DA61962A3C6E229004E3973DC6CC11CB4B4853FE0A72D9DFA304E37D1D01517B31771AEE26680F9AB271BE747FB639A5F5BFDB4C701534F7C7E083",
+    "identity_type": "provisioned",
+    "iv": "B1B0129B8F410981FF08A1E07765FE25",
+    "key_seed": "37C6B00660E3E82EF5176F7164828F5501D19B08EE50FA8B5426BC87EFC6BEA7",
+    "metadata_key": "60C8892135BE25252CB238940AC460A4",
+    "section_mic_hmac_key": "8491D901EBD1B5E3C23828A7B8C830FE557F6D238CE41296A14A97C0A26BE21E",
+    "section_salt": "279EE983242C291A41DA61962A3C6E22"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4F655495958DA3AC2438FADC76CAA469",
+    "aes_key": "48017698AA818DF52A218956255D1184",
+    "data_elements": [
+      {
+        "contents": "D21415A59D61C37A431C94CA3D1B12",
+        "de_type": 223
+      }
+    ],
+    "encoded_section": "499013BD809616651CB4C0FA14C3FED9EEA8199110008F1695AE141F457D323BFE9FBDB4A646900164E3DB751CD22313B6EFC2BB28D064CE99C04F4377CFBB39666CE7F6B35822CEAF23",
+    "identity_type": "private",
+    "iv": "2279F7D60A8ACFC3400EAB7D479DB51A",
+    "key_seed": "971782B7DFE1FA2F6D6F2C76AC4C6CBCC2BF05AC1CFBD19882E484D07D90A467",
+    "metadata_key": "658C560090654FE1648E9939A51BA9A6",
+    "section_mic_hmac_key": "AB9431C41C87442A332416CCE3074BAC1C330F923AA07E57CEED68592C0208E4",
+    "section_salt": "8F1695AE141F457D323BFE9FBDB4A646"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ED33675F04F139BE2E7BE9417679089B",
+    "aes_key": "D169E3E3EF2ACCAE3CEEB84523649232",
+    "data_elements": [
+      {
+        "contents": "138081B628B974A24C1CA904B706ECFC64ED8B256833B9F3",
+        "de_type": 487
+      },
+      {
+        "contents": "2BA4C7",
+        "de_type": 311
+      }
+    ],
+    "encoded_section": "58901346E74CA333752A4F091A53F7BB6A1E6391100017C25D290070B12CA99F7B188DBA2C009004462896554342784C49B6A736DBB42FA93EA55CA27E9BECF238D8D76E39AFEF0EF3809225ACD1338A7C3802DEADBBC38303",
+    "identity_type": "provisioned",
+    "iv": "5CA7E4BB4CB64ACC75FE3D7ECA59B5F1",
+    "key_seed": "BC53A14CA7C5A41C1459A17DE84DA7EA69C9B4B3BF412CD1B7F735C86FD026FB",
+    "metadata_key": "6B2D533F3E784395DA8EA4D104A9A5A6",
+    "section_mic_hmac_key": "D6831E0EB880B6EBB5EC3B5A6178589CCD4CFE42C1D2C0982039674966809A1E",
+    "section_salt": "17C25D290070B12CA99F7B188DBA2C00"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EEE3952D89F58C16D86CF2A0D676264F",
+    "aes_key": "EE4D226F72FAD340CB5969026B5009F1",
+    "data_elements": [],
+    "encoded_section": "3790135CBA17D59F867DD8152D6A15D42C059E9110005F9D9CF54AF1C87EA73CF0539B878E559001DDF4CB6AD10039706AC555E84E731BB6",
+    "identity_type": "private",
+    "iv": "960DD7B569F6084D311B14EA5EABA4AF",
+    "key_seed": "CA471364CBACA719FD0FFBBB46AF040A9B77BADC1C5DD45671DAD16658908CCA",
+    "metadata_key": "BC7545E167CE62D60E04709FE54A0EFE",
+    "section_mic_hmac_key": "AD60A30FD4927631B4BE521BB0BF8EF4805993AE122CB68B749D39A6051D2156",
+    "section_salt": "5F9D9CF54AF1C87EA73CF0539B878E55"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DF5649D8C88520FA5B4C48C0D156FC6F",
+    "aes_key": "83B0F91866C953759BA6C220B17BBF79",
+    "data_elements": [
+      {
+        "contents": "E712F3058923F793652BD04D42D44A38371F7A29027D4E6AF3F2",
+        "de_type": 184
+      },
+      {
+        "contents": "8EEEC3B2BCFAC213A2A95EA3EC5596DC8BB30D52B3D095CA",
+        "de_type": 546
+      },
+      {
+        "contents": "2C4B5138B3D520FD9D3799CEE77A57CE28",
+        "de_type": 125
+      },
+      {
+        "contents": "4F039D61E7908BC515E127542C4F69393593BF9015E8821E52FF",
+        "de_type": 550
+      },
+      {
+        "contents": "12159E47",
+        "de_type": 107
+      }
+    ],
+    "encoded_section": "A59013C0DA8CF829FDFEC39AF1136EB83F1930911000F16D6B2A76966AE53ACF6792DFBC41C5900139D1D9C42A158ABA72D040B5B379308734C4AA5345EC3FBE04EBD2543A38E50551C82BADC8BC9A8150450F68E3DC4DDC1F7EDFC9A48BFA00985F334AC8B072423E38BEA3C91A1C7E59DDFF1D74948A17DF9FC3B25DD3E61B3882CFB3734646FEE24D60A03D329BCA50BF5E6EB8AC4C377DE637D0971CEE502419683DADBD",
+    "identity_type": "private",
+    "iv": "C56E5DC162716C9EF3CEAC49C0F115B8",
+    "key_seed": "CA4F0FCDE67D6A691236FE32B43802AAA785519E4108415A4B9384FAE6220F25",
+    "metadata_key": "5DCE8108DB324CDEAF9C4DA6C5652CE5",
+    "section_mic_hmac_key": "435152983E08E498549369CBB3845599399E0C3BAE7A6AEB530CF9BF74F94F43",
+    "section_salt": "F16D6B2A76966AE53ACF6792DFBC41C5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F6C8A813A71E37E62E7B4A383DE9CE03",
+    "aes_key": "28F700FF1E657FA5B93060B77CF3F673",
+    "data_elements": [
+      {
+        "contents": "7B25F39E00B7B165",
+        "de_type": 588
+      },
+      {
+        "contents": "4407E542845E25D8C5F651C54A6325DB08D31CD01C0A39CE68F6A63521",
+        "de_type": 397
+      }
+    ],
+    "encoded_section": "62901319919D6F5709324CD2F3E6C38393AE8C9110001A35A3E9A1EF41933CE4934C5576B4AA90028C72D7952DBA1254D1A6F28B061A89EB461FBB771E1291C35270DBDB7F4F344E527F4F419D80D9D8F37ADDBCB0300061DCEE9DC4A49295C9CAEBC9",
+    "identity_type": "trusted",
+    "iv": "E9C4F94C776EA7100BF8FCF029EAC9A5",
+    "key_seed": "691BB699B3A533E919AC8F2592FBF465ADFA3232A7102CDAB4A2BFAF18D39216",
+    "metadata_key": "D19E7F2C3EDD021E38F7EB3668A30D21",
+    "section_mic_hmac_key": "9166DE19913527B22E2D285A5623FBE27843DEDA9BF75CA21AAC1D7A925BAE71",
+    "section_salt": "1A35A3E9A1EF41933CE4934C5576B4AA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E03BD15C47BE63457ADA2CAA38F8C01D",
+    "aes_key": "E57DD2A12514B1A31EE3031299B69BAC",
+    "data_elements": [
+      {
+        "contents": "E1DACD22961D862FE8B7A8DBF8DF3014ABDBB06525C3",
+        "de_type": 408
+      },
+      {
+        "contents": "00982ADF65DCAC4218EAF676347CA52607D55CA9334F",
+        "de_type": 600
+      }
+    ],
+    "encoded_section": "699013EBFB56D27710D376E2F78AE5314B6EE99110002E9A05B98DC81FA726BBE0B25ED6616E9004943E813F9E1C01E8C8987A3C7C2A612A27C011AB3BD5134E60593FE73B0950C777D4FD02A1220ECA13213A10769B4456DB92139D8A06AE5A33CD1EB07D629BAD3581",
+    "identity_type": "provisioned",
+    "iv": "18A7EE60B7F063FC35EC9A051432A276",
+    "key_seed": "854812FA5DD5336B82417C854DE3C21D55EB81CC503D395D36160429743EFA17",
+    "metadata_key": "FBBA049407A1FB50BD32B42FD1FC5227",
+    "section_mic_hmac_key": "2B1B6926BC2FE1A4789F6FF28C1B1E208BBB7B9A831B7665FDF07FE5CC932974",
+    "section_salt": "2E9A05B98DC81FA726BBE0B25ED6616E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C565D587CAB49EFA12AC6F0A2DD13227",
+    "aes_key": "432B9F04E0F4F71190D9CCB3DA261AE1",
+    "data_elements": [],
+    "encoded_section": "379013DEC89828681CFEB999004464A2DAEA7A911000533B00CF247DD1C3271AC6EBBA2DEFBD9004309005A18C6BB3D59BB078853CC5A98C",
+    "identity_type": "provisioned",
+    "iv": "46696325A36A170F95E6D3258A08B04F",
+    "key_seed": "15740DD5FCD0FF3547B15163C6041E1D8DD9DE508BDFF02042B0BA37F11C10B7",
+    "metadata_key": "C6D054B984ECCE9241E8F5C7F95A788B",
+    "section_mic_hmac_key": "52EFEE44663018C3D495F0726D8AFF9BF451607C491D8982E709AC57C9253A8C",
+    "section_salt": "533B00CF247DD1C3271AC6EBBA2DEFBD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A2F7DFEEE2E3E735EF73F8E75D9CE4F6",
+    "aes_key": "14A2DC3915F43E95AE53A541DB6A20A5",
+    "data_elements": [
+      {
+        "contents": "1F819F1441E9818AD0AAC4B083840D81AC",
+        "de_type": 743
+      },
+      {
+        "contents": "FF547347B5FC33DEE1BC21109492E5B254231ED5CEA88445ED5F7892A2",
+        "de_type": 822
+      }
+    ],
+    "encoded_section": "6B9013659512ED18290B6C5F4DE46EAB3E54AA91100043B1749F94745222204B1E9AFF8C086890017EA654267AA0447CFE19880DEC1916CAA03546DAF407913D33465D78F90FE9C982F101EDB98C030024372AC65278A26D644A99BBC06860B81E8E46F97280A7A9496919AF",
+    "identity_type": "private",
+    "iv": "0B79362274A4ED6B0A2DDC9B3A3D0C4B",
+    "key_seed": "EE2EF449A38CE4C5AC6F70F3592DAF53E0EFFDC3FAD5A8D35914A301123C65C7",
+    "metadata_key": "18D9E6C0B7CC34DAA3FBF27255ED25CA",
+    "section_mic_hmac_key": "99F5025A9BEF0E77912BE3A814A87DB26C75A86092AE4DFC0409F2E7CE1A61BC",
+    "section_salt": "43B1749F94745222204B1E9AFF8C0868"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9250734FC0AC255D11341B94703240A6",
+    "aes_key": "14E0C14BFE51E3E2D9C17E46617A7254",
+    "data_elements": [
+      {
+        "contents": "7AD8D89A3BAFE604CE90BA870FBAE5061E596406D3492A",
+        "de_type": 773
+      }
+    ],
+    "encoded_section": "519013F3F99B6429EF43A25C3096E54A7A6AE191100097B2C056D43F50DBD56CE2F57636E93F9002025D4212219F661181F68D105E0567675318418C08858F7F9ADBFDC9EC2525CA987B754CA7B7E20541AE",
+    "identity_type": "trusted",
+    "iv": "CF58402F5FE4255D36AC71B32A7E53DD",
+    "key_seed": "0737014DACB915DA41FCDABFAE3A1612CEA784C26E728B92A515D17AC9880BBA",
+    "metadata_key": "488DFBB55E10A9C4115ABE9EA510E685",
+    "section_mic_hmac_key": "2A83F033AD0948FA29DD234D02124C1BF07BB0A914E008CD5A32A794FAFD594E",
+    "section_salt": "97B2C056D43F50DBD56CE2F57636E93F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "742306D9A50A5F57414C636DAD6758AE",
+    "aes_key": "843800EB6901EC65E32BCDD8C42DDBB0",
+    "data_elements": [],
+    "encoded_section": "379013A910AB5E2636F86BC67DE65AA6BF508691100046DD825A5E29527818B48BB6B12D52D1900141FC36E88D10ACBEF867C69D0F07DAE2",
+    "identity_type": "private",
+    "iv": "C622A5E21BB8C2A60B610C1523013FD9",
+    "key_seed": "6A455B03C96F4CE85832223DDB4B84AB1A2C98356B00F09F5855F5D1DF296400",
+    "metadata_key": "B7BBC5E06529761651EA6817D5434679",
+    "section_mic_hmac_key": "7BFCEE3D3465311604F1BFEF4746CF63D2433806F5720F4B8DC4876CD398E276",
+    "section_salt": "46DD825A5E29527818B48BB6B12D52D1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "970ABD5B5C3196B424CF4D3BB360A3A2",
+    "aes_key": "505ED35ABFD6327336834E0A3B8A1168",
+    "data_elements": [
+      {
+        "contents": "3BAED92467687DDCCB55D80114188395B55B82",
+        "de_type": 249
+      },
+      {
+        "contents": "7D8988A293E7FD36AC2C6A9DF2",
+        "de_type": 103
+      },
+      {
+        "contents": "0186E7C12684315D411D523F67C43FFA8A1CD75A",
+        "de_type": 1000
+      },
+      {
+        "contents": "390049E7B31C2689FD0E6A78AB8165E724F1F70DE1A2C93C615B19",
+        "de_type": 234
+      }
+    ],
+    "encoded_section": "9190136E43BD77DD71A1178B3A9D6E81F6218D9110006F5E89B4DD9C9E840C769C2D9CCE5889900294BF8F6B35C8A0A1ADEA4EAD45B4969D29EB245D277B98EA35316E32FD2CDCF61464007AF3EC71697AB7C81845C03493206C236D076D094471DC5E7DAA4D822EF947A2E6446B6630F8605DEF9C467CEABC0AEFDB73BC7ACE0EB4352B06881F71FC480F14E153FA4DBF52",
+    "identity_type": "trusted",
+    "iv": "4C9ED54A1DF5B2930A75F6117A853CC5",
+    "key_seed": "7F47276F24CE6BB646B1CEFEF060FBFE235AEC3DCDCCF4CC2385EA943EE690DA",
+    "metadata_key": "346F80C5C67A4EDAE1818D56393D3B82",
+    "section_mic_hmac_key": "AB43E9A5ED9D2DD9535153F4338CDBBE77046191ADF5940A2769B2F919A911E3",
+    "section_salt": "6F5E89B4DD9C9E840C769C2D9CCE5889"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "228D8BFE431F88F73A132DD2E756DE94",
+    "aes_key": "AB278D4D71D4DFA69690315EAC610D6F",
+    "data_elements": [
+      {
+        "contents": "170117845E",
+        "de_type": 913
+      },
+      {
+        "contents": "FCFAEB51A97F49110B14325B51364275",
+        "de_type": 100
+      },
+      {
+        "contents": "82",
+        "de_type": 510
+      },
+      {
+        "contents": "D62D60EFF7C12231328DE62E",
+        "de_type": 779
+      }
+    ],
+    "encoded_section": "6490135A2E477C18D8A5D04E1138CDBBBD2BEF911000B39BE49E8FCC53C0C821C9BBBC0C024D90027F72C6072B8172256C2194121844B4EDB6C2154044FE30EF19BA68E2C1A7F7FBE0387F5764D69AAE52B0E2FC46B0A52CD08728E375B042B0F3E8CBDE3F",
+    "identity_type": "trusted",
+    "iv": "31A4BF684280A37A8030426577EB7B9C",
+    "key_seed": "912586C615BE6DD6F4F6ED12C85D9189B85E1D2FFA06AE1763BB32713ACA1F95",
+    "metadata_key": "C16D146B28A8C32B7DCB66EAB90C30EA",
+    "section_mic_hmac_key": "ADA2821A572B4B3ED9298257C200A5B73A39634117024404EC3011E7DA17D24D",
+    "section_salt": "B39BE49E8FCC53C0C821C9BBBC0C024D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BA26ABDD5164F306449CFF633AFA7806",
+    "aes_key": "328428A223099585C9ABC9ACD7911FD8",
+    "data_elements": [
+      {
+        "contents": "33222D5C84507A2B0130501E",
+        "de_type": 413
+      },
+      {
+        "contents": "1ED1B4E58C",
+        "de_type": 41
+      },
+      {
+        "contents": "E2079D383308B60A86988F3B36F491127E",
+        "de_type": 812
+      },
+      {
+        "contents": "D5DE2EFCEAD465719916DA22BF3FE9",
+        "de_type": 855
+      },
+      {
+        "contents": "84D04B14ACEC49162E4705C4DFBADC5EE6161B8D323A",
+        "de_type": 185
+      }
+    ],
+    "encoded_section": "8C90131AFAB491598665D824C89C5398CC85B9911000633957E0C51915A10852DC7A8F09400890019069C7C9CFBEA948E3DB9A4DBD040F8E776D4F3721EACE87669A8CA6FF04E51B02D67207B82BC9E6E33D65B0F33DF6D878F0E06560FA8EB638C80117FD6DFAA2B902732BAE4E8CED79420FE93D9B57C724CBB06369FE960269B80BAA1FB8020BDB2D00D72C",
+    "identity_type": "private",
+    "iv": "E0B0D025435FF6F9FAAF4B42044DE4C9",
+    "key_seed": "E75FCCB24B1405672AE7A48F64DBDFF890783DDCC42B9928E74B591D387ADF86",
+    "metadata_key": "26B8D6CA92011D8C16EA62D6C62781E1",
+    "section_mic_hmac_key": "5665CD729F01A5933E5AEEB2B38EF153D71A19E3A7A603723E2AD564CEB83D99",
+    "section_salt": "633957E0C51915A10852DC7A8F094008"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DC49AEC367EA0121D5FB188143092866",
+    "aes_key": "B42D7A6A8D1776BADA8E21C226605833",
+    "data_elements": [
+      {
+        "contents": "B3BE9AB518C82B73A3C0FB57D56C6F2A335F",
+        "de_type": 423
+      },
+      {
+        "contents": "4D96F55DA0342CE760A1832CB0A53B2A74CB529FF65EB532",
+        "de_type": 945
+      },
+      {
+        "contents": "20ACF6ACC51DAA65AEFDEBDA0D8697476D0E",
+        "de_type": 423
+      },
+      {
+        "contents": "2C3F7B88FE5F07C99978BCF68B3F5E7198724FEDDE",
+        "de_type": 465
+      },
+      {
+        "contents": "06BF37158C17DDD27C8F8DFB3EAD50096EFC8CC085D65AB195A7D0",
+        "de_type": 368
+      }
+    ],
+    "encoded_section": "B29013658EAAAEDD464C9AE3EAD5F4D5EC48FB911000739370CE2574699DE19C1289E6F976A390040B3321DA88445526B10812DB7DCB8E5FA5C3FE2602991884CF5444623FE87FC4E63086F9039CFC7B871E08F88FEE69B1BAD6730C2C4C959FBD0AD2DE89020F46CDA552DB50C50939DD58C4D7AEAC8DE212D03F3D47A13990CDA58D276DBD6BA9A8F90A623CEEB931FFA530DF6DD7F57BC1CAD71D242778783C92F855D6E90D509976F8563C9B9370849CA7",
+    "identity_type": "provisioned",
+    "iv": "FF2AC24716EF0EEBFF2CF92A02049CD2",
+    "key_seed": "DD843B0B46AD2B8D137CF22A2517E961A79EB1AEB2882986DE825056D2FC52BD",
+    "metadata_key": "F64D69CD52EE04FF9E8324E751FAF1FB",
+    "section_mic_hmac_key": "78F4F673BB14B5F7F6C4563F4D9636355C91CCB01BC021C2FC1567446A944A52",
+    "section_salt": "739370CE2574699DE19C1289E6F976A3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF7D481AA8590423266AE9663FF6F7BF",
+    "aes_key": "E47403E811D992FF13BDD5156EF15C03",
+    "data_elements": [
+      {
+        "contents": "CE99E4F9ACD8CBF8D99295AF",
+        "de_type": 110
+      },
+      {
+        "contents": "BDF065E66145184B54FE0C0CEED6CD6741404BDA57CFFB2B73102F542EBE",
+        "de_type": 369
+      },
+      {
+        "contents": "EAC4BC7CE2",
+        "de_type": 971
+      }
+    ],
+    "encoded_section": "6E90131C80766FCE663175DF597C00BD95B39B9110001568D698479F825D5637D908F813F4DF900154739ED1447C96CEB428C6C2E98F9F6C544970AA9EBE7DB216197F20B6F4B3A573F461E2025808BDDED29278410B1AE18942699647D71252759992BFFBC9F5B7A923965972E820",
+    "identity_type": "private",
+    "iv": "11B6F13C8903EE0D12233F0FB5DA1C6D",
+    "key_seed": "BFDCC2ACAA9E80AE659F652CB2FBFDA4990B805A9D4AA898D350CCCBA3CC9CA8",
+    "metadata_key": "9AB08AE1CB6AF2A4745439770718B2CE",
+    "section_mic_hmac_key": "0580E1B433054DF31F38E72764FE5849FDC54D54416CD139F34D4D444402263D",
+    "section_salt": "1568D698479F825D5637D908F813F4DF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "85B1D40513E6CAE086C28552C12FB350",
+    "aes_key": "CC37B97B5B92FB9F9D6E00EDCA6AF45A",
+    "data_elements": [
+      {
+        "contents": "14EA6D3FEAC9844D84E540D0AE1033C435F130AB1BEF75B7760E6AB9AD",
+        "de_type": 341
+      },
+      {
+        "contents": "",
+        "de_type": 550
+      }
+    ],
+    "encoded_section": "5A901328BA159A1D698C86962BBE2358C362709110008D6FDFC90CA3D1A3AAA1C766B72B5EA490022F5AAFBD03AC4ED441B9EEFFEFFEA020A82B9EBFBD20648A4CE8BF57BF728D9FAD388AD1EEFBD957EF312CB9FDFB7ECF68AA06",
+    "identity_type": "trusted",
+    "iv": "25ADEFF36CE0A5B0A09953648F7EF334",
+    "key_seed": "0454B57060C890C86592212E9A3EC7926D43BA17D4CECE8BCFE7637484D83802",
+    "metadata_key": "21D66A2461F62F2D1C0B9F66D9739287",
+    "section_mic_hmac_key": "A61711DB75D7A424E6E806F1F43CFEAE962A7F6C499622A0793A170F4EB9CBBC",
+    "section_salt": "8D6FDFC90CA3D1A3AAA1C766B72B5EA4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "02D5D750D664E288EFE7A964A02A927D",
+    "aes_key": "A3A5A8A7E672AC04CC383C0F95DCE6A0",
+    "data_elements": [],
+    "encoded_section": "37901361A89D3B7C790776967C6501726806BE9110000EB05C6B0F96C24634A63A667709215D9001255CCF12AC41FEAC1EB155D864DCA570",
+    "identity_type": "private",
+    "iv": "27A2765AE71E5B83F0480E32BE173DFD",
+    "key_seed": "2EAFB7F93967A4C45F5DDFF41E13410591E3419E65A7DB92762697DE216FC967",
+    "metadata_key": "283DD374AA19C66FDB250A312166E6EA",
+    "section_mic_hmac_key": "D4BD0787505004AC108AC3DA06C1A450057D551AE7DA43BCEBE14C2D975A8E78",
+    "section_salt": "0EB05C6B0F96C24634A63A667709215D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "125D63CB7190B478236C3747A149366D",
+    "aes_key": "0BE97B73FF512505354DAB5D6B29FCBA",
+    "data_elements": [
+      {
+        "contents": "14EF62BF82F80FB085A310A1435223ACDB920B97DDCED1",
+        "de_type": 871
+      },
+      {
+        "contents": "2CAF9EF90EAD8F6298060839624769DE",
+        "de_type": 964
+      },
+      {
+        "contents": "768E7C5B73E36F162BF105E085899DA027D9",
+        "de_type": 721
+      },
+      {
+        "contents": "A178D1480EB66B5551EC948ABD91F0C049D33B8D29360DB2EF",
+        "de_type": 198
+      }
+    ],
+    "encoded_section": "959013997F971BF31BE7F59A55046ECDE81BCB9110001F657CA6FA909CCA6C1681FC6DD0928B90043DBF611BE7A90F0905DA13400AA1A1866644AC3671290548F39EEBC9B5BD3CC18AB804DA5C77D714181A605BE5C884A5EE6081FF4591D2AF96BDFAB2546D12602EB44A3FEBAAA3E4C66F444F55A6FBFAC75DDD71D57E6A719C739492CBA1C0E73711D2A105A3B3FB2AD3237E9ECC",
+    "identity_type": "provisioned",
+    "iv": "5404FADA1301DDEEE830D6119A3846BA",
+    "key_seed": "246A732C0A2F892B057A253141C26E21F7B0ECEBEF3AEA051118FC0E1BD8D36C",
+    "metadata_key": "4B47D6D3B10A385845DF425AA1C38431",
+    "section_mic_hmac_key": "CBE07A55700BC8C0BF94EB36BB907882CB50CB667FC240FBA6AC1830DC14F3FD",
+    "section_salt": "1F657CA6FA909CCA6C1681FC6DD0928B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C5994B3FDEFF488147D2225A5AD3289",
+    "aes_key": "EEEB9A1765F85001AAB7C718544D5853",
+    "data_elements": [
+      {
+        "contents": "CF41A589C639780D91A23D762B7871",
+        "de_type": 400
+      }
+    ],
+    "encoded_section": "499013089985A0087D6F5ACE5AB3B11DC8EE0D911000DD64F5C39C94FF038BFAA44A1B009C139002D5EB61BABCC1E0AF9080528B6261FD81C25644B912DBEA20EC659DDE6F0778CDDC85",
+    "identity_type": "trusted",
+    "iv": "43C6A352609BF3D07C23F7457F7BFBED",
+    "key_seed": "FE781376ED435B876E0E7FA261BE9A2E4D7362EBE61D5C015F6694019D4246BF",
+    "metadata_key": "670F87F10099A52B7714DC7B088A9AB7",
+    "section_mic_hmac_key": "94912114FD584C0BA0F6C1C462117D516F0619F216BDB8099BEF422FA50EA315",
+    "section_salt": "DD64F5C39C94FF038BFAA44A1B009C13"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "86890C122BA74C502FAAA2B246EBFFB1",
+    "aes_key": "1A42B8762AA6E9320C32FDDC669DC405",
+    "data_elements": [],
+    "encoded_section": "37901367745F1F321A28509A1FD382E5576965911000D788AFA3591BF1E13252441A7D280B2B9001C13C4CD9EB22629AE6ACB4648000FA2F",
+    "identity_type": "private",
+    "iv": "8A763DF0DC6548AFBF6EC1526711F13C",
+    "key_seed": "660D035C9A48405AB89BF25E4F71494AC76286D993B2E8CA213BEBB6C00BB604",
+    "metadata_key": "A0E42B6646670B54D13D012B2AC9D610",
+    "section_mic_hmac_key": "3419FAD3032B38259FB4447FEAAC776F5E64DAF919AB24EAC7904709BF60BD61",
+    "section_salt": "D788AFA3591BF1E13252441A7D280B2B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A507D673235683A679F00AFF69858E78",
+    "aes_key": "74F54D0AC51AF56BE4CC75ABD624AF34",
+    "data_elements": [
+      {
+        "contents": "9E4AFE615138D74E",
+        "de_type": 758
+      },
+      {
+        "contents": "2E7BD8416782398BF01F53CD4611DC26DDD158965C2C6D55D3",
+        "de_type": 583
+      }
+    ],
+    "encoded_section": "5E9013FE192C6106C46626A96469BBC51CF37B91100060EA0FE905728A9E01B9891E5731F91590010026C008E139C9EF930ADE42C20B09FB19D70EBDA109AC5CE58F35A7F05F329D2A7F8823281DCCE0C246DF43A752DF1B571ADE24671464",
+    "identity_type": "private",
+    "iv": "371E3734A83E864FE7434D06799565A8",
+    "key_seed": "5FADFF2AFE58072B5C59C59B5114C5FE544638917F0EAA8B73B2FFBCB93C5ABA",
+    "metadata_key": "138F084E2B8D250604A01F2AE51AE287",
+    "section_mic_hmac_key": "F10F17E2EF9E66F261398CAACC64F069301D59F4C674C583941F959716435E1C",
+    "section_salt": "60EA0FE905728A9E01B9891E5731F915"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BC4A32514B46C03C366AB566227DCABB",
+    "aes_key": "319D7CB155D521DC9F2017535BE3809F",
+    "data_elements": [
+      {
+        "contents": "663DFF01222160CB8B4AF0",
+        "de_type": 611
+      },
+      {
+        "contents": "74A119294F8C71D64DEC46282D88B43F3B896420A0A2",
+        "de_type": 410
+      },
+      {
+        "contents": "89A9338136",
+        "de_type": 756
+      },
+      {
+        "contents": "671D",
+        "de_type": 830
+      },
+      {
+        "contents": "745FEA8DAADEA15F08",
+        "de_type": 294
+      }
+    ],
+    "encoded_section": "779013FC8A3C4941128517FBF0C9DD73CDD5D1911000E70075B4DB3AE7073A33D45EB9A683D29004A2BF89757731C8381C0555234E298E9786845CD199883ED9444B434A4A0C9033DA1DB45E377719B2A7A9B5DBC9A999A43DFA606028DCB57E6FC55D6F1371AC9F0E45DCF3CF2477D87B39902B34758F7F",
+    "identity_type": "provisioned",
+    "iv": "C757A65A68F3EBD6A716AF192FF956EB",
+    "key_seed": "B19A2C4A8869522DA56A328B502C3C5B54C7E272A6E77861225624038C9D9B2E",
+    "metadata_key": "86AECBDC0B76BA224B501EC73B8E6BA9",
+    "section_mic_hmac_key": "421CC07318D2A08C383681AE93B61845FA8E952FFB670340E6860D2BC29B3979",
+    "section_salt": "E70075B4DB3AE7073A33D45EB9A683D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C54051A886B449242FE691EFBFB9B8CE",
+    "aes_key": "B913FEC648BB9E3D942E6A8683F07BAC",
+    "data_elements": [
+      {
+        "contents": "1F6DE79DD0F5CEE21D5D485A",
+        "de_type": 980
+      },
+      {
+        "contents": "9B",
+        "de_type": 756
+      },
+      {
+        "contents": "560487517D8A50F671F4ADDD8827D2ADE2",
+        "de_type": 697
+      }
+    ],
+    "encoded_section": "5E901348E76A5E52F4D62ECAE0CCE82DED2876911000BFA9F58BF2E56725C08161B4F81BB459900161AF730F1FC29BFA27F62252D430C72BEC351333D47129987FB00291F43B8343585C8B48863E042F6EC34D500743C95362EA6C97213BDE",
+    "identity_type": "private",
+    "iv": "F09F6C29C92034AB81F55EE06D133577",
+    "key_seed": "9EA688C752FFAEE37FCB91894708CA03FBCFD9AB3798F0D3B1E1578972861CEB",
+    "metadata_key": "00106D80565F791BDF1612CD3E290EFC",
+    "section_mic_hmac_key": "72B11A271AAD73820E785D6C56578AB0847DD744A8E6ABD72790BDDA339F1223",
+    "section_salt": "BFA9F58BF2E56725C08161B4F81BB459"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1E40D6365164CA659D4B50F39E3F85A6",
+    "aes_key": "9B3859BC7836621D944C23864F6F3550",
+    "data_elements": [
+      {
+        "contents": "8E3058E4062EAAC88D165AA151D44DF6AF58D634245F10FD71FE3F613275",
+        "de_type": 90
+      },
+      {
+        "contents": "B2FEBB35A264B7537903B8",
+        "de_type": 712
+      },
+      {
+        "contents": "29A0D1104C283E273DD5A3895D0A3D4FB996D96F4C482487E02F09C0",
+        "de_type": 712
+      },
+      {
+        "contents": "25BA53B6E20672A6C53F19FC35388A45EEE09CFD",
+        "de_type": 819
+      }
+    ],
+    "encoded_section": "9B90130505D9ECE86F5E3EDC6FC0229F02EC68911000964CF0FBD200823DA6AE76EDC4F2C1449001298E94F4601B7165AA782D1DA74A9E274AF98F92CEFC7AAF15075BBDF016D2FA06F09167A305BADA6B4FA6B2B17AA2A3F73B85C67DBCFA1F565C07C85281C3182C301FC3B810EDD4FF195EBF4D50C1ECCF51705ACB38966B2D61E496425E6B33D2017A5692589D573F1226C182862F31C1B06BF4",
+    "identity_type": "private",
+    "iv": "64FE3459449A905E996A5730ADAC500B",
+    "key_seed": "791CBF19EAE82635964320BF77F90CDC6A40B25A714A47E2E696A03FE466C75F",
+    "metadata_key": "35402883705B38294EB2D93FF46112E3",
+    "section_mic_hmac_key": "EF49867605FEC8C35D229722B9DD3AEBEB0B434C4F4925AA3D34F706EFD87D21",
+    "section_salt": "964CF0FBD200823DA6AE76EDC4F2C144"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B8071EC0685F84D18F37D305200EE4FA",
+    "aes_key": "964869E0D50271B6944FE957380DBF8C",
+    "data_elements": [
+      {
+        "contents": "24945148BCB09A73",
+        "de_type": 483
+      },
+      {
+        "contents": "79DD087059250E029F",
+        "de_type": 440
+      },
+      {
+        "contents": "9D82CC",
+        "de_type": 812
+      },
+      {
+        "contents": "775F99E59CCE70FCA9D050DD11",
+        "de_type": 305
+      }
+    ],
+    "encoded_section": "6490130CE57E93E2E8A432D77023CB6590E0B6911000F746162C91A850D8DCE3BD3A9090C0429002AFE864CCB7884BB9D8AF1C927C847FF0DFF33898E5AC6DDBA9A741956A4B488D5BB52C343B6FF4D9BB888D1D4366E357CDC20BCCBE05392091D18F8961",
+    "identity_type": "trusted",
+    "iv": "1CE7729EB320E531F4C3C60EE4C59AA8",
+    "key_seed": "0D0FF621E557488CE9920E1DE78CEAC7B0D9666B21443FDC57EBB108FC1DDA86",
+    "metadata_key": "9E53DDBB1F1FDF5E5899E62210663BE9",
+    "section_mic_hmac_key": "E656B56AA9B2A4A91571D7C6F593AC20AFE90E83E0C13EFA883E20488E37B487",
+    "section_salt": "F746162C91A850D8DCE3BD3A9090C042"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9C13345061898B01207C68614DDA532B",
+    "aes_key": "AA5B840D4BFDC99B8AF79B584CE12E84",
+    "data_elements": [
+      {
+        "contents": "A1F81F14E46B",
+        "de_type": 390
+      },
+      {
+        "contents": "A42D01AA6C08",
+        "de_type": 160
+      },
+      {
+        "contents": "9AE6B3E298",
+        "de_type": 937
+      }
+    ],
+    "encoded_section": "51901310EAEAFA6AC17122CDCA2573D355D0CD911000CCF8CC3D63587712B4E731FD35EAA3669004B915C781CC1ED7331474C7BC423AFEAD113D1B25C0E94E69E3EB59894678D87BEEBE96355C09DDD32C4E",
+    "identity_type": "provisioned",
+    "iv": "95A37DC09AB387CE11030FEB6B1C9DFA",
+    "key_seed": "B570342527343884EF1CB5BAE4228CC72A19C439402FC11E449A4CBCF50F7E3B",
+    "metadata_key": "46EC49AFA765AE05F70C74DCA5715DBC",
+    "section_mic_hmac_key": "0388A70B3DB58C158BEB9A21198BD81FDA14300D6FD4527C80B33E7929C21021",
+    "section_salt": "CCF8CC3D63587712B4E731FD35EAA366"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DCF9E3CE0572EA0DF42D4A555A23592E",
+    "aes_key": "ECB0F2C8BC9E75FA10F8EA4B4D8629D5",
+    "data_elements": [
+      {
+        "contents": "8920EC9E22CEE0DD1C8ED84CD007DABD37160FC8AF0AE95923",
+        "de_type": 728
+      }
+    ],
+    "encoded_section": "53901313FB99AE0E6BABC8B4849186D87DB4A89110002EBCF33E80A1C8FEF0FEA18D38F4B6FF90028EFBD0ACAE3981D4191B91BD4A7931FBB7AB9587A17D735034B8B94B2E0B5E4B99E1074CA04F4D136AE760D6",
+    "identity_type": "trusted",
+    "iv": "4EA1AB449CE1ECCF1D975F94E111F508",
+    "key_seed": "8817390FE2DDA73E10454028375DF6167C737A41591E2F8BAF9E6EFE8185669B",
+    "metadata_key": "EA92B90A39ED2CEC3D5D61B74B07A356",
+    "section_mic_hmac_key": "ECE846A0D0C013B82CFB53C18F7D044FCD7E53B027F2B562CD43EA2AA881C343",
+    "section_salt": "2EBCF33E80A1C8FEF0FEA18D38F4B6FF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "295C4F693C6ED0E9B8E92727C5F4A7B4",
+    "aes_key": "A45CD64E2DC93AB7FC688850CD3B3FB5",
+    "data_elements": [
+      {
+        "contents": "65CF460752C1B9676A2049D19BDA1CD3F2",
+        "de_type": 43
+      },
+      {
+        "contents": "7BDB1C4245F476F0E1CFB5F1491C5C0318416011AA69",
+        "de_type": 45
+      },
+      {
+        "contents": "22756DE6303A1311BABFA22E170E9D1F",
+        "de_type": 762
+      },
+      {
+        "contents": "6F23",
+        "de_type": 329
+      },
+      {
+        "contents": "480AEB8EE08170C1D5FE904B5BE9DA2AD094376598DE0F70548B705A25",
+        "de_type": 828
+      }
+    ],
+    "encoded_section": "9A9013BC95851D486FAA4EF13F6D7A5AD6E6CE911000749C9EEA6B4A6792229D9E531152124890015B7124853389DBD3B5CC2524AD1C434B2C10214716D89D585E8FA0F55E1CA11B4BC8C262D1BAED2019E61C815CAB00036B15424E1DEA61A93DEE90FE4663F3EC04B1010BB7A178F47B6BDB61847DD9B9A88D35CE2D9A247968F93549D09CF01A98F33B87F038EF995137DADC3D9E2C908D61E7",
+    "identity_type": "private",
+    "iv": "CCA81A30F3887FAC55CC619C978C0B45",
+    "key_seed": "BC9DF6FAE9C35B873DE0FE4AD8CF11245105B7AC518D80498A5205BFB35074E9",
+    "metadata_key": "32A45452147E1B0A64313C39EFA855AD",
+    "section_mic_hmac_key": "B25364C8CBF115BF9A46287B759768B611CACEC692152D0DBE125FDBB3A8829F",
+    "section_salt": "749C9EEA6B4A6792229D9E5311521248"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "12571F71243CD373229D0C7BB8D30710",
+    "aes_key": "49B6E023B58BB34C272F807D5DA0A938",
+    "data_elements": [],
+    "encoded_section": "379013715C03AC7E1419D8D44694F5A4CB6266911000D55A403C5DEAB9883326E5B111C522049002CED99F5612149B9FDB72B03FADF057D9",
+    "identity_type": "trusted",
+    "iv": "B0B763E4D08FC218A318A378EBF75E8C",
+    "key_seed": "16003DE1916A0820BE43D32BFA1629E67FA83CA01723D4FDFD95746BC16BC7A2",
+    "metadata_key": "A3605E523D0C4E8CA3787B141CABDF32",
+    "section_mic_hmac_key": "13E544ABD5FD671F496322D77A4446C3B77ACB007F746A4B948129500045FAA7",
+    "section_salt": "D55A403C5DEAB9883326E5B111C52204"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7856ACD18EF6930C9EE065073F685E8A",
+    "aes_key": "F6A6945E6C274AF90CF773F8D4FC6FF0",
+    "data_elements": [
+      {
+        "contents": "DBDF1692FB5E018F0C49A7",
+        "de_type": 908
+      },
+      {
+        "contents": "028A7815CFF85F0AC6D5",
+        "de_type": 291
+      }
+    ],
+    "encoded_section": "529013CA6D31C6A12CAE2D2636712A77C22F51911000884B1C54E519FC35F64802BFE939E6929004B056A9831532176B1AB6F17B7577C994EAE50667C44842ACB793918F39962150F1EB4AA0E520277691063A",
+    "identity_type": "provisioned",
+    "iv": "6F79E25D027B6E4186761C47E6E1EE0A",
+    "key_seed": "A891081463E0C9FE931B23F137879FF4B344F2BCB31D5FAEA2A8BFDDF5F13781",
+    "metadata_key": "07210356E3A7C4AF1B88209799127A55",
+    "section_mic_hmac_key": "9DCD53D49928551A914A807FFB85660F307480AF464ED3691142DA591D79C951",
+    "section_salt": "884B1C54E519FC35F64802BFE939E692"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A45B0515F2A249BF7B1387CB70901AE",
+    "aes_key": "021CF92CE743805B8DF93B88E6AEF0D0",
+    "data_elements": [
+      {
+        "contents": "08D11FED65701B3A3F5402894F1165",
+        "de_type": 677
+      },
+      {
+        "contents": "F49808BB6625467F86",
+        "de_type": 810
+      },
+      {
+        "contents": "CC13627179B6B8AD3F84",
+        "de_type": 889
+      },
+      {
+        "contents": "2C2EBC4E0F92D24D03A867AD8B07300E1F81BFEF9AE4C2B3F980",
+        "de_type": 950
+      },
+      {
+        "contents": "E55E101A8EF67E80A3AE5F8A0D1A5C1F37B627870B9D586FACB5A718EAE7",
+        "de_type": 760
+      }
+    ],
+    "encoded_section": "A090132E71DE6700AA3E0C1C842F31A135B2D5911000562D7ED3A3EA4D2620E92FA7DD128BDD9004035EE5E4CC870B7B1B812CF79D4719E2676E5E2AF7CED20BB42F45CD7F9B8ADC660E976D664DB7B10D049EDBEE2B60E69700410951E62CEBEB4EE089730CF9B259A2B651223902FF17B6FF7C025109F7AF444DB9C2DF564E676B720C0B99C0A9B84DE4D6FF084AEB943B95728F94BB1C65E44CE6C5A97A8847",
+    "identity_type": "provisioned",
+    "iv": "6AE6067877803C9B82D5B30A6792FFC7",
+    "key_seed": "1FF1D25A12210940D973C467FD115BB4B7C906C3FB38D21F16BE63744E016B5A",
+    "metadata_key": "CFF931305B876F2DBF5BA261EE9E8D17",
+    "section_mic_hmac_key": "467241B19A991B7AE839D5AA1DA92038F7389ECB55796C6C6B5B181070E23EC8",
+    "section_salt": "562D7ED3A3EA4D2620E92FA7DD128BDD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "485599A65B35D21A40658A9E2766B597",
+    "aes_key": "8663ED345FECBB713029DC829D74543B",
+    "data_elements": [
+      {
+        "contents": "E9",
+        "de_type": 810
+      },
+      {
+        "contents": "6E6E09DB0F2355AC2B3C",
+        "de_type": 404
+      }
+    ],
+    "encoded_section": "4890138E055A46A940DFF96DF637A5EFD7B93C911000E0A1D051D8D533CF3E77E10A5F8B6C0E9004E4E7C9C6EC8AFC814102DF0DBCEB09A00938F75F24DE48ACA96EB524B708D6D545",
+    "identity_type": "provisioned",
+    "iv": "8561B433E308C0D1CA6C9C91BCF0FF81",
+    "key_seed": "F3F4C98BCEED47C4E562B406D4BD793926B20945745F48D0EB78D5F31F9F2BCD",
+    "metadata_key": "308BB628E7DECE141A7C5309ADBD6A62",
+    "section_mic_hmac_key": "0CB4466330332C9FCD21DF8388B1A82C1384D041924657423091BF61A5199BF4",
+    "section_salt": "E0A1D051D8D533CF3E77E10A5F8B6C0E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0483C23ED6D77A8D0C278940BBD177ED",
+    "aes_key": "0621EC75B3278510C3093EC0603EDCF4",
+    "data_elements": [
+      {
+        "contents": "417A9B78",
+        "de_type": 640
+      }
+    ],
+    "encoded_section": "3E9013B8E0A03E4AE2E7C1B9F25ED66EA06746911000B48692BE5AFEED1AFBD1184172C7C7969004C1B7DBD5F3B1FD26360B730588E7A5D9AF6677656E2307",
+    "identity_type": "provisioned",
+    "iv": "14AE44FB4E180AF23246ED81C4286150",
+    "key_seed": "A0C7A5E03E6FEA711AAAEEA331CF2B1FC7FF1E9B11D45910ECD2C5B9DB4393AD",
+    "metadata_key": "F190DAF1401184759B968F030ADC4C41",
+    "section_mic_hmac_key": "969F571D76ABDBECCFAD193C906C94295C28257C8B6595A08FA511ED4107B32E",
+    "section_salt": "B48692BE5AFEED1AFBD1184172C7C796"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "22663881121C84CC788A4F6922C843DE",
+    "aes_key": "0F81827BB3D0C01DCF64D7E758984BF3",
+    "data_elements": [
+      {
+        "contents": "68C7FA8F642F7EA1691EA458690F29479E21B04CBB109FEF",
+        "de_type": 811
+      },
+      {
+        "contents": "8A0F88051FD567DE679BFB29095332F265EB034173FB9CCFA5",
+        "de_type": 435
+      },
+      {
+        "contents": "7248F229F7C3561570",
+        "de_type": 431
+      }
+    ],
+    "encoded_section": "7A901340369C7D4FCB569C613A49C8DBD0329B91100018EA0774B5EAACC943949E550BE9BB3F90027ECAEE8A6F71B9D7FB08EFE2E3703DAFAB895EAAEB766E0553D865D90BE25DFEFA27648AB16D8B9C9A6D9D516DA6C8D98A3B0347742CA933963AD32B77090A10B631362604FCD808CE3CFDCD1F55501CF6F591",
+    "identity_type": "trusted",
+    "iv": "619245F3980B3B070388B0E858E58611",
+    "key_seed": "3F58BFCB2F818DFCCF2B1A1DC6EF4CC4C30B798F65DBFD6CEF0FBEB2DD78D6D6",
+    "metadata_key": "19C7DFBC68C5918D20EEC53476B394CC",
+    "section_mic_hmac_key": "C7434DB05FC2B8286FB317867A78B34C7344CFF20EC1C4C7AF58D2DF66FDFE67",
+    "section_salt": "18EA0774B5EAACC943949E550BE9BB3F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7F398DEAADE4F63E3321618AC28B0A8E",
+    "aes_key": "0218AA8671D3E2E3B9EFE1B5C4C11581",
+    "data_elements": [
+      {
+        "contents": "9323424FE556B495790619DF9DACC116",
+        "de_type": 37
+      },
+      {
+        "contents": "128970C823632AEF313503B1",
+        "de_type": 782
+      }
+    ],
+    "encoded_section": "589013F189A6CB59AA3A5558AF3E6A708542E29110008454882DDD820F52035C40B1D5312A4C900428991BD1031F9679D03ED9FC6B252EB552937EEEB002F5948495D55B8C19BDA0EF0975100A8CCE558ED14FB7CA41783BA6",
+    "identity_type": "provisioned",
+    "iv": "548A8956100DE08A0305C789B52833CD",
+    "key_seed": "5B76B5CB1E81CC93E525AF117B8251E0F61C5DA57E4FA328E61A5BFAB48718C4",
+    "metadata_key": "CE0A85F582B746AF57AF0349E3258079",
+    "section_mic_hmac_key": "67A13CACBAB11819E8EB4E22F9F81693557DE288C42AB3731983D0C1B3C4FF76",
+    "section_salt": "8454882DDD820F52035C40B1D5312A4C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E86E43C49AD176E39A0AA9821C78602D",
+    "aes_key": "BCD5E866510A0A5B815385B383B22AE7",
+    "data_elements": [
+      {
+        "contents": "EC",
+        "de_type": 581
+      },
+      {
+        "contents": "59789A920867697109C3740D0B8029F1CC7000FF04EC0940",
+        "de_type": 978
+      },
+      {
+        "contents": "940D7B076B6CBA0B73872A012345F3BA97410D8709501262839D3DE137",
+        "de_type": 135
+      },
+      {
+        "contents": "E261435EBE",
+        "de_type": 88
+      }
+    ],
+    "encoded_section": "7D9013EFC8FC9DAE00AF80415337DE30A6E31A9110006E869407F2E81551F812020C3433D0E1900254214E6EE97EEF7619C5FB9880E26357ADA5681E80DA9C8E367034D066375C0E8B834CE14A1AB864C7EC310AB35FDCC21167922D8192D0C782DB32A745BFC329176791D090CEE07B7C2E292EDD1DFEE41623C9555EF7",
+    "identity_type": "trusted",
+    "iv": "65C99C5FA0A0746E69C46E0C4A857592",
+    "key_seed": "BEA6260AB3A2F619ADB859391F6A6CA28177B84CD449C728F6189F0467F525E1",
+    "metadata_key": "7DD064AA32B3E04C57BF54B824641E1E",
+    "section_mic_hmac_key": "6660174157DC50F6D1C82D1C8D416C0E6EDCA0874333C3D94B46926CFCB12495",
+    "section_salt": "6E869407F2E81551F812020C3433D0E1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B040969C351F81AE34697DC725DEAC92",
+    "aes_key": "3AF9FD8F0D0707DA73D7688D0CA0D2A4",
+    "data_elements": [
+      {
+        "contents": "131A8175D19006DB8D9021",
+        "de_type": 125
+      }
+    ],
+    "encoded_section": "449013A902FC6AA6817E9CA34B810932FCB9FD9110008681C5D8FBCC1970B3C6D9F7083FF9E9900475EF1E2E01C84DD0353766ACDE314778BA6ECAEAB9D9A63A60B5578C96",
+    "identity_type": "provisioned",
+    "iv": "8C96BB516E8363C0CD2BEFF0AC4CC486",
+    "key_seed": "637D181D26E0CF8BC0CE45DFE20610F6EAA306196A0C22BF51DEEC49E1A33DAE",
+    "metadata_key": "FAA1CBAF42E95200D71F3BEC89C79671",
+    "section_mic_hmac_key": "CC1FBEF9A592EB51101E67FCBA18B5FC3DC62CA157CC01ECC68B9BCD643FBF0F",
+    "section_salt": "8681C5D8FBCC1970B3C6D9F7083FF9E9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "259B5127DF0CD589480E4C1AC87A2186",
+    "aes_key": "4188F8C94E54114D83CCDBA4A51A1BDB",
+    "data_elements": [
+      {
+        "contents": "A0382BA41C0E9E669742CCC8830D5573AD19",
+        "de_type": 851
+      },
+      {
+        "contents": "624153",
+        "de_type": 573
+      }
+    ],
+    "encoded_section": "5290138B66DB3AD592825ABCAA7F300DBAD488911000D13AB39D6F0C08DE53F3B616CD929F529004A5838FA715D57CE71AF1A64E317091B45E3310331738129691565D4839D38D4D6127F0235BA458A90A2766",
+    "identity_type": "provisioned",
+    "iv": "0235DBFEC90AFAEB878738BB174A8EC4",
+    "key_seed": "E8E501A2579003EDB979B9C5B4C806B4A428D23DA93761D2C8031169BFF83A49",
+    "metadata_key": "236C4FDA97FD30586D9FC950F334367F",
+    "section_mic_hmac_key": "D28C28C41D9CD5B0481A62C0CEA0BF13E4910DD423C1D93C37B507D32D33DB8D",
+    "section_salt": "D13AB39D6F0C08DE53F3B616CD929F52"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4C5AB029E86C38CBFC138696992D680",
+    "aes_key": "82DDE2E32703369FFF54C2119F64CAE8",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 580
+      },
+      {
+        "contents": "FB89815745BC95",
+        "de_type": 244
+      },
+      {
+        "contents": "2C17D2FC866D81525A7E8595D271C871B96942BE",
+        "de_type": 376
+      },
+      {
+        "contents": "4F42923EFBCF460A8D860BD405DDCA46F7C9DA0F9232E0EE23BE8B97",
+        "de_type": 778
+      },
+      {
+        "contents": "75924E160C",
+        "de_type": 857
+      }
+    ],
+    "encoded_section": "829013DC35D4DE7558FE79F6AA7C452F808B9E9110008F239DDC995DF4C680B358A8799066669001C201BDE177845AA6604EB7B7AF789F5B7502B5F6B6E546EA0ACDC9715CAC6D0250188744CDC08F61E13BF0C177E9052B3866BBEE1939A20D19BCCAEC81F6B365164759EB3016EDFDB09B0064C21C15EFAF9A9E51EE666D2B8D5174",
+    "identity_type": "private",
+    "iv": "090B960514A2ED05926303EBB8DFE844",
+    "key_seed": "117205E1E7B6CBE3FA0DCD6A5654D6D4441C86E3F1D2CD8D14E9A00A50F44A79",
+    "metadata_key": "E29007F32F7ABC691ADB2154678D5033",
+    "section_mic_hmac_key": "06B6CFE233713E34981D8C0B59B6BE1471986D027521B7DD6A9690E3E74C735B",
+    "section_salt": "8F239DDC995DF4C680B358A879906666"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BE9ED7A60A893A866CDD037770626A2F",
+    "aes_key": "7DCBF0B035A5999D3B459BDDB37B9396",
+    "data_elements": [
+      {
+        "contents": "2EBE52B4DC1044C8",
+        "de_type": 760
+      },
+      {
+        "contents": "C061BDBA02F6C0E30E0DCBC8299DABEC493B",
+        "de_type": 472
+      },
+      {
+        "contents": "21",
+        "de_type": 20
+      }
+    ],
+    "encoded_section": "5A9013411A3B5ACD35928ACAD6914239129E329110003099AE6FC3D8669851B51D620A42D12490021B9AE05BD61343867C3C240280327F3246B377D7395B554EB49E6A77370AA68674ABB2B6A256306A1F6719625FB54CC895CD4D",
+    "identity_type": "trusted",
+    "iv": "9D72BBFEA0497D1DA4ACC45BB2A90377",
+    "key_seed": "94F97F6C1E46E30EDC42E6CF6D4B8A1BAC6ECC27853F85B2C8812020CEE49433",
+    "metadata_key": "4796CE9A597223DD3B0FA429601A6835",
+    "section_mic_hmac_key": "E480E1D001AF6DEAB85E05569F89C554C91B4C10782D524BB531C0923E5250A8",
+    "section_salt": "3099AE6FC3D8669851B51D620A42D124"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A9CB9CBD617009C6886517BDCE283660",
+    "aes_key": "33CAB010C3BE276797895D0CBB60AF4A",
+    "data_elements": [
+      {
+        "contents": "D5D03D064D9C1B5E9A5C4843B275C3CD",
+        "de_type": 202
+      }
+    ],
+    "encoded_section": "4A9013A93E5B9A890CC11B51885D93E342F9389110005A3E86C86385ACDEC0F67A0F951409459001AC946618BCDE275AB4E5C0B22C054AF7D38CA4BDD5EFACC2BF163FF305CC85E79B26FF",
+    "identity_type": "private",
+    "iv": "4C11908D956A1BE7E5F376D7A95379DF",
+    "key_seed": "26EA70FB5958B3D30BE5A4B674BF26C35B1165F1167D4D26C2D4FE89A95C444E",
+    "metadata_key": "450130FDC1E9E917412A844B0B6965F4",
+    "section_mic_hmac_key": "17D847BC251573C504C4A10D3C9D76CBCC4D8D59C70AF2FDEB8BBAB809195D5A",
+    "section_salt": "5A3E86C86385ACDEC0F67A0F95140945"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8DA30D413D04342787231D2F4703060E",
+    "aes_key": "73D393348C0CE43988E36C73C2801695",
+    "data_elements": [
+      {
+        "contents": "5AAE629F32372A1DAD4D4214BE001D6004297951F2BF14A958",
+        "de_type": 250
+      },
+      {
+        "contents": "71EED7E50F377AE422EE9A62664C63B6E8FE7414A9972E",
+        "de_type": 997
+      }
+    ],
+    "encoded_section": "6D90138CE8BA256E0D3CE40503F1380555F4F7911000BB2EB1934C4103EE116FCD3227F2E7069001753ED1826BB108753950EE7BA87DAFBC1B893DA6A95349D954690CD30E420AA407E8E7C19B7EEF39A868DA4EDD7F4D94E30A775DE0C1853EFD8376B7E913D57B9B22BD228340",
+    "identity_type": "private",
+    "iv": "B1A2C2E8EACB2DAE589BFBCBE73936CD",
+    "key_seed": "444A7A142BCEC48DECD9BD96B469078C247A46A276589BC49278B46DA1E66898",
+    "metadata_key": "CDF23D34FD5AE8DCFA43439FA8C1DC83",
+    "section_mic_hmac_key": "EEACF4F747FAF85850228F313592C4A866FF0203423AFE73AD8A784C68194679",
+    "section_salt": "BB2EB1934C4103EE116FCD3227F2E706"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4E79E2C2CE7D1E7F2B4C0E1B4C6FFC4E",
+    "aes_key": "686366F14F36F2790F49961D570E31DE",
+    "data_elements": [
+      {
+        "contents": "79A5FCD4C4",
+        "de_type": 275
+      }
+    ],
+    "encoded_section": "3F90137BCB86F08C9E2472B4D7865E8BD67102911000979F2DF1B430F042258DB96F09AAD2DF9001DE6026894781DF90B574283521D90A8717B44B9B83E93441",
+    "identity_type": "private",
+    "iv": "CE4D3E400223D202DF6364CA96D7E81E",
+    "key_seed": "2228A838E4A0FFEAC5045A52ECD38BEA130DEAE56F87E848D347EB39DE7A04D9",
+    "metadata_key": "28D3DD52B97F54DE9D11725E5BF0DC77",
+    "section_mic_hmac_key": "A08E5F1CADE33CEAF811625E4F2431704021BD148A11C14E628A98F81F266BAB",
+    "section_salt": "979F2DF1B430F042258DB96F09AAD2DF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5E29E2EB2092471CED1528AFADDC750D",
+    "aes_key": "737BBD18F03E6F059B322E4984AC52AD",
+    "data_elements": [
+      {
+        "contents": "7EB2",
+        "de_type": 976
+      },
+      {
+        "contents": "BDBC400C6F43C492E5BC65B89C6A4F7F",
+        "de_type": 716
+      },
+      {
+        "contents": "4C",
+        "de_type": 151
+      }
+    ],
+    "encoded_section": "5390132D49C0DF41955CA5679606D637200C9A9110001AE616ACFE4F0F208FAB57B1798342BB90020334CFDDB0B6CE4BC468F665A6D3E9848C4EDBF35A9F75066415684A86653A4C961ADD30DA100FA9D45AB391",
+    "identity_type": "trusted",
+    "iv": "5D03AFC4DBB2F4EE8754B67BFC78BFA9",
+    "key_seed": "9DB1FF1FB929DAB1AE43C57DA23E8F85253E8FEE48A2BB00C3F6034DEF843692",
+    "metadata_key": "242B7758F74E2B36DF8E7D81150606AD",
+    "section_mic_hmac_key": "4C0D23B47C5E9382FA9885B053CB40936954A90B59F2401BA4C0EDBE229A513A",
+    "section_salt": "1AE616ACFE4F0F208FAB57B1798342BB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "242CC33270FB75C2FF4AD84277688FF7",
+    "aes_key": "EFDE819D904C83619D2D30E4D70B8CC8",
+    "data_elements": [
+      {
+        "contents": "12529277C5D50C8A4F095B89345B",
+        "de_type": 507
+      },
+      {
+        "contents": "63BA0A52CF5AD99CB9195FEC1DAE109ACF988B7BB17282BD",
+        "de_type": 1
+      }
+    ],
+    "encoded_section": "62901383DE207E70B383FC58B678E7BF4C5F419110008C5E1F088294820FA32847D46AD64CD99001E9A0818C660D4C99844859DCF57F3D97D58E724BB646F119976FABA1133442628E2C0B2F46D86BBFA1853D6C5ACCCE677175CC9426CFE14B8AE6A3",
+    "identity_type": "private",
+    "iv": "496EC166AF60125F0446D500C3C3819C",
+    "key_seed": "4D7CCAB2C94F07DB0EBAB82519938066F522CECB330EBC69EAD51162FA850B5F",
+    "metadata_key": "C2F07402322F9CE5371684278F3E2135",
+    "section_mic_hmac_key": "C706AB65E845183DBDB246542F2DC17AD0B9F185BD72631BFD48648E84B2C19E",
+    "section_salt": "8C5E1F088294820FA32847D46AD64CD9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "838C29BC8D62B7D297AA86FD6243397B",
+    "aes_key": "A72506C80E6101E8215D5ECD7CC6676F",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 831
+      },
+      {
+        "contents": "11ABEE",
+        "de_type": 750
+      },
+      {
+        "contents": "A99BBE1C3491A3F8E9FF3275512D74FBA0E11A098F279BF2AAD24A8E",
+        "de_type": 180
+      }
+    ],
+    "encoded_section": "5F9013B302168E039F6DF5F2FF279877BC1B6D9110005825ACEEA13D43300CEC795C9B920143900121D5C02870290006416E2234FBF50EB66BE0FB78C922B7C5066877C09952128FAB2AA8C264716E1FFAAAC4BC1428DC23A61546EFA39DE256",
+    "identity_type": "private",
+    "iv": "F1B9213795CF50E84E407BD7183C35AE",
+    "key_seed": "0900BCFAC049F0F0D650C4FCDC0D6F2E1D92A5F60B1E8BB145ABB628AE5E58ED",
+    "metadata_key": "FD4E55647EC444ABF650341BE49BD761",
+    "section_mic_hmac_key": "940BDD8441E16C1D3664C7A47FD3453C7DD9090535D53E84609CF8CE3410CE71",
+    "section_salt": "5825ACEEA13D43300CEC795C9B920143"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "608E20905F4D098AD75DE34EBA3CDB0F",
+    "aes_key": "12C7CDA60ACECF2B3D80CA63FB0CE287",
+    "data_elements": [
+      {
+        "contents": "15F7D3848623835A",
+        "de_type": 717
+      },
+      {
+        "contents": "5A745E",
+        "de_type": 3
+      }
+    ],
+    "encoded_section": "46901316E172E08886A7FBEBCC5B3AA0B17832911000F09EAABD05333528D512C8754644B8AD900467F1A59A78636BADDCEA44E2893670AF125640CBE4AD92E0C2660E6B8FEA55",
+    "identity_type": "provisioned",
+    "iv": "B23BF0D8170F7217B2D653298DDD2F85",
+    "key_seed": "EF6FA69F6234C814FE90CEACF8312CD80CFFE80D89B2F4D95E7B8D3E2CEE31C7",
+    "metadata_key": "1F0CFD60026CF03DE3CA79B50FFFB3CD",
+    "section_mic_hmac_key": "3C3E1B060458BACA20D16BDCB96BD91B5FAE8216ED5EBC29943EF8C6B02C3C86",
+    "section_salt": "F09EAABD05333528D512C8754644B8AD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C10B4E56E4683A24D3909A366D30B66",
+    "aes_key": "1F64C99EEDE773095F8E5189F3F9A7DB",
+    "data_elements": [],
+    "encoded_section": "379013AD9EE886E64FB47387AFA86F92431ACC911000F0A95F8B37A126FAA7403D8A3AEC350D9004F4D183272101D5C8C109012B210A5C67",
+    "identity_type": "provisioned",
+    "iv": "342C3BAD447104821279EC85291B0475",
+    "key_seed": "B2101BE6844AE38B5AC0D33C747729B1F09E4C8900EAA870412268A94852B40D",
+    "metadata_key": "91F63DC00A30570F6205FDB025AA95A4",
+    "section_mic_hmac_key": "3065A710A4107F326F25360F6E498B7375AFFE566A86DEFB62D254C67EF089BF",
+    "section_salt": "F0A95F8B37A126FAA7403D8A3AEC350D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D94830ED029B92E5B29E222F722B9B6F",
+    "aes_key": "C57D61016B89F28132CA0B4CAA8A1CA0",
+    "data_elements": [
+      {
+        "contents": "402E4416B0C352C40F1163D869B8B760C17457D6C3",
+        "de_type": 188
+      },
+      {
+        "contents": "51248E19812A467000",
+        "de_type": 62
+      }
+    ],
+    "encoded_section": "5A9013EE7189D36F22441A68DC1425B2B4A411911000CFF8A395F22500E8EBCAD614762CF95890018C3EE3D4AEE5CFCC9E2D3FA21E1B79F7D2D3C7364CAA0F33952C56709120A420E36A8443D4870413BA5BD27BE985B58F824AC0",
+    "identity_type": "private",
+    "iv": "DF4774BDDAC6C269773CD0978A6165C3",
+    "key_seed": "346411BF7C90DD0794DE3F6C9DA0D22F6B0A59811E164CA362548BEC7B452A9D",
+    "metadata_key": "D440B77462CB03579C051678FA0C9E06",
+    "section_mic_hmac_key": "70A01DA6C369A6B9ADE05B5C57EB0D5086D2A4EF2BE3745CEA1EC3AADB0EE1FC",
+    "section_salt": "CFF8A395F22500E8EBCAD614762CF958"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "655526F2B3BD4707D603BACC74ABB7D8",
+    "aes_key": "FCE4B6C8FD25716486D3713F4331B438",
+    "data_elements": [],
+    "encoded_section": "379013D596630672DF75A4EA5478E59232E39D91100095894B2B79D0B4A3FAD605E277AA33A29004DC96C8EDCD236F241AF6E6AA6DC69752",
+    "identity_type": "provisioned",
+    "iv": "E890D5EE6189B3BAB5FFDBC0AE63CBFF",
+    "key_seed": "79B865DE8DA7B8930812A3D4E627A1CE74476AA1BB51116CC6B43A0E0C3ECAF5",
+    "metadata_key": "0FAFAA9D6FC46F82384F0D12FB7CD252",
+    "section_mic_hmac_key": "927666232383A3029385567EC2BEE80951FA4ECF87193393D76E545F3EDF131A",
+    "section_salt": "95894B2B79D0B4A3FAD605E277AA33A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A03E7E784F3434A59007980D905D9B94",
+    "aes_key": "4C68AC909B3117588857C08E1372E532",
+    "data_elements": [
+      {
+        "contents": "184F372DEE00B3F9ED09A7BF86363D488330FFF7C2A0BF099257B3236C",
+        "de_type": 301
+      },
+      {
+        "contents": "9A6408F59389014B219E5B5AD8160848ACA710DE893162BCC2",
+        "de_type": 713
+      },
+      {
+        "contents": "5D3D783CEA628D3E482D801AB6B1E2",
+        "de_type": 799
+      }
+    ],
+    "encoded_section": "8590139CF16293B97917755ADBEF1A013CB4DC91100011705C1239A7475C4A716F4C78B1C8A29002D00DA5542C9AE536C8295452971C87A93A5A15D6C531300972C9451FC7F2644E5803E6E2ADACB793DC59AE0BEF3ACE6E06F03991C717782A35D5DB04914ACA3DBA25CFB011C3A55933FCB48DC19D1938DEC79B8019285B5394C67E60E4D2",
+    "identity_type": "trusted",
+    "iv": "6A675C10F654A737352FA395761C8645",
+    "key_seed": "A5A12D4A886399DE973FDD1D713335DCED621F1A9912397CF17589F2921C3B37",
+    "metadata_key": "F0354D2E5C76AA746DEC6F428377CFFA",
+    "section_mic_hmac_key": "B5FE7969BAFFDB41E39B07E4272ACDD8F2959147C8A3524FD34895B1B4AF1215",
+    "section_salt": "11705C1239A7475C4A716F4C78B1C8A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6FCE962D651CFA1D1FC26D80D2766F41",
+    "aes_key": "B4B66DA5F5812D38A75BDDD3D39DD03B",
+    "data_elements": [],
+    "encoded_section": "3790132AB715C6AD8256E26D58639B9D263A4D91100078185D32370D3883575CD08D246320B69001F7D0D2D1DDD55101513DB171CA62205A",
+    "identity_type": "private",
+    "iv": "C1E034C75C6B7F6FA8FD225ACE7198F9",
+    "key_seed": "B1CCC7A6A5647E35926BC885BC1462888401B75E7E873A160D9078009E176224",
+    "metadata_key": "8D008DB1E71FF2FA4BB7846A6EB5957B",
+    "section_mic_hmac_key": "B60AFA9229E0A951BE1EF9C112E0DC7E5BAEFB8EFD6C4D87C49B12AA9FDFC246",
+    "section_salt": "78185D32370D3883575CD08D246320B6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BF2838A458097277ADCBE68878A11EDF",
+    "aes_key": "A42FB4383593544F9CD02358F7450E3C",
+    "data_elements": [
+      {
+        "contents": "9AABF3A4911F54903A7A585C5935598A17AC1BA1730F11BCE2",
+        "de_type": 220
+      },
+      {
+        "contents": "DBE8AB3119CFACBA0616EBEF11805BA7DB4C6D8EE936A0C75A585C3731",
+        "de_type": 109
+      }
+    ],
+    "encoded_section": "72901311DD08CE860EC740F5AF704F4ADC6197911000A5915C75281308C25817A519495433AE9002ED9804291B041DF22F1132D88C7AA514CB99C25507964F71B3E681BEC95DB43D36ECCA071FB2EAB77EC221F2814F09A6407F6D6DDF2EE971EEB161A2E4723C08C3D8907207D24940AAF9E5",
+    "identity_type": "trusted",
+    "iv": "B1C915A96024FB361DA2E9E17D7C8666",
+    "key_seed": "D679DE42650FA520DC444F00DC53331B27A4204BE69BEB44794C7566C616CBF8",
+    "metadata_key": "76A213E2A9FC5F503DD5C6E48151E973",
+    "section_mic_hmac_key": "F5A02393A6338BC5D6F1099318530780F0A4AF604FEFE53E948D55487CD6C14B",
+    "section_salt": "A5915C75281308C25817A519495433AE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7DBCB27A82A7D1338F3F078D12EF928C",
+    "aes_key": "EA6B8BC0D8703795277414578517CE68",
+    "data_elements": [],
+    "encoded_section": "3790130BA98A4D2047B41A35E80D49E0D91691911000670F2BAEA4F3B15AE1D3E0A72C72C9209002DB5533D4335FD2C3B6461A9967D344A2",
+    "identity_type": "trusted",
+    "iv": "758D967581262F3882B691B017798245",
+    "key_seed": "8B3FE8D446D0293D99FF268E762B47E33A0B530993E7177F7FED43D4F8C31CE3",
+    "metadata_key": "36C1E1FC2CC7E80D4FC938FCB14F4A1B",
+    "section_mic_hmac_key": "5DA2A4D4B98205C3C9FFCCB93F070B4899739631327C7A86246E0D5111EADB48",
+    "section_salt": "670F2BAEA4F3B15AE1D3E0A72C72C920"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "956D51B44D835809B4DCB5C1D6EA607C",
+    "aes_key": "2AE3CDCA25A22C8A800EDC754D23E416",
+    "data_elements": [],
+    "encoded_section": "37901310086B129A7A396A6DF01FA7F82D5CA7911000ACB37E7A8113B240AE185B5E6AFE9242900251C8DEEC88E53A72C6DE2D61D82C1E04",
+    "identity_type": "trusted",
+    "iv": "FB4F3041A58B740895B607D12438A62F",
+    "key_seed": "75726D6692B7BA73365ED6114AD116A882A771857698CD296A1766803F0C748B",
+    "metadata_key": "090CE8211B3E5418AFFACC353FAE8E45",
+    "section_mic_hmac_key": "EBCE5FBC0923360145A72E27B3FCD677A9B16527631A374EFA5BB4766BF3567A",
+    "section_salt": "ACB37E7A8113B240AE185B5E6AFE9242"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "875B4DC0A9FD6582A298160D8B07241B",
+    "aes_key": "DD8E7898DB01F3022171929DBE859B05",
+    "data_elements": [
+      {
+        "contents": "820995BAB825E0BFCDDD7710B139746B8E330E859FFE",
+        "de_type": 177
+      },
+      {
+        "contents": "6B1EFB732380455FCE778DB6DF50D9C474BBB3353845AF1B",
+        "de_type": 883
+      }
+    ],
+    "encoded_section": "6B9013113600EB6A517F05193F05274022755F9110001CE97084F1258375F2CBE48D88EDE4EC90011A1C1B2B6E68CAD942903FCACCE5E428FB1BE044C55685B3EF94097A3B1FE658703C24BB548E88ACCE80FFBFE5DD8A5A4724CE2254F077234A7282984038E5A062822549",
+    "identity_type": "private",
+    "iv": "CF9EBDF3F06EE6C72089D0F4290F202C",
+    "key_seed": "F6EAA293204F1BA807120918B47F7F1C2DDF8085F7A1138452F72022B16A2D02",
+    "metadata_key": "AA009F2D3D1F97B63CCA3AEF490576A1",
+    "section_mic_hmac_key": "396722ADB64CCA9695A219385A71EECA3E9DD57A1CCFE93009795EA3D5EBE1C5",
+    "section_salt": "1CE97084F1258375F2CBE48D88EDE4EC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A72824AEC67082FD52F521DA153BC437",
+    "aes_key": "4A68482B406375EA353B8D3DCC41DA3B",
+    "data_elements": [
+      {
+        "contents": "7F8DA439C60E",
+        "de_type": 262
+      },
+      {
+        "contents": "4DA31B9C1BE28FE4B906597598",
+        "de_type": 131
+      }
+    ],
+    "encoded_section": "5090134CE0387DF697DBFF2B6967B922DA1B96911000AFA838CF8AF1E94C6D3ADC3DEAF9193A90014B4B0C5F47F4F72BC0E54FD3A225353D9C2DB6C6C6582B24F2F4EC601F0AD29D305029F326E4E13E42",
+    "identity_type": "private",
+    "iv": "39DE563E758D36C340A8F1161F88A725",
+    "key_seed": "DA07B9585C6328F8FDA0561EDC40F00B21EEA83C666B73A85F099FA6F4B77F4C",
+    "metadata_key": "71675EB7D69EC84B1E4C058B6642D812",
+    "section_mic_hmac_key": "64B80C39B9AE9DD8A7DA97E73E8CFB415AED92B75A815CF1C66AE29FBB9C3D78",
+    "section_salt": "AFA838CF8AF1E94C6D3ADC3DEAF9193A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2D6A4B8DBA9D00228B9C0CFFB24B916F",
+    "aes_key": "C0E2C9F0CD3574911480D28E4083263F",
+    "data_elements": [
+      {
+        "contents": "6F512C943F83EAC9E6E961039D2B8EE806C0",
+        "de_type": 296
+      },
+      {
+        "contents": "3F16FD30D2B0ED2EBDE2EF4C85FAAB16BB428A1E0C2BDAD76E",
+        "de_type": 243
+      },
+      {
+        "contents": "528F528CAD4F647536823261A121CE0875A0E5E41735BC7ACB",
+        "de_type": 950
+      }
+    ],
+    "encoded_section": "84901365F658F25AACABB8AE42B7ECD7FDDD1C9110001C67EF90C57AE9B73871ACEEC9F02F349001EF235FC538D616127E38A22C5C64B5CC82F64248EE2CF44866B2A653BDA861AD1A61493F0DB877C8C4F2DE6F602B859659363701A8C57EB57B60D69C1A556FA11E068F407BD6C9355BB53CCD48FEC132F531519C6A6BE20F6B68B4BBFB",
+    "identity_type": "private",
+    "iv": "7C742AEB01EA936BE74C4B5F177C6761",
+    "key_seed": "A6CC5A90AEE26189984C71CF6FE0DD2C0AEAB767E80B709FC27F16A69EA1504E",
+    "metadata_key": "AEDFA8ECED1B2D6572BF4B181AC7FAAA",
+    "section_mic_hmac_key": "4B1E36074BC7AD29290AF198E332090BF9910FC0D0487C5F46B0EFB009C5B916",
+    "section_salt": "1C67EF90C57AE9B73871ACEEC9F02F34"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "361583139DED2B1E673CD68C16029294",
+    "aes_key": "44C55EF72E97F5BFF1D8564CD731B946",
+    "data_elements": [],
+    "encoded_section": "3790138230C234237A46210D3A04195EE568B0911000292825357BE80336C2218747E9656A299001C92A44671591C7ABF14466844D19A0B6",
+    "identity_type": "private",
+    "iv": "35847BF297CA4F0F3EDEB1EF206DD353",
+    "key_seed": "7FBA013FD2C6A89A6FC72F072A21DA549ED8BDFD1BE50818819EE20C7CB66572",
+    "metadata_key": "0361C0EDBEE48B8DE9C163F5B8241E8B",
+    "section_mic_hmac_key": "27E83E253B784927867786E495B1E54B1B2924DDC766239A45D9D501DE33DFF8",
+    "section_salt": "292825357BE80336C2218747E9656A29"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "01AF8D1493DA0EA7129FEA26F691537A",
+    "aes_key": "B3E74FD64DCFB8D61B4BBF6060921947",
+    "data_elements": [],
+    "encoded_section": "3790133A7FC10C9D1239CD46C3C6B4FC5B9ED49110002478216082A06CBE5C03A3385785D1719002A06C5AC8E3510C373EF27BF7B5B78B7B",
+    "identity_type": "trusted",
+    "iv": "5EDA40827CAB924516B3193A4447F831",
+    "key_seed": "F427B6C08CD9D9EB69955C96D8B523840C8B9BA38572A5AA5BB2263EDA599A6C",
+    "metadata_key": "E754D8C6D2D5428A722E130924D9781A",
+    "section_mic_hmac_key": "90CCD137B4CB590B4D8D37A0EB14FE350FA1E771608DCCAB07469946BB771F76",
+    "section_salt": "2478216082A06CBE5C03A3385785D171"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A95465E03BCFC8E5BFEF31C055C9A024",
+    "aes_key": "0FB48B0B5519ECB357D58721E1A24445",
+    "data_elements": [
+      {
+        "contents": "90B0D5AAF302AF084AECF24D32939E",
+        "de_type": 404
+      },
+      {
+        "contents": "AECA1B6B0D10D843E73AE0165A3E7D5B2C8B8310B7FD00B8810684",
+        "de_type": 59
+      }
+    ],
+    "encoded_section": "669013C6E721C70C2B3944B5FD253FC61566E491100053615ACCE2909F94FA4B998B569163359002040954BBC4C277CA47D211B5FBFDD97499FD51F6C8E8DF808C51649BEED660998226AFAA10BEC9769D1482673B7A0403F5AA343370C040F9F7B82DEA9D8C1B",
+    "identity_type": "trusted",
+    "iv": "B4A532C12A214BC4D727284823EAC0E0",
+    "key_seed": "0F74A62FBF6CF9220166B846A0F76E669E42D1487EB5FD359B0CBC65FCBA7EF1",
+    "metadata_key": "8EDD19022D2A88C0441386C74AAD046C",
+    "section_mic_hmac_key": "2EA06B4B794A2F454E5B070979EDAD76D4983DFB48A098B472710D7917D3E5B6",
+    "section_salt": "53615ACCE2909F94FA4B998B56916335"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FB45A0BAA38D0F35A1F64D9C72B923C8",
+    "aes_key": "9ED5B7BB2B1C3413E6AAC6DFB3754FEA",
+    "data_elements": [
+      {
+        "contents": "2CC3BC6746DD1AE5",
+        "de_type": 152
+      },
+      {
+        "contents": "DCEA4835787A94F495C7DE8F2AAE080A39FFC9",
+        "de_type": 876
+      },
+      {
+        "contents": "DC2F08CEEC54",
+        "de_type": 70
+      }
+    ],
+    "encoded_section": "609013D8F958F5ED45F8F3727CE84B31A06C0891100025A2312ACCB5535F0EF3A099EA10E7A29004D31578964C0136C455E1985055CCCBD7B56A8FD9315960FFBD889907F17865933AD86C73BE09C9E85B1CB8598B4B2E259AD4DF9AEC0871D2D6",
+    "identity_type": "provisioned",
+    "iv": "F332E711DEC606885B92138FD805E405",
+    "key_seed": "44DF410E636A1EBF23DBC113B90F004B58E95049C1826B8F9EBFA59A6F02F39A",
+    "metadata_key": "7FD6C62197D5111EAF0F95084607D88D",
+    "section_mic_hmac_key": "47CF9B8136955D1DE13DFC33ED6896E7A0F27264C5D71FED5148AFA99B3A972C",
+    "section_salt": "25A2312ACCB5535F0EF3A099EA10E7A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C74D81C8ABBAE1C6A90F9285801F2336",
+    "aes_key": "7892DB13943D1F5167398B4A23835088",
+    "data_elements": [
+      {
+        "contents": "0BEA3CC25F2B23B1A69CB239E9FB07BEF76623E4AF2F5A0C3679AF79",
+        "de_type": 746
+      },
+      {
+        "contents": "8AF23F8EF77D8403BE6D6C9244",
+        "de_type": 465
+      },
+      {
+        "contents": "82",
+        "de_type": 545
+      },
+      {
+        "contents": "9DB8C637C4781544D09EDEA5764F8FD47516ACDF62D8AD98F5586504",
+        "de_type": 9
+      },
+      {
+        "contents": "DFA09FD8BB33F71593",
+        "de_type": 590
+      }
+    ],
+    "encoded_section": "949013B2EE5F6DD997B4B4F8BBEECD33984B23911000757F746B62CB45D006E374E2B107DA549004285D582E49B413EE38A1FF386B7AC0BEEC63BD9ED74984319CD8FB0F39ED9104B6FFC3474EDB24465C3FB6D02CE61FCCFAD1EFE9BF6E06E2394CE62584FB7E76BE01E18C3C9CF2E4932F35F7C6DB988DFD97DCD08B983AE89AB6AB1B6ADA891354C1BD42E38BAE9EC4BE692CEC",
+    "identity_type": "provisioned",
+    "iv": "C1144E36B46120A9BB81FAF638354A7A",
+    "key_seed": "A06644701F516480CF3EED2B66DE14FC48749E39C24CE4262F416EE47407C482",
+    "metadata_key": "A8F0E7D1D083B1EB0E6BB743D2C6B5B5",
+    "section_mic_hmac_key": "96BB03131488C6D55F42293579231EC82F49E057D9D1D91AD4022380BC2B32D7",
+    "section_salt": "757F746B62CB45D006E374E2B107DA54"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8DC60BD4378BA88DAEF0708052F570FC",
+    "aes_key": "AD070254CBD31CFF78F5413B43E1272B",
+    "data_elements": [
+      {
+        "contents": "11FF19A9F2D6881B904B6A020B0658C3C724",
+        "de_type": 127
+      },
+      {
+        "contents": "0914FD60DB1B",
+        "de_type": 98
+      },
+      {
+        "contents": "6DB43F08EE556EF61E1F845D09178098CBE43908E0FE46F8",
+        "de_type": 256
+      }
+    ],
+    "encoded_section": "6E9013EEAB611CFFAD8C7D963355A833C9DA149110006F93D279192BDE0E527BD7E8B3168A12900445AE2642753C4D802B090C99C6EEC222388F26C0C119EB029487297606DD5772A0B043DAF23A826A3C113B6EF49C5D4F01202683137DD3FD800A4DA9E8DA510EA7F8C658101225",
+    "identity_type": "provisioned",
+    "iv": "C69FBF9DCC40FDEAABC5656F054A0B64",
+    "key_seed": "221AE078D6806D3A41EDE4DF8CAA587F4ECFBE17210DCB7F168FD6C2DE4C3C2D",
+    "metadata_key": "77E1A4867CBF4DE00E5C9FEF4DE9D68A",
+    "section_mic_hmac_key": "D60017BB5E5C89DBFA59FCEF5BEF61E3DF6DAC38163D4964FBE4212652058574",
+    "section_salt": "6F93D279192BDE0E527BD7E8B3168A12"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3E93896B318C8A8A2B86F8BEDC4978D0",
+    "aes_key": "DAC516C10DF00826FD6F624BF8B98920",
+    "data_elements": [
+      {
+        "contents": "83674116AC5D2915591B2C50E71E0C2402CF047D4E",
+        "de_type": 602
+      },
+      {
+        "contents": "E199053B60",
+        "de_type": 165
+      },
+      {
+        "contents": "9675FE47BD8D10B11EAD1E1377D3772D5951BDA26D8DBE8521CC",
+        "de_type": 755
+      }
+    ],
+    "encoded_section": "749013EF13622E04C646DA50382C936028A2DA911000A60DAE9062B7E80920115AA20A3DF6709004B9CD323F7489632E56DC010ED403CD83E2E22426733185AE3ED210CE702CE2959513B35B894216D0CBAD236E501B715E3801031478988BB7334EB6EDA2D80C4CD7B78E7A64916749728DD6305F",
+    "identity_type": "provisioned",
+    "iv": "D952D1CC42037B34686C0B0BD9E697F3",
+    "key_seed": "B5663E9F549316F4156FE1E1F3A88CEDFD45EEF1413692310A745E7C711BC323",
+    "metadata_key": "965D9973134E4C5AA5B527EE370875D4",
+    "section_mic_hmac_key": "3AE74AAF3A515AE1EEAB3BDEBEB1233C300AE27BA3A5668BDF059BD400E07F7D",
+    "section_salt": "A60DAE9062B7E80920115AA20A3DF670"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5A049145452ACBD46CEF34B3D44ACA7F",
+    "aes_key": "DB91A343B3C4295B3B5A7578BAD0957E",
+    "data_elements": [
+      {
+        "contents": "4044A5D3A69B",
+        "de_type": 200
+      },
+      {
+        "contents": "B5B5C084C05D28F6A5776A73",
+        "de_type": 53
+      },
+      {
+        "contents": "3F53E321EAAAD37321575F95",
+        "de_type": 264
+      },
+      {
+        "contents": "4969E7296C9756825F11908CF6C44C728579407005DA58",
+        "de_type": 121
+      },
+      {
+        "contents": "EA6EAE6782CADFA1BC03C22398EFCA35A25D1C455A61E86073C05F710C77",
+        "de_type": 42
+      }
+    ],
+    "encoded_section": "969013C9C75F20004942324E23C744440463CA911000E7C40EA2C2E65E5C5946447A6823338C9001E0B8C42F8B334E52A77E63C8BEFD9A717536AF9A21AE15918D84B0688C9B9A83C641B2DA40581639C617053E79AABD4FAF5DB9084512306D84091D2369C5507CED38EBD71CBCA5938CD168EC418BE57C2DA2C3C69224A3AD379C95083FCAB626627D96FD55A216B64C9718C082394E",
+    "identity_type": "private",
+    "iv": "B0E066C1CB9E81FEC072658AB024D029",
+    "key_seed": "6AC9251B57E1AAADB0A82C14052229F0828511E8DFB62A7B01408C4C6CF942E1",
+    "metadata_key": "81B7DFC2288EBA39967BCE164DAFD504",
+    "section_mic_hmac_key": "305ED3775E3CBE503C3F9DE72AD075BD578D6D16A171536CF6FCA86032859FFF",
+    "section_salt": "E7C40EA2C2E65E5C5946447A6823338C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E87CD39D43C0C4C98913104FFFB1B6BE",
+    "aes_key": "EE96CEB9FC198FA238C718D8C664C2BF",
+    "data_elements": [
+      {
+        "contents": "306E2C5F8259838DB0D07BBA4805E7480BEA4A6C165E31DE8BBA763D3078",
+        "de_type": 845
+      },
+      {
+        "contents": "D88025A8047D6AE0F6875BF82717FA782F",
+        "de_type": 521
+      },
+      {
+        "contents": "8565",
+        "de_type": 661
+      },
+      {
+        "contents": "4D1182D9D22A5B584276EB34F00AD16D6FA3",
+        "de_type": 140
+      }
+    ],
+    "encoded_section": "869013F1858C90C012EE372661972315171546911000CE2651E744A99AFAA849A54E1732826C90028BA480AC17C5D584F5BDEF8B4F2E078FF5A0681F77C391C2CB04324E4B5E9EC6EEC870D4F9501CABF785E02FF77D7875286E4505A9B76E28BA5CD940C9B255C609E4A4A4CEEFBB53433E707B56E9E28E202740B6A63C6891A35512A330BB65",
+    "identity_type": "trusted",
+    "iv": "E84094156E309C9E78E0F6B2983B3B79",
+    "key_seed": "83020A9A0A506DE2A82978C1DAE9F961DED0868FABDB237B621F79CFE37E7C16",
+    "metadata_key": "CF32E44F9BDB4C2AD80AEE60E78D3FA9",
+    "section_mic_hmac_key": "21F6F2CDE9AD607DC36EA9F9C55A6FF654B00665379CF80DEE1C8E493DC5E35B",
+    "section_salt": "CE2651E744A99AFAA849A54E1732826C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B57C92EB613E7A217DA71D86490784C7",
+    "aes_key": "D9DB4C7400D56812F5D3F7DD244E513C",
+    "data_elements": [],
+    "encoded_section": "379013303598F236568149434CA461E3F9A4B091100081BBA4092F14CE810ECD0D7109A582B690041B06DC29BC82225D3F91DB0D996619DB",
+    "identity_type": "provisioned",
+    "iv": "D586725A11804C6FE31DEB705CC8D294",
+    "key_seed": "149F80E11AFCACF6E13DF3D36C01C6D5DC688F8DB9F10537494FFF926052CE8C",
+    "metadata_key": "D6319F5160167840627CA7013B292282",
+    "section_mic_hmac_key": "51E43F329487E193A6FB0A179BB609F45AD5C4725653DC59EF075A75B52B36D1",
+    "section_salt": "81BBA4092F14CE810ECD0D7109A582B6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D082000833AE11B48B49AA306FE002A2",
+    "aes_key": "95D0A624DEA476B1BA80444787463999",
+    "data_elements": [
+      {
+        "contents": "EF3C4BAF4B77424745",
+        "de_type": 409
+      }
+    ],
+    "encoded_section": "439013B0798E09DC56FD5C009B7BD24CF2D4F0911000BE2EF537A56A6022953F032D04ABC35390025EEFDD2CC06B518DDC1F1B383C59D1D9EAC33D6548B648CE39399621",
+    "identity_type": "trusted",
+    "iv": "0C8D19316018D63558BF62735E8AC988",
+    "key_seed": "FAAE2DBB5B2652D6AD95B92F59105DD76AD1B41C51C8B4E358CA0B60A0450DCE",
+    "metadata_key": "8D027CF95D5A790683C0B669D689CD89",
+    "section_mic_hmac_key": "98F3525163633F6511A7BFF1598DD040181D2C3CFE3D1AC5D76FE2A23DD09552",
+    "section_salt": "BE2EF537A56A6022953F032D04ABC353"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5D2264D51719AC98B1DC3E0117358071",
+    "aes_key": "2F98AEE5A3841F10E02133F379B7C39A",
+    "data_elements": [
+      {
+        "contents": "4FB4",
+        "de_type": 701
+      },
+      {
+        "contents": "48C3D5622F824DC1C7B0414387C8B4AC866B0EB9A7D888AEB6",
+        "de_type": 995
+      },
+      {
+        "contents": "41",
+        "de_type": 139
+      },
+      {
+        "contents": "EA9186B4375DD1BA3491ED53",
+        "de_type": 934
+      },
+      {
+        "contents": "9AF9C3B2BD374FBAA4F3D2F1DB2A186F8C3A",
+        "de_type": 633
+      }
+    ],
+    "encoded_section": "809013847031FDA820036FD425568B5611C5EC9110002CA0587BDDDBCB78153207C9158A10169002D74E311DD11F58BFCCC0A19F94F67B0AE4BE81741AC8DC4FAE0B17B772BE126CBBBCE66CFB50F091A70D06F3B34E16ACB9C64532990A6417B30A2CDDE1C001151EC32E7018828124E75A0B74CA5AEE9B4C840D19C255BF72AB",
+    "identity_type": "trusted",
+    "iv": "E288D7A1DA92318930084F3ED9ABB505",
+    "key_seed": "C749179E61D827D1E2AD13B82A48420AB3E80D31F3749E950D292B64FFC08104",
+    "metadata_key": "3458741999A1025974EF63298E559796",
+    "section_mic_hmac_key": "A0AD19D8280DFB3DC84E5E68D7D21D5BCBFA9861B1F938660516045D6EB0C137",
+    "section_salt": "2CA0587BDDDBCB78153207C9158A1016"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F68BFAB3213C9FEA8A29A96007FEF64B",
+    "aes_key": "AC939B24BC933934398A7DC7E7C46CDF",
+    "data_elements": [],
+    "encoded_section": "3790139505676F85CA392334B19BBFD5FEC47591100074979416628A37D9CAFB2C4C6F969B569001DB08F385C30A762FA0C410A5184226CC",
+    "identity_type": "private",
+    "iv": "465C6117431966DBEDCD888B5221ED21",
+    "key_seed": "41FFE0FAC77C1DCC8BECCFD8A7CFD4A7343D376B76CABE05961CD44B76BC4B71",
+    "metadata_key": "4F3BC40A440822F086DEF13754AF74A0",
+    "section_mic_hmac_key": "CB956645E987944BEB37C2416D24D7A10C0632E588677CCEF862E86B222C5704",
+    "section_salt": "74979416628A37D9CAFB2C4C6F969B56"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "32AA8FD5DF4F49A764E9AA3BF5563C89",
+    "aes_key": "2B4B17EFB895251408BA5B6BE94B4EF1",
+    "data_elements": [
+      {
+        "contents": "11E38C244B9E12BE76C03E",
+        "de_type": 935
+      },
+      {
+        "contents": "C8D68DB392FBA453357837",
+        "de_type": 335
+      }
+    ],
+    "encoded_section": "539013851104503F1D2FA8E851450F39F7106F9110006634BDCFDE3CACB5C787430316E3B0F89001E28FEC491436FA0518D6DC6039167E200AF6348DBFD0FEDFB8FEE6D1783B34159A46C1CC91AB4AB161C3815C",
+    "identity_type": "private",
+    "iv": "1797CE15779604FE914F93871B2A0773",
+    "key_seed": "FCD60D691DC27E7FDD0206B28BF9466003A96D1DABEB7F0C59BDDA3BC5064BFB",
+    "metadata_key": "0F0F2E2D2C043688CADA7DB16B3890D1",
+    "section_mic_hmac_key": "28862BC1B9E7774DC66B319EDB52978182AF3EA42F4C71C8E0EAF65952C1DFC9",
+    "section_salt": "6634BDCFDE3CACB5C787430316E3B0F8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "31EE1C30D48B792D61C8792361D3E827",
+    "aes_key": "1B618DD81493DEDC935CA68511197158",
+    "data_elements": [],
+    "encoded_section": "379013A8533FB16D70484318D287A8CA1324889110001DF600D41D8D806C43B138C0F76AF20590024756A94BDABC6824F118571511BBB69F",
+    "identity_type": "trusted",
+    "iv": "73CFA325E5CE5D6698F14615EE65D970",
+    "key_seed": "41DED01B5C779ACF0BFF0641263BAC3406CF6D9F940124F033991297E0B77051",
+    "metadata_key": "CCCC858E3FBAA8E5BEAF59B3A3D530A1",
+    "section_mic_hmac_key": "C65B247379C1C47F50F977EE35EFD36AA14E52BC21567F3194977703D85B946C",
+    "section_salt": "1DF600D41D8D806C43B138C0F76AF205"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A282D0AC1842D0A4DEC37AB35AAF4CA3",
+    "aes_key": "EB7AC26A007B152D033F713CF425D8CE",
+    "data_elements": [
+      {
+        "contents": "BB5234C9FFD150ADF4",
+        "de_type": 109
+      },
+      {
+        "contents": "185CDC775AE199F0D4DCBEBB8BDA97EFF10C482C52",
+        "de_type": 390
+      },
+      {
+        "contents": "B8D8C33864D21722A1F339216199",
+        "de_type": 488
+      },
+      {
+        "contents": "7942EA3BFACE24FF26C6262F",
+        "de_type": 3
+      }
+    ],
+    "encoded_section": "7990138E46F32DFCF3DDB81D6678EE5B9C63C5911000CD7C017292A595A9B91C2A2B0401869290028E1A072B7F5D1AE4EEBD4D3D86C6DE12AF19C45A34F2EE9C79FBBF8E559BE622359C2B632F0714D0303BC8F400263F191FDC55E7098617242A7DF0D5F06B3C3640967F57123DFCBF7263650532D6344C45C3",
+    "identity_type": "trusted",
+    "iv": "39B8DF03463FE9A4F1B74EFF99C79633",
+    "key_seed": "C71AB1872D5CCA2A8AEDE667988CFBCE2EC9AE649062896938D414E9D0E94C4B",
+    "metadata_key": "B8F3CE213E6E058AF15E956A1DC2036F",
+    "section_mic_hmac_key": "7C4B63E31AD2FC40AE1D4F8FBF141E0ED08B79FCA7461892C1C8499B73746887",
+    "section_salt": "CD7C017292A595A9B91C2A2B04018692"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B32A72E57DD180C1CD78E0D8FF198BA8",
+    "aes_key": "0D3B48E8EC2B06C29C96BFC6C538B656",
+    "data_elements": [
+      {
+        "contents": "5364835176EB07D1F5FC",
+        "de_type": 584
+      },
+      {
+        "contents": "C3492A918E552550E781328B57B40732977328B1325260",
+        "de_type": 927
+      },
+      {
+        "contents": "7E7B5AC1F3EAB30D71429C27667ED35C200476965C78F1CD5FB3B9",
+        "de_type": 578
+      }
+    ],
+    "encoded_section": "7C90136A1B890259C14A52A71914369DD5D7C99110001589F7FFF55BB13258B8CE9E93D31AAD900422D15C630478F6F2CB142D46ABE22A98C9C015432E7F6FEB0A922F53F45B513474F47C5068F32ED60CF9AE88147CC957851A4329A9F7116C346481BCE5AAD0786AFDD6D64E9131C36B262750FD4892F5774653BC94",
+    "identity_type": "provisioned",
+    "iv": "AC90BA5B1A5D39BD2241EC7DDEA4DC18",
+    "key_seed": "06405596E394DE2A69B5B205F00E6119A4E9298EB253DD391B582C1899418AD6",
+    "metadata_key": "68A1C5DA1051C2B604AA05DF6AB59EFF",
+    "section_mic_hmac_key": "20FA4EFF48BD8E8FF5767A4C79CB2514AF91DA13218FCB63B280F6E41B2A5A26",
+    "section_salt": "1589F7FFF55BB13258B8CE9E93D31AAD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A9B066473BAFB379F0937FB47F15A38B",
+    "aes_key": "1F660B42014F118AD25C2CC166226920",
+    "data_elements": [
+      {
+        "contents": "BF96B6727B448D012D6E42D0",
+        "de_type": 521
+      }
+    ],
+    "encoded_section": "469013E4A9322645BED3696A4B6924B4F0A52991100086EC145F4758FDC6D5940C864029656B90042D74437259737DDF7606D3750D4169A0F8A316FA278CAAE53B69BA3726EBA8",
+    "identity_type": "provisioned",
+    "iv": "413F7FCDB4FAB753817C2ED9AC9947A1",
+    "key_seed": "7716AE85F2CD4F520438500DE48432F698519CA01622EE802DCE849E2C162DE0",
+    "metadata_key": "0B16502A04A879A8EF6936331C7495B1",
+    "section_mic_hmac_key": "33E577635DDF21CE36E3FC71944393BB3A65B2F1BB67E2015AD4903B47AC5A7B",
+    "section_salt": "86EC145F4758FDC6D5940C864029656B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "97A3EA2B2D4B897973EB658FF34F4FFB",
+    "aes_key": "67C524B281D8BCD2C51C74F057CB2D15",
+    "data_elements": [
+      {
+        "contents": "0A2B142E42BF87F21293",
+        "de_type": 11
+      },
+      {
+        "contents": "733CBBDA78C13C5C598CE34EE9A25453EEA0",
+        "de_type": 847
+      },
+      {
+        "contents": "D53872CC070BBFED0E5262FBEAD45A6ACD9E1AE50D",
+        "de_type": 171
+      },
+      {
+        "contents": "A13ADB931426EAD3B2657C23CE0B4F7E4FCBE44C1E047F28548E05C8",
+        "de_type": 672
+      },
+      {
+        "contents": "69AF37BF3DC6FE2745",
+        "de_type": 258
+      }
+    ],
+    "encoded_section": "9B9013307A5B1D45053F33A0B2BAFDA032BD36911000F7D66FB12A2DCC5B9F5721066CF56BD39002E94F726AB64C08ABFF473FC3305DCC04B7258913115974B4B93FCBE7A65FD568021B184E299F44C4EA92B3FAE0ACC6D93051DF07F74402A0578D82079AB9D2E945C10D679D0EEA5E0A18D390EF17347E559C75216632ECAE4186375EC728ADAB7E1D02DA5D9E8DEB3C1796BCC23BDEFFFF075C8B",
+    "identity_type": "trusted",
+    "iv": "EE833340C3ECE7ED2E42BE6300591A2B",
+    "key_seed": "5D1FEEA2E15BE812D6E7AED24744EAF066D2044226E1E5DBC215554C4BB21565",
+    "metadata_key": "5C81700C6F3E2DB99FD9552A1BF8DB62",
+    "section_mic_hmac_key": "C971E149AF0700BE9FB8A4042F0F02EFC26EBC99141EF025E270E9C6163291C1",
+    "section_salt": "F7D66FB12A2DCC5B9F5721066CF56BD3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CCB6F827B0A39B6DA8437483DBBF4D21",
+    "aes_key": "B86C31C7DF4004CEC6B64D8268246F4F",
+    "data_elements": [
+      {
+        "contents": "1B0FAC5F09165840F1A1FE0A",
+        "de_type": 108
+      },
+      {
+        "contents": "F9FE53B7E86EFB5778E5DC56F8943696",
+        "de_type": 140
+      },
+      {
+        "contents": "",
+        "de_type": 286
+      },
+      {
+        "contents": "C37C58E8968BC63240",
+        "de_type": 927
+      }
+    ],
+    "encoded_section": "67901318528A80BAB7CEF27243F8F7A4543D879110008548036C89FF90B1763514205225BB619001FF05FB9C4AEEA7AF5787D23CB730BF83763C2D88740CEFB3E59A6EAC8AD289FF580611CE23391A41C7F3DAF763834D19D9FE31CCA279E335BE82B315BD028572",
+    "identity_type": "private",
+    "iv": "7D75415A0D1DB4D65196285773255E16",
+    "key_seed": "CB2A52478DCE6738675A0501FB4A696A3B8B00318F9BB4C371B67787BDE29E89",
+    "metadata_key": "76683C45B626D1230AFF1F9E0BC84030",
+    "section_mic_hmac_key": "D8D2FD272E460779C37FE7AD1EE58C11D9AD119BB803C8475E10CF79AA7768AE",
+    "section_salt": "8548036C89FF90B1763514205225BB61"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7664168CD02E2069535A4E243B03CD58",
+    "aes_key": "0761688645B584019E0611E1C100DF33",
+    "data_elements": [
+      {
+        "contents": "055E128D435B74BF4919E3FB6DFF9D061E767FC50A6297674C028B",
+        "de_type": 817
+      },
+      {
+        "contents": "7EABC7A23844D21D3F31940E823FD60578626B7433E1C78898228ECEFE",
+        "de_type": 343
+      },
+      {
+        "contents": "90817D2A59F7ADDF55B1F55B63E85EEE95BAA62408CEB897",
+        "de_type": 245
+      },
+      {
+        "contents": "4787FEC44DF779FAA45E2CF681ED86C1140EEBC15F2D5CA2DB4C",
+        "de_type": 28
+      },
+      {
+        "contents": "053A76",
+        "de_type": 807
+      }
+    ],
+    "encoded_section": "B290132E644D92825A53658AA88F3973AC5CB7911000293CE3D52ACE5D4C36736E0E05C8D3D69001CA7AAA50EB4888A43CDF55FE4B94013356209D4986FD7A74DB8A22B93C63CC29BF4CA30AA7D7976F33EF594EACCAA5A474C83D32F1FF7CAF7E9D0910961FA375084AA6C5A2F6E84D127C042BAFD09A63C6B0D4C4EC8CD84B8DE1711059E3C7888997D354606256ACB6FFC3A3E0F754C29D0E4D6553763C1E6DB476C138AD90AD24A46CAA585F509F2FDA59",
+    "identity_type": "private",
+    "iv": "A583849D6D43B5E8D8F1ABA5EDB4C673",
+    "key_seed": "62F1D6EE9DBD290B2AF80AEDF635E14061025F9F279BA55CF7DBAA16DAB16B2A",
+    "metadata_key": "728F086A73B981B52399C3EA8383A77A",
+    "section_mic_hmac_key": "10B4AF87157247C3D06140005B0B1CB9FD71C023186C277554E16664928A2168",
+    "section_salt": "293CE3D52ACE5D4C36736E0E05C8D3D6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5D2A3F63294D83FBE4110C3572F502E6",
+    "aes_key": "DEC1B7CE58A15E488E53A99B0F6BFFC3",
+    "data_elements": [
+      {
+        "contents": "F08F328184F706111296A6858F64B43E004B476D86",
+        "de_type": 675
+      },
+      {
+        "contents": "71AB692063473C3F09B6CC52884D2ABC5AA5FEE1435B132501",
+        "de_type": 762
+      }
+    ],
+    "encoded_section": "6B90133B241ED22261B210B755B93C3A46339091100024260E21CF1C1B804AF8610EFD1D40A09002BC1E6FE55D438C0A979D8E1724DE2BE88EF49E4DDD021A7BC6D62683FC44DF4B206A475FB56B25CBE20A145DB816E7978E6D0FDA3A29DB4343D410304FBB85C4911BB4E2",
+    "identity_type": "trusted",
+    "iv": "D109C7AA8A9C2F502F7FF2795CF0536B",
+    "key_seed": "DE5BFF67545C1EA0965F927F752EA57236A0A8C07CF1E50C7B05FFE90CA3C080",
+    "metadata_key": "801F239BCD59F71BFF3DC29C1873141B",
+    "section_mic_hmac_key": "4DDC01519083DEE233FCD693B2DB1D50D74FF605ECA73C87D6656C2D9E555AC8",
+    "section_salt": "24260E21CF1C1B804AF8610EFD1D40A0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "50AC8F669991D4D35BC8579D03EA514F",
+    "aes_key": "014FC57AFD464A8788B996F85C208765",
+    "data_elements": [],
+    "encoded_section": "3790134B293E541BBF4E5F17F0D3980C9BC00F911000A8451CCF678102437062C19C5E4A11D990019E221A17FAE3A828DEBA689D8C1F3949",
+    "identity_type": "private",
+    "iv": "41BAA5F8DD05B8E6A504D599EB74012F",
+    "key_seed": "DF5BBCE38A8C3E868522252DB57AF57F57DE993F9B34778A84C153BE8A2C36AD",
+    "metadata_key": "577EF6FD43FBBE8F66D434794686DE81",
+    "section_mic_hmac_key": "086C0B7B64863355C999983AAFBCF74E98F9EFD238F1A1502C7737E2883300CE",
+    "section_salt": "A8451CCF678102437062C19C5E4A11D9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FFA2C3BE27EA9EFF4A305F6BF276932E",
+    "aes_key": "A46E740733F543ABD962D2EB312D93C1",
+    "data_elements": [],
+    "encoded_section": "379013C51DBD3329CE6072C8A2A027F942CAA09110003F972D62A949212CEE442B4835C560EE9001E0725CD65D4CBD335842C42F4C4A0113",
+    "identity_type": "private",
+    "iv": "C93D934B0765A1D6353BCA51589B87B8",
+    "key_seed": "3AC5766B4F5C28643B827A841A590AE959AB3558C3A148CFF3F7B833F00D2556",
+    "metadata_key": "0F7080BB5FA2AA4912BDCC9AF3DE46B7",
+    "section_mic_hmac_key": "9A78FCB3A75CD2B502005A4184563EB25D146A0CC58FF84C15054DBF869D6BC1",
+    "section_salt": "3F972D62A949212CEE442B4835C560EE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2081A4F3811AEA051894C1C7C1B92618",
+    "aes_key": "BB7480392B142CFD23F98A73EAE37E87",
+    "data_elements": [
+      {
+        "contents": "710A0DA64D8668024AE7",
+        "de_type": 532
+      },
+      {
+        "contents": "E3471D8E60F5875C808ADA60850B01BC1F5EAD6FA43426707D",
+        "de_type": 847
+      },
+      {
+        "contents": "32321B333D25E24FEABBBC8E30A5EF11",
+        "de_type": 314
+      },
+      {
+        "contents": "8EE0E55F33EECFEEEA4485872C96CE",
+        "de_type": 110
+      },
+      {
+        "contents": "2BE0F48387594DB1",
+        "de_type": 585
+      }
+    ],
+    "encoded_section": "8F901397FE42D3756E948C098672DBDE9977E691100034F3CD62875F1A61868DD445BDEBA97F900442F07EF844969ABE5029FDEE70E060604FC171F2C6B17AB9E9A6F9B6BB0470A8F72123B30060E88060F3BBE92479CC0E107F330460156C3B6E5626FBFED138195704ED5A79745A2864ED052A5DD4C5AACC511CEE38BD48FDB904CE5904FF96D2F8B224C8C91F76EF",
+    "identity_type": "provisioned",
+    "iv": "731E0DB31EB1F2EBCE317A8AC207AD78",
+    "key_seed": "C648836E062FE1B177659BCF66CE52DA92992A7F57A8C519EFE83B5498B83529",
+    "metadata_key": "6528CBC1D9D05B685EA0B5109357CC73",
+    "section_mic_hmac_key": "0E97851D27E9444ED828E6501A033E5F870F46D9D959BE6D0457EC79479A15B8",
+    "section_salt": "34F3CD62875F1A61868DD445BDEBA97F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3B793A50ECB5E7F622EF1CB281DBFF10",
+    "aes_key": "785E875C44A1BF02579790F4C07B08F4",
+    "data_elements": [
+      {
+        "contents": "06B033003DBD6E5EBA861C20D7A37D61",
+        "de_type": 919
+      },
+      {
+        "contents": "2A729E0AF9286BBF90B0A3A6B7591BFDEB2180100541CE38E5",
+        "de_type": 981
+      },
+      {
+        "contents": "E05FE95894D29247E78451A5FE0635C431E0",
+        "de_type": 555
+      },
+      {
+        "contents": "DCEC979BD3722E22464D4FDBBE6C0C36B9",
+        "de_type": 688
+      },
+      {
+        "contents": "E55C2F",
+        "de_type": 920
+      }
+    ],
+    "encoded_section": "959013A64D93D01432AB2C93EE598ED825E09D91100096FD510E1761C11DEE130801210BE8B1900431467AF0C894A0E722ADE9F6CCB4A3717F37BC36E26D353D47AE9B2109D0FB52BF23597CA6A8542EEBA33FCD05B128629A04D68A50EBAE917CE307E285D79AC17CC088C8A05E4373896500AE0E3F6F602CAAFDD6FE64A4677E2090AACF1E2DE482EA152A11993C82B70415ADDE4E",
+    "identity_type": "provisioned",
+    "iv": "947D28352A1B86C1E2236B6E7531F60F",
+    "key_seed": "6D6A7D942D7660F709710E81D2ADF1EB82B049264E83608CB61918C555C932B8",
+    "metadata_key": "CEF10E891EBA5BD00B6152A2FB251BF4",
+    "section_mic_hmac_key": "9817BF8D1B65414C53FB1C3D264F36D36B48E777DEB910CD87496157C57C60B2",
+    "section_salt": "96FD510E1761C11DEE130801210BE8B1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F7978C49733680326C8CD0D6550F334C",
+    "aes_key": "17FA0908863D1B4EBDF05DD2F30A2208",
+    "data_elements": [
+      {
+        "contents": "246638469C9EFAB7FA881C39",
+        "de_type": 219
+      },
+      {
+        "contents": "9C1A259E1FDEA4E0B5",
+        "de_type": 303
+      },
+      {
+        "contents": "55B6AB32D64D0080BE176569732A38EAFB03450CC7D2E1C21AD3",
+        "de_type": 892
+      }
+    ],
+    "encoded_section": "6F9013C5B6C430D3A84D6611604E90B92AC9639110007CA3BE5D4F1E9798DC39FADA6E870C2C9001F8FC611C2B9508DF8AC88764822333DB1229A05449D35E67ABD092235B01D8037A3549EE3AA70482A187E8C872952FFA4A711288BFF30F493A2EE365E52C416E71D3980342F48B75",
+    "identity_type": "private",
+    "iv": "8BFCD2132085B890AD2C3E3A9948F316",
+    "key_seed": "21AC3F8D521DC1FF26D984A4B9BEDCCB8C311FA31B3E5575A4E3AE671DE012A3",
+    "metadata_key": "03F6987DA25955329DB9A2C50A879C02",
+    "section_mic_hmac_key": "5D51E2CC831C4B7548CE48A6643AFC127764F31FB9E865969AE10050894FC50F",
+    "section_salt": "7CA3BE5D4F1E9798DC39FADA6E870C2C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "88D9897749A087BA692088105D83C8DF",
+    "aes_key": "F7DD8EF76EC305BF6B46B1F99D00721C",
+    "data_elements": [
+      {
+        "contents": "ECB141D6A91EB9DFD5A7943311B7910F15AA07",
+        "de_type": 369
+      }
+    ],
+    "encoded_section": "4D901326351027E10EDFD7051D932A46A0BA25911000ADF3819989057AE9A61819927B7F8D1990047D54033ECFED457BB85532481D583A60A69316ABCEB31F91046C27D8FF7C844A9F662094F2A2",
+    "identity_type": "provisioned",
+    "iv": "4D9513DAC6E2B616C8E13E153897CEF1",
+    "key_seed": "BF5C7631979835CF4B4FF4EBFF456C8CD403C68EA87960B0E6851ED4EEA51CF9",
+    "metadata_key": "DE99D80A3652FE7BC2E467653CB29851",
+    "section_mic_hmac_key": "A270F8B7F2C41B15DFA09CCA748427572E1089E90F42CA3B98AA1FAC5489E166",
+    "section_salt": "ADF3819989057AE9A61819927B7F8D19"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FFAAF9CF08F2C0E4EABE4EDA5849880E",
+    "aes_key": "5579888FDEB07F4AE593D558E3FDDAD7",
+    "data_elements": [
+      {
+        "contents": "04B31B6181ACE137",
+        "de_type": 362
+      },
+      {
+        "contents": "EBE943E23DC7ECD4C7425BA338B5BD3CEDB01706",
+        "de_type": 430
+      }
+    ],
+    "encoded_section": "599013593827607D0CB872B3F9F9E7DD8A7E93911000C6121F8EFBA5B2885B32EC0AB3AC09C390013E91B3B7276D0F86C0C7FE864B96232017B450CDE11DB1322E7C8CCCE8F3F60BC173DCF5F6D4210A2F0FC39EDD71D0A4994B",
+    "identity_type": "private",
+    "iv": "067851344E70F915139C60128CFEF3B6",
+    "key_seed": "685763208F4D5F465E32B59BBBB624720807102E810D13E1B7ABFB08540E93D9",
+    "metadata_key": "0E8CFF3D0A9D7B2998DADD0D9FA14ADD",
+    "section_mic_hmac_key": "D56C9E377820AA656DD234E62C72AB224953C36A65126252BB66773F175A9AE5",
+    "section_salt": "C6121F8EFBA5B2885B32EC0AB3AC09C3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "445F8262587A527A2A50920D59873975",
+    "aes_key": "A0F36838DF419D50BC5C556466E1FC97",
+    "data_elements": [
+      {
+        "contents": "16550C16A40A2C8A362A94BE50C6",
+        "de_type": 135
+      },
+      {
+        "contents": "",
+        "de_type": 800
+      }
+    ],
+    "encoded_section": "4B90131D351EFBD9BAE953304D7A8FE0697DAC91100073AFBD6543076B300486F3EAB58E055B900104F18882A1DED7DED581EA73100AA9EC2F3F9173A401D05AF6BE5B4E1CCC8DF696E42C66",
+    "identity_type": "private",
+    "iv": "39A88826E22EB99F2CBEDB51171E3EEE",
+    "key_seed": "F226B3049DD530E4F60C4887D0A2FBFA987A8E1FEB72EA2303EC30A7147DD8E8",
+    "metadata_key": "AE2B15A2A9B54697E7CC405BDA81790B",
+    "section_mic_hmac_key": "6D21434215A1F6DF62E827E0268FECA28C37693611557B1C9342EC8E0C1D81EE",
+    "section_salt": "73AFBD6543076B300486F3EAB58E055B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0557BC1D38283635FBAE13D02728AB5B",
+    "aes_key": "A9BC8BA7EAF519C7B85E5A01188EF50D",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 63
+      },
+      {
+        "contents": "A3E5",
+        "de_type": 422
+      },
+      {
+        "contents": "D54CC7D06905667D7360AD193F3130425832776FCEBA2679E267B7970218",
+        "de_type": 285
+      },
+      {
+        "contents": "441597784AE289C3622CB239D2C4E8342231F4",
+        "de_type": 247
+      },
+      {
+        "contents": "C0336CD68C4AE63EAC656E3202C84B545813337C2A",
+        "de_type": 939
+      }
+    ],
+    "encoded_section": "8D9013C536B4E39D9201EF3025185148B9453C9110002E9AA3A07F8D9A60B7E03ECF29BB23CD9001509E02E030DC3E8FB95C6BB25A5490B29B435418731DDC6F2FE41F742397A96D8A326826BA73E9839E1BFE0B9DFCF78A063AC0B5135173F31E0DB480B06A4617BF068C88B9CC04BD37BA5CAE862D0601BD1864DBADE74F3506CE064DBBFDA34DEB49C330D7A9",
+    "identity_type": "private",
+    "iv": "D8028895E10766DF8BA06D75C6A112A8",
+    "key_seed": "5493AE88E27447BF331AF54D9F82018ECCD1AADA9013D8FAB3E26434BB65B965",
+    "metadata_key": "14D05DBAB3A9EEE82E952390E0AEDDF1",
+    "section_mic_hmac_key": "10002B26833E9FB12D751AA88A90E30B7F8418BE8BDF2EDEDE47A8906C25C49C",
+    "section_salt": "2E9AA3A07F8D9A60B7E03ECF29BB23CD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "30C56C83215C76E99FEB30822EBC10A7",
+    "aes_key": "5BD799E5168D831A50AE88908D7C819A",
+    "data_elements": [
+      {
+        "contents": "A52634A06EC8E3",
+        "de_type": 239
+      }
+    ],
+    "encoded_section": "4190138560C2A340ADC9FB31AD47095F34482091100068B0F681E3A5DF3C78A44BA62217395E900165E94E9C7C34CED0FEE48824E2BD691A4C924F8FBA59DC0D5697",
+    "identity_type": "private",
+    "iv": "2180C4533853767495A5C245C4E6B7DA",
+    "key_seed": "EA428BE58334D369CB5803FF519C408C44B9C2046DA706B0FC64B3AC7855CF4C",
+    "metadata_key": "794F11DDC402D478236E4FE863A7C014",
+    "section_mic_hmac_key": "BA65D2678CC2A9F28B1FC79BD735A0AD94C978A183D80BABF4F7AEEADAC57CFD",
+    "section_salt": "68B0F681E3A5DF3C78A44BA62217395E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "45450AD30A7FF2646B7FC9A7498B48C9",
+    "aes_key": "C597783A6BEA9B14F749AEFD0554A10E",
+    "data_elements": [
+      {
+        "contents": "A1BCA904A65BB84506FD4FA7B8F82D4E3E27F1FE06FF98C5F5E9DB841D42",
+        "de_type": 255
+      },
+      {
+        "contents": "9E22935748180AE8A2CB2552330AE84E0753C065271E",
+        "de_type": 398
+      }
+    ],
+    "encoded_section": "71901354622DA8EA9F9CC2350BC32E57DE761B911000A833A0E92CA1E0347245C35E678EE14E9004CBDC2F1ECDC2364CEC12BB5C36EBEE053F2D6E806D60BF129AC37E800F49559211A0A8DA47C4F85BD5F5B500201022790C232525FD06CB7161A123892D9D15EA32303BE5439AD3EE6E18",
+    "identity_type": "provisioned",
+    "iv": "80E557930065CB90C62020A24F0A88B2",
+    "key_seed": "BB4AA3FBE34B70ACBBA908FA5F1BA74D9B2C8F521157C183AB94184F85BE6610",
+    "metadata_key": "CAF8352A2D518815C4687370ECA9B717",
+    "section_mic_hmac_key": "4A8327360B9E78473FE9E8CC2F68F19A6C2E7F3CDE21ABC007296E6F37103402",
+    "section_salt": "A833A0E92CA1E0347245C35E678EE14E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2149BA09FAAB9ABCEEFC3F1ABCF9835C",
+    "aes_key": "320ED87DE4141376542574C62FB7F871",
+    "data_elements": [
+      {
+        "contents": "58D1F10B05288C8BEE4CA01E515CAE",
+        "de_type": 472
+      },
+      {
+        "contents": "341278EAF7023A",
+        "de_type": 418
+      },
+      {
+        "contents": "7F6DE46EAB91ED",
+        "de_type": 443
+      },
+      {
+        "contents": "ED3F2FB7",
+        "de_type": 861
+      },
+      {
+        "contents": "89BD3EB3",
+        "de_type": 886
+      }
+    ],
+    "encoded_section": "6B9013899F627C6E1410138BFFCE742BE143E69110003A40A350CE9225C732AC27C9BCD65F1F90020A96A446120DA7C8C20715B87789DA1EE5EB068690DDB044F346E8E5ED1BB493BF7AEA8873E8A3A02ADE54C073CFE9B2E4432079C89D84C6B302BFD02177EC6ADCEAB360",
+    "identity_type": "trusted",
+    "iv": "5F97B82B7494DB44B27135C54CAEC7D4",
+    "key_seed": "B6E611FD268D0E0B4C5F677B942115CF92D2E4C43B5A69E867A36EA2C68C1193",
+    "metadata_key": "F0917DDB2BE2193FC96B46B81675209D",
+    "section_mic_hmac_key": "B11E903ABDB58F30052E0A5046B2E2D5A987589D3365224F4EC6AC25BB5755DD",
+    "section_salt": "3A40A350CE9225C732AC27C9BCD65F1F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "24036FD2BE3DCF97D9DF963B68D92DCC",
+    "aes_key": "602B4616715273B107370D173ED8666B",
+    "data_elements": [
+      {
+        "contents": "2734F55CC2D6B46C5C3B37",
+        "de_type": 963
+      },
+      {
+        "contents": "3ECD6542A74D7BE449DA6B40CFAD8D3809",
+        "de_type": 517
+      },
+      {
+        "contents": "49A3375EABF0AF0B26674D2879BB79F81C",
+        "de_type": 884
+      }
+    ],
+    "encoded_section": "6D9013D63C809F3652DD6AEF44F7FB35794E82911000D146378477019DF7ACFE29254CA21A7490042BF103C5A38BFF08D3CCF725A0811B6427D6C9D8A87A967DCA5C484C6A45DA78801408E91C5E2E377FCA9E5686E3BA2C901532814770E0EED571C0D03BE53841A5A14EF7D7F8",
+    "identity_type": "provisioned",
+    "iv": "080A6136094FC17B1A16AD0BB82693C5",
+    "key_seed": "520DAB213766293AA52073574939FBDF3FF7FD6E440FE41FDA38840112D7D531",
+    "metadata_key": "22E70A8A5CE17D98948AA5ACE440250F",
+    "section_mic_hmac_key": "00DFB12A3DBD705121093901BC2D50BCFDD3173593307F9D4C37C9A0849F5446",
+    "section_salt": "D146378477019DF7ACFE29254CA21A74"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "63C51801F768165BFC326E7C82FC1227",
+    "aes_key": "57B39C2DFF8CAE78838966761E9AD467",
+    "data_elements": [
+      {
+        "contents": "049E77BF20D8B744640EF2F3C776CDDBA3BAFA2A88",
+        "de_type": 555
+      },
+      {
+        "contents": "15BCAE3F4B78785C16E4590DA228CC3B",
+        "de_type": 896
+      },
+      {
+        "contents": "78C11D80D8BBF31D3482C1F4162BA2FB5FD29B",
+        "de_type": 132
+      }
+    ],
+    "encoded_section": "789013E816D1BEAA6F0661CF5A37AFF036BCA9911000B834A100C92A6653F03120CEC5F5592E90025CDCC0847E46F2131D454A6C3774B5EEB4EC5D6AE886A374CFBA015D8FD3336291586D08C141E3637002176BD3F4DA468C61752284262045D3F00A0F9140FC79FC7B3B380A311BEAA0C46C2BBC9790CB8A",
+    "identity_type": "trusted",
+    "iv": "6EB51E1B378E7EC195ED6131D5B917A1",
+    "key_seed": "D0FC05ABA9677770D9560F5CC298BB1CDCECE2776762070E9DB7729C4E6B1998",
+    "metadata_key": "C3DC3239104F41A29A6CA839846892BD",
+    "section_mic_hmac_key": "042BE96EE344DE41F99A6F9A99D74DE39B7FDB8FBDEA76CA4819BBBE76D1020F",
+    "section_salt": "B834A100C92A6653F03120CEC5F5592E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5D2A54C35196DB6687A495E4C266042D",
+    "aes_key": "B94AF3DE4F31E07283C694BE118A2D39",
+    "data_elements": [
+      {
+        "contents": "7F221D4C1A",
+        "de_type": 175
+      },
+      {
+        "contents": "DA7BF9A3C1F1A0F7D394FA",
+        "de_type": 51
+      },
+      {
+        "contents": "A3F5054FAD0E0B0F32",
+        "de_type": 693
+      },
+      {
+        "contents": "A0F34BBEA40E64",
+        "de_type": 514
+      },
+      {
+        "contents": "A02552",
+        "de_type": 259
+      }
+    ],
+    "encoded_section": "68901328AFDD847D58B8E42C91D72766806C5A911000CEA2BF3A4917856CB02C3E535657238A9002BCA81209838C61B7DC924CB7F75B0954E37749E736DBBE2C06A20809D8DD342D1938A290C35AF882C1B7B937E58703E984E4CF794E70265512407A8E10FA031CAE",
+    "identity_type": "trusted",
+    "iv": "8828C505B304C04F4872D41049F59825",
+    "key_seed": "EE9FC69BD400B68041022770DC312DE8C66C492E23BE76579D714E142489B440",
+    "metadata_key": "66FEDAAD7F184A6C27481BD86869213D",
+    "section_mic_hmac_key": "FC34E258074AE77E103008524518165B04278B97935C89ED9DC45F9F1EC090C9",
+    "section_salt": "CEA2BF3A4917856CB02C3E535657238A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4DE3C97760C9B8DE4C61503AB880C1AC",
+    "aes_key": "F92EDC38BB8DEF8AFE9BCA414079A5C1",
+    "data_elements": [
+      {
+        "contents": "3D713A3004C3540EAC1EC4AA1DCAFE0989B228",
+        "de_type": 322
+      },
+      {
+        "contents": "1699702E3F9F64F6A2503415D312429EA274E049BC0B6B7F15756CD8B33A",
+        "de_type": 25
+      },
+      {
+        "contents": "37",
+        "de_type": 200
+      },
+      {
+        "contents": "04F9",
+        "de_type": 375
+      },
+      {
+        "contents": "D363E2343CAB2298956475C4F658C4609E77514ACBC58A40D75A0EA6",
+        "de_type": 62
+      }
+    ],
+    "encoded_section": "949013A75CD13AE9FCA132E0B0BCE584544EBC9110002EB54EBE8F6BDDE1109D60F57C29DFB39001AB7FA220B3D56C65AF369EB529702C9C7D039249F3D56387AE4714EEA61FFC310A96DFE05402F7CE7E354D716A3453B583B9CF812A98E85F4EBB3C2CAF09E3EDD2916A57F6AC6E68EF5180301378077EE13E410C594525D5C0A37AD77495EC42117164B749E16FD6762651110A",
+    "identity_type": "private",
+    "iv": "C266A550D575D8E8A76B32E4EB60566D",
+    "key_seed": "DE0CA86B9DE2F53BC684E1E0546BAE9C1168EA4041E70FEA570B63D153B6E0DF",
+    "metadata_key": "772C23286C809572A8A7A4CFF6562106",
+    "section_mic_hmac_key": "DE9DD28EAD5F258311F9143A61CF1729938E1973DFC71EFA64BC3496B1DC2FA8",
+    "section_salt": "2EB54EBE8F6BDDE1109D60F57C29DFB3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "08591DE70D9203A4BD5BBFF0EB0923E7",
+    "aes_key": "84B87FAF5569BE3145FDF5BC95B8228F",
+    "data_elements": [
+      {
+        "contents": "4B2619",
+        "de_type": 910
+      },
+      {
+        "contents": "737EA4568AD23835B9",
+        "de_type": 193
+      },
+      {
+        "contents": "7F16EDF05CE5CEF44F4669",
+        "de_type": 908
+      },
+      {
+        "contents": "997C7BAD1FA37D3725D2E58BDC87BD892D0A",
+        "de_type": 789
+      },
+      {
+        "contents": "38368E23CA2E20C2D25E0C36E8953D",
+        "de_type": 683
+      }
+    ],
+    "encoded_section": "7E901392A0322C56CCB3EDBDA02426B5F20C169110007FC169892BDFE3C58AE3A9145B1945AD9002B0904135D3B0B28995FD2D3BB2AC63CCFA0EA80B4C2FE257692A1C3D46C2ED102D06679A64D95BBA7C65E41EAD48417AA853ADAF290012327085B183EFA9016EA3AF6365776548E4EE9509651AE6BAE0A1AB23DDAD8140",
+    "identity_type": "trusted",
+    "iv": "1EFC0B89733153C45C3F0B9952E7CA2C",
+    "key_seed": "E069DF1441FF9660D686BA2ED4B324F9EE827A41666AD3D72CECCACA3EDC1195",
+    "metadata_key": "837D4BDE2339F7E0760F507FD65EF0F5",
+    "section_mic_hmac_key": "332B87B53F48DE7951414290B387018BF70E2DD12A550AE288DEB8F082D5E3AD",
+    "section_salt": "7FC169892BDFE3C58AE3A9145B1945AD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D3CD0C0B45D18C67D9FF4ABD9C00F638",
+    "aes_key": "EA252AE1D2F51097B0B3C59CD5394CCB",
+    "data_elements": [
+      {
+        "contents": "9DA05D735D904142FC9820E859D3D2DAA3FD9BF99077EE289848BD",
+        "de_type": 729
+      },
+      {
+        "contents": "AAA29A80423195",
+        "de_type": 501
+      },
+      {
+        "contents": "",
+        "de_type": 729
+      }
+    ],
+    "encoded_section": "6290139551860389CAB63CF19976C38F9F83829110004EAA5E6CB7B52006113B8227B50B6FAA9004F55AF889B0D3A843343569BBB9FBCCFF954C7B2085DDC35493039663D1859721DEC51AFCED18340265399F3D29A634266BD6F7B72B13904BEFFBFA",
+    "identity_type": "provisioned",
+    "iv": "33261AE9D64163AEEA6CA4780557B537",
+    "key_seed": "D276F97EC832428E7341153402EC817EDA087F3722092DFDCD33E3DAC87FCF9C",
+    "metadata_key": "B784A92864FE81EE00484C3407B19E18",
+    "section_mic_hmac_key": "BFF73B8A8684137A38AA0CE919F921F5E46BEB78CAABF9001A9829A91BB2DDDB",
+    "section_salt": "4EAA5E6CB7B52006113B8227B50B6FAA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8F53DA57958205F65AF175946F0E7C9D",
+    "aes_key": "1AB05E4A3B94AED84AF5AC5AA0C34532",
+    "data_elements": [
+      {
+        "contents": "70730B2189EDD115FF4146EB6736958B2131B4E758871206A7BD",
+        "de_type": 857
+      },
+      {
+        "contents": "0C",
+        "de_type": 50
+      },
+      {
+        "contents": "85363F2F6E5B68549DC14698",
+        "de_type": 781
+      },
+      {
+        "contents": "24B2893FBC",
+        "de_type": 493
+      }
+    ],
+    "encoded_section": "6E901344842419D528E3354B2B62AEB7DCA816911000F7F26313B7593F64E2609508E29C568F9002ADA0099489D0829C5C03B5E34C36A22F4DBD656538D7A34FF22307009C917241BC3C03E863B498F7E744B781E4C97EE731D6C27BBCBB9B0BCD5049BE32A34F127AF7F262555E01",
+    "identity_type": "trusted",
+    "iv": "94EEED11E11DD155988B855D19007FAE",
+    "key_seed": "88182E258A729A4E43B5374B97A2C3B62F694B30FE8716172BC346A27E074B29",
+    "metadata_key": "5FAF4F9CDDA36DE98B4BE1111E7BBA39",
+    "section_mic_hmac_key": "EE0A1B46369F96415076C2C5C59FA7FBBE38620043D78E935340767C3094600B",
+    "section_salt": "F7F26313B7593F64E2609508E29C568F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FD84FB907560ECF5CB2A9771A4BA8CD1",
+    "aes_key": "E3FD2A72A74A7EFFC6F4585CDC240D3F",
+    "data_elements": [
+      {
+        "contents": "5BFF",
+        "de_type": 353
+      },
+      {
+        "contents": "56E6B22A147A51A7ADE3A51B1A4ABF",
+        "de_type": 703
+      },
+      {
+        "contents": "FA366A",
+        "de_type": 922
+      }
+    ],
+    "encoded_section": "549013A550EB4A596D0709CC4831941ECD4B97911000BC96DC7FE5F9AB0C79FCB5C3427416309004EE787CB1DA498BB4C72EDB79F03197668CA9719227CA6D084FF44145EDE83ACE127060F8AF7A47BFA9AF03D7F5",
+    "identity_type": "provisioned",
+    "iv": "0A95F9333CCB2B0BFC001BAE3C585430",
+    "key_seed": "32F7B9337E17ABEA1D32339620554D78574F2311A7DF33FDC2040ECCEA22F16A",
+    "metadata_key": "0D7BC86218E42A4DE2ADCE4BFCE1CBEA",
+    "section_mic_hmac_key": "391BCA81E1EB5B64A6A5B48226FBC88361F80157D68FDEF21D159D765E89B1D9",
+    "section_salt": "BC96DC7FE5F9AB0C79FCB5C342741630"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A020F8E4858919DA9912CD877E5D7E1",
+    "aes_key": "AB7BC14F98F82FC2F63DA94527EE1E25",
+    "data_elements": [
+      {
+        "contents": "F206FA29E92D1E2CE7F8F97335171D49D7634167F9D24DA45945D7C5D1",
+        "de_type": 558
+      },
+      {
+        "contents": "BA45C18251ABB34EBB8A427E55B997260F451D",
+        "de_type": 686
+      },
+      {
+        "contents": "01F97FCD198286623C44DBB47FCC467BEF",
+        "de_type": 596
+      }
+    ],
+    "encoded_section": "819013BB56AD1C58BC3238CF683D9C6A2539C4911000C5480A0E75D4E0A677CA57FB7141919D900153375B41C2A3EB1A8AE9D4F3123AF5908A597DD8279AB6D68BBBA1BC107EC58B6D083F21201D44FB5EB0C254DA392099B8F47BFB9875B67C498B3CFCF4069F9A2CAE853F967F1953305E8943E9B97ED439F16FC82AAB2AEE3CFE",
+    "identity_type": "private",
+    "iv": "496F077A2B7916761DD8AC728D556F06",
+    "key_seed": "F8E22E64BC77461311AB36F96475EAA5398D0080F0FBAE13F1C4492DF46179F1",
+    "metadata_key": "4E7A8A31769B49F87CFE1FD8BCFB052A",
+    "section_mic_hmac_key": "E5F81D3C2D13A10FF5CD9B863C512FA9E0D1AFCF813474F7666251BD055FBB05",
+    "section_salt": "C5480A0E75D4E0A677CA57FB7141919D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2B2937852F695F8D56C725B0A6DED2B3",
+    "aes_key": "C7A0EC3BA5987EA8BCBECC13ADCB9CAD",
+    "data_elements": [
+      {
+        "contents": "3686E921B3",
+        "de_type": 624
+      },
+      {
+        "contents": "13A0B207EA7A",
+        "de_type": 693
+      },
+      {
+        "contents": "5ECF29F01D38",
+        "de_type": 348
+      },
+      {
+        "contents": "E22EA254A7EFB27938D2E75677F7CE8741463254DE17C1EF",
+        "de_type": 413
+      }
+    ],
+    "encoded_section": "6C9013B4F7525345C4D799DCC73BBD7D34A2A891100039E36002FD6A898C7113D8E29BBC18C9900288F3BFFF20D692ED112C8A264C6479AEE31F98BD1410ADB1E8B15E797F18DB33ACEA80FB761CCED0BE25F19B74AC2B7E7874E832E57995638165C3FB0222984E880845556C",
+    "identity_type": "trusted",
+    "iv": "6E6427719A16CE39BB3AD9ADED72A83A",
+    "key_seed": "948B5BB10F06A5C607E6FDD6631F173B7D938E80FFF8F4EFDFA1DF315933648B",
+    "metadata_key": "7419265431EE04AC211B9BE2072065E9",
+    "section_mic_hmac_key": "CEB322C685911AF93A57E15C80E40B410600BCBCDB1091D49F1DD58F55DEEE96",
+    "section_salt": "39E36002FD6A898C7113D8E29BBC18C9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "47F54618F90BA0470CAA122D068090DA",
+    "aes_key": "7D286DE8F9BA981B7AC6EEF116A30B8B",
+    "data_elements": [
+      {
+        "contents": "8E6ADCC3529CB914BA44071D1039476F503534E24E9FAD",
+        "de_type": 866
+      },
+      {
+        "contents": "FF59C0311B6365D7B2",
+        "de_type": 482
+      },
+      {
+        "contents": "86E592766FBA32BAA8CB5926C68B9CF1757B30ECFC8B01",
+        "de_type": 865
+      },
+      {
+        "contents": "BDEC4494677D60C91BEDBC5613AA622C607D623763F1169835649EAE177D",
+        "de_type": 912
+      }
+    ],
+    "encoded_section": "9890133504BB533122BC321979FD233507F92D911000D087206EE8701FADF74E29E64DC42B299001FEE75CADBFA905B7121329EEC77ED201DC81644197BF8BCEE765353ACA4C2D3E6E90F6331506C5A5180DC54AE4FB34B294F70F448EDB3EC9366DEADE0A63EFCCF7B495AF25DFD1E375F109ECF0D66BDC5C1706DA8DDACDDA0D76E109A3998263959F650F34D07BA4908FCCEAA47C3BD1BD",
+    "identity_type": "private",
+    "iv": "06092E39EEFF3F94DDF84FB4E82096F0",
+    "key_seed": "1CEB5B27728B3C394FA53039B1A2BB3963FDB1ABB971C694FF9B583DB4D6F4C5",
+    "metadata_key": "4BFF4D6A274981EEE3A41CFC71104933",
+    "section_mic_hmac_key": "71D0D24E9DF1CC8CA5705A5B97564B392020BC1E31103B902AC6109A20736FEC",
+    "section_salt": "D087206EE8701FADF74E29E64DC42B29"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A5CB335E0E651AEC76610103314BE5E8",
+    "aes_key": "2073B2C6E4A891FA1F4A94E6E0ED2D7B",
+    "data_elements": [
+      {
+        "contents": "39992BB369E5",
+        "de_type": 403
+      },
+      {
+        "contents": "91A4A04160751875",
+        "de_type": 341
+      }
+    ],
+    "encoded_section": "4B9013D868F86C9DABB0C962C104961D2199819110005F70263B58C94A534BA0732A362CFE759004F0376CB6B7C35E6A97774046EB8E11BE29D06EEC71C5300B63E76D1F743ACE32AB77D7C2",
+    "identity_type": "provisioned",
+    "iv": "8E45ADAD9A235A3A0131D1DD9B5F9279",
+    "key_seed": "CF2BF8EA55BEC2D2A5C15C46C09B9291934EBEAC7792D75702B1C1F56DD52AE0",
+    "metadata_key": "E227B26B4D3E35C8778FA1D40D326AF9",
+    "section_mic_hmac_key": "8FAC7D8677AF486D3DFCD671F2830A5CD938A6CA7E2DB273FB9AD603617425CB",
+    "section_salt": "5F70263B58C94A534BA0732A362CFE75"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F1C24DC0B003B6D25BD4C3F1BCB66285",
+    "aes_key": "DB76A3E8C87A935422EDDF2E573D2EAA",
+    "data_elements": [
+      {
+        "contents": "87",
+        "de_type": 196
+      },
+      {
+        "contents": "24",
+        "de_type": 342
+      },
+      {
+        "contents": "C72C39FF57E7FD4DA1C96A5F6C71DBB7912D5E59351BA03CEC4C31",
+        "de_type": 295
+      },
+      {
+        "contents": "8418AD4C9FED5B9908",
+        "de_type": 993
+      }
+    ],
+    "encoded_section": "699013C828BE6B34B2F3061396313E501C35C5911000FD1A8AA4AEE8DF00D003270485B8F7E79001E4A3421E4634FFB67FED3BD908779E411870A14E90F14AD32D3C9F8E34F0DF2F1E956F4586EBA22CCACCA8CDBF530867C4BA55BDE2D461D3BD331F384361963326F8",
+    "identity_type": "private",
+    "iv": "C3A642B990DD53C2652267D0D74140F9",
+    "key_seed": "103EEB5230E3A94CDE86DE361742D42DA89715178B2EEB054192580C46FFEA86",
+    "metadata_key": "AACE9616D0BE1375E9501E23B9AD5A27",
+    "section_mic_hmac_key": "EDA3F8BD268CA694571B96BA31002C4C1F0780914645F09C3F41CD2D89E1ED87",
+    "section_salt": "FD1A8AA4AEE8DF00D003270485B8F7E7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D1C4D57D1022E2E34A436AB3BA2925E",
+    "aes_key": "95B5084E465C6C37973DEF1CA3DB47AD",
+    "data_elements": [
+      {
+        "contents": "C1A19CFE869417D14BA0812EDB723157572FFE02431EB51B",
+        "de_type": 536
+      },
+      {
+        "contents": "",
+        "de_type": 606
+      }
+    ],
+    "encoded_section": "559013E83D70079ADAB5FC3E1F844299D6B9319110008ED6921AF82E82864706EDE25EB3796E90042DF36874DAEAF11DBF9CF1F0CE2510156BC023B8D936F09D7BF3005B068697F171958A92CFAC237954E57BAE73C1",
+    "identity_type": "provisioned",
+    "iv": "D77A9FE328C32C11C38DC06F43475909",
+    "key_seed": "5BFA074B8A029B3617D2CA1EB0C5CCCC9AE733C23AFAD5EE72D0AFEA1B43E96E",
+    "metadata_key": "0D076B70D9757FA46D1DF675985EBCC2",
+    "section_mic_hmac_key": "13ADE797F4AC758CDAF7B19222516722967586D6742B514E8AC64DA36EB958C5",
+    "section_salt": "8ED6921AF82E82864706EDE25EB3796E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "65E6464F45B5C34BC2B3ACAB85653A62",
+    "aes_key": "4202E0AD401A9919BE9499177FBFE027",
+    "data_elements": [
+      {
+        "contents": "87DE98B78C4998378DBD3D8513F1F4252089430D3ACA43E8A9C52F",
+        "de_type": 613
+      },
+      {
+        "contents": "30DF522A56BC545C1B8371AC0DA6583C415464F29CE827339312A5144F0F",
+        "de_type": 275
+      },
+      {
+        "contents": "080BA02D47A3D4AF7BA94C1FCBCB70A71397E14206B6",
+        "de_type": 264
+      },
+      {
+        "contents": "AA6BF69B8ECD8613C95DA243320D4A2581",
+        "de_type": 349
+      },
+      {
+        "contents": "9007448B4D1A1C6824EF74406318C43421622D8177933E1B469088FB6B0C",
+        "de_type": 763
+      }
+    ],
+    "encoded_section": "C490133190D16D406DE4CDB486C62178AA7FBE911000C0CF7E29552F1C72FE58F39607FED92B900121CD625287C4ABCC300868F871B3F9FC36B8E82A243F4B7C1DBC00236FE4F0F2FB2B215B8016040357A368672BF3670175DE4E57ACE0E68FC1932303528CBEDDA764DA369F6164070F860C86AC90D6C4EE900AA58F37AAC2CA3C92BBACF0556A28BB264CAACB5DD6515F19CC3F31808CC7341D23593B63166186809F4492CD86A1AB181FFC1F48D7AE759BEF015427EFF04FDC794559B7DB7D33939531",
+    "identity_type": "private",
+    "iv": "33A37770A90581B66BF440E910ABED3A",
+    "key_seed": "FDA2E31760FC708DA464AB0C68FE2466846222FF391F483BBDF194DE7ED3507B",
+    "metadata_key": "55850C28AB36C0478C59455F908449DC",
+    "section_mic_hmac_key": "A5F0E47EC740727D97426B01CB0A1D498373E14B2A42964940274954B9CAE4D6",
+    "section_salt": "C0CF7E29552F1C72FE58F39607FED92B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9FAA7146038C8FBF5223B3F4EF402B4B",
+    "aes_key": "FDADB3FC15C2748A41A7BD272244731F",
+    "data_elements": [
+      {
+        "contents": "C888F3DA553255168D1C6C687CC86D8A",
+        "de_type": 401
+      }
+    ],
+    "encoded_section": "4A90138C466CF8E025CD72F5C052580230B0A2911000D14BDC42045F83B2B03EBFEC15C42AFA9001E0A30A11CEE658DCDEE4B62B6134BE16B6F2C5C92F4571BF6A2CE1AF1A360FB9C19792",
+    "identity_type": "private",
+    "iv": "58E287FC21B6D4FBCFF5C9FDECA731C7",
+    "key_seed": "79E63CB8F2025BE59AAAA0BCB7AF1C9876DF9E2C8774637887557F11C87913AD",
+    "metadata_key": "B6F890E2A81B7C0173C0AD1725402695",
+    "section_mic_hmac_key": "C0B180C437E5BC877605ABC2A30E6E008A6365DF291026AF19F181AD62BB5F3B",
+    "section_salt": "D14BDC42045F83B2B03EBFEC15C42AFA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5844853779D722DCE751CE513B2A0B37",
+    "aes_key": "6062FFDA23EB1FD510C3672BA5B92CD4",
+    "data_elements": [],
+    "encoded_section": "37901343D08516A6126826C2F77055E624363E9110005BA67B0DD13A87E2209A8796B4455C2690014158D669F5C62F236538C822C5994228",
+    "identity_type": "private",
+    "iv": "5FB73671DC2F2B6A48245CA4E3FF1D1E",
+    "key_seed": "819ADBF5BF607833105976ECAA2E3BC5A8BE1B5E73BB11A7967B93ED72128AC0",
+    "metadata_key": "4467ADE4F732BB4F0AABFA43606DDB89",
+    "section_mic_hmac_key": "5462BB3C170727E8601FE06BA4B954764D246394D912E56A085567F7148F0144",
+    "section_salt": "5BA67B0DD13A87E2209A8796B4455C26"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A49403C60AC65B85C47FF2D1DA45B21",
+    "aes_key": "F94C9EBAD0A9A3608BAA2D0DC0493BD2",
+    "data_elements": [
+      {
+        "contents": "9FFF46ED",
+        "de_type": 411
+      },
+      {
+        "contents": "03765D84D65C1DF5BA926D5FBB496AC914",
+        "de_type": 959
+      },
+      {
+        "contents": "2D34BC69CF",
+        "de_type": 64
+      },
+      {
+        "contents": "2456607795672BD7C8E7EB4A79BC6F71970608BB0D6F2E",
+        "de_type": 350
+      }
+    ],
+    "encoded_section": "739013D459BEAE4BCCF848831FCFD6DF0EFC259110000DBB0E6CA11CFF6F16ECCE6188E4A1E6900164CF5B4306C90D677539B05AC8FC468C7048FEF75FA4C486D0BC50038AF5620F863D111F441579478FC7474B593EFF0D59E95AA2AE84A2E2D95EDE9FCB7E6A4F669A645B7BAE8A41309ADD91",
+    "identity_type": "private",
+    "iv": "6BA0BC2764992CFFC2BC748EA0A61698",
+    "key_seed": "2E4F8F58A9D66315331FF83B8BC341494998670500C65260040444A67847649F",
+    "metadata_key": "B8653FCEF2F9771634F76E509234296D",
+    "section_mic_hmac_key": "35AE4A49D73CF2763F80202B81F55F4D2EC375FAAFF14AE60F00F7F706D36891",
+    "section_salt": "0DBB0E6CA11CFF6F16ECCE6188E4A1E6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7B2876D1294D35C9A633642CDB531043",
+    "aes_key": "11BD09E553C69F31A441EB71286BF702",
+    "data_elements": [
+      {
+        "contents": "1CD68F",
+        "de_type": 821
+      },
+      {
+        "contents": "D6758EB514",
+        "de_type": 58
+      },
+      {
+        "contents": "A2AB3B5B6DC7B404F1EE0B3AC1BF3D67BE64619453F5CBDAEDF225",
+        "de_type": 19
+      },
+      {
+        "contents": "A1A3542F7C661B7FECF56442923CC27152C365D245BC303D",
+        "de_type": 108
+      },
+      {
+        "contents": "9E18754BFB",
+        "de_type": 629
+      }
+    ],
+    "encoded_section": "83901388E29374A47FF296171738B1F21D9DF491100032A08CD56B7AF49208B0A3A16326B62B90024A5CADC6674D9B1CD6D74390D279F841B4DF78C1F7D6A08A6A747C6D706FB7070AF8C54BADE0743A9A1DF40953ECAB8DE3D7EB5740B3633E669A3BB14CA04B83453B23E532BE99A7F576D1F3DC5261238A734521217EDE09D908B365",
+    "identity_type": "trusted",
+    "iv": "478031F97CE799ECA7A88B9B742BACF3",
+    "key_seed": "124837A26828865520BB821F0833993EB6459AD3F6C4A3A9E9E3743363CA0FC1",
+    "metadata_key": "0F6C4FA4BA7A110CCAC6F1E253D86578",
+    "section_mic_hmac_key": "3366BD2EC451B292C053D75DF63AE820D999EBB1E4D608ABD71D9EE7F17CD6D0",
+    "section_salt": "32A08CD56B7AF49208B0A3A16326B62B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BF1F3EDE71CC0BA23F3E9B5188DCD74D",
+    "aes_key": "0D34EA39D00C9491832F0C0893FD98E3",
+    "data_elements": [
+      {
+        "contents": "C8D6F76BFBB24D",
+        "de_type": 615
+      }
+    ],
+    "encoded_section": "419013A6981580761522A9EC4FD894D95FABFE9110000903815A6E8B791AD5B98D3F84DC737F9002828E33F525A8188B2C7FB787101D4E1B2D25346336913916CEEF",
+    "identity_type": "trusted",
+    "iv": "B462E5AB2AF8A646A3EE86F73E576561",
+    "key_seed": "317A34230522CA4E9A39A827F78E044E63D1882E174AF27CFC3158E85FA7BCDE",
+    "metadata_key": "A16F43B5C24F051BE891FCB6429D5625",
+    "section_mic_hmac_key": "83683A330870E963D7B405376CAD9952CD313DEF8469F90D6951A0AF7DEF9F63",
+    "section_salt": "0903815A6E8B791AD5B98D3F84DC737F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B96DEA316DEF89973732DB62BC4432A7",
+    "aes_key": "C91E00B32F96ABED4FF0122583AB10B2",
+    "data_elements": [],
+    "encoded_section": "37901325B6BDC8A60672158F093819CF704ECE911000BDF2DD53B2723CF84674A938606393CD9002AF993A3939824B86FAA22B5B45F758C3",
+    "identity_type": "trusted",
+    "iv": "BE5C727FC20CAC7FD9F537FA14DA7E18",
+    "key_seed": "489D396A25321A6241DE317FD48F88BAB3D8626C6C642C33E4D71ED80C33FCFC",
+    "metadata_key": "B16BE5F80A589EAAC9F6CE6E40927214",
+    "section_mic_hmac_key": "DD060E89B2C731BAD9F3B541F17841047A27DFD12DCCE92E2DEDD6D72CF17ABE",
+    "section_salt": "BDF2DD53B2723CF84674A938606393CD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B15D76E91DFA20E5D94AB77C272AEA36",
+    "aes_key": "08F89BDE3E8CF20DAA15650BE114AF90",
+    "data_elements": [],
+    "encoded_section": "3790132C20330BF7AD2A9D6356023F542CE510911000C28E44A518BCC0A1AD058B4EDF7778849002A89640F16E3ED67F7EC86AC01434665D",
+    "identity_type": "trusted",
+    "iv": "4ED00D1E66EABEA0AB30F9ACA64C3AB4",
+    "key_seed": "F4052897D21C7FDFB463D86A3F70F43315969DD6C35D4E2F28E5C5FDC094499B",
+    "metadata_key": "A9CC5F1CC6D129AF1BDE07EC54685F86",
+    "section_mic_hmac_key": "1B1A2DB91F5F90BCE7D03F7F283476DB0E6F856A317A3B29747114D6F7543214",
+    "section_salt": "C28E44A518BCC0A1AD058B4EDF777884"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B23518E75C4291C3FF45E230AE8E1144",
+    "aes_key": "0EE48AA7E17EB7AC213E0251F5863A43",
+    "data_elements": [
+      {
+        "contents": "E8397D814788CE2F20C774EDD9A8",
+        "de_type": 38
+      }
+    ],
+    "encoded_section": "479013B7680C78524B27EF19239EE7409C867A911000937FD9077FE6FE41C87FF58C9760628390045396E7CEC68FA85BA56F754D53A236C80B709D69201120CE8DC52D023F63EA2B",
+    "identity_type": "provisioned",
+    "iv": "70E0CF8376E6263D6D39221A279FFB74",
+    "key_seed": "C1CD56FC8895CFAF52047C5EC6E4B555A2A3FBEA8078EE18B88DF10D073D3D20",
+    "metadata_key": "C409D3270AC018858924F1620EC07CB8",
+    "section_mic_hmac_key": "FC9B097CE0223CF1D7719C00676607E1D99B792D993450C7E333EFB2342D5AC7",
+    "section_salt": "937FD9077FE6FE41C87FF58C97606283"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FE111934B0B07379A319C62F558B8EF1",
+    "aes_key": "BAF0EADC4EAC7805FF4CB8B5BBE3E33B",
+    "data_elements": [],
+    "encoded_section": "3790139B8CC25B1E6EE84846046B6606A9FAEB9110004EEDBAD6580D5B7A26ADC604E4AE5ADB90023E2A49EFB0DAD66407994E861FC7931C",
+    "identity_type": "trusted",
+    "iv": "B9F42C9FC19969B3C708F54B1B2D2561",
+    "key_seed": "CA99DFBEE06974AD30031B9482C62411610D1DE2B05E1977F969FAFD860260B5",
+    "metadata_key": "7EBA70428E31280F089029EBCCC28E53",
+    "section_mic_hmac_key": "B7A04163665233F6DB80BFA0E9DF284676010DCC138FBBA97019550EE0505C71",
+    "section_salt": "4EEDBAD6580D5B7A26ADC604E4AE5ADB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "06340305FD9EDD7CA6E97F5F03028D41",
+    "aes_key": "4A3AE192FE98DF88EFB792D9244CB3C2",
+    "data_elements": [
+      {
+        "contents": "17A7D78EB34F",
+        "de_type": 40
+      },
+      {
+        "contents": "6CDD9B23F45E60C6",
+        "de_type": 13
+      },
+      {
+        "contents": "5EB80DA49615A9313378E994B31F96F8B3C2C926",
+        "de_type": 132
+      },
+      {
+        "contents": "38130E3285",
+        "de_type": 514
+      },
+      {
+        "contents": "B43389EB33CA74907A7A4F86FE1AD1",
+        "de_type": 916
+      }
+    ],
+    "encoded_section": "7A901396619F2B2B94F7F19628FA1F51785B4F9110002340B336B5C2E124737BEF2F43F197BA9001ED28FD63D309949B6BED96D0203D4FDD41B32F847342D156B990DE7DFF2408A202690C74A8F5CE1C8D7A709CE7D85507215D173F3850F3C1B2CB91993E340431B97110F563A286331D4B7103DCBA697904EB30",
+    "identity_type": "private",
+    "iv": "11DD03FA6DB092780B048EBD3113CEE0",
+    "key_seed": "7945F877F9D98C7610CE29F45369C662E303A8F5A326BEAFF9F0FB55611C89AD",
+    "metadata_key": "3FB05DBFC8E615E495E1BAD8431FCA80",
+    "section_mic_hmac_key": "FC6524ACBEEA7CBEC81E530F33889F7C852A85E4108B48F1BB2CE77B7AFFDE3E",
+    "section_salt": "2340B336B5C2E124737BEF2F43F197BA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "62114838135ABD22F7D172D64A9F009C",
+    "aes_key": "3757133FEB278857689A7FA8C48C2A3E",
+    "data_elements": [],
+    "encoded_section": "379013CE7AA72E7E878D42F249B992DB2F7173911000F0DE28B972676F2AB092E80CDF67018E90046FA72EA86F5EDAAA0F8CDCA981D5B00C",
+    "identity_type": "provisioned",
+    "iv": "28D18F45C5B8ED0408635743FD12CF47",
+    "key_seed": "EAB98A97C8016D997690C36C1AFB9B27C179D64C4A95BABCD5B30D160EFCE103",
+    "metadata_key": "1C58B34BEC2709A3E7F68157AFE44195",
+    "section_mic_hmac_key": "A071066F9D28C8A5318A2E186015463596B26CE67FA85080E2E0C1BA3FA7BF02",
+    "section_salt": "F0DE28B972676F2AB092E80CDF67018E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1C180AC933FBF1E4BCBCDB69BE0360C6",
+    "aes_key": "705839E944B1F2E9CD381E4E53EE5B8A",
+    "data_elements": [
+      {
+        "contents": "AF617170EC2294888C20C8A3B43BB3AC96",
+        "de_type": 12
+      },
+      {
+        "contents": "E8DC15F1D350190F674791CB",
+        "de_type": 745
+      },
+      {
+        "contents": "142A94EC2E864E33",
+        "de_type": 311
+      },
+      {
+        "contents": "A0DFF75C7969634EB2",
+        "de_type": 940
+      }
+    ],
+    "encoded_section": "7090137A7BBAF6598BF52772377F42EBBFC25D911000BF57CBF05D69C86F976C9A93BB7DD05990044ED30E5FF146DB04653AB49241949BA2233DEF5D16BDCFA8E61DEE02A211BE46C56D05AD868F1FD3229443986B6BD054D49C895EE0730BF53CAD53C8E84AA47FDE268B61F2343BC294",
+    "identity_type": "provisioned",
+    "iv": "566F3A2DE9C6FEC6D2FBEE1645AACAC5",
+    "key_seed": "CE740FB16B092B7AE502759E36C49BDC5B7A2FA2E97AE29FC9E0B9D2CDA72AA3",
+    "metadata_key": "C74FB2EB350DBBF1969E3A9691508933",
+    "section_mic_hmac_key": "1B8D81AB3F79239B973E2C8E73954ED1B5127289547C38CC71BFD0ED9552AE9E",
+    "section_salt": "BF57CBF05D69C86F976C9A93BB7DD059"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "26C852943966AC80964F71AADDBF07AD",
+    "aes_key": "B4D2FBE9AEF3417552263603D22318B2",
+    "data_elements": [
+      {
+        "contents": "4453D6586D1F59DFCBC6",
+        "de_type": 203
+      },
+      {
+        "contents": "8A3CD10D1097BF",
+        "de_type": 383
+      },
+      {
+        "contents": "05AC77461449443D444D10",
+        "de_type": 209
+      },
+      {
+        "contents": "24",
+        "de_type": 176
+      }
+    ],
+    "encoded_section": "609013CBADC624AD2C1F25563EB4BBA865B8F0911000083E4B25DF44E64CB1F9987202D5EE2990016AACE26DEB07CC0FF6D7CB2EDB3B7049A2E9481144AB66F3998841BF6B369CCF56E5878E5C1D2C17A031CE097D4F9B7E4B71CC190F7B637F6E",
+    "identity_type": "private",
+    "iv": "71A9F7A9ED012D7D0A3B5E1665C533EF",
+    "key_seed": "5A0B49C13A755D3C39FB51201D79662CA2DE0CC5DF1853631D2495F78A55490D",
+    "metadata_key": "441FC2E790A83563ACCEB1D121B02A5A",
+    "section_mic_hmac_key": "DD41E3D2F17A81A9B4891E0B07B500140C19E3BE96876B7E38CF1B4DEAB3078B",
+    "section_salt": "083E4B25DF44E64CB1F9987202D5EE29"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A05BB37EFDDB01C28868C9CABDE45755",
+    "aes_key": "11824EA2413643EF46FD5BCFDB388E43",
+    "data_elements": [],
+    "encoded_section": "379013C86D4AEE77BBDBB8844E2926505C097691100028E0AF5531DA2DE3C0DED5BC781B7F049001582A39819023E35A620C88CE345798F6",
+    "identity_type": "private",
+    "iv": "BF0445BA6682A2B47F7ABF0E20E32035",
+    "key_seed": "B688A40DA68CD7661B7D6089CCFE418B5B408BD375E9077C8DB33B620731526C",
+    "metadata_key": "935583808C7CB2FBC7C0714A8C36CA1E",
+    "section_mic_hmac_key": "F086EBEB816B05AE588F30216FC53E298A827819E14CF791CAA5B43B668A6614",
+    "section_salt": "28E0AF5531DA2DE3C0DED5BC781B7F04"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6E0D833A506E4DB1F3A53EF1F43E4632",
+    "aes_key": "2679F4BAA410BBC4E9854FEF3B8126DF",
+    "data_elements": [
+      {
+        "contents": "5B6A4C0B",
+        "de_type": 32
+      },
+      {
+        "contents": "DCE0D04F8F070A447B924F6C8E16EABC8579F140",
+        "de_type": 672
+      },
+      {
+        "contents": "4AD51AD3",
+        "de_type": 801
+      },
+      {
+        "contents": "A2A4B310EEDB978A748833C1F03354157907B8F4952A82D1C60B6F",
+        "de_type": 988
+      }
+    ],
+    "encoded_section": "799013D95AC86388C09B4142211B1890B433C7911000E94F2773795ABC33E1D514921EE2BA949004E570F5BDF232B20034955E0752F5D6A5CECC93236A9D55EA1B0E47A3E000126D73140A93AE42360BED1C2DB98ECD79A07B5C38AFADFB8DEC81C8AD48B88EBEA6AC5240B479040953B63A5C6A83786CDE7E6A",
+    "identity_type": "provisioned",
+    "iv": "F3D857A44878F37AE15E0E4272AA946B",
+    "key_seed": "6412DBC3C88BE6FE2C83658F87EFC2B68E27DC6E2A5F7818CE07E278DB4258F5",
+    "metadata_key": "2093FAC2282FAB9E32873A9249CC23CB",
+    "section_mic_hmac_key": "59E443F1954D91B37423505D8241E6F35BC213F3059455007F588BABAE936B5D",
+    "section_salt": "E94F2773795ABC33E1D514921EE2BA94"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0366F4962B2FAF43595714EA372D803D",
+    "aes_key": "2381BB44E4A84BC892495AFD32648DFB",
+    "data_elements": [
+      {
+        "contents": "EF42CB7BDCFF5FDA2486584DC7C69755B49AEA22",
+        "de_type": 48
+      },
+      {
+        "contents": "07B646472EC5353965E24350EE4F4B41E1D3B04A5FA3AB743D19",
+        "de_type": 950
+      },
+      {
+        "contents": "4CE19C060C1E3AAF573C8BE7046339C6A72F11",
+        "de_type": 772
+      },
+      {
+        "contents": "A9DF36B2600420CA81D5AC14199AAF13B9E4056F43C0C7A9A1B458F9BD",
+        "de_type": 283
+      },
+      {
+        "contents": "B7A2",
+        "de_type": 578
+      }
+    ],
+    "encoded_section": "A5901395C08630D83223DA1529C5BDDF862429911000F33DF7DF517C94019086C3C55258270190028EE860429E7BF8FA0A3E8D5138E3CFAADB41414889DE9CCF0C46FC07FC618E4B0EDE78A19EF63C6FC7C4127D749C7ECD19EEC9D7F0C1D4BC6F1074785CF7CC06DF2CA35F43B17D8C23F389F82BB16E21C1C80328B60B0BF7EF031D3C885393CB7F86C0E48848DE744E73F7DE8AA69F5E875AF692EE5CA62B6958F450DDF7",
+    "identity_type": "trusted",
+    "iv": "596ADE25EB467684CEF42648156B0626",
+    "key_seed": "9E23BE85340F7F6E4EF0B499865BC6771EAE8777F5CD62655BBCE72E53ACC83F",
+    "metadata_key": "2EB7B8F54852A9FA534E0355A51CADDA",
+    "section_mic_hmac_key": "4A08AF41A015449CDBF11C5A919FE3F09B3D002BA5FE5C0C0910061C291FB569",
+    "section_salt": "F33DF7DF517C94019086C3C552582701"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0AEE1E2CF439B601CEB6912B95375040",
+    "aes_key": "5089E7D176FF1A7223D80B0409C6FA26",
+    "data_elements": [
+      {
+        "contents": "D5276E1226F20AB687",
+        "de_type": 607
+      }
+    ],
+    "encoded_section": "43901358F31DEAC2408D32879334657F553B3C911000D17FCA0932AF190778C24B96E5FD773490023BFABD0169B35850D2228C8AFB2F91608D59B80F95BFFE0B86F85870",
+    "identity_type": "trusted",
+    "iv": "D41B625DDAAC29E9C2C452E9F16A29C0",
+    "key_seed": "44C670ED0F58A7F2BC90EF1F04EDF83C9348139557B451EB6D8275D7B0185398",
+    "metadata_key": "D8BFA1BDA44332D65D99EF0080E01D3F",
+    "section_mic_hmac_key": "C2B8FE9FA062BE161FF8BD14F31BBFCE43378DDD9D82EAE811BF8D61BE0E889E",
+    "section_salt": "D17FCA0932AF190778C24B96E5FD7734"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "14EFDEC1CD63DDC48B8B8E8C8CDC8304",
+    "aes_key": "5E279D274E2D7323A335FB4BB590EB6E",
+    "data_elements": [
+      {
+        "contents": "A16A8E4A6AF9ECA8C6F59A0C810DF0887016754EDF4E",
+        "de_type": 933
+      },
+      {
+        "contents": "91E18A74954C81ED",
+        "de_type": 768
+      },
+      {
+        "contents": "D284DA8A828C589785EAAF87EACD9B6B629C93A72A",
+        "de_type": 250
+      },
+      {
+        "contents": "10F674B0727729EAA5906B2E2055A074EFD5",
+        "de_type": 386
+      }
+    ],
+    "encoded_section": "8890137E2AE6C6195C792C17C7A7D5D85D62C39110000FD914F6DEED1D8B294D54AC1AF731E59001801DE846E75659321A50A88FE67B0F6D15999A664BB34EAD74AF0F15CE500635DCC5662F84ED09B1DD8BE084A71FCC5952EC8D21D42E2C73862E6C7624C1E23EF238E3454F3001E1A1F628F7DDCE9E1603C29A09EAFCE0AC398C535C7E6A3F8B6E",
+    "identity_type": "private",
+    "iv": "2769CEA47FC25DCCB02764766D926045",
+    "key_seed": "94F0C89FCD16F86CE07F9E525E6DAEF427E0E34155511E533DE9E9A3459588E6",
+    "metadata_key": "F8A0DC8DA1A04B3E48500497F9AD016F",
+    "section_mic_hmac_key": "BA370144A94F5A2D914A271DA273C7398BA54051561DF993717920C6402766F9",
+    "section_salt": "0FD914F6DEED1D8B294D54AC1AF731E5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8DFC829806B833E4CC7A5915DBF6976",
+    "aes_key": "178A9B604EEB014BFBD4E225DCD5F848",
+    "data_elements": [
+      {
+        "contents": "E8C937C8367D2CE21D17EB8473B0C2115CFCF8F17AD95664ABC342ABA8",
+        "de_type": 501
+      }
+    ],
+    "encoded_section": "579013A26BA7738CE48F0A7785573722492B6F91100052FFAE3A4F772BE69EE13ED700E5C0019002C8986203C903B3446CAE025DF6E718BF73EFF77A892F5867B55BFF67E278D59AFEE383E4115BBC6F3052AFA8F85D5B0B",
+    "identity_type": "trusted",
+    "iv": "D2EEBE3242653569FCDA783795429968",
+    "key_seed": "93A836F66F3808515B936588D6A270FEA403392AF0CB25E16CE672AFAF26BD09",
+    "metadata_key": "1DFAA8BD5B70B5BCED114183CA5CD29F",
+    "section_mic_hmac_key": "3DB4DF42F47597DD85B09EC00F7CB6828C0AE0C4AD770964BBB83C18F44A5D4E",
+    "section_salt": "52FFAE3A4F772BE69EE13ED700E5C001"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8EB77BBF9B403FF005C47CD0E16171E6",
+    "aes_key": "F609CCDD1AED844DB12101C1455043AD",
+    "data_elements": [
+      {
+        "contents": "6F7BDD9D79C975F5499A0445A0A45B65093FE6BF6B87",
+        "de_type": 253
+      }
+    ],
+    "encoded_section": "509013F28F4ECA39FA96461F8A0699BFB576AC911000A9E37AD77F5AF0CDD4310C3400E843999004BBC3E4FB4CD4FF5E74A6FD5D24F758D3A225C841350134B8EAAC663A8425EB10B70D3D5AD7F5D89454",
+    "identity_type": "provisioned",
+    "iv": "3FBF642845DA78CA89C9F1C1773C1CAF",
+    "key_seed": "81004ACD295BD7E1F3B141E4F32DB07B38D89628FEE7E832C5250130F7B76DD6",
+    "metadata_key": "12D275A01046BCA9813B58EBA1A111A6",
+    "section_mic_hmac_key": "9DBA40A86FFC3D909D4973DD42F5A1590AEA88CA64FDD1AACEDE1873FABA922F",
+    "section_salt": "A9E37AD77F5AF0CDD4310C3400E84399"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "72F229F976778B8F81E6E11237BE69D2",
+    "aes_key": "965455CE77299A33B4677C22F8934450",
+    "data_elements": [
+      {
+        "contents": "2BF3E31146E2852F0C71FD8D00185974D4945EC0388D52FDD11F6C78",
+        "de_type": 474
+      }
+    ],
+    "encoded_section": "569013F1133A1C5D39C0EB102D559967F81832911000BA431CBF78832E8B284D34DDC999B6589004C08F255B79F62CF6CE040EDC3A23728625BC0399E1EC4D686FE88AE38EA18CD1D3A961F303FE34DCCCA5613EF5B19B",
+    "identity_type": "provisioned",
+    "iv": "39CA34319C4E57CFA76C0CC39D250FEB",
+    "key_seed": "2EE377ED490D438BA5E5856EA6CB0206766DEC800FE300A20C5AA30FD9F985BA",
+    "metadata_key": "A0B481795EE988419063BED63094A408",
+    "section_mic_hmac_key": "E63EBAA47708FA1F7DC4BB439938D4434A0083BE3DB361669A090ACB41D45DF1",
+    "section_salt": "BA431CBF78832E8B284D34DDC999B658"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E2438E9BF16B31C95FD6885C00E11B08",
+    "aes_key": "D4CF5202400F9C1932BE142FFD4CC65A",
+    "data_elements": [
+      {
+        "contents": "6D",
+        "de_type": 693
+      },
+      {
+        "contents": "40F83E490CA9CA93",
+        "de_type": 591
+      },
+      {
+        "contents": "E66886C93E6592BEFD3F",
+        "de_type": 241
+      },
+      {
+        "contents": "8C0010C44724714E61E68F30533460A53E6B0D",
+        "de_type": 277
+      },
+      {
+        "contents": "B277F8E0CBA5AD4FC3545F8F62834693",
+        "de_type": 958
+      }
+    ],
+    "encoded_section": "7C9013FF26D8333BFACFE99C000A04F9446EAE9110003398D1FA6CA164B2F2A9DF651AB8A08B90028DB85D0B6CE0D6780A715759F75B820D7A997FF914C10EA81F49984D37145D11414ED694AE60301AE1181A025E347F78BE15A882905044070CB461D3D04F7BE7466B9768736B89D1E1EDA8227D37E080378D6BA9F9",
+    "identity_type": "trusted",
+    "iv": "FDB266B94952A2C53A36FC76B6B10D70",
+    "key_seed": "2C450CB362CA288FC9F268B3654DE6BBFB2C42A0A3473D1DD752CD670C45E550",
+    "metadata_key": "437B5470A0C2E0EE8257D7A255D776D5",
+    "section_mic_hmac_key": "57AB37FA929E2622240214CDFA222E72B87D00F68B01F28629BA162F61B24856",
+    "section_salt": "3398D1FA6CA164B2F2A9DF651AB8A08B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "16A07829874761800D9FB4C3E21A2A30",
+    "aes_key": "24152963469643ED0534D23908210079",
+    "data_elements": [
+      {
+        "contents": "582A88E9ED0B",
+        "de_type": 226
+      }
+    ],
+    "encoded_section": "409013D7F48916F267119188FE49673E4322F5911000AEA39558B6060468B31BBE90D84E48569004128F5F484DC44595CD6EA02E9616DDEAD65E71B1F3C0ADA8C7",
+    "identity_type": "provisioned",
+    "iv": "B77132A303625EC533C2AB64430BE8EC",
+    "key_seed": "9AB4FD9204A072396ACB99BF24E36F99D6DC23A9C6433CDD793163D716AAB367",
+    "metadata_key": "6B6FEEDF5FECF44F4598D9F9336EA39F",
+    "section_mic_hmac_key": "CA281C0ACDB75B8FCCBE489135F1F60CBCE613EDABCE4F6599DB6A32FFE8A98F",
+    "section_salt": "AEA39558B6060468B31BBE90D84E4856"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9159107E1D54578B844265C291E6F456",
+    "aes_key": "A142FCD93225283E9C860862F8719CE2",
+    "data_elements": [
+      {
+        "contents": "BBD5",
+        "de_type": 347
+      },
+      {
+        "contents": "A61AEB",
+        "de_type": 165
+      }
+    ],
+    "encoded_section": "429013CF49B28303C8F063E5A9C8A2E5E5A582911000C3D02F4B3F14A8C76A0E3840C522BD199002C48D6D20B4B27E0AF7E8AA6319A62AA7AA534F867DED4748522E0B",
+    "identity_type": "trusted",
+    "iv": "E45AE7CB222CCB06E574519786304AFF",
+    "key_seed": "7EFDFFA488A94BF2C11A3EE5B309FAB935BF41D510D587A7115D5BAD030C853D",
+    "metadata_key": "C6EA1FEBD15B10E7D19D13317D39F365",
+    "section_mic_hmac_key": "9F5F37B864A003287CDF62806A6D5CC4422816474DAD127DAAA0303B842DBB01",
+    "section_salt": "C3D02F4B3F14A8C76A0E3840C522BD19"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "01D0C987D88C843A8DA02F96AEEAB362",
+    "aes_key": "4D8530AB04B3B18073DD758C44CDB12D",
+    "data_elements": [
+      {
+        "contents": "C635CC117668AFE7949917A7",
+        "de_type": 593
+      }
+    ],
+    "encoded_section": "4690132F78152F11A6D5F60810B49DE0E34D739110003C013D2EE71384CB77B9FFACF9A47F4E9001A32EEA69EB210803D358A56381F4A39B5F6DD7C26B7E13BAC60AD879791059",
+    "identity_type": "private",
+    "iv": "47787F6AF0CBFF3224FD5B90B7C62C19",
+    "key_seed": "00CC8EC56019B472D3ACBE5BE0A264A6678E2DF7CEF0BC67BD79E6828C8DEFA7",
+    "metadata_key": "726B29FC8323127C8BF3CA61DB54DA54",
+    "section_mic_hmac_key": "6282DF040346562FEC646797AC206013549F226E4BAAA53F89F7EA8D7704CA35",
+    "section_salt": "3C013D2EE71384CB77B9FFACF9A47F4E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FAC14F23FCA63EE1AC8C2F59083B88B7",
+    "aes_key": "6FC985D771EFA0BEA304EBA07A4D4381",
+    "data_elements": [],
+    "encoded_section": "379013210B1AE359DE0CBBEF346FF559B51B64911000588A0BD17ED117BB4AF055C77AE2DC439004E313D80409FCA3D2E2979544708A39B2",
+    "identity_type": "provisioned",
+    "iv": "86C71197DCC66D69EAC756CF2C03457C",
+    "key_seed": "C2AE57F5782C3D478DE8AB1D2E1687BF00B9E0610F7D6E16623496E61C6B1230",
+    "metadata_key": "53695A2CF6468D1F2453CE5EDC1F5D34",
+    "section_mic_hmac_key": "6AEED53AA44B52EAB200C7F46C01829AF89B54BCF92A9976DB76868D6F135627",
+    "section_salt": "588A0BD17ED117BB4AF055C77AE2DC43"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D472CE5EA02A6BA693D3D3C2FDAD3CB9",
+    "aes_key": "F3D466548CF059E4BFD26C5886022F5B",
+    "data_elements": [
+      {
+        "contents": "D8D56CACAF01745BD359143859C0D997FFAF99426DEE4F0526C6B7",
+        "de_type": 92
+      },
+      {
+        "contents": "A24E8CF59B4C05",
+        "de_type": 365
+      },
+      {
+        "contents": "81",
+        "de_type": 632
+      }
+    ],
+    "encoded_section": "629013BE8CCC4DF63F42BA4F95A6E67E961F27911000FE4F65E41C205A3E4AECA5C3793C5BF69001EDBDC998D2BB9F46E2820FFA264F9BE3D3915E34044744679A1B1F264AD4E0308DCB0BF6480F7BA07BEF3F97BE391D659BD97C4CE4105F2D3FA56B",
+    "identity_type": "private",
+    "iv": "991E163873F0FD3CDFEDF8139642A8F3",
+    "key_seed": "568C44F2441F53CD271E0542E28C0FDC6695D248A63610880C0453C64F0377E1",
+    "metadata_key": "2852757C8F7EB2EDEE35A83C67DAA69C",
+    "section_mic_hmac_key": "FA797B50ED1D17BF334DCF82CC974B740018A9C8003954FE8C86266B17D3F3FC",
+    "section_salt": "FE4F65E41C205A3E4AECA5C3793C5BF6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "37CA9E5FD83C77A93EABAEDC05387FA5",
+    "aes_key": "2A6AF75B9E41431A70C784C8CC4F67BC",
+    "data_elements": [
+      {
+        "contents": "537D9BC55AE1DA87236C576CC5F26C2D602732D596",
+        "de_type": 824
+      },
+      {
+        "contents": "86804C087B781C582B55",
+        "de_type": 646
+      }
+    ],
+    "encoded_section": "5C9013115FC54D3F5BE989D8D73E6CD5FA8933911000A85F1F25192415C492401A2F8E01E92890045AEFA99C8FC1CA0EF427BB15090A7DD66CBEDB6F851224E43966EDBB49403FAE54A4EB5F2EC7DC91D3303A587F631C60FD37F77187",
+    "identity_type": "provisioned",
+    "iv": "EF1CAA1432DC4C9DA79FD2F1B6085F22",
+    "key_seed": "83B25874FDA42842607D32442AA882CF07302E77F3ED45483B084173C78CE088",
+    "metadata_key": "D5476BCD37EA529CFE0398E04BFC8DFB",
+    "section_mic_hmac_key": "9A3EA2A97F65070F53F1D0565BF79C2884EA8F83777C386F788878D0405F8F71",
+    "section_salt": "A85F1F25192415C492401A2F8E01E928"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "23A40362AB2ADA10E507ADF73A53B738",
+    "aes_key": "2A3CDE8E1F16994BEAC62D6303BB37F4",
+    "data_elements": [
+      {
+        "contents": "0843EC4474384A6564190967861E63F79CE2C093CBE9",
+        "de_type": 549
+      },
+      {
+        "contents": "528EE47BB4B74DC8BB9E1DF094",
+        "de_type": 970
+      }
+    ],
+    "encoded_section": "60901318D390C46D78B50D713B7F1D3E4ACCAE9110006797144436216197C900B8B9AAC56F789001CD6DE510AECDD868575107FE8366F7D00DEC23322446DEC1C1544F04F07114E1ECB49ACC9CC160A0AD858347DB70785C8A1FE1865C1B8EF1A1",
+    "identity_type": "private",
+    "iv": "D5757A781F250DEA9B32A2187D1DCE66",
+    "key_seed": "D0B4C8F4097FCB6FA04E537590BF5D93980F62C3CEACD9539F4B805FCEB19BF7",
+    "metadata_key": "F59AF47E80215C5D7080A9F17789A0A4",
+    "section_mic_hmac_key": "75CBA9C19FB676E9DAA28A513B222848CF282079CB8D535638316B230DF07FF6",
+    "section_salt": "6797144436216197C900B8B9AAC56F78"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "669368F2B1CA51C64A75E82A26AF1C11",
+    "aes_key": "A4EB2632A392009042825BF578EDE10A",
+    "data_elements": [
+      {
+        "contents": "F2D8D28C9069643C0348AB1945160AF061335DF9EAF41B221DBE03",
+        "de_type": 436
+      },
+      {
+        "contents": "60197A23C9",
+        "de_type": 331
+      },
+      {
+        "contents": "8A9DF20FBD2E506F3A1A9C0A2BFB4DA265569A10ACDE979A7E788D21F2",
+        "de_type": 679
+      },
+      {
+        "contents": "2CAA8CA35DEC7A9CC23AE80F2AD4D04BA3E183FE80DA7CEF25401F",
+        "de_type": 414
+      },
+      {
+        "contents": "1A1B4F43E756C631B06104F7",
+        "de_type": 20
+      }
+    ],
+    "encoded_section": "A990134A4C65C83E53EAC713E40B3AD06319C3911000436276C9196C9DA1609DC9C37F62FCCD90017D953EC227BCF3F8D3C9D12F703836BFEF24DA8CB8DFFD6E8ECFBCEEBD7C7A96FD46C6DD33481F61896CAA97B3080075A5EB1F94CA4723CDE6DEB7A248B1539F7A6F727258DA870911DF1D648D43006DD5E59E84C30F72CD61095DE966561D2CF65E1AD4D23E35CA259C6D24D31B7FC9DA8FC1F6013CF1D45C5024A5586264342E8C",
+    "identity_type": "private",
+    "iv": "B16EB79EEF99FC59C0668A1D7BC49AFA",
+    "key_seed": "5F02964CF3FD078549F6F8A12FBDC0954E721E45D6E846889E7524D2B8434B8B",
+    "metadata_key": "A708F60A0D600AA8A68217B333B97CD8",
+    "section_mic_hmac_key": "E13B13E5A85167161D8B99887734E38F16B76B87A517A8C4FF136F89A5DDF17D",
+    "section_salt": "436276C9196C9DA1609DC9C37F62FCCD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0A2481314ED5461D784F31EAF236F1E5",
+    "aes_key": "16E09656726BD0DC340707E9A8044E65",
+    "data_elements": [
+      {
+        "contents": "92A1BAC82C6C9E906E78A8DB18D26644E7A2EAEEED",
+        "de_type": 647
+      },
+      {
+        "contents": "98233973D9B3EBB10DD17CE8B446D32C9401AFD1B5EC9C57FE18",
+        "de_type": 657
+      },
+      {
+        "contents": "39F2C871399BCE2B2A4B30B8B2310104C5B7056E11F51AD03F",
+        "de_type": 824
+      },
+      {
+        "contents": "92A59F3F222B370631B5",
+        "de_type": 29
+      }
+    ],
+    "encoded_section": "9490133A361322C6CFD8F123B652392B2C33F0911000C1A4FD2EF8C9F2A6D6974F8499A86C659004B9B926F64A99404F409179FAE1A76A99533E523AB5C23493DC15F5F3F120CADCA02CFCAE5A3082F5FF9C2FB21D81E521728C42982A2328CC308F514795CA4EB96B8345F6BAE498307143DD189D826F4724CC8EA3FAF712901F36E30FC459E53DABAF178E7BD5C84E132A30DAB1",
+    "identity_type": "provisioned",
+    "iv": "E767A2363EF745A39E8787B42FD8DE81",
+    "key_seed": "61F9D03A55557256DF3DB5D601914145C9775AEE985415278B8032FA275C5329",
+    "metadata_key": "BB767635FA036098ECA2BC4802D976EB",
+    "section_mic_hmac_key": "31D39D034312D41DC5F9345FB580C37BB38395B84C53E60162A28720C1E63FB7",
+    "section_salt": "C1A4FD2EF8C9F2A6D6974F8499A86C65"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2F5E446BB35D880DD4832A0320D23837",
+    "aes_key": "0561AF2D0D1CA6D8E039AF77CD3EA3F4",
+    "data_elements": [
+      {
+        "contents": "AC27B62265094108D47755E4CCDB67D80B83C7074CECC0D32722",
+        "de_type": 769
+      },
+      {
+        "contents": "B4AAFCE877574BE04E95",
+        "de_type": 926
+      }
+    ],
+    "encoded_section": "619013DDD6BA07092F273FE5A3B387A7DC9075911000CC0F046848B5C94CFAF3C1D28E8683E59001430FC81EB61D0491A40AA0EE069E9B722C2B89CB62B4F352CB8FE93F0E9D15D6312B6DF7F955A3A8A04C4D6A4986F86D536A3E4CBDBF4FD6DE71",
+    "identity_type": "private",
+    "iv": "EABCB9DA7F07B140664428DCC9047C9C",
+    "key_seed": "F82944B1BE8D9544BDC997CA1D03476C40D7D7FFAF30984C6FB2134B5AC19139",
+    "metadata_key": "19D5EDE29D0669273A6E1EAB85910537",
+    "section_mic_hmac_key": "E69B4CE7F49A47FB968E2C884248B3945F308B713AE44E3E4647DED0393E64A4",
+    "section_salt": "CC0F046848B5C94CFAF3C1D28E8683E5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "745EF38C147400E52E78EF73D799E530",
+    "aes_key": "397F15C3D3507F7558ED7FAA6FCFA2E6",
+    "data_elements": [
+      {
+        "contents": "744A64EA84D1A11640AA6EC3E1A7",
+        "de_type": 906
+      },
+      {
+        "contents": "AE5862393CAE8A6A8081",
+        "de_type": 472
+      },
+      {
+        "contents": "FA53D0AC965BCC16F47544049731DA0A5A15BE0404705E",
+        "de_type": 331
+      }
+    ],
+    "encoded_section": "6F901373AFF0834BE5A8A75E5746CB02F7A71D91100061D605F31762567236505062910B3D87900118280B003A65469819DF38D09A494CF6525442F1CEF475B8314478A8F1A57BAF3C7FB86AB20E0190C6FE6850335A7E386D600128E705B2179D425FEB351F9E4EB59CC5E7A9C83430",
+    "identity_type": "private",
+    "iv": "94077956863ACD5EA404F69F49C6DC77",
+    "key_seed": "CEBFDAAFF86989FC83B21C9AF025C8C9179994F61AD5E743A802B5ED773A3EB0",
+    "metadata_key": "538ABCEE91E1133075655C92E743045E",
+    "section_mic_hmac_key": "E73A504BC9BD9D96710628DC0B818E1AFE30AC345BDA21A8D433B5848C46CD2D",
+    "section_salt": "61D605F31762567236505062910B3D87"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0A6BBAF5021A1D2FE1682B7F1075264B",
+    "aes_key": "F9D5C665842BC9A21E7118A5140C5980",
+    "data_elements": [
+      {
+        "contents": "04FCE6BB03DCEF4AFFB691BDC55131FB1362F6DC9716322F4D66C7",
+        "de_type": 586
+      },
+      {
+        "contents": "070F8092B39E3A464748E7AB9F0A6D3BB8",
+        "de_type": 48
+      },
+      {
+        "contents": "1B8AB668E06DCCA0A0D10CFF6319600E8C",
+        "de_type": 363
+      },
+      {
+        "contents": "0505E12CB0611C4DCDE6D2501FAF96B1375497EEC1C3D349017C4DB382",
+        "de_type": 825
+      }
+    ],
+    "encoded_section": "9C9013F127B1FD8A6754A1D23FC5ADF1AA4888911000D2EE2D16407010B143CC91248DF3EDF39001C723843332E652018213683FE8E97832066841091B04D79B031EE9C28AB3EFEBD8DC90AA76D499E8625B8D7DC05E47FC8725C9F52EC835086F1A12BE17FAE08E5648CA25CAC0C975F9D6CEAC578FA100D26031FF7D24B6A39531F184553B64DDA8B42C63400D9D938719D92EFF98743E9E06D83085",
+    "identity_type": "private",
+    "iv": "E54BAF233C2873FDEC34ECDBD2A75BBC",
+    "key_seed": "5E571CC03CF6060B889A4AFE1525C75D7010747E1F49304996A04F6541A15BD4",
+    "metadata_key": "7E9B72FC7CFC6D01C32FF8525C73A26F",
+    "section_mic_hmac_key": "D4FF75AEC965C82A4A2EBCD6D793ED7901083D68C26FA7863DDB45B242B412B0",
+    "section_salt": "D2EE2D16407010B143CC91248DF3EDF3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DF5BE769CC5F0353186732BE147A63D9",
+    "aes_key": "22CCD7B2403BD3865C7B2A465F6C30BB",
+    "data_elements": [
+      {
+        "contents": "A14BBA160E760CF44F",
+        "de_type": 952
+      }
+    ],
+    "encoded_section": "439013BAC4DBE0F31AC812333CE4E759DB04059110004209A410502B246C097B277FDB07C4D990013BF9818DB28F7BCEB9BB5E009163691F51BC8DE49B58C0D49F0E18D3",
+    "identity_type": "private",
+    "iv": "1355F2F66052B17658A63F135FDA11D7",
+    "key_seed": "7361CCF3A6692EBC56C0CA940F35FC4AF1AEB3D0A61C09D9E514C39787069B58",
+    "metadata_key": "4FA17703926007A4761033EDE0235613",
+    "section_mic_hmac_key": "A13C30E9F3243CF7061EB9B9BEB91A45DAB682A15588C894BC803B751B4579E8",
+    "section_salt": "4209A410502B246C097B277FDB07C4D9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E5F3B694C8D64BE7698617904C135CAC",
+    "aes_key": "42CEDB34BEB620F53150B505DBF0017E",
+    "data_elements": [
+      {
+        "contents": "1B9289BAFE209EB83B1317DAF000E1364AE9B42EA5D3",
+        "de_type": 329
+      },
+      {
+        "contents": "62612B87E30046057587",
+        "de_type": 311
+      },
+      {
+        "contents": "F6E858C9FC1193050685904D19E7AB2BBE",
+        "de_type": 261
+      }
+    ],
+    "encoded_section": "719013159144D7E2194B056A0C7E8584BF6CE8911000218C59E9A77F6C177DCD2A9773BA48AF900241DA1F7786470F9D4A621561E8AF20F7C08EE15C0BD534A675FF6463E81F6CA71A45ECD5406B91DDB3E4735DBADFF00978F8362A398E5F456CDAB11EEC901F03D1648EF8B150DC3E67DA",
+    "identity_type": "trusted",
+    "iv": "EA32DE5C1E430A835C12B1A91CC89CFB",
+    "key_seed": "8BD9229CA4491845B4083623E5FEA2069BD41B56809D886324CDB1A586BE0CB6",
+    "metadata_key": "951A2E71EE9898BDC0296DFF0213DF30",
+    "section_mic_hmac_key": "3FCF9C69A11FF8EEC29F52F44C472C0C57E91D443C1D2B26A83221567F02151B",
+    "section_salt": "218C59E9A77F6C177DCD2A9773BA48AF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C6584EC834FED2E94B8091A8747BCD9C",
+    "aes_key": "15ABEEF92C750250A1A76C68241634D5",
+    "data_elements": [
+      {
+        "contents": "578A958480E03A34F8978B8260C9A13F9B9ACF373C",
+        "de_type": 198
+      }
+    ],
+    "encoded_section": "4F9013A3CDB9B681A52DEE1310B22F1931F9EB9110003F399980C680152865FD9279D977CC139002685C63C0C0E709FEC8E9EFDB7269397FDE1E43D2729F41D9C7A66DEAF2185B5765B530A92CE78B97",
+    "identity_type": "trusted",
+    "iv": "1EA030B4EDB3E3830E853133F5DF8E73",
+    "key_seed": "4121F59F7C8155C2C22DCD541C2EEF8FA89E1A1D92FA6C92767E70EC828E581A",
+    "metadata_key": "87C695F0A704AFB08ADF552F2D70D36B",
+    "section_mic_hmac_key": "8BD01A8873BC672624A111614E646520593EBCDFAC76A81D40E3C1C268F89A0C",
+    "section_salt": "3F399980C680152865FD9279D977CC13"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3F2141BAD98E79288895A150E295742F",
+    "aes_key": "0A35AEB6BA80958F4FBA6475AEDC9C42",
+    "data_elements": [
+      {
+        "contents": "2EECF608AAAAF0FE733CC5E2DBF178C7E39152E12CDDD772D65C417DFB",
+        "de_type": 803
+      },
+      {
+        "contents": "22A2C92D792B",
+        "de_type": 103
+      }
+    ],
+    "encoded_section": "5F90130F0868FBF386021653BA3FE7BCD17E87911000FE75240065FDF8EFC99C0C3AF69156E59002E707FDA0FF2BD0ECDB6FD388E6AD5FB47E69D6B787971FEC414F711F7360869018634A4857329A9B0AD295C4C755CB905EBFAC9A4C0B7BD4",
+    "identity_type": "trusted",
+    "iv": "049F4151D3FE5B124170EAAD35C45788",
+    "key_seed": "2E09F6C972F988C3AEBE406A814ADCE1323861A409071CFAC1EEE755DF201202",
+    "metadata_key": "D6AFFF9038CD3B4C77CE91F438BFA3B9",
+    "section_mic_hmac_key": "B1F883D3A3806235308427AC61D723CE12A761C61069ECB1F10CF61558672621",
+    "section_salt": "FE75240065FDF8EFC99C0C3AF69156E5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49B2915EC7A33D0286B5D856BC1C5284",
+    "aes_key": "A417B26D49ECA18BAC18ADA35F74D45E",
+    "data_elements": [
+      {
+        "contents": "9B0E237C78F6CB50",
+        "de_type": 9
+      },
+      {
+        "contents": "C94477AAA110FE809B62604500ACD0F7D414FFA49DA215",
+        "de_type": 519
+      },
+      {
+        "contents": "992B20C63A1A22",
+        "de_type": 25
+      }
+    ],
+    "encoded_section": "6490134B524B7F1DCCA091F7824EA36A2617A1911000D340ECFA488E4B8D5097BF106F8B829D9002D655120231B293EF93F1951FA10BE3255011D75CC2409DC37406396FB62A190F4EE6438A650B01A3EE155F192FF7AE7041676C38CB0DE0470D35B881B9",
+    "identity_type": "trusted",
+    "iv": "869A1EF9278163ED199CF9F9F137D4E6",
+    "key_seed": "9EE4BAC6148531F711836FF331C1FB7E3B02B9ACDD78F2F88E8B0E40BE39DE24",
+    "metadata_key": "C81343B9BED7BD4F0758950833314D87",
+    "section_mic_hmac_key": "BA6A098387BFB88E2E4FEB012F726011F577FCA9E1349D7627A46B1B5EB2DCF7",
+    "section_salt": "D340ECFA488E4B8D5097BF106F8B829D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8D17E72A1C35431FE9167E9BD17E0CCA",
+    "aes_key": "8B6E188A464D1E549D5988EF874A9714",
+    "data_elements": [
+      {
+        "contents": "65F9D53284B61B216C2FB7905A7E628A36D346F27E63DF03AD5591CC3806",
+        "de_type": 122
+      },
+      {
+        "contents": "1297A56F07B1E17644212F4E57043C1424A6FCA16610A252",
+        "de_type": 427
+      },
+      {
+        "contents": "0373709C74E1682A1293A7C96B026CD7667BDBC8",
+        "de_type": 321
+      },
+      {
+        "contents": "B7A7F0CBAC26EB1A7F10",
+        "de_type": 240
+      }
+    ],
+    "encoded_section": "969013135DE684210624C70AB737EA21E2BB2791100071D1EC0652294A473D35ECD597CC09C4900451B8461BB4330D89B49CF05D5D0B305361E41C5D0DA38B58335699AA3E806BC4CFADA43F344F49FF0BB77196236F8CDA9054F508DFB5144AA7E11AB860A0F4CE6F9D47237982D8DD5B3232F3627C4C4A55AD1201A865CE24D5C73E50BB704617AA4D887B7A75048D63F29AE2C31CEF",
+    "identity_type": "provisioned",
+    "iv": "3365A1592043B55C5C4144AB1D115066",
+    "key_seed": "80F58265457937034CE0954435632A123D95EDA52237638197E60E3C3941CE75",
+    "metadata_key": "95D1A7C78A1E4BACA51EA2476EEB81D3",
+    "section_mic_hmac_key": "DAF584298F254B48279150416077F45F02EA517C3473AB034D7ADFFE3A670FA3",
+    "section_salt": "71D1EC0652294A473D35ECD597CC09C4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "567BB8BE3AEB3C21E81331145E2A92AB",
+    "aes_key": "A617DFDBC645514858FA32E01DB12BDC",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 487
+      },
+      {
+        "contents": "6AA41CA7DCFD6CB1AC6A4318DC40FB83A14443F387C8A2466EC1CFD3",
+        "de_type": 640
+      },
+      {
+        "contents": "7B8F001428B90D600D00",
+        "de_type": 965
+      }
+    ],
+    "encoded_section": "669013885D0434ACCA45B4F679F4876DC80314911000691D3A0B07D7528440C9FE2FFAE11C0A9004C856B862CB0B81B4CE4355DC8D1D1938938C313D3481DC74949373CAC221012D4B0B4CA04035F045ECD631596E29947BBC2A20A796889E1C37CD64982CF41F",
+    "identity_type": "provisioned",
+    "iv": "895EE2C2AE3779BC94DD8312A6999D85",
+    "key_seed": "F47E65BC805D3E68FEA05C8CCCE3D494649145434287E31E952646F2576DCDCF",
+    "metadata_key": "F952060A084F9CBAA1567CAF63228883",
+    "section_mic_hmac_key": "EEE4F8B3DAE3B3FCB134AD655DF92456239F559B52FA195085850A03481492E7",
+    "section_salt": "691D3A0B07D7528440C9FE2FFAE11C0A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D5E77232628E33E4FFD9381E791689F",
+    "aes_key": "0DAC17E78298ABF6982AD8FDC35407A4",
+    "data_elements": [
+      {
+        "contents": "97DEABC3A327B8C4354C65700EFE47ADC6617EAE56B7D9",
+        "de_type": 115
+      },
+      {
+        "contents": "2E3A60DF71E005D1E519B5F1443D0D918845C0C621F0D877DF7C33A4FB44",
+        "de_type": 579
+      }
+    ],
+    "encoded_section": "7190134EBC1FB02A556EB545C3DB69A142E9B89110009FFAE095EE40CF7BAE117E7431FFA8B39002E91322121BEDB880976E910A1EA6003BDDC0B45400C07A141DD1E14271CC2912438B0B68EB80ED610E8C1DC4723EADBEF7482C8AAC2E723404EE3D4C88238FB9418A968AF469BD65A6AC",
+    "identity_type": "trusted",
+    "iv": "34DB2B5538C1F25E926D8191C5EB4382",
+    "key_seed": "4DA9A6F59DCF615E03AD56258554641692E02CFEE284A5D0F0D90296490475F9",
+    "metadata_key": "5B8F323279D4CC8CBE66DE149B267214",
+    "section_mic_hmac_key": "D23649C4CBA96BD6413B049C07B87D7CE18AD6E60D68F56AF270E2B1E2DB97E1",
+    "section_salt": "9FFAE095EE40CF7BAE117E7431FFA8B3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C167B8ECC498094A6DB33906F974F4A",
+    "aes_key": "81353FC4DB19F1128CD2049615C0FA92",
+    "data_elements": [
+      {
+        "contents": "EFAA10A500DA87",
+        "de_type": 436
+      },
+      {
+        "contents": "E3144711F717FD0853",
+        "de_type": 956
+      },
+      {
+        "contents": "522B257ED92E1AE819C77DF0EA",
+        "de_type": 547
+      },
+      {
+        "contents": "A78410D4E03BAC31469139B84654CBC6BA",
+        "de_type": 483
+      },
+      {
+        "contents": "4A1F996AD64441C85400AF32BE",
+        "de_type": 549
+      }
+    ],
+    "encoded_section": "8190132204DF3E53BEDCD51A7AE8F492F566D7911000856E7A66F236E9D930C684BD59B02AD79004641A35B7962DDADF14B7669FCA7CC36C1445925D48C45771B14DDD89DC594BBAD36C95A2A042D28D19979D698BB49CBFC43FEF03C89A80F392A9143C4C5D313A999EEB63C5C53E4DB0568E33770E9D2A9EA92C6EB2EB48224CF5",
+    "identity_type": "provisioned",
+    "iv": "5D8C4A61716F2AB552C717A3EFD049F8",
+    "key_seed": "B92F88C4CF23C1798C1FCEBEB328D300930CABC7DD84B347EF1F0A57F8E44EE1",
+    "metadata_key": "46530816FD06FF7D41FF0BE5A853A6D1",
+    "section_mic_hmac_key": "ED64C3F6E9D7E11E0B9299EB0C33A6510B9AB292B01A3BE53C2D13F8D2D8F9A2",
+    "section_salt": "856E7A66F236E9D930C684BD59B02AD7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C51E8816D92BC1E03CA638712EA09A95",
+    "aes_key": "08C67FCA2B413C3C583437251B130182",
+    "data_elements": [
+      {
+        "contents": "0713D3BB05B5FBA4B840171A21AF080166CBC082",
+        "de_type": 193
+      },
+      {
+        "contents": "E2736CB03ADB4DCECB1A316AED5F331044EBE44130138CB85970",
+        "de_type": 766
+      },
+      {
+        "contents": "2EC922EA4A01CA",
+        "de_type": 582
+      },
+      {
+        "contents": "9710558A43",
+        "de_type": 480
+      },
+      {
+        "contents": "",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "8090130D8F386275A65EDFE296E7D02E4D8A80911000AC100EAD10CF49B4BFA4BFD03D22DC619002F9B057A5DFB8A47B3DC1E369CFEDF5A03E58B49395A2E8BE6952AE63CA45680309ABBBCD65D77055FCCB901A657631B0B699886718542E5FBD2ADBC7413A956D85F3BCB6921A97641C74FAEB45E7F2483A6500034788190DDC",
+    "identity_type": "trusted",
+    "iv": "A7702DC73BAD3498B5AEE515BA94D38D",
+    "key_seed": "B045094272F3A0C7248F9C2E7CD8A78491F06C05F08865B7B48418842EE56452",
+    "metadata_key": "06DA134E75557D145D8869E8858407F7",
+    "section_mic_hmac_key": "FD2E35B135B6EE46727142BCC2577ED5C53E5D0BF2E8817A05FBC8233B741EA7",
+    "section_salt": "AC100EAD10CF49B4BFA4BFD03D22DC61"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "115CE5999BD1A1729822C11BBFFA3197",
+    "aes_key": "606CD07F4B3B228E11BDD67304CFF94C",
+    "data_elements": [
+      {
+        "contents": "F51C44D19CF610828FE35CA6D313255BED137D1CA02BECC8F1",
+        "de_type": 32
+      },
+      {
+        "contents": "085D8A1FBD42DEEA5DA9960B20CED595A8A220068AEE29DF",
+        "de_type": 692
+      },
+      {
+        "contents": "30322E279AF190D06F",
+        "de_type": 329
+      },
+      {
+        "contents": "FFCBA9466A7731EF8CC5DA9642FCFA6E",
+        "de_type": 383
+      }
+    ],
+    "encoded_section": "8C90131F34C598BA9CC85C706357897958835691100078884C8469817D638BB7387AF840716E90014A5B9F3CA8FD31B906F39867912E9E4472845E72DC24EBCC0AE3BC469DE9E82F365B8C69AF4499902EB14C4F4FD2FA87C7BB5444B524C96D546A69C6374B9EEFE8EABD54FEDA65F3F0A8EE73BC2B253535B32D25675B38FCCD9EBB88D4721D36B0723A21C6",
+    "identity_type": "private",
+    "iv": "879EE00C17EE3C3B44268DA9ED727759",
+    "key_seed": "D8F2A8604FB68290CB810109695B7057A80A161AF8E2685FD099490654A82C03",
+    "metadata_key": "16D27C779AE2F1C4F21AC121F734D4CE",
+    "section_mic_hmac_key": "1B93D2DCA5350A33466639D852947667E54E09AEF3FAA193AE3677EAEBAD0635",
+    "section_salt": "78884C8469817D638BB7387AF840716E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7A2FEC84BCC7D36821CBFDA1B8AF6BDE",
+    "aes_key": "D94316EC0C1F3F5556B0A6E3EA44BAA1",
+    "data_elements": [
+      {
+        "contents": "A18233E6470943CEDD28B316DD43F92E8B658D42BD4322F7E8116B",
+        "de_type": 320
+      }
+    ],
+    "encoded_section": "559013CF23E8E383098669E7F3B37FF2FAF607911000F1ABBD27DF8BA7CC017FA7E81AA40DD3900248488C1E48B090E1679DD3AE096446392E61E2E044F2464CC4FDB5EF6EEA1F72A5607A8F90CBDDA3E320BED67D6C",
+    "identity_type": "trusted",
+    "iv": "E27184AD7419FCA23E773896AD12FDCF",
+    "key_seed": "B4C4197B892B450AE1AC96CDD612B7DAA67CF43DEA931691FCA75E067BEF9A9F",
+    "metadata_key": "0DF12C45B639A4C469417723D0599C42",
+    "section_mic_hmac_key": "87CD066A0003D6487925B00E6D3BB50ADA175AAF8FF4806A0E4A77A62D262D9C",
+    "section_salt": "F1ABBD27DF8BA7CC017FA7E81AA40DD3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6EE25ECBB7A186290EB3DE0E054CA1C9",
+    "aes_key": "5477F3FB31FF5E2ABC4EBEDFC20C837A",
+    "data_elements": [],
+    "encoded_section": "3790135229E15175751ACE1FC3D9E27815847791100012517EF20157AF7D7686300FFD93CA76900429A2EF5644E24A3812DDC9261EC4C8B0",
+    "identity_type": "provisioned",
+    "iv": "551FCE3922ECEA01BF57BF7855905D9F",
+    "key_seed": "1BA73E4554F36779EE44DE6B9105F69DFF5D0EB3A148F671A1494E9070FF0C94",
+    "metadata_key": "951796A7C33819FEB9A73F6C7AC70683",
+    "section_mic_hmac_key": "F5858FC13AB364F8F7DBA608AB127EFF8C96B885D3A4750F4E77A6E6EC206E3F",
+    "section_salt": "12517EF20157AF7D7686300FFD93CA76"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5AAD4B0F2A5F00FFB25C6289A53ADA69",
+    "aes_key": "2B69E18B00F7C55BD2A0ED3BE199F17C",
+    "data_elements": [],
+    "encoded_section": "379013B003774586CD42E7AC66F5E4E31E355F911000ECA4F513378109DFBC32212674423D2F9004AF07EFDCAA038B74D585648EE9827064",
+    "identity_type": "provisioned",
+    "iv": "B39D516DDC2723FBA1B60D0FF63DB836",
+    "key_seed": "8B69FF71E1BF629344A119B02EB326CDB7B7D3145657CECC390E2F81C1890907",
+    "metadata_key": "C74ABEDA2BE5770EBEB1DAECF4C5E7BC",
+    "section_mic_hmac_key": "0C5265739DE3730885F7C6A628C96C57851387ABEB914B75C16F8B6099CBFEEB",
+    "section_salt": "ECA4F513378109DFBC32212674423D2F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "532E9FED397C96814EEAB6E1B27D4C86",
+    "aes_key": "C45208E0024404A60F492DDB2C914191",
+    "data_elements": [],
+    "encoded_section": "3790135CB193ABAE4F297BDD49862D1F937ED49110001E90A2A86D1CA79E2F64AD39A5CA77869001526D432A5829C0283F24F39A9CA1F2D3",
+    "identity_type": "private",
+    "iv": "9CA827CC416005F5F30C3E170D482CE1",
+    "key_seed": "1F991BF25881125FE75847D4C6F85BFA6392C2F8B53F1E7FE5FA893B023224BB",
+    "metadata_key": "39CF4CD3AFD063272F5E540476861918",
+    "section_mic_hmac_key": "EF468FFCB94D5466593B9B25909D4ED49BB1F5590A66FEE2A6956EA5FB2B8426",
+    "section_salt": "1E90A2A86D1CA79E2F64AD39A5CA7786"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "20F33C7ABCB97FD1B01811347ACDDC19",
+    "aes_key": "9C75B6FE554C7B132A95FE610239A5CE",
+    "data_elements": [
+      {
+        "contents": "D9ECD7FDC3",
+        "de_type": 927
+      },
+      {
+        "contents": "C1CFCACCFA30BB3D0F84",
+        "de_type": 486
+      },
+      {
+        "contents": "CFE52999406CBAEAF0BC138DE8233B9664C10997E6F8902C1D",
+        "de_type": 282
+      },
+      {
+        "contents": "019E37A059275E31906C582B37C190F7926DD006EB4390CC",
+        "de_type": 53
+      },
+      {
+        "contents": "DB192BBBEC104BC6FD5884AF1FA1E86C4DECE0D945DF93E130",
+        "de_type": 342
+      }
+    ],
+    "encoded_section": "9E901377069C7408696D7960EA0BF71DEC6B1F911000674927D66F2947C6E6CFA19007F33A7A900263FB8DE4E5D01AD9B90E3C430689362C1FA797775FE1A5F6AA66B563AF190D6BC65F85F22AF2E337FC4B3AEB313E09E2A5F2B7583C504B37513170BC93F35C43D4CD9D02C7C5A9FCF66F83880160A769D1825AB2A1BE3BBBE69709D6649009DB70314C37D4704C7325A7C3E0D042BF8C0F6858A86F2769",
+    "identity_type": "trusted",
+    "iv": "75B00C025C3B6E74D1685D850286425A",
+    "key_seed": "D483C3C44C959801D49A5D40EA8ED53C623A1C2E4366AA22DD2CE4D2BB2AEB65",
+    "metadata_key": "B636C1D5060722295EA4D9D29D83144A",
+    "section_mic_hmac_key": "409242248BD9F7B475BC0F055BAA93A676948BE6F57989769DF739717B56313C",
+    "section_salt": "674927D66F2947C6E6CFA19007F33A7A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5FFFBB726259844316370AFED28E66D2",
+    "aes_key": "E8B7530E124B7900B5281191D89BD73F",
+    "data_elements": [
+      {
+        "contents": "5ADC8EA7781A428860082FF8D90439A6D195C7",
+        "de_type": 452
+      },
+      {
+        "contents": "0743",
+        "de_type": 582
+      },
+      {
+        "contents": "DA22170A8C",
+        "de_type": 645
+      },
+      {
+        "contents": "5D1B5ECDFE491D5171232041",
+        "de_type": 267
+      }
+    ],
+    "encoded_section": "6990138D6BAB5B944BE0BE770B03757B61DBF191100094F0DD055481AC91B3856C44C113C5229002AB5EE385FF4D8533458D5D1018B219406C7C016D3CEFD2F2D89FE06C32CA1EB5AE7E8A5954D0911C4A4293AAA0E3F88E9DF83F3EFD19EC8764E16A51B60EA20C822F",
+    "identity_type": "trusted",
+    "iv": "B673F39CCED213EB6880FEF952DA8F56",
+    "key_seed": "F78D9E077004872A3050A6A3EA50B1E70FC3C6DE9E7F49F134B0AE9BE1738A2B",
+    "metadata_key": "24085049DAFEDDDFD928D0E87A95F58B",
+    "section_mic_hmac_key": "639957A7793CF45CF598A1BAED976AB2C127212C3C2925CBC11E1570AD73B549",
+    "section_salt": "94F0DD055481AC91B3856C44C113C522"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6325640BF11B968B7C13063AB59A6F22",
+    "aes_key": "5D2197FFDEFF298C4FF9FA541DAB065C",
+    "data_elements": [
+      {
+        "contents": "F4F7C14E800989F15DEF6ADBEACFF1A1035B658234C91152C6C51C5F",
+        "de_type": 157
+      },
+      {
+        "contents": "86F2F7FE27446E08",
+        "de_type": 555
+      }
+    ],
+    "encoded_section": "6190139595DB3FD2DD731ABDD1BECA616687F7911000378134A082F77DA2BD4DBC13CD4A1C1B9001A8A5CFF56B235053651822983E68C5BD46F3B4020623A8AE59169CAEDA758AE87865319B3A8D3228CC4D04418D44F394B949B37815980338A7C1",
+    "identity_type": "private",
+    "iv": "AE588E4ED351B78564904D2E45354BF9",
+    "key_seed": "A4DED14526CF6F5F984E8900D671B9BBAD83515521A53B9D420D2A388CCAB2F3",
+    "metadata_key": "94583C4E13E8C9C9944ED50786D19345",
+    "section_mic_hmac_key": "6F320F7C56B7436AF72F9DDCF837FACABF9D4AB713268225A72BF6E4ED4D56F8",
+    "section_salt": "378134A082F77DA2BD4DBC13CD4A1C1B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5B662E491149B1B15260B320F4E01E89",
+    "aes_key": "D4D334E6C506B1E46ACAADCB94AAB75E",
+    "data_elements": [
+      {
+        "contents": "E45B42DBEA4552BDD8987DA3A9F7C474DD0B5D594704D34C",
+        "de_type": 927
+      },
+      {
+        "contents": "80",
+        "de_type": 144
+      },
+      {
+        "contents": "8C19",
+        "de_type": 612
+      },
+      {
+        "contents": "2AE92C14EC",
+        "de_type": 278
+      },
+      {
+        "contents": "5A3FB2F54F4399259685DE522D31C9E1E2A150A97F597B9DB51F",
+        "de_type": 449
+      }
+    ],
+    "encoded_section": "8090132B814D8B0438AE06E18CC62B190F0AFF9110000E7D5791602F29BE17656BADCED2A7269002C35227A826484C307A5FEAE5F5946DEA16A6512CF0C7E661C994CB23E31F0EA5A393FE3B7EE99BEEC02420C3DA7BC94C7E80CF5AA0FE0BB75BEE24632756ED3EC92CF64F9A2E7F9777403306D6995C1F32B1F7ECDC6037CB47",
+    "identity_type": "trusted",
+    "iv": "A31ECB0D9891D74FF9DDF376007CB629",
+    "key_seed": "E50CD35171C69F53BB3631558F6A92B8D202FCB93ACD6C864DE9B1FB0D8A3C1C",
+    "metadata_key": "E83B8B0FC3FCBC486C852EBEC880A253",
+    "section_mic_hmac_key": "0CBFE4AAD62203251AABE57D06C7F8785CE7A8AB924584888E4B2E91D0BEA44A",
+    "section_salt": "0E7D5791602F29BE17656BADCED2A726"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D4D3BEA3B13E0E8F2614716FB48F0D6A",
+    "aes_key": "E05199F2CB435DEF145BB7E73344E9AF",
+    "data_elements": [],
+    "encoded_section": "3790130A196A0477DCA5712C2882BF02E4D442911000508CEDD68F1A6A9D7611F0A8BD14343590044945F0B86E7D957AE20C1B6BC7E86735",
+    "identity_type": "provisioned",
+    "iv": "6C41743B8B7DB7062EC670DAF6A61798",
+    "key_seed": "C3C39B75D1D6402D67B7646996D02C1B3A74FE334497C43048D2433668AABF2A",
+    "metadata_key": "62CBAFD9D46C32E325D99A83EB7C353B",
+    "section_mic_hmac_key": "64D6C934EE6EAFE81A9AB9BD79C8374461550ECA553909391E1F60E8368E64E4",
+    "section_salt": "508CEDD68F1A6A9D7611F0A8BD143435"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "57ED0FF15D76C4099AB899F4E418420A",
+    "aes_key": "4E9CDD52C9055A07A3BC128358EFEE80",
+    "data_elements": [
+      {
+        "contents": "779B8A371B9E8BB9D0CAD88505AA1D9A1ED23036A0C6CF572A66E139A687",
+        "de_type": 215
+      },
+      {
+        "contents": "BD5F721280FC99C1B08886",
+        "de_type": 828
+      },
+      {
+        "contents": "D6",
+        "de_type": 810
+      },
+      {
+        "contents": "347A48731BFA69103A4D0F",
+        "de_type": 678
+      },
+      {
+        "contents": "FE74379D142F",
+        "de_type": 975
+      }
+    ],
+    "encoded_section": "819013DC7D6CAD65E2DA625647E9D79B415C7C9110000500D0334277EB0134622CD78688B3DA9004BF86CC7D343077E7E560156DB988B4D44DD10AE2D2A9024C20BF5DB58999156BC086F7CD85517B70C08511AEAA9172C56150F5FE5EAE80DD4629EAE66D3B02042A5E0821FF37290FBA5216EFB2C2C01B812F339EB4D240DE59D3",
+    "identity_type": "provisioned",
+    "iv": "01576839BF9354E4AC4C715763D32CAB",
+    "key_seed": "9713BD491A7DDA28161429EC8DD6A456D3A135A1E808DA30B4A55D8528776495",
+    "metadata_key": "35B0152C9416B9C96E369110D8C6CF9B",
+    "section_mic_hmac_key": "D12B6016B127A4CC62D2B1BCDE84CAF328626B19F24F3B770A07BA7E6AD9E9EB",
+    "section_salt": "0500D0334277EB0134622CD78688B3DA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B4573C31F4F975EFFC728BDAC5734826",
+    "aes_key": "71EFBBAEB4A0E65A8B25AD5D630CCF60",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 389
+      },
+      {
+        "contents": "3CB055F06072",
+        "de_type": 910
+      },
+      {
+        "contents": "B7518C446B1576FD37BF85481B",
+        "de_type": 953
+      },
+      {
+        "contents": "B6059A5CDC56",
+        "de_type": 792
+      }
+    ],
+    "encoded_section": "5C9013FB6CB6FB8FCF17D8F4B5547D9D9FBCA2911000B55F88A79A4D2308C6C58ADAF22BF1CE9001FC6689DACF7BBD836A7384B5E25B4CA444990364955921DAFAE62CBA2953A472F8D06A177D1FC116BABCC99F564BF1773D65E8D964",
+    "identity_type": "private",
+    "iv": "54C25EC2FA8AB87ED1EC10ED342FFB3C",
+    "key_seed": "47495F708FEBAF178EC2565BBCF981AE6AC35E1F8B721102A7337E061BC91935",
+    "metadata_key": "C8013164B860618F36848811670EF929",
+    "section_mic_hmac_key": "C5D4B92FA23796773094C596DAEA1B33219F2A3D7A64316765E41FD8D3E16BAA",
+    "section_salt": "B55F88A79A4D2308C6C58ADAF22BF1CE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E4B5A27A27BE52545A47985B9E7672C8",
+    "aes_key": "1CBEF7B3F2D0B8B543A8064D081887A4",
+    "data_elements": [
+      {
+        "contents": "66",
+        "de_type": 56
+      },
+      {
+        "contents": "BBD48390F886FE3524BB7CBEEEC484C3E5F8AE56D6397507C986C64B3334",
+        "de_type": 797
+      }
+    ],
+    "encoded_section": "5B90138D632E4E4CF4342FF32A48179E3F363591100066577FA1CF451210A7F51FCB91E8090F900225745619E27544AC812B4E8A914870EE4DB218008E498D777469B12F683439BEEBB15F1D438CF9A2D065D13F7464BEFE7FC78487",
+    "identity_type": "trusted",
+    "iv": "B4636AC8670D445B40129E5AC546748B",
+    "key_seed": "1119F85B101A1C2E50916D1D4EFBE165115CFA1D516BF6FF38E26AFD989AFF1C",
+    "metadata_key": "07261A673092A6796C05396F34FB979D",
+    "section_mic_hmac_key": "64CDA74FAE14EA9A68520991817CEB209D3842D1507C55E2398618E02F778686",
+    "section_salt": "66577FA1CF451210A7F51FCB91E8090F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9B384D5C760F4D838C96CB5C1E9BB241",
+    "aes_key": "1836C7B82C2B6EA947D8E012F116C09F",
+    "data_elements": [
+      {
+        "contents": "D9976568115CB8BF83FCC86839E7FA5E6CC215BE1BB1",
+        "de_type": 358
+      },
+      {
+        "contents": "AD587B8B83B854A5F43E3A876649E31E",
+        "de_type": 27
+      }
+    ],
+    "encoded_section": "629013D20E8E8CB6A740C268055645992CD564911000237B1902E39CD0E962BFDC3C0CB8F2EE900260224FA07FFC1C8496F1B76A4206C6909D5F802F2B79F688223D656DEC755A01F5E27362E186B5CAE06E37E3AB1D0B3B1293BE67650D0F4377D7DB",
+    "identity_type": "trusted",
+    "iv": "2FA2BA9E498FD9F7357D16A77DAE370B",
+    "key_seed": "602DE291FD9C7C12925034FABFECD98118C38F348372FD534786FFCAFF706400",
+    "metadata_key": "346B99848B2B463F6693F235D874805B",
+    "section_mic_hmac_key": "52D562B21447516C31566EB4C0C68A98C71630B24304B428EAC3BABE398A7AAA",
+    "section_salt": "237B1902E39CD0E962BFDC3C0CB8F2EE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7E91FF05B49BE21AFC9F91A460ABA336",
+    "aes_key": "B67FC30117CCE626887A7EE662652CD2",
+    "data_elements": [
+      {
+        "contents": "D69E2C5653B9BAAFBC9D5C3EBC58D3",
+        "de_type": 627
+      },
+      {
+        "contents": "EA28DC05603AD928B2826DCA",
+        "de_type": 452
+      },
+      {
+        "contents": "9501D6E4E075570F383542CF6E8AF8FC",
+        "de_type": 126
+      },
+      {
+        "contents": "930EECF1",
+        "de_type": 833
+      }
+    ],
+    "encoded_section": "719013234A6B8D05D901CAA3BB8EC5EAAAB230911000DB399806753D8B6045C73A755B71774B9001DCA87E9CA2A023437557F2F0D4B9A5B58AB3D608D4498CC71DB3547425858CA2D7E5F1BB29387BE5FE9D3272768A65E1765AF706FA43BE09CA8B311B2B7C8B2125E7C8A4B52D1025AD5C",
+    "identity_type": "private",
+    "iv": "9AC108D06B463F055D49A91E14F2C8A3",
+    "key_seed": "A3A8F349F07BB0F7447F51F661AF542D6904BFC6087AF67511A645FE8FCE675C",
+    "metadata_key": "79B2212A99BB2CD43B34E2E1CA322B62",
+    "section_mic_hmac_key": "9E7F2E3CDC198279843A86A60FF128B9F349C11E48B67EDC3158A9008C9C36F1",
+    "section_salt": "DB399806753D8B6045C73A755B71774B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "26582E4CE5C251427F923630006AFCEE",
+    "aes_key": "AEDEBC8CF8F3BC8DE853731DCA9E4DC9",
+    "data_elements": [
+      {
+        "contents": "DD433F55AF726FD4794FA327246F6F2132E92E62D21D67A321B864",
+        "de_type": 846
+      },
+      {
+        "contents": "D122B1144A43EFF0EB",
+        "de_type": 759
+      },
+      {
+        "contents": "7E078FD3",
+        "de_type": 404
+      },
+      {
+        "contents": "61",
+        "de_type": 461
+      }
+    ],
+    "encoded_section": "6C9013D15EEB0F499029BD0116FEA1D3408043911000BF71BA034AAB72D7B4D362AAB499C78790029776023BBD26F7EAFC7B7928DD679D540975CEC90BD83475280C3DA16D23ECB642CB67456C25FA0F51560628DDED9F2D6662FFBDB54D11E57405825F77E5A34396BB7DF1A0",
+    "identity_type": "trusted",
+    "iv": "8040F7832AEB66320A2D61CB079320D8",
+    "key_seed": "118711EA1D5E88DECC48D0139846D57F64A7C1B61315B1A287310948F8A7227A",
+    "metadata_key": "51759DA981D7A83ABD931FBECED991C5",
+    "section_mic_hmac_key": "1F08673E88B1D86CD3E152BF6C9E31A06D2CC05F57F9C877D03809FDA407518D",
+    "section_salt": "BF71BA034AAB72D7B4D362AAB499C787"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6E2C7B1C5E818B1CEB5F7DE8FC9E5755",
+    "aes_key": "DFEAFCEE8B8EE1F96CA60E271B6725F8",
+    "data_elements": [
+      {
+        "contents": "113C3E2039C4E1C7418BA6BB55FA8BFA",
+        "de_type": 366
+      },
+      {
+        "contents": "3AD067F40A",
+        "de_type": 823
+      },
+      {
+        "contents": "811535BFE2A541B0961314CECD50D59374E1B30D08DC",
+        "de_type": 763
+      },
+      {
+        "contents": "16FB893BF2AFEA6DFC5146AD63BE92F84C5D2D88607E46A228BB",
+        "de_type": 391
+      },
+      {
+        "contents": "FBBC7E70BCE1D5B1EB183D3B9E62FF8E14065D94930390FF",
+        "de_type": 382
+      }
+    ],
+    "encoded_section": "A3901332173E24B194596D0A48EED7B9F048BF911000EABEA0196320B7B9C0A57A2E416746029001F85327E3300056CC3C0C0D434A64ADFEB159198EF001E2C778F56DBC1EAF9DB00C725E6688EE8812EB5DAAA339F4A9FEC3927310EC508FCA85C5D611C42DFBE9323EAA48FF38702EC1073C9C13B33BC2EB1BA89E3F233C1A326155F7B5745D05AD16976725672873F40CB030AD916DFF0A42EC4B84F5394FBEA97808",
+    "identity_type": "private",
+    "iv": "A9717CD38A876CE4107BD424D8FBA366",
+    "key_seed": "1148504329B3B33FA44E2A221DFF6CBBE1CD4A52248B6A09A8ADCD3012750977",
+    "metadata_key": "27856505C84E581AA1A6C46C6FA516F0",
+    "section_mic_hmac_key": "DDE977E035CC76BBFA8A642C1F143CAACE972E3216BA65A7D75E984A14E5ED13",
+    "section_salt": "EABEA0196320B7B9C0A57A2E41674602"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9FBFBFBF8BB497AB6444B41A2B58A6AB",
+    "aes_key": "862A0A31E0D23BF6CC4E9DD3D885718B",
+    "data_elements": [
+      {
+        "contents": "3477BE93CA3B096D960FBE16F63BA456089D872D76F3CD00",
+        "de_type": 767
+      },
+      {
+        "contents": "3D9B50F6ECB3F59931BB2C31A67CB18D",
+        "de_type": 681
+      }
+    ],
+    "encoded_section": "65901361778F70E6B5332529106BC5D0D796CF911000CAD36D8BE2990F1DD1BE5A8CA36725939002AE6B6909552DF36AFCC86E4D91C1FAF7ED62212D53C2B7F84E640B3E5760A41BD98F8A544F830A97595B8386EB3A27AE2CC178A5EE103CC275D404DA6417",
+    "identity_type": "trusted",
+    "iv": "783403F6FE6BA30DA746FA2708C4D692",
+    "key_seed": "3942CF4816E8B430A03E14D2F94108C0A770891FB4E99ACD3D277501465BA68D",
+    "metadata_key": "C78FBDDCEBF1A5384BF7ABC8064377D3",
+    "section_mic_hmac_key": "94053E6382CEC871376151CBB9694C564ED767E1EEE3239C941D914ABCE92CE3",
+    "section_salt": "CAD36D8BE2990F1DD1BE5A8CA3672593"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "55FF1F0BE15C17461B43BAB93500700A",
+    "aes_key": "966B7CD205F081281E6E93C54EEDF15D",
+    "data_elements": [
+      {
+        "contents": "D13D37512C791FB5ED13EA221EBA6950B0",
+        "de_type": 301
+      },
+      {
+        "contents": "6244AF57E139117455782A325E7E3D1C910FF0EFDFF03A",
+        "de_type": 12
+      },
+      {
+        "contents": "0E2D671308A90AD27AE72BD2C375CD2E1E54926A6DCB",
+        "de_type": 571
+      }
+    ],
+    "encoded_section": "7D9013EF0E9E3112F9F8052BFCD5095F6DA7739110008EF37B9F957E72577A88E3E6616B1F0B90025B8420F2A9242BCAFC847C0C4D389501339DF6BFA0C91B4BD11343632BB679D50A288118A92B0FD09C57E75E13FA0DAA5C2F77D107185487F1F22CFC2F9B664D30F6D386975C72B046FA237531D0D5AAADF79593B9AE",
+    "identity_type": "trusted",
+    "iv": "1A624B59ECF332000562C8474140249C",
+    "key_seed": "5289A92DAA075E761F56E835F2DDC562DB148FE624E5C6FE08FA89CF5FCC9425",
+    "metadata_key": "F86972B236221A5B1DB9EDA61606B299",
+    "section_mic_hmac_key": "0F75B7C9F4CEBCB3D3CA5114EA5BBEF6A1065CD11CF1A401A7E3D6C2CEE85961",
+    "section_salt": "8EF37B9F957E72577A88E3E6616B1F0B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "257A8180A470B26312484B49DB427FBF",
+    "aes_key": "1A6FCC5E29E7D4BAF2ADE0428242C2EF",
+    "data_elements": [
+      {
+        "contents": "FA0C8C637E390F8123345F41392EF8CE",
+        "de_type": 556
+      }
+    ],
+    "encoded_section": "4A9013E976A9B1B377C5AE53AB1396521D337D911000CD1525ED218139EAFF89E47A20B34D4790044DE380677DEA81DAEABD099BF7E04531DF12F3E9C7A9C1B5CEB919C9EF3567915FB74F",
+    "identity_type": "provisioned",
+    "iv": "2AEF9979665B18EA76574CF455B20335",
+    "key_seed": "27AB5D93445CB4CEE55B3405325558636F198AED90C8E51836080F087A2E842A",
+    "metadata_key": "7C1A8511E3B9200C13C78F9EA4E57939",
+    "section_mic_hmac_key": "B1C4A104A63A1BA805D20818384EB39B6A440171D8C354424EAB9B6B7502DE77",
+    "section_salt": "CD1525ED218139EAFF89E47A20B34D47"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8D49077EA04B6722167FF9DC3E5A5C6F",
+    "aes_key": "1D3642C5B0338782485683BC113AD3C7",
+    "data_elements": [
+      {
+        "contents": "0761DB68EB536A1ED11FF6EE1A2BA0B9859AC5DC206C",
+        "de_type": 490
+      },
+      {
+        "contents": "64DACC73432881300198",
+        "de_type": 69
+      },
+      {
+        "contents": "A2074C1932DACCD81D3DBA",
+        "de_type": 213
+      },
+      {
+        "contents": "E26C55BE99DFAE8088BE1A01890F801D9E382C5419E6EE",
+        "de_type": 118
+      },
+      {
+        "contents": "3D9D9009F5F0B28BAED466EF285DC30B93",
+        "de_type": 969
+      }
+    ],
+    "encoded_section": "9790133210E2BD4D3A353337D7ADF84E63FD129110003B8C8A598DE9C86BDF539187043684DA900206D1B6437D8BDF3B6EA83CFF14D82D1241F0019EDF8FD5F1710CA0A9AE469B7F2EEDF319626F11376E797E91FA97E46F82B54406D5C1BB3032165223FBBE1DEB996FCC3C9036B8CA441FFAFE8846277F3FF098FFACB231D8DA52C7997AC3B2CCF65A875747EB0CDD02599308A56C5B5B",
+    "identity_type": "trusted",
+    "iv": "8D7F69E96E0B0FDF5711FC3B55A01715",
+    "key_seed": "AEF224AF0FB93E5306BE251CA4A2F387E5A5CC6630605B0A3E0C56D7078B679A",
+    "metadata_key": "7DCC60F2F58A401AAA957CF76649C84D",
+    "section_mic_hmac_key": "32E6F4E7934A34A459D136652114A9C0BD0A23AA4DDE36B51FDBF59C9A9AD9FB",
+    "section_salt": "3B8C8A598DE9C86BDF539187043684DA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4E4ADE9BB0F5C4629AEA9E3F16EF9601",
+    "aes_key": "95CB67B31D524CCC83FE954FE9D4E2BB",
+    "data_elements": [
+      {
+        "contents": "A1BA",
+        "de_type": 870
+      }
+    ],
+    "encoded_section": "3C9013A8A3FE675DFAFB72CFC76C7833A5F9DE911000173AC3E1BA7DD39FA785C6E60BAED8C69002F3C038ED49854C212866A5AA075B6ABEAD7DFE458A",
+    "identity_type": "trusted",
+    "iv": "9C68198A56ECFD51E7F8B770EBC315D0",
+    "key_seed": "5F5ACCD7667D18B16F2F816046CACEA387775372D3C2CA44290C17F083B0D8AD",
+    "metadata_key": "D6F99ABC33D92064B46A910FCA2C4036",
+    "section_mic_hmac_key": "3E1FF3C4491442BC4C092D3DDCEDF840451EBE6C3D3A438C79B079AE4241BD84",
+    "section_salt": "173AC3E1BA7DD39FA785C6E60BAED8C6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "824423E2D4F67BECC3EF225445DB8976",
+    "aes_key": "CF185400D6689B037B238F61B0F8159B",
+    "data_elements": [
+      {
+        "contents": "3C304F6A2D4E030A1EE524588D6B890A278EA715D7E72DA1F6AC41",
+        "de_type": 939
+      },
+      {
+        "contents": "EC9DC0C94D",
+        "de_type": 294
+      },
+      {
+        "contents": "291621E7F7496B",
+        "de_type": 704
+      }
+    ],
+    "encoded_section": "679013E3EBF925B22D0BD4B57CA802DE30BD10911000433A9544240B8BEFDA531A895B5FC46D900266034C3D13145C66E02477FE8F718D1C475176016D59CED1DEDEEE6415C87933D3A6D137BD15079779E7CB0B172C0563C90C9A95ED56E0B171AA08E2AEF81C58",
+    "identity_type": "trusted",
+    "iv": "2569CB0445A6BF7291D567B280EC7903",
+    "key_seed": "81E738D2BF50C258C1144AA9371826CD04F166B110AEE21F696D0F776B35BAEA",
+    "metadata_key": "094A54CF97E267D0FDBC858C3CB5EAF7",
+    "section_mic_hmac_key": "8C3E857F64C351326BB726B05274A8645176C8C8678C82E9190604DAC1841CEA",
+    "section_salt": "433A9544240B8BEFDA531A895B5FC46D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BC9A5197755D9A5679DCC87B79E1C9CA",
+    "aes_key": "374CF6450374370DD377AB35C40FE17C",
+    "data_elements": [
+      {
+        "contents": "017B0CD8B639ED915D35886531E1",
+        "de_type": 58
+      },
+      {
+        "contents": "F66ECBCA7F402517158769BDD4E7D50CEBC2DF10F32E41911B510F",
+        "de_type": 856
+      }
+    ],
+    "encoded_section": "65901307620D1E9A1EE0D4752BAF1CE59141EF911000BAF72D3D61009CA97C8FDD9CCBEF10ED9001E882E442913D85A2CC21169B9257EDCEC72349678006BF72A6C7FD18C85BBCF02E9843BC4ACE539C23AE19D1A79F63EC8886B34A7A32091C8873921F61BE",
+    "identity_type": "private",
+    "iv": "B5DB29371481C403B0349A10A7E33855",
+    "key_seed": "431919386DE84007C979116DF20230D0A60088C81C4CCE8491FD0CD5EF0C07E7",
+    "metadata_key": "78F91A3FC436CE326988B3C55EA9B5E7",
+    "section_mic_hmac_key": "B9CF0EFBF1F1F6CD77E6F8314FCB3DADFF55DE06B6B684E8739DD6B793BF7442",
+    "section_salt": "BAF72D3D61009CA97C8FDD9CCBEF10ED"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "33F99E993A3416EC161F0044EC71B42F",
+    "aes_key": "BDA1D8D59CFC0C0E3C0232944E5A82DA",
+    "data_elements": [
+      {
+        "contents": "C0F5E75C8B80C62DA67A5834B00A",
+        "de_type": 720
+      },
+      {
+        "contents": "894B67C2BF3458",
+        "de_type": 977
+      }
+    ],
+    "encoded_section": "5290139B54D6302AB388F8B952001F3F233723911000DA579BCFC70266C882B420E1B122710D90018D8C89DA498ACF2DDD060B59D48A85249435080F054A5479432EAFD1089FCEFF46465BB7A63332561CFE19",
+    "identity_type": "private",
+    "iv": "F4DA1B762699DECE3FBEB755A3C8F7DC",
+    "key_seed": "E615C6F1F6494D3CB1EFEDB1CA97EDD096997DDDB0F840FB4B8A9A9AD8FF68CC",
+    "metadata_key": "9CCB7E17B8E4F311F5217BEE076FE193",
+    "section_mic_hmac_key": "08A3425953011FB61CDF4F73BFDF0FAFD337C6192847B028580392CA1920BDE3",
+    "section_salt": "DA579BCFC70266C882B420E1B122710D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4F729B7E8A3DA79951DB474393B34C05",
+    "aes_key": "D4CFDC392B5398DA8EFF9761AC883BED",
+    "data_elements": [
+      {
+        "contents": "7B3D33709DE248C8C6E55A17681634BBD51B9AD16CB70AFE732D434F73",
+        "de_type": 950
+      },
+      {
+        "contents": "572C1E1284C61CD3191CA7FD48278E69A871061C",
+        "de_type": 519
+      },
+      {
+        "contents": "F26F1FFF732399534BB9",
+        "de_type": 462
+      },
+      {
+        "contents": "25D3DA009DF358AA2B1502B102",
+        "de_type": 760
+      },
+      {
+        "contents": "696815F62069A011E27DB2B6",
+        "de_type": 116
+      }
+    ],
+    "encoded_section": "9990133BA7F84BD37A8ECFF8991F41816603D9911000A24D83B5B489290033B0FB399D50278C90048830A62074CC528A053D57B871559B428C52947FE6AC380E6C409A9FE4CB2C778D396C9EB33D284ADC7AADB7FA26F64AD1E77EF8700C7D5011EB4188B8EB69C6AB8B247A3A408C296E0E9505DED7DC9B6B81B6AE18BDFE328F76BF28194F1C9FAACEA61A1305D8853B62E00E92B3B5DA906B",
+    "identity_type": "provisioned",
+    "iv": "27D31B8F040B8147F00DBE3EDA8DEB3A",
+    "key_seed": "E4ECAB1DF51BDE39E140E09E592023B0EBB70D51EF925AE06F55BAF1F232F965",
+    "metadata_key": "A74B0FB29ACAF1F6DCBF1D4B80D05D7C",
+    "section_mic_hmac_key": "064478CDA8ADA4303610AA070F13AB89C7FEFA11044EB17C620B4843A1D2B185",
+    "section_salt": "A24D83B5B489290033B0FB399D50278C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "532A9B509151D3891A89EC8122177A00",
+    "aes_key": "65CA1FBDA266B5CC1F687F05BCFFD91E",
+    "data_elements": [
+      {
+        "contents": "28CAF4164DF090AF",
+        "de_type": 267
+      },
+      {
+        "contents": "2BC0D162D9A11B1592505DD0A88C222E3A05F584",
+        "de_type": 344
+      },
+      {
+        "contents": "5F0BE74A54E9C769E93876",
+        "de_type": 663
+      }
+    ],
+    "encoded_section": "679013D6A5733B956C24C026EB4CD77CD241FF911000BA40F9A069E1D2864028AE47BC7FBF5790021A2F29AF45309E075686A17B858A7453DE7F746B1A9AA04C68901F0BAEE8474D84BC96034338542D2FCA389DB128BEC31B187D96C2A7BA001B53B5F3E4B058B9",
+    "identity_type": "trusted",
+    "iv": "3B7CD74E54AFBF2903999BDAB75C4E77",
+    "key_seed": "65A6D38463734CF87E73D55D9695658B0C08ED9F35838884F08DE839C224AD9D",
+    "metadata_key": "DDE0C29AAF70BC5299D0945DFDB2A320",
+    "section_mic_hmac_key": "5E63974EFE6650031F0244E69A2533ACCEDDD75479D939E5DCCDFE355FFA52D0",
+    "section_salt": "BA40F9A069E1D2864028AE47BC7FBF57"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D5487414BA08F69CE9D13560766378D9",
+    "aes_key": "4597450D328A4398969C6984A4812726",
+    "data_elements": [
+      {
+        "contents": "5594877DB8046C",
+        "de_type": 749
+      },
+      {
+        "contents": "D49D19549FA675ECB739E031",
+        "de_type": 1
+      }
+    ],
+    "encoded_section": "4F9013F87D55A4AA36BD81DEB11033F76E60A9911000F948EAC4A61D540FAF5BF958C0AA15029004969211CDDBF8AE4D251A89A69378E93D41D2C6E1FAA39580C4606EE81B99B2F7146566D5F3A2D187",
+    "identity_type": "provisioned",
+    "iv": "7251B83564C131AEE0ED8E7D4B2657B3",
+    "key_seed": "32055A58CFD37AC838F8978ABEDCC2A30BC8752D9985DC4F24AA8010B4855B06",
+    "metadata_key": "1C85CA810627CA299F3E7C5D8F2CD904",
+    "section_mic_hmac_key": "20D173254B6DF487603D339E1BB394DBE0BBF19F4680F2FD3DD3EB3E389215EB",
+    "section_salt": "F948EAC4A61D540FAF5BF958C0AA1502"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7443AED9489E3C74C778C996DE9B67C3",
+    "aes_key": "D131442579CCEA76DA56F4E5171F09A6",
+    "data_elements": [
+      {
+        "contents": "C879C6B33BAB741D400BB9A06533672BAC016E",
+        "de_type": 367
+      },
+      {
+        "contents": "5ED5",
+        "de_type": 783
+      },
+      {
+        "contents": "0C31C60E1A246200DF872DD766E501",
+        "de_type": 288
+      },
+      {
+        "contents": "38B9BAACCDD2C285CE1DD7D4C101E8FAF4DECE26190B08E1942D71D30434",
+        "de_type": 835
+      }
+    ],
+    "encoded_section": "859013856E63F667D52C056607CD1EC8638385911000E3196F7725B52982CA91690DCCAF3D15900132BC6722DBC8E95809378C5569E0FBBE845D96271B645007A3D4A698F25B8A816924D66453873D49313DDFDDD5158FF1A9C0318C0EF5CC5604A58C9E6EA95E2DFAFD40939E4DA0BC33B5DBB471A83773D6E1CB927E79C0509447CB9291D2",
+    "identity_type": "private",
+    "iv": "6EF81828124A99A5798762BDCD4F0CA7",
+    "key_seed": "01281A1DCC6627FB7336A190C0E316C0225EEBEB3DAFD6E79DF86BE811EB5B1F",
+    "metadata_key": "5DB0440215FE4B0B403027E82DD05BF1",
+    "section_mic_hmac_key": "FD0BCBD301B26D355985422BC65A0414C2FF451AC7837EE31DDFCE060E6F76C0",
+    "section_salt": "E3196F7725B52982CA91690DCCAF3D15"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "01CDD6964C7DCD733D0365A455354A94",
+    "aes_key": "F9EB800C6E2AB6E3457E3DADDA4E14EC",
+    "data_elements": [
+      {
+        "contents": "05013630B53FA97478A6B3B4E9617A2B35C4200EA5D1B29D86184A",
+        "de_type": 161
+      },
+      {
+        "contents": "591FB0F89D67D7B2FF2FB27D6B8C",
+        "de_type": 821
+      }
+    ],
+    "encoded_section": "66901370C473297041FA4A4260B3995CDF0851911000BB3A62B2E753295B664F3C1B06172B33900186CB039689830CF401848577471BF720CB31EE848CA200D7705C87C3EEBEF421399B027060C18731B7FF977CCB90406E7BFDF0A4D389D6EFD11F426B89B35E",
+    "identity_type": "private",
+    "iv": "2195E6D71AC6C2AE69D6DC7E7440FCDE",
+    "key_seed": "B9AE3932FF811CC014314D266D048E145DE60956DA53BB98D96CBBA136314389",
+    "metadata_key": "F43D7EDF61357AC7B512D6502D5F1EC7",
+    "section_mic_hmac_key": "5685062CCF0CF66F8EC8F0601442AE4FF9CB028F7F693235555A7918B83CDC44",
+    "section_salt": "BB3A62B2E753295B664F3C1B06172B33"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "201E65F2C73E6749E104294C5B80BD0A",
+    "aes_key": "9FF2BAEB97F201967B41A9001556C782",
+    "data_elements": [
+      {
+        "contents": "42AD133E97FD6C468A8BB259F4FC05",
+        "de_type": 673
+      },
+      {
+        "contents": "D7B8495F3785063C4A4B988EEB3804CC5E7040",
+        "de_type": 973
+      },
+      {
+        "contents": "FA600360B5B21558266D62",
+        "de_type": 30
+      },
+      {
+        "contents": "6E90096C876401A20FD96E0A307C57C08893C533C3013A894380ACCFAA",
+        "de_type": 176
+      }
+    ],
+    "encoded_section": "8C90132F63EC2519B043C70FF4BC0AEA11B040911000B950743AFE9EA5BD4C03AAEDD3D0736C90044510CBC7D4252D98D4AD42CBFDF678C7D2A145E3EBF06D19FD695399D65444D16D7208A4E71B6CD26FAB2990E0A1F7308F5E2B73461BB7D81BD86EF287D1DCD3467F846DB7B9231F17C535082924817941954F82B95791BFEF9530BEC4D3177495EA68B59A",
+    "identity_type": "provisioned",
+    "iv": "3A32A1543E3241B3C6C7D7C40430B793",
+    "key_seed": "8E5C4D3AC2D07C2092CFE2D34E54C63A572CD8187316161E3DBC78AD90F8353B",
+    "metadata_key": "6389D90BE57C99D0147423C3088C8433",
+    "section_mic_hmac_key": "421BC7BAC32D064027C7D3A5609CDC742FE9988282040A0DDF07BA67FED68DBE",
+    "section_salt": "B950743AFE9EA5BD4C03AAEDD3D0736C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BF4149101EBD062FD66BB8A15D8D97C4",
+    "aes_key": "D25E758A7A3B45C004D6CC5D04BA496E",
+    "data_elements": [
+      {
+        "contents": "6E73EAB3E73F8231F2E9985E31B82C1DE362F26327FF355E45",
+        "de_type": 457
+      },
+      {
+        "contents": "173120937001D3979F203D7008E83A2452",
+        "de_type": 115
+      },
+      {
+        "contents": "D857E0E0C4FD3A32A4167DE23D9F4B67",
+        "de_type": 989
+      }
+    ],
+    "encoded_section": "7990130DDE44464CAA38BDE84281442900A8509110005ADFF0C03105B2B399A18E9B17168E6D9004AE5A46E81D5F0C9569137015FDEA89BB572AC008302F09D2AE7BB332431A38B0034756E35370BB6F6408594F8CF8898565D4C7C985124484911ADAB72BFF3DA57A6D37618AD5EDB2093AF1C05C186AC624F3",
+    "identity_type": "provisioned",
+    "iv": "22ADBBC7329D0E519D5F94A63E763E74",
+    "key_seed": "FAF2516570FE1256279CD47301C50DF52C2327E6DD7A5653AC6231CA6D788B35",
+    "metadata_key": "350488F862C7604DDFA0272A3D21B786",
+    "section_mic_hmac_key": "D2824640C9C9593142EB2CFA6E58AD8E4B6A27F97422A429DAC36D0FF98DD312",
+    "section_salt": "5ADFF0C03105B2B399A18E9B17168E6D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3DC3253CAA257609187D246F31331F3A",
+    "aes_key": "73A354EF72BCC07FC9473B64843E5669",
+    "data_elements": [
+      {
+        "contents": "9835B7634A82F3DFE1EB3B0D25EACF27B111",
+        "de_type": 786
+      },
+      {
+        "contents": "AE349EDFD372502D738B6CE186BD30A24BB77E",
+        "de_type": 462
+      },
+      {
+        "contents": "27A1F50AB7CCEB9B0D69DE538604F8957E44EB05D27608",
+        "de_type": 570
+      },
+      {
+        "contents": "FF7EBE",
+        "de_type": 960
+      }
+    ],
+    "encoded_section": "82901331D537AAB3FF00D04936F0A31A2FD4499110006D7E10C60B7F564BD819EEF42810D82290015B0B2252207FC9225CFC1A3E91FA6BCEC5EE55CBC4B9D4CE2C809C666602339E88B12F6A145C89C06C744499988D39A8CF69A2C73B3625C54DD58A74DAC3511558EA11A36ACF302DB6FBC1091E0018672C1299D834A56FE53E6562",
+    "identity_type": "private",
+    "iv": "82F350EB514C88202688646DEADC2AE5",
+    "key_seed": "B7846E30DE6251075FFE9DFF3EF493655033CE4DA3721204249FDAC0FEA81EE4",
+    "metadata_key": "D6848E0588A7653DBB03F88A3984F6FA",
+    "section_mic_hmac_key": "EA643D83A79705A66FE8DDBD3ECCBAF88E3C1F80B68C2C406216F65CD1A232B8",
+    "section_salt": "6D7E10C60B7F564BD819EEF42810D822"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E31F9F8EB3513BDFB44EF96AA620AAFB",
+    "aes_key": "4258A9B2525ECF4A5E58E1C2A9063DD5",
+    "data_elements": [
+      {
+        "contents": "ADF8FCECA7E191B3517BD0CED3",
+        "de_type": 968
+      },
+      {
+        "contents": "B87EF036921C2A821A7F1870DE5322CB54C78317881EBC0464EA4CA53C",
+        "de_type": 932
+      },
+      {
+        "contents": "EB",
+        "de_type": 660
+      }
+    ],
+    "encoded_section": "6B9013F16715F33E9D6F1CB228C7980AEDBF909110009EF4C8B8957C9963F83740019009F8CB9004BA838E0DF9D06746AE2BE8D725EA825AEA40D89326B71B94F0182B2F1187359CA49DE5B68FEB2F489617FBD98183BD84D2A015061EE9D1586BE943BB3AF7631C2BFFEED3",
+    "identity_type": "provisioned",
+    "iv": "E4C0765EE932EC49F352EE800E95BF09",
+    "key_seed": "39F40C082855D864F9EAD4D2E01AABDCFB3AEEA2D6E3CF8BCB5319EA1AAE1C5B",
+    "metadata_key": "BD48F853813C1365B9D7E7B62FF934B5",
+    "section_mic_hmac_key": "9FC866D3FA1D25D6A429BA6E8D8BC12C64860E5FBFA2995B6F5C27C3D8C7B940",
+    "section_salt": "9EF4C8B8957C9963F83740019009F8CB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BCF433EB76C6DC46D6E21B55EF890A62",
+    "aes_key": "4E79EBA2284EEFAF313F7ED5BCA05ABA",
+    "data_elements": [
+      {
+        "contents": "D15571FE1145DD2C7490910BDD0C",
+        "de_type": 910
+      },
+      {
+        "contents": "170565A8A4",
+        "de_type": 762
+      }
+    ],
+    "encoded_section": "509013C3275F9959C9B6B3984A4D9D7ADBF846911000FF62C0D98902FFC817A5262C7AAEFF34900297B89286BBE1563519BD6A4D344DA0D02A56227C8F15BD7419D3191EE89E07DEDAAEA2C80F44A3BCAC",
+    "identity_type": "trusted",
+    "iv": "337A5A9380E964FA6BC47A318FCC34D3",
+    "key_seed": "E7166D09CDE23D2758F900FE5256262B4E9854C004C565E86240856C6C9C5936",
+    "metadata_key": "7C7DF4DDE672B397105EDFC764E8E659",
+    "section_mic_hmac_key": "2DA615C9E80E2528B13F1EC95860BA8BFCE20D5BB09B3B60FA9CC4429AE7B58F",
+    "section_salt": "FF62C0D98902FFC817A5262C7AAEFF34"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "944EE800BE99462E7D2CD5B33FD5E63D",
+    "aes_key": "567FDB0D6E7E46FA89779F09423DAAB4",
+    "data_elements": [
+      {
+        "contents": "BDE03470416E865C3BABD4",
+        "de_type": 462
+      },
+      {
+        "contents": "D6CCF4C7C2F63DCC143C3D9DE7F43227D61E670D42C8B68180257EB370",
+        "de_type": 128
+      },
+      {
+        "contents": "20C72E3A955F310EB699",
+        "de_type": 101
+      }
+    ],
+    "encoded_section": "71901353E7C27131F33499622E7CE6CF74E3A391100046B0B64F499BC8A30778C7EE5E5D53C890045B77D7B11E140D541F75ED8F022F45EE22DF1E033AB90EFB89C5FA7EFE75869168A17A3E5923DFDEF8E94BD2714B039A98FFF4C834E4ED222C88CD29501B34BBD59E294039D5D8AAC305",
+    "identity_type": "provisioned",
+    "iv": "429662A647C2A5C874388D09ECBD3863",
+    "key_seed": "B08E79ED71A776EC7A12D208D40263839BCA251400D223DD604FB46006B16016",
+    "metadata_key": "3BC1E5BA014BDC2F3E86557B27439B42",
+    "section_mic_hmac_key": "3C3A1354B81E8F4BF020D00025F63B060526C77F98F41EE759A002AB5E80BAC0",
+    "section_salt": "46B0B64F499BC8A30778C7EE5E5D53C8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "40C50798CB6B90E84B28C2DA92DEFE6A",
+    "aes_key": "E9EA2C7ADF7FFD2FF4AD9FE602B1FC1A",
+    "data_elements": [
+      {
+        "contents": "B8C8CDEE",
+        "de_type": 793
+      },
+      {
+        "contents": "9A",
+        "de_type": 749
+      },
+      {
+        "contents": "E449D3660409413C63",
+        "de_type": 588
+      },
+      {
+        "contents": "BF5F66ED2CDF72FE206A9E",
+        "de_type": 52
+      },
+      {
+        "contents": "EC62382023B21EA450983368754FE9B2AE",
+        "de_type": 39
+      }
+    ],
+    "encoded_section": "6E9013C9617663F4A258ECAC1D10242CE9C20491100044AC3079A59D58FE95ACACC78E24D4CD90015F59D0C643A5B519A0B0AA437E113BA30E055830AA3D8DFDC8B0CE7BC4F01FFC4472BD93362308715535B643DC58C7C9288EED97CA0687EBC5AF4C2DD4E48464B7974101F424E7",
+    "identity_type": "private",
+    "iv": "0E0F84344052E7671CC153002EE1CBD9",
+    "key_seed": "15F230069139FF86FBC71850F7AA9275ED0BA1A471AFDD4F6F4F32718FC180C1",
+    "metadata_key": "99FDD5669D2B0D5F466C202F80898CFA",
+    "section_mic_hmac_key": "F933F36F11D6751204A7D4AA5D00F6D930CA7947DEDFA8E588AE32CDC50355FA",
+    "section_salt": "44AC3079A59D58FE95ACACC78E24D4CD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C39D831B39DADA8A4D2FDE8CADD7AD5A",
+    "aes_key": "40777A255D48F7182CE23A787B7C5765",
+    "data_elements": [],
+    "encoded_section": "379013F6D0187446372B4CEA0E67575D4EB9E09110001ABDA9EC38BF3FF2C4E6CEA7CB296FAB90021EB5EB4EE1AC52FA36C007F242C903B1",
+    "identity_type": "trusted",
+    "iv": "8BF471907B22592267F1C653662E40CB",
+    "key_seed": "630FE25E7432AC0D3A4DF3B2FD196CA8B774674B7F65CBC1B7EC8C680EDC88DE",
+    "metadata_key": "CA7D44E7F05D3FE953991E5E2F4F65E6",
+    "section_mic_hmac_key": "3EE2C708429DF966A211FEAEB99AC02D4B4F88A1AA6D1B3350E0E72D6916472F",
+    "section_salt": "1ABDA9EC38BF3FF2C4E6CEA7CB296FAB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "97552E387E6AE7F19813273C95BC98DD",
+    "aes_key": "C6F2E67244DF14B25370D81999B3B703",
+    "data_elements": [
+      {
+        "contents": "48294D8737F6689CA1224806F2BE96746AA3F7E9",
+        "de_type": 281
+      },
+      {
+        "contents": "046A03298AC6CC74C9875F01C585EBFA285FAEE43330",
+        "de_type": 662
+      },
+      {
+        "contents": "5772009914B0F7D03D99EF3848500E5CE2CF1BB8967A4802489DB999",
+        "de_type": 294
+      }
+    ],
+    "encoded_section": "86901375877260F8680F64A523EAEACB6A70A6911000C9BED517D11AD9DE1BD79769B4BF1E6F9002B350E0DD7516F6310B5565EF2CFC16FD0F7ABB3C9672D2A4273D874DAD2A50F90B827E7DD2D1F3144E9F44CA56A8F5B8CFBC080004EBDEBD57572915FC3B3ADD1722FECF6DE45A91F1E383F15C990E22790A81DACBD72D7664F3941D15CF05",
+    "identity_type": "trusted",
+    "iv": "9343721F3C8067E079543B212BB2889B",
+    "key_seed": "02AB71C90D39A12A244CF71B024542CC16A83A213203F410FB5E68A9E047C59E",
+    "metadata_key": "303F6356D15193128F6E6B381E88EE17",
+    "section_mic_hmac_key": "4E43FFB12A718E30D9F2455E985C46D0998D11D65E84CEAA3DF88E5012AAD482",
+    "section_salt": "C9BED517D11AD9DE1BD79769B4BF1E6F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "71BC9ADC29579DC8A0E0487EAA5230A7",
+    "aes_key": "9620661A0AFDB63AD16819514497C47E",
+    "data_elements": [
+      {
+        "contents": "1C1A3657E3A21392",
+        "de_type": 220
+      },
+      {
+        "contents": "6C9F1CA43BCFAB1857D7805A84E4A516FC4D9E7C9678DDCE",
+        "de_type": 740
+      },
+      {
+        "contents": "089BE9",
+        "de_type": 171
+      },
+      {
+        "contents": "331FCCD6645D0E6C2FDC35F3AF3AF969F2FD0282A81D061DD11111EA08",
+        "de_type": 645
+      },
+      {
+        "contents": "60A8B144593D90FEFD6253F416B570B8E55F1BBE4A5D",
+        "de_type": 986
+      }
+    ],
+    "encoded_section": "9C90139CA48B7A14644F84BDB15949D54E4D929110009744CE2971F1B4E26F8073C4B4849A10900130945DF1008EF4B256752CAC699B2CBCD0A736335A415D81671FE6C4E62E1AA6721CB7B9A862FDE44D4865E8CA00D9689848B19ECD766EF2612D73BE4E7DF50E81C75FA990DD295777F5F9D4B89D619023163C2ACEB31EE43CFCDEA866EFA0F1F98DAAFD0097DFE4564D5158B26EDBF3943E7D1624",
+    "identity_type": "private",
+    "iv": "7D0C9BE18436626C75E5F109E9FA6505",
+    "key_seed": "06AA79A2060D335E6035AFD4807E33B665C0AA91D672258386D3C8A18BF62730",
+    "metadata_key": "7011E726D054C8F0A3AF0A64CEB3C04D",
+    "section_mic_hmac_key": "FC9ADB7DEA9F8B9BC8AE7EE4E37290FBE67F49938209F722BAF94F00F5AD8A3D",
+    "section_salt": "9744CE2971F1B4E26F8073C4B4849A10"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "96AE4A65693FECD0AE7DC294E815285B",
+    "aes_key": "766190BC62AA978ECD78A5FB1B9393AC",
+    "data_elements": [
+      {
+        "contents": "E2819425AA7B8D06E07D12EBAA19",
+        "de_type": 112
+      },
+      {
+        "contents": "668F51765E67802E8D947DC83432A82F4F9FCDC3FE56DBEA",
+        "de_type": 997
+      },
+      {
+        "contents": "9F",
+        "de_type": 189
+      },
+      {
+        "contents": "B7A803AB085D7464012E7141C92759CD5ABB1D5EE20252D40B",
+        "de_type": 910
+      }
+    ],
+    "encoded_section": "8290134C5FE3E874324FF0481B9CF6C7BD23DB91100042F06DF6293FE7CF1755C951BE41DCA190029B0054551005D376488CBF35207D28173DD036E39F6D2DB18CEB5F87FA981F7695589EA3C6CED88CA59C664CBA7F19F5AEA26ED8B819F1A98A2290E8AD88955C9B1CE698BA709C76E66BCD3E0EC22BB6AEE6E2D45619A100FA717C",
+    "identity_type": "trusted",
+    "iv": "D5A0D32FD5106E9435882D01E1B6367E",
+    "key_seed": "1D64C492D1FDA772BFB5BF34A65A186C4571F0B131A19A15C40644C5D597F7D2",
+    "metadata_key": "18AE245FF683EA4D131CB3B9CBC5AD5B",
+    "section_mic_hmac_key": "C147044183E1BA4466D363443FFB1F6868D7B9B52D128E702757AF3A8872E2DD",
+    "section_salt": "42F06DF6293FE7CF1755C951BE41DCA1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D6A98C7976ED88F4776F57E55051BA42",
+    "aes_key": "D6F42BD59A9A4D83D113E168F945476D",
+    "data_elements": [
+      {
+        "contents": "33E7567D2554B29992ABFF5F",
+        "de_type": 733
+      },
+      {
+        "contents": "1CEB66A7934CD81BDE08E0B4C68F418C",
+        "de_type": 235
+      },
+      {
+        "contents": "221A4083EE6BD86567C08EE459ECAF0592714C08F3C4541C254EF7B1",
+        "de_type": 664
+      },
+      {
+        "contents": "9802DC6EEC151819FBCBD2208784FC5F45E439518A33BA49C30C9812",
+        "de_type": 700
+      },
+      {
+        "contents": "F59E9C167060C57F524B06FC2CFE8C30B7C245A5C9F02657EBBC2E7F",
+        "de_type": 938
+      }
+    ],
+    "encoded_section": "B690133CE3C2FA05766D5CA1A3D5EB51D94E5B911000C154515607DCD6F34C441B78BA3E68A2900155F5CC8E4A8A8E627FBB74C83F67F73F72C7B6F84B5897C890D28B73C4302EFD9EB62782B56E9D0C9F64B75CE36FA88E9C912A29CE40AE572A564E74BE9DCD07E0F252C228F235DFB4CE51B033D4D93BB28E05147464D77673CCF87AF583F02574484839C5407D83B93676066F280BD2E62E586A465D1D62AD7CA1902CD7FDD1C69ADC1A99A85BBD1E56BEA1F7B6AF",
+    "identity_type": "private",
+    "iv": "8A66F137E1DD93ABF2E6F8DB8E5629A5",
+    "key_seed": "0ED34984F8608A1ED2420168D3E39EAB29CAE89E6E00F577A2FE2435E371BA8B",
+    "metadata_key": "6D78B0D9464EF03BAB914959BF7471D3",
+    "section_mic_hmac_key": "F77AA75CDBE8F413D63FED4997A9DF7B110A1EE1238ED913DEB1510213F82FDB",
+    "section_salt": "C154515607DCD6F34C441B78BA3E68A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95D42E733AAB2A8F4623607AE3AAFA1A",
+    "aes_key": "307EB5096605C93D74051BF3019140FB",
+    "data_elements": [
+      {
+        "contents": "CF43",
+        "de_type": 272
+      }
+    ],
+    "encoded_section": "3C901309D2D105A3900C7562AD0B847A6BDCD2911000719CA000E206EBB7E414B1F331D8879790017D362D435E3C563734593A7A7A1F6FB1DEDD3FA0A4",
+    "identity_type": "private",
+    "iv": "CE936BD2A93680E285FE69D3519B37E5",
+    "key_seed": "3CACB47DF80E06C8E73F10B1CA40BF090558409363E97E32EDE98ADDC25B7948",
+    "metadata_key": "70936418E7BFF920321C1D1B1E22E5A5",
+    "section_mic_hmac_key": "37593B2D5BA45C77CB0E2C19246AF6FD05B182409983BE087D9C100BDCC2B7DD",
+    "section_salt": "719CA000E206EBB7E414B1F331D88797"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7C6A5E9D266FBE338500EF4B1A9AE1C9",
+    "aes_key": "37B697BF854925E9E7CA558956992E29",
+    "data_elements": [],
+    "encoded_section": "379013BACA5D191A040F13B2D30C356C3C383E91100026E263D75F5CFB71AAC091E648255C629002BA53540471CBE7FCAF7339225583900B",
+    "identity_type": "trusted",
+    "iv": "88A2CC9AD86FE18152AEDFE96F0264F7",
+    "key_seed": "666B0E3B2CE558955F83D1992C4F3CE552B1591BE1FBC39E7578A33D4A66015B",
+    "metadata_key": "9EBB6E6E93A85AAA2629A791B4760394",
+    "section_mic_hmac_key": "8FE26D7990CF7ED06F5FD77E2F78F5D99DD08D6F366D2C6166286A8C92478306",
+    "section_salt": "26E263D75F5CFB71AAC091E648255C62"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F8170168CDB98E6054D980DC4F486BB3",
+    "aes_key": "A723C83FFDB884866843D23669DC6225",
+    "data_elements": [
+      {
+        "contents": "F7844444403E9C",
+        "de_type": 782
+      },
+      {
+        "contents": "8233B24F5F14FFE07565AE42",
+        "de_type": 69
+      }
+    ],
+    "encoded_section": "4F901345A324F37CB55A5C0949CBAD49CC11BD911000668B8E44F0078A09F12829F40AD701F79004F968AECCC04CCB53902EA8B7A9AB90AC9D3507DA5708488D8A6D1A681DAF59454152EEEA00D55441",
+    "identity_type": "provisioned",
+    "iv": "FD415093D0B11FCFCD62D5EF7EBA2EB1",
+    "key_seed": "1661E1DB8407DDF7EB6909B99391A568FCD11321E9D340BA2C5D3E802753436D",
+    "metadata_key": "443844D2B1B640CC1C9A4CB862BD5B5A",
+    "section_mic_hmac_key": "CE882FC63AF0978CD195CB6DDFA2FD4F77162F138567CF2795776F32B834D7B0",
+    "section_salt": "668B8E44F0078A09F12829F40AD701F7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7F1798862045B2359834FBEFA172D80F",
+    "aes_key": "612224E493519B499DA8E37EA72BD934",
+    "data_elements": [
+      {
+        "contents": "440654B4248B492CE5D00CA61809",
+        "de_type": 768
+      },
+      {
+        "contents": "D417931E9C9816A0289BD8855D855FCB21",
+        "de_type": 166
+      },
+      {
+        "contents": "E8C520AFADCD6D672723D0DA5828F73C6FB01B9F0DC6F7B4D6",
+        "de_type": 139
+      }
+    ],
+    "encoded_section": "7890130D0ADE5589F80B65A31269B928FF63D0911000489AA2FF0B570F1558FBCEBDA587BAE590040E64FFDBC2E0CD5EC3C8DF92196E4AF3057ADE7C296F26DA271D95A20FE7C1ECD2C28A8947CFF6007D293217FFA58261AD7F3D223DC7F1C2F2B19F696ED43E593593FDDD0E3AA714D6D646F34DBDD6C298",
+    "identity_type": "provisioned",
+    "iv": "FDCB3FCDD56A66B6C933BBFDF96A9FB5",
+    "key_seed": "8293C98B9D0BF923A3721AC82F2AD92EBB1CA01487D3CEEEAC8CD21CDD69F4DE",
+    "metadata_key": "78F9E8DC1BE37E91D04C8AF24505C390",
+    "section_mic_hmac_key": "8B092819354220EA5B74C6332BDDC7D8D817B74789F17501F6D2E13230D93633",
+    "section_salt": "489AA2FF0B570F1558FBCEBDA587BAE5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8140D71FE04244D8BCA21C9B5080A385",
+    "aes_key": "CDF733CFB60B594C37C1F1970F06F23D",
+    "data_elements": [
+      {
+        "contents": "9EAA4D737BC194651FF11D027E653915B66F89CE",
+        "de_type": 146
+      },
+      {
+        "contents": "85",
+        "de_type": 517
+      },
+      {
+        "contents": "B2D927",
+        "de_type": 37
+      }
+    ],
+    "encoded_section": "579013EE370B2CFFB5850F24E31EA18EA165E59110009CE7EBE57787FE3B841AAA34A9CEA8879004B79F8E5622D80A40CD40274BD5D19B70D57D842372B67C2220EBC1B075DDDEAE5B7A6E9BC8BB0C1104357CD7F9E27856",
+    "identity_type": "provisioned",
+    "iv": "3A43AAD47E0F8DF1D833F633226CE6F4",
+    "key_seed": "645E00EBE423EDD4AB5A50D7EDD53F4B94B75EDB68D8FD639D72FC1474AAAB6A",
+    "metadata_key": "AE54A918EEA35A8FF008113B344C0707",
+    "section_mic_hmac_key": "8D07A0FEDA41154101D987AC882BE0C42375C3F66179A2260997983912026192",
+    "section_salt": "9CE7EBE57787FE3B841AAA34A9CEA887"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6D9C63CC15928B2584D3A469A65E0BE8",
+    "aes_key": "3571B4319B4687C0D5D54F436896C228",
+    "data_elements": [
+      {
+        "contents": "782C0F67D4BBA10130696435243010144820F4752910F9B0E3F80FC0",
+        "de_type": 381
+      },
+      {
+        "contents": "9B336B1421B796A9C8F97A20705F",
+        "de_type": 870
+      },
+      {
+        "contents": "9F23ADFBB8E3EE4C54450A49552A6A",
+        "de_type": 506
+      }
+    ],
+    "encoded_section": "799013F321877FD6CAD817E2C641F8A90FEF4C9110009A96FEBC9A8FBEA4A344561254552C7F90046293184DBBFB610A416EF1FA50075E891A3937FAB2E51B6F0812D0E3ED51EBAC6849CC78AD2B85DAC2992CAFF2D2D2908E1F5A90889CFC1FE1CCBEDF435FEA597C4E2A2C2D220E4228E8463755D57BFEB5EC",
+    "identity_type": "provisioned",
+    "iv": "DA7041AB2C2B7685E1DC21095428E0D4",
+    "key_seed": "839C80E9283189E3AB98E48862F375C4B87CFC3B6F6C044DB5E26AD4DE364323",
+    "metadata_key": "BBF2E5F0D26483F19588EEC82EDC6C12",
+    "section_mic_hmac_key": "12445B6BAD94883AC9E4DB8F94BA02D08DDB9F7A070EEB7D3A8A6FDC10F176E2",
+    "section_salt": "9A96FEBC9A8FBEA4A344561254552C7F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "35A8251868DD2E1A9194786BE8C64BFA",
+    "aes_key": "A7B21AEEA0C66BE702188CAAE0EA6512",
+    "data_elements": [
+      {
+        "contents": "A9055442F2B47596B0DB0A971C07",
+        "de_type": 961
+      },
+      {
+        "contents": "D71C",
+        "de_type": 677
+      },
+      {
+        "contents": "E57B64B155CF7527D751CC68B263A792C2",
+        "de_type": 265
+      }
+    ],
+    "encoded_section": "619013AA0300E2A8F8624386FC6A4F5F403591911000837E4DF997864CBF37E0B55EB497A1C490027D171341BA6F6E8007CEA0ABBF21B146571A065717806FDAD5CC16C8122394811D1EB1F4B25D784D9CD216CD06A40CAC8DEFE77C0A19BF542ECB",
+    "identity_type": "trusted",
+    "iv": "BE19F81834F18C01B380AA4092DE5F1D",
+    "key_seed": "5787FAEC4C0349041EE656ED1407458B8F07064FA7FF965C37E01938E0939071",
+    "metadata_key": "23C90D62E06A3A03EA5E4DB7E27387A6",
+    "section_mic_hmac_key": "790A1AEA80F909DB3A515737E1260748040994491F71C97E02BE9042B5F0FE83",
+    "section_salt": "837E4DF997864CBF37E0B55EB497A1C4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F3C6A0D85CF7280DA0AE087536D46D4F",
+    "aes_key": "714CFB9897FC29FC146F4ED1980F8A02",
+    "data_elements": [
+      {
+        "contents": "CA93EB016F5AB0EAEE15BAAF19508C09E9FBE3ABF0CE6DA662CDD7",
+        "de_type": 966
+      },
+      {
+        "contents": "AA7C1AEB498A8A539C7F9CA7C6AC",
+        "de_type": 924
+      },
+      {
+        "contents": "9A7BFF",
+        "de_type": 856
+      }
+    ],
+    "encoded_section": "6C901340616A3CEEE6E3DB8958540220AB0DF8911000D6C0D020C67736CA0DA95743E11FB3559002E77AB2D50E5622942872D90F79889A1211EA3DFD68974FD22077EF7E297B27655072A61CA8148751503D2F945419CC3A41D10116203246F7A29D557ACB20AFEC92FDC3F6A5",
+    "identity_type": "trusted",
+    "iv": "CFF129908DEBC64E87D30CEBD7CFB92C",
+    "key_seed": "E76585B665156041F17624D98389BC90CFB1F7B5FC98395CBB0C92BF39275F08",
+    "metadata_key": "11E5F0AD1D1064EE76EF482287716210",
+    "section_mic_hmac_key": "D388B45C5104F5EFF3114BFA514843F086F9CDD012E32ACB4322B3AFC3EF25F8",
+    "section_salt": "D6C0D020C67736CA0DA95743E11FB355"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "899E72C0ACE8467E62C1534EC6C7A9F4",
+    "aes_key": "0ED6FFDFAB0E1775C01399C65FC1EAC2",
+    "data_elements": [
+      {
+        "contents": "46E4",
+        "de_type": 164
+      },
+      {
+        "contents": "1CD5EB57C26AB946B644C8C6D2EA",
+        "de_type": 147
+      }
+    ],
+    "encoded_section": "4D9013D876C620764709BA76B867262A767E9891100003C6477E17249A35DB289D156146DCE19002C34E905787280A485090274A6BE1EB6BAA83C8A860B7E10EF6E68170CD6CD856D47F1B5212E4",
+    "identity_type": "trusted",
+    "iv": "9A9EC26A4DF843F67A50C2883B2049E5",
+    "key_seed": "D093FD917DC3D0AACFB61D214DEC5CD7E9F4D9D1B38A16DC4746005201209030",
+    "metadata_key": "47EF5956F658168934538B98AD8039EE",
+    "section_mic_hmac_key": "15D1AE58C9F76DD3D6AF7D332A79746DAC7CA69EEED1E03DE1BA3C2CBE6D0D34",
+    "section_salt": "03C6477E17249A35DB289D156146DCE1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "37D4F69D0CD26B40E94ACE2A5DBCCEAD",
+    "aes_key": "ED777D47AA2B1CD9A18A679A11D2D4BF",
+    "data_elements": [
+      {
+        "contents": "3A3396B74739FCE4",
+        "de_type": 813
+      },
+      {
+        "contents": "",
+        "de_type": 280
+      }
+    ],
+    "encoded_section": "4590131BEA8B2830E5C0EF21FAA31033A5E5D8911000795CDD085DB06D32AE5FD26F7BCDDBB79002B6A7C8FB0E06CD39246BE00D8F824C8CBFBE5FB5B4CC94298EEC5CBDF16F",
+    "identity_type": "trusted",
+    "iv": "BDB607DE3CD62030073D459C5B8D6C93",
+    "key_seed": "338B03B03A5E620E3B27EAF5E57D5A3E91B50113DC68FD76CCB906A0CD6AC15D",
+    "metadata_key": "C7C3232A78820948E56ECFBEB230CB6F",
+    "section_mic_hmac_key": "6A734BE5E220BD0FD824A54573671C3D15CF7B4BB57AA2B505EB6BF0B0CAC0D9",
+    "section_salt": "795CDD085DB06D32AE5FD26F7BCDDBB7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4DD5ECE3088AAB59CB1D292B33F366C",
+    "aes_key": "639007FB19AE47F1C559685FDA3EB75A",
+    "data_elements": [
+      {
+        "contents": "E88F621FE3EB583D38E8BAC78F77C628",
+        "de_type": 933
+      },
+      {
+        "contents": "75ABDDF8",
+        "de_type": 54
+      }
+    ],
+    "encoded_section": "509013AF1C7CA2B228255162CA076C8B11BE46911000F45D6C318697B0191B1D88F3CF9D00F39004ABE13C11D4EE0C8DB3480A7B4B3BDC25563B1C28D8665AD58EDF8794E2B9AF89F46772315982210EEA",
+    "identity_type": "provisioned",
+    "iv": "7178DC1EF12587D629C2D6FECFF095CA",
+    "key_seed": "98AAA87C26694BE9E3BBCC696C76246465B0239410B523EC447C9A2049D1EC0B",
+    "metadata_key": "A278B435B2A9CA7EBAD385FC6B7E3F15",
+    "section_mic_hmac_key": "80B3F75573897BDE6A79AF64C8FA3E66E60E12DCA0F934D92464B8FC037944A7",
+    "section_salt": "F45D6C318697B0191B1D88F3CF9D00F3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "98345469CAFE42F15D87F5EEFC770569",
+    "aes_key": "EAD0F193D218EF675EA19B2DAE377F02",
+    "data_elements": [
+      {
+        "contents": "AB6691F16BD89FBEC7EA564644B836DF20E3",
+        "de_type": 396
+      },
+      {
+        "contents": "33283B4AC99D1351B01D0FAC70AC124EA0C18806F4EB79A81DD0C7B7",
+        "de_type": 761
+      },
+      {
+        "contents": "338FA25539C9F603E8AA",
+        "de_type": 545
+      }
+    ],
+    "encoded_section": "789013E04AD2F52216D16070E3AE142996253A911000908F07CC93A0157CA88C95EA00D2F8B09001801529DCA17EFD27E94D8A309ECE9126B84DDEF670D9AE859FC518535A5EF9E512C84FCA40EA028006D89902575457662EEF326EC7A07B9169BF15231DBE29B408E134074E7A1037F445C293EEF0F50051",
+    "identity_type": "private",
+    "iv": "628570BB5423D437AFFAD6A68E7D7C51",
+    "key_seed": "D16A1A2DEF6A5A281D1345AE625CC996CE718409EC67F52C2126D4F4F35A240B",
+    "metadata_key": "5D5A62A4FC06971533C17C6914A2ECB1",
+    "section_mic_hmac_key": "B4027E120D33DDF70FDB320E58DC27EC588E7D0F16E413200A8A834D4FC06B6C",
+    "section_salt": "908F07CC93A0157CA88C95EA00D2F8B0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "473589D555027506C32625BD8CC7DEC7",
+    "aes_key": "3EEAA4B0A65FE6A149E92A3ACD460F2B",
+    "data_elements": [
+      {
+        "contents": "00706503DDE2E48069E553BA253443985B15A915D6536999F1F8",
+        "de_type": 655
+      },
+      {
+        "contents": "152C59162A8FD170",
+        "de_type": 261
+      },
+      {
+        "contents": "29121F0B063A6B6F863E730BE1563CE5136F4B76",
+        "de_type": 1000
+      },
+      {
+        "contents": "A4E52EACF159",
+        "de_type": 503
+      },
+      {
+        "contents": "986D5DEC9898E595883F738E6313D79A010DA5",
+        "de_type": 413
+      }
+    ],
+    "encoded_section": "9590132BFDDDC9034E622342FD8689E276F16391100053743B86B516991B130398CD526856669001C9112F3BEA177009F48C84164DB23C8A235D39B30B30621639A06493FDCA70371EF4670D5D7F6F35D41573DCA035DFA187060D4509A3085763A2FC46AA05E1414D3A83151E7E8268A1CF1A1F6453114622E36FC069C6FA97D4DEAC4F2BBFC0E2E066BE2BA08D102E0FF80C67AE64",
+    "identity_type": "private",
+    "iv": "F4CFB23D5B57AB5DD39B7FA98B5BCE5D",
+    "key_seed": "A949CA927245FE4AE45D4F369FDF339B2542427E268A92A4FB56D818E1585080",
+    "metadata_key": "2D5AA2AE17FA3B780595B442816D577A",
+    "section_mic_hmac_key": "5E2FAD4AD9AD36D0FEFEC43FA96CDDA06B95035C188A02188FA134AF1C039B35",
+    "section_salt": "53743B86B516991B130398CD52685666"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "25EFD74B18D28C38561611A4E0EFA653",
+    "aes_key": "D62A62981F5281FF40D4559D01F3D42E",
+    "data_elements": [
+      {
+        "contents": "29CD91ECAD1EEAA72B8343AC127EA910C60103006ECF8AB36941",
+        "de_type": 469
+      }
+    ],
+    "encoded_section": "549013834CCF10766629D4E328E20F100325A09110001875FF4F2F9EB5B632BA383003DE4C139001D4CD5795AC80238CEA4265BB4D2A4668F9569493BC5936F84442A51F9F93144DC7F0B9855D6E2D8892965D0D75",
+    "identity_type": "private",
+    "iv": "583AAA53E4CB858B5425E6CAA806020C",
+    "key_seed": "2FC71501293477514573A265C5C8704E9C86047A7A6B14A67EF489DF5844E0DD",
+    "metadata_key": "9CF9951B23AA2C216A88920C36927BDE",
+    "section_mic_hmac_key": "2DE14E1989C82EF73E9F57D5F31BF1D4C01B96488D633FBA7FD93C8F07DAE841",
+    "section_salt": "1875FF4F2F9EB5B632BA383003DE4C13"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "230C6C323653F615C3EDD59CA5C3E4CD",
+    "aes_key": "8DA0B2533F0BB0B636C0DD2C5F4C2325",
+    "data_elements": [
+      {
+        "contents": "0F06B38FC8A536260ED355C9FC9E14E7DDD7929CD568A0E2B11F4417",
+        "de_type": 196
+      },
+      {
+        "contents": "E9DAE7C7DE865122E920DE218A959DC66B87191B880164152496328A4D",
+        "de_type": 564
+      },
+      {
+        "contents": "93DA2F2DDF4E29DD44012394C9A9AC64405DFFCBEB",
+        "de_type": 257
+      },
+      {
+        "contents": "F56469A172DCCA67832689D1C2",
+        "de_type": 228
+      }
+    ],
+    "encoded_section": "9E9013D58191FEFB4A9B9BDA6B037A0CC63F939110007B2BEA4E28BBEBC044F1282B590D42209002FB5F97FE4F62B89E614F28D1CC810522FB81A03B4C526D66C7B23A95AC861BE8072D5AC673D1E91DDFF56B3354305C6C5798E51B4C34F3AA0B8E49179F988718FA0A500B2F0F1A369DEB3A2DB6E99799CBD3B9970489B773C2C41E567328EE044FEE336F9120673102432E3A80EC7306705CCD5486A3A1",
+    "identity_type": "trusted",
+    "iv": "616285E84578D5625166925EDFABF2F0",
+    "key_seed": "CEA74ABC6E8F5BC365B2A23575FBC9A5242A1175298E8D93900459C42D129730",
+    "metadata_key": "37E8237111A63B854880506BC5B086F5",
+    "section_mic_hmac_key": "3DAA034FE225951D1CCF0289F091B047D091F350A6566A0CE44A60152EBEFFE5",
+    "section_salt": "7B2BEA4E28BBEBC044F1282B590D4220"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5D324887E76C3F9433D2B4A42FCAF044",
+    "aes_key": "66E4331038810B466F236AF2610624D4",
+    "data_elements": [
+      {
+        "contents": "985840558092746F07B1",
+        "de_type": 498
+      }
+    ],
+    "encoded_section": "44901326F885F961FE74FFCE3BBB43648CB811911000D8A99AE153719865050D04CB7D1673FC900256ED4D9FF8B3A8B57F704B5ECC167466004EDBC803DF32767BA4885780",
+    "identity_type": "trusted",
+    "iv": "49465FE445A423A5A4D9C893C7124241",
+    "key_seed": "BB5DB5AE369B6C5D2EBCAA7A14B03F9A249DA93B87C24356475341E34CE211B7",
+    "metadata_key": "88F87FCEC4D05BCAEB97098A827FAA80",
+    "section_mic_hmac_key": "2B66622A6228FFDE6DBCE6808DA2A207F942EF38059457C1E84D49D65D5EA0EB",
+    "section_salt": "D8A99AE153719865050D04CB7D1673FC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "492310415125301AF370F3A28F99C923",
+    "aes_key": "3E60451A7487BD9CC8EF9CD117EC06C3",
+    "data_elements": [
+      {
+        "contents": "7E0B2E1CB803",
+        "de_type": 96
+      },
+      {
+        "contents": "",
+        "de_type": 4
+      },
+      {
+        "contents": "5FFD2C7DAB0C",
+        "de_type": 557
+      }
+    ],
+    "encoded_section": "499013A8190AECB7A7CAAC7A41BCCC1BB23EB99110003D9D5DA626D91FD8CB8910200ADDDCDE9001C4A2BBA08569798DA7CDD17B9434EFFDAB07119526363656E66DD52D79BFE6402756",
+    "identity_type": "private",
+    "iv": "C512212E4B03688C91E6742FD6CE85D0",
+    "key_seed": "303426E69CF0478D3546C376E523B59976BEECE4CD7E5D73A253EFD37AE59596",
+    "metadata_key": "2EE9CB59D9ED13C836389363377F0C10",
+    "section_mic_hmac_key": "177318DF2F5E18A2BA15AE658285E89541A870D219C47C5260C77D286E9EAE11",
+    "section_salt": "3D9D5DA626D91FD8CB8910200ADDDCDE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "34B38738AD29FF67B98A87A5E632B403",
+    "aes_key": "31A27BC1F826FB2A14BAF5D41AD7EF32",
+    "data_elements": [
+      {
+        "contents": "8FF21C1E9727057BF441B8845924AF2652",
+        "de_type": 561
+      },
+      {
+        "contents": "59354C8203E3D49D708164F64A8E94FD37DC4AB3170AF86EB2DE23",
+        "de_type": 143
+      }
+    ],
+    "encoded_section": "6990137AED32E0B427E327EB555684B103FAF09110009FC7D83B3BFFDF9324A3DD576C83C25F9004860BEA1F0A861519D2F64FD943CB247C301755CF3FC0F9688CC9C3A59D712C0A45DCBC0C4A4BACC93E9206E1A1F01AD375047EE9CDC415AACF23CED21082D0D6F2F4",
+    "identity_type": "provisioned",
+    "iv": "95AA62BEE82A7EB218781305E16CF180",
+    "key_seed": "EE9B03BA6F99F320443D9EC2D4080AFE8669D55E64A55476B910609E79804BE5",
+    "metadata_key": "791FFA37592A73FBE2748C91CBE5EDEC",
+    "section_mic_hmac_key": "B31DEDF27A541AAEB000A61976F06FB1137AB359B3D86DAC2E30C3DDFE8B85F4",
+    "section_salt": "9FC7D83B3BFFDF9324A3DD576C83C25F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6F1A5550F40245579FD1FEDB994C60E1",
+    "aes_key": "EF74CF6922AF88727876DD6180BADDDB",
+    "data_elements": [
+      {
+        "contents": "10F27CAB4FB6B95F77A5C6",
+        "de_type": 998
+      },
+      {
+        "contents": "7F4C192988A13A4E53C57A52F5DC",
+        "de_type": 961
+      },
+      {
+        "contents": "F676A115F3B1DD",
+        "de_type": 176
+      }
+    ],
+    "encoded_section": "609013305284C016C6D4FB8B85A6853EFE3BE1911000A883FB09F88AEBC1CC6CB4375B6F309B90027F59BF0ED26EFD7FC2826D3C353F894B923AAEAAF953CA9710D76864FF689AC4E3AB2109BD45AC5F1DD5578251BBA54D47002CF28B741222F6",
+    "identity_type": "trusted",
+    "iv": "3076D26E01CAAE164B6DD68DF2C98D6D",
+    "key_seed": "F7701383A99913E39E948F24FE4375388A477B5885BCE42E1136D694EC5940E4",
+    "metadata_key": "FCA9E9D4A7FC73EE0A84DD20EBFEFCD0",
+    "section_mic_hmac_key": "3090F43370303CEFE295DE610007E4521B9C61EDC8413FDCEDB1A1E827193103",
+    "section_salt": "A883FB09F88AEBC1CC6CB4375B6F309B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "91652221827572DFBD2DECCFDEBC0623",
+    "aes_key": "93D4594F6D83065E87736A4B1C8B5D90",
+    "data_elements": [],
+    "encoded_section": "379013CCA0DA07331E1D50F654EF152E8BE56C9110002EBA87F24986E786C3CF5E687E930F6D9001AF4C55F24D83258BC9CFC3ACE6DD4F77",
+    "identity_type": "private",
+    "iv": "7407BF39844950F7C02EFA0DB33EE20A",
+    "key_seed": "62C96793C0C0A1AD2EAA5D77B983C772D1117BFAEFEF6F1880D15A138CF02BA7",
+    "metadata_key": "493DA0C9159C6E0A451EF59760E8A037",
+    "section_mic_hmac_key": "59E78109732E338964B9D72691182ACCE1F13B1FB2AF815D0D9E107BDA483E99",
+    "section_salt": "2EBA87F24986E786C3CF5E687E930F6D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49A2D6913773EC08C26776F5D82EC4C9",
+    "aes_key": "61B9D6C9A96D8195A2448D9A4A9FCC50",
+    "data_elements": [
+      {
+        "contents": "9F6F",
+        "de_type": 985
+      },
+      {
+        "contents": "585537C36483C7D6D71A12EF0E",
+        "de_type": 650
+      }
+    ],
+    "encoded_section": "4C9013598C8EAEB8D51BC3FE88DAF09FB46EDC911000A381CE76EA131827A0C0BD7720D36AE59004DCC9D1BAB25D0CCBA65658980D6DBE61D2F02E7300B983FD2D944B9BED0E9ACA1AE77591F1",
+    "identity_type": "provisioned",
+    "iv": "DB8334CADCA491D2C65763FED225BEB7",
+    "key_seed": "076B4CB28DFCC1192ACE62FD2078B9D7A719A4FD023E5C806D60464AD004F54F",
+    "metadata_key": "C8B3594B1DE8BCC1698D794EB9159D32",
+    "section_mic_hmac_key": "05F49F228F859D213855BEBDCE762E3297CFFD51ECBB2088CFD8DC8E90E0F1B0",
+    "section_salt": "A381CE76EA131827A0C0BD7720D36AE5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FDB28EC49C232187F4B313D338CB401E",
+    "aes_key": "CBDD90D1BA86EBD8B627412AD9097632",
+    "data_elements": [
+      {
+        "contents": "67B75AB60CE23E879336887B5D9F5775A2078C1B2BC755B1B40901A14D7C",
+        "de_type": 482
+      },
+      {
+        "contents": "CF980B5189EA458B3E9EEA80758E9FCA5195E09F06",
+        "de_type": 167
+      },
+      {
+        "contents": "5B619E636C2E",
+        "de_type": 759
+      },
+      {
+        "contents": "0A408A22E62FC9245250A072273ADD497C300228",
+        "de_type": 387
+      },
+      {
+        "contents": "94",
+        "de_type": 481
+      }
+    ],
+    "encoded_section": "949013E4CFAF2BE466963149A6224ABCFB0C0C9110006886CCB0F507AC5B4E3A33B6F31D03EE9002F2392C3A765BB4AD1BAA31BFAC8FA8B5987DDEDF99E0B1F4AB5BD84ECE46D3701BC1B28DCBA2EA465B7F4EDD078FE699CAF1E3E9C2EACD89849EDE3E13B4E9C69A2381755448C9E0113843A4A22BBFFCF7C11BB0EA70C08A606952234B4B6108EC83040C10C6DAD374A5F05EDB",
+    "identity_type": "trusted",
+    "iv": "C028C5B6F9A36584545FB179C379BFB2",
+    "key_seed": "F6F00C19B4792C24EEF3D27D69993076230247603F817E90B855099E413F2B07",
+    "metadata_key": "67746BF043260C6C49EAA6197157A491",
+    "section_mic_hmac_key": "61E943AF30DDED5473FBA40F5118C7C2F350103F84A444FB4F7550667228977A",
+    "section_salt": "6886CCB0F507AC5B4E3A33B6F31D03EE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1EBECD2EA3A8364948252CDAA5B96320",
+    "aes_key": "5C07BF2012F7917650BBA25DD8F336CC",
+    "data_elements": [],
+    "encoded_section": "379013BF51B7882CB99C30571F24D1DDD05BAA911000E3F0D6C54BC850F9A48E98054374ED5F90020F71BA6B33808FA225AD2296003121C5",
+    "identity_type": "trusted",
+    "iv": "BC7CAF3B06416475990D575B2B3AFF29",
+    "key_seed": "D140C25596258623F7D0A978CFB6875793307B7210A9965CF4A09927E23848EE",
+    "metadata_key": "A62C713646FA57E510CEA5E76377164F",
+    "section_mic_hmac_key": "B606AF244BA59DCBBF6929DDBC3EF9B7FA0A968EE4958F8D628946460E0B574E",
+    "section_salt": "E3F0D6C54BC850F9A48E98054374ED5F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "34B8D0AA1B6076CACFCD67EAA56205CE",
+    "aes_key": "D18687CE96E0D9B21847502E60CDCD25",
+    "data_elements": [
+      {
+        "contents": "53493339",
+        "de_type": 153
+      }
+    ],
+    "encoded_section": "3E901369FD29BDD5FCAE64EAE91DA4C76BE48D9110007999D3B31650C18756A1D319773212AE9001275F57FE6AFB60B6DC87B624099A9B24569491F5F49121",
+    "identity_type": "private",
+    "iv": "5564C020A460380637EE5661E0F18465",
+    "key_seed": "51CD66A9B8455A1C61806C6575710F29B99AA5C08B5FB6883E2656EFD4EF4B98",
+    "metadata_key": "7A089FA25B6301D9D8413F0AA49603CF",
+    "section_mic_hmac_key": "B6E66D366DD2C413AA66A99E8CACDAA9761BA51C95898458F7B4D37988F135E3",
+    "section_salt": "7999D3B31650C18756A1D319773212AE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA23F3D623563CA554B644B8944836A5",
+    "aes_key": "952EDF3A3A92D45B9DED25777352BA23",
+    "data_elements": [
+      {
+        "contents": "A0A99C479635E3819E8702A34BDBAB13",
+        "de_type": 852
+      },
+      {
+        "contents": "E0253587563A4C07",
+        "de_type": 385
+      },
+      {
+        "contents": "1FF104D3D8A66917AE8B770463E08516393A6FE29A",
+        "de_type": 654
+      },
+      {
+        "contents": "DD0D3D55183C193476966F12ABFFCF2C65AE5E9000E57E93DDBEEA6B47",
+        "de_type": 807
+      }
+    ],
+    "encoded_section": "8D9013E81D950CC4779370E13B06AC5F9BFA749110003F78335FFD99A2E7A40D78D6314F7713900211BBD3B4F8A56E26538F9FAE57F0AA9114CC34411E8D4408B53039E144A6F0F6E3FC4C4E32563A97C177FAB41C6AB5D6ED9EBB41E98627ED5DC9B196432ED1C0036FCD729E492A25D4976723C777333C52ABDDC04D9E7F8654ABE7CBC319DDA5BDBFC37DF51D",
+    "identity_type": "trusted",
+    "iv": "2A0B516ECD2E3ED9E8491CB2A23BE7BE",
+    "key_seed": "9A76DCD6488802F550A1A5B2D68A21B45850BDB5D04F6BFCE6737EE9065459B2",
+    "metadata_key": "7A82BA273F40F1D7147503A0521EA07D",
+    "section_mic_hmac_key": "D0071AD96C81ED47B74B6141DD9BBA6467D69ADEE3C4B23556525ED204FE5450",
+    "section_salt": "3F78335FFD99A2E7A40D78D6314F7713"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EBCA2068CEB2497377233BA55556143A",
+    "aes_key": "B7CAB93856D36C4234AB9B7E3FF2C2CA",
+    "data_elements": [
+      {
+        "contents": "B906252C6FF66DCECE5745A021B149F9AFDF854A258D184B",
+        "de_type": 9
+      },
+      {
+        "contents": "113F12D313183B2C0F0080EB04",
+        "de_type": 401
+      },
+      {
+        "contents": "33B9E9DBD10F",
+        "de_type": 838
+      },
+      {
+        "contents": "EDF90FB1E1E1D0B56F88F8E52E9F28",
+        "de_type": 649
+      }
+    ],
+    "encoded_section": "7C9013B26979B83B32E69A1562F16DE75E14319110006B6BC738CBF9DE91F89702F34C609C239004E53E0A53B0F500690D822ECF8B51533921124980942C4C52D2BDF88BE78D4CCCE1F7B9334FE9EF5FA7846D447BABD7149F092C75AFC759AA705A511848528674C4A75131D2B0FEFBDA757DEF4319F405DAC80EF1D9",
+    "identity_type": "provisioned",
+    "iv": "84465E974A7F46A57204E7B87ED0AAFF",
+    "key_seed": "E00C8B52A62D38CD16051B45E43ED15D643A93FD6F673B03448250D608D10535",
+    "metadata_key": "3E2F563D9D36B4AF7752C0C19548A5AF",
+    "section_mic_hmac_key": "5FA9E23CC79D9776D137B5928675B099089A5EFB01BF98F6687C66BBDB3C334E",
+    "section_salt": "6B6BC738CBF9DE91F89702F34C609C23"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "246DD4A6A94037FE404D0A0EF4606013",
+    "aes_key": "B80A4E7A36FECD53741D1832DA6135AC",
+    "data_elements": [
+      {
+        "contents": "FF7E4C70C4C530F2728E854ECF67475F62905652931C8B7D95CE",
+        "de_type": 867
+      }
+    ],
+    "encoded_section": "549013AD258AE82CE83D89E404223234B3AC95911000D4C424C2D921D1248156D8D5AE0B40A2900108EBB7D35A6FB92BBAC4DFF57F860E87A043D0B90A06B94C6282265F668887704AFE03D7D6582F0816A5326028",
+    "identity_type": "private",
+    "iv": "2CF2A660A004D8D204498034A9C28C04",
+    "key_seed": "03982AE5B7459AED3DF2C506B459A366A17E98F81BD7DF3BC27492D0C60AB88E",
+    "metadata_key": "26C5F75F61DBD2E1E014D7EBD5259EDD",
+    "section_mic_hmac_key": "CAB0A73023E9B8CBDF76C30DFE90FEC62423FF1328BB239C7F7064E49255464D",
+    "section_salt": "D4C424C2D921D1248156D8D5AE0B40A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "14369DBB0C59ED5213EC3886FCC36B32",
+    "aes_key": "3BE5F37F21F48652E478248A61745106",
+    "data_elements": [
+      {
+        "contents": "7B5BB22FBEBF31",
+        "de_type": 256
+      }
+    ],
+    "encoded_section": "419013E3C20D9A0D8CFF73CD40DC2EA192F87D911000E26F9F9CEE62E88574F9614FDF510F5B9004BA4F3353BF508F98B6B06BB3B36442AD6F00882B337E8202F717",
+    "identity_type": "provisioned",
+    "iv": "16BB18DA1471AE79153EC619BC92D006",
+    "key_seed": "E351CE8EA42F777F5490CA51A37836EFFC360847D086D0181F34C50B48A84CC3",
+    "metadata_key": "17170F758D7A1BF5D584322C73297E1C",
+    "section_mic_hmac_key": "5BBECE4B2E6F573B52BECA481ECC505F4C38A17657A5CC75B418754E5D19B4D7",
+    "section_salt": "E26F9F9CEE62E88574F9614FDF510F5B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8C8E6A84C29BEDCE24FEEE95F310A81",
+    "aes_key": "D0BE22BCB73BD71C3FE37C497EE212EA",
+    "data_elements": [
+      {
+        "contents": "95",
+        "de_type": 110
+      },
+      {
+        "contents": "1CA6BD05453648BD3FF1",
+        "de_type": 606
+      }
+    ],
+    "encoded_section": "4790131C7F79B0F1E2086443460FE2AE232E95911000FC13C4CD5778C7E95DDB96C09062B64E900238A595E5A0F6964E89CDED56CDA41DD8391A91782768A7ECD119D3C12A98E0A5",
+    "identity_type": "trusted",
+    "iv": "2E84FA52101610AAD88549E7608A3849",
+    "key_seed": "A06EE64788DDE83EB17B56B49A8EC7596A559E9782A491BD87861F63D4EFCCAB",
+    "metadata_key": "B6B79621B08ABE548DB74B2C2910B691",
+    "section_mic_hmac_key": "B51522E30B6E35A9C74467E74B32E6319A059BD8C2B60343FE9C6DAE4E881613",
+    "section_salt": "FC13C4CD5778C7E95DDB96C09062B64E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1961134C789B5EA15AEFD01B020E6C6A",
+    "aes_key": "AFD569DB55FEE7DD324325167509AB92",
+    "data_elements": [
+      {
+        "contents": "ADE5",
+        "de_type": 666
+      },
+      {
+        "contents": "5A78B8137C56F49AA2A402",
+        "de_type": 744
+      },
+      {
+        "contents": "CD1FEAFD54E39FA95E0C492E25",
+        "de_type": 758
+      },
+      {
+        "contents": "5D931A41C7E445F6C6EECE448FFC54839DB9F5D1F854D9",
+        "de_type": 74
+      }
+    ],
+    "encoded_section": "7390131DD3C5EF126658F5E2DD60B357AEC97B911000A97D706FAD3538F852E485B8E91B9B4D90029973B762AC2D40747B49B7DF31B7BB0071DA2E4F5B4E371E3745A05FA602B3872F4DB9F9805FCFBD6E9E9624E8B05CEE407A25EE98E0865FCD11C08E04F706C96E673BF69E353B692B771DB8",
+    "identity_type": "trusted",
+    "iv": "E1BA0D8B2C19F6336353D6019F0D8D59",
+    "key_seed": "7B0C9CAC1C6FB86BE8E0634E24CF942B571EF10B5BEF56A254E269F931D741F5",
+    "metadata_key": "61B2052FB3E72679CD7AF270FEF714DD",
+    "section_mic_hmac_key": "66217CD102C260D78F693E1E5C070009ED91981060E8554C670B6101AB87D67E",
+    "section_salt": "A97D706FAD3538F852E485B8E91B9B4D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BE37D2BF26F95DA0420AB793F2FD51C3",
+    "aes_key": "94CAC64FAF0883BC5A905AB0D27402CD",
+    "data_elements": [
+      {
+        "contents": "45C8134F7E3A2B0952A12FA06074C1F55E228C",
+        "de_type": 641
+      }
+    ],
+    "encoded_section": "4D9013921E779C25C2F1969FE5EFE492EF05F49110004857A1A663E286BB45649A4E2A95E4C090020E887CA55C65C8F304D7367060AB2D4C08538F57B150310D0DDB8FE2BFD75DEE9C4E0B2D5201",
+    "identity_type": "trusted",
+    "iv": "3F059AB52F8DC52A14C635AAB44A7A58",
+    "key_seed": "DF5565B416A2E7AB41E62C7E2DF6857DF2E35D5EDC4AD2A070E168287A20836A",
+    "metadata_key": "073410FCAA7FABF86F28C9921B05AD72",
+    "section_mic_hmac_key": "A93B302F32C8F81FCEA9AF1011CD9F657B33BE4090CC7F351E0AEC32BF3C4EB5",
+    "section_salt": "4857A1A663E286BB45649A4E2A95E4C0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "771F89E3B46AC6611C69451AD4EDFC64",
+    "aes_key": "F915BE6D3B134480D0A5D7455D4BFE4B",
+    "data_elements": [
+      {
+        "contents": "EFA11DE2127527F334FE8B3458C817A05EC0A227",
+        "de_type": 784
+      },
+      {
+        "contents": "9C33AA668F95CC399ECE329BFDEEDAE8CD1599BFEC83C51738",
+        "de_type": 704
+      }
+    ],
+    "encoded_section": "6A9013B37D84C2D193043679822C766E68B552911000C913144F7DAFC50ABA66049304D883B3900169CD7BC8EC1BF46A0A81358228CA475A03C7730C36BCF2A69161E8AFFF092DDEA4A8B97783C80CB47CA5E777C43A6C840FCB619B23919CFD33FE5DA1EE4CE37F03875A",
+    "identity_type": "private",
+    "iv": "8ECB870D9F4F3DF7E0F61B0F37FAA178",
+    "key_seed": "8A62A2DECFA4345C616E196C18739C2ED2DBEFCF45BFCD3A68D4BBD673ABC400",
+    "metadata_key": "30BBDD7957FFE92AD9AC8F4D638186FE",
+    "section_mic_hmac_key": "57A0D17FD7D3C257222D2862C4EDA3EF89D525634689B41442D4F408940A76DB",
+    "section_salt": "C913144F7DAFC50ABA66049304D883B3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E862AAC7000736B663C508376E8BD3ED",
+    "aes_key": "26BB6FAB1BF2E0042949DB8877820B26",
+    "data_elements": [
+      {
+        "contents": "402462632AADDD04C6419557",
+        "de_type": 818
+      },
+      {
+        "contents": "9E6730409FF8",
+        "de_type": 605
+      },
+      {
+        "contents": "F47F7D404EA0D495FF62A49520",
+        "de_type": 873
+      },
+      {
+        "contents": "287092DE18F81EA128A63774FA885821AE34DF",
+        "de_type": 903
+      }
+    ],
+    "encoded_section": "75901340D2D16C893F60F75377B5BC6D7C15799110008CAF5A78B1E6790F346DB14AFC187FC190028FDC753F6FDF59AB4C30DA74B57848A69A5DA9DD03C4F8069D71CCE6307E698277D98C7C83A4DD5E162C542D51E763C65B88B7F9082AA40B37D55BF387851F2EF0C0124D81C610962905D4022114",
+    "identity_type": "trusted",
+    "iv": "3E1E75C62AA622FD5D532FA03221A5E8",
+    "key_seed": "89112D0AB38C09870723291EB34F41CC1276649D22EC916559C37E5ADA6BC495",
+    "metadata_key": "742683BB2FE3A781C335B64655BDE1F7",
+    "section_mic_hmac_key": "F1FF987DEF82976AE3323B0794E8B55DAF78097FAEC13971E2DC110033ED4B06",
+    "section_salt": "8CAF5A78B1E6790F346DB14AFC187FC1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8E2730566E4C094460D3430F556F601C",
+    "aes_key": "DD80F41866B5C2305F7EDB83DDB2314F",
+    "data_elements": [],
+    "encoded_section": "3790135D8F74283C3477E5A48A53983576A3789110005962F214FD66C62FAFD7ADB0449C91D9900101D4C5113DD0A160D67C7694A365EA98",
+    "identity_type": "private",
+    "iv": "BF345DAE8603A50EBA6E1F53D639EBA4",
+    "key_seed": "7EDDBBCA0C3D3E70E8A1AE0D1537F660F8E17DD7AC70E2B12AD710AD270C7499",
+    "metadata_key": "49E7FD99EA8806E02F7D9266C51E58AE",
+    "section_mic_hmac_key": "FB24F853F734086D0360DE9B5036D6C9262BB446F78E3E8594351A966A95FAC5",
+    "section_salt": "5962F214FD66C62FAFD7ADB0449C91D9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B07E55E2700925068EDB49793A5FBC2E",
+    "aes_key": "00FA5878B9B5C9C67B6B78EA6F7C987E",
+    "data_elements": [
+      {
+        "contents": "E23741BC5357278D7F1FAF6FD06F",
+        "de_type": 381
+      }
+    ],
+    "encoded_section": "4890135E703F79C8BBCC5412BB7F51D7C65ED7911000123652CC63D81642784356825AEFA5149002B8471E8B3673496EA7D67B901D2A0DF2607B9AF1C329F0F716E0D127A22EB3143F",
+    "identity_type": "trusted",
+    "iv": "1D38B3322CD6A4B1E5DD0626D6B3F4D5",
+    "key_seed": "C0F3DDCA80EB2A1A1BF349A2CB48E9EDA04153DAA1DADD20C760C5C4E712D1D2",
+    "metadata_key": "657257C54ED238136FB1CD0F38189EA6",
+    "section_mic_hmac_key": "83CE2AA9DE2D247CF7DDD33519F40F49C6672DD7B68C321153C59501E7527226",
+    "section_salt": "123652CC63D81642784356825AEFA514"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F0B2624C966B5ABB55D185559CC05BEE",
+    "aes_key": "B0CC1C99F199D7B0DFA6A8818D97E3AF",
+    "data_elements": [
+      {
+        "contents": "F8E673AE46653F33686B67CF9641406F176FD36E",
+        "de_type": 534
+      }
+    ],
+    "encoded_section": "4E9013B619CC5D111EE3DD731057171A8E147C9110003777191AEC924C44BDB4A82B1B8CF55990044D4549D7A1B2AB4EB43666D6E04C1AB21F3053ACA9C3C8A8EF4F34DCD75AE8E3443C0BCE6FDE25",
+    "identity_type": "provisioned",
+    "iv": "9CAB7FD16B0FBDA87A216F5BC3C64D84",
+    "key_seed": "D389626DA719AB4CF557F675341E1E959782CC0A975BABAEA6E7B6F106105786",
+    "metadata_key": "CEC5D039323AB0A6EFC0871786DD4B9D",
+    "section_mic_hmac_key": "B2FA1282A7DD0C829E6BEA74AD23B119DA99F144359027FAAAD3BEB2E12AA1E4",
+    "section_salt": "3777191AEC924C44BDB4A82B1B8CF559"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D709C7EFFF43F8B5F50357511634199F",
+    "aes_key": "D9BDAB1A62CD59915C6D87AFD81DCC66",
+    "data_elements": [
+      {
+        "contents": "FB75717581E26ADACE888FC7B65251F8ABAC3C40613A",
+        "de_type": 775
+      },
+      {
+        "contents": "1764F1",
+        "de_type": 536
+      },
+      {
+        "contents": "30EC19D6A92E42606B66FA4436A8BF35786D",
+        "de_type": 154
+      },
+      {
+        "contents": "491A5D8D776B0370",
+        "de_type": 563
+      },
+      {
+        "contents": "1A2C2252D95ECF1233A5A83D20CE56501E741FD8A3A1",
+        "de_type": 74
+      }
+    ],
+    "encoded_section": "8E9013E6FA247F24A139082788D9F9137009EC911000F52EC2909102AA8CD7731AFB755087CF9002A6FA67CF1B1D109A5BF9A45AA25FF44E68CFA66213A90B891313055BAA791C98EA2450AD923CB7A039FB8DF6A1D6F99F7023386BFCE77936BE122B9D9DB17353689C19177F07D850BF2697B3FDF09D4A3C0A4EAEB24D9E147AD481667EDE2C323CE7607A3E31D3",
+    "identity_type": "trusted",
+    "iv": "1326B2D61CDFE279821BA574CD22D395",
+    "key_seed": "E23E916F47CA7077773636B248F20DCC8B3570F5B7035886BCBD4A4C6983225B",
+    "metadata_key": "51C25C132D519D0B8A3D62697731A46C",
+    "section_mic_hmac_key": "AF5C6E5D054F422A1958AF447AA500C6695FBB24A28A30F1AD85898A960C5D6B",
+    "section_salt": "F52EC2909102AA8CD7731AFB755087CF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A90C5F9A4D5EE8C0F093DA60D34E4F7A",
+    "aes_key": "5BBDF9E43276717F469C46331CCDBDF2",
+    "data_elements": [],
+    "encoded_section": "3790131EDB1EE9AAB1D9913865783E4ADD8EA891100068D0833BCDA158BBC5B7486992DFD73190010C8E5201A178300C0997D19C63660359",
+    "identity_type": "private",
+    "iv": "D037D4F2047D995CBB869FE4C0AFB002",
+    "key_seed": "2222133F9A08B0B6DF5DE67AA09B19BBF3279767D9E924533FE77A3E681870D5",
+    "metadata_key": "3527338EBB73E631F165D4334A5845AD",
+    "section_mic_hmac_key": "A4C47342B039235D55E3BFA54E273BD3C250C2B3A9B8C60F846450FDC55D6C2F",
+    "section_salt": "68D0833BCDA158BBC5B7486992DFD731"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B01C0A512EF90678274BFCFEB65B9BFB",
+    "aes_key": "FB0A68F0FAACC559B8B7CE60692B5578",
+    "data_elements": [
+      {
+        "contents": "D1BD",
+        "de_type": 244
+      }
+    ],
+    "encoded_section": "3C9013E9A1064EF69CF0E99BE8718C433CE4039110009532E764C5200635AD10A03DC30287399002DACB0D8438EFED4CD36A27C1AEFDFB48627927EC4E",
+    "identity_type": "trusted",
+    "iv": "36F33FE9F30FF5F345261E94AD27670C",
+    "key_seed": "A95137212D3A3C03BD4A78822E2F55955D833BA2AE8454DA2EDF749F06DD0E19",
+    "metadata_key": "98C80C93560E9287602B9DC167933921",
+    "section_mic_hmac_key": "1E0A6D7D2E12C5E918490B41A8D0B2F1AF8CDDFCF7D968F507BD84B5028B34C2",
+    "section_salt": "9532E764C5200635AD10A03DC3028739"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6EEAB27FB59D9E6CC29C4A77DDA80073",
+    "aes_key": "E272F73E7FF2C352CB16961A117DA4B8",
+    "data_elements": [
+      {
+        "contents": "AC9F54867C2D3A343EE15B46BB21",
+        "de_type": 920
+      },
+      {
+        "contents": "B21F47CC9AE7F415AC85AD33E360",
+        "de_type": 3
+      },
+      {
+        "contents": "A4F7ECCEF25FCBB7DF7C",
+        "de_type": 251
+      },
+      {
+        "contents": "4AD51198F063055EE851A62002E4150C537144FB5C1D1A",
+        "de_type": 918
+      },
+      {
+        "contents": "6B78A9AABA9F",
+        "de_type": 742
+      }
+    ],
+    "encoded_section": "889013985769BEEFB87EFAEFD9016724CB70209110007285FAB75391A148A7EAF2CDB3E7312390015929069EC6D45F3249513153B9AE3CF8BBC891ABC84001532CC0BE7F9068D906C3FA96D915DEF7F6CCE423D22F23F98B6F62CEE6A6206265707AA7C191231B94222884B904BEDC7269016B982B57BCAC107CC419EA378A2FABAB9A9AF413DFFAA8",
+    "identity_type": "private",
+    "iv": "2D1CFBB0145D7E9FE2E12C8E060834A8",
+    "key_seed": "2E8DB347C722FE8FC819707AC6B1D9F1244D91CD7B7A76E35E379F17DF92018D",
+    "metadata_key": "90B7D0F0D7AD2041C06A6F07D4C12DC2",
+    "section_mic_hmac_key": "903E4F3ED660355AD0FDC44DCD556A5A325BA002E430C9015D43495EA3ACFA24",
+    "section_salt": "7285FAB75391A148A7EAF2CDB3E73123"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0B34E362BE1CCA7EA27E689A78185921",
+    "aes_key": "0B25B59E48937801A1B8B2E567E38A58",
+    "data_elements": [
+      {
+        "contents": "3AFF6623B18BF5A2FCAD751E561111AABB6A6BB5F6F33E5D",
+        "de_type": 901
+      },
+      {
+        "contents": "7E6522479D7F",
+        "de_type": 337
+      },
+      {
+        "contents": "A1DA1D6D618A",
+        "de_type": 221
+      },
+      {
+        "contents": "EE348B17E8A41816E716",
+        "de_type": 18
+      },
+      {
+        "contents": "F96BBF72D4138318",
+        "de_type": 639
+      }
+    ],
+    "encoded_section": "7B9013F45B179A1FF35CAAE790906F2B6B039691100014D27591E7A5B662518B0D93211411239002FE9D30D12DAB1418665668DA1CB7F5EC4DAA9CF88CA252CBEAB6D02BBF81945CB5FDB217EC422556D09938E338C8438632BBEE86118F54D7FDA189CE7060AFF1E279D7FC726EB59F1D74CEE318348F248B0A9D77",
+    "identity_type": "trusted",
+    "iv": "41224E5FEA506EA36F51CE022F3ABB1A",
+    "key_seed": "8CEDB96BA8CB14FF94B7C7A3A37A3864C597406E194D69FCF5A871FEAA16CECB",
+    "metadata_key": "08E48EDD4E12AFF47F8AAF55C517C8FA",
+    "section_mic_hmac_key": "2463AF9C4F677BD099151DF4759A4F3632D51F1C41BC96E97EB4476658F3D6B0",
+    "section_salt": "14D27591E7A5B662518B0D9321141123"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A904E6EDDC39B1F3213F1D74FAEBE57B",
+    "aes_key": "AE2236A355CAAAE9D7044AF1B9FE08B4",
+    "data_elements": [],
+    "encoded_section": "37901350FA595EF5F19AA58600FA8356264FC19110007A69E35A44477408600F40C1EA6020F990019BA326E5C0DC4D3DA39BE3EABA175E37",
+    "identity_type": "private",
+    "iv": "05CA9ACE5528AF680023C92BACAEE8D8",
+    "key_seed": "5038A07C7783575EC758DBFA22B5B0C961C9C7BACE1AB44549C547DA05167B2A",
+    "metadata_key": "39CEC4870B31445FF870008CBB598309",
+    "section_mic_hmac_key": "00277572EF8546C2B9D70D0E7D668FD59FEA252347333A76B0FD6A353830BD03",
+    "section_salt": "7A69E35A44477408600F40C1EA6020F9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0E75F1D12F3EF90599341DDCC4E6CAF0",
+    "aes_key": "C63FD8AF5CF7A9B46934298ABBC00693",
+    "data_elements": [
+      {
+        "contents": "E10020BD5E92D8B6D3ADDC0232197F7AD8EA8B10F82DB6",
+        "de_type": 94
+      },
+      {
+        "contents": "9B56332DD723E56CA51F89D5FD126FD40BF6953679",
+        "de_type": 255
+      }
+    ],
+    "encoded_section": "6890138541962B9DAD2E109AA523E949E8D3B5911000C939914DDC703A7FBC857AFA6C1A94369002AFB0809D9C92645644E0A2276F90707E45256A92643432D9288702769AEF6AC4D0C778159A5B4AA0531C612940DE6D832F64DCF9A6EC457C76D3CF42FB5ACFB3B7",
+    "identity_type": "trusted",
+    "iv": "864721546276C7A96CC880DBF5B8DC7B",
+    "key_seed": "9D096BB52548302F9A0F8C6D2DDF1601F2E96F799FE76187DFE2138E7A3FBE4A",
+    "metadata_key": "81C35203EFCFCBE083726B15AC9DC275",
+    "section_mic_hmac_key": "6CA85DEF3BE730365475A93E71330031A6DBD9E48E04BB295FDA5321F496D8D4",
+    "section_salt": "C939914DDC703A7FBC857AFA6C1A9436"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D007D878C6FFFACE78778BC06B98E8D5",
+    "aes_key": "8C1265F1ABAC004CA2D681256B5C502F",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 734
+      }
+    ],
+    "encoded_section": "3A90136B53F00BC73427570D56B25245E31E709110003F1EA18FEF5037CCF30402C46130A70F9002E563FA84C94D3ADEC61DCE418FA76320E5BAAB",
+    "identity_type": "trusted",
+    "iv": "C892BFED70D002EBDCA25750710BFE76",
+    "key_seed": "C4915C71ACA0B455710629B063B5D9286E2CED111FA1C9D638C7069DA933F2D5",
+    "metadata_key": "B44812E7A415896300387540FA9C4DE8",
+    "section_mic_hmac_key": "CF8E967F00EBC62D8729A9A1C4AAFA3288EAE5ED966B12953837CE736FCEF820",
+    "section_salt": "3F1EA18FEF5037CCF30402C46130A70F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4C0A0A8717305E60D1E1F4EDACB40F1",
+    "aes_key": "B64935A371108F799E67FD260F6FBC97",
+    "data_elements": [
+      {
+        "contents": "BC6B8FC4A146298C2C7C4C04B0BCA9",
+        "de_type": 256
+      },
+      {
+        "contents": "A3C4D6D6",
+        "de_type": 148
+      },
+      {
+        "contents": "82ACEC78D07CA4CC55D05CA5455FE192",
+        "de_type": 755
+      }
+    ],
+    "encoded_section": "639013159D08B00F5A835AB8977FAC857298BF9110009B3429DD955B53030DE7A0949F8051C590019BEDC8B153588FB31C3D7C0B8EB3B0876208647BE21E2AFCC19CC883A03E5A42636CE85778E8D0D7ECAC63B1E5AD97B095EB538ED53C0F20E31A7B5C",
+    "identity_type": "private",
+    "iv": "CBC6CAD2BE51F64BAC34C059A1CDBA3D",
+    "key_seed": "1B755890B9282E3D75A62CF30D8B507C526AC4D69A87DB688EE1ADE45E6FE64C",
+    "metadata_key": "F1C7FA9D59151B942260D9095ACB804D",
+    "section_mic_hmac_key": "8B88E568964992FFEA8B172CEC92CF35A09C17DA53E3B6A4178F30C69E30AC94",
+    "section_salt": "9B3429DD955B53030DE7A0949F8051C5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "46D9D063223E48E1437D30D40B5753F8",
+    "aes_key": "F648B73CE969976B039A16A28433F333",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 181
+      },
+      {
+        "contents": "4E76A9FE722A",
+        "de_type": 265
+      },
+      {
+        "contents": "8CC7337D6BB03B7659C537AF883BA4CB5A6831CFC821ED8F",
+        "de_type": 571
+      },
+      {
+        "contents": "61137B10A9EB95EC8B9988C92C8AE58084962EA4EB8A0DD54F4E28AF82",
+        "de_type": 963
+      },
+      {
+        "contents": "F90154329E618F408A44",
+        "de_type": 319
+      }
+    ],
+    "encoded_section": "8B901349AA55BEBA93CB2C7A54840B9FBB35CF911000FDB1B9359452E3E2CEAC0DD0CDD50EFC9004984C75297EBDC0AF9A194C52F8B51C4E091EFBBE21423579FDD7E020426A58EFE96C0B50D4FDE6835CF20CEBAC6A24718A4423E3420765508987C19C056C8E56231261FE9537C604057D374C7F21B3C7EF84FECD99476B2ED180E4B2E60C0D066F71808D",
+    "identity_type": "provisioned",
+    "iv": "B52F5E947B987B2B1BFDA86CFBAEB325",
+    "key_seed": "71264001CD0F41F3851E55A3694A78A3503C5E9FE5A0B3B3B7AB8D502E49E667",
+    "metadata_key": "85510A6F5299C7CEB851856A36EC426D",
+    "section_mic_hmac_key": "194A3B0426B099DD77F0381EA83D71887298EF577A42D30518B18C7A34B51A07",
+    "section_salt": "FDB1B9359452E3E2CEAC0DD0CDD50EFC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E0858ABAACE0527B975B26851C8292C8",
+    "aes_key": "CDF94C859322D6AA6A30EFE4D2038652",
+    "data_elements": [],
+    "encoded_section": "3790138224408F0C54B5D42BEE2FC498F3011D911000DB852F256100992EE97EF0F6F931193B90049FD1BC537CFC7F362C6398CE8C7746C0",
+    "identity_type": "provisioned",
+    "iv": "D19FDC0000D6D76E0CE605C96FE3ED88",
+    "key_seed": "A67946C15E4AEFCAEA932BE2B26CA22A3631CAF3963BF24BDB7A839CBC4215B1",
+    "metadata_key": "034314A9C047377E60A04D4D6D24B67E",
+    "section_mic_hmac_key": "D37426DEC6209A1AED271135308F665981D7DE9C2250A7982A68FD129FBC597F",
+    "section_salt": "DB852F256100992EE97EF0F6F931193B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E5D850A6B98731806DD70FE80D14C57F",
+    "aes_key": "45F17F2A11C37D39EA2E14EB6F2CE1B2",
+    "data_elements": [],
+    "encoded_section": "37901322ACBF267B3AC6BBD623E29E4C3CA73A9110003B6349B2E28BFC8EAD832D04EE1D41C6900495D0821E110F23240CF70BDC718DC1E0",
+    "identity_type": "provisioned",
+    "iv": "8A38DECA4DE45018DF71E0F5613FE0B5",
+    "key_seed": "FF31FA9C59DF8135328628787FA48637CD6AF39EF0787506983782D7E32BE634",
+    "metadata_key": "6C2A4E42EBE23C4D726F76B9FEEE9C18",
+    "section_mic_hmac_key": "F05B9956C3C0EF6621FDADB68DDE990EF64AEC91603107F728EC761C32FC3C17",
+    "section_salt": "3B6349B2E28BFC8EAD832D04EE1D41C6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "92BC4AC64813CE0FBCBF063580B8450D",
+    "aes_key": "46FC81523837471CC7B1132E3EAAF8F1",
+    "data_elements": [
+      {
+        "contents": "3C5DB709AF6BEF1A6DB5",
+        "de_type": 44
+      }
+    ],
+    "encoded_section": "439013E00AB739B468075FF17A2F097CA281CC9110004DAC6BD9A7A7499B7171120940ED042990018B201683ED366466ADFB2EB853E969162DA6AFAD259C2FCECB94858B",
+    "identity_type": "private",
+    "iv": "2F91E5A6914064B461D1C006ED76FA2F",
+    "key_seed": "863FB479EFCB6FB70859DFEB44427143E0D5784CDA22DEE6280D75E217720D82",
+    "metadata_key": "7A7F61C5B138A412235574D1A509D1B3",
+    "section_mic_hmac_key": "1FCF532394A9A225DF35E2544418E724EACC389FA5E033F8958EDFF1717C6D87",
+    "section_salt": "4DAC6BD9A7A7499B7171120940ED0429"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A47C02A4CFF31760341922681C976C9B",
+    "aes_key": "CCC21FB62FFFAE008ECF5BD0AA3AF62C",
+    "data_elements": [],
+    "encoded_section": "3790138F26A8BE5D75A6F6F8F6CE5ED388FE35911000FCEDAA0772047E6085B7A3DE0656591B900427E950F6D62A13D2BF10F3AE70CF99B1",
+    "identity_type": "provisioned",
+    "iv": "748F18DC41E1742BBC685E0F699A8A9C",
+    "key_seed": "43902BBA2C0D479E16711B145C936CAFDE2EA717B06E48F913861605673E4352",
+    "metadata_key": "225F23821A1821430F1518C514C45FDE",
+    "section_mic_hmac_key": "EAD438CB4DBB42665F5EBB51578C6889268CF032E82446E6DB78F538CF8D2008",
+    "section_salt": "FCEDAA0772047E6085B7A3DE0656591B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "529EA628E2445A5F44FE204E7287CB83",
+    "aes_key": "D077D4226135FE3CC4E82D9136D013D5",
+    "data_elements": [
+      {
+        "contents": "9B815B76A0BE",
+        "de_type": 794
+      },
+      {
+        "contents": "F0176B0CD2D7ADE497BD",
+        "de_type": 585
+      },
+      {
+        "contents": "FBBD3620FADB7987C5",
+        "de_type": 951
+      },
+      {
+        "contents": "6E6D2A26D45B22C48FBFBF5BA353822DB5",
+        "de_type": 689
+      },
+      {
+        "contents": "",
+        "de_type": 824
+      }
+    ],
+    "encoded_section": "709013ACD9FD3F06A15506252D036301A1D1289110007FD227289748907CC788A03478E4C4A490040BDE2788F193C43DCFE364FAD39822E9693F9A61EC2AF84BF6E409352D804375946F04F76B6C8CA105D29896668E6509C7D9A2B12345E0FCA01318A33066A052344AA55973E26EC11C",
+    "identity_type": "provisioned",
+    "iv": "21FB688EE8D48AE0204DD0FB6723BDFD",
+    "key_seed": "09BC65B83D4A9DD8E665C350AFCD428364EE0C429A26432718129B954AABF45F",
+    "metadata_key": "0A4BF92CCFBE7EE7BA20212B2C9BD9C2",
+    "section_mic_hmac_key": "2B29674CEDF3923E447AEC380E9A5971EA8858B669B79ABE829731A48A69D46F",
+    "section_salt": "7FD227289748907CC788A03478E4C4A4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "27F532D8AC32634E4CA75D32B8F21CF0",
+    "aes_key": "C286EC660EBA9F0D2EC7A6303A73DCC8",
+    "data_elements": [
+      {
+        "contents": "556D2EB5364D03B0D15BB6C2FF22",
+        "de_type": 982
+      },
+      {
+        "contents": "250D3A6C86F50DA0",
+        "de_type": 215
+      },
+      {
+        "contents": "B0D390472D2E4730981C8C9B5520",
+        "de_type": 879
+      },
+      {
+        "contents": "4BD0DDF2F7A591B4F423B8",
+        "de_type": 519
+      },
+      {
+        "contents": "2DF0B2BF2276228A5DA4C99B0E308A7F75B4288A73230B0516",
+        "de_type": 301
+      }
+    ],
+    "encoded_section": "8E9013B2FE9B4E230BDE0A6B4C680E38425A88911000AA44252B7B0597D8CAD27BB2DE2E932B90024B03F77517B8733BDD7FC4A6EFF00D0CD0E9136611DF78E7069F61888E95212A50981F152A7962DA910D35D28A87D0FF7AF72A0698459C5AB90373F3ADF7952A8565B1787C0D5FA6C2AD85E3F2C818AF0D7FCC321D29632B3FE1A9E5B0953249ACF71A5D6D6A20",
+    "identity_type": "trusted",
+    "iv": "40F91D78B10069B117960376FABD0D24",
+    "key_seed": "2FD8F442EDD094DD39EC00AA2CFB7FD0675A1BD7F7941D4F53D0CBD82753E8CB",
+    "metadata_key": "4C3D9AFFE510E1966AC131A89E1F7620",
+    "section_mic_hmac_key": "A54C280F5756F9FA52C63779EBA43987D19A7EDEFB9967AB425BADC59BF61817",
+    "section_salt": "AA44252B7B0597D8CAD27BB2DE2E932B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D4E5C889DF978118233B27AA4104654B",
+    "aes_key": "970E140CD44D7A04EFB008734CEC7010",
+    "data_elements": [
+      {
+        "contents": "85C4B76453D6E516D361CC73B263CE9D034720445802DA220ECF657A5F3E",
+        "de_type": 271
+      },
+      {
+        "contents": "E32FD49D906691",
+        "de_type": 731
+      },
+      {
+        "contents": "7B3C90A05085048B6179D21AD5A6A86A6ED4F13A5DDCAA6AE04E6B98",
+        "de_type": 768
+      },
+      {
+        "contents": "032F3243",
+        "de_type": 307
+      }
+    ],
+    "encoded_section": "889013714CDBCFDC9979F2A631D817CD6F5D81911000B686CC2DD9B1CAF68D2D40641EE8586990022E34067C0F459E6DC7270F4800ADB3332572AAF09C0F3F02D96F7B1886C9AB3337693E4FF929CA72EF3EE3CC4F5A812200784AF925FA20CCAD85A5AD7852BB76CA82B942A1A9BF7BADB315844E595BEA39AFCC17E1DBB66B6E048C605B7441F676",
+    "identity_type": "trusted",
+    "iv": "82D4C9AA85D158ECEF4066430E4CA88A",
+    "key_seed": "08D94818510EF93C263C2F1F29CF026DD9492D6A51C9A8CDA500CA1286DC8548",
+    "metadata_key": "14EC5B29C281FEB2AF4832FB60E1906A",
+    "section_mic_hmac_key": "51694A80381B233D9DAF1ADF4486927BEB090BE27033C68E4C767C3AD81FBD32",
+    "section_salt": "B686CC2DD9B1CAF68D2D40641EE85869"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8B3ACC135A6B5C8563C100BC132C3012",
+    "aes_key": "EB39B2E41C39888C378B488AE2905CEB",
+    "data_elements": [
+      {
+        "contents": "5CED8B3EE06AE3BF23221CD8516F5A320D",
+        "de_type": 306
+      },
+      {
+        "contents": "D44E64F4CCBB96259885825F",
+        "de_type": 621
+      },
+      {
+        "contents": "9993FECFD946C4409519E9A3178868E99C9C2F715A",
+        "de_type": 956
+      },
+      {
+        "contents": "D61947350812F913D6FCA86D0BE8543C399D",
+        "de_type": 641
+      }
+    ],
+    "encoded_section": "8790132D65B8942498CCEA42A0D804A1C01A6F911000D8E290276E0858486D84502DD4CA687D9002D38DF4747B01659AF237FA5A531219AE5136549DADC2B7E717B8F02BC335EE5C1F0D56EC2F477DC8E5F6BD3D376FCF4E0D9D5DCA895BC72F259F18A7F731F595156293CE9237BD2CF392B34332ED00E56695AEF9AB71DBEB9E03784760D8FDF2",
+    "identity_type": "trusted",
+    "iv": "3E60B91D4AA0323C5F01E0E597ECF1CC",
+    "key_seed": "7ABA9927D395596BAE76B09B53E3747C14DDFF26299CEC1C3D27251187E18D53",
+    "metadata_key": "01F04DC463DFCAAF77C09879E550F4DF",
+    "section_mic_hmac_key": "9CAA148E03F3E71D5E61C523CA945873AAF055D6B30AD66FE2D4D00B3701769D",
+    "section_salt": "D8E290276E0858486D84502DD4CA687D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FF3B16C4698751E68F84DE97F35A5FA0",
+    "aes_key": "3BF5EE085D208F3D6E5A6442013C725E",
+    "data_elements": [
+      {
+        "contents": "ACC85C",
+        "de_type": 664
+      },
+      {
+        "contents": "83F79F7267E22A6F772DE90F3B3AFA",
+        "de_type": 179
+      },
+      {
+        "contents": "50B49C934D255C07EDEDB85D21754295DEE043",
+        "de_type": 991
+      },
+      {
+        "contents": "9BB5F0D259BDFA70B9",
+        "de_type": 118
+      }
+    ],
+    "encoded_section": "709013B5B1766D569DF4A453ACE83B0F38E916911000E37D1545FE3474350536BBFDA3FF986790028E3033EFFCDD3FF351F65DF657B9E78DC235D1597CFA8775D2CA4C2F8B6BB104CD9EFF986A2448B871BFEC865668788447245F0AC1B6E24C869C93D25DEFD64D3935B781AEB3D6A8AE",
+    "identity_type": "trusted",
+    "iv": "F2878B2027076B2D71D6F9871A2F0D03",
+    "key_seed": "A7548D59575A8ADF65ED6E5C2B91BDAF3E49F4420BCEA25A47F2DFFA66A6FB40",
+    "metadata_key": "A7689FBC874B5252F84B652A6C801ACC",
+    "section_mic_hmac_key": "1B247C85EAEB89FAE3D9A6F57B342AA2EF11A3D31F99B92B2BEDC33F25E24365",
+    "section_salt": "E37D1545FE3474350536BBFDA3FF9867"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "376B1E2353FDBBEE04421E92268F2137",
+    "aes_key": "B99788E0D39B29BCD2CB9914602DB519",
+    "data_elements": [
+      {
+        "contents": "9DEF31274C87EAF90C3BE1E286CA6ECE487A9592AAA5",
+        "de_type": 832
+      }
+    ],
+    "encoded_section": "509013D0FE03AA8832621507D192A7A032A6AA911000B672CC780DFC5CA8872ED98841695B5190014330021041DAE80CAF03A0921B48EE4DAE14F5A1D5B70B181E47B17DDE48F9E7EE753FB7461464C071",
+    "identity_type": "private",
+    "iv": "8A479EBF518ABDD0F8B6E2DD6E6C3DFE",
+    "key_seed": "038F101C0818A96A4697FCD0C04F83A5E8B305D020C2B1EBD9EF9F2DD47A3A68",
+    "metadata_key": "74BB45EF94F7CB36DA9A6E8922F968BA",
+    "section_mic_hmac_key": "DE187BC6A18B7BEEB0F080D19CAE3A966B04B11F2DE3E0B3A4839B4DAF642BF9",
+    "section_salt": "B672CC780DFC5CA8872ED98841695B51"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4A68B75255C47966CFD09D3E6F4D0F00",
+    "aes_key": "F40B55E81D5218A9C153B4A518EF7965",
+    "data_elements": [
+      {
+        "contents": "1206302B0C2DA5BEF95E297A1002C931B1A561AC0FEF82E59232",
+        "de_type": 975
+      },
+      {
+        "contents": "4C7B43DDC3DCEDFBDBD82A0E",
+        "de_type": 106
+      }
+    ],
+    "encoded_section": "62901370EF584FCB26A18F3353C63B2C6E550A9110002346BA971CCC84FDB572925FDD8415EA9001C180B71BDFB6D03797769B28831D787CC1E34B3D68475BE6BD52BD446FC1F98D46CE95A4E95D6675F751158AA2F32E80E31EBBCC9849E1B38B61CE",
+    "identity_type": "private",
+    "iv": "3C79194828BD1CAB4830FA2EDAE139B5",
+    "key_seed": "E702E9695C5F7A8FB6B07D8826DAB5E93DF485453C1D47729736C247BB5B1989",
+    "metadata_key": "9496D7B7F81FEB95A795BF7D0094DD22",
+    "section_mic_hmac_key": "ED70B19FD1BBC280589C9760473339DE84CAAABD844B7E5B6F373B4F2DFEA1B8",
+    "section_salt": "2346BA971CCC84FDB572925FDD8415EA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A7DC2F6205111E24BC5D3E96A4036E2D",
+    "aes_key": "948FB743319951D6EF15792E57C44CD0",
+    "data_elements": [
+      {
+        "contents": "17FF183A55CFC3D6F761A4319DE5D307A3BEBB8337945B",
+        "de_type": 437
+      },
+      {
+        "contents": "14FE4641B1B15E",
+        "de_type": 850
+      },
+      {
+        "contents": "309BBBC5FD371BD50A09BF5C1935638EBBA64CED26",
+        "de_type": 578
+      },
+      {
+        "contents": "82FA4B93D7E9E8E48C452C3765F30212C5D0CE308E",
+        "de_type": 986
+      }
+    ],
+    "encoded_section": "8B9013531B7DDA6851D5A468CF7BA6FCC96AF19110009595A85248F0E068EEBDBFFC4A67064D9004A0AD96175DB820F281BCA29136E3FA64A1E0599AE13172AB44649AAC952DCA3FE132D516C5735C86E2AF6D741A69D75D3362D18D9C9CF9218ABDB944A24C8DAF25648A3C76334BF4668F17C1A693891BB74CFCB98A0E6F3E4F7B5E7F63ADFD626CA50BAE",
+    "identity_type": "provisioned",
+    "iv": "2C85C7E9AD55CD74962F7494F73F381B",
+    "key_seed": "7C486876D239CE8820A1F0B2DB610DB41CA61A7AE8B6BEEB0C908624D6F8C73C",
+    "metadata_key": "4C62329C44D38B35F5A124CDB6DDB4ED",
+    "section_mic_hmac_key": "A147DDB86022B7B38A5A0EF46FD8A5A3AA8EF58F1A3B29D67692E8DB21CDCDA1",
+    "section_salt": "9595A85248F0E068EEBDBFFC4A67064D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7AC5CB315FF73D315B9D7BA673EBBA60",
+    "aes_key": "506C8FB709BD805F07907F3CADA63A4D",
+    "data_elements": [
+      {
+        "contents": "2FF3236ED0BE30DBA2EFF7B322460D50CBA1CEA89A73D48E002122",
+        "de_type": 189
+      },
+      {
+        "contents": "29325485",
+        "de_type": 667
+      },
+      {
+        "contents": "BE1D11D85F08DC5096CB2C",
+        "de_type": 755
+      },
+      {
+        "contents": "E5A8D258FA69",
+        "de_type": 265
+      },
+      {
+        "contents": "54E1452EF7918625F1C2066886",
+        "de_type": 395
+      }
+    ],
+    "encoded_section": "839013313C5AB1D44BB73DB9DCE0A44381CA5F9110007CAAF0C331734518BAD5BC0AE39D6EA690024326AFCA074771D3B7122DDEAD650CC13735E349EE776FCBFE42C28D8AF0B04F72F453412F9ED8F79D05387362CCEB5893D18016C30315C51493E7A4DA3F0AED6B48B92F3A1CA3A7F3EC8508E26C18B1DF167AF4220A79383D06C697",
+    "identity_type": "trusted",
+    "iv": "38F542B60DDCF1889C98F636AED0DB70",
+    "key_seed": "AE9FA4DBE8FE02012923C404592B04CB6645B07CBC053BBC849BC860169B968A",
+    "metadata_key": "52EAB1D56E20ACE3BFA4998ECD77E75E",
+    "section_mic_hmac_key": "0F5609DDE1DE5F239BD1F96B1441DE52BC2D5ACD27064FA3007C0652064124FA",
+    "section_salt": "7CAAF0C331734518BAD5BC0AE39D6EA6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1371D42BB56CC9589A4E711E94003CF1",
+    "aes_key": "F89B50E8D592AF6598CFFDD4631B98F7",
+    "data_elements": [
+      {
+        "contents": "BD965E4D7FE3BE0983",
+        "de_type": 915
+      },
+      {
+        "contents": "71317D36EEBF7AA7C774",
+        "de_type": 130
+      }
+    ],
+    "encoded_section": "5090134DE55CD88FD6657759CA777FE2A6A5389110006380196708715DC7A15514FCF0C680BA90043BE3270FC1B56DC645FB6F2FE08340A78A7AEE99B6E701C28398BF90CF6A234F664F39263F0B1C12B8",
+    "identity_type": "provisioned",
+    "iv": "6D5FF6F65CCD1AD3CE0E402B14996B5D",
+    "key_seed": "2A965EA9FE93E8AD29738534A581AE4063AE843A84FA26BF5AC4DE9EDE3CD9FB",
+    "metadata_key": "2F754F4C60734B33C40721F3E3F65157",
+    "section_mic_hmac_key": "53F2A6DFD7AEEFDE014E55D7BF8840E5D7A573029BD9BC789F4AF5D83A0FE4FC",
+    "section_salt": "6380196708715DC7A15514FCF0C680BA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5852F713F32A45F394D6CF1503681E71",
+    "aes_key": "53579F776F4D91AE48BAA741D51273CC",
+    "data_elements": [
+      {
+        "contents": "264965713C4FF4C23F6058",
+        "de_type": 957
+      }
+    ],
+    "encoded_section": "459013250493378F298B2F0FD41D3F26496997911000E097C08787305AFFF05C26120584ADCC9001FCBDE7AD1AD06682B2B4E0E9BFBA96CF731B887DF56996A8D3F184BDC5B2",
+    "identity_type": "private",
+    "iv": "586BF8EBA8BFC91CF524513850FA6CB7",
+    "key_seed": "C1DC5EEA6320D89745E956A59829A9F12BFBB0E84D5702D4323A073153A402D0",
+    "metadata_key": "CABC965DC85DE1CC03766E3C3AD89955",
+    "section_mic_hmac_key": "E5BBD68BC259259BD8D7456D0028F4F9ADE138BD9ECBF8B08121095E5385A104",
+    "section_salt": "E097C08787305AFFF05C26120584ADCC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B6AFC51F6469A1134FC9F3B79C63B648",
+    "aes_key": "0AEFE23D6E06401C54B9EDFD128EB043",
+    "data_elements": [
+      {
+        "contents": "E592EE15CC4A379D37A1336E8AEA",
+        "de_type": 177
+      },
+      {
+        "contents": "16A5D19E7D776BB328AAA2",
+        "de_type": 167
+      },
+      {
+        "contents": "7667074E7BAC9ED1071F6D802D",
+        "de_type": 32
+      },
+      {
+        "contents": "6422E8",
+        "de_type": 397
+      }
+    ],
+    "encoded_section": "6B90131C4A85CB414A096694AE91D2F80F642B911000B029880034337B48522C5743B764F6379002C54B4FDA4EE62DED8E3CEDE200278112467A6BC315CE1394D3305D6AD8389019B042E52B123A729F5FE8AB7D12E16D97D997E926B5B77E72E744C28708F78FD46C9DA7C1",
+    "identity_type": "trusted",
+    "iv": "00CAEF5FD9AC22C1D4D849A1F8405E97",
+    "key_seed": "CAA6234004DDC5868F8754AF727A16EB9CE58007EA363B77ACFA131DA8B8DE64",
+    "metadata_key": "E0EB0DCE07B9F33812599159F0966193",
+    "section_mic_hmac_key": "72A1D922D6D948622CE8A79C84EB61176C5A4624E5879BCE31312C46B7A124A0",
+    "section_salt": "B029880034337B48522C5743B764F637"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FAD0410EFA60449825FFC8516A0FB3B5",
+    "aes_key": "3A65582FCAFB3BDAD34815AAB02C6A0F",
+    "data_elements": [
+      {
+        "contents": "F1E69503995E087568407D6D4A43E62530AAE4D1F234446F",
+        "de_type": 395
+      },
+      {
+        "contents": "D324E4CA9472C8AB06D88FE419426C232D883A67CBAF486BC6C3",
+        "de_type": 260
+      },
+      {
+        "contents": "BEB0E1",
+        "de_type": 153
+      }
+    ],
+    "encoded_section": "759013EA5DB79A4B63F265C79FAE27A1E26D32911000FB31E0B50B916E1F3ECDE7E827BF50E29001F006CF03659E34A07A5AAC66EB68D19ABD36C2B2B95105487E089604722037191C1B864033FEAE9E902C9085A4DAA25167B29E6158B30DF8E0FFEA9F8AC5523813593B4EB612BA146E7FC0020902",
+    "identity_type": "private",
+    "iv": "B9B5A13C98A85049E31086ED7F63A8BD",
+    "key_seed": "5ACDFEBC110EFEAA985EDC3499B192C4C63780076D69CA3453E33AA31B1FD782",
+    "metadata_key": "415BB381B6F26519F4A8C16B3A2B2E38",
+    "section_mic_hmac_key": "617D53C2A4797B14451D556CA739B28CDC74C11599BCA1AA0CC5137AE1E06D64",
+    "section_salt": "FB31E0B50B916E1F3ECDE7E827BF50E2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A0672D9DBDAC66877E4CADA6575E629E",
+    "aes_key": "FE14C2D672CD9D635AA444035A977DCD",
+    "data_elements": [
+      {
+        "contents": "370473F9E9A4CD",
+        "de_type": 331
+      },
+      {
+        "contents": "1091627363EA5D",
+        "de_type": 599
+      },
+      {
+        "contents": "26D956645FD5C2BB41",
+        "de_type": 831
+      },
+      {
+        "contents": "725282C70B7EFAFA41DCFB83486789",
+        "de_type": 703
+      },
+      {
+        "contents": "A6FCE9D3F92AFF803A2EAEC9ED854C84DBD836C2E53DAFF2FBF42EF9",
+        "de_type": 208
+      }
+    ],
+    "encoded_section": "889013DE18750F74B8F143F9531EC602C6F8D3911000DE2483B00AB55A180FF1F9B1F841FD2F9001155420E62FB73633F34D463D6FB6BE6C43CDB46D66BCE9BED579D8C8AF270939D8CD5B758458BB6BF168DD2189A818A421C46177C681B3AEB51971C7EAF979D286C5AEE7C5C8B9F4B2A024629B0481555FB6B91D72136640AA6259C98B6A161869",
+    "identity_type": "private",
+    "iv": "7FC34F901F1CA946F025BEE913D80805",
+    "key_seed": "0E323E4FA86CFC101E020EC3794DC949AB5583CC705081F7EF17098750114567",
+    "metadata_key": "F6DD9E9867B8367443C7454962722B5A",
+    "section_mic_hmac_key": "8B0D6438887EE9AEA8B4AA0C8A3B51348696F8D714ACFC329ADCCAA94D3FA90A",
+    "section_salt": "DE2483B00AB55A180FF1F9B1F841FD2F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "96F1F913702F12AE480B7EAB21F2E29F",
+    "aes_key": "7286CA7480D60CCE64380194BBB16219",
+    "data_elements": [
+      {
+        "contents": "2D8051",
+        "de_type": 395
+      }
+    ],
+    "encoded_section": "3D9013A36724A659838BA6715EC43B10B6018D9110004A50460AFDA8F4151FA5F0D09AB9D3119004351C5DAC336A78804914EABF3048100B413604ED1804",
+    "identity_type": "provisioned",
+    "iv": "9FD8B714A92F6DF61BD8313AE3F7A49A",
+    "key_seed": "3A032816A0CB8C6047394D942A569235A698EF81EECCDA4CE2EA03319FD31EF7",
+    "metadata_key": "DCFEE171874E4F3F44CE3F4C25284136",
+    "section_mic_hmac_key": "4F27828BA59BEBB1BC8D5491A8DABF3B0695E48243CEAC341E6B466FFB1E45BC",
+    "section_salt": "4A50460AFDA8F4151FA5F0D09AB9D311"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49C3EE4484207ADDF24542801C4A8BE1",
+    "aes_key": "CB1A44E35190A0A40391E9AC0352CF0D",
+    "data_elements": [
+      {
+        "contents": "D13E6A67AF69CD4831EA837B4EED38",
+        "de_type": 118
+      },
+      {
+        "contents": "6CBA9A5D81EE86",
+        "de_type": 576
+      },
+      {
+        "contents": "91806A710A3CB7C48C7F9B",
+        "de_type": 141
+      }
+    ],
+    "encoded_section": "609013306C20AA4B9DAC542AE193249ED0B4F0911000EFE9FADED32A35322200ECAC8AA2881A90029272DBBD9AAC8A12D6F6004F781D1F4D52EA2D558745FB470410EBBD4C176D934B79E574A2E302C32B6AC058CFC3C4A97099EE579974607E94",
+    "identity_type": "trusted",
+    "iv": "8B897A7D823EAC1B4DCE4088B1239438",
+    "key_seed": "97C8CEE0EB78ADDA0E9ED93B32D7578C1C79FD019B59C4FFC93C243608CE3FDA",
+    "metadata_key": "07C3B3BE5A728497F903AC14CEB46CAD",
+    "section_mic_hmac_key": "8D485452833BE483BCCCFD8AC29D62E88798A74B7B0211930CEF86928D20D8E0",
+    "section_salt": "EFE9FADED32A35322200ECAC8AA2881A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "29332896433E0267F1BEC7C68F39BD0E",
+    "aes_key": "52F52B3912CC1D4375D4C7CC363A06C8",
+    "data_elements": [
+      {
+        "contents": "E71F91C189472E376B422A2BBCE9CBF608F93D7480",
+        "de_type": 480
+      },
+      {
+        "contents": "147B9B4DCB0E6D249DE2C41A2AAF577F6EAB2662D792ABE203A602B7C1E8",
+        "de_type": 382
+      },
+      {
+        "contents": "193DB2CE325FF3211237EF564F4876",
+        "de_type": 447
+      },
+      {
+        "contents": "22F03DCAE07E9F63B095F57A37A90C72708295C66BA5B46669272AA16D",
+        "de_type": 335
+      },
+      {
+        "contents": "6223ED9F71639C2228485250CAFE33C98E294D76C1704A539157C6CD5FDF",
+        "de_type": 324
+      }
+    ],
+    "encoded_section": "C390132F02AE5C28B3D32341611CA5B50CB2D491100071C1B6B18B6BE3F8B10456DAFC58DE4190028D41A79087A8FF6623388489853F49A93D41BF1B458A34D85AAC3688B1E883037A0DEB66DC2A3948DBE513A5A2FE44AF75A3CE8DB96F36C7B7F289FF212BDECF375BE179F3200EEBB9FB185E4356005527031F37151971D546F2973D46F00B4F6A0C669725E69A70B6726BAB0553B65CD4FA49F1B56BFABF1A34A7B9543A474B7BA7E74CF7D212F9FDA74A93071B20ADC6A385081922658E66B27267",
+    "identity_type": "trusted",
+    "iv": "C86F257947D0FBEB5F1C7A0F9901D101",
+    "key_seed": "DB73F443904842E9F64F60B67EF63825A2FE8AA122B4633B5782B6FDB976BC47",
+    "metadata_key": "7F5EE2AA799A8E4E3F79C30E7B77B176",
+    "section_mic_hmac_key": "FDC07A4B26BEA7D99987AABF4E031FAE14538A0386922659B5FCCD66913FAB57",
+    "section_salt": "71C1B6B18B6BE3F8B10456DAFC58DE41"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3709DEC44BEDBB170C7652F0248E9DE7",
+    "aes_key": "400777F0893097082B132E298D6B2B0C",
+    "data_elements": [
+      {
+        "contents": "0C4B67C6D9434B025D8E75580C8534E0C7851104F102E9666B131B",
+        "de_type": 269
+      },
+      {
+        "contents": "E2C34FB045408D602FBA91CBE2DCADFA",
+        "de_type": 815
+      }
+    ],
+    "encoded_section": "689013405BED7C212DD107163732A69097B11E911000861DEAA6AD7EFF607DA016E4DE278FD29004937E2B1A97EA25A4AEFF38D95D57B4188ADC5AA57A1B38E4A86FEDCDFD5903ADC9EDBB7EB35B96A689D83FF35BFD7962DA302437DD32394EFC9B8DA42CD33CAA5A",
+    "identity_type": "provisioned",
+    "iv": "1CAE6EB0B86F8C40C325FCAD7BC975A3",
+    "key_seed": "C91B9ECAE0A8EF1646B96E3C6F06B99C5A01B0904E98349BF7974E1ACBBCDC68",
+    "metadata_key": "DD8A480B4A601C38C0FB3B382E646A61",
+    "section_mic_hmac_key": "9BBD9E8CC618CBA17F36BA2593ED4C05DEB69B0F69F2D2917CF37285E62DB629",
+    "section_salt": "861DEAA6AD7EFF607DA016E4DE278FD2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4992036A41F8E54D00A1D3D4359A9300",
+    "aes_key": "69BECDC75EB309182C3DADE59FEEDF92",
+    "data_elements": [
+      {
+        "contents": "8B591A5CAF41CEF237A220785B",
+        "de_type": 941
+      }
+    ],
+    "encoded_section": "47901308D7B199CE04C602DE931C37B8E0CDB29110001463D56B2F97E53F05117D1D414DB9A39001CB5CF571A7859271C1CA2D95AE0F4557A8B146FF2FC636B1A6C948A7136E6F10",
+    "identity_type": "private",
+    "iv": "6B12EF5D3282AC2EE71A0398322D3655",
+    "key_seed": "B306946230C730CCD3B93C0FD74760734AFD01F5DAF1A17BD648505A6439C3A2",
+    "metadata_key": "C42D7A526D780B5D5E46603943A3FFB0",
+    "section_mic_hmac_key": "821AF2677045D3BAF8341C06C72F0476DBF407FA38967F3B08F060E42E2A0525",
+    "section_salt": "1463D56B2F97E53F05117D1D414DB9A3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "04CC1B63DDC7EFE20F035A5CA57AEA43",
+    "aes_key": "60046C736A3EFCD5DEA769D6BCFE3654",
+    "data_elements": [],
+    "encoded_section": "379013C978E90C73B9CE22075761B22E7B66B0911000C031142EF1CFE2DBCFA88DBE7038F4339001EA998FA7111B16AAEE5D76DCCE34F832",
+    "identity_type": "private",
+    "iv": "1425BF85545089772F7A0EC13B31F218",
+    "key_seed": "29C84402ED9B668C4B419AF8CCF3FC53BB771A5E41BBA83FC8D5264E5847F719",
+    "metadata_key": "0102525542E84C81FE13D0E70A4512CF",
+    "section_mic_hmac_key": "4A51F7871DC1B6363526C10EFFFD3492F38B5C352DFE2EEF206A9D8508BB8FB8",
+    "section_salt": "C031142EF1CFE2DBCFA88DBE7038F433"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2C87AF2AA5587D0D186ED5420388AEC2",
+    "aes_key": "2DA61DF51325B07DBC63B481DDCDE64F",
+    "data_elements": [
+      {
+        "contents": "6DFF113A772C2EBFEF3BBF18A36294FEF1D734BFC360C376",
+        "de_type": 548
+      },
+      {
+        "contents": "89A698C96D173176BBFC3538AFBEF049CC59B34B14",
+        "de_type": 546
+      },
+      {
+        "contents": "E2F16DB52F89",
+        "de_type": 266
+      },
+      {
+        "contents": "DA22DAEC64B917FD589D805253",
+        "de_type": 685
+      }
+    ],
+    "encoded_section": "839013EAA633D971185BFABB394355E4E31064911000C21027A41702F6DFAE49F1629A8E39699002BF31A3881922775031E2AAE919D18CBDFD195B02DA0445F61DEB7B7E655C8A975938B4A47F0FB27356C8A419774DF6A0FE213E84BA6EA1A0EF45F40EAED8ECBE37E53BC6542DFD0D3E582227E27A113785022CCEEFF15D15D94FFCA0",
+    "identity_type": "trusted",
+    "iv": "AEFC3DD760BF1C8A0C4D3F4D6F4332B6",
+    "key_seed": "63CB4A41E5862904E15594B7FB570AB2D20BEAF67CD053241796583FC4BBD471",
+    "metadata_key": "D1A562E45D9D59A9011D511728F7543D",
+    "section_mic_hmac_key": "BA11FB7271F9021364AD11352009E9452A74EB81FB340C526D9D2F5DA0CBEFBF",
+    "section_salt": "C21027A41702F6DFAE49F1629A8E3969"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "79906A0C8EF398B55A1B7D6626F780B2",
+    "aes_key": "36EAEBAA45DA5B60809CA32832414FC5",
+    "data_elements": [
+      {
+        "contents": "FA3FA3A9F0756E567E2A801656",
+        "de_type": 868
+      },
+      {
+        "contents": "45F76C1B",
+        "de_type": 816
+      },
+      {
+        "contents": "B3816FC81347A8D40FA3937BC2CC82C137D7B6067751AD29CCEFF635702C",
+        "de_type": 379
+      },
+      {
+        "contents": "360C1E18456ECFF656F8AD95220EC360ACD246BF31",
+        "de_type": 213
+      }
+    ],
+    "encoded_section": "8790133E894393E3BA6C82A326DA85D9031F089110008C2D013111DCC58A0DA04E0EFE9C45319004864DE8CBBF7C31B013DD161A12A92A2C25E57FD4465391B1E1A51F6A7420EB21A6E72917783613E65E885B08BDA69B1A6015E249A2912B3EC997B8972459459270601B6AD2A41BC1E73976A86D8FBE6473C844C32157575412717212D045EDE9",
+    "identity_type": "provisioned",
+    "iv": "0E4490BF80B78BC51FE57DB85EB61ACC",
+    "key_seed": "A8850343015360DFD5FF867CA561B5B41CC0B6BCCE62CAB56055E57AD7EE2614",
+    "metadata_key": "84CDFC0DC3222FFDBBE864870E67A8D7",
+    "section_mic_hmac_key": "35A9250370418DA082D0649DCA2C1F2C5581EA3B444905B33D83601A1B16C1FB",
+    "section_salt": "8C2D013111DCC58A0DA04E0EFE9C4531"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7DB249FB5D7BFD40D6D94D4AB36E91D5",
+    "aes_key": "1236191281B7E6536582FBEDAF9DA8E5",
+    "data_elements": [
+      {
+        "contents": "119D4427C80B8E",
+        "de_type": 760
+      },
+      {
+        "contents": "EC6A6CBDDF6848B16FF08DA7CF3FA284",
+        "de_type": 739
+      },
+      {
+        "contents": "B0E04C01243711008D6EA5D07C161F6195C5D3",
+        "de_type": 462
+      },
+      {
+        "contents": "DD978C138650CDBAE4",
+        "de_type": 743
+      },
+      {
+        "contents": "675E333C4398FBDB5DA8E19C",
+        "de_type": 403
+      }
+    ],
+    "encoded_section": "859013ED4DDEB3D0D051B4EED779AC376BDAD1911000C0643734B37286129B4562EE0BBD13909002B4989BEBC63EA94FB8B876A2BED6797B0BC4FB7579D7406D5BA3E0BB069BCA2503A413B61DDC92002924E14321086EDB5799981AE6375534852E18BBD7497FA7AF7613020DBA383848020A7D2503027F2141669BFEA617C2195E5608407C",
+    "identity_type": "trusted",
+    "iv": "9F2743DFAAC832E0F80884CD326918E8",
+    "key_seed": "03B79B00D65494F60FF94D2606BB2E27ACBDC599D7255B2A74B96F631EB0CB0E",
+    "metadata_key": "996FB9AF1F3A5C5465BF8704F76410FD",
+    "section_mic_hmac_key": "49A636DF6F31E0E4D2A77EB1E6209ACF98AD16DB3E177E50F528116D445D3FA9",
+    "section_salt": "C0643734B37286129B4562EE0BBD1390"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CEB98B4B0D841160C2E35158B1037983",
+    "aes_key": "F053887925734FF405C94A8F3092C193",
+    "data_elements": [
+      {
+        "contents": "5F8FE0C8238878BB",
+        "de_type": 994
+      },
+      {
+        "contents": "CDED7F45F36DD2BB6C5E5BE59E",
+        "de_type": 566
+      },
+      {
+        "contents": "B8E19720ADA1842AFBD9F20A979CB6",
+        "de_type": 22
+      },
+      {
+        "contents": "ADC17706EEF38EA4BF6842C76B00B7A0",
+        "de_type": 864
+      }
+    ],
+    "encoded_section": "769013FB3E7BE1C7C57B079D1C68C1FDF94F499110005B21E275525D3CB89AE0C75679294F3A900115D44F49C8842FF45C041D7D9D3715675882EEC328AE875937FF27A2F98D28FC0FA595179DFB5DF10527AA494524553C57B7E76DDDD9F18724CD4BD2891947A5CECA8486F0C59A5C62387BE80B7DB8",
+    "identity_type": "private",
+    "iv": "E0052D908B8B534F17012FE22FD8C1C2",
+    "key_seed": "042A0DDEB37D4E1243415F80E9AC5FEBC7902B0F4EE29E7B0DCF9F6527D6ADF6",
+    "metadata_key": "4393A5FFB48F851733D1B5A7B790BA35",
+    "section_mic_hmac_key": "A85552BEAFCCC741A72DF287A142CF3F998231B97755E3C70FBA249989C053A1",
+    "section_salt": "5B21E275525D3CB89AE0C75679294F3A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "745AFAFC0D37846B5E0C490DDCA6B0FA",
+    "aes_key": "806FF3273840321E8944A21CBA372A14",
+    "data_elements": [
+      {
+        "contents": "73B86820241EC5E7D125D74FE3D2",
+        "de_type": 315
+      },
+      {
+        "contents": "56DB7131D8D9555B",
+        "de_type": 495
+      },
+      {
+        "contents": "8E6A76DC340E0AEC07D79C",
+        "de_type": 895
+      }
+    ],
+    "encoded_section": "619013D03954EA8469566EFA768C74AC4D2261911000FB23753432B9B3628220D45365F2AF579001083DF8CE07930F669C932656AEE1259E713C6D323E8D102093CE210868F5BBA9B4851B1294C512B9D778BF43BAD9A859BF57409A14294A756E35",
+    "identity_type": "private",
+    "iv": "0E3C4A8E72AEF423375202C1176EB2B1",
+    "key_seed": "60144BFB597852910B428D8DE204D6D6E7EABFF8CCB6B61F8274C2B38CD02BC1",
+    "metadata_key": "BB66D2E7C096B7AEE4BB671BE9071AF2",
+    "section_mic_hmac_key": "596D58D71B171946CF75F706CEF421DAD978584AD60E979DCC737D95BB7C0CCF",
+    "section_salt": "FB23753432B9B3628220D45365F2AF57"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9B363547BB9948D07B69AA3892AA525A",
+    "aes_key": "08E1C799F15F1C96C27A4A1B37AEC7A6",
+    "data_elements": [
+      {
+        "contents": "E553E23A099E8329DB",
+        "de_type": 754
+      },
+      {
+        "contents": "D9037BB04B6E600107E7DF0A67566115EA3F619158D938",
+        "de_type": 244
+      },
+      {
+        "contents": "3571B7",
+        "de_type": 517
+      },
+      {
+        "contents": "60C498C9A191CF99BDB4C8BBC9201BABE9BAB9AB30",
+        "de_type": 377
+      }
+    ],
+    "encoded_section": "7B90138719640172A7CA979ECE524C2CCC5B0F911000C470C9EC5726236DC6C06A591EBBAE7590021E80E98CE6E81A29B6EA96E5B7EC0B496E21D40C10F430851949B30F38A1071A3E98BF8BBFC9CC8A13AB30B73518AA59D96DED687C9409A3C46EE8AB3A4B0BA118AD67F2492522AC66391FFE18E7F41520F12458",
+    "identity_type": "trusted",
+    "iv": "6E4892B791E5664DC249425A2E7FBC7C",
+    "key_seed": "5A08FAE5D0EBAC61590102AA36711002B7800BF744CB7863766BA932F048B8B3",
+    "metadata_key": "EA9F3E7C877395501F3D890721C96996",
+    "section_mic_hmac_key": "2D774C8BF3CE278132DD7EA105A125A95ABFE9EE1EEDEF7A191DCCB02155B816",
+    "section_salt": "C470C9EC5726236DC6C06A591EBBAE75"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "017CB0E1120225BD43E6B17407129A4A",
+    "aes_key": "236EDB5FE7F023E81E2772AE8C371905",
+    "data_elements": [
+      {
+        "contents": "FC6C",
+        "de_type": 842
+      }
+    ],
+    "encoded_section": "3C90139BDA46CDA896DC46E1953D4DF84DFFDC911000491F606D2C12BABECB46793C4FD4DD9D90029E9A317E650F42EABBEF539D64E97459ECE92C7716",
+    "identity_type": "trusted",
+    "iv": "3E43A43F32F7416F10FCAC7AA29F53CE",
+    "key_seed": "C536746CE8AB786BF064E636500981AFD86FDAF6D4631B161AA93FE09EA47F0E",
+    "metadata_key": "AE51F9455468275B5F1F3624602A4E76",
+    "section_mic_hmac_key": "BA03F46EBC0147C0582AA5BBAEF21D69737DEEE365F042F2767D660B6597B2F6",
+    "section_salt": "491F606D2C12BABECB46793C4FD4DD9D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8134AC1B9E894BFA8F57429D27BE03FE",
+    "aes_key": "8E466BF38FD6488483AB864A1B9B2463",
+    "data_elements": [],
+    "encoded_section": "37901372B0E373CBA7A88E17D27393CEED2A9B911000580E141B47F88A102003E045B3306ECE900260CEC45B63507146E4F2021A989E4107",
+    "identity_type": "trusted",
+    "iv": "9ADDE95FF00ECAFC9BB6DBE00CF4D420",
+    "key_seed": "DB86E0A4E7BAECD6971FD06F4EA08B999E321D18139B295E3820C5C0A1D9EA6D",
+    "metadata_key": "AECE395205E92B4E824736CD2EE10388",
+    "section_mic_hmac_key": "A892FDFC74404F4639A18BD6AA1C732FA67A3F76EA9A4455C241346FB6088646",
+    "section_salt": "580E141B47F88A102003E045B3306ECE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0E11B8EB767BF23776B2242E7F80A17A",
+    "aes_key": "CA4F5AC11D27A32BA5813B32CE9FD176",
+    "data_elements": [],
+    "encoded_section": "379013437CE707D51EAD22AF0E3D32C70129AD911000679009A3AB6E4C7835C13FA51C82745D900428D8BCD3A330E9A52A90BCD6C042E918",
+    "identity_type": "provisioned",
+    "iv": "4A026ADB419CF7A487500F4358C45D59",
+    "key_seed": "D373D3E85CF5AA0813907E92771B96A67823D7D7644AFAAB76324814008DBB89",
+    "metadata_key": "9E23DE492588EF5A6F10A9DFAA038A16",
+    "section_mic_hmac_key": "C4A11FF865C6FD2544C54CB7D16DB70136AD68A4B663DF5F530DE273EE36DE4E",
+    "section_salt": "679009A3AB6E4C7835C13FA51C82745D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C9CC54A5BD1EBB46FF5246ABC60AAA8D",
+    "aes_key": "BF5E5C3153CF9792AFD6CDF96A2C5344",
+    "data_elements": [
+      {
+        "contents": "9D4B5F1E5AB4A177310F992112F9BEA680",
+        "de_type": 886
+      },
+      {
+        "contents": "2D36CF0F4C8F1B36DDA5D23FF20EB6CD379F92",
+        "de_type": 70
+      },
+      {
+        "contents": "342637079BF30209525A62AE1D233B717E",
+        "de_type": 396
+      },
+      {
+        "contents": "D112664E69B12FDF70",
+        "de_type": 38
+      },
+      {
+        "contents": "D9AF0F568322C795328C8B4C1788987C398192A22A",
+        "de_type": 678
+      }
+    ],
+    "encoded_section": "979013282215741E4345A78D01377EFF9E84189110005B4B4A350A45FF863C3EAF2AB7F71C0790011B34CF8E42769B0FB7FB3F66C45BBB7B7F2160D74F03D27F7F1AA2D8C52FDC024CF2CF9A7EF240540C04FEBA619ABFAF2D79C7BC35421D09D20FACCE2A115C262624A87057FB67B440D453259A65476D5134E1E263A128B7192920FC7DE545B0EE63F83AD8963197C51E056FA2C6200F",
+    "identity_type": "private",
+    "iv": "B084B7392E0FF2BA4DEC9EF8E26B1A93",
+    "key_seed": "33565BCB2529940138116B4DB968D4D320B749D470FB480FEB2B9A6D6971EAE5",
+    "metadata_key": "A3988254E6FEAA0D759AE32D048013AA",
+    "section_mic_hmac_key": "41B9C812B94BD2AC4AC218F8DDE986E2D45EEBB89A0882C438933B001DAB2181",
+    "section_salt": "5B4B4A350A45FF863C3EAF2AB7F71C07"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4144053F0E007DD7F1D38291852FE2A4",
+    "aes_key": "1E65E2D1E7718EBBD972BC2042B9B11F",
+    "data_elements": [
+      {
+        "contents": "3AC4BEE4E3E37B706980475F09EBDD",
+        "de_type": 102
+      },
+      {
+        "contents": "7876A28FE5101EC499AAAB",
+        "de_type": 112
+      }
+    ],
+    "encoded_section": "559013343E829B75A77E72E1F5C0EC1ECE8EC49110004F47C2E91506FF96DA391B2BBE842F2E9002B9E7953047832B10DFC880CB57E7F569953E97CE5469368BFDC23E298878D41A775E405A97B0944DE64EFFACEE3A",
+    "identity_type": "trusted",
+    "iv": "AC1839A4D9EBBC369DF0E5DE3E9FB486",
+    "key_seed": "F53B91BB8F5F267901F6D0C2E6B511D37F23F41356B514C5BDCE04AEF60A7624",
+    "metadata_key": "B82E90A5753E1604C5C50790383528B3",
+    "section_mic_hmac_key": "FBB75466A337A9EF19DAE241B45E6366B3ACAA49B3678F6D410CF6A4B915EBE6",
+    "section_salt": "4F47C2E91506FF96DA391B2BBE842F2E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DFBED8D9AE83990BB427226E21034CB0",
+    "aes_key": "AD572A7C029F77B3C54ED924525D3229",
+    "data_elements": [
+      {
+        "contents": "3E120DC6A27E75C6B4D1D1A1C9F7A29C6B3B9B0F14E45D175F418711",
+        "de_type": 213
+      }
+    ],
+    "encoded_section": "569013F5A38DF3EC99C4156E794798A6F296D9911000986627D3A935F5C710D101A38FF8286890024F59E49C79DC9C0E298AD99275CECC28E1B8EDDEF0C3C2B4A7C984A2CE21DDAFE6E918D16575D2D6624D8C44673699",
+    "identity_type": "trusted",
+    "iv": "AA8AD31CCD7C59E5EA8186E39301A7F0",
+    "key_seed": "AACADF297C376735AF0138DD2F3F4B5CFABF32A8762275DFCA9EA2295E86A28E",
+    "metadata_key": "19528CA6D4629802FCA9D11353A60C2C",
+    "section_mic_hmac_key": "79F40360C6EDB9881CC05F01929B36746DB5F046093AFF5C2F3721BC5DB54A8B",
+    "section_salt": "986627D3A935F5C710D101A38FF82868"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8BEC81AF56FA2AC4193B05558C125204",
+    "aes_key": "AE9C86DE09A15A4F3859D801E0678262",
+    "data_elements": [
+      {
+        "contents": "4340F3E3DB2B1E56361256AF51DC6526",
+        "de_type": 221
+      },
+      {
+        "contents": "CF0E82",
+        "de_type": 309
+      },
+      {
+        "contents": "3EAD73DC8251FB1A5921E8255EC3CE3C12BE13839BF284A799BC",
+        "de_type": 508
+      },
+      {
+        "contents": "E261280F5BEFFFACD5D0ED3CC81F0C1BC1631C2E5D9A",
+        "de_type": 929
+      }
+    ],
+    "encoded_section": "869013F05F6FE5E4F7979EEE836171656BBA54911000465E3D595AAD47749A7384B123CA18E9900246F59681BA8A29A4B50D6B4EB3A5A37571EA7EBECCADE01435C0AA8A59440DCC455EC858FBEC686DC4CC3BB20F562B161BD729338C4FA13753F30FE021F5747CF11957D338E0256D07F3AF7A9D2A949DB748A997D6466F6CC5C6F80614B2A9",
+    "identity_type": "trusted",
+    "iv": "2E91EDDDC24CC419B76CC16976B8833A",
+    "key_seed": "11FD266669C2E6C279D8EA69F540B784989D11A09568A19F66D2ED0C1D6DBE08",
+    "metadata_key": "9B21D37E086FFA839142C0A22F3D65F6",
+    "section_mic_hmac_key": "A7F1A78902BB05FBB7B54D35CE9225330B349654936258EF908C11D4E6F3BB47",
+    "section_salt": "465E3D595AAD47749A7384B123CA18E9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "801D4CA35A70D4C283D2629EA148170E",
+    "aes_key": "65B82E5D5498A2A0557B1D39C0F5950F",
+    "data_elements": [
+      {
+        "contents": "A02494863822B1EA59AC8EB4",
+        "de_type": 243
+      },
+      {
+        "contents": "4C200134B8F4ED2481229F256DEBECCB6C5EFF7A8ECBB9684BAF",
+        "de_type": 900
+      },
+      {
+        "contents": "1CECAE0187941B94F8",
+        "de_type": 950
+      },
+      {
+        "contents": "DB6AF61301EA124E883131733344543394B9EB2D18",
+        "de_type": 77
+      },
+      {
+        "contents": "",
+        "de_type": 542
+      }
+    ],
+    "encoded_section": "8990135245B0569137C5BE751DB35223449F6E91100054E61830D0D0DD6A1F6B3DE7013EF06D90044DAE7D1C3F0BF3E5104C1DD01FDD1C5DFC6963613291EC87DEE2ABBC16C9D2BCA620921CA07A64D1DF36C733EAC39D997BCBF38E4D252F232C58CFF37697A13C04EA5284FF0BF47C11E85805018DC6E3495D61EFA87FA298724C267F1F29031B2C9D",
+    "identity_type": "provisioned",
+    "iv": "DA7D5D3FB17D06F46DD8AFB6647A44AE",
+    "key_seed": "78D9D6D609D520DA4339EBF814B40DC3C80AA0096C2E7948D5D4B92FB9243084",
+    "metadata_key": "ADCD26D03B8A1AF8C0FD9B3188124D19",
+    "section_mic_hmac_key": "B0430F46E286EA342ACB84CA42C151174AA8650353CBE5B064BA37DE66D823AE",
+    "section_salt": "54E61830D0D0DD6A1F6B3DE7013EF06D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0CEA8476765E2C9409E38AAD4F554E63",
+    "aes_key": "BD88F43CAB6E5D6B2BCB69424BCEC9F9",
+    "data_elements": [
+      {
+        "contents": "D831FF5C4756",
+        "de_type": 24
+      },
+      {
+        "contents": "8689F2BAF45E",
+        "de_type": 805
+      }
+    ],
+    "encoded_section": "489013E6F67A18C298C579609785D002870A829110004B7B840D8A6CC70F61B178722D71FD419004B85364FEB66321ACEEBA3A8C7133634867852A5A6A1B2A18FA032B1853288CEB84",
+    "identity_type": "provisioned",
+    "iv": "1FC05B651BB33F007EE45A02E7AC904F",
+    "key_seed": "667CD8F62F8A77492DD85747934C30D23D3658252198EBA915382603CD2B6CDB",
+    "metadata_key": "68CF855C510241813831D894E104173F",
+    "section_mic_hmac_key": "9BF0F323006089DCFB6181BE51EBD8DDAC8692E6C8B36A69EFBF85A7C073E31A",
+    "section_salt": "4B7B840D8A6CC70F61B178722D71FD41"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EC30A0D58034A34B8E5C559F280F509E",
+    "aes_key": "728B0357E323756231894D94286C3AB8",
+    "data_elements": [
+      {
+        "contents": "A7F5481741CB91CDE0",
+        "de_type": 894
+      },
+      {
+        "contents": "2AB65DA2EC0508A1",
+        "de_type": 303
+      },
+      {
+        "contents": "380AEEF682FD5EDB89F02A05",
+        "de_type": 920
+      }
+    ],
+    "encoded_section": "5D90134D517709AEF9711FA7C2AE7B5ACC3ECA91100080E251133A8F0A7747C29C80983F07A790024BD1D93EE6C137F6504D32C8CAC34BCE856EB4FA298CE7801B8F56463E85457A15C15F7075F06F2EC32AA68CF9794298E42F07AACFFB",
+    "identity_type": "trusted",
+    "iv": "1C296F5143FB2934F70CDC21DA10965D",
+    "key_seed": "955963D16FDBA60A066C6F698845F5A28A9D6D0099B4C77B443B56B249CBB1D6",
+    "metadata_key": "4AB7C96061268E4C9778E218F0E34ECB",
+    "section_mic_hmac_key": "D0496A75DFD42062C8DC17A2424ECC60EFF3890942702CF45733DCFEE97C58FA",
+    "section_salt": "80E251133A8F0A7747C29C80983F07A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EDB71DD72EEABB1066B3E8250E2E6838",
+    "aes_key": "B0BE972933B74F340C2FD12F033D470A",
+    "data_elements": [],
+    "encoded_section": "3790132359338C99B060B1F9B0CA90849B5B7C91100073BA46B076BAB82D101B0761C8B676B590026EE24CD8FE1FEA2573DBCFF4F2E712CC",
+    "identity_type": "trusted",
+    "iv": "47E21BB24E2B6E7E524F3B9EE2B3D661",
+    "key_seed": "2F6D9575641AD9DB592DB0D601A38DC7C33EA96141E7E46F2C12D1DD4FB5DB58",
+    "metadata_key": "16897C47EAD110C4A40E872DE97BE7BA",
+    "section_mic_hmac_key": "B383738B32E347E6CA30DD1AB86CD8C6C6F3817FF5DCA69E5927FFE970966B30",
+    "section_salt": "73BA46B076BAB82D101B0761C8B676B5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF3696F6CB3680CB90959720B0C0C8B0",
+    "aes_key": "DEFB7155A421A3C00BCA9521B9802212",
+    "data_elements": [
+      {
+        "contents": "BB94E1E012E8C01D78B367A8676B719687FA84832A",
+        "de_type": 100
+      }
+    ],
+    "encoded_section": "4E90130470C8FD4D0863A99E0655588B3677999110001560EF35DC8690A269985B834F5DF50C90015F68C10A7D7C940497ED4E77972D7A694E425C5CB5CD557378D55E31F445E7D38CF41BACC3584D",
+    "identity_type": "private",
+    "iv": "C493FA8A5AA5716991EA0A1825B88634",
+    "key_seed": "DFFB9A504328A5836EC19500C592E8706E45A8CC9530A63B6D57A50D81DE4368",
+    "metadata_key": "24DBE2F5B5592F053F7E969D336384F9",
+    "section_mic_hmac_key": "6A0717E12EC5CD7EC7B18B3A0A597CB73650649DE6E9B11947ECF3552E72BB80",
+    "section_salt": "1560EF35DC8690A269985B834F5DF50C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "96C29DB449A05ABD7BD2AA8292B5B1A3",
+    "aes_key": "48A7161729D51256FB3A22D800C9F4F8",
+    "data_elements": [
+      {
+        "contents": "2A33FFE5AF0D",
+        "de_type": 146
+      },
+      {
+        "contents": "61F2724E94BF6C6B841EA6DA24",
+        "de_type": 777
+      },
+      {
+        "contents": "79013E7CBF1E6757B28357C09CD8DF3F06EA5C8B29790B6AF12FAD",
+        "de_type": 19
+      },
+      {
+        "contents": "4E31D2948A6FCB9981BA3423",
+        "de_type": 85
+      }
+    ],
+    "encoded_section": "7B901309CDADEFBB30DF2A333B1F1211EFF789911000317126A212B7088BCA01CEAC599314F39002C21EC35FE4B66BE19DC9DAE8FEFC0FA8E0CEDAF4DE232FD592D75432B7D99511A15AB00D4359120C22D4934C0FE24C00B612684FAD1B4B8ACADC18BDE97D5C7BA24454248F2B816DBFC326EB73A7ED11C5F4B3F8",
+    "identity_type": "trusted",
+    "iv": "D85729A8ED6F4206E1557D6C0B1A6767",
+    "key_seed": "76BCB5FF9343256A836AA5AEAD8462A0FFFC2111B70F095635995A2AA6C60FFC",
+    "metadata_key": "B89DC800A35AC2C0AFE5A91834D7AD2F",
+    "section_mic_hmac_key": "A9C86D50FB79A6B609EF7F805E8EE1738B278AE7FCC46A0B5462089755752E6E",
+    "section_salt": "317126A212B7088BCA01CEAC599314F3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C827366ACD1EB08E13FFBF22716C436B",
+    "aes_key": "420312434A398DF54C75FDE9FC81E919",
+    "data_elements": [
+      {
+        "contents": "79",
+        "de_type": 784
+      },
+      {
+        "contents": "290E4DAAAF",
+        "de_type": 11
+      },
+      {
+        "contents": "",
+        "de_type": 225
+      }
+    ],
+    "encoded_section": "449013BD50CA32BC08AA861296C928AFD29D20911000F29D169C5E837778E5A31231ADEA015C900287033FD9D655A2A75CFB2D920787BFB3A9BD5574A01CF64B3BFBEEE838",
+    "identity_type": "trusted",
+    "iv": "88016DDA898C2FEF943D1EA8E96C9A87",
+    "key_seed": "69722E285E4866039C057956F5CA697047315D8C4C72ABE50D586695683FAD60",
+    "metadata_key": "475C542B15D91FAED80364C9399C1A17",
+    "section_mic_hmac_key": "636441B2DC928073663261C3E1A69B80272551D557AEF7F6BED9BC2B86C419BB",
+    "section_salt": "F29D169C5E837778E5A31231ADEA015C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5A822E5B54BDEF7F5009548D324BBB5B",
+    "aes_key": "6C2B767028935ECB4D5259451A6FD38C",
+    "data_elements": [],
+    "encoded_section": "379013C45F3FC194B77E7CEA94559ECF8B2CEA911000C29DD4EACB5AA9ABB862A37A0BE5EF7B90027B67A1CA38161CDD01B235691A241DC6",
+    "identity_type": "trusted",
+    "iv": "10FBB6D3CED80733229DC291931A5F62",
+    "key_seed": "A25CF787076C32D614D8D7A292FA70FCBC0B24A48CCF9F48126E9A083E9A3B3E",
+    "metadata_key": "615711C7C51985FB53AD38EA82645DAA",
+    "section_mic_hmac_key": "092803121B8DA22AA60360C830EA1A5DD8C4FDB5A474914FC4ECB717D13BFE76",
+    "section_salt": "C29DD4EACB5AA9ABB862A37A0BE5EF7B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3BA5CCE53243F98AD868DE1CD3E9F63E",
+    "aes_key": "7E3B147189BE67DBA984C1682CEAA129",
+    "data_elements": [
+      {
+        "contents": "434D0E7DB4C0BBD5674A83C484DA072FEA",
+        "de_type": 0
+      },
+      {
+        "contents": "6AFA19CB7C46BEF2EA5369837FF9F4C834",
+        "de_type": 413
+      },
+      {
+        "contents": "1070DA173252B48ECD95EE5AD376",
+        "de_type": 410
+      },
+      {
+        "contents": "9A09FE8AFA0D8C036D3670E709658C3F67BD13352BF689",
+        "de_type": 27
+      }
+    ],
+    "encoded_section": "88901314095DFFE2EEE0485F9947690F21701C91100093DDBC1927840E03F6449B6CB0FFA110900226C7CBC3BA4BD4FCA1E8EF197562C5F485BCA2B259F0A214E3D5C2A68492BBE242E720DA326C82CEF19D79A430D4F2F23E7F36811D5878DF371D6AB23FAB74235DA55E21AC6BA52BEF2F86B4D3DE92F79AD995CA6AA796AD37BA43FBFC9AE913B5",
+    "identity_type": "trusted",
+    "iv": "A8976278B12AE5463AE984157E0205F6",
+    "key_seed": "6D57B2178FBD724251697132B807A3CFBD68DE400362C57CCF9108CCEDD973AD",
+    "metadata_key": "0D5B558D2890FFB2E5FEB48ED21150B7",
+    "section_mic_hmac_key": "F79CE3F6795EB7F1B65DC1FF2D997397B02C3975B304B62C7E49C7D0AF3037F2",
+    "section_salt": "93DDBC1927840E03F6449B6CB0FFA110"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1E4EA1B93504696BC87BBA1AE230DFBC",
+    "aes_key": "65F515D0D4AFB386BC2D9D1C37A46C92",
+    "data_elements": [
+      {
+        "contents": "0EF8D96C53C49ABD11B69751",
+        "de_type": 258
+      },
+      {
+        "contents": "B945DFECDE411CC9B1FA63",
+        "de_type": 728
+      },
+      {
+        "contents": "AE610E4798CA99",
+        "de_type": 212
+      },
+      {
+        "contents": "18526E1BEACEF8F0FDFC34AA7F0992387B",
+        "de_type": 765
+      }
+    ],
+    "encoded_section": "729013B0AC05E79DD417567F17EF2ACF4A48C8911000D05DF80E62306F8629AE61A8270A7CBE90018D38E80AC68E0B71973CD3BB0A4D58D10932C58303F629C6497ABDAD814AAE32A7CD767EDB9F4F6E7B3E1245F15D6D1D6D45B175C6535A701B2C0A19E6ED9BCFF379255F23992E877887ED",
+    "identity_type": "private",
+    "iv": "2CBF8042D27B1F49DDA990A4BFF88509",
+    "key_seed": "09E15C8F181659969AF6C6C2375A564A9E8271EA13B1EDCB8A1F7809406E95D1",
+    "metadata_key": "F7411DB79645E475BD12C015B15ED0FE",
+    "section_mic_hmac_key": "AE6FC455FBD017A6B7B80052C2EE240019CAFC961605EA703F0E6F1EF9CF44F9",
+    "section_salt": "D05DF80E62306F8629AE61A8270A7CBE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "967CD8FA43AF6DAC8E445A080A65B16D",
+    "aes_key": "0A01B5E36CC69764CCE3A74DD544B1B3",
+    "data_elements": [
+      {
+        "contents": "4747E589E226F4F9093067D1E5227412CD7590",
+        "de_type": 212
+      }
+    ],
+    "encoded_section": "4D9013F9C57DAF3EEE1AAC80E7C06F1066F0929110009A52343FA860D361860C5072654AD99A9001A6D1DE2BC661B5E9AEE33FF8034275C5308DD4AE9340C637DFABE250FD8A31813DDAFE0BE84A",
+    "identity_type": "private",
+    "iv": "9643C2FA43D519B44896490C005E01B5",
+    "key_seed": "882D996C004CD5A1A8E00F436F97DB555099408BD3DFC845416A55179EF22C3F",
+    "metadata_key": "9ABA26D1743D347716204D2AAB927133",
+    "section_mic_hmac_key": "7CF80AA4D38DE78937E2C09F53E5C71081A5036309D4D3732DCAD4B6D2F82E5A",
+    "section_salt": "9A52343FA860D361860C5072654AD99A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A703D473C6044C05892027F1F0B60F72",
+    "aes_key": "2FA998F537E61F6E8195C5CBB96457B3",
+    "data_elements": [
+      {
+        "contents": "E1A624CA4950C406697EF34E02A7",
+        "de_type": 902
+      }
+    ],
+    "encoded_section": "4890134D9EC007C7BCB6530D03FD5F58F0B753911000737B467B6EA222531CD57C3DE300F0BE9004B24DABEFA8C0B41D78ED1E5201E4BBB51D8BC92D8976081E6FFC732C2E483E4547",
+    "identity_type": "provisioned",
+    "iv": "F09BCD4A5B8D538621858D272F8357F4",
+    "key_seed": "D41FE25607634264613845B1FAAF6735778475A69D76DDAA067279DF982667BA",
+    "metadata_key": "08C6FC8B190221DE2134ACB569BD9002",
+    "section_mic_hmac_key": "8D5B13DBD8411D3E2012F8B17F42FA32F12212905D7B123C6C8F5A794C28FD17",
+    "section_salt": "737B467B6EA222531CD57C3DE300F0BE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "225DAE6F894DBA4F2E24E053E5DF0926",
+    "aes_key": "0C13A76631F9D2FF50D2B7943578F342",
+    "data_elements": [
+      {
+        "contents": "DDCF88A122E86BBA27EDA33BCE5C8C92A5CDD960E3D401DBBF8235",
+        "de_type": 860
+      },
+      {
+        "contents": "EED509DC49EB0688DAE0EF2B694BD257D334656BAE46BA",
+        "de_type": 281
+      }
+    ],
+    "encoded_section": "6F901307E6D989A7D4580033D10CDCD0BB35C0911000AB498A5AC0AF52C5CA35710B455BA21F9002AC340BD4B1E47545097AA869F28CDFCEF69744505C494AAED292AD78A9A4F2018CA12E1587B9AB701BB58F91C587B32155674BE664214638B527597315F0F1975D8A6AF1995EE16C",
+    "identity_type": "trusted",
+    "iv": "23513AA8837D20F3D7696AAAD240E477",
+    "key_seed": "7BC68EEFD9B2B6410C33AB48E86A7F66719AE9475ADF6F0A132F869A82BF0297",
+    "metadata_key": "6E06556BE6FB79950C5DFAE4A2E674ED",
+    "section_mic_hmac_key": "9016C1CDC6CB002A1B2F89D05DD939B8DC0215BD625C2BB468ED6EF69B9257AD",
+    "section_salt": "AB498A5AC0AF52C5CA35710B455BA21F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2E9D2DFCBE85982F854C1D4F0E6D93E5",
+    "aes_key": "D2C5575DDBC1CDD5CE0FE02422980767",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 888
+      },
+      {
+        "contents": "B9D74B1C7C57A773B30E7A1BBE85531092",
+        "de_type": 717
+      },
+      {
+        "contents": "9D7507067864040C",
+        "de_type": 743
+      }
+    ],
+    "encoded_section": "5990134C8FE31670AD6DF853D9B25DF0C1793591100095C176F7E36BE5C6DA5004DDB3C65D7290029317FD5A115128CC9331C1610AC7B2797FA680F094169BF66D48E7E6E1E08D541B89EDF9C3342E8BFAA9F6B2DF6AE881C718",
+    "identity_type": "trusted",
+    "iv": "BC20E92086374ECD11A19A07E3E2CF3F",
+    "key_seed": "02D4DE8B5FF08DCF8256D575084CA4983548DD3F55E7AD54336A4985E3351112",
+    "metadata_key": "7FCE36BF9B0479FF853DF40B4EF98956",
+    "section_mic_hmac_key": "7C13466EA8471C744D721F3A584E59B5FED47C7CE25B9C47D2CFF2036920C9C6",
+    "section_salt": "95C176F7E36BE5C6DA5004DDB3C65D72"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "39808BC788108E6F5B6D34DCC09FA9C7",
+    "aes_key": "08F97FD75991B8686F0FB843EE31A1D0",
+    "data_elements": [
+      {
+        "contents": "9FA77C23C482636D020CE064",
+        "de_type": 370
+      },
+      {
+        "contents": "BC99",
+        "de_type": 68
+      },
+      {
+        "contents": "83E5",
+        "de_type": 573
+      },
+      {
+        "contents": "1EEF6D24",
+        "de_type": 145
+      }
+    ],
+    "encoded_section": "569013BAAEDE05A06A54EFEB6D88CBB00A8A7A91100066CDE62F4772FF4E97566A182D5C03329002FED2FF0BFD3A6103DBD82114343B47F4846B6B2A001E7533606442DB32EE91EBD21245F80F6AD615FF03DB2C35118D",
+    "identity_type": "trusted",
+    "iv": "5EA3B7F4C64F94FDE824BA20F150F5F9",
+    "key_seed": "3BB0AA21375B167B2A4777D850C4A2432C0EC93A3BDF6021456508619433F97D",
+    "metadata_key": "41537838EB8E6DD487D4F2B26182EB72",
+    "section_mic_hmac_key": "249AD0CAC358E0402D1F0905EF4BCB199B9988D958C17F4A91CC01249061EACE",
+    "section_salt": "66CDE62F4772FF4E97566A182D5C0332"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8659FDC730244DA2ED976154CCE7794",
+    "aes_key": "1217C04A0210C3DA505F5EB9123372D6",
+    "data_elements": [
+      {
+        "contents": "84ADCF3C26D68CB75E3D7290C59D6F86BFD9B23E10065C2886",
+        "de_type": 795
+      },
+      {
+        "contents": "221C330B2C2A3F16F957C02D806C5EC9FB18117D9EBE45A32D9E4C",
+        "de_type": 534
+      },
+      {
+        "contents": "2C858E1D7D841372",
+        "de_type": 544
+      },
+      {
+        "contents": "B5DC82A3D20F6601D1",
+        "de_type": 629
+      }
+    ],
+    "encoded_section": "8890133129E43BE247688922EFFC1C06A2976191100097BBA7CE5BEDE598EE61AA356BFA3DB09001E23B0136E0AB1C5D8DE60F20A809FD1D5B787159DB77B950B9F353C38D777D290ED5586BE886CABCDC8E07909FAB3FD375F42F3855D01FC55B4F29DA7951456624CABD2D4454E45AABD9758EF277C1E25B631E897C52201E53D44C8F3FDCE1C82A",
+    "identity_type": "private",
+    "iv": "4322ADCB565A23AB23CD40565F78C009",
+    "key_seed": "FA744BF2436D127CDE08772282F961254C68C88CA37CF683420F04A4321CFAB3",
+    "metadata_key": "7119BE6A5D9DB6AEFF8C4ACA38E43DAA",
+    "section_mic_hmac_key": "70A522C74AE34A81184EC55874314B13532145C99D47324BFAFC08041E0755AF",
+    "section_salt": "97BBA7CE5BEDE598EE61AA356BFA3DB0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6AD3D60D04723C57A58AEE240F6BBACE",
+    "aes_key": "43D34DFDF2BCCCC8DB6216E7C35C61AE",
+    "data_elements": [
+      {
+        "contents": "E2",
+        "de_type": 132
+      },
+      {
+        "contents": "19855C45342ACA24BF3C73CB79",
+        "de_type": 696
+      },
+      {
+        "contents": "E2E48F8ACAD7CCAA6910E3",
+        "de_type": 265
+      },
+      {
+        "contents": "76FD5B530D0014",
+        "de_type": 236
+      }
+    ],
+    "encoded_section": "639013E9ACAAAE5E2D8CB5E46DCFC19FA72E519110000675F279365CE50B3AA51B78DB0DB4B2900235FD3644D84D6326F596083705677D0F50B4E9C8C25FAE3E08308E09C28D388BB5C0FF248FF9789030675D9B4C73C5EAD088ED65169869A8F20F3FBE",
+    "identity_type": "trusted",
+    "iv": "7FC53B20EE21524D8567BB6EE0B24693",
+    "key_seed": "ADFF7F0DAE8A0314B915683C900FDB5EA48F05D1FB65771E44C1772C2BDD3287",
+    "metadata_key": "42CFED512703687B96EAAB7E8E402877",
+    "section_mic_hmac_key": "6CF494AA61E6BEE966D48FAF7E2672F82527FDD1C3075B7637550E7AF90BE358",
+    "section_salt": "0675F279365CE50B3AA51B78DB0DB4B2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9DE0357046BC21405E3FAA9554F7E58A",
+    "aes_key": "F9793D17386DA59EE51F7D32A8A151CA",
+    "data_elements": [
+      {
+        "contents": "6C85DE2E1644563269414164604499D1A2C443969711F381",
+        "de_type": 473
+      },
+      {
+        "contents": "12E30D7E922A107B3803092257C476D6CA8795F03A9E",
+        "de_type": 759
+      },
+      {
+        "contents": "00",
+        "de_type": 527
+      },
+      {
+        "contents": "FE4B43A8995BEA8FAD5746D92ED6F9BAEA918E51F433D47E71C12FD7B9FB",
+        "de_type": 57
+      }
+    ],
+    "encoded_section": "8F9013962F6EDF9C4DF87F7C4C5DD8CA42CFA6911000963BE50C9F0419B34F64BAE61586A95790010869544823FB9E1FEFF595AE61CB1806C2996320388AAC60CD987CA7EE6DC1272B2EA4DCC069C3E127ECFB9F616F4B9A9633A355861DF6B463084236E9E8E6FC4860EEB27F65803C8E18C898123DDFCC6621A9F74780D038D3051795B536F9D2D90CBA19090A0978",
+    "identity_type": "private",
+    "iv": "ADB30AE2A8D404F6B9EC3C5C7F40C87E",
+    "key_seed": "C88CA68847CC9E39EBA84A18D9882BA9284276ABF72E3A71E046BD0061A0F946",
+    "metadata_key": "0A59A06A76CC860B8843AF5DB75DF85C",
+    "section_mic_hmac_key": "2805BC04A45CC27210E07D9A5C74E95FE7E53C4AA59BCD95D4EA877509C25416",
+    "section_salt": "963BE50C9F0419B34F64BAE61586A957"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "57BBEA707A339197563A41AA0E0DF11A",
+    "aes_key": "1434B77F9FF8ED4472524CEAD5E2600E",
+    "data_elements": [],
+    "encoded_section": "37901317C3340DD8DE24DD7038087A0AF9F8919110003A25A320C3B2AF5602DBCC5ECB87F5049001B989234629FFC24C7AF47AC6F5591241",
+    "identity_type": "private",
+    "iv": "FAD343C30CA085B82CD74F2EB90EEC36",
+    "key_seed": "7618055D281738547A4B524FE0C6EABF1BBEE14AFBDD654010569DCEC71EBD5C",
+    "metadata_key": "2CDE85BDEB42F4A684CB85402EF2050F",
+    "section_mic_hmac_key": "780A1086ED611E46176DB2BBC18D9922D10CD2505B65C948C3AF08D1EBEBA1C0",
+    "section_salt": "3A25A320C3B2AF5602DBCC5ECB87F504"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "69F7A5E815A8018FA3C12A5259619FED",
+    "aes_key": "1EEA4B9B9FABAC2BB81EA1833E7A9C05",
+    "data_elements": [],
+    "encoded_section": "3790137E34824746AA819ACC4C60043B9B3D2791100065C80E3A90B498B761A7C07ECFD92DF69001FAA0CC5A0DBDC1AAA92FF3ECD5297778",
+    "identity_type": "private",
+    "iv": "5407E8912C6A7CC71C741306C0848964",
+    "key_seed": "567ED96D44DD13369424A930E8340DFB1B3A5423A3A8EC36EF30A5CF95B0CBDD",
+    "metadata_key": "6265BC696E8C105ABBD597107653950C",
+    "section_mic_hmac_key": "102CB9E93C412A3E2D267FB56147326CBBBB34CA36471AE61B00EDF4BB24B35E",
+    "section_salt": "65C80E3A90B498B761A7C07ECFD92DF6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA4E1434567DB6531BCCE1A5D8142D5C",
+    "aes_key": "52CA47EBCB645595D4CAEE61A9B3C181",
+    "data_elements": [
+      {
+        "contents": "53ED1098F6A0BAE7CF9EC6",
+        "de_type": 128
+      },
+      {
+        "contents": "A435650C36CB2E6CE210E52065405617925507797DD8",
+        "de_type": 761
+      },
+      {
+        "contents": "F3E6",
+        "de_type": 242
+      },
+      {
+        "contents": "D4B6AC531A7CC0B6296463AE4E98D99FEFE577CF473CFA4D",
+        "de_type": 556
+      },
+      {
+        "contents": "185BBD798D78329142610AF413428555C31F543D65093312003D17BAF8",
+        "de_type": 388
+      }
+    ],
+    "encoded_section": "9E90130A0D321186AF0AB2F4AA4379978B717B911000221CA03F0091EF740A7A59E45C6A8B4B9002AEB4E9389E0828052CECEBAB082423E0349E44EA64E5532DCF3C323319E13345127A426379FB1E494C9BB9D6DB2DF56FABAA87E47E7901F2D4805002F428B000CC4DFFDCFE8CC9209596718BD5636C25C177E7726AE4730FA153ABA0CDBBEF47A077EC595144440F725EE5CF6914DD6FAB91AFB8B1FCC5",
+    "identity_type": "trusted",
+    "iv": "4936E010A41A65BA9541DC9709158FD1",
+    "key_seed": "9E67123907427CA52C8260AD5B362365EFEE24A87BBFD9EECD3B17C0A9560CED",
+    "metadata_key": "E2A5139BC71D9F56DDA6FD58CAF4C72C",
+    "section_mic_hmac_key": "0E95D0175A99B701BD80DD3B51C02D70DE1D67FDED07F96D3870A89D995B5D27",
+    "section_salt": "221CA03F0091EF740A7A59E45C6A8B4B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D3721817C8956FE858948C1931BCF455",
+    "aes_key": "E929945B8EE42B6E003C3E073189C621",
+    "data_elements": [],
+    "encoded_section": "379013036FE7F04378A9A1C2894954362311F3911000044A465A357C84AA284FC794D2668FE99004AE1D9D5ED13C9D6409BB549FE27B8814",
+    "identity_type": "provisioned",
+    "iv": "66FC1EA30719B09F2E504C0AEFE155D1",
+    "key_seed": "67E133E44ABB305A340F39B513135EF0353DAAFD23092784520DC9199E9D14F4",
+    "metadata_key": "1A031A4C41C8DBDBF482E9945F3E928A",
+    "section_mic_hmac_key": "5FCAD75E7446707C69045518E605986A8BB0F25A0F986648516727E5B885D78E",
+    "section_salt": "044A465A357C84AA284FC794D2668FE9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4B352B0757FB0D8DC0AFD2AD77FC8F30",
+    "aes_key": "FBFE41732E1EADFADC6DB41D32E7B56D",
+    "data_elements": [
+      {
+        "contents": "93E38ED62D376819",
+        "de_type": 571
+      },
+      {
+        "contents": "91B3ADEBDF3A97DA0A772CE21F2272BD4E1EFFA70DE4A3014EE66C",
+        "de_type": 921
+      },
+      {
+        "contents": "348345",
+        "de_type": 660
+      }
+    ],
+    "encoded_section": "66901389B03B6684D250EF07E1913E8A54843B911000908608D294CFE21DCAD59E6B65063026900457E91F0F06E7F3A59FCEEDDCCCEAF0BB6FC1C31762C5FF7E60EECBD37BE8FA1CFA439D9FD3F5EC98F22B497151EFF602C8868F429469544FFACDCBBEA6056D",
+    "identity_type": "provisioned",
+    "iv": "BD6A74E891B7616A8704F0D2B5361A22",
+    "key_seed": "9ADEF374AE5C0763B4C81FAFACFC3FDD00BB31EC2BDABF08F72E0CC25C8F8A0B",
+    "metadata_key": "D925195F47F2C12E5837398262F9894B",
+    "section_mic_hmac_key": "D4CCE814EEB5CD71C084A1E98D5C3F1A0632DF311D665CC6F1225C1E20561B94",
+    "section_salt": "908608D294CFE21DCAD59E6B65063026"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "08B9B51BCFBE04D4523BFAA17837286D",
+    "aes_key": "23C322B350234D1FA4023DA8FE2D381B",
+    "data_elements": [
+      {
+        "contents": "57148223",
+        "de_type": 549
+      },
+      {
+        "contents": "ACE590C4F65B4143CF4BB7801CDD",
+        "de_type": 957
+      },
+      {
+        "contents": "39FD3C339EB0A86E78FC096FB33BB284",
+        "de_type": 22
+      },
+      {
+        "contents": "",
+        "de_type": 120
+      },
+      {
+        "contents": "A840D248AD83380304C9BDC1",
+        "de_type": 534
+      }
+    ],
+    "encoded_section": "72901304935566CA4CD8AF2420D84128E1F8A891100051A5D7C9F920639AF9C89DB51DC724079001821FD769D4AAE093F00DB6744A7E61A70B1EA33D810F7F266AF3FCD2841A2177DED23CA8C60E4574DF4EFFA31C21D27E39731EB7EDB802287ED62D075FACABC42C9407F742D333A00B6F40",
+    "identity_type": "private",
+    "iv": "FFE0673572F02D6F02CB5CD380B2F345",
+    "key_seed": "80C545E5E6F1E3531C0FDE45C8DF59910DDAE325F822C84F4999C344E7B6E572",
+    "metadata_key": "A473658E9F2E4B02A48FE08F5A9A03A0",
+    "section_mic_hmac_key": "279DFAB67F702246B59FA57F0700ECFB97580F0D8F2EA56C621FDC55626B13A3",
+    "section_salt": "51A5D7C9F920639AF9C89DB51DC72407"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "397658B7EB19939359DB8BDF7DC09977",
+    "aes_key": "355D838167010BFCD65619044A34AF0C",
+    "data_elements": [
+      {
+        "contents": "A329FFEB42E67FA6E8C08620E087CE7E85FEFCBCA1EFAF765F",
+        "de_type": 885
+      },
+      {
+        "contents": "157803B1904DAED114559F0AB2",
+        "de_type": 480
+      },
+      {
+        "contents": "703A8005A3EC894539CAAE34",
+        "de_type": 354
+      },
+      {
+        "contents": "596FB5EFEB49350FC8F683C80926EED7054787",
+        "de_type": 187
+      }
+    ],
+    "encoded_section": "889013C5BDBD074C803C8A17E3185E1BA6A571911000395E87FC0DF8B105176174C1D832DDC090044B65DD586A362858D7A824EA454FE3671CC784DF5ABC89CE611C470D04F2F44C9D474610D038A521A619F9703BBE8B0DCF18289A924A01516C63272F03524DEB885D5FD708D66D9D673C553578B27D514441ED938BC1754D94DFAE47BE20B6E2B7",
+    "identity_type": "provisioned",
+    "iv": "22D55CE5BCCD3D372782C35F5ECE49C3",
+    "key_seed": "DD3D65E71C5DFE02F5BD548BBBBA3F38FE8926D0CA9A50804EDA24B3EF7A2868",
+    "metadata_key": "888FC2EA55F320201E6252FB7DDBA66B",
+    "section_mic_hmac_key": "AA0724D6E22D4887021B351D9D201A618F8F303201E283F79D95AFE23DDA4CDF",
+    "section_salt": "395E87FC0DF8B105176174C1D832DDC0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "653ED3515E8811D572C1B7765DC268E9",
+    "aes_key": "686C0B1F2970A3CAD0E2B1209A5A5B78",
+    "data_elements": [
+      {
+        "contents": "B17112",
+        "de_type": 147
+      },
+      {
+        "contents": "FD920FDBDAC1D5",
+        "de_type": 721
+      },
+      {
+        "contents": "C817A535ECD2C643341E6230F44B67C8D06F228B8EDD",
+        "de_type": 612
+      },
+      {
+        "contents": "B6D4633DC57509F731479DE1127117E11E333682374DFB",
+        "de_type": 544
+      },
+      {
+        "contents": "5321F349",
+        "de_type": 876
+      }
+    ],
+    "encoded_section": "81901327A67FBB0CF04078320EE77A2873B8E09110007D7C2E8E278663EB6A532BC7848229B4900227C099A8BD586C51B776FB08D9D29D095070255058F840466D79C5E306488458771690C02C4AF052F3A53EFD7920D40FDAEA1354F4E5B87C375652F2DA4ECC2D744C36C74FA3380799223848829E7C594479214C31205A740524",
+    "identity_type": "trusted",
+    "iv": "263DAD92EC0DB2C39822FD26F2AD62D3",
+    "key_seed": "428968D9A9F686878BF560B65ECDFE3B38569FF712AF4EFC58564CD92AF3D980",
+    "metadata_key": "BC7405270D0F5841C3A3D3D40FE79873",
+    "section_mic_hmac_key": "A463136592A1F07BF2CC6D80071A290077283DB827AB456A4CDA64588019494F",
+    "section_salt": "7D7C2E8E278663EB6A532BC7848229B4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "31E689DE84F116A3C449F0B5D8A7288D",
+    "aes_key": "A6E2770208FAF2A476A475D770A3800C",
+    "data_elements": [
+      {
+        "contents": "DFF2C917C345C09B31E08B347E588FC64DF374BA28",
+        "de_type": 218
+      },
+      {
+        "contents": "3484B697920F1CBC",
+        "de_type": 764
+      },
+      {
+        "contents": "FB57C8A58AE76571",
+        "de_type": 686
+      },
+      {
+        "contents": "386218D2313E3A5EA2",
+        "de_type": 723
+      }
+    ],
+    "encoded_section": "7190132B37ADFB276B7EB4C503CECB801FA3F3911000CDC1162295B9A8A4CCA4AB56810D571A900273FB6BEA176F6DE9E6140EF7A28FAAD0A9DA45DDC9E40E4CE30B514CC388036F31BD93B0AB6F9EDC96583E089F70DEAABB3A6811E35A5463452308A5684FBDE3CA57D9CE8D9458C18606",
+    "identity_type": "trusted",
+    "iv": "3B99F43C244F3D82B2F519F26B2FD6F6",
+    "key_seed": "A80F5C4AC0EDDD45BD9CCE9240FFC30E4616F733172FBC34E7BF903E052A08D8",
+    "metadata_key": "3C7D19DC3473CE74F9629F28BD35D441",
+    "section_mic_hmac_key": "B9C76D0EFC21D1EA2AF1A595745B91DE11AEAE661FB727846B887C85AFC79039",
+    "section_salt": "CDC1162295B9A8A4CCA4AB56810D571A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A95C623FA8B0993A51FED27660FC46C",
+    "aes_key": "F6FEE1C8CC0D3E0E0B994591AFA98C35",
+    "data_elements": [
+      {
+        "contents": "6C0370D55999B1BA966C80E76E5A3143B0A6E9D0766601",
+        "de_type": 508
+      },
+      {
+        "contents": "EC68D3C546",
+        "de_type": 542
+      }
+    ],
+    "encoded_section": "599013A1EA22CB6A535194CA61B0F1D589DE5B911000D80A718BB8F999D070DC63B1FA1AB2629004697B686559499F94149621FF9F55241F4B64FFFD0A441863DFEA40E65ED5212335F948EDCB6DAA735F19776A404221BC469D",
+    "identity_type": "provisioned",
+    "iv": "D6FBED76B19AABBD88C9EA200FC3C231",
+    "key_seed": "8A4E313D9ED5FB9056A2A329BC4BA88A75C1BA5540496647765AC14FDD884FDA",
+    "metadata_key": "F3D9C6ED1DECC720D7640D5B0FA3BFCF",
+    "section_mic_hmac_key": "C7A6BD4AC4BF8386D2EFB23E0497F7F1C74CE0C45DDF2DF851D857F2EAC01435",
+    "section_salt": "D80A718BB8F999D070DC63B1FA1AB262"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "15D51D5529B6554802E05F2B0EF4DC28",
+    "aes_key": "F4EFE9267FF46EDD2B41456BB04F5EEB",
+    "data_elements": [
+      {
+        "contents": "7CE8",
+        "de_type": 187
+      },
+      {
+        "contents": "88EB094065F1E658E0B8265BC3F782C4",
+        "de_type": 643
+      },
+      {
+        "contents": "5720AB47DDC16762C5AA",
+        "de_type": 248
+      },
+      {
+        "contents": "0579EB83BD637F0CD137C57BF03F232166577572F6",
+        "de_type": 760
+      }
+    ],
+    "encoded_section": "749013DAA2590C575668648A3B6F693BB83D6E911000A98545FD8338EC5A966F1F501EBD5316900192E54C5C045F96FE474951DDA6BFE1E45CF6CB0F1FC97E9959BDB0AC58C60B5804E852491D23E443DCD3DFEEE8EA634974AB9952BFA30DA8B11DD97C0CB154A2A32C5A5E301E28C550DC2409C3",
+    "identity_type": "private",
+    "iv": "72EC916B14A083F2E7B345730323CC8B",
+    "key_seed": "AF922192993E36A50CAC64F9BE2ECE249DB8B2CD256D74B729551D2F45FABAE9",
+    "metadata_key": "21BEA9236D94154587759956D3F73485",
+    "section_mic_hmac_key": "F1FCD0DE064ED425D757B87220A95FF47F6B3B9DFC12A1E8D2C31B5C37CC067F",
+    "section_salt": "A98545FD8338EC5A966F1F501EBD5316"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7EE7B0CA063CE2CC1A2DCEED5FF6714C",
+    "aes_key": "BDDC38B2F185FD0B4F644ED613987035",
+    "data_elements": [
+      {
+        "contents": "19E3F28620",
+        "de_type": 502
+      }
+    ],
+    "encoded_section": "3F9013528238500EB32504E2DF4B101C2D7FE4911000BC04AE42E6A53E5EB4E86672375D905C90041372637B3F4839D1CCBCEAE0B52A6572106DD6E116AA3488",
+    "identity_type": "provisioned",
+    "iv": "1600C8A4C762DF0E381EEF9244F0BCB2",
+    "key_seed": "503A4D71E1FAD56FE3DD7F8FEB65ACC7F116E09E19B8E7BE7EE89E46D0366B1B",
+    "metadata_key": "9BC9C621E4AB6A57CAA69475ABB06C4F",
+    "section_mic_hmac_key": "B7D4BEAEB788E9CA0445663C6EC20E21A73EDF73FC4A8DD61A948CB6C21C5CEA",
+    "section_salt": "BC04AE42E6A53E5EB4E86672375D905C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "84ECCB6CC061557F886B9245936C76D0",
+    "aes_key": "7F3B0C1BA0EDD583625029C096DD029A",
+    "data_elements": [
+      {
+        "contents": "CA7963078A11D0A7228C6CBA3744CC798AC512FB3DD9DCFE",
+        "de_type": 967
+      },
+      {
+        "contents": "C7D4BCE12696450F47D9EA845672",
+        "de_type": 431
+      },
+      {
+        "contents": "177DB2DED349ED0EC2447742",
+        "de_type": 910
+      }
+    ],
+    "encoded_section": "729013B836C7E8CD3614C380121EC46833E761911000FD700ECE83DE5196B3247F17E0C7B8C2900471D9B6AD99D7935EB289FEAA1BECBD93D8E91AAEBF23F71D856A1D211558A798F1593DF65C74FF1A11691490EE59F50088E778193E2B82F10B63A019F699E6276425DE74B67A6997E7A199",
+    "identity_type": "provisioned",
+    "iv": "2A30A215680833E42AF075488E76C5C6",
+    "key_seed": "47C165ECD9CE942B7213F794280434AF22A2BA002C5C841D3AB6D53F8AD6F3BC",
+    "metadata_key": "0D9AF4F93F888702495D34C8C38C9C1A",
+    "section_mic_hmac_key": "804B6DE7ED0C8CD36BD95E305C4E03946C8E398E2CD8E6D1D6C0D987E01897D2",
+    "section_salt": "FD700ECE83DE5196B3247F17E0C7B8C2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C52DD0C0E31D56FCDA7804C58A6F3399",
+    "aes_key": "0E2385A585A2092D068EEB158B3B816C",
+    "data_elements": [
+      {
+        "contents": "7A1AD7A0F081FB5E75D2AEEE6B34E40AA9C45FE2BB68C0F4",
+        "de_type": 552
+      },
+      {
+        "contents": "78598CA8AA45EB9D46",
+        "de_type": 810
+      },
+      {
+        "contents": "",
+        "de_type": 233
+      },
+      {
+        "contents": "30827F3E80566B78620FDBFFE3FE2D31EA2FB8AA41E7EF2FCA",
+        "de_type": 557
+      },
+      {
+        "contents": "7BA140F266BEB8206478BA90",
+        "de_type": 880
+      }
+    ],
+    "encoded_section": "8C9013B90FBFD47BDC1DCFB3485BF6F2C909039110007D1B4708E6954D4C0804966FC950EB44900475C5B49C69BB677D07FC03DBE39284AFFAA42C55793F626211D1CC5907A788409D6A3CBFD4733A315BF3F2462B8C178BE54FDEDD30AA166BE53268874FD8873ABF7B2F33C42ED03E57F54B94023F17A7C6C7CE53C370513D892F41ECCAC88F501E55DFECD2",
+    "identity_type": "provisioned",
+    "iv": "2CBD7DCD77B66F17326CA3E36E31DA3E",
+    "key_seed": "6C7E8B7296170D5C035E8738E66032688E1392FDD96567E94592D1B001E4833B",
+    "metadata_key": "ABD68F6323A32F1FDB2F278439E1D526",
+    "section_mic_hmac_key": "9B87D3AEC1B5C3199643D8542122D7EC1C619A6241F194B04929609E8598825A",
+    "section_salt": "7D1B4708E6954D4C0804966FC950EB44"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "835DD484D2FB9B6ECA4A3EEC6067A7F6",
+    "aes_key": "2DA3CA25BB833993F56C8A66D16ED327",
+    "data_elements": [
+      {
+        "contents": "C44E2A5E5625A6",
+        "de_type": 860
+      },
+      {
+        "contents": "2134F33D2359D4F288D3A7977D0C8001EA2B4EEC98BC93DE27F9DE0FA7",
+        "de_type": 523
+      },
+      {
+        "contents": "993DA1984ABC29C3B21A11F03125",
+        "de_type": 683
+      },
+      {
+        "contents": "C1ACD752F8FD5786645E11DEAAA13BCE",
+        "de_type": 865
+      },
+      {
+        "contents": "341BAA9E743EA09FEC2E9282EA6B132D48309B8DD7F1F946AE68EFD43028",
+        "de_type": 613
+      }
+    ],
+    "encoded_section": "A690132E3DED612DE97EF7F9A44BE590A63D2B91100032FB76369CEB20CA101F1007ECE8694A900403BBD86CE0A9D8F2188B771C6025C47E9B3B31DF6640F8254189CC17F45B61470F01CEF3C0F22720B9ED4EAC50100F4015DD4049B640741067959EFCA41ACA09A216E34BF48DB9377CBF1EA080665151195475CC8FEA2CCB1BCA845314547E3540C1184B0D27C59BD76642114F823391E1358A05FF9817F31C19125F1C5DFF",
+    "identity_type": "provisioned",
+    "iv": "1C0CFBCAD7A73BE78ACEEC5AD98A6506",
+    "key_seed": "10E128D39BF362EC6FFD8E8E1686E0BDD731892BC2A40524346E46905AB097AF",
+    "metadata_key": "EFB6BBA329C8523F0D9593F267ADCFE3",
+    "section_mic_hmac_key": "19B833BD8554B60C5A689185D7E087A08B15186B42AEDFDCE2238A7BBC3A120A",
+    "section_salt": "32FB76369CEB20CA101F1007ECE8694A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "771BE78E465BE4E1C94ACB5E4B4ED943",
+    "aes_key": "52956780EC21E2BAF2C9BF59C7C03E3A",
+    "data_elements": [
+      {
+        "contents": "3369A56AD364F5A53D4790B0C56E920F79",
+        "de_type": 743
+      },
+      {
+        "contents": "7C7FA8A3BB5B8239EB0AF0D3BF",
+        "de_type": 344
+      },
+      {
+        "contents": "0CE02F21FF72540ED4351A6F04276489D0BCCB",
+        "de_type": 649
+      }
+    ],
+    "encoded_section": "71901301F306AEF69B7E55C7198404150FD74491100042AFBE3BB7529B6CE1957A34DD897301900416173A7AD7E611475C2FBE369D84DF2C53203A301A4CD74CE4B1C52BA023FB02B145DB1BDA8040E38F09290D173FA538917FDED3CDDA945A215A954B9B627FF1C724F32B958044C7AD01",
+    "identity_type": "provisioned",
+    "iv": "104F4E9AE0F9B86C604E225E535AED28",
+    "key_seed": "E36C5E16253B098CF1A878723BC88CAE483B7CE4F075210834DF5F4232B3D721",
+    "metadata_key": "506A4A3A85045F7ABCB2AC0D381C86EA",
+    "section_mic_hmac_key": "F79D72CE2DA34D0B002EBD4CEFC93DE588B78E3D252E44D9F154EDB987BCF86D",
+    "section_salt": "42AFBE3BB7529B6CE1957A34DD897301"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C8E0431CA117B1831BB6671CA7AA07EF",
+    "aes_key": "E7AA3598705D6B36C70661E4AAEFC72B",
+    "data_elements": [
+      {
+        "contents": "E50F0C47F610A27F273715EFD96E61AFC41F07F2",
+        "de_type": 424
+      },
+      {
+        "contents": "EA8A291C59E1",
+        "de_type": 432
+      }
+    ],
+    "encoded_section": "5790136D1DDE2484AA68F62E5BE1167BFFEF169110009500FA6CDDCD547D0BEDA1D6AFC6F04090024468565BA0402401B76CF55C729B5FE569695A820992D12CE45A465092D826C730310E13D9F8EC5D7D5717DA77C6CF46",
+    "identity_type": "trusted",
+    "iv": "71D6A3CAE2740361D9ABA1066E7330F8",
+    "key_seed": "DD5E65D75F8C056BFDA78D3EECFD5A42A9397ED1F0BB12378D085F0B70F8750F",
+    "metadata_key": "6C92FE3FDA57C9A3553A09FA5B37D77B",
+    "section_mic_hmac_key": "71C6651A3B4956C3C5782D13E4FE870B4D5492C3CE9BEE8374F1D5298147D14F",
+    "section_salt": "9500FA6CDDCD547D0BEDA1D6AFC6F040"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "09371C9C7EAF87C2E11BFA366EB616AF",
+    "aes_key": "84BEEAF36C24AA0C83C825E4BE3F10A3",
+    "data_elements": [
+      {
+        "contents": "4281AE866AE1A0745A5E6C3842",
+        "de_type": 254
+      },
+      {
+        "contents": "637873B552AB893BBE8CBFFA65E859CB95F2",
+        "de_type": 935
+      },
+      {
+        "contents": "F0AC06ACF732D6E74DBA2367CE64432210F0C03A9C1093",
+        "de_type": 950
+      }
+    ],
+    "encoded_section": "769013BCFA668DEBAAEEFE66D7CB5AFF0DDBC5911000178E6852E46CE22115DEAC0CBE53D4A8900479D4969091D3685CE787E51C0B7BAE37FBCA6A67BA8CB03A1BB9D1A08E0D7E6365AB4AE42CC2E445E6E302A7C1BCF28E69ECE32FFADD69F0BD5EA0297DB7241022BFFFF7746884B4A7A55FE41E2A50",
+    "identity_type": "provisioned",
+    "iv": "972F1E1A54C9BF5A318CD2F381001A0F",
+    "key_seed": "20054A2AD5787C8190261524586AC1317AB9A939D775FC8A5559736F67F8EDC3",
+    "metadata_key": "29A2753D8D2D165B52677B4478E148BC",
+    "section_mic_hmac_key": "0F498B4B84396C4E4BBD8EA8AC04D100CFD0993AAF4630865665155399FD7CE9",
+    "section_salt": "178E6852E46CE22115DEAC0CBE53D4A8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "312B34C1F8D62CEF39CC22C6718F2AB7",
+    "aes_key": "1393D21C5EE04A4ADFB2A154F1BC0CE7",
+    "data_elements": [
+      {
+        "contents": "897F9A471F5A3E7ED36837AC9911A40B3546DCCA1FD9DE7874ADC67A",
+        "de_type": 852
+      },
+      {
+        "contents": "4DF6900031FFFCE8F2E54A3AA4337FF095D50D25B677AC204B57",
+        "de_type": 813
+      },
+      {
+        "contents": "850EB9276E6B8A933DD66B44F18F2CA5",
+        "de_type": 44
+      },
+      {
+        "contents": "E814D95425E1DDC645357D54D569E223CE74",
+        "de_type": 822
+      },
+      {
+        "contents": "CD7697BDE298D3F2C6",
+        "de_type": 97
+      }
+    ],
+    "encoded_section": "A590135059149E5A7168D5647488D33E4C5D1291100043760DEB67DD337023E74D8057F8D0B190015EEC17F40A65777B5FD8DFD42A41610D7405BE1ADA0FEC3FF9582ACFA1BADA3027626CC70E0975642DC341B332E735BA412C8C217BC425C11B515077701A5384F7E66F54AF4137938CA1F8BF584C54AEA4FEC7A508FCDE1F7F045182F31C1DC9A486DB90340F79ED72F39D26D658C766AA4A149387CCAE407EC5013B7A61",
+    "identity_type": "private",
+    "iv": "CE7902AEF1D998C6ED70A23CAD78AEE8",
+    "key_seed": "9B2B2B4455F675F8BFD7D6EF0D11DB025DCA56B8FDCC3F91E381A5F588F2AEBD",
+    "metadata_key": "AC5D5DFCB4B394A76C768472CE1C4DB7",
+    "section_mic_hmac_key": "A42A8C6554F3CE2FA45E52702A152F0B5AC825789727105DD723478778B410D6",
+    "section_salt": "43760DEB67DD337023E74D8057F8D0B1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1E2C19C423EA98927CE4F1FFD50DE67E",
+    "aes_key": "36C1EC0F045707BE7FB3744C95E33F09",
+    "data_elements": [
+      {
+        "contents": "9427449425",
+        "de_type": 409
+      },
+      {
+        "contents": "FA4CC2EE4D6A",
+        "de_type": 341
+      },
+      {
+        "contents": "CEA2CA161176B4C3B33134476EF837EF32B5D278660CDE48E6B03C81F17F",
+        "de_type": 102
+      }
+    ],
+    "encoded_section": "68901308621A6F1E729548386EEE826FB947109110003A5233398F5D3BE64AE007254529830690022A40871AEDE5A3A73C83A9E5220F800AF29C2D8CC34A6EE29734B811823BBB805D32FE9C34BD588DE52C3C9B5FFDF5722DCD625D10AA0B72943A2BB61BFF5E5109",
+    "identity_type": "trusted",
+    "iv": "FCE402A294C3AE2A8D0F94417F0A990C",
+    "key_seed": "E4DA5C79DB8653F6C010ACEC3D8D3A728690FCAE87811AB4B442CF8888597E7D",
+    "metadata_key": "140A593CCC7E365D5E08D7B30ACE7B1C",
+    "section_mic_hmac_key": "410D6C692C1A6E677B21261AC4EE2D61087FE874265E1A23BD3996208779682A",
+    "section_salt": "3A5233398F5D3BE64AE0072545298306"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "88E66F0BCB2F75310F193D23254ABE27",
+    "aes_key": "3BC020A4C2A62B57BF29E29668DB8E5C",
+    "data_elements": [
+      {
+        "contents": "B7",
+        "de_type": 727
+      },
+      {
+        "contents": "A75A29",
+        "de_type": 909
+      },
+      {
+        "contents": "8DD038868341",
+        "de_type": 505
+      }
+    ],
+    "encoded_section": "4A901365F4100A29450DCA93B0632DA7DABEA79110008CD04A9DF97342A29F966C6BAFC2A962900112DF363FE2D500C29E75E28E5D7831F485B3CF426A87B4BA74379063395A62240A0F5D",
+    "identity_type": "private",
+    "iv": "28152DA95BB94508449CD3C229459A76",
+    "key_seed": "A03E79B5DC16D85A779CB85A0771817415A6DF256701B261C1ACCD6B4D5CD2D6",
+    "metadata_key": "3FAB498CA08113604E40C3D5F393006C",
+    "section_mic_hmac_key": "3F13BE4FDECBFFDED1AE34D92642C7CEF5C406B877DE00B647EE908C12E6A95E",
+    "section_salt": "8CD04A9DF97342A29F966C6BAFC2A962"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AEE14DB3ADD86B7B5DF9484C853A3781",
+    "aes_key": "8B112E04E5BD800D5169E31665A707A9",
+    "data_elements": [
+      {
+        "contents": "C01854F342050239D5A83BC58D8BCC107B",
+        "de_type": 364
+      },
+      {
+        "contents": "B06F3F2E6DCE4B0C488F1FBA9A3E09FAC662",
+        "de_type": 793
+      },
+      {
+        "contents": "A516FB2431DB05EBF5514F03650339568203BFD3FD5844765D3BA41A",
+        "de_type": 57
+      },
+      {
+        "contents": "0321515318EC9D9071445D0600A67EF2971E",
+        "de_type": 688
+      }
+    ],
+    "encoded_section": "939013ABCA1090D779D697AC56F3591EFF812E91100042E5D94F3697DAE433EB544B01407F509002E58E223728C742FE9FDDDFC05278550FBD564FA0520DF322B90B6F2C18C3E281896D409BF9CFDBE0306DAB483B407019ABAD11FB0B52420CA2CF238C20C05A31ACCF6911C5E2C3488705144CA481B31672D7BF316EF49CB3D88BEA3115DFBE71B69EE065D12039CE5166C9FC",
+    "identity_type": "trusted",
+    "iv": "3BB0C86F4784D62474D2310BB337A09F",
+    "key_seed": "EDAA78185A1A5175083E82BCEC82F099C8331C5C132E9719C5CFD92154857279",
+    "metadata_key": "7FC7DF905655640A265CE4249EF2343C",
+    "section_mic_hmac_key": "FD55BD1DF6A3A7B11CE1F6CD6F54B5D5F467908CA565EE5EF51D8E87DAD23F3E",
+    "section_salt": "42E5D94F3697DAE433EB544B01407F50"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B7611E4DB66970C64C508B012B19D038",
+    "aes_key": "2AB8E62B732603133EFE0A777862A3B8",
+    "data_elements": [],
+    "encoded_section": "3790134C043B652FC7D9BB7E47E7C074C00E9A9110003B975A14294937B99D71E213A16D49749002D1804746ED376A0B7412BA53650D6F5E",
+    "identity_type": "trusted",
+    "iv": "896CA16D40C2FE9EF467463B781B2D30",
+    "key_seed": "C8CC1B103276D084459C1C0ACF7EB4E360F9E700891FED6676E6D1075B19A369",
+    "metadata_key": "141C175A69BC895A7B2F6DEED99F036C",
+    "section_mic_hmac_key": "D3219E1AB65611823B84767FF42E79D91D19EACC7C057CE11954FF13B1E1876F",
+    "section_salt": "3B975A14294937B99D71E213A16D4974"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3647592C7FBDF648CD7EDB024F33BD04",
+    "aes_key": "3A1A12B6FACDF29899EE462AEBA9B344",
+    "data_elements": [
+      {
+        "contents": "88A9B2A6",
+        "de_type": 712
+      }
+    ],
+    "encoded_section": "3E90137DA38E03A36C9F9176947F63FB67C12491100062620E36B963B4DE09225791E16F486690016BB6BB370C97BE4450674D73D9130B348323C380B88DC8",
+    "identity_type": "private",
+    "iv": "1BC76C617AFC378D7A296ABA4757EA3F",
+    "key_seed": "C61557026D3D253A85F7AC194BAE74A1E761F59DAD126F47136E993CF2F5B6DE",
+    "metadata_key": "D0ABA18228B34F9AF59D7248CC844111",
+    "section_mic_hmac_key": "8FC4925A00CBF30B6ACB61EE98B832AEEBB03CE0ADDBEB4D989FAC453FF32F15",
+    "section_salt": "62620E36B963B4DE09225791E16F4866"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "40952DC0D221AE688E3E7162C0923F0C",
+    "aes_key": "19B5C1C6D9E48CC519A20E81D5D63604",
+    "data_elements": [],
+    "encoded_section": "379013E18D5027806A73D9048564062FA8098991100014034FE308AA953FDA2D86F85CCCEA57900257D1F879E535C6C429BC4A2BE220EE7E",
+    "identity_type": "trusted",
+    "iv": "BEA9A319D926C16A93C7C563D3A4725B",
+    "key_seed": "F701D04F3AB67A553F3F007677AE499E1F573CC2AC9219EC6386AC9C001A55B7",
+    "metadata_key": "758A0996ABFD4059E79623EEE974A91D",
+    "section_mic_hmac_key": "B2C8BB02DF87BBEACA0088A3DD4B94036C80788AFE9D7BCCCEEF03265C97B824",
+    "section_salt": "14034FE308AA953FDA2D86F85CCCEA57"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "756FDFECA95A8AD628CC57BB41E734AC",
+    "aes_key": "94D6D7BB94A5503D75AEF2C51C940589",
+    "data_elements": [],
+    "encoded_section": "37901353D770C75B341EB54A72DE3DD4D0CC899110003B7992CACB34F3A9C66283E73D212F1D9001E853DD8ED1E580D63FAF80B4FB4F620B",
+    "identity_type": "private",
+    "iv": "8121921E27A4466509E573B3255F16CB",
+    "key_seed": "A14520D1E0ADBEA8EDBD90360368C3B198C604A2340EF83FEA134721D6C79613",
+    "metadata_key": "7AE0BBF927B2590C49791320A4325B68",
+    "section_mic_hmac_key": "D5727682C5055A4090FAE17716DF6B0B0E321019C4D0809E8200850A4CBF458B",
+    "section_salt": "3B7992CACB34F3A9C66283E73D212F1D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "82B7393BD43AE40BB06D1A3A2823133D",
+    "aes_key": "469CBADC1BB8023F1BA0DA05A9310B22",
+    "data_elements": [
+      {
+        "contents": "40A863DCCD4054C96E",
+        "de_type": 667
+      }
+    ],
+    "encoded_section": "439013C0F02349BBB2FDECE00F7C9296899417911000EF4B9DE242CE6D6AB6DA0B896C786F389002B25529FA48ADEF1CE9AFD454048A8390B4713EE35D5B6314919CD64D",
+    "identity_type": "trusted",
+    "iv": "D7DE8E7D886512AD0339056C7CC54C62",
+    "key_seed": "BD980624836660BA2C0982812F6F23078802E982DCEA461EE94BD4E8922BC8B5",
+    "metadata_key": "060B8DD7D93EFDDCE3FA26ABE785B9E0",
+    "section_mic_hmac_key": "BE821CA0FD33D9E57C3BCE1371AC54A6DC461EA194D0910EA9B38691F76434E2",
+    "section_salt": "EF4B9DE242CE6D6AB6DA0B896C786F38"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E4160F1914D232240945FBF05EC8DA4D",
+    "aes_key": "673A79D26DA0EEBFC56E507EDB61F814",
+    "data_elements": [
+      {
+        "contents": "BC315F251FB68CF65A3663343CA7",
+        "de_type": 562
+      },
+      {
+        "contents": "DE7CC83BD90D587EE41E2EBEFEB39E85BCCB1B876DE2A3ED7B9CD046",
+        "de_type": 259
+      }
+    ],
+    "encoded_section": "679013B3FABC50AFB0E2CC60D03D341293DFFE9110000AB560F9226EAE8DFF4EDA62A661E9819004946BD0DE5F133F9AFA422180C709FF504E166A3FF94760F24B0248E830D4E848058AF863E9F4296908B3F1061FC8668480676FDA3DCDCCDD5B6C11A9AAB632B5",
+    "identity_type": "provisioned",
+    "iv": "3DC82BB10A656986B8EE35FCC6C4D681",
+    "key_seed": "DD867E8AAA962AEAD05B0A027C1D0BF098AC2B5A9BB81F6629A09A3DB6DF77A9",
+    "metadata_key": "EBED6F7F0D41A90BCFFD07DC38AD4E7F",
+    "section_mic_hmac_key": "52835EE8B0354CC1819B4543F5216BDB806D6202C824FF1BA2B1EAEAEF7B667F",
+    "section_salt": "0AB560F9226EAE8DFF4EDA62A661E981"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "23EC2882AE29D794E00F3C929ED4EE82",
+    "aes_key": "21B174B8C2B2C1C32A151FFB3BEE8682",
+    "data_elements": [],
+    "encoded_section": "3790137AE67F61984C37A01FB8B94165B8EB269110002A37AE16791BE17CF76D244E7714E43190024E181B5BBB9F5FB00E6A774D12FD3C00",
+    "identity_type": "trusted",
+    "iv": "A9BF6682AABD317E8A06D867766A652D",
+    "key_seed": "A9804B5A70F86AC25E6D501C3CE9EB2E2125DEEAB3AD5D05F0BEEDB0B70F8E89",
+    "metadata_key": "640AE8DF2C5FD30430D67174765B5D9C",
+    "section_mic_hmac_key": "33C747147E7BF5C0E36AF6EA7071655381568471DAFA92ABEBE4C78677219216",
+    "section_salt": "2A37AE16791BE17CF76D244E7714E431"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BCF6CA8BA694336C8555B15D6E06F5AE",
+    "aes_key": "18375E93FA4431A762A9B737D2336ED5",
+    "data_elements": [
+      {
+        "contents": "A84F3A8B3FC540FD359F5DBBC001EF57",
+        "de_type": 462
+      },
+      {
+        "contents": "75029C04F876937EF2CF8BE2BB09B1241CFFB0A631DE263E",
+        "de_type": 960
+      },
+      {
+        "contents": "7A26076DF65B13D39494",
+        "de_type": 555
+      },
+      {
+        "contents": "BD1C",
+        "de_type": 307
+      },
+      {
+        "contents": "DF3E8C",
+        "de_type": 513
+      }
+    ],
+    "encoded_section": "7D9013BA96BEE6CEC0F79A25B8BAEB823DA45B911000F11199E929FB5DE7474EC679FE4B5A4E90022C2DA6326BC23D58AA4E77AE3ABF66A8B261E4E78FF193835D2B9A5F3AC971BE4949847D170429A80B5D763F7D136E9063D7F40A75AABD4F956710B6D5EA391C631FEF5310261634D6578A6A7F7184508FE7CF52E224",
+    "identity_type": "trusted",
+    "iv": "0CA6D1FB7354E9E4CEF190EB8ED327C9",
+    "key_seed": "ED623407DB6E29C91192E1EDE3B83BF57EEECFE10EA5E2547C59F31F836634B2",
+    "metadata_key": "A6DD5533AE1DE0719410FABB85400660",
+    "section_mic_hmac_key": "B34016F96945E2AFA191598597EA58E6D5F5AE9EF8158B45AD50F60EF436C732",
+    "section_salt": "F11199E929FB5DE7474EC679FE4B5A4E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DDCCACFAD9051E1B99C43C413148B0EE",
+    "aes_key": "E247320C16C197987CA928AD87BA1030",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 720
+      }
+    ],
+    "encoded_section": "3A9013BCFE98BDFD2205C5C668EED3FFB8E672911000DDBE757080D8CA7B65921FC3A638646190046065B7703FFC69AF2E14B00D90BAE51F9111E6",
+    "identity_type": "provisioned",
+    "iv": "BCD763E963B259C4E19C8A6F62F05810",
+    "key_seed": "406F13FCBECBF6E301208FC9C4AFBE541728D2241C987C38D7DE961A95874752",
+    "metadata_key": "FB990D13C3D0EBE79AF30E19B6262D66",
+    "section_mic_hmac_key": "D441BE8D9C7952F3B60B023069D64BF2397257FC8FEC7A2BBC090CB2646238C9",
+    "section_salt": "DDBE757080D8CA7B65921FC3A6386461"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FAD923151B5EE843B58C5E02C8636EDE",
+    "aes_key": "D6353A97771C8967BCA9F7AE4884DAC9",
+    "data_elements": [
+      {
+        "contents": "DE7E13DAB250CEC845BABCD1",
+        "de_type": 860
+      },
+      {
+        "contents": "6531B82D346C3AFD2D276FA5E02E2A93",
+        "de_type": 274
+      }
+    ],
+    "encoded_section": "5990134AC7CD530495F2BAFB85AC93EC6F012B911000438C5B3D5AC51F66F6C683C9ACDD401D9002AC396666585E471439C0A5EF4DC05AF49B9600A96284D58D2C72807902769EBBCD923F31743ABB3F7440C3AD394CC436244B",
+    "identity_type": "trusted",
+    "iv": "30D9DC82B1A62B353A8B52CA627211A0",
+    "key_seed": "77524ED887D0A9A1A96782470380EF5672938C21EC13CC43658246E6520D3D75",
+    "metadata_key": "76EA680B23CE5062373D8F0AC9FB0912",
+    "section_mic_hmac_key": "A83C77A67D7CD424BB55C400C3F12E4FB47F6602FE03F0ED8A1E2DF1A311D1F6",
+    "section_salt": "438C5B3D5AC51F66F6C683C9ACDD401D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A5EBA3EC2EDC3DD714C2EB3288F5E142",
+    "aes_key": "CE45D560B190E915974255CA1378211D",
+    "data_elements": [
+      {
+        "contents": "80677B0D8386DC",
+        "de_type": 102
+      }
+    ],
+    "encoded_section": "4090133665BFF6F114B04DCD82E3E6627CEB879110003295E996819A16214D393D240335FD779002F049668CE0B95A53D2EB885B92DB5BBC901C37F3C5F350C0C9",
+    "identity_type": "trusted",
+    "iv": "D9E137F6608666AF35D69A5EBEEE38E1",
+    "key_seed": "F33CB9D14DD2597AD7D68D0A4F7BC85C4F32D2B7F4EE7227DABFF6FC5FDAD466",
+    "metadata_key": "AD9CC4271E2075FB353A9CB5DCD07162",
+    "section_mic_hmac_key": "0D0174A3186C8CF1D9A57AFAAECB8B284D7E08E82ACCF3AF6C39F0A27199B496",
+    "section_salt": "3295E996819A16214D393D240335FD77"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1AC1B2E96E974AEFAE2BD3E1CE81AAD6",
+    "aes_key": "BA47EF9390032854FC6FAB604892F729",
+    "data_elements": [
+      {
+        "contents": "E6063E542EED02F65B9B7BC296A3F78D",
+        "de_type": 413
+      },
+      {
+        "contents": "A5D1",
+        "de_type": 969
+      },
+      {
+        "contents": "7ADCCC9D04EE88E04EACCBEBB555CBC4A2479E1425656DC017568B74DA",
+        "de_type": 919
+      },
+      {
+        "contents": "2F0BDAD9E57D070C4667F38E193B",
+        "de_type": 949
+      },
+      {
+        "contents": "8CF202B2A335336F0A5F2589FDC3CCB21E46658B549A787021",
+        "de_type": 618
+      }
+    ],
+    "encoded_section": "9C90135BB284FDF4C800B87360099389CDDB9B911000BA4FBB4D16C95F10913371D7DCE9D3E390020CE61C619DB74977497E427B1C0E9CD9F9D3581D42AE5D15081AB1494E46914E962366A6FADD9C79CC4C64BD0B3E7A83011385919B57F8C04E17CC46D31EB470B7580195A2608C816EA4D5D34296AFD1CF3DB51A99327E8420F15A73539B451D7A7BD9915F56D2D9CBB7684C07146564B6E24B5CBF",
+    "identity_type": "trusted",
+    "iv": "42F6C7EF706340A72B05C5C6A99E316C",
+    "key_seed": "B04216F33F8E756F288B27E645564265383CC9335CFBFF47F439629236A697F3",
+    "metadata_key": "A1FCFBA76475B80E589617C587806CC1",
+    "section_mic_hmac_key": "1C62F6D1D011A26040C16859D31494E66A00896B20C852B3FCA34B065DFD48C1",
+    "section_salt": "BA4FBB4D16C95F10913371D7DCE9D3E3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "89BF5E643860DA08F54E99325545E0E3",
+    "aes_key": "B6EBB7A5B193254333D9EBA863ECDC2A",
+    "data_elements": [
+      {
+        "contents": "7A10F256CC3DF91E78DF65B24F052339E8C81DEE572D96C4",
+        "de_type": 833
+      },
+      {
+        "contents": "A15E536C45941AD26F38EE81E50E6F5C54C5DFFA12BEE0E3D25E8CC5CF",
+        "de_type": 607
+      },
+      {
+        "contents": "12CE431D2ED376FD594A80943044EA856C642D11DC0F2D9450",
+        "de_type": 31
+      }
+    ],
+    "encoded_section": "8D90139DB6F3EB17792669F56F53FA03DE87C09110003AD9600CE15FC3CE465D0228FC8CCE769001CBA6140B22FB73FB1B0E4F8950351659BD43415DC971F0FA325B81986C47A74F3FB2CB7E7374C278ACE925EBF2B7067F8E6488C4CC57BA6AEB832C8B1B4D9A002C8870DFB147033F652EF25CCF19D8D59727EA6BF61A0B52D489106BD21BF8788EBB015E1465",
+    "identity_type": "private",
+    "iv": "AEF47384658A554A58363D62F7DB13CF",
+    "key_seed": "056214B06D0378EBC92E13F6C5EB0FAD7564243DD2317D66CA38C340BE54BB4F",
+    "metadata_key": "813ED8A5314A2505023A99227D91A6A9",
+    "section_mic_hmac_key": "618FDE5AEB4E190D45EFF78AB4BF2DE14BA35855973E688853E749A69E3A47FE",
+    "section_salt": "3AD9600CE15FC3CE465D0228FC8CCE76"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5D5F06D37BE24A3EAEDC3F746FF4E579",
+    "aes_key": "E713EE216EDE341FE268F6237725F725",
+    "data_elements": [
+      {
+        "contents": "FB504B451A1F0820FE29A2FA",
+        "de_type": 164
+      }
+    ],
+    "encoded_section": "4690137FD2067B6E15D4CC6AB3E34A8295F66F911000E9A8A1CB24E1555E9EF384F4124C6BE29004A963964B7D5921A4FB27CD39CC194268B8CF554ED279FCA799130371519A31",
+    "identity_type": "provisioned",
+    "iv": "13C7A35EAACE574E2EAF7A13B0A6A32B",
+    "key_seed": "22A1BCD9F24ECC0BC71F4525D8E531EE7A5E40BAE308C43DA07F034C883C8396",
+    "metadata_key": "E6A03218FDE3E27FD782B86E176647BD",
+    "section_mic_hmac_key": "C0FB0F118A976D4B19E95AEE65EA88359C9F071CDB15ACBED9211A5B1EAF958C",
+    "section_salt": "E9A8A1CB24E1555E9EF384F4124C6BE2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95B989A608C0D6967B551F8C7CA6EBE3",
+    "aes_key": "0B231EEBD178E593D7F473D51406B900",
+    "data_elements": [
+      {
+        "contents": "36520A4632FCCBDE9AD34A32301A30B2439AB22E330AA7A18C3A61",
+        "de_type": 275
+      },
+      {
+        "contents": "5B2B4C836A013A651571B13DB670155FB746325B8F",
+        "de_type": 620
+      },
+      {
+        "contents": "DEF0BBB8C8B205",
+        "de_type": 41
+      },
+      {
+        "contents": "1B5CCECF35D720A442BB0AE56E1E91D5EE0CF2BDF5DD6240",
+        "de_type": 719
+      },
+      {
+        "contents": "6BEADE80570A85CC0D95AAB0E3DD76DC2A8123DC48D395380C",
+        "de_type": 789
+      }
+    ],
+    "encoded_section": "AD901306AE4285463C53926B1BD6FADF6E1C5691100045E4F8E6A509CEB6F9A49BE5A9B9C20C90011A4BB20D968C614C735D4923F5CAEBC4CB1C56FC8F02B3319B998A5069B4ED1BE73891C3F7D0A6F4211183456B571768FCB52280F32D2D9BF903D21EB5B98781A86FD0548F68A78703F17E0C2929BEA276A85041F8B8EA24B9D6E7D6A627A49812349B564141338E2B3C207B17EF8729E4A3E3A0079D08F33A7B34CC1499CC47A5D460CA1DBB",
+    "identity_type": "private",
+    "iv": "AFC59E49ECE5A97EF0FAEACE62660170",
+    "key_seed": "17FD257E62CE7BC878DA16C5043579B98F79732B0B817B4F2EC51738CB77527E",
+    "metadata_key": "3186CBA7D7424D1B8B47B2897F11732E",
+    "section_mic_hmac_key": "2594DDF724498B52B29F3DFD0CCA6283C3403310AFC8E4EF37FC475E30367BD0",
+    "section_salt": "45E4F8E6A509CEB6F9A49BE5A9B9C20C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EBEC6D0EF372E4BBFD8A88C319852FFC",
+    "aes_key": "AAB99254BC7CFFE24CB438DF3C727AD1",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 432
+      }
+    ],
+    "encoded_section": "3A901307CC248287D8A88DB671E1586D3FB9CC9110002CC36DDB7D7A279AEAE122BA13AA019990046C51B7CFA17821450A90C98A7B38BD5DBE4FBC",
+    "identity_type": "provisioned",
+    "iv": "685AD69EF191E56EF06D7C86714348D9",
+    "key_seed": "5F065E34B94CD90CC221ACED8910D641D4FC4C6F56934780189E4E6E67DA4901",
+    "metadata_key": "A592DE8232D18AE8E195363D4B6CD07A",
+    "section_mic_hmac_key": "0264B54BB116AB3514B39B737B87ABEE206F8CD594CBB3E9B24648C5F53E635F",
+    "section_salt": "2CC36DDB7D7A279AEAE122BA13AA0199"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "94DD0021538CC04AA70A5F77125BE600",
+    "aes_key": "F0C472163938A1BD47B15B942FAFC48B",
+    "data_elements": [
+      {
+        "contents": "A00EFC0F33C01F0AAC4F5DC6541F53C8CA5B34",
+        "de_type": 481
+      },
+      {
+        "contents": "B12B24",
+        "de_type": 630
+      },
+      {
+        "contents": "81319ED0F5EE75A123443AAA795D81B9278993C6BF",
+        "de_type": 503
+      },
+      {
+        "contents": "8224C14BE4C7CCF408C4E3",
+        "de_type": 435
+      },
+      {
+        "contents": "681B900D27F4699C820155209DAE07AD857DE896C037DC49876E1E",
+        "de_type": 951
+      }
+    ],
+    "encoded_section": "979013E5CA4E440ED0EB31935166AF13C4256A9110001ED58C6BF2B47B9556A5D909E29A7AB49002DC33B008D4CF57AC179104B3F5DDABE7D56D19EAEF9BA28100DE838F8D6B98CD2CF81FF9BA53847382E6F71E502F127A858FEBB8AE77D0A504D685DCD638CB167B60DA02ADCE29E3F57BEA20F1113C7718CED429E7A813E03208194C0C99421F55D22265B201A2D80FFB254F5FD619F1",
+    "identity_type": "trusted",
+    "iv": "807C9838F5A3DF8073FDFBAC74766862",
+    "key_seed": "ECA0F4886F264A9CFE0BD7255F6FA88B64AEE99627DD204D4100523CCD96A354",
+    "metadata_key": "8344533765DC97CD1FF2B037CABBD8D8",
+    "section_mic_hmac_key": "F0D7ABF7AC2B3A3945209EF72944671D98A4EBD63BF94CDE96EE2D364699342A",
+    "section_salt": "1ED58C6BF2B47B9556A5D909E29A7AB4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C112DEFB7B31A43E9EA8571DBA1CCAB4",
+    "aes_key": "383D18B559037EE81B05F2A3A636A6EB",
+    "data_elements": [
+      {
+        "contents": "27C28C2FF32016A4829B967FDDEC6CC7C0B5BFF5EB412D4899BC2C4A754D",
+        "de_type": 382
+      },
+      {
+        "contents": "4650A741B70621E3D576483481C56AA21F9C",
+        "de_type": 310
+      }
+    ],
+    "encoded_section": "6D90136D9098A3888E98C30DA05CCF9EC57EA6911000FBB0F01A46FADCBB680D50359653C27490017AA7C1CE5BBC717C0A1D0003F112B244703260E60034777FAB79B3B9CAB5A5E8E2A955F11A4CD50FF0D7D1FB7F8E17944795C73E8A24161A13FB2F578F549A82B2822D63668E",
+    "identity_type": "private",
+    "iv": "B87F931962984B01923EA47FD3193409",
+    "key_seed": "A9A9F32E48740489BAC39106C497D0350B42C553BFFAEE0A88D67B4A5B424D5D",
+    "metadata_key": "745B81AF3E8CC9B2FA7203A71AFEA41A",
+    "section_mic_hmac_key": "0AD484AD1377BC263AB10E7FD0990D6AF7A9F70BC9CEA564EE60913EFFBB13F4",
+    "section_salt": "FBB0F01A46FADCBB680D50359653C274"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8F20FB3600592D6EAAF2F1E74BD0CEB0",
+    "aes_key": "F9A37408AD4AB15C048209D298BF9C3B",
+    "data_elements": [
+      {
+        "contents": "348A6AC7D6951E86456352AE6DC70519FBC5",
+        "de_type": 869
+      },
+      {
+        "contents": "07BFAD354EEEABB377E35A3CA9F93C2919D63A5F60F47E9A6E6452",
+        "de_type": 379
+      }
+    ],
+    "encoded_section": "6A9013F3CCF8ADF413726CF270C2464A7D6D0A91100075FB92C2BDB77630B96A7871350B3CCA90018B5CB809F8B85ADB3582601C38071C20A3D7C776D0FDEA4E4386B23278FF5C05EF39173B35ED5E64B5E63F5299971353BB80A3E88226FDE3610113FAE3650A87EF3BE8",
+    "identity_type": "private",
+    "iv": "F48F1E40820CDCF7DB3E6107C448A32B",
+    "key_seed": "771A683FBB41544543E3000270F62B0E75BE97DE1E8931A5B0E30874A315B40C",
+    "metadata_key": "CDBA3FBDB8051258774E18B2A19647A9",
+    "section_mic_hmac_key": "58F7FF2CB350E0FEE347D0DD9DB0A50D1074F737E04E34351E5D897545149F01",
+    "section_salt": "75FB92C2BDB77630B96A7871350B3CCA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0718AFF8D3F260798EF3336D840814F9",
+    "aes_key": "1978A74AB0D377A6443E38504531BEA4",
+    "data_elements": [],
+    "encoded_section": "379013792A0670A6E601F9061A049EDD5E34FF911000B179453D2FB79CF56E8A31CFA8B15A389001BBE562860A2039D0152A0496133E865B",
+    "identity_type": "private",
+    "iv": "167401B2B2AD0240F0E57038F262961B",
+    "key_seed": "003D1A9D017396CD95C9138D152B44E500408A013CC2E3E50B0D01B2E9CD80BD",
+    "metadata_key": "77C3866FBD457BE09D29A90CE12E1689",
+    "section_mic_hmac_key": "B3A6886A924FE33D724385D45E5FE158AD66370D2791BA5DC553D5E66327001D",
+    "section_salt": "B179453D2FB79CF56E8A31CFA8B15A38"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "21E532A86E771C51558095090F8AB251",
+    "aes_key": "68075EA0842A1D448F7B244E5FC6B29D",
+    "data_elements": [],
+    "encoded_section": "3790133308F2B9AB4434656EC8305913A01C089110001708C5DD384808FF64D2BA400F2312A290013A8342F0CC39E9B96584E5CA7DF1DE7C",
+    "identity_type": "private",
+    "iv": "227DB4C6845BF40B82073BC0783EC727",
+    "key_seed": "C2EFBD062A6498B9E52733922A598BF3D4949A74FDB57D92D0ED064239E5C37F",
+    "metadata_key": "41C0037D03840085364AC811B553003C",
+    "section_mic_hmac_key": "452A3B6B009FFDF2B2E8F6CC57A2C741418F33E7A85D9FFBD33FA2A8ECEE28BB",
+    "section_salt": "1708C5DD384808FF64D2BA400F2312A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "52F9C4E2952B34DF2C0296D50B197CBE",
+    "aes_key": "507A391115EA010FC7DCD6F69DAC200E",
+    "data_elements": [],
+    "encoded_section": "37901397A0CBA6F76625846FD918D0DFA8B5EC911000807D0ADCFE480829130092A629C43B779004E57DD041E63A98C2398922E8C6780738",
+    "identity_type": "provisioned",
+    "iv": "2CFF04243F275FBF2A33912ED849608C",
+    "key_seed": "C39B6A57CC29C43B34A9B24B6AA5F88B68249F3EF3FA242B7A227A7FC5B9F013",
+    "metadata_key": "F902EDE5E988C6DFCB6E550C739CACBB",
+    "section_mic_hmac_key": "F5914A0D86F740B26A39165146FBE172469E9C3B6A8D7FF5659E8C3A3C40FAAE",
+    "section_salt": "807D0ADCFE480829130092A629C43B77"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "560AA4E7A57E03DBFAE7FBD4EFDA7CDC",
+    "aes_key": "9638DDE581FE5B67F2DD50376E3A99D4",
+    "data_elements": [
+      {
+        "contents": "F2AED0A54D5317974CEA1732E79EFB900594C5660907",
+        "de_type": 56
+      },
+      {
+        "contents": "",
+        "de_type": 992
+      },
+      {
+        "contents": "",
+        "de_type": 86
+      },
+      {
+        "contents": "61F5EFF11047065B2933557CA2EA9356A4B569A20B362C760A",
+        "de_type": 748
+      },
+      {
+        "contents": "8754249571E61C93D55CA58B9DDB23402C",
+        "de_type": 790
+      }
+    ],
+    "encoded_section": "849013203F5A7282936A2C5F6B7D31F2C2B3F1911000350FBAA0A5C14EE71DD5564DF054F7059001F63722D44C16939F37A228801E10C7AF0D3AB2DB910CB4A915A66C9AC57A057E79A46BEAE2B01B7B2422C789156152DB2C0C3C31EFCAFB6260012D7B01D8E55C0DC93FDCE2C9E3883DFBCF4D97E76A4F557470AFE3F6F3630A59DB334D",
+    "identity_type": "private",
+    "iv": "5FA4D01E917F4AF96837EAC84C94033C",
+    "key_seed": "AE37490A40777E13212927937035E5D5CAB7CFDB227BEF01AFCA1D4CFB348910",
+    "metadata_key": "7C0861BE5B2DA8F097517E544D50EC5D",
+    "section_mic_hmac_key": "A2CCBE29DCC3756A8B56810F1D9BB20F3087F60A04CF2968CAFB067298BF1FF0",
+    "section_salt": "350FBAA0A5C14EE71DD5564DF054F705"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "136C515299513C1C23396C72472A869C",
+    "aes_key": "F8E96AD115365C1DA32ACE0E955D707B",
+    "data_elements": [
+      {
+        "contents": "0004ACDFC6E1BF2DFE084CEBD5210494FA370D8D",
+        "de_type": 439
+      }
+    ],
+    "encoded_section": "4E9013B093C4394DF11527B26EF2770B65B0579110007923EAF675A0D97190BC856AAA92FA5D90015BC232EFAAFFE8486D932A63D9121426BC5FEE983041B15F40194FFF44A3470C0F5862DFA2DF7F",
+    "identity_type": "private",
+    "iv": "2F972A959571317A323BAEC64650D9E0",
+    "key_seed": "653D1790B9B4E73D40ED58AF3548C01EEE9A1CA7EDBB6788113943F29BB8A7A8",
+    "metadata_key": "85BB2BE74E51ACB8D631E31C193730C6",
+    "section_mic_hmac_key": "01A9931123C16D70DF660545EBDC39099DBDE472CA53ECB8CF65CFA3FA67033F",
+    "section_salt": "7923EAF675A0D97190BC856AAA92FA5D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D877A078133B36B3035B3D2FD091B01",
+    "aes_key": "F141257F9BECEC2DA61B11F67E4E107D",
+    "data_elements": [
+      {
+        "contents": "21F663C2B4668DBB030C2D2EB1506BDA8A77FAEA98B4567E8A91CA",
+        "de_type": 173
+      },
+      {
+        "contents": "71",
+        "de_type": 401
+      },
+      {
+        "contents": "FB19",
+        "de_type": 751
+      },
+      {
+        "contents": "755DF137F59366F68158D6BEA4F7877F1D2BB7CCF6962137",
+        "de_type": 748
+      },
+      {
+        "contents": "A286226956337347E1A54B",
+        "de_type": 192
+      }
+    ],
+    "encoded_section": "8790134D927FD029D5F95E67D68D646A6A361491100039D2819931C23ADD06B49F18423BC84C9001B112FAE321EEC67D926158ECED1C2B19CBD9F742E45F25925FE6C6795BE721A2F72638DAB903CF4C970C4B3C35DD693FDAB3DEB719FAED9DDC1711F51F631B36FD26BFC34F9039E535BCB78D1A14D5113270D00F96A956D0DF082E2F30901283",
+    "identity_type": "private",
+    "iv": "32F841444267601174749E94F87DE1C2",
+    "key_seed": "E9333F52CFC570120ED0105ED56952CCE1FC9645367619713FEBAD14AFF0E76C",
+    "metadata_key": "6E13A84FE3BA463ED9E607F5B1BBC9B4",
+    "section_mic_hmac_key": "3C44C33189816BB62961DC5FFCF2C71D910C0730BEC3953C5411489DF41ADFAF",
+    "section_salt": "39D2819931C23ADD06B49F18423BC84C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "71A9A746DB966A4456DDE375B6F12606",
+    "aes_key": "1D5C27ED10C3063737A421D25B061C89",
+    "data_elements": [
+      {
+        "contents": "39D427B897A964131313B227CCC4DE10B368B8",
+        "de_type": 519
+      },
+      {
+        "contents": "3A67A2E11BF608DC073983D1FB0DA3",
+        "de_type": 701
+      }
+    ],
+    "encoded_section": "5F9013B8AF9217D548709840B3AC857034ACB9911000B4F398A8A439BC972F70E2609A6C7CA990022A637108B4F22FC613C0A0E75AC2471132DD1D972FCC1174BE70BB6CAFBB3F6998C49DDBEA8A425CBB28664071BEF42114A0701F112D37A7",
+    "identity_type": "trusted",
+    "iv": "F2754259EF584E77196E83CA8B4B49EA",
+    "key_seed": "B1939F4E5BF1BBA5B56B4C53FCFE87EC1873876B1869B215D79AE2B742AFAD08",
+    "metadata_key": "E35B349B13DD23987416D3C506A26EDA",
+    "section_mic_hmac_key": "2DBDE1B077515A353314FB3D933F17F37893CA377766A4C8A3BEFE1E8E2FE8A1",
+    "section_salt": "B4F398A8A439BC972F70E2609A6C7CA9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0633A7D37D0E75C82950F86658617ADE",
+    "aes_key": "1EEFF97162B2CE8A3E6C657B8AFB9DF5",
+    "data_elements": [
+      {
+        "contents": "0A263635A12CA6",
+        "de_type": 461
+      },
+      {
+        "contents": "13696B3B2D423455ADE08CE7E3BEDE",
+        "de_type": 304
+      },
+      {
+        "contents": "4382E5A1567DDC",
+        "de_type": 911
+      },
+      {
+        "contents": "",
+        "de_type": 3
+      }
+    ],
+    "encoded_section": "5E9013C561581D56E580C0221BE31A9F5A97D4911000F341712F781AD354FB9444AEB9813A769001EF9DCFE8941FC69C1BDA3B6E61D484BE3CD363AFA8F753EF60E93BC52D8721FBD05DFD27C74584E9087B7645148A9696148501617ECEA1",
+    "identity_type": "private",
+    "iv": "1442CE37668B7EE9935E4E400C7051BC",
+    "key_seed": "E999377BE50FBB31279CD98440114E6CFD0019FA212A47015B9EE5EAC4BD49D3",
+    "metadata_key": "D489962146D1E488C02D148298B86ACC",
+    "section_mic_hmac_key": "48392CA50B2CEA5B7AB937397A530A54E1EF8320EE64E23E377333DC1A0725CB",
+    "section_salt": "F341712F781AD354FB9444AEB9813A76"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E5BCB2BFB4497D55C0BFE5EDE0CDC6A6",
+    "aes_key": "59A78870C55690255DBD141A15F090CD",
+    "data_elements": [],
+    "encoded_section": "37901330292E7FF856BD9476F0190AEE3ECA199110009029F02502CCA11E12A7809D3BA9304D9004901405D5FDA5DE684E4D372DEA766905",
+    "identity_type": "provisioned",
+    "iv": "08584E585B5ACA5124277D06708F34AE",
+    "key_seed": "8AAF95575F0A0E04188D3E42DA9F50AA3740E28DA9BE4815B98E74707B02AA15",
+    "metadata_key": "537EA5D04F0A1B31DC898C1FEAECBAD4",
+    "section_mic_hmac_key": "F8DCF1DBF531FA564EBA22F2809144AF11DF8BC792A54F77513AE58406FACE1C",
+    "section_salt": "9029F02502CCA11E12A7809D3BA9304D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4579CC1B14F511A11A441B67B89E39DA",
+    "aes_key": "7E0F6C860EF0D264F8ED7FDFA9D843DA",
+    "data_elements": [
+      {
+        "contents": "F8CDB7B169E1147E9B47779FF86A1F7BB2",
+        "de_type": 284
+      },
+      {
+        "contents": "A7FCB30D4379892BD07112349F7580699FE8B8",
+        "de_type": 603
+      }
+    ],
+    "encoded_section": "619013E68A36F6574C0776D73BADC793720D31911000115B858A780FD00A4B1D74707D2F85679002F3B4DC9017DFCB21B818ECDA648233753AD42FEE0C77901D741C38EEFF3188811EA6EC7BDED6517DDF15636024BF3DD27B6CFE7A479848AB9DD9",
+    "identity_type": "trusted",
+    "iv": "37288FF7CCDB400825540E0E494D3A30",
+    "key_seed": "1577AFD72DCFDE648AB3084F07F93F275D98D58FEBC60A6CDBCBB1B1EC0E2F05",
+    "metadata_key": "77A66776AD508B9319A72FFAE4F45720",
+    "section_mic_hmac_key": "E2AC40D5A99B858D41D224CDB76685071E9DA4A1A4313E913C7C57DB5C05E76D",
+    "section_salt": "115B858A780FD00A4B1D74707D2F8567"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "AD85D70775BA4E741F713229A6EF6529",
+    "aes_key": "28A1B46194B2DDC3497E5AAE297539AD",
+    "data_elements": [
+      {
+        "contents": "F3F9AD43482D0E8DC791D639C671542CA0EF24E4A3",
+        "de_type": 292
+      },
+      {
+        "contents": "C32E4B8D3F8F7B308A",
+        "de_type": 578
+      }
+    ],
+    "encoded_section": "5B90137F7A54A12574145B6DB3F5E27E73E7BF91100024E555596DD4D3555D08243513295FBC9004A301DDBBD6272926BB9DC0B9885A79507EE94B5969DD57C197A16CA97315534F7708D2B98743EFB67CDE8880B55CB6FB6048F9BF",
+    "identity_type": "provisioned",
+    "iv": "6899C0DEC131BB47E9D9DC98DD724BAB",
+    "key_seed": "59F841FD000EB3E98DA6DA3035D326B9242698347F0C972E2C45E6D28C2B7A2D",
+    "metadata_key": "A90DB67D319DE8549F8B31EE91B69FD0",
+    "section_mic_hmac_key": "B903E393AFE19D7DC80AEDAC8222CD5B99E60102BB471E4767F06DF32561F7FF",
+    "section_salt": "24E555596DD4D3555D08243513295FBC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1BDF3C712E3AE53D63309EE3B8023A87",
+    "aes_key": "980CA9E6379B483E443DC1E160D5201C",
+    "data_elements": [],
+    "encoded_section": "3790130534A9410FE91114106C1CA9A8062F9A911000E578AE0019A2141EF58F01365677B05490047AC84A7E04229A68A6F7F3308374957A",
+    "identity_type": "provisioned",
+    "iv": "7D7E507A0BE6403325935B1DFA05A9F3",
+    "key_seed": "ABA16E9B7EE1835A8CC675D390FDD4616623AC235379B657C1233FEF741FA690",
+    "metadata_key": "2D8A58D701172EDA89904C96AFE41524",
+    "section_mic_hmac_key": "54E5FA2CE95932EEA68CDD1BD3D445AB83FEF2DCEF7E3A9B2C3785A92B228302",
+    "section_salt": "E578AE0019A2141EF58F01365677B054"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CBDCE43E4A6BED0CA0C6D08F3065F633",
+    "aes_key": "CEBF5E518C10D4684BEC405850BC032C",
+    "data_elements": [],
+    "encoded_section": "379013FE585D545653A98465FB672C230E014491100043DB7392F99B019A671A05708D588FA79002DCE155F4602E46063A0C523C88E2DC50",
+    "identity_type": "trusted",
+    "iv": "4B26BC7185A6C854190C227BCAC402BD",
+    "key_seed": "5916B9D7017269DE9134B2C7612BB1EFD625FB48BFAA111A0A2C093F2277EA26",
+    "metadata_key": "9D9A222628AF278F409455DDEF8461A8",
+    "section_mic_hmac_key": "A03260EB043E0791406F9CBBAA2E3F35EA9D3E5E0DE545C3BA5BAF070DACF5A6",
+    "section_salt": "43DB7392F99B019A671A05708D588FA7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E39DC77B87C9B486CF0A220E9F96005B",
+    "aes_key": "710AB1ABB206738BF8B7CD25F447C6FC",
+    "data_elements": [
+      {
+        "contents": "4B",
+        "de_type": 934
+      },
+      {
+        "contents": "66F3ECB89A6EEEF79D7B7E56D0322DF39B288742A2C1C501ADA9A41B6DB7",
+        "de_type": 110
+      },
+      {
+        "contents": "16C065D0395BF1207051A48B11E8CADF",
+        "de_type": 386
+      },
+      {
+        "contents": "98BB36DA75",
+        "de_type": 76
+      }
+    ],
+    "encoded_section": "759013A2B7ECF2852EA59A6C5F1CCAAD2756979110002854AECD9C5381CCBF80A06371B88FB690040E78B4D151F14503F20A32EC29FF08EF3B152E32D1A0A6262EFC3A259020C14B6387DC646B3E16ED8F3D3E519266F723184D8B9833BA01AE0320B0F40CBC89431D479F1C6A77A8B91F75CD625434",
+    "identity_type": "provisioned",
+    "iv": "907158F1F28F23E9346C336D15BAF4F4",
+    "key_seed": "7974330F2BF907399B0A00CC0732BBC1A06946E0B1D581E4A4186F99E778F076",
+    "metadata_key": "6B05DBBF085163F895C1A797DDAB7BB7",
+    "section_mic_hmac_key": "D10DD1068B113669C31BE18259AA3C6E077D61E97CDF58A6C6139E14C9CB4229",
+    "section_salt": "2854AECD9C5381CCBF80A06371B88FB6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D2778817F879B9E6369EDFE544E22294",
+    "aes_key": "C1691E7FCE0574DF8952878B6381739F",
+    "data_elements": [
+      {
+        "contents": "EDF6EEE118AEE831E7451217",
+        "de_type": 925
+      },
+      {
+        "contents": "EC9312D8F49AFF",
+        "de_type": 220
+      },
+      {
+        "contents": "CFBC75",
+        "de_type": 681
+      }
+    ],
+    "encoded_section": "569013718B15A1291DF01695B0DE521D99FB57911000947D8B59F619BDD6502FDF257004C9819002E4348AED16D25DA49B95C26845BF7DE590721FCF8952532E2002ADD53B5A98AD19B3F10E85425FB761FC9641FD6182",
+    "identity_type": "trusted",
+    "iv": "4077CA3D2F7BB0F5D8CEE41F01482B98",
+    "key_seed": "18A71701D5DEE8400E61168A3B3EF1AD1DDA90BC194C446C8BA40B6480C30CDC",
+    "metadata_key": "D1FE231F740FC03B295276053B2BAC3F",
+    "section_mic_hmac_key": "82AE800A495516651B39F72786BD066F05890A592D64AE7C1FEB9071FEE6C4D5",
+    "section_salt": "947D8B59F619BDD6502FDF257004C981"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "587A03C7955F9860870984298B058015",
+    "aes_key": "331E9D1FF1937D5F85F0668282E65C29",
+    "data_elements": [],
+    "encoded_section": "3790130FB6023392D2A41095E8206D06D7FF0E9110000D85431BAFF333B2573911AFB2EE969B9004E7FD0D3F84B425FCE63798DC6DD93C29",
+    "identity_type": "provisioned",
+    "iv": "77A5EAB32784959211B1E7EFD4086F70",
+    "key_seed": "E46D0C46C240ADB0C96768BDEA14323BAA3AF59DA10695DD2AA96963FB75F633",
+    "metadata_key": "0364468086B86E4E69D4998412D9446A",
+    "section_mic_hmac_key": "B8A88D796B1F5CD4E1B3FA421F911CEBFBB33203B5F54D397B77AB08C6A4CECE",
+    "section_salt": "0D85431BAFF333B2573911AFB2EE969B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7A1632119CD401B77764CD3CBA1B7E48",
+    "aes_key": "367BA98DF8FDBDF8D92C9E223204F9E7",
+    "data_elements": [
+      {
+        "contents": "660362F50CAC47EB6D5C372ECB360FED6010E33CFE2BF3",
+        "de_type": 744
+      },
+      {
+        "contents": "2E27FF821CD7CE8C7A",
+        "de_type": 864
+      },
+      {
+        "contents": "24CA67B8",
+        "de_type": 38
+      }
+    ],
+    "encoded_section": "639013B6F61D3EB8ABF5F504C50AC36A94EEA191100040B91207E7595A02CAF00DACEEB362229004899D84903A3B24808A0C8B7F59194E87CE3801D9A364D3232D8C9A1825EF6116E5C80E0ED3BC09DF178FBE1C6D28BAA73E8492380E14FDB44EFCAF61",
+    "identity_type": "provisioned",
+    "iv": "6A91D4D5C4DFDDFC880B73A3B7240702",
+    "key_seed": "EB30836609013EE83889ED5ABF6FC302F243144E118A2965AADDCC8C3987566F",
+    "metadata_key": "0BC8A5D803D9916D0BA83CBC5E0D3F30",
+    "section_mic_hmac_key": "D89DB6FD35D1A9A236C7B32B2713282376AB727EE4D22775E9A6E7AB64719479",
+    "section_salt": "40B91207E7595A02CAF00DACEEB36222"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA9BCBE55A09A0AD1993D33AACDCEF3F",
+    "aes_key": "D480AB0495AC86543854653CF7AF5605",
+    "data_elements": [
+      {
+        "contents": "5743AE7D722BF57D",
+        "de_type": 59
+      },
+      {
+        "contents": "254368832881E13E4BCD68DD622D7B27BF77F0B248799E3F6BCF903334",
+        "de_type": 42
+      },
+      {
+        "contents": "172233F269FC283AFE876265C41CF433148DB69C743C8965E791",
+        "de_type": 792
+      },
+      {
+        "contents": "C007E7BC097140AA592C287EAA90479BCE00838A84B7D529",
+        "de_type": 531
+      },
+      {
+        "contents": "9678CB4436B9DB612DF2BEA08AD619C84DDF8B58DA67CBA0CC491D",
+        "de_type": 177
+      }
+    ],
+    "encoded_section": "B69013EB88670C74254B7E3124F568EAB21AB39110003CD98524158254D763A056D3D7B95EB890028EAD7A637F8D0F6CAF0D74B4A65BFC4C6DF88868FA11D9F5A5B179A5D884CD2C8693AA26F7AD7A949830EDBC504133BE5D5DA8317E74CEFC303FE55553BA1734B63ECDDEE36D3E90127BD85DFF414089E19356CC288B316AD5C88F7237EFA35AF07DC32C636D7DA300C8ED550F4409BD32BCEEC5CCEED448C4C049C19AB21C3E2FBA27F94F7C8402C98F5E60E23783",
+    "identity_type": "trusted",
+    "iv": "EBD45E06E481E15D113570B3CD3A690C",
+    "key_seed": "99F26C755B35B9E8F02471B50155868AD1B5415A36A8A09AEF2CC16B23E93484",
+    "metadata_key": "98AE7741589B65DC2BF7D9A9F725F908",
+    "section_mic_hmac_key": "66C7980C46970BE68B05B5263A65D5E3401D4E91DCC084AAF19D401694607A57",
+    "section_salt": "3CD98524158254D763A056D3D7B95EB8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6F9CFB4554053A39150CCBCFE3D0AF1E",
+    "aes_key": "9D3541DE5EF0E257E4B8321145F57B4C",
+    "data_elements": [
+      {
+        "contents": "A43F33AE23920C0423748C754B99D99129E9DB",
+        "de_type": 37
+      },
+      {
+        "contents": "729C9F3BFCA94ACFEF114794B2",
+        "de_type": 109
+      },
+      {
+        "contents": "AC",
+        "de_type": 730
+      },
+      {
+        "contents": "5559BAE1D900",
+        "de_type": 729
+      },
+      {
+        "contents": "2EB49A44A2641ABDF0CDDC03EF43B7F3F52C449A892F",
+        "de_type": 44
+      }
+    ],
+    "encoded_section": "8090134F6688FA1A2E7BA04ECB6DDCB44035359110006AD7D11C0944CB91DB95B631C734D8949004E082EDC66A42BB6B05378C26D87B38BA4186497644057393408F087328EC5885E174BFFBD7466E158C474C51F5D524FF92A558F10761A4844FF9F9E1BDCC1C6E0AEEAB7E74BF4D04F79D6366857D63E74633C326B74396A4D9",
+    "identity_type": "provisioned",
+    "iv": "BFA35B0ADEC12C33F4A25CE69E314D44",
+    "key_seed": "585B91BAE582CFCA04B2CB0F4EF6228BF9D3ED8757858BC946567C7C056452D1",
+    "metadata_key": "ADD1DD5D5AFBD1297CB46459564779B8",
+    "section_mic_hmac_key": "3CC8495681BD196A59435B9E92678852F7229B3A17222A46F35AEB19872E8736",
+    "section_salt": "6AD7D11C0944CB91DB95B631C734D894"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0D008FD70A96D4922781509DC8233AC3",
+    "aes_key": "B6597B106536DB997B33270C1FBBFD01",
+    "data_elements": [],
+    "encoded_section": "37901319D976A449635BF9366F08B28550A32A911000540F306324634FD806109D2FA0F888719002A37EF91C879233705329EB6E1C7C1F3B",
+    "identity_type": "trusted",
+    "iv": "1F610FE4CEBFFBF09ECAB7001A9715FB",
+    "key_seed": "F000887AE6054C5ED93C14654F9CCB540E4ABD072E4A03C741D446809FB90C61",
+    "metadata_key": "F774AD3779D9F9C3CAFD222AA8FC1791",
+    "section_mic_hmac_key": "C5CA0D48EB97535C6759CC5851C60CCC59EFD96218C3AF81E97AF2A492C9DB42",
+    "section_salt": "540F306324634FD806109D2FA0F88871"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A0697BBCB8D71C0E3CBBF61383BBA0AF",
+    "aes_key": "2F302DFBB66FACFA11C38E4437398B74",
+    "data_elements": [
+      {
+        "contents": "247B14830A72CDBE2687D79D9216D81F4E3E545B01D75A5B75E29756E4",
+        "de_type": 20
+      },
+      {
+        "contents": "387C2B46942623D8615696845A90B3DE25FF253A159C89A2A3C340",
+        "de_type": 793
+      },
+      {
+        "contents": "F45668C015DDA58C872A0171AA605889E691398726",
+        "de_type": 252
+      },
+      {
+        "contents": "1474A3653170C9",
+        "de_type": 181
+      },
+      {
+        "contents": "E49C82D1F206",
+        "de_type": 10
+      }
+    ],
+    "encoded_section": "9D90138CFDF8CCDED054C4D7003AD4CB75765F911000C8C6351ECBBE018D1CAB2041141387E9900264E5A396E06459D7AD5061A8D1E6D6DB9A4DABC2338C9D39F291289A3948F91D3BAB928C47FE7503089FBEB195056064D7893AB1F884E7637AD93079312F00D1DAD71FE98C10370C42C1707C48358951AAFBD6F72889E26C67D846D13273A21E244DC751C76197BB577738B327CC39F017F56D4753BD",
+    "identity_type": "trusted",
+    "iv": "E73D0D0D01F12F05E954418529D9F056",
+    "key_seed": "E7513A0CF82FE239A9CC581240AD1BF40C7546506BAD18C1A754B8A50F190FFA",
+    "metadata_key": "094D5377650F8BFD60DDFC55521E1C61",
+    "section_mic_hmac_key": "7FAD140CC4B335530A8754A5CCD4A423AA3EC678ED3CA3D817906EE925AA90F0",
+    "section_salt": "C8C6351ECBBE018D1CAB2041141387E9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "66AB56CCB8DCF4E02102C595173AE0AE",
+    "aes_key": "080E3256F009193CFC48DBECD6A596ED",
+    "data_elements": [
+      {
+        "contents": "5FFE88F1F3AD43AC0BD206FB1261",
+        "de_type": 554
+      },
+      {
+        "contents": "C5C5120C2AD8114C0D7223CA0D4B",
+        "de_type": 376
+      },
+      {
+        "contents": "AC57EE249B96DD8F426FE4F02031E48B3AB4A248",
+        "de_type": 74
+      },
+      {
+        "contents": "1CF30B1E1C519ABDCED6",
+        "de_type": 358
+      }
+    ],
+    "encoded_section": "7C90137CF07245A7C2E4D9159C8C517CA1336691100063F671E6C1543317418A20C1BA7C01319002F7A70A1BD5393866D2E1E43D580C3C81FD09C428377BC94E8125F1ABAA938A5CB37C29DC9C9232679D1BDE10E8C586905A2EB8CBD52CDD1A50ABE0633360F0311BE2C3E60F32CA5ADDA8212D0D820A5442CBF1F122",
+    "identity_type": "trusted",
+    "iv": "6686516893FC3245873F63E6FFCFCBC7",
+    "key_seed": "226D0D4CBF82EF7C5636C8D21ADE2455DA18017EF11D9855A1C6623D7F52C49D",
+    "metadata_key": "B24F2E75B0207CA3039D2627726F15BC",
+    "section_mic_hmac_key": "DFCBCF569269B4C4C73D69E96B0589931C3BE5F7B5CC80B473A68ACB0D036DF3",
+    "section_salt": "63F671E6C1543317418A20C1BA7C0131"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A11C310F925DDFD146F831393D6D0FB9",
+    "aes_key": "1AE54656FB14E83D942075C749E2115B",
+    "data_elements": [
+      {
+        "contents": "BD45361322D9A02B2048A177A0103CF3",
+        "de_type": 926
+      },
+      {
+        "contents": "2A214CB5FBCA350A5BB0CB335B9FEA40CDEB6455C037B6821A599F17",
+        "de_type": 708
+      },
+      {
+        "contents": "2680C9A00A375A0A9DCE72BA1CE694B2E29CA12A",
+        "de_type": 273
+      },
+      {
+        "contents": "B79A1762E7073C6A46BA17EC05",
+        "de_type": 988
+      }
+    ],
+    "encoded_section": "909013FD6CFE2EE955035DE89C9F166B3E5EA4911000D1B1FB53397FE51B93F74900975CD47E9002924278101267E2D8E228B4C34D0A648C8A6B294E3CC9D07B62D1EF749C7BE05103940D261EC73D1F1C12C99A4B4F8ED3F468AA17CAE45B46E532F632012B8EE8E5C99014BAC4E2B5E20FBD1ED9DC6C6CB2D755E1FED2D3D8A5ACABF57ABF0D012C45D94137FB93592D",
+    "identity_type": "trusted",
+    "iv": "892E1A354B6DE952C5B014C7907EC182",
+    "key_seed": "FAAEE89538A2E2D5786C8946E6A0CEF832F309174B38DF73E4F84A99F15935E5",
+    "metadata_key": "0DB3D13A2E4FD91A299522F1D8119843",
+    "section_mic_hmac_key": "99CB5D0E2B02142282326CBFF5F9DA1E0233F2CFFC8C28BE12CEB87B9CC6FE6C",
+    "section_salt": "D1B1FB53397FE51B93F74900975CD47E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8CD7AD20B2C8317FFA8C35639F74A2BE",
+    "aes_key": "04A4C39B860940DCBE6D31E645C6C979",
+    "data_elements": [],
+    "encoded_section": "3790130B2D888B589284B7A0756A14D057BA899110005EB69F216C556E3154B71449355FEEF590012148C3FFABD2C9E7021C7025F13AF42D",
+    "identity_type": "private",
+    "iv": "82B3040C024A93C9E9FA070F5751EF54",
+    "key_seed": "44A25B92833732691F61F166743F7EC9F9BED95D496117FB2C0D5FE8ADF243B9",
+    "metadata_key": "58D26BDAFC8C232C9AE6BD1466626518",
+    "section_mic_hmac_key": "15F5A03411DE20F46038D7081E95D728EF120D4DD04A6D17A89E2BC7EA240C6E",
+    "section_salt": "5EB69F216C556E3154B71449355FEEF5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9ACA1AFA24CCE7E90657920FB0F97ABC",
+    "aes_key": "C6114A9A61EBAA0683432F07A306BAAC",
+    "data_elements": [
+      {
+        "contents": "67F0136B918AA30006",
+        "de_type": 450
+      },
+      {
+        "contents": "3A54424FDE3D",
+        "de_type": 210
+      },
+      {
+        "contents": "BC4E6711DB9D574C249ADB",
+        "de_type": 362
+      },
+      {
+        "contents": "DD7AB44C2783A1",
+        "de_type": 994
+      }
+    ],
+    "encoded_section": "64901398942DA061F73AD3DAC7FE04713E897F91100075C50E7D6DFA055F5967BDA20F6011D59002528E07C9E1AB8195BED4404ACF13B5C463F7F522DD45BA62C382337A18053527ECB87D1190488DB8FA1CAFD71DAE0F337F1F27E30405F2B3AA562A4000",
+    "identity_type": "trusted",
+    "iv": "C8D5BEDD1D514F4163FDC162E170E8E5",
+    "key_seed": "0E2E25E5F01089D937936CC39D8D004DC28C1F10D75552A9F66E98D510282092",
+    "metadata_key": "481B6CCAD1368A7FB57B226F25C5CD38",
+    "section_mic_hmac_key": "B9E11ECDC5E537C1669EC49389B73866E18AF8E13A0B6934CDD0B50154662368",
+    "section_salt": "75C50E7D6DFA055F5967BDA20F6011D5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D78B4DA01181538E9901A89BCEB17DD",
+    "aes_key": "79793A9EED14B1E7431C0B803ACE76D6",
+    "data_elements": [
+      {
+        "contents": "1A14E4524B490E8107DACC2F7FF359791012B7BD73F680",
+        "de_type": 889
+      },
+      {
+        "contents": "7F4DD2AE08BEF6906DA8",
+        "de_type": 173
+      },
+      {
+        "contents": "F8559AE2EDEEC96166AE99",
+        "de_type": 718
+      },
+      {
+        "contents": "EA7FBF2AD229DD26D55B6E4A69B5720BEC80F14221",
+        "de_type": 447
+      },
+      {
+        "contents": "6F72657C",
+        "de_type": 217
+      }
+    ],
+    "encoded_section": "8B90134FCA585270ECB11CA2D19FCD187E629391100076B4769D60E7810AF314C92E4F4AD22D90010CBA514F61328A8DF741F39426A6414A35993D0ED3645543ADCFC7F60039A16AA7B7544789824A630C6FAE0338828514A802D34E22F2677F5EF92D21B245E2C6BE89E118332EF6820C9298D64708D7E84C0E5A688C13EF9AF0139916E1ADE41C038EA24C",
+    "identity_type": "private",
+    "iv": "06676937E3AC4BB809DB29D5D0A0D238",
+    "key_seed": "13176067BCE094304F0D3D7B34200618EEB8338DC62F8B93B6DF1568D10892EB",
+    "metadata_key": "867EDB530C4387B741E3F8D5A90297BE",
+    "section_mic_hmac_key": "35533CF432DA85D9C9C797381EE7F410A1ACA2FAFAC320336E538C4CBC21973A",
+    "section_salt": "76B4769D60E7810AF314C92E4F4AD22D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "024C6620A23F3720DD27159A314223D9",
+    "aes_key": "FAAFC4270BFEF0C1B99EE28F255DF188",
+    "data_elements": [
+      {
+        "contents": "B748E7AFEF028374C9FEDACA76",
+        "de_type": 172
+      },
+      {
+        "contents": "85CFCC",
+        "de_type": 913
+      }
+    ],
+    "encoded_section": "4D901386135E41C81BF815C35F82210AA987D2911000FDBB2C065FECBF1CC2EE41B51CB6E636900217D0F0543708CCCAE565509D685542ED3F434A7B4CFFDC00B0FDD4A704B31768296C7783A0FC",
+    "identity_type": "trusted",
+    "iv": "5F7CCCFC3E69E1B0A4A75BCD2DDCC596",
+    "key_seed": "6B3B7B151F380162B9E0B70910ECDC784ED5397B3A10BDDE199A7A94BC6D8D75",
+    "metadata_key": "E138A6D9CD4C8852E08ED89542C192A8",
+    "section_mic_hmac_key": "42942C5BA5773295A61EC1C494BBA596E1F2E382026FED016C73CF9CCD6CC3E8",
+    "section_salt": "FDBB2C065FECBF1CC2EE41B51CB6E636"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "26E8D6DCAF6B89C14D2967CD2F996C3E",
+    "aes_key": "F93420FD82E0E4006F5BCD4BCAEE619F",
+    "data_elements": [
+      {
+        "contents": "DCC21604B26103BF2FF0DA36696709C57DD113AE10",
+        "de_type": 167
+      },
+      {
+        "contents": "CAB2EAF5F472143204",
+        "de_type": 996
+      },
+      {
+        "contents": "EF46C11CC5D0B3D06BC6001DF168281A0FB050B2EFE53D191E68D555D7C1",
+        "de_type": 635
+      },
+      {
+        "contents": "8DDE68F7309765DFF675",
+        "de_type": 575
+      }
+    ],
+    "encoded_section": "899013EA913BF87D8BB4054C1A63591555992D91100097BE3649478AA55F3B0F450D35B50306900432491F1FBEC83775BC41FC1166D59DE10EF12EB01455B22479FC697A8B2B10B7A56C289D21C2AA3E8DB4FFF376ED4B1AC9C8874F0A99E32E2803F7E745244F53B47EE60BB3581AD954B33BE2DE4807AE5D39CCF10C5A38616AB4A17799ECDB7C895D",
+    "identity_type": "provisioned",
+    "iv": "48710ADDD5BF6C5BA7557EF8363238C5",
+    "key_seed": "90C710688CFB0274A65B1A98B01C42367DB55644917B4590AC7D20BE4045E96C",
+    "metadata_key": "88E7BD8F22B0BCF3E7017B889AB3BDF4",
+    "section_mic_hmac_key": "93370F2F5EE939E87A903BEF02707B3AC8C0D39716C741D8D513552EA0EA451E",
+    "section_salt": "97BE3649478AA55F3B0F450D35B50306"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "57D01240BF129C429A6CF751CC3D53F9",
+    "aes_key": "AA74FA6AF836204298237570AC35EB9B",
+    "data_elements": [],
+    "encoded_section": "379013E8FB0C142819D59A85D20CE6346FC4C59110000F0472D2D144D008039AECA7226B8B49900139DFE67E4EE80F46A9B96D3AA6194470",
+    "identity_type": "private",
+    "iv": "B6E84BB2A3014E5614393F4DEF92C247",
+    "key_seed": "CEFEE1454C0BB63E85B73102F7323B441AD6589E484827D94DB7F50B158CC225",
+    "metadata_key": "18446FD698B121EFD552FB4D893FE1E7",
+    "section_mic_hmac_key": "E88F3731EEB10ACC952F79D2CFE41D9387D5544317EA307E0E929786E80184F9",
+    "section_salt": "0F0472D2D144D008039AECA7226B8B49"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BFF12B5AC3846F17A4F2671DD201DB7B",
+    "aes_key": "80165990CF33C6AEE8F5D706CA9C16B8",
+    "data_elements": [
+      {
+        "contents": "1D",
+        "de_type": 225
+      }
+    ],
+    "encoded_section": "3B901383873E9BB7C281BED884A6BC9D81E2F491100008BC6FA4DAC8237B4FCA4D351D456A8C900173A35B84F1311BDB48EEEDF03B44AB0A30DEDF0F",
+    "identity_type": "private",
+    "iv": "E79024DAB46DC39BF1C41E950EF68F0A",
+    "key_seed": "0191678E34EB80CC23F8BE780AFA6A323757EE2357B81903F0A11F586A343D74",
+    "metadata_key": "76BA1F4EE04F37541F620FF3CB0E341D",
+    "section_mic_hmac_key": "590C297824EBFCEC438E2227989EC334BD8549944587C0EF0CE8647D0CA733E8",
+    "section_salt": "08BC6FA4DAC8237B4FCA4D351D456A8C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8D64601B3CEDFC33A6EB41F2A57273FB",
+    "aes_key": "EDC4F0B53EDEC5D458373413BA40EF91",
+    "data_elements": [
+      {
+        "contents": "FB",
+        "de_type": 843
+      },
+      {
+        "contents": "78B36066A5E407DD1DBE7E3592273857C096A23CB16EE780DC5E",
+        "de_type": 996
+      },
+      {
+        "contents": "66BD25982401D8BA12065C6FE90A2EB5964D62038F03E23FBC1145AF5F29",
+        "de_type": 723
+      },
+      {
+        "contents": "7CA1830470E3E82A",
+        "de_type": 601
+      },
+      {
+        "contents": "D40D41F3E365762AFC055B",
+        "de_type": 437
+      }
+    ],
+    "encoded_section": "929013782EBB1DAC3CB17A3F3640824931823E91100064AFBAFD7BC4C4E2CA5BAFA2431EAFC290016E594B07A92708C2BD85FF96A3D9AFA5094F73F05E2BB84CAA0DF5ABDC504C9DFAF179F3DA8206A8DD374E6EEC568B1EDA5A194AA461C4685800FE4E512788300E64D570FF745A9E108CDA5912EBE36316E1856DF794B73B40A53C5B179094622859204F1F22606CD1A94B",
+    "identity_type": "private",
+    "iv": "D1317E1FAA030298FF8C5AB6BA81773A",
+    "key_seed": "62B5DBB64DFFAC377EA82F2D42A7377853DEA50F09D3DAFC4B412B687A66B8C5",
+    "metadata_key": "1427037C5581AF92467699C6A6751E32",
+    "section_mic_hmac_key": "213813B05FE7AAF9777E792FF12E2B5A66055002E83ECC0AC7FD46A652AAB8E0",
+    "section_salt": "64AFBAFD7BC4C4E2CA5BAFA2431EAFC2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "373BF3D6F965BB823E05E5F7BD3078A1",
+    "aes_key": "5CCBD9E3100D52C9CD11F35654668482",
+    "data_elements": [
+      {
+        "contents": "22E0417B",
+        "de_type": 599
+      }
+    ],
+    "encoded_section": "3E90139A0E4A93DA7F646DE9A87E125128EE8A911000AD455E1C688FF04A371C03BF7796CD7690019F04EE8F7762B6F109719AEC910F1942B2F58CF6A6686A",
+    "identity_type": "private",
+    "iv": "B2B8D3700005E09ECD4FE23F302E100C",
+    "key_seed": "57A38204ACF2ED7C4C7CBA7C9546BAA0F9FCCCF9BA57335938A4965281FE65B0",
+    "metadata_key": "86405D9921CAB755B452C98A0C6CA34A",
+    "section_mic_hmac_key": "DDBAE43D3E5B9D620B2FC4E64C02035A75DA47DFD0805E0C2E5BAD62793C712D",
+    "section_salt": "AD455E1C688FF04A371C03BF7796CD76"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1A1D7E95B4475678CE4A355E6D120EBB",
+    "aes_key": "29D17ED2A3D5BFB193E169120EE20B3F",
+    "data_elements": [],
+    "encoded_section": "3790135990E82336FE3240D282B7BADCBD28A4911000A9F95C7985EF9A9EE72717C842A698F79002CACF57FE3D1D585998EA9C305C48D2B4",
+    "identity_type": "trusted",
+    "iv": "F6DBFADE261C4E9A73026B059AEC9D34",
+    "key_seed": "7B750CDCFE6B606CA494110409A4EE9860FF6544C8EA98C11F5335546FAFBB15",
+    "metadata_key": "7635C7A2DE6BF4015EF7903C840EECD9",
+    "section_mic_hmac_key": "0566AC9D4AB6EC0FA38115AEE5A469D65014629D8E68DFAC42419EEB722ADB1A",
+    "section_salt": "A9F95C7985EF9A9EE72717C842A698F7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "30FBABC3717AEA2AA0477BD6A3E1E475",
+    "aes_key": "DED9CC135A79C82BA7FBFB0C96B046BE",
+    "data_elements": [
+      {
+        "contents": "2A350BE1BA1985F4",
+        "de_type": 111
+      },
+      {
+        "contents": "307AD47A1F29D017ACAAE833FAC539D70D1BC0",
+        "de_type": 417
+      }
+    ],
+    "encoded_section": "579013871E5F454397F1878BB4CF0647E411F4911000DDED3531E375331992E98F425EB86541900416A66E5A7082A9FBBB4099EE5F0B9A4A92DDB5C2EC4579C5D9948DABEDA010AEE1A7A0472B542C390C7FB6B3C0AA529F",
+    "identity_type": "provisioned",
+    "iv": "CB385978490958F65666D5C60B05EF91",
+    "key_seed": "F429DB5FE75E0AA2E9F2A14A68A3E15458A719C5E4558AE46C00A665BA452154",
+    "metadata_key": "D8AA437E16803D5F18FCC89767240901",
+    "section_mic_hmac_key": "0BE552F6D9EC8E01B4E870E90566D0B774B5C26DA534D86AAFB5D2920BC8BEEA",
+    "section_salt": "DDED3531E375331992E98F425EB86541"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EF01B4E820D20AE81C749A58C3DDFEE1",
+    "aes_key": "F0E49A06F5B9AC50E7421833A986FA98",
+    "data_elements": [
+      {
+        "contents": "41E065F83C",
+        "de_type": 299
+      },
+      {
+        "contents": "B680D15D9511D833860DE3CB6F2F6743FDF449",
+        "de_type": 908
+      },
+      {
+        "contents": "871078FFADADD8D86DEB9029E47B2031AC1A2BD31E1F5467C46B81F4",
+        "de_type": 3
+      },
+      {
+        "contents": "E8EB3A2427E5BC1225A8CF35D067D3B9CD241CB40066D6C6695B214E45",
+        "de_type": 138
+      }
+    ],
+    "encoded_section": "93901384E18167330C033B062C2369F35593D5911000D42B13BDC2120ED6935DA267E6E0757890043CF778DB9F3A7B9C9B0C798274C1C554F3C741D7F939836D65A1052A504CD928FD797216793071AC4B25B292BD19E3C5C47DC5907D29BB01B90C8E923E297B519EE368E979319E6017C6A69D938F638C61803CE45536CA0DD754E846E6ECCFB1AA7A93547FAC69C50663EA8F",
+    "identity_type": "provisioned",
+    "iv": "DC1E3FB599A1E7D1608626E6E17C2521",
+    "key_seed": "3A8FB9BF059E71E53718B02FE78E571CF44AB722527298D272420F549676859A",
+    "metadata_key": "1F44220ECB96C20C54640633D69DCAD1",
+    "section_mic_hmac_key": "E91278BE56B332D705A53E313E1DF4E490511699296BD4B60E121E66585D69C3",
+    "section_salt": "D42B13BDC2120ED6935DA267E6E07578"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "782D32501734250795AC4AF93A4300A4",
+    "aes_key": "D50EF6CEC2A54EF8B77C4EDA8F36BD32",
+    "data_elements": [],
+    "encoded_section": "379013F040E084112EDBDC93B5FCCB7448296F911000805E7F20E7FA28F518264F5E082CAF04900441FD6FCD160E311319C10A6893D3C924",
+    "identity_type": "provisioned",
+    "iv": "EAF6D250FC4F0A6672101E0674B06BCB",
+    "key_seed": "7620AA14EE8667D1EC09FAAA941346DF595B47B3BE63CB04D4641F6A8D5C760C",
+    "metadata_key": "B09416A05A492EC78D6F64669DA3402E",
+    "section_mic_hmac_key": "68601BACC6F7B0E429AC7C1EA88FF78605C1230693A2FA9B3CA393A64CD30A53",
+    "section_salt": "805E7F20E7FA28F518264F5E082CAF04"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FC449A50721817F66C05B8EF876F9E78",
+    "aes_key": "A1318CC4CE689EF7FBD7FE22B21E9ADC",
+    "data_elements": [
+      {
+        "contents": "D8D569D2CD36FEFEFECF0358CE1EB87EA9BB533B36B46EA7",
+        "de_type": 372
+      },
+      {
+        "contents": "06AE898607F5596FA8AD05475ECA2E9640BF3305527F30D4",
+        "de_type": 863
+      }
+    ],
+    "encoded_section": "6D901349CA53B009B567A031F330D4606450FF911000DC9E659B8BBB254934876CC5D008CBC090049ABF95152E79A7E59C2B1D293B3A354ABEB1ECBEE2CCCC5FF05D49FC9899F2126FEB50C3DD45B7E2693BF171BAAB2987301A1192D902834A4A90D24B18972DF864945E535828",
+    "identity_type": "provisioned",
+    "iv": "1EBF95D7139416EC9B1818FD5F97EF91",
+    "key_seed": "F02A2F8CD34C8A8B257B87ED39B6E9ACB1E27980726732B9E5D6B01FFD7876DD",
+    "metadata_key": "0F8F4189804AE28E4A464E7F3980FE8C",
+    "section_mic_hmac_key": "6FD39C4C89A6ACAF5AD70F154C3A597DBA3EE96C2F596420AE8776AFF63FD62B",
+    "section_salt": "DC9E659B8BBB254934876CC5D008CBC0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A9206D9C925FC35391F2CCB66843BB6",
+    "aes_key": "B164F108D4101003D41F5A265069E16C",
+    "data_elements": [],
+    "encoded_section": "379013E56300B4C0E142D630D8BF19AF1E5B0F911000BB25DB4C1E1998DC75AB7738E7A0C00990018AE9A810448A770F700B86CB37C14F74",
+    "identity_type": "private",
+    "iv": "1093DDCAD240A78B323FEEDF79291D33",
+    "key_seed": "BE17A1F7DE7B872D67ED89E58DEE8899E9786A71ED62E797F590B3DE30905966",
+    "metadata_key": "548B24FD91CE28150F24118488E8C650",
+    "section_mic_hmac_key": "73F14DB10E850262C42FE6527C0E5A26F62203277C1F4AF40C12356CF1639732",
+    "section_salt": "BB25DB4C1E1998DC75AB7738E7A0C009"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "419DC54AAA22D76C4FAA100A8B597761",
+    "aes_key": "B0C19ADDA557D389AEA1D65BA47DE9A2",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 970
+      },
+      {
+        "contents": "791EDC67",
+        "de_type": 186
+      },
+      {
+        "contents": "42EBC555C54FC8AB0241758981E329839EC9B543E9",
+        "de_type": 47
+      },
+      {
+        "contents": "42EAE840E0F23077AAC76B4FDABB671F",
+        "de_type": 237
+      }
+    ],
+    "encoded_section": "6B90131A017BAB4BEC196E0F84C5E587C025D7911000686C4845F376C37C9C3C443EF4E29E9290024E453EB1A34E995C296614A6993FF632E9F97B2DE3D624825569175BD0A9C96B5B9B87531A9FACAAAC69833461463E3C5FCB1D89B23086CA868D4303B56DCE0339C156B9",
+    "identity_type": "trusted",
+    "iv": "5321A3B70C166516A62ECAA30FB2AC90",
+    "key_seed": "404A64651191A344B06BA775AB47A6D961042C751B62DFAFBD4F05C6B692A75A",
+    "metadata_key": "F8C1EC9CDC2C188F4A9F599CF84E07A8",
+    "section_mic_hmac_key": "47AE068E71F04816286AAA0F28FF01D4F2271EF59E4A3A37E4B1ADFF9A028BC5",
+    "section_salt": "686C4845F376C37C9C3C443EF4E29E92"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F1B3435490631CC0996A289568DDA5E5",
+    "aes_key": "B66949CE919A7F877E207F57739276BE",
+    "data_elements": [
+      {
+        "contents": "CC223F25545F",
+        "de_type": 109
+      },
+      {
+        "contents": "E80181074A42346CB9CD0787A2D568",
+        "de_type": 780
+      },
+      {
+        "contents": "03",
+        "de_type": 733
+      }
+    ],
+    "encoded_section": "5590132B1C10D0A90A025571E857B2E49A4054911000837E16BED64DBA81BEE53BE1DBB1DA679001A44E99184E6B16B0499F2E19314E25CF83C93DC0D4B5AF1E140BC3EE578092057599F5C716FA6042D492852F68AF",
+    "identity_type": "private",
+    "iv": "3FDFFB73C30D8BC45F8126A86D889C43",
+    "key_seed": "5D36273BC56672627108B613CB0C12EC04806C65D019A6FE4DB8C8B20DC0963C",
+    "metadata_key": "BCFE519169AEFCC4E6986C8D370FBA39",
+    "section_mic_hmac_key": "11A4EF7B955F8050A56C65D331E17EEB0299EE364DF3B99109523110D2018E01",
+    "section_salt": "837E16BED64DBA81BEE53BE1DBB1DA67"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "712EAEC308AE64A4ED14E1F7DCB13C43",
+    "aes_key": "98F6C204DA7BAC2C924E2511E15FBC44",
+    "data_elements": [
+      {
+        "contents": "9D35F9D040F2AC28D7A81524EDB41589771336127BF26D70AF503DC2",
+        "de_type": 380
+      }
+    ],
+    "encoded_section": "569013B73F41BD53CBC78A6861EB9435FA5EBC91100023BDF35A690FDB5ECF141A3899D22F42900246967897B21A2DE7A7F9D49A25BCD939FDBAEF13807F0FF86E4F1BF007728E98849A3FE70D206C883DDC097E1EFE8A",
+    "identity_type": "trusted",
+    "iv": "078ABCE52C402BFFE7A5EB49C4AFB40F",
+    "key_seed": "40D30613640F1FA84C9F670F63C9394E0464C6FED6CA7C3F2CE787B11CCB085A",
+    "metadata_key": "10DD3208F3A5D1CE9E5FAEA859F84C40",
+    "section_mic_hmac_key": "D8EF775C6AAFB173BD2956F817257FA3A5A6F4318439ED4E78BC5B95D9B18290",
+    "section_salt": "23BDF35A690FDB5ECF141A3899D22F42"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1F407B57564489497A0CC7E672852C63",
+    "aes_key": "AFE6419A004892A3074D6F302B525CCB",
+    "data_elements": [
+      {
+        "contents": "0BC923FB8124E54605284885D20FEA3B0531ED991206A7E1E66A0D3A",
+        "de_type": 366
+      }
+    ],
+    "encoded_section": "56901342667136A1FA39944C42FA485384005A9110008916195D190EFCC6885AA87B1C7346CE9001A0FDD44366F8DEDC29560EA4943979E58082609D7F54CD6D6FDD694E5D75F1C8ED256ADD1D96425321273A8C6B484D",
+    "identity_type": "private",
+    "iv": "833FAB9A4D9EFA4B9D4A8A68DBC2905E",
+    "key_seed": "E9F13B36B01E9571788A504A9AFA132B9E57EDE7F29BDC43EE5E8AFB81CE8928",
+    "metadata_key": "88BC13E7EAE2D056BEB2093A95BD5064",
+    "section_mic_hmac_key": "2E07197705F025A3E7D117E721682E8D2C3931076CD3E0FB3CA04C4D63BBDB29",
+    "section_salt": "8916195D190EFCC6885AA87B1C7346CE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D22AC6AF30509C332CFA4656125E4FDE",
+    "aes_key": "278ADF6744B1BEA0A5E31953A0A25A08",
+    "data_elements": [
+      {
+        "contents": "DF4143D4A169A64ECC8904D569296CDA879F48",
+        "de_type": 801
+      },
+      {
+        "contents": "DD214F021EDE84B893813CA1B0F66B98AEBB5FF094",
+        "de_type": 820
+      },
+      {
+        "contents": "066A6F1A28BF90A3000A56399A0145BC",
+        "de_type": 867
+      }
+    ],
+    "encoded_section": "789013F978EE7FC9B30B192FD29EDE12023D9E91100053AD38BC511698060EC41429F1B120C590014E843B18ACC329051B5DC84693336EE6692A3865FF84858AF8E0D10C37F25DF9765DAF75F880A98656987FF6D40A4F1B4A908C1BDA79667F29FC2922AB4B512749BC50DA3E20E2E6736C501006BDDE1026",
+    "identity_type": "private",
+    "iv": "EA05DCAF6A26E50E57F282173E8D6C5C",
+    "key_seed": "B58DCFEC3705289C33368810E98B7E70368EDE274184B1E2CC42DFD597F4E874",
+    "metadata_key": "F412B16221AE5038F4C5112C7D1EFC57",
+    "section_mic_hmac_key": "552EC08151491F3DFF44DB0B5D13F691E064B4E8F09AE41CB98FFC17A607D4AC",
+    "section_salt": "53AD38BC511698060EC41429F1B120C5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "36D0C4D6C12715D7287FE97F02251BE2",
+    "aes_key": "FAD2E4C7807F81D34D2491ADBA670024",
+    "data_elements": [
+      {
+        "contents": "434F8FFE447B6BD8FA9CAA8653928D6BE5E8D3",
+        "de_type": 853
+      },
+      {
+        "contents": "57B611D2196D0DAE89249493C060AB27EA4377DF",
+        "de_type": 652
+      },
+      {
+        "contents": "433B21A811",
+        "de_type": 648
+      },
+      {
+        "contents": "ECB728637AC60A94BDC4EDCBAADF7782CDD4031A18B3F3",
+        "de_type": 172
+      }
+    ],
+    "encoded_section": "869013E40676A01D66A6DEB421518859371BFE91100055020FF3DB29354D80E8E03397C0E74D9001FCEB97DFB9567B4C57BA8061A646B54559230AF6CCE3CCE6871C4C767C42C70208035162D535FC3B9565AC7FCA3A9D8019AF94D65C38CC7564AF0AD3339822C939570E57181E5CDD40AEB04E64130E4C44A7A4B3C0EDAB655451F585C19750",
+    "identity_type": "private",
+    "iv": "4C44E4C5CB13EFA82A8785FB1C4064E0",
+    "key_seed": "7DB299F572F69A530306BFFD37D3AA1D5702DDE5E8D295A1EE1A89964B2664BE",
+    "metadata_key": "0BA1602DB4E23F70EEAC5ADD65D9EBDE",
+    "section_mic_hmac_key": "3B6687807F35C44E71AC08178485BBE20ECACA722061443ED733077FE09812A1",
+    "section_salt": "55020FF3DB29354D80E8E03397C0E74D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6A0271AA5747B448F81BA095AE218E9F",
+    "aes_key": "FE81F30B457DB3B5A2B12C9E62126168",
+    "data_elements": [],
+    "encoded_section": "3790132CA2D928B14971ABFD0410DCBFEC710D9110006ED067EB08676C51C40F3C1848F89858900418EF11F7818FB2284E8261AAB63CA532",
+    "identity_type": "provisioned",
+    "iv": "463F849F17AE15B5D63FC3AD59728ACF",
+    "key_seed": "BBFC469077C9725D263D54D042C203F6356D60F55F050050CF10928BFA8EF48D",
+    "metadata_key": "632558DBBDBDE655DB4FDB6CB0280AB1",
+    "section_mic_hmac_key": "DE884F0B125AD4F4AEBFBB562EC79A8556AAC9C1654E75E79E59C874DB4C554A",
+    "section_salt": "6ED067EB08676C51C40F3C1848F89858"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D0CBA45C99E9FA404A4B0CCE1750C1BA",
+    "aes_key": "D5F6E5822FD550CD3592877794A9FA54",
+    "data_elements": [],
+    "encoded_section": "3790135A82DE2CAC2C840A7A525B98295A2B0E911000C8A8DC0A221A9E73736816B12FADEE9990012AD90295A4695F2AA1CDCE65858F6319",
+    "identity_type": "private",
+    "iv": "CE0AE01F467A25649172788288036955",
+    "key_seed": "1EF3F6BFA77940DECF68C92C4916DB9DDCF12D2FC671F80F133A0E64CE643CC4",
+    "metadata_key": "1DD57E55893D8C7C66F30AB5BE78E5E0",
+    "section_mic_hmac_key": "6C18E5729C77197AA709F37CC196DDEBE97CBF5109E6AD8B686F6A193E7B839A",
+    "section_salt": "C8A8DC0A221A9E73736816B12FADEE99"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F33D12D40B9C8B9AE1C47C8AADCC0CAA",
+    "aes_key": "1E64FCFA53A6CEE7E20F1C616A672CA7",
+    "data_elements": [
+      {
+        "contents": "081EC010879E34E2E36E07DF44D5",
+        "de_type": 686
+      },
+      {
+        "contents": "ABB15E5E47C51C9C5247E1256387260BB0E688",
+        "de_type": 184
+      },
+      {
+        "contents": "71DF0AF4F9666A099E6DF57EDBEB",
+        "de_type": 797
+      },
+      {
+        "contents": "",
+        "de_type": 866
+      },
+      {
+        "contents": "A1D4",
+        "de_type": 57
+      }
+    ],
+    "encoded_section": "76901346AEBDCA4CD4F32C73CFA95B0152AAEA91100019C67F054994EBF76B86A9910B24442590020889DA34F813D8ED74273096EC54618EBC62DDBBB2001CF6F1EA30C6FCC4082B55FC170EA5144776585B7D30E0C4CF9C54318C7115E41490ACE3849B79499C829F5EE6F63D5CD6F725FD7DFB2F0AC8",
+    "identity_type": "trusted",
+    "iv": "D3CEEDC1A3009457FF17D6F2C2C6CC45",
+    "key_seed": "FE080591FBA4B25B2326713AA17FFD1B64C32B4B7D1746571C01D6F23931EE37",
+    "metadata_key": "6FBB76CBC7FF309E679EB284FC5001F3",
+    "section_mic_hmac_key": "A72DB4B90E985E04BAF697CC358CC84BC077BF0E863DFDE644E829A40F72C0D3",
+    "section_salt": "19C67F054994EBF76B86A9910B244425"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D67DAFD17744D0F8241D3DD1F3A1B14A",
+    "aes_key": "8A065DADD8CB1CC9967868C01070DE8D",
+    "data_elements": [
+      {
+        "contents": "3310FE973462496D27BD963268D98A27A6F848",
+        "de_type": 506
+      },
+      {
+        "contents": "FBEB9691FC08C103F9E7E74092DF32C3DA848F",
+        "de_type": 947
+      },
+      {
+        "contents": "",
+        "de_type": 942
+      }
+    ],
+    "encoded_section": "669013A84927C93EF891F3684515177D57F56E91100075EE531A506096BA0F5C07F1123C5CA990025FF39825FC892166579828672F8D9953F02014743C0B7CA7ED00C694A5BC3BF1C3BBBC16C1FEB9489022CB014A97A6E7077B52BD521E811D78A3C3733517D9",
+    "identity_type": "trusted",
+    "iv": "75518BA2DDD3E7B3DB43F868ADFE2A20",
+    "key_seed": "26B3A85EECA4EC7AC1B7855ACBD28EBA1B0E9F96E9198A15078172407708C268",
+    "metadata_key": "3E9E3098DF63D01ED466C1870EC6B4F3",
+    "section_mic_hmac_key": "646D3C3381952F4E489A408AFFD2586981B31E9470339C0A196F02D7724A5349",
+    "section_salt": "75EE531A506096BA0F5C07F1123C5CA9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EC458F9E453AE59CE56316C9A18F2698",
+    "aes_key": "E4C77487A10D78704F4FA0678EACDC3D",
+    "data_elements": [
+      {
+        "contents": "4DE4C93DCD045609E8C0D59A5D232BEA345A8805",
+        "de_type": 106
+      }
+    ],
+    "encoded_section": "4D90135B2E85AEDCA13DBF678DBD9A491899F89110006EE872C19FAC3E06FF7B1087D7DA70CD9001524A8CCEB50207DD133EE928A16AFDA97AB9D56B798C15BEC3A8878F9CB23FC0A9F1DA69E868",
+    "identity_type": "private",
+    "iv": "39EB9D090BBD36CF20FEE1A7B383170C",
+    "key_seed": "E571F9737891BF4B91A55DECAF950FC0C3C14AFCBCB578BA64369691004CD99B",
+    "metadata_key": "78DABB32CF166CBF9340B1B6F566A91B",
+    "section_mic_hmac_key": "26C2433BF4859BDBFDE86F9B14CE9A166C8003185F3C606D58C6F865670F3B63",
+    "section_salt": "6EE872C19FAC3E06FF7B1087D7DA70CD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "91E89D93CAD7F35D9AB9C6BF4325A2E8",
+    "aes_key": "70EFA33873D2E345D1F56CCA9665054A",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 649
+      },
+      {
+        "contents": "9EE549A8C30E5CB17E60804FF9F7885BA0DE9AD888AD102A4F40E3675A57",
+        "de_type": 267
+      },
+      {
+        "contents": "E3F347E2C9170891B6437DA81E",
+        "de_type": 594
+      },
+      {
+        "contents": "CB572B98DDD51E9122EDF481FF59D3A692BF43",
+        "de_type": 642
+      },
+      {
+        "contents": "A3CCC2D85DE09207CE8CFA88FBC2A27F5032A9661B89340EB2B45F54",
+        "de_type": 712
+      }
+    ],
+    "encoded_section": "A09013053B0E55A309DB4CBBFB63F693F097C1911000C252DDB368B81DF337A9E6C22C1AB1E29002E8784CA2E7E1C22823BD8C71E457C78618A334565C5A4931F291603EF5F5DA43C2E791D65FE4029AD8BC8AF31CCB9FC66300C80CB4A7A026C7F5FCDA97D406D8891C8E36B5DE49F57F4843C0EC57CC01A303C6989D0779114255B7357EC89BDE5935AE4ABF2245A13E0540FFDA726C4BBF33BA356F3FB52B5F",
+    "identity_type": "trusted",
+    "iv": "4AAD555F0E8B2B0BD7F8B5B3288EFBB8",
+    "key_seed": "235725D5AF71A8B364F576DDF5FDE5794F379B1157FFCEF16E0962ED9E7C69F0",
+    "metadata_key": "221424FDAF49E89693F960537A19185F",
+    "section_mic_hmac_key": "BF1850DF168537FD74F15A0D907D2205509C03DF1E0B2D3C9C659DA296FBBA12",
+    "section_salt": "C252DDB368B81DF337A9E6C22C1AB1E2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5F21199702D08F17E8C31D8CACC752B7",
+    "aes_key": "78055B5877F2DC9100DCC8C026FEAE01",
+    "data_elements": [
+      {
+        "contents": "0C9E929580674F44BCA192B4988E1186E73C0553339E077DDC537C2F7CFF",
+        "de_type": 49
+      }
+    ],
+    "encoded_section": "579013B616F28CC69FE4BD9566BC9C28E7997A91100005F57B353ACC660C1C893CE24C2AB4139002C3B30303F662EF836D765C8CF334F356DD1A214E25294934896D0E54AF12F9740FE06684DBE3E9BB01CF1DADCAE0DD25",
+    "identity_type": "trusted",
+    "iv": "5CCF9429D65B8856E1D1DC0F0600DAAD",
+    "key_seed": "49EDD7CBD630CF1EB36750CF0B84887F9B9036350EBCF09EBD36E1B1D6C412A0",
+    "metadata_key": "34875210235E1D2D25478D12066C155C",
+    "section_mic_hmac_key": "45FC0D8B7794850569590818996D2E7F2EDA7E38A2090D37B5D6A5E7A4C24B4F",
+    "section_salt": "05F57B353ACC660C1C893CE24C2AB413"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ADDC564B44D0313C8BE7BB31D9591C73",
+    "aes_key": "E89A463D3116A6596F4E0E20AAE69439",
+    "data_elements": [
+      {
+        "contents": "24C93D94C0",
+        "de_type": 130
+      },
+      {
+        "contents": "EB7F3A5D86354B56D639609F502BAC8A292026254288A116C2",
+        "de_type": 608
+      }
+    ],
+    "encoded_section": "5B90137D5718E198489D40D7EF03459A4336B0911000BD284D68208CDB356CFDE5EBE234902D900279864896227AE76218FAD91C906B62334298BA923DE515265337355814BB2FB2AB4A9969C34EBFF5F396EB39ED8A605FD7241A5D",
+    "identity_type": "trusted",
+    "iv": "36208616A6E3B31472F125A2DC4F51E5",
+    "key_seed": "B7C8C5EC411AA108CE8EE9B6BBDEAF9CCADA1252DD7C7929E20D12F8E09541D4",
+    "metadata_key": "CC1BAD820BD0B97A8B5A5FAA4419DBF0",
+    "section_mic_hmac_key": "2DCD3B2806A4F52453EDE021A1C167C5BBC3FFA9E8BD14C7D1FEEA9EDDACBA1D",
+    "section_salt": "BD284D68208CDB356CFDE5EBE234902D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5E8E972BE173F38D85F411A2ED26003E",
+    "aes_key": "9FD558DA6B7A1A5184EB545BF703858F",
+    "data_elements": [
+      {
+        "contents": "194E56962B21A139D89B79A1509FF3E0DCE71684B72DF74416848286A710",
+        "de_type": 278
+      },
+      {
+        "contents": "C1276C6B7402",
+        "de_type": 575
+      },
+      {
+        "contents": "A64FC3",
+        "de_type": 589
+      },
+      {
+        "contents": "5CF1B952B38E5CAA8E",
+        "de_type": 883
+      },
+      {
+        "contents": "DBA4F3AB1BF2A6F5D325FB9130D5391AFAED7B0792F2DF430F50",
+        "de_type": 122
+      }
+    ],
+    "encoded_section": "8F90138745AC668A56139F98DE7B63F8E75D55911000A91454CAB75AB191C1EFCD50DA1C31A490018019E926591F29A634CB84E2B5852C661047B96EB0522EF34BCEA20C8148CBE779FB9FB95AF044F20A6532804C303DEAE0D287D40D2D0050ACE7923A2116360B7F1FA82E888316057B56112C26C1D49865EA7357A73308415CF1CF17D7874D442103DCF4969FE59F",
+    "identity_type": "private",
+    "iv": "CC6E95261D63DBDA7B9A379984AC5860",
+    "key_seed": "D767BD6AAA4F821C12CFDAD0839649B26DE111C270B746948DD3816B42361F6E",
+    "metadata_key": "99B29D708B6AC3929AD7860847ADF25B",
+    "section_mic_hmac_key": "7F566273E7867C6044B63B51B1FDD564EB972A1DA7ED441739396A15C85870CB",
+    "section_salt": "A91454CAB75AB191C1EFCD50DA1C31A4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "890508C1E419677CE3D82C8C634D9A8D",
+    "aes_key": "B58487F205E25C8FFC6BF799D7123167",
+    "data_elements": [
+      {
+        "contents": "9DBDF9ECBCE565A86F0316355BBAE4",
+        "de_type": 729
+      },
+      {
+        "contents": "894E7DCE8E717CCB6BE7A2B727AE1F038FD81F2D",
+        "de_type": 556
+      }
+    ],
+    "encoded_section": "609013BCDC003EF848E2552698FEEF4B5BE538911000FEC9A473F042542F1594E8374E690CD790019456A748B13AE47C66888BFDD3BF5D69259E33B8223572975CFDBEC12D566C8516182DEDDE70B61A0C83091AA7D675C516AC6426395265023B",
+    "identity_type": "private",
+    "iv": "3266A4DD70BF6DE22B52D786A665139A",
+    "key_seed": "1F19488144728397A56FEDF8EF3C71F1C784BF98A8FC5DD3EFC14B733322AB5F",
+    "metadata_key": "B15E02D56B9062FD82C73E2F1DF3DDDD",
+    "section_mic_hmac_key": "A3096941E32118FFBA5B57A5A151D49CC0C0E4CBB74658669C6E1C9024FDEDE4",
+    "section_salt": "FEC9A473F042542F1594E8374E690CD7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8298F26DF0ACD9B9784CF50C1FA31CD5",
+    "aes_key": "32599218CF7379D323531C4BBAFC94A0",
+    "data_elements": [
+      {
+        "contents": "BCF691D7FF954D04836873F6822A",
+        "de_type": 458
+      },
+      {
+        "contents": "4F0E8EBC44028D314F3BA98B806DDF652722",
+        "de_type": 177
+      },
+      {
+        "contents": "9B4173AC",
+        "de_type": 242
+      },
+      {
+        "contents": "7F5213584393",
+        "de_type": 204
+      },
+      {
+        "contents": "5C77CCF36304E367291A1B2A3F7F58",
+        "de_type": 585
+      }
+    ],
+    "encoded_section": "7F9013102BD6F16710F91D224A7DAE68FC3A2A91100071658BD652281D3C02E63780F9FB687A9001C61A8B00D08E33EDEA32453B605CE6AC3259641D1E0DF3726A164491FBAEE8BC4EB237178E1F55C6C811F14BBB32764330185DAFAF2B3495FBF8AE3368F46DD21D46F0C670448F9D517731F0F7F2118762CADB6E306F2C8C",
+    "identity_type": "private",
+    "iv": "75FB79B913CCB164010CEB9C2F003B79",
+    "key_seed": "FC02A056FAE91FA6DE95CEEBA9EADB65777603F77F123004515D21B281FD1AC3",
+    "metadata_key": "9B055D228F084D0BEB418876908EC39F",
+    "section_mic_hmac_key": "58E406BFD5609A7642B7B19AE11FA144D53BB56B583C55694665F8265C09E9B2",
+    "section_salt": "71658BD652281D3C02E63780F9FB687A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8DE8CF158AF393D2993F59D151D92FE7",
+    "aes_key": "C3ED1758DD53889D70F1D523EA467752",
+    "data_elements": [],
+    "encoded_section": "379013F55E075DEADB5808B48E3D7520302EF991100084AF13307448C2326837E2A2760876A290017A8BE69D8EF995E77620EBED461B2AE2",
+    "identity_type": "private",
+    "iv": "58A62B7FDF9BC814F3209DB583F52017",
+    "key_seed": "60F7A17633D7D73127CECC969609F9AE6638C0E00B95C4464B686A5FCEDD3E2E",
+    "metadata_key": "A4A17957FC404BF5D50A42BDC3D4857D",
+    "section_mic_hmac_key": "B1D557333696A1E1AD29866C78BC4086C8C6ED43711A3FF4862709A08F62E214",
+    "section_salt": "84AF13307448C2326837E2A2760876A2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D767403957E9D3E90C2C17EE950E7122",
+    "aes_key": "041C51D75D894A63E83E7D6862723202",
+    "data_elements": [
+      {
+        "contents": "423FE65EEEC743FB7781376641FD9CB31D5E37480D5313BDA90A7A",
+        "de_type": 623
+      },
+      {
+        "contents": "8B5DC36EE664C72FC16840A0CEB5BCAAEBAEF09694",
+        "de_type": 250
+      },
+      {
+        "contents": "CBD97F852E7BA0",
+        "de_type": 633
+      },
+      {
+        "contents": "B2E5FDFFCA6859D1",
+        "de_type": 230
+      }
+    ],
+    "encoded_section": "829013CA3F3F33B038546D0583551F01CED15A91100014C5C9F74FFA4509A87523AB284DE2AD9001E09EA5B8DB9CAE3E53DC93FE2CE7669CDE9FD349982E2744F9700745E409F926C1568C527923BE14BB9356179E1F36E072A08EB2BB6559D460BEB251F5C8179DB02B903655D54043000FD1A9A272EE8849391915C9B5E27CCFF6FC",
+    "identity_type": "private",
+    "iv": "404AB007A1717B22258CCDADA622C4A6",
+    "key_seed": "6E0ADE4BB6B948EA0412A3BFE1B3D8F97CC95BF9F8531E91632E6393378F12BA",
+    "metadata_key": "D211AF1D1753DC34098F73AE56F188D7",
+    "section_mic_hmac_key": "0CE5B2335330EE0DF2491432539E311627A00E59FA3A6B8858BE6124AEEA67C3",
+    "section_salt": "14C5C9F74FFA4509A87523AB284DE2AD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EAA4670B96668CC6F80D1C5879AE3AE7",
+    "aes_key": "B001298B920AD8FFA727BBD08983DB33",
+    "data_elements": [
+      {
+        "contents": "2C5BD7EE8B257AF6D9F3BAA45266B450",
+        "de_type": 676
+      },
+      {
+        "contents": "6A87A498F333D0EA885BE02FCAAB20A7848264ADF1C536E1",
+        "de_type": 24
+      },
+      {
+        "contents": "5C7816C6CB0D3513FAA77CAC05568E8BFEC1D5338799A27FC5",
+        "de_type": 275
+      },
+      {
+        "contents": "93356AF6AE0C944E5276",
+        "de_type": 93
+      },
+      {
+        "contents": "D6EFB581D317A392",
+        "de_type": 946
+      }
+    ],
+    "encoded_section": "9790131ECC1BB30CD53E32B1D49E2C3F686D3D91100013EC472339FE487D5C13C57B3DFED24A9004F8431796FC123097DCDF156B695ED780A62033B4FEF0EB38807631D6C1409B6176694B32A5439E8433393B9354782C64DEEDD9B243521963FDBDF13B9CAB502654981751782EAA352313FC17503998C0F31C20833424AE008FBC003BFF7EFAA0CEFBD144744BE7B55963F9EDAA6F06CB",
+    "identity_type": "provisioned",
+    "iv": "CC88BD5D473FFBD1B9E8C25D278E8DB0",
+    "key_seed": "A0AF2537313F70D3C9ACF9C3670093A73F6DD52E775814785A459C99D925D1F1",
+    "metadata_key": "5A91F28B272C105013A774EFE06F2D21",
+    "section_mic_hmac_key": "1D5897008DEDDF91DC33C812DB0D7FF20D32F21A22011CA4AE01E27DD46A71B9",
+    "section_salt": "13EC472339FE487D5C13C57B3DFED24A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "94BC22D840D0F083167EDCFC6AEF8C49",
+    "aes_key": "1A26CB30822972EE2ABE2791A009C412",
+    "data_elements": [
+      {
+        "contents": "B72CE5E1E1C2",
+        "de_type": 692
+      },
+      {
+        "contents": "47",
+        "de_type": 287
+      },
+      {
+        "contents": "1DDEC34D828DDB5CC0F84CD20B5DB7B19EF25F95DB123AD9",
+        "de_type": 86
+      },
+      {
+        "contents": "CACCBF6A6B8EAB0047",
+        "de_type": 314
+      }
+    ],
+    "encoded_section": "6A9013F5710533AE4FCCEF7B5ADE33EFE5239991100005533C388684983561E9177E61EF12A790043935815AA283938A76A1C359BCB9F4A227EE4D5C756C2FE0E784A728D7A1E04D67778E7AD79C64701C3F5BDC0E9A630BEAA2BDEBC0A6C70B81F289EB1A8EEF6AC534CB",
+    "identity_type": "provisioned",
+    "iv": "AE327DDA6E6F62742E607A4D558165F5",
+    "key_seed": "4F26D99EC0F6EAAD77C9A99A96BAE0433F7CF061701FA46D9694E85F8A53E3C2",
+    "metadata_key": "8F5507A58C555112EF53DC37B8B35299",
+    "section_mic_hmac_key": "E5B47398C87A33856D04E6D5DE9FD03830179BBD0B441A0308B6D2D5B0D4C693",
+    "section_salt": "05533C388684983561E9177E61EF12A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D3E0E38F22BB30B42170FE476EAAF4A7",
+    "aes_key": "4E1CFC0FDB6BBB26913B5A0EC39B018C",
+    "data_elements": [
+      {
+        "contents": "4E9E5BB8C4F9751BAD57AC939AC519FC688076F39FE424",
+        "de_type": 861
+      },
+      {
+        "contents": "9DE1BC6BC8",
+        "de_type": 315
+      },
+      {
+        "contents": "",
+        "de_type": 995
+      },
+      {
+        "contents": "FE3A1A1793B12DC2E2CBEA6DC461",
+        "de_type": 722
+      }
+    ],
+    "encoded_section": "6D901328E5F50CDF08199DCDA8953EC535073B911000B629F236825E4F1DAA2A828FAD8B10139001DB295D2AD40736D82A98069FEA37D688BD2D602F52E02554AEBEACBE7BD00AA0E553253B44F645A0BF6F6602583A2ECC26390107D5E1E3832A31784B5E0FB83F74FFFA23F0B2",
+    "identity_type": "private",
+    "iv": "512C19498A4E6BBA5958FF68EF833524",
+    "key_seed": "AAF59E43323B8E5BC14542E4E4B1D6FED664FFA9C4565FC137C53D9F234F687C",
+    "metadata_key": "E96E09BE304022E2062E3309FBEE197B",
+    "section_mic_hmac_key": "D4A3BEB6ACBC8497213299435EB3BD8504DB6C82979374D7F918C1D41AECC7E8",
+    "section_salt": "B629F236825E4F1DAA2A828FAD8B1013"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "36B6EBFC8957EE9D957D592B1C0293C6",
+    "aes_key": "EF8A7FB2585A093B212749546DDE83E7",
+    "data_elements": [],
+    "encoded_section": "379013FEE47BCD621E2BA1966989BC933A8789911000DD18243E63B52FC8BD6E6237FAC5C0939001FC37D819D217F558FC19D2DDC5A7AC12",
+    "identity_type": "private",
+    "iv": "209F0DA89053E84ED00F71B53155B760",
+    "key_seed": "D82BA7F2F0A36BC58334EC711E2AEDA662999D22F7D7D9B07564C73CDC51E282",
+    "metadata_key": "226F121645E6F4EC151AA15B31382A13",
+    "section_mic_hmac_key": "D2906FD8EC224CDA8FE20EB4F77A1FCBC0494238E7BE0FDE3575184CCF2CD5F7",
+    "section_salt": "DD18243E63B52FC8BD6E6237FAC5C093"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "99A6BB55ABC4CC161FAD1CB8DE6AC727",
+    "aes_key": "4DDEDCC1BDABD7190C999F9F5F239FC6",
+    "data_elements": [],
+    "encoded_section": "37901348313C15FC6D0809D5C003E835396037911000C62DFB45DF8452EF58E761232FF95ACA9004924D826FEED7FDE6BCC4585637AE50BC",
+    "identity_type": "provisioned",
+    "iv": "CA78EFA5E951531B543EC499C60D48B7",
+    "key_seed": "CC3937AB3F6ADBCCD479ECC12AB4C648EDAF2D715FC61272D90285E2051270AF",
+    "metadata_key": "249790EE67EA75470D5CA38274206943",
+    "section_mic_hmac_key": "1720B0888207C03723165DA9C7F2BE23F19DCCF3666947E208F6F1E4D61BF28F",
+    "section_salt": "C62DFB45DF8452EF58E761232FF95ACA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF9AFE50ADA0A3975C49A50CA4592CD0",
+    "aes_key": "8309EFC8132EEB8924884C37F023FAFD",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 930
+      }
+    ],
+    "encoded_section": "3A9013E3B37AB96E385112C61C57C59E5AA4789110008C658E80B19AA3F9A91CF5CAB5EDE9FB900194F75F6B920DFAEDC253BEE8CD72586B3A55A7",
+    "identity_type": "private",
+    "iv": "1F9A54370AF4AA8257003C4083115700",
+    "key_seed": "B180DADD23E531D4693AF1361DEE2B82CB4EAD3CCB7B440822C791DE23808B24",
+    "metadata_key": "5B70CB9828BF7082D582E80BF68A95D0",
+    "section_mic_hmac_key": "C7151B084FF92A1D77EB527978F3341F4E26C888AFA801DBD5AD66FEAA09A886",
+    "section_salt": "8C658E80B19AA3F9A91CF5CAB5EDE9FB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0AE4ACDBB6B969EA9C655FBDFAB3BD24",
+    "aes_key": "9C721D6592B96CC3EC1A069C8257D53C",
+    "data_elements": [
+      {
+        "contents": "D6E933C73088AF72DC86CDD2B472AF67C0EF9BF2485481930DD803C8F0",
+        "de_type": 646
+      },
+      {
+        "contents": "C85DDB36AF2574",
+        "de_type": 692
+      }
+    ],
+    "encoded_section": "61901310131C4E228092D296F758A3526A9A5391100034B70164C7A05EB4D4166BC4F4CC16BD9001D717BE347A4DB6CB0DBEF2D099D6883842035FD21A6B9D7C92A7D3848E7C64388913DF0AD468382D17EB97C0264F457DE26298EE9729E2551EEE",
+    "identity_type": "private",
+    "iv": "1830392917044736F4ED55A186631167",
+    "key_seed": "BD733DC39589B1AAEDD1C0AF32E3F1D0C67C85A426C76DC1C436F5FBCB4CB8F8",
+    "metadata_key": "A65E981CDB9BFACB2FAC9048FB5F86AA",
+    "section_mic_hmac_key": "9A95A15A85545A8F5BF3BF598C68C6B1DD8B717A1C860B306D2C56260D3D144F",
+    "section_salt": "34B70164C7A05EB4D4166BC4F4CC16BD"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CF43BA7DB832370445F2B85CC9DC0820",
+    "aes_key": "1510B1459D6070F66F102C553E6BB690",
+    "data_elements": [
+      {
+        "contents": "44D8251E75FF1AC54A2EFB7738044961C77736CF6D",
+        "de_type": 460
+      }
+    ],
+    "encoded_section": "4F9013827424047389DEE800447D83ADA0BA13911000DC2F440F30E53E4B029CCFF297104D479004BFB36E2F23E45F49E6C7101D5C1A95B530019C645BE8ED2455D28D7DE4F01D2349EB0AD6EFD768EE",
+    "identity_type": "provisioned",
+    "iv": "FBF5782EFC3F038150A57A003453B289",
+    "key_seed": "0597F824745D4FCA4922A4A641E27C7F0DF3E3754F18229CDC11ABB6731C1E0C",
+    "metadata_key": "3D982630FB96976DEF7CC0D1DAFD1B80",
+    "section_mic_hmac_key": "09AFB1227469C31F3FD01CFEE970327FD85AE9557364DC7BDBABDD3E0AD596B7",
+    "section_salt": "DC2F440F30E53E4B029CCFF297104D47"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4BF365A1E62CB517ADF3C96EC86A695C",
+    "aes_key": "06773F17BF41CFC952BC520FA06E907A",
+    "data_elements": [
+      {
+        "contents": "F1897D930A5877FA1CD661DCDF2C9225B1ABCB3EB937D674B3E1C444",
+        "de_type": 404
+      }
+    ],
+    "encoded_section": "5690136721E5046A5398712F086DCFCCFEBB4E9110009C3172327BA6B8B09FC3AD2A285A4FF09004DD9D9AEE9370F474D9EBEA89CC7BC5EDE99547F14269862FFE642BFA9C51216EB10EC71B5D462DBF155E7F9282ABEB",
+    "identity_type": "provisioned",
+    "iv": "2039CD9D8979F45554A8165952138CD0",
+    "key_seed": "74C768D045E9145CA61115534306A970AD184F166A1DFCAE8FA44019E9274F94",
+    "metadata_key": "94E9F6F9C99423A6352CCC6D1689BC8A",
+    "section_mic_hmac_key": "CB0A779AD5C3F5514E1A2D4094600DD5AA50C3756958F80BAD2229A87F170D38",
+    "section_salt": "9C3172327BA6B8B09FC3AD2A285A4FF0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1CDBA11F9479A51F6C7F5A892FDBF196",
+    "aes_key": "EE83B59FF4FE53B13B348E8BB40B5B54",
+    "data_elements": [
+      {
+        "contents": "9E6AF7AFA04A",
+        "de_type": 60
+      },
+      {
+        "contents": "4CA08F4DD378B99F005502048E577335307332",
+        "de_type": 69
+      }
+    ],
+    "encoded_section": "54901361D8AD4F0C8E4E18A1D898278B2BC137911000AC75C0FEA579E3F958E4395F9CBEE3B39004C88B0EA35E1F251FA0CA9AA6E42EFA999D69E852E0CAB982BB1A974486BD912507617D5F7F70195010ACCBF83C",
+    "identity_type": "provisioned",
+    "iv": "6E4B7653CBB755ECC8927EFE06CABB64",
+    "key_seed": "D029E2ED3571789462F357D5C3755AFD6D3B91FBA2D2BE1B9AD671E370F9056D",
+    "metadata_key": "2E36E40B8B0155FF11B92A8077932CA2",
+    "section_mic_hmac_key": "90D1EE3CC14FCD4F7B5734A40CA42AD27EEE5892C2CF5B26729C34D3C2B143C4",
+    "section_salt": "AC75C0FEA579E3F958E4395F9CBEE3B3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3690113DBB16570F0CBF9C3A2716C6CF",
+    "aes_key": "FEFF29107072AAA0681873034994F017",
+    "data_elements": [
+      {
+        "contents": "2C4DA1F7E021E1354FAC8A76445E1283BB22D1A47DA113",
+        "de_type": 426
+      },
+      {
+        "contents": "AF46",
+        "de_type": 241
+      },
+      {
+        "contents": "C12A5AE9835106753CDF5C961EA2B3A09E5345C15A8BF2878B05",
+        "de_type": 131
+      },
+      {
+        "contents": "021A8B90BA962F",
+        "de_type": 628
+      },
+      {
+        "contents": "4065CC7C14A9A1",
+        "de_type": 956
+      }
+    ],
+    "encoded_section": "879013651C94A1F7CFDA39FE974613772127A4911000FC81D58B27C193143B37E79A070730019001AC6EF8D82E470B38CB13558B2F2E0A0E7E28E0D70630BACD41B508B19550BC2301B46B8A64B8BFA3099D2DC6AAED4F125EFCE470FB97D8166834239B1B55880E969318422EBD021FB94EEC47F9602181B9F19A983926D42F185E1B3007D899CA",
+    "identity_type": "private",
+    "iv": "80342BF18D7C5776BD7FDE0A2F8AC447",
+    "key_seed": "5FBD9471E75E2C59F62A8B341120BE518410FBC2DC9C73E01B0892A6BBB6390F",
+    "metadata_key": "070C25B363FB7C308E15D378FE49E66A",
+    "section_mic_hmac_key": "811B501ECD17C5CA3483A7B2CB4DBDA18DA36A8A0070A336FA4D4EC7AD617C4D",
+    "section_salt": "FC81D58B27C193143B37E79A07073001"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C108BD4A771CAD2F6E7814121E2ACF0D",
+    "aes_key": "C842C0FAD03E38DED3004C68FDE4FF7C",
+    "data_elements": [
+      {
+        "contents": "37F07E9ABF51F94A2FEDCA5EB096BBB6A2C98BF5D792EC10B8",
+        "de_type": 86
+      }
+    ],
+    "encoded_section": "529013AAE6FEC854ECB31E4A0638F9C3459BD4911000D314E0A6FADC0C898CFC47B121C5D0439001D0049C43DE3BB4FC114A4E261443B33B87E3D0CDE141BEEE14A6B252BFE7654A53C6F5E087D7871E936406",
+    "identity_type": "private",
+    "iv": "9B140F556904B7BB90D90FE1D7053837",
+    "key_seed": "C422D717FF3CFFB8A1799B7EBE928C327C3C6CECD0EB6F6A5ADDAE450C2E4A43",
+    "metadata_key": "FA01F1000E65A2B4CF29A61C94B48C0E",
+    "section_mic_hmac_key": "346DA5C873307F1DE6B6D50DDA7565FD3B64D62BEE8FA5449878CB9B04B8219A",
+    "section_salt": "D314E0A6FADC0C898CFC47B121C5D043"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "195580FBA34790E8277954C3BC9D2082",
+    "aes_key": "E2803B4903235BA7D86D3148185D8CC5",
+    "data_elements": [],
+    "encoded_section": "3790132C00FD339FEFDA9A33EA05F0B61C1C559110009E3B063ABD78AACCBA9411EBED90BF029002569640B7F099D81C9F82A9C45AB8F38E",
+    "identity_type": "trusted",
+    "iv": "6CB76A799DA3B1D880221B61FCD13BB2",
+    "key_seed": "85F01432030780C4EF09D81B8B7F3E6F6181AE5E35818A9327B90B513B18D39E",
+    "metadata_key": "CF225E1482E9DDC1EC23BEE3830BB297",
+    "section_mic_hmac_key": "E59C266F44177561A92FAD0E914787F91B75102D557AFDD8A90E15E4C517870C",
+    "section_salt": "9E3B063ABD78AACCBA9411EBED90BF02"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6E020398D55EFAAE4811261EDA98FD6D",
+    "aes_key": "116A369A261D68D0CCBC42A18C347ED3",
+    "data_elements": [],
+    "encoded_section": "379013DE1AC91E9B00462A9A9BA642DC5849799110006116C6CF4A3C7D6BA18B8D226D2301C890049ABE79E404D562A6885996894ED53AD0",
+    "identity_type": "provisioned",
+    "iv": "1D018BD16FD2DE9E649CEBABD581DD2B",
+    "key_seed": "F7826F803023E18562041D581E30C68B18F3BD079ED331AB08959EA9D6A4BFD5",
+    "metadata_key": "7B3DFC9C93D7749184D6D74358823E85",
+    "section_mic_hmac_key": "CB330A1CF99F0FF314EA31874A09A1C7160318E971FA13D268337D59814C7B1A",
+    "section_salt": "6116C6CF4A3C7D6BA18B8D226D2301C8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "567D9E7C592385238EAE53144E8BA230",
+    "aes_key": "136470023C70C08029F4DFBAE9F95B7B",
+    "data_elements": [
+      {
+        "contents": "A561C92ACC2252C6C62DFEFA992BC2C5A9C48D04F9",
+        "de_type": 248
+      },
+      {
+        "contents": "683961187D5DB39339DF9785A2C45271D1CD68611D",
+        "de_type": 816
+      },
+      {
+        "contents": "B56F",
+        "de_type": 910
+      },
+      {
+        "contents": "6166018060BFB398E173C269377CED91731BBD70",
+        "de_type": 507
+      }
+    ],
+    "encoded_section": "839013A7C4F33A2ECDC37D6C1CF6252071A5AB911000935A35412D351D8B3D41105173987C0A900266AE9A51DBD974D99670EC791804347809108459DE0B339FBF2C78B1B283B5D47C3B890744DB38733464E8125F101CC220E1BFA52CE6E8871A2E40FBC4E9F7619175B7E3903D7FEEC02B5571A874F22785BE608D844AD1E62A3CD1E1",
+    "identity_type": "trusted",
+    "iv": "B2FA1B41C649211A7EDE06841F5BB38F",
+    "key_seed": "76761CBE3E4C5C59C635770D6712FE9DA60F3EC7DB730C2A2E269D022F253043",
+    "metadata_key": "4ECF0D1A14561713F994E2DD7B685FC0",
+    "section_mic_hmac_key": "E05AAD376A660745E2DAA4552147B6301FE2D8BF56586011AC28893DB5856E96",
+    "section_salt": "935A35412D351D8B3D41105173987C0A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "21A510F6CE3823A53764724B62FD6B7C",
+    "aes_key": "05C066DCB8F0B98888E96B567579C868",
+    "data_elements": [
+      {
+        "contents": "C15CB0D22F013348DD0E70231A556608480E31D9E890D830B3A553415DAE",
+        "de_type": 37
+      }
+    ],
+    "encoded_section": "5790135C827FF620A9B1F9F152963942D6E026911000FEC1DBF803354DC1673A835893AED9DE9004A715F76EFCE834E20F88537CF36933F54809CEF7842962A6DAC2D1D3AF22CAB9E5E855FA6D5F7BBFEC371F21056A8A1A",
+    "identity_type": "provisioned",
+    "iv": "B758108B3902E3BCA1ED0C889CC5FA60",
+    "key_seed": "2F56D486D5C63D844C2FDEEE2180803AD2D1EE5905BA717461135123670C399D",
+    "metadata_key": "D468A60519C50394C3162E0E02BEE109",
+    "section_mic_hmac_key": "250E47FD6AEBEB5E33DF17AE8F5819EF98D0839A011BA4FEC04AFB39E75D9F79",
+    "section_salt": "FEC1DBF803354DC1673A835893AED9DE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "80B928DB65B720EE90833AA09FD5DC89",
+    "aes_key": "EF85E00C15787C5B8CFA20A31C1EE64B",
+    "data_elements": [],
+    "encoded_section": "379013023A8AF0E5E41435B4DE9FD9229166A49110009C4B81AEB3D407915348130AF8B9D1609004E4309CF504F37E93F69C559457182D38",
+    "identity_type": "provisioned",
+    "iv": "BDE415E1EBCFE566354779AA734A0F9C",
+    "key_seed": "70F30CBE76BDBF3E99847FFE02242A380D50E2A9C444696C62790E927665196C",
+    "metadata_key": "0777B0D07118272EF18915210E67D4B6",
+    "section_mic_hmac_key": "67978F51212E8DB9187E5EF52DBE96714EED071C716D8FC27905A138C597FB6E",
+    "section_salt": "9C4B81AEB3D407915348130AF8B9D160"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DE84590AD5159AE889FE5191762775ED",
+    "aes_key": "58AE0ED041CB11626C1E135A8FDA418B",
+    "data_elements": [
+      {
+        "contents": "787F",
+        "de_type": 864
+      },
+      {
+        "contents": "D1F4A82599F6",
+        "de_type": 876
+      }
+    ],
+    "encoded_section": "459013A9C4AFAD3ADB46F107137C6E33B1BEE7911000039933B91DD5D7C409512651661B032990014642BBCF512BA6F71FD38D6E73BAEF600156F6FB689FE5BC6943B6A121EE",
+    "identity_type": "private",
+    "iv": "D961D3EFC14523C97BCCF93C47DE7AE9",
+    "key_seed": "D29C5FF82F0D66CE956927333836E3354CB86DD41EAAAB8392225693E897A2EA",
+    "metadata_key": "B544F56E3A995CCEDFA8549780BC793B",
+    "section_mic_hmac_key": "D5833BC069C1B314C6A3F7D67320098E72CD93F3770F1E45EBBA5742AF3EC288",
+    "section_salt": "039933B91DD5D7C409512651661B0329"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2FF79874212D7CDA93645F988AF6421B",
+    "aes_key": "9BEABC1D25ECDB374914B8700638C7D9",
+    "data_elements": [
+      {
+        "contents": "F9B8FB6EC10F68",
+        "de_type": 896
+      },
+      {
+        "contents": "C08B48B41244100DE3CD2B0DD489",
+        "de_type": 32
+      }
+    ],
+    "encoded_section": "5190133A88E7EB3645A94ED695EBA85F75AD1B91100037608F6EBDF46AAE033ACF587848E6639004B805DD3CA0249ED6FA1EAE1244D8E3A49F354370746BE13814E00D5839741ABE795D2752CCB57897FD07",
+    "identity_type": "provisioned",
+    "iv": "217FB82980A6995AEC010E921FAC6243",
+    "key_seed": "DFCB8691CEFEB4ECF09ED9F0719E45C25B4AF43AA8DD405801D670610F508F65",
+    "metadata_key": "0917CF2905CE9FB3113357F3963AC8C1",
+    "section_mic_hmac_key": "B797F2EAF9EC7F43CE59E70D7456B0B487AE6A428BF133FF7EDF35C16C2522B5",
+    "section_salt": "37608F6EBDF46AAE033ACF587848E663"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BC78512327F1C8471CF01C0AA4FDEF2A",
+    "aes_key": "7CD9D0ECED9B92B058C164C72DAA07A0",
+    "data_elements": [
+      {
+        "contents": "0FE510DCD7D804",
+        "de_type": 739
+      },
+      {
+        "contents": "7C23D2D6EB1B8B3BC85F16DCCB34459904D415F286",
+        "de_type": 217
+      },
+      {
+        "contents": "4CD0B17F3AD93405736BC91F9C4DE76669F2",
+        "de_type": 763
+      },
+      {
+        "contents": "E91721441BA575F21A84CF4DD20B61FA14C6",
+        "de_type": 938
+      }
+    ],
+    "encoded_section": "839013AC1DD11822478EA0E8FE591CD90238209110004D8A533E493907664027DA6A4F3183F29001D65670948662735E7A7F129595196B44B94D1AFE368ADD6E5DAF03AACA8E3C4077F46A164F0BE076022417C86F21E8646A103E333AAAE689E33DF411784E6B7D48607C4C8FF6B977AE9F7C55B07DE52F88A54ABB35DC20F128D1E647",
+    "identity_type": "private",
+    "iv": "A706CDD672985D91B0CD4F308DE1CC70",
+    "key_seed": "EEAAE365B3DA449EEB6F25B891B7023EBC5FF1B9B675FA12DEA7525354773CF6",
+    "metadata_key": "88335D0BD8B53CF2FA24E5EB2D004E91",
+    "section_mic_hmac_key": "EEED7FAEA65FAAC630EEDE3F70681E796AC19D2E64EEEE5BED29F65BC5064E35",
+    "section_salt": "4D8A533E493907664027DA6A4F3183F2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D1573ED4ECDCE4A879E65C68B1165F45",
+    "aes_key": "4FED88141D37FF7790CEFDD9E5A7E9F2",
+    "data_elements": [
+      {
+        "contents": "430F28BC",
+        "de_type": 204
+      },
+      {
+        "contents": "32EE03B85DF71B06B43CC1C8AC17C3421756FA83ADF098CAB3",
+        "de_type": 518
+      },
+      {
+        "contents": "F0A965818855",
+        "de_type": 542
+      },
+      {
+        "contents": "",
+        "de_type": 390
+      },
+      {
+        "contents": "CADA0F0AB15928451A346544ABBF",
+        "de_type": 84
+      }
+    ],
+    "encoded_section": "7690138D3D5ACB2206D76CD2F0DD909F8D0DE69110005A4E8669652BD77496780CC8085FF28B9001B94FB713B235D2EB84DD453FAC955BA8994A4796E3ABC89E7D9BA85085AA727777981A901A11ED6E68F97EC32031FCCEC7BAAB22A20F4DD1E81D811CBACA821E4CD75266B386079896AB4EF9376970",
+    "identity_type": "private",
+    "iv": "DEDC56F368F3719F6507F18862DF2F21",
+    "key_seed": "7474B5856B73AA33803B8F16B5F9230EDDF0E805842BB2494A1F8FE87B8DD10E",
+    "metadata_key": "0989622EEDCA93001550750A77E81D52",
+    "section_mic_hmac_key": "88CA9441457FB574EBFC546DF423D2996213B2FE20674FB96BEC57B15E4802DC",
+    "section_salt": "5A4E8669652BD77496780CC8085FF28B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3379B3B44F19BBEFBAEAF20E742D9209",
+    "aes_key": "BC6242695C247BA13FB5E1B0A15B7F00",
+    "data_elements": [
+      {
+        "contents": "4E92C67ED663F28F0D1E3FBC3E295B",
+        "de_type": 891
+      },
+      {
+        "contents": "6D09BFCB10C38724315FA37FBD9F4B01169D5D2F",
+        "de_type": 497
+      },
+      {
+        "contents": "674AB7E0797190073A3AE9",
+        "de_type": 731
+      }
+    ],
+    "encoded_section": "6E901332F1F41C1274F02153C590E9582228A79110003A467B2E8A05693603A106F0CC3EFD2A9004CA7F77623D873F7E349A56A149DE733DBFD129501BF46EED93A56BCA17BC3DE92AF5ABFD1B340451D013535A4E939C2BFD78382ED9E661B3C906B20B9B5AF2A8B9C56C544DC7C7",
+    "identity_type": "provisioned",
+    "iv": "97CBFEE77A69EC3AB70CFA9DEC69D8B6",
+    "key_seed": "396536E9DF44FCADA1064F4571A5AAC5646FC8B3EDEE0D33A5DF52C7AE61876E",
+    "metadata_key": "74B5E5F9F6E2E1F4E23B9250CDBBD802",
+    "section_mic_hmac_key": "E10F34CE2FF4F91DEF8BCC12EFC3B9FEA40F02CBA57B0C714C3358862C9834EF",
+    "section_salt": "3A467B2E8A05693603A106F0CC3EFD2A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "27CDB6CBFC3BF4820E0A953BB46AE4EC",
+    "aes_key": "F2963BFFFB81BABEE97F57E2264B4D2E",
+    "data_elements": [
+      {
+        "contents": "2EC8FD8FAF7CF8B52193",
+        "de_type": 797
+      },
+      {
+        "contents": "DDEFB34CB3BB4D52ACBAC8602A8975FFA878FC21E99C",
+        "de_type": 715
+      },
+      {
+        "contents": "9A2F3ECD9492F6C8D7F5A38C4A213D895D",
+        "de_type": 46
+      }
+    ],
+    "encoded_section": "709013AF7171A0C034F3DA55BE657C572FBDFD91100079434D607EADF68D155698ED3AC192F49001A96F812E44AB68004FCF2B067BA95BBCA6CC41B11F4B8A99282FFB2A8BE34E170C129E1041CBA3F9E63B426C54D6A2221407494B54F373E2EC8A11421D6AADAC787180B6A076434327",
+    "identity_type": "private",
+    "iv": "93020ED0EF291C73688089CFCE540F62",
+    "key_seed": "64E35F579F6D8BEA4A3B9646779CC1C21EA2D2878266A7EBCB0773976DED9D26",
+    "metadata_key": "B913D7031986423EB7BF3339608702D3",
+    "section_mic_hmac_key": "DB938326214EDA6FB2FA5F84B9DD0ADAF589302CAED778C1A5155473CB9FAA61",
+    "section_salt": "79434D607EADF68D155698ED3AC192F4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "74D392DC20C0813FF03FB08EBEE968CD",
+    "aes_key": "C42393145979EE5678C0F02913E457C2",
+    "data_elements": [
+      {
+        "contents": "A249A3E9418CE41DC5B3EA515726B651DF5DC1A992B2",
+        "de_type": 786
+      }
+    ],
+    "encoded_section": "5090136279969B1461D2CC0840ACCCFAD1B3EE9110006A843ADF7B539F71779C57B18939E37B9002D14999977E208361FEFF91D231EB62DD0B461BBF47B33CE9F4DA9A5466D6FE7142E7A2536B9790A1B3",
+    "identity_type": "trusted",
+    "iv": "F2A0D1AF937909CC82BD391A38FB00BE",
+    "key_seed": "10FA3986A299426275917865D774D86FAD4AFA8D83E7A92FC11B2B454E90477A",
+    "metadata_key": "59C6C47FE675122BDA465398F91BA5B8",
+    "section_mic_hmac_key": "26150B11FE754225C2DFD776DA88595D6F59333D7DE50DF56ECC216FAB7BE68D",
+    "section_salt": "6A843ADF7B539F71779C57B18939E37B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "49709E72975E1423DA5EB84983796A68",
+    "aes_key": "8C3FEDC1AAF1E282DBFBE2A2826F593E",
+    "data_elements": [],
+    "encoded_section": "3790136B0AB5062670A1F2CFA73A8A0C3E2FC3911000E5070EE95C545EDF7C37A169D35F7A469001DB7F2B2790C2DCD64A7684D80219EEF7",
+    "identity_type": "private",
+    "iv": "52BE6FCAC177DB189EB7CBE873855789",
+    "key_seed": "E0C4131D54945581E0A6E7053C42B1C20483EB908F17B3F430745224648F0653",
+    "metadata_key": "2D6FCA5EA2F20F86394769CB9FC4F743",
+    "section_mic_hmac_key": "E27951578700D0C5D6BA74098639A6AC7EF5F10CE611AA0E490ACF9A21A07D00",
+    "section_salt": "E5070EE95C545EDF7C37A169D35F7A46"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1CDE5651C61DB529D7A871B8F2C0F913",
+    "aes_key": "E599DE7996E01F12260F13DF78E15B59",
+    "data_elements": [
+      {
+        "contents": "097A4A5AFB2B6CFDEDD5A15130",
+        "de_type": 749
+      },
+      {
+        "contents": "3D15EB4E149B5A",
+        "de_type": 478
+      },
+      {
+        "contents": "D6D18F999A8934363B5C8FF561A7A62597FED9C6D40A",
+        "de_type": 489
+      },
+      {
+        "contents": "",
+        "de_type": 952
+      },
+      {
+        "contents": "C20A8E031417669DC55C7B5A7E64BBBA59",
+        "de_type": 76
+      }
+    ],
+    "encoded_section": "8090135046F9F1E83B423043631D49D56C9723911000B5BD5514A8DE674976FBAC499AAA9F529004B235B4809AACD74289EFFF94FE9DF1B36194DD4B93B2EFAB21D946571476CD1B1A07280EE656539DE4C54CF3E47D9A0C87A60D58EE613F49C5977750DE5011A6BB52C63C6E175695097AC3012E519D7FF2E18445DC2D063666",
+    "identity_type": "provisioned",
+    "iv": "6C3A04584261C50FC965FC088BCE4FC7",
+    "key_seed": "A0862227764FF19586A9C36D4D5EA8AA743ECCA8E0708995CAA04D3BEFED5A95",
+    "metadata_key": "F5F1E4D56284CBAC633932CAE89D0D4C",
+    "section_mic_hmac_key": "2D8B8B4C0356D9767D6EFF979E049A139571CA43F70C7FD08DE658501FAB0674",
+    "section_salt": "B5BD5514A8DE674976FBAC499AAA9F52"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B2FC3B369282CA10A016A4F84A430812",
+    "aes_key": "668D21A8160ABC3CE12BCF6175D086A5",
+    "data_elements": [
+      {
+        "contents": "5D3B4A3DBD0B402681",
+        "de_type": 933
+      },
+      {
+        "contents": "08666D6E86796DDDD4C185D7CD3B9C4BAAB698D7154302D0",
+        "de_type": 239
+      }
+    ],
+    "encoded_section": "5E90134107A4267522159AB8C37627D144A05F91100049DB288036A3BC3695F0F55D0BE639A19002557A8352F4128B631F38921E110A33279C46B3A97E74B9E4537062A4E23BC831A8866394105243C1EC880F62EE49F7E5E4D65BBB01B4BE",
+    "identity_type": "trusted",
+    "iv": "924712790182ECC211328405178D9EFB",
+    "key_seed": "BAB08FAE6AE8EC56D52961D055D99713CF5BC3742FBCA0F5B5DB63ED6D33F088",
+    "metadata_key": "BF508276E08064CD62E2DDD3CE52419E",
+    "section_mic_hmac_key": "C0AC82805FD560115A26DADE1F4ACA30E680503F73A730B9573F039B1A8D1E48",
+    "section_salt": "49DB288036A3BC3695F0F55D0BE639A1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7A1D241939F1129FC8A7BA9692CC15B0",
+    "aes_key": "02D06DE435FAC2E542496072E93B32BE",
+    "data_elements": [
+      {
+        "contents": "0FF9683813B3ADB28F18966B3BF4",
+        "de_type": 221
+      }
+    ],
+    "encoded_section": "489013E0D22FB9284C2AE55EE6E93EDF4AA41E9110002F2750ECF08560F8382C78B66352FA359001151B5F5F92C8382D02BAFA80C1205644F2A858A39F0576CA5C41ED6FC8F620D78A",
+    "identity_type": "private",
+    "iv": "CB1AE27FC7370085ACC737B2D16C3ADE",
+    "key_seed": "560A88DA8D8D99F0AA9B78F5C717070E814F73513DD8404D2842023C704E5F61",
+    "metadata_key": "2FCE6A6844717E567B6453D433C396C4",
+    "section_mic_hmac_key": "3110C125D838A53C13AA866C2BEA9BE4665D3E9917D780C44E06EBB679F0FCD0",
+    "section_salt": "2F2750ECF08560F8382C78B66352FA35"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "92318118DA2EEE83E2EF5E45DFB5DCAC",
+    "aes_key": "6BDD0921765C3F1BBC2A777EFCBCA39E",
+    "data_elements": [
+      {
+        "contents": "C5F864769C033B1C4C908B1B9486DDA0DEACFEF5C8AAC5088A4B89",
+        "de_type": 246
+      }
+    ],
+    "encoded_section": "5590131C9D39D7CA06A454FB1963E0CD54B457911000250CCCF922CFB098C5A4B835742B50D290027433FF5EC8DC7CDCF92F5A5E299F359427BC71F6BCE090A69A8B3FB71149E628FC8F8414C225D8A9884CCE9C3E05",
+    "identity_type": "trusted",
+    "iv": "CBDC742C7977835B4958757B70C41CB5",
+    "key_seed": "7605F725592CA87DE9BAAAEE0E22182AF0623EF1E43BF7C69C3E1B1600A31BAD",
+    "metadata_key": "52235475342B8095F3E5DB1A9DAD23AD",
+    "section_mic_hmac_key": "3298422E72C9D0E74C2F9A62D0B2061D7CCDF4C57728AC803D56E327C937A62A",
+    "section_salt": "250CCCF922CFB098C5A4B835742B50D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F26D981FC5BAD9D1E76BF8F50E8B6A34",
+    "aes_key": "6AFA08461D980105081BEFC1BED15573",
+    "data_elements": [
+      {
+        "contents": "6C3FF38F38B1E556419512BAE94A24293321886158ACB54AB4F606F3",
+        "de_type": 925
+      },
+      {
+        "contents": "13E28EBBFA5679",
+        "de_type": 685
+      },
+      {
+        "contents": "12220C039D132FFA3F990A8800",
+        "de_type": 189
+      },
+      {
+        "contents": "BE1C6812",
+        "de_type": 825
+      },
+      {
+        "contents": "F65EA4C141184E27B5",
+        "de_type": 536
+      }
+    ],
+    "encoded_section": "8390134D53E258FB8B450831D776B4843DE2C691100013ED736F16EE6A2CED580FC6659D24E9900115C96C37DF9232D13C0A77058FD38C7904318CCC73B59DDE8D698753D1A81242B9F2D4988F75BD49B1EB7669ADEBB5C943C2B622790D8DDE98ED5CE2F6CE54E24BE94DE1B9DE3702CC611AECECB6124E6A4A8E78F077BFBBEDF1246C",
+    "identity_type": "private",
+    "iv": "6CFC6056865E1D43A9F198D6CB5DEB0A",
+    "key_seed": "2E66473794E7D76F52E4F4EC27BC04B52DD0878E4AE728E030DBA17ED1BF5165",
+    "metadata_key": "645B2EAEE90C3EDD564BD70CAC5EA05E",
+    "section_mic_hmac_key": "80802998858AE3DF52E4C02A934CC27B218CB1B83BAF7AB7545B0A3D1A4A1559",
+    "section_salt": "13ED736F16EE6A2CED580FC6659D24E9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BDD3E6E05FC1EF8F97B872F320EA5EC5",
+    "aes_key": "C955629D757D92E065B1C843B3E62502",
+    "data_elements": [],
+    "encoded_section": "3790134859D4915A9669BAD25DBD6612C483539110007DB7203CE87A8753D5DF7D7B3B9548B390048800DFAFB1AE182D1F43A11B68CD9964",
+    "identity_type": "provisioned",
+    "iv": "7379BD491B8D004FD0BF5E572E1086BB",
+    "key_seed": "BAA5B1933026681281A49FE55D3D359FF8A37B171836604BFD789EB52978C2F2",
+    "metadata_key": "472C0CE0246A17A1F29A4083C8680C88",
+    "section_mic_hmac_key": "81106F3E642560B70CAF5243B430480127CA1B1025C1E9EE45E9600429C81EE5",
+    "section_salt": "7DB7203CE87A8753D5DF7D7B3B9548B3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0324729B74E497693C66C538B8E377F7",
+    "aes_key": "6A0FD2D178986806E8D99448C6E03D39",
+    "data_elements": [
+      {
+        "contents": "E779A71A22F13932159115D92842A7432D9273B15F9EFC0E",
+        "de_type": 5
+      },
+      {
+        "contents": "5AB6447296CE47957BEA513C4A78D7DB718DF085A3C5B6056313C5E97A3E",
+        "de_type": 164
+      },
+      {
+        "contents": "9BE2E0FEE14367E5F9904AD071327559AE351FF343",
+        "de_type": 492
+      }
+    ],
+    "encoded_section": "8A90130B1EAC69A3BBA0198791DFD7ABD975CE911000504754FB80080D08BDF20CFB89BAE2F4900232633668B94BD4B723F1A0C2F64D15F01A1121E86CB529C8C08D097252B3A5CBD6B1EA4797372EE51F4C8E0C11F6C7B15957C920FD00950144724D287E5A45893315E3E6613BF0A55F55E6F7E156A879A6EB7F31136810B1F31252E60E4EE8AB54D529",
+    "identity_type": "trusted",
+    "iv": "1EA7A7228D5E0B9BC2C467DE0F3E8D7C",
+    "key_seed": "DE985E83ED8102B2850B579CB045EB10DCDB95A908CD2C11A3EC2AFB5C65D264",
+    "metadata_key": "43C47B2AEFE02C363B05E235A6BD410A",
+    "section_mic_hmac_key": "81B93FE732216DCD0036BBFD425D451A502DE7BF6834110FC665CD07E90806B7",
+    "section_salt": "504754FB80080D08BDF20CFB89BAE2F4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "ECDD1DC8D4FD989DB4580FFFFD4EAF58",
+    "aes_key": "26343238F4AE3E3E5F07808B3B012394",
+    "data_elements": [
+      {
+        "contents": "19EEE80B7E463D4FA91175C1201E05ED27AD",
+        "de_type": 418
+      },
+      {
+        "contents": "138E9FFB3689657E3D2C4504596445",
+        "de_type": 313
+      },
+      {
+        "contents": "C96F4E4F9DF91F8DC2EA8AB25A49D112F5",
+        "de_type": 272
+      },
+      {
+        "contents": "3BF1B1D5B80FD33B4E13EA34AFD2B04997",
+        "de_type": 607
+      },
+      {
+        "contents": "60E79858BE9E3880F5840B8EDFA2AED9A1",
+        "de_type": 657
+      }
+    ],
+    "encoded_section": "9A9013C071629B70BA9DEDE2D6BE7C3EE50A89911000CFBC29C1DB6233359093D46F6B6268729002AA827CE8FB3E7D10578627C549FC3EDAFC546CF7FA5C5B8774321832389BC08CF65BF7008E138B2229C21112326A972D327C3FCEC4A5E447465FB6FB2A3D65F7C53D0BC3A7DE1664B0113E3E3F05DAFACF935775E1D7CEE288220BDF2920F1C0B6F0DBF2B7300EDAAC262A35D2207A9159F577",
+    "identity_type": "trusted",
+    "iv": "5D4306FF65CEFE2E7C434BB00E18B020",
+    "key_seed": "509ED43FECE08BE6BF6379CD1778649C806AB7266610F065B2A6365442DCC4A6",
+    "metadata_key": "A36A66D7F731890EF9193D882DE89F1B",
+    "section_mic_hmac_key": "FBBE31414827EFDAD0A31F4BDDD281C958AD680F43AA856DD0319B01961F2E6B",
+    "section_salt": "CFBC29C1DB6233359093D46F6B626872"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "876404A488F733AFF2480B84937DC32B",
+    "aes_key": "F9AD44914D756A3E46E6BAFDD137CDA6",
+    "data_elements": [
+      {
+        "contents": "804E497B2E573E7F2E93CE434493E636",
+        "de_type": 446
+      },
+      {
+        "contents": "70E3CFF3391999B63BB8F6FBF914969C40AC6A8B69A388CBFD5B5667BE8B",
+        "de_type": 144
+      }
+    ],
+    "encoded_section": "6B90133B3BC844AE809C69DD3FDABBAD762AA49110000330AE82E82A5CFCD43DD63947D7B25D9001D96A4D7255C420618CE01331413D4D7428210A004EAF8BA0A2B41DE9129DF151FF58CFD9BD8626FD3201CA27F55156CAE585EC593FA08E260A9591962B7F7F6A28FFFAB2",
+    "identity_type": "private",
+    "iv": "F4D1BB95A18F23894E8E694B2C95FDCF",
+    "key_seed": "E1B4FF787998B33BD7E33250E2386F2BB8A0491EEC4CDF640A2879D09DA19E8D",
+    "metadata_key": "048E9FBB34067F84D69B4D14ECAEA6D5",
+    "section_mic_hmac_key": "D606CEE9D49A0D1DBA0E7F07022FF962F6F6DB04608FF2437F2AB436C4BD007F",
+    "section_salt": "0330AE82E82A5CFCD43DD63947D7B25D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "68E03983FBB92FD3B3ABFFA9B536FAEC",
+    "aes_key": "79F938C4FA735CA8FF0AB1C65AFA5116",
+    "data_elements": [
+      {
+        "contents": "F2E5FF2AB3237D9375F716D5",
+        "de_type": 490
+      },
+      {
+        "contents": "9D808B5A5BBC1473FFB8DAAB95FD4D9FF675A1DE9A40",
+        "de_type": 905
+      },
+      {
+        "contents": "B90F45006C8FBC5A50DAF69EC332341C8FF71168EE6970523C6C548D6371",
+        "de_type": 128
+      },
+      {
+        "contents": "E541744FDDA8A39D91664C22A2C359BB8EDB4DE026",
+        "de_type": 496
+      }
+    ],
+    "encoded_section": "989013DFA3B7763EB39454DE5B2D1F11C74D459110004E4E42F39F331D403DAAC6FD2012DF5890026C8B35E350004277C3C63E5791CE1D8DF6EAF71F950F24A66EABE93ECA5E8BCD39470A09686924CC844A27FF303F73F9EBC2F1D8B15BB2844F4BE645F215E58105A6AF75A88234FEC0E4E83257FB377F595BE77CA1ED1735F929F928138D0AE987E2B094CAD8C91D20C349B2291D54397F",
+    "identity_type": "trusted",
+    "iv": "0EB2E5BAE1992B95A34004153725D67A",
+    "key_seed": "BF2D76E1C94D308C2E27207081573B6C5B18749DCEEAE1CC6858E044396DAD75",
+    "metadata_key": "766DDCDA99EAC37E0B6715030718F389",
+    "section_mic_hmac_key": "65F998A2F910AC50F14613F0025A14062D5FD55D2BE2445E01DDF2AD3AFD4CB3",
+    "section_salt": "4E4E42F39F331D403DAAC6FD2012DF58"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F512FD19534C6D30B3D6B6C64F735252",
+    "aes_key": "C919354EE8916B537AF0C80B01CDFE3A",
+    "data_elements": [
+      {
+        "contents": "97FF5DD7CF10CA400439FAD93E73DF7BF31C0840B47CC8625908F64F9D",
+        "de_type": 884
+      },
+      {
+        "contents": "E17E6D5BF307A79257F432B833BED7631896236A77DC8991244F02BF28F1",
+        "de_type": 773
+      },
+      {
+        "contents": "128F4E5BF9574E0C5D3E0C287DCBEFA2146ED9",
+        "de_type": 43
+      },
+      {
+        "contents": "F19F873AC214CF412446FCF92FC26F4F96",
+        "de_type": 989
+      },
+      {
+        "contents": "0090C56C3B45810987944B0D74EF0CE7BF771A24A4",
+        "de_type": 996
+      }
+    ],
+    "encoded_section": "B99013C5864027C79888996629813A4E22D8FE9110005A6F75A015A7BD183C08ED51EA3406A890022FF7107FDCB387636B67554BA545F04F63A89E41B3547AC27E871BA24BED6B4E347E83DCA86FBB188B18EFEB48E6CAA8923090905BC4974559534DB81313EB69E94BDDC2F397E1CE6247259C046D724DB1AE74ADAAD252F57E477A3C5FD472690839152E8D8571B70C0CF9F486E0125BD74B3E5535D456C966B61E6045995F384D61A2CCD360DF06CB3408A43BC9EF24F861",
+    "identity_type": "trusted",
+    "iv": "AC1E6DEE532335A11CC00AA26D211142",
+    "key_seed": "0654E589CAC8FDDD66324A9E33795A884AB11FDA325C6A1FFC9184981B547C11",
+    "metadata_key": "BFCD84710DFB3F2C3BF10DFFF9E1DEFE",
+    "section_mic_hmac_key": "FE6CC88BE6EBD51916AADCB0525D7C7F817DFB061781676C1C5258D466DF7CD6",
+    "section_salt": "5A6F75A015A7BD183C08ED51EA3406A8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1020365708197FA134F58032B0736A93",
+    "aes_key": "23C5D746F33EA244CD01AAA605FC0D12",
+    "data_elements": [
+      {
+        "contents": "D6D87CC0",
+        "de_type": 969
+      },
+      {
+        "contents": "F19C90FB",
+        "de_type": 138
+      }
+    ],
+    "encoded_section": "4590130680B536392B1C55C8A39F7575ECD678911000AB790910EBD2510A516A52F216386F5690024C190A81E7249A478324EAD802CC0A72F631AB3ED55CBBC330E0CA3ED6FB",
+    "identity_type": "trusted",
+    "iv": "18E15943B98E5BE79E0726008C289E41",
+    "key_seed": "E7ADE77256E2288534314126F088557EBC87BD3E0034FA36B5E2E414B2BD3089",
+    "metadata_key": "243CFFF6C8ED39CCE1D20ACEE1E8C6F8",
+    "section_mic_hmac_key": "90DC367708ADA4748D498E819BC4218C62FA48A828308197F421D9B13B3402F4",
+    "section_salt": "AB790910EBD2510A516A52F216386F56"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F3F2711088CD0EE74DC97A20DAF1C2D8",
+    "aes_key": "71FF934D1E8D517FBE367CD46BBB17F8",
+    "data_elements": [
+      {
+        "contents": "A302",
+        "de_type": 512
+      },
+      {
+        "contents": "01F2F27578CA1CB5AEA3747DCE36EEB290376B14E08854",
+        "de_type": 770
+      },
+      {
+        "contents": "C712547AEAA2158286610804E3EEA4C1071F90B9178F4E93E6F8",
+        "de_type": 622
+      },
+      {
+        "contents": "8338102992C864649A9D8A78C497490CC8EE5750E12EF9",
+        "de_type": 962
+      },
+      {
+        "contents": "BC3B3A70C610A20D7C",
+        "de_type": 754
+      }
+    ],
+    "encoded_section": "999013DC39E4693F8C1317955AA5920150891A911000B7A64ACC26B3A13A6E1EAF8566807D159004E9CD0DFC4280A635682B3A8DC254119A26AD228C86A032FFBFE926391FD32C81741EF29655A09920EA7FB7090E73359C6B1E61D67D4ADA3BC78F124E1829F6C877453C1200F4FBCA32D7514AC9C2A98F5CC300760F2B114FA5A39701AC236A8E15FC028169E8A7EE42A72EF54829AAB35F5D",
+    "identity_type": "provisioned",
+    "iv": "A4AF64AE89D6ED2187780610289F118D",
+    "key_seed": "9A118BA5B630A910A034F4CF3B9244F57A23BFD59FC0E4934F672CD63E020145",
+    "metadata_key": "9815FBD7BB8FA24AF2053C9D01F8862B",
+    "section_mic_hmac_key": "AD345DE497CD73EAEA71EA56EC7098FFD71E65A87FC7B01247643435342EF5C4",
+    "section_salt": "B7A64ACC26B3A13A6E1EAF8566807D15"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "420F8EDDBCEF536ECFE0823E0A64150E",
+    "aes_key": "3E58CA6C9C2E9494CDFDED070763FB07",
+    "data_elements": [
+      {
+        "contents": "C41B59CE2AD957CA07959684FB6D5E3FDE89D31EDAE877",
+        "de_type": 280
+      },
+      {
+        "contents": "D0DDD13D28FB08B9C19C290C3347",
+        "de_type": 120
+      },
+      {
+        "contents": "1834",
+        "de_type": 45
+      },
+      {
+        "contents": "A3BFD5AEA1634D500CD9D436",
+        "de_type": 896
+      }
+    ],
+    "encoded_section": "749013C498F161B727AABCE678B9D94DFEBB0D911000873C3CADAF81A693213597DBD9C53D8690019FD0E7986B2509A457A42866D34E0A892FE47105171A1CE2A245193130B6A1FEC7A6F485EE8AF0FC67ED58B9B732DC93C2671F682805343994C0CDECB5D6E725698F135192C657C569FD81F0CF",
+    "identity_type": "private",
+    "iv": "22BCDB28787B9F7343729B59C9F06F87",
+    "key_seed": "5D3AA5329E3AD5BC9A4C16E276FED94699221C782DBFDCEDEDFFB81FB32FFAFF",
+    "metadata_key": "CDB698B8C76457DA2631586E44409C35",
+    "section_mic_hmac_key": "81392F1B099B77B1D7DD7EF7B8C9E58CB4A2444C56CB40D955E238A2BBA5C39E",
+    "section_salt": "873C3CADAF81A693213597DBD9C53D86"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D2F959AAB5DE3FD53094D768D669B969",
+    "aes_key": "DBE6CC0A7A07592FEBAD3CFF364A5ED5",
+    "data_elements": [],
+    "encoded_section": "379013D2960FA7CD8C566FB6722FE0AFB4BDA1911000C5272B1D1A6B168B77D90348D5A8F11E9002FF37EC6DB5FFE7B653EC43A49A0F079E",
+    "identity_type": "trusted",
+    "iv": "98C8F75EB86F93E39301FB09266AB286",
+    "key_seed": "4CB698ADA80C2A298CE7F3C7AC4EE3DEA2E3152F314DBFE595FD550E8895383F",
+    "metadata_key": "EB0F5B5FB454BA99B963BBC853069E33",
+    "section_mic_hmac_key": "37E1AFAC60FE9EB5B3976AD6DE229A72890F74395CEB0354DA6E39E24251F5D4",
+    "section_salt": "C5272B1D1A6B168B77D90348D5A8F11E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "14E183839363D1DC8DD63971B165D847",
+    "aes_key": "15A23D3D9E70A3323BE7E5E0ACF62EAD",
+    "data_elements": [],
+    "encoded_section": "3790138678FBDD1D4B2FED10D2044D7E75F2D1911000E67C5ACF5A491028D74192897BE7C8C89004FD23DE541F708C9F0E8412122769EF79",
+    "identity_type": "provisioned",
+    "iv": "853E925894CF1B53548A9547B9D5D2BB",
+    "key_seed": "59DCCE265D17F292C21FDAB1AE190050BE79B24CA9598F341CF3CF28B54C65C0",
+    "metadata_key": "CA9C149B9147EADE4FDDA3483B5CD694",
+    "section_mic_hmac_key": "AFE7942059529B6761E08237FD3DFD1B1E5375AB75D993318B04F92DF26CF4A8",
+    "section_salt": "E67C5ACF5A491028D74192897BE7C8C8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0EF53E475C49FF12FFFAD62075DC0D5D",
+    "aes_key": "E7EC797302AEE2AE931B498246B49B27",
+    "data_elements": [
+      {
+        "contents": "03BC28F6",
+        "de_type": 538
+      },
+      {
+        "contents": "78",
+        "de_type": 119
+      },
+      {
+        "contents": "7E",
+        "de_type": 436
+      },
+      {
+        "contents": "140001B5FD493CCB4EF775",
+        "de_type": 67
+      },
+      {
+        "contents": "A82250F3EF3A3EC7AD986144C53E1385FDD7E32920DA628A36E7C4EC40",
+        "de_type": 177
+      }
+    ],
+    "encoded_section": "729013E7032F673DF5F16041DDECC78F5ADCA691100099970A2BE5CA4702AB5F94CD52BA12D29004856D9D48E7BA32C0E1D609F1077585A0386531F8456FD5716E5B16E5025A50A2866307253B298F8FEE9FD51C4E2C15FFBDA0FDA07F1B72402FDB1021BDEAFC707FF2E398B0125E73C43D08",
+    "identity_type": "provisioned",
+    "iv": "9A6B50EE556D600EBFED50255A635666",
+    "key_seed": "3CD3990FBBFE4A88391309E9A3314A987602DB087E403C9AB34E5EDEF94E20D8",
+    "metadata_key": "4A1BA5934FF66FB454D46083D338B99A",
+    "section_mic_hmac_key": "357EBA3A7167F44A6BE8E10DBF1EB509A0DA2F1998FA8DD0338BD2DFC20CD716",
+    "section_salt": "99970A2BE5CA4702AB5F94CD52BA12D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9E5270F2FD83C70EC6A8316A5B3DA3F7",
+    "aes_key": "BC2F869516A306EAB00FC86189F94B33",
+    "data_elements": [],
+    "encoded_section": "379013994A578360FD876E664C89C68C4B4A94911000029A499D61FE555DCE2FD9B72E293E7590025902F37B71C8D6336FB581272FC20E0E",
+    "identity_type": "trusted",
+    "iv": "EFACD81C00A66A18B186EDD153827783",
+    "key_seed": "132CECE9A4A70E8BA66CC013D3A7802E0C394E2CB6FF70934B7FE0793D87D365",
+    "metadata_key": "2D71D02CB1BB8194F317CB46FE0F91EE",
+    "section_mic_hmac_key": "6BD9C9248FEB3255BB7A215A55E5A75B6E6BD1D2DB77CAE09E0A7082042CDA56",
+    "section_salt": "029A499D61FE555DCE2FD9B72E293E75"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "21C3D6A19DFF28652E68CCF2EB17B6DF",
+    "aes_key": "03C7A896A16535EEC2C6A351C3C17401",
+    "data_elements": [
+      {
+        "contents": "1F896905",
+        "de_type": 229
+      }
+    ],
+    "encoded_section": "3E9013756F991A26E044E25C8F3A005852033F91100068CBC39EBC593EF92F0A7852D4CFAB2E9002385D85A14F31B33F8EFA86FABAE5B8CDF1302D8D83AB8B",
+    "identity_type": "trusted",
+    "iv": "54BD3DC6A8F78CEDF672FF5722264019",
+    "key_seed": "313399F9F3EBA494B79B76AB2EC128CA4F090DEB39FAA941B6BF1C5D64C3D21F",
+    "metadata_key": "E975C7A248514BB2EA89E1F61CCAB17C",
+    "section_mic_hmac_key": "CA509CB5DE76153AB5AB8605FF2B18119515FEC7667E42D1EB783847D9E7BFCF",
+    "section_salt": "68CBC39EBC593EF92F0A7852D4CFAB2E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "98BFB3E0F0510DFE082F97B7179DA50C",
+    "aes_key": "5494153569CE0A4AE2EC9504E949F5C1",
+    "data_elements": [
+      {
+        "contents": "893281811CA83052DCA1F09C4BB9F66B979F",
+        "de_type": 891
+      },
+      {
+        "contents": "DB4CBE98092EB7FA4E53",
+        "de_type": 679
+      }
+    ],
+    "encoded_section": "5990137998FC158FECFA5BA42953873097E86091100031BFE75E39CC61D315D73D7D17637BB59002E498BFC92B873AD59BF1A8B4D00F2E3C223B9D764D32AE999EB9407B7C5E10ED655EFA33CA62B9AD7FABBD760AB4046F32C0",
+    "identity_type": "trusted",
+    "iv": "71319F6EE32F01F7442755A48314D90F",
+    "key_seed": "DE2E4CE127E2C5B34556CF992FBD5A97A9ACB072210657E6D7234CECEA835947",
+    "metadata_key": "28AA7545DCF4B6861C4379FCC6A51547",
+    "section_mic_hmac_key": "86A9DFAEF782CF536B2BCA2E2B70280C6D001D6E79C7E1286DBD3BDF0B273EA2",
+    "section_salt": "31BFE75E39CC61D315D73D7D17637BB5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F792CC0735D975CBDAA95FDEED64CC34",
+    "aes_key": "6CFA85E9D7E5F331492B7B7EA0FEC8F7",
+    "data_elements": [],
+    "encoded_section": "37901374CC86109CA20F39080D2176D95C0A399110008CFBEA96CDC8317DFC83180AEB0E3781900294B9DD5B5BBBE70EBDBEF59583D9DEFA",
+    "identity_type": "trusted",
+    "iv": "F2BD046CD8B55DE3DA138D23F2836888",
+    "key_seed": "217BC510C941A4F4CED29FC8918C5DA9446B947D15241150D615386A80A5DA07",
+    "metadata_key": "2E50D416BDCF795FD7B5543B26FAEB27",
+    "section_mic_hmac_key": "7CDCB29ED9C12538B161F13A6E8CC784700FB5FFC7E2DA4F6F34FD933DBB5D77",
+    "section_salt": "8CFBEA96CDC8317DFC83180AEB0E3781"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0459E861ED82466586CB38BA820A08F0",
+    "aes_key": "E2A53ACBF8D874D7E3446A77DAB8C00B",
+    "data_elements": [
+      {
+        "contents": "73C550",
+        "de_type": 154
+      }
+    ],
+    "encoded_section": "3D901386F0FA8E4C1631979E805860E37B810791100053C835177E42543EA07364331BDB0B9D90026DBC4D371F252DEB9EC232757C0FFF54B0AA5AA7D4CC",
+    "identity_type": "trusted",
+    "iv": "42A1D51EFAE859C62164F4D13EFBB665",
+    "key_seed": "0BF7A81876C2775C3D1A8BF926D2B32C6EA0BFEA2C677DECECA4D82A40627CE5",
+    "metadata_key": "DA02A311B1BE6E2FF7F35ED04F2BA935",
+    "section_mic_hmac_key": "C224D779048C9F41DC725298EDC634A13F54D0726070153C90AF7747543ABB7C",
+    "section_salt": "53C835177E42543EA07364331BDB0B9D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "716BD818239FEC609FD83E0E655D99DB",
+    "aes_key": "E510FAB4977C76912B8A434666935A8E",
+    "data_elements": [
+      {
+        "contents": "36B8E05F3ADFC6EB9748E93DA4CAA90DFBA993E4A623B5387F",
+        "de_type": 773
+      },
+      {
+        "contents": "32DA679152",
+        "de_type": 979
+      }
+    ],
+    "encoded_section": "5B9013DA850EE1EE94DF5815178A410C55BE0C911000E78A10BE08D7C230574BD056D8478F8C900496535593BB99B5FF19FA00B4673B4EDA76BFA04DB8DF0CBCD14807D518F0B500206AAD90F34FFC1A1CC22F37C9057C4642D732AE",
+    "identity_type": "provisioned",
+    "iv": "96F876599B14A21FC060A042F5E134E6",
+    "key_seed": "F9A248BAE31270E5C543E5EAE28C6552E62BF7DD99F7BE518B5CE78D52C535A8",
+    "metadata_key": "41CE67094AA58CB68886D68D0193E9FC",
+    "section_mic_hmac_key": "ED41BD675FE9FC9D386D5F7BDF85A090E0CDD06C654B74F9A925466A616B314F",
+    "section_salt": "E78A10BE08D7C230574BD056D8478F8C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7F3CC424F187398A9D04E051B12744F9",
+    "aes_key": "32FE6B6BFDC54C7C3D190731779B9BDE",
+    "data_elements": [
+      {
+        "contents": "9F8CAF983F9440011F44B7C1E739BD66CA201CD553ECD202C61CC3",
+        "de_type": 597
+      },
+      {
+        "contents": "86636F77095B43A7D8CF9409D3FB56CB184EF894C68733",
+        "de_type": 351
+      }
+    ],
+    "encoded_section": "6F901363F63944D3D3B62852E1C29317DC53B4911000D1CD81A105ACF9921968705EAEE9D92A9001DF86E28C415ED0E45F886965EE16475E0C63561C5D876E9F6E5B24E64419C905FCABB21DF8039EB945DC929888A4C7AF8F4729023C726132918DAD5603E12E1A152D57961025B1D9",
+    "identity_type": "private",
+    "iv": "5FEB88C9EE2B3558BD1E1CACF0CE8DB7",
+    "key_seed": "8D82AA87D9535AC9B95629FF003748F0D846D09DCF4577EEAD0F46351AB74B41",
+    "metadata_key": "4B7CD0359387387945A934B6DF464C8B",
+    "section_mic_hmac_key": "ADAA329E70F13AE3122A74DF74E84A7C6F1EEFC966617408BE3FC279AC4BB8F6",
+    "section_salt": "D1CD81A105ACF9921968705EAEE9D92A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FB3D9837C28AC67707ACFE168B79802F",
+    "aes_key": "DE1ECC3710EE70A72F458CCCBE684022",
+    "data_elements": [
+      {
+        "contents": "311806935DDC",
+        "de_type": 932
+      },
+      {
+        "contents": "941A",
+        "de_type": 262
+      },
+      {
+        "contents": "4B70C0E6758C665694CEF8D27E2169098693AEA61570C940FBC453",
+        "de_type": 20
+      },
+      {
+        "contents": "BDF524A91132073481B23A0D20C19E3E57D365C37A90FFBA8E41",
+        "de_type": 474
+      },
+      {
+        "contents": "9C36B683253A6AADD79843",
+        "de_type": 965
+      }
+    ],
+    "encoded_section": "8D9013794200979A65FAFD9C31FEBA2DACE1B29110001C6B6EF087BAD3E1CF545DF1A9A9CE99900432FAD109DF59A7DEC426A1DB051FCC95F420A321410D13AA0FDCA4E22DC7A7D6873AE13CC3173D14B2BB9CE969E9B0A8B6745D7E913D03BA9031E8EE7A09BDB9689C80DD630CF7D193B233F3F3F1ED1054D9939D8EAFB7EC55BA71A7103F7961A29A1C26B888",
+    "identity_type": "provisioned",
+    "iv": "4EF171E764B3E218255391C9D368765E",
+    "key_seed": "FAF02B1CF86D9A97BCF9E2C0FE5850688E3D49E53616224ADE0238C91860371F",
+    "metadata_key": "07D64CAB902E683E5C6B3BDC257F2ECB",
+    "section_mic_hmac_key": "01108F72B3239D936073126F7DA309D55A68509567CABF6F7742DE6B12154D8C",
+    "section_salt": "1C6B6EF087BAD3E1CF545DF1A9A9CE99"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "38E22156A8185E55F335A47037F8E2F7",
+    "aes_key": "6CF70F3F165CE847A9C63F50D8547C21",
+    "data_elements": [
+      {
+        "contents": "4D8D46ACD86C6961C4094DCB13D4E916F3A83CF8",
+        "de_type": 508
+      },
+      {
+        "contents": "C4688F335D",
+        "de_type": 78
+      }
+    ],
+    "encoded_section": "559013CFE4D705FD9D6A0D8079500CE2E92B14911000C625AEF2F9BD3C56372C63173571103D9002D5600B9D26063F4622FC6CECBAB259B3BBD63F3B3E304465A897B891B7DB0039B8BFEF525691FA300DC955A09E17",
+    "identity_type": "trusted",
+    "iv": "33820EA628D605D7F5DF12E15E0F202A",
+    "key_seed": "401411AE44BA8795773F4EF0049F07051344BFE4C7255D4E7D975C63738B27E6",
+    "metadata_key": "1B003DF5AFD3B438F2D367697DEBFCEA",
+    "section_mic_hmac_key": "23BD2994A6DC828B1115E7CF2D7A2197ACDFDA21D8030167F845E9A42461EF51",
+    "section_salt": "C625AEF2F9BD3C56372C63173571103D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4A5CE7E83CA2E1C0B57C8E06D0E6F742",
+    "aes_key": "F085865AF5C9A124298272AAC0C459F4",
+    "data_elements": [
+      {
+        "contents": "EA412396D4",
+        "de_type": 360
+      },
+      {
+        "contents": "5B36B6971907900EA4D176E7F96C99C6075CB81A",
+        "de_type": 151
+      },
+      {
+        "contents": "7672075A67196562CFA6A05A1C9A803FAC914E665661",
+        "de_type": 669
+      }
+    ],
+    "encoded_section": "6F90135C5E8470AB022D8D60D1362A898BB18C91100072034CD97D55545F76310C999D548F7190014D3248EE4C4B1A52F45BD578C3AFDDDC2F3213EDF205D719FCFDD964A9B580DE8DCF620F5E3B7386389CD569E2CB17B8BA70FF1B739080481A336376DC599322D9952717784ACDA5",
+    "identity_type": "private",
+    "iv": "6890DDE4612EEFF53CF9BAA9A0A57B20",
+    "key_seed": "86589F54F57C9F0AB5245C0F6635B611F802EA256A94441B12160C2605AA2D1D",
+    "metadata_key": "DDFA0DD062ABE2CD427A72F1C1F81DC4",
+    "section_mic_hmac_key": "0FD9C77FE8E953E2B8526DA6414A2857E02A4A3213F2BB484799E9CC977A2219",
+    "section_salt": "72034CD97D55545F76310C999D548F71"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4ECC54C7A3A3EA811EB6C2D753C41C19",
+    "aes_key": "5EE028B37AE8B25ADD419427E31E23AB",
+    "data_elements": [],
+    "encoded_section": "3790139322D0756986F1FD123C6B04CDF3EAF091100057FFD16AA68473D0582E5BEEE3868910900201234FC414E25E21A3EFACA4A5E5A999",
+    "identity_type": "trusted",
+    "iv": "87F0BB8A2FCD03EFEE2AC5C1453F55F0",
+    "key_seed": "598FF7D9FD66BA3E660DAEB8B3E5C6C82FA6AB758D3D1076691C4D0542EF067F",
+    "metadata_key": "9857B87C8DFE289C01F9F9708B692FBC",
+    "section_mic_hmac_key": "1F7BC70DC4FB9665A7E21929DBC300EE2F91AA7A7AA775222A26149F60EB5345",
+    "section_salt": "57FFD16AA68473D0582E5BEEE3868910"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C73AD85B0EF01E161F1E7764010C1EA5",
+    "aes_key": "79E30C89ED65C6F40882254563A75E17",
+    "data_elements": [
+      {
+        "contents": "18609C222BA9D3D5DB036F555AB0CCEC09ADE5179EC2CA9F",
+        "de_type": 99
+      },
+      {
+        "contents": "EC187ACF3F4C481BDF000D552EB3",
+        "de_type": 658
+      },
+      {
+        "contents": "BF556150F61584A4CF7A5C624E",
+        "de_type": 383
+      }
+    ],
+    "encoded_section": "7290139ED0E2B0FDC39CD26D661DFFF11234169110001E20C1E816FA9F2D34542BD1BCF7ED9F9004EAACB664A85B0349C8431A0EA7D7E87FEB22B32F30C074D0285840584A1026F19E1DCD4BF133020C1550E42725C77B4E6E60DEEB1A354FEF5E481E41075F40D790546805FDB5F0CF6EB7D4",
+    "identity_type": "provisioned",
+    "iv": "C430A8DCAED7C039B0E33CA4FD4F093B",
+    "key_seed": "EF0BC6EE51E35093FA4C893AAD43B1951B91C650EF6D401C7C03975AA916A507",
+    "metadata_key": "0FCBFF2F8DA457F6279FB66C50203DF3",
+    "section_mic_hmac_key": "BC9E4B32DAB0A23BF9FBC776DD2AD5530E1AE56337FB5DCBDA1FC45E5C34598C",
+    "section_salt": "1E20C1E816FA9F2D34542BD1BCF7ED9F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2B287CE2F08F4BCCBC505B6FB2ABEC15",
+    "aes_key": "A2391D2B8D95B3B22079BAE241145DF8",
+    "data_elements": [
+      {
+        "contents": "2A6C741FAC614B55AB5B",
+        "de_type": 746
+      },
+      {
+        "contents": "B82E6D8CFF3DEC1962D2CF4134A7D30C04F4A3",
+        "de_type": 972
+      },
+      {
+        "contents": "A03D72AC4A8A200BAF89714A92FC5BC3753529",
+        "de_type": 271
+      },
+      {
+        "contents": "C89C68F269FCE8",
+        "de_type": 462
+      }
+    ],
+    "encoded_section": "7A901325D43FF30DB60387156458D420A2551C911000F8647C38B6266104D6ECE9E5CE7E879190015383810EBB8184B419130D8EABE9C911D7EDF89EA2A9008D98C5EAA9E8D2B550252267595D53A0BC8E7AB281846867F6A54FE0A048F208D38F660D69E6341DE617223D80A2D2B96947630EBD69EDE868FBF659",
+    "identity_type": "private",
+    "iv": "FE04A94DEBB042153B2C96CF5D4DE41F",
+    "key_seed": "F37257303C8330286B67468749200BD24155F76D9EAE8CF6F4A1B11632F9461E",
+    "metadata_key": "7216F11C49F946FEF51139ABE587B632",
+    "section_mic_hmac_key": "4C21C99F1C75A9641AE865D73D38BAD22B11A67009ACDFD40F8003D80CB6ECC6",
+    "section_salt": "F8647C38B6266104D6ECE9E5CE7E8791"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A1133D9CB487CF507E85AB45A5225A3B",
+    "aes_key": "E2BE917DE14406C0FCF09FC4FDEE1FF5",
+    "data_elements": [
+      {
+        "contents": "71238E",
+        "de_type": 839
+      }
+    ],
+    "encoded_section": "3D90132C5CB47E0A288D59348CA9F66DC3AF9A911000523C6B069BD40FBB9C6BF1C8E10865E69002AC2424CD59DA02E42EF7E44168236A9C325B591A7DE3",
+    "identity_type": "trusted",
+    "iv": "FBC8CDB92CE0F89BBFF8C1BFD00F6541",
+    "key_seed": "F7982DAFD3732E72F79D778A65DB2174686D0AFC94A8FDD356DE6B74B0917497",
+    "metadata_key": "ABDAA0345C02A6AF84BBCCE12BDBB38E",
+    "section_mic_hmac_key": "55EEAD0385A2BF321ADCB7C14075438ABB04AC96A68B93A9F2C53490431561EE",
+    "section_salt": "523C6B069BD40FBB9C6BF1C8E10865E6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BB53EC5F4F7ED20F852C88CAE0D7D2FD",
+    "aes_key": "27166277389D14C33C6EC6FCF087D4DB",
+    "data_elements": [
+      {
+        "contents": "8CAD688B88D91C820CC9DDE89763",
+        "de_type": 976
+      },
+      {
+        "contents": "8430D62B44C83C85BDB6697D00A8A53518CD8DA7FCA68AA1AD6E",
+        "de_type": 166
+      },
+      {
+        "contents": "7A0FFFA6068B33AF9AEB4798863FCF",
+        "de_type": 957
+      },
+      {
+        "contents": "7AEF9A74325D4192B1B99E704D9FBDEAD1C027388D8F3B0E7FC72BE44A",
+        "de_type": 533
+      },
+      {
+        "contents": "0AD6320E89875A983E2B1507A7F212C5AFE5",
+        "de_type": 177
+      }
+    ],
+    "encoded_section": "AC901330A161EB463AD006A1F925054A3A0F8A911000BB38DF610A30BC926FC6C4582D37660D9004243511EB4B95CC7EFF1E37F4559CBE73254459AB1A8AC32FDE866F96C56D5299D575FEEC58639D153EB6466758D10465A65674923DD5BAAE80B5D400AC70B2965FBA05961B31D9C3CE295361741B5DA19C60A13C103B0DEC97C664FC391A1A105F6E8A4FC70CA84EC842DFDBF8B6A86B21DA28E828F78F23DD27F8EC040A6D26309D9BCFB3",
+    "identity_type": "provisioned",
+    "iv": "E5930F69FFAF33C673D10B1BCF790387",
+    "key_seed": "928F3472A71D094F7842799035E83349496DD9963F46E4587FC0BEC618BC68FC",
+    "metadata_key": "0B9BF0598FA164D48423A5A07C65D3FD",
+    "section_mic_hmac_key": "FBCAF9F7E6996F5EFF05649E26A30814CF72CA895BC9B6B19B21BD433845D247",
+    "section_salt": "BB38DF610A30BC926FC6C4582D37660D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "D0BA76FCD350C9F9F7951F23F2C51481",
+    "aes_key": "35C13E514AD41A4D733FE99E7D1AD0D8",
+    "data_elements": [
+      {
+        "contents": "1D84D057F7999067EA441E2ED2E55BAAA302AD",
+        "de_type": 651
+      },
+      {
+        "contents": "D2C79A4B046101959D",
+        "de_type": 695
+      },
+      {
+        "contents": "1B1C33AF7CD34DAA62A8B03451EAB120EF9BD2B9CE24D8240CFEBEE8ED",
+        "de_type": 566
+      },
+      {
+        "contents": "8C874DFF95B449C595963601D5FDB2",
+        "de_type": 315
+      },
+      {
+        "contents": "E805B80A4D8759A73DEBFF39B881152CE26BC2D440",
+        "de_type": 42
+      }
+    ],
+    "encoded_section": "A2901311EB79E0E8D59F0B3C047B92D8CA72BF9110009A2C839A95308FA66A28E37D5346161F90015F33031A6C9AAC27A4B2179E39E69DC705D70EAC406CC05F02C776643CC00D087180158DE32FE190D0DEB2D2DE6D2DEA033605D6CCF77D5207F406C872A1CA1DC19D97DC4FF2D4C3B6CA4548C31DE16C35EEF910818B982851FCF6DEBE5C4C9BA458D2AA51F3B55A5A909E2268580D8AAAAC6FD0ADFC16FCD8BADB",
+    "identity_type": "private",
+    "iv": "14105F10774008066E6F963762594EE2",
+    "key_seed": "6D3436A21EC875EE57134E1DECAE0C2A3B1496945F8D1E11BB96B92F7D47246C",
+    "metadata_key": "888F65EDB3AB4C3A68E0823136F3D256",
+    "section_mic_hmac_key": "A7498162FC9BD07510499868B87AFF66AEB0536EF48116381D1CD09EEED03935",
+    "section_salt": "9A2C839A95308FA66A28E37D5346161F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "08B3CEC91E020D1D4484B0343BAAAFE3",
+    "aes_key": "B32745DAAEA6C4E7D467DCC28E7BDB1A",
+    "data_elements": [
+      {
+        "contents": "DE5A73510005E7983B15546A1C8978D6",
+        "de_type": 238
+      },
+      {
+        "contents": "6551FCA60C84C5227D009AE786796634EF3DE920CDF7CC",
+        "de_type": 993
+      }
+    ],
+    "encoded_section": "64901365E99B278344696A56F13E914616080F911000E05F4117821F694AC893206AE14EF9C69002F00FA0F6E4F18BA8AE1B88AFFED9C59347B2777757E02B7763BB589A19E1718B87E0E429B4602770861BAD7938B0A6AB0394EFA1E5D06492404993B0CF",
+    "identity_type": "trusted",
+    "iv": "2931F4D5430BD5F2392929FFD93A2BDE",
+    "key_seed": "0BA7DFFE886190D25ABCE6232E5CBCF588F071DFA0899C9F145BC5480061F522",
+    "metadata_key": "5B1CA7665FA68A63D48E11A291B13E15",
+    "section_mic_hmac_key": "871BEA00E0DE1FDF73CE65FDDC64963FAFB2DB32842BA39D1B98C0B326C08CFB",
+    "section_salt": "E05F4117821F694AC893206AE14EF9C6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "526A3175C83BD7923662BE998A0D026C",
+    "aes_key": "48DBA531822D93F3D6FEDA0CE7FF67DE",
+    "data_elements": [
+      {
+        "contents": "8B52817C4B3FAFEF79A65D",
+        "de_type": 670
+      },
+      {
+        "contents": "46",
+        "de_type": 801
+      },
+      {
+        "contents": "E1F3439D0AEAD4CB9F77",
+        "de_type": 671
+      },
+      {
+        "contents": "6DF3745B08B4FEF27F336A",
+        "de_type": 288
+      }
+    ],
+    "encoded_section": "649013AE841A17AE95BD4355024766953D137291100031E1FF9DC6275DE2D6CFFDFBD4ABF2BA9004DBA83D7B18E1768B0A74F4540B159871FB9C14BE48F656157533EAD1E5ECC8228A55124E283885BC099481EEF4F1913D09B1E3D5B603D420D5E41EB331",
+    "identity_type": "provisioned",
+    "iv": "D4B8B04708827F5B94AD1C4B4AAD0502",
+    "key_seed": "65F30FB0C0DBE40E8B6DB35012BD4AE37FEF2C62A90EAD5F367CD41D0B4D06E2",
+    "metadata_key": "E4FBEF567E6D11D3A9C21CEF8687354F",
+    "section_mic_hmac_key": "61B7897EC3760B6EE3E94E7EC85D1BAC7891D62B9C958EB6754F349DF51B56F3",
+    "section_salt": "31E1FF9DC6275DE2D6CFFDFBD4ABF2BA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "607FCD5903490C79A012D2CC218C8E14",
+    "aes_key": "1B4926A4AE50E442685876D28E738DC5",
+    "data_elements": [
+      {
+        "contents": "92193507655A3CFC554D76AB",
+        "de_type": 703
+      },
+      {
+        "contents": "3E93C4EF1F7BB3773E6DF1A44C64A63EBBB84CC12DB6704A2512",
+        "de_type": 863
+      },
+      {
+        "contents": "281F78E0212C7ABB",
+        "de_type": 785
+      },
+      {
+        "contents": "D605E7E6548983FBC54C139E2792F218A1",
+        "de_type": 674
+      },
+      {
+        "contents": "56C18EA4A5CB10EC724D6017F192CC06763AB5",
+        "de_type": 874
+      }
+    ],
+    "encoded_section": "989013929D8225107A0F13E5F33951FFF57792911000BC967854BE9AE8680BF37D35FC3247879002F417C437991FCD5F8830F88C9CC8ABD364588908090C416784CB0784383558C9DB80A3EC0945B122D09DDCE9718ECA2DE69F0A4E444DAF5432ABC60AE72624996EBCF0D5D4B3FEEBD7C93DB5DE4FF19BC16971B4BD672738994696EE1EB9020448360ECB9E5B4D14BEDDAACDDDECCD2ECB",
+    "identity_type": "trusted",
+    "iv": "18EE01B860AD7549AD1C27D0D1719333",
+    "key_seed": "BC65AB7D447AED92E7AF15FBA242DE64F51CB5505C7538DF7606E5BBCFF251FD",
+    "metadata_key": "4EC192FA9236683FB8EE6098F5AB2058",
+    "section_mic_hmac_key": "0BC73A07FD0D047E1F83EEF451E5FBA8DBAACB166B8BB3200AF94CF39BC391F7",
+    "section_salt": "BC967854BE9AE8680BF37D35FC324787"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "1F4428A4B286CB63540A9B96DD5755C6",
+    "aes_key": "E7AD8FAE2DD846979CF83C2925603C18",
+    "data_elements": [
+      {
+        "contents": "5FB025BDB59D9975EFC6EF5E4F77",
+        "de_type": 266
+      },
+      {
+        "contents": "A3ECE156745E1E9DDBB39696F06D01B045E3A4A0948C27B5B38F2F",
+        "de_type": 293
+      }
+    ],
+    "encoded_section": "6690132001AABFE31D558D81FB2EACCB49044B91100055A992A831E3F554842A50CC1A0F6FD59001B2D52D0A60F5AAA760A47640C2A4BA9F66739355B0A13BFDF1262EB114C6582CDC7186A33416FB0DD4A59F72E83A6913259F07029F9A9B17C79B1CE9286DAC",
+    "identity_type": "private",
+    "iv": "3C257D68DE3391B34584EF9F5617E9BA",
+    "key_seed": "67F1DE60563E3E0DECE3191A8B38107DD8AFC36AE838AC1667D9FA2ABA01B192",
+    "metadata_key": "5DA221E4FBF5632037F2C38760158865",
+    "section_mic_hmac_key": "80F62DA2E814A7FC4A5729E1347BC6E0E1ECBCC2A69E94A31201CBC9CA264C71",
+    "section_salt": "55A992A831E3F554842A50CC1A0F6FD5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0B6FAB3C87525BE1EF6338CC7B44586B",
+    "aes_key": "9D8AA7E968ED807E12A1BFCB358B2500",
+    "data_elements": [
+      {
+        "contents": "A8F4C5FF",
+        "de_type": 250
+      },
+      {
+        "contents": "393C6F0B53FCB39895D4673589995BAD266D8C1F37B8EFAEDF715C5E",
+        "de_type": 891
+      },
+      {
+        "contents": "897DD504C7FB519F408359177CA09EBB3285A8D07C047DAEFCAAA9",
+        "de_type": 195
+      },
+      {
+        "contents": "223F0E3959FFFA4BA2C2EF990BE541",
+        "de_type": 109
+      }
+    ],
+    "encoded_section": "8C901388894975700558396618D4C5B6DD75AA911000976919A685F1DB72B863D392566395789001BEDDCCFBF8B26CDCCEDF6FDDDDFEF284781D90CF4C669B8E712ADE147F3A055C6927205B7751438812A0AC612BACC422F753A248C921F763A4834D260F66D4C3BEE187B5059BA90DF97BB8D88B8D5EB57B349AD5A5A2C0F4E8048A3903495296C0946F8FBA",
+    "identity_type": "private",
+    "iv": "4EB6A4C8E8AD7A198198AF5B3F157ED6",
+    "key_seed": "7FF31B2DD4EF85589AC7E8DBAF320DF047DFD5383F762946277B9514C19B957A",
+    "metadata_key": "6DD18E7B8BB136DAF7A00E03A68BA11D",
+    "section_mic_hmac_key": "32596C515AB3091AC5C0892934243A0E134A5DE300B5934134ED4EDF0551CE41",
+    "section_salt": "976919A685F1DB72B863D39256639578"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4840B5430E2C99864061A0B7BC506FAC",
+    "aes_key": "305CBBB94EC7BF4B1575082301513A20",
+    "data_elements": [],
+    "encoded_section": "3790139F09A81379D3DD32A26A50B29B791D7C9110003BAC436861F7119425262BA2F41ABA479002871FBCB559E18575502D8A4E205CD26B",
+    "identity_type": "trusted",
+    "iv": "9523644A9EC5EB4D03F9682F6B71EAFF",
+    "key_seed": "B7AAD921C1C4B99238DF4FA3E2799F6AAE57B1189D6E886D38DEE52DBAF17272",
+    "metadata_key": "6159AC2C4F82C220C822A0B02382AC52",
+    "section_mic_hmac_key": "B0B2F95C1E37B287F9CDC028DEBB10B717883252404112A6E2A0884F4A39E2B3",
+    "section_salt": "3BAC436861F7119425262BA2F41ABA47"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B0DD88926A85214061D588D046C40D39",
+    "aes_key": "0A9D24DA0E9CD688FEE88EEF7105D736",
+    "data_elements": [
+      {
+        "contents": "E1CC37DC8F60ABE02709940B49FF8CB7B467E95F",
+        "de_type": 706
+      },
+      {
+        "contents": "1E743AE7B4E54237E661B287998DC1303A",
+        "de_type": 87
+      }
+    ],
+    "encoded_section": "61901372401FC11144842B442B965C2F4409749110004E00BE0F929E9D09AC9DD996314507AB90015154576D8110400CD950E8FA2AF870E462D4FDF664B7F9E099BA14A7683B729FEFBAEA36A0B1D1F76A2D4149FF198765456514682E5CDB01F75F",
+    "identity_type": "private",
+    "iv": "A061006730444D3FE601B1B9A96D5582",
+    "key_seed": "C7E8A62C5DB5B1E6B07C55D4A3171C26B346BFD476CC4D835F52C40FE4FACF9A",
+    "metadata_key": "C88A3F7A29198F2E0BA655DEAA8192B2",
+    "section_mic_hmac_key": "9BDF103979B01A474F89368E167707AFF7C35913263B5709CFB61FA4BC63732F",
+    "section_salt": "4E00BE0F929E9D09AC9DD996314507AB"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3E57C49387523CFE6CDAC323282CB768",
+    "aes_key": "828E644A59749E1081F44C309EF285B5",
+    "data_elements": [],
+    "encoded_section": "379013461457D7D8208806838F38643B30805C911000602E288251DC86DB4FC88DD50BDBB5B79004E1385E22902422B0DAA09CFE046D4480",
+    "identity_type": "provisioned",
+    "iv": "984B98EAAB7855E8E58B90BE045A98D4",
+    "key_seed": "B2DD1B6846A6C730D35C7DD5F7E66EF0DECC00BC6FC4BCDE5AF7B7A8CA29927F",
+    "metadata_key": "5F47855ABC1C9E6F40C278922556F9B9",
+    "section_mic_hmac_key": "2F811707CCF2E89920CCD2E8AF5712BC621F3ADD42AC4C4E945D667BF519E7B0",
+    "section_salt": "602E288251DC86DB4FC88DD50BDBB5B7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FAA87B7470D9B709BA24C03C0556B201",
+    "aes_key": "AD00E01086C81CD4ADF2F225D4EC40CF",
+    "data_elements": [
+      {
+        "contents": "C6710B42",
+        "de_type": 259
+      },
+      {
+        "contents": "B775BA2BC90617E3A1D053C887C95D93928D732E01C596B085",
+        "de_type": 518
+      },
+      {
+        "contents": "C1902A",
+        "de_type": 542
+      }
+    ],
+    "encoded_section": "6090136EC2E8301A171621686D256328800A5391100086D384F2BE92C175DBC065A4441DB88C900412860361D567258D47AD2373ED132B0D455A36D52E13E8A60A4D14137633019A9376150FF9C5C3E876A665940CBC3159D26A6DB2A7C726FB7B",
+    "identity_type": "provisioned",
+    "iv": "4019E22DE255D0AE7010AD5142D1BFB5",
+    "key_seed": "45C69BCAE63391CA52F9D2C1C04E9699727876ABE5041DCC006A68270893A46C",
+    "metadata_key": "CEB8DAB98EC23439D98C713AF4F2D4D7",
+    "section_mic_hmac_key": "C2DD8B720D968C3A290A9C2038070F134A91E53C09F6214682B7C8D40A0FF543",
+    "section_salt": "86D384F2BE92C175DBC065A4441DB88C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "185871AE8F13E0BC01646BBE8CD93E7D",
+    "aes_key": "3F4388DB5F2E556979CE2D22B9FF45E5",
+    "data_elements": [
+      {
+        "contents": "659643C0F6B85BF24446E841",
+        "de_type": 119
+      }
+    ],
+    "encoded_section": "459013A62C3DC6BD3EFFBEE575BE8D47E584E6911000C87758744B4E7C881111F2CD34F4D7F79001DCA97B6125D1DAC4E21D5D0D2E7A986FC7867F78551EC031B808FE7D331D",
+    "identity_type": "private",
+    "iv": "715E94C49314243FB3D9438BE0B5FC4B",
+    "key_seed": "B19545CBC53FECBF01DF0794B5E2BBE1FB077D963E6B5AAF7BF3B41B09655E55",
+    "metadata_key": "8A571C405199BDEBC9E0A996C066BC98",
+    "section_mic_hmac_key": "EE32E0FF4AE8937E99101C31545DF832EB4424E20F6FFC90DCF47610EC6D4B1F",
+    "section_salt": "C87758744B4E7C881111F2CD34F4D7F7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C4C2159CFB937F5A7A2FFE48D07C7C70",
+    "aes_key": "E616EA700DE6B20016EFD092679337E6",
+    "data_elements": [],
+    "encoded_section": "379013F8000289CA6BA6E4115BAD0BAE228BDC9110002F0E0B5A5A511C3B0DD2E02FD72510DE90013F4EFCB8C2CB33A2696F2D5405E460D3",
+    "identity_type": "private",
+    "iv": "26BC1ECC5F5D6B109307FFEA76907026",
+    "key_seed": "B872DAA9F9DA74E0D37859F20901854233A6C6E66F537D404A6CDF32863413DB",
+    "metadata_key": "B86BB6F2B8B3E89B4A3E2672BE4DE433",
+    "section_mic_hmac_key": "DF0F2BDA3016890F67FA244C72A22AAD605BC9C8732B812826B39C729DFD2858",
+    "section_salt": "2F0E0B5A5A511C3B0DD2E02FD72510DE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FB11A8102A3D19E567CC0EA7A856BB99",
+    "aes_key": "D8F09716F9CA40B2576E70575E6788D4",
+    "data_elements": [
+      {
+        "contents": "7489EF6D168E7528A568454A79B13C99051EFA8CB54D790A676B2E",
+        "de_type": 144
+      },
+      {
+        "contents": "3D489FBBD523E0F6545E9FCABE2FABD575CB66",
+        "de_type": 278
+      }
+    ],
+    "encoded_section": "6B90137A6B943C979446674641A75443D0FD539110001445E273F719B3991BC855505C7524CA9002936D5265ABC1014D62D7A0AE1232524F648A170154BB721C65A99DCD7D3B8B31118047E8071AF25223AC9DA6DA3275B5AEC1DC81074FA85C3EA6BE8568E008793268E231",
+    "identity_type": "trusted",
+    "iv": "C41905D73CF82367AFDA74A2171728F6",
+    "key_seed": "3D0D1F01B8DDA465B6B3C07A589C94E3A1272651DB2CAE2038B1DAC1265418CC",
+    "metadata_key": "B5948EB880BE8DF16056872DDB37723E",
+    "section_mic_hmac_key": "86D2D4079CB6D1A6E43AA9CEF8B9830580749A245457F823096FE7B72BF9E7AC",
+    "section_salt": "1445E273F719B3991BC855505C7524CA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B6EC9A6945B754FAB8D7FF959F03997F",
+    "aes_key": "9B4980C3EE6BE117259F7B1377A31A75",
+    "data_elements": [
+      {
+        "contents": "2A966E923416C51DE8CD04D2FFBD7129FA00F9B0",
+        "de_type": 367
+      },
+      {
+        "contents": "0953BDEEC1AD8F034790",
+        "de_type": 452
+      },
+      {
+        "contents": "5734C9069ADCEFD63F6DF5E815",
+        "de_type": 21
+      }
+    ],
+    "encoded_section": "6A9013D8A4420DA699AA047DA37216590D7361911000193B30E46CAAD820AAED6A871B0DDE3D9002E1DDBA0DC773691E6F5E35467C16D5B90BE6B4794FADFFB35D17D5959F7DA4E0508BA05C7A0E75D733827A23241815076553276D897F9D7F9857C88BCD15251B6A59FD",
+    "identity_type": "trusted",
+    "iv": "7596E4CF2D76B0B7B6D57BB31536794D",
+    "key_seed": "10CDC0E8F2081B6383B5E770324E8A2A0EE7BCD33A06F4AB1C13CC441B1576AA",
+    "metadata_key": "8B6C66FB4F911DD9D302B58389A38E2F",
+    "section_mic_hmac_key": "02435909F7FC7DCF6AD2C5782C4454EDDA6825A3F03E2FAE631827EF23C75802",
+    "section_salt": "193B30E46CAAD820AAED6A871B0DDE3D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3BE86057455C4EAF637B2E2D5A3D203D",
+    "aes_key": "E49BA1CF3158EBD91ABCD623CF652A88",
+    "data_elements": [
+      {
+        "contents": "1D",
+        "de_type": 789
+      }
+    ],
+    "encoded_section": "3B90134A40A37A0F1F7FFA41DBA69CF401562B911000FF2F1817375B764380DAE5464D94377890017B523500C616F3CC02DB071A8FEDF8A4A77EEF03",
+    "identity_type": "private",
+    "iv": "D0B1E3FD976AEF6BC9764DD4C2C77D9F",
+    "key_seed": "F6C21731E2A651A2A3E69BDB7628AE4D170E03F1290FF07E6B5D53EC4B3A9E07",
+    "metadata_key": "A67ADD8BB31728F1CBAB049EA30784D0",
+    "section_mic_hmac_key": "32D1CADC23733164A58E0DFD391F62623DF7CBA2B2C482B97E824837F126A2EF",
+    "section_salt": "FF2F1817375B764380DAE5464D943778"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F835784D7AB18BA808A7F69B57D4815E",
+    "aes_key": "1BA538EB97A7B39A85A8AE30F3E7F74E",
+    "data_elements": [
+      {
+        "contents": "3EF58FCB910F",
+        "de_type": 471
+      },
+      {
+        "contents": "B7A97511C7241A87D93CEC34DBE0",
+        "de_type": 781
+      },
+      {
+        "contents": "3B7873329F6042E0",
+        "de_type": 591
+      },
+      {
+        "contents": "4D",
+        "de_type": 155
+      },
+      {
+        "contents": "8B19AB",
+        "de_type": 459
+      }
+    ],
+    "encoded_section": "669013321C3BAAF7D8D726DA7B24CB448A7CEF91100060BAA8C3E9B5DE735AB5E20549288EEF900459F48BF2DA6EC0C9509A54CD9EAB469FAEABDB1C0469C4AAE88E000102F20F0410588ADC95DC5CB9F1E618CD9B5D7282AE636F046F0BAF41CB330F90231371",
+    "identity_type": "provisioned",
+    "iv": "61B4EC1132186567C1992B337414B65A",
+    "key_seed": "82DB684D3D3EAAB31A410F59959F697C1A3F06F0225400F7F93973B38E900F48",
+    "metadata_key": "670D421A6387FAE7387E7687E683FF91",
+    "section_mic_hmac_key": "4B60F9DB5B3A4C383A3F7D15A90CC70496A30476D9158CD07832E3B34430A386",
+    "section_salt": "60BAA8C3E9B5DE735AB5E20549288EEF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "97AC9B949680B2F11F1C07562473BC5D",
+    "aes_key": "8893DA49A2A51A183F1A99A688B11CBF",
+    "data_elements": [
+      {
+        "contents": "B7CFBC4A38F6E5C1EF5529C01E0EC57DEF14",
+        "de_type": 487
+      },
+      {
+        "contents": "76F12E3859EAFC1C47332C188435203DA7BAA2C11219B3287FDB",
+        "de_type": 699
+      },
+      {
+        "contents": "CEAA9D",
+        "de_type": 474
+      }
+    ],
+    "encoded_section": "6F901300C1D813793E3D565D7BDF96D4729AD1911000D87C74058CEB77E6047D8FB6FCDE2A84900462BC3ACC414A1075616F631658C6F59BD8313C6D040F237912A83C8391E481F8260C25C001E842C5CF8C9899A39E81497CD14AE3B95C42D4613D5B94AD5A43FCD06FFBBB880771D4",
+    "identity_type": "provisioned",
+    "iv": "31692EECD347BB8B790FFE491DC6AA03",
+    "key_seed": "D7DB5F3D01EB449493F604FC7625AEA837CF2B59C099BBA604A4289E7D130F3A",
+    "metadata_key": "5B0B450F9073E98F2713D56B6F8B6F45",
+    "section_mic_hmac_key": "8CCD7DE04D0D174F4071227616AE28B1541FD3DCB20559E49DDB9D7E1E61DF5C",
+    "section_salt": "D87C74058CEB77E6047D8FB6FCDE2A84"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E702551D59055A4C268DE48352D1D471",
+    "aes_key": "B2C74066FA0433B54D2C41E23E6EF2A1",
+    "data_elements": [
+      {
+        "contents": "C87DA9FA2AE6",
+        "de_type": 753
+      },
+      {
+        "contents": "0F09EBD5E1FB0403D5FB6EC758FD99969CD51B",
+        "de_type": 938
+      },
+      {
+        "contents": "68",
+        "de_type": 659
+      },
+      {
+        "contents": "EE7C4403DFDF257703D7307BD90FA19F1234",
+        "de_type": 367
+      }
+    ],
+    "encoded_section": "6F901313354100352D54F8E69864F4D81E5F40911000D31E9F9EB135D9B417465F14DD616CAE900241F17700C7C522B251D69077C5D83A57C91C76E9608FF7AEBAA9E6D6DEB4FBB4C0FA7A846161B449867B0DEF8857575DB871772C1A32A50C3FC8B5B7BFCE1F9E863B0B3BB540A538",
+    "identity_type": "trusted",
+    "iv": "E9CE72D40C0AD1AB24A01A82F2A07826",
+    "key_seed": "53B877350CAB817BBD44D7EEB318798EA7BBA2D4A1A71D89D36716AE92749BA2",
+    "metadata_key": "99976B723F002988F4F55EB36FEEF71D",
+    "section_mic_hmac_key": "99808417006A0BC9AEEB5E57189464625982B170D83E339770A664DA612A8FA2",
+    "section_salt": "D31E9F9EB135D9B417465F14DD616CAE"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2ED0C092724864890A6F1F704D800668",
+    "aes_key": "DE9D2AF9D5E73B5DCB99478AB10596E8",
+    "data_elements": [
+      {
+        "contents": "C60493B51521D08E1301A6BA8DDCB0B8C80EB593EE",
+        "de_type": 626
+      }
+    ],
+    "encoded_section": "4F9013FB0AF3D967DD7A4DB45338A490E57ED3911000955B8212E6D3B3D51F527D3FA95E5A7D900137E439BCDE00D86C1F7636F036F39C1E747B84D893FF30148A60A0FED2A9630C05074B851C56CFBB",
+    "identity_type": "private",
+    "iv": "0C778E8BBE426243CCFAB25E5FAD4AB1",
+    "key_seed": "E52C0B2498CB2E81CA1D7826956E5CA96643FF387FBCEC351EB3E573E8267E6B",
+    "metadata_key": "89100169ABB76A810E0689FF4E1CB32C",
+    "section_mic_hmac_key": "1AE31170876F62388380093D8BBCF2C7EE39CBBFEB704B3FACB3AB58FA218A0F",
+    "section_salt": "955B8212E6D3B3D51F527D3FA95E5A7D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "97D8796AAFFFF0391918C4D843EC7182",
+    "aes_key": "2DB81BBEEF3CB201FED12F870DD1A6D4",
+    "data_elements": [
+      {
+        "contents": "AC7A11",
+        "de_type": 42
+      },
+      {
+        "contents": "47F36D",
+        "de_type": 476
+      }
+    ],
+    "encoded_section": "42901334B6E677BB68B303430CBE489918DD1A9110004FC550638C733514F55D80678B35E8BF9001D6527838298D839E0AFB36258BC8CBDA19AC72F0C0F1C1D21D1FEB",
+    "identity_type": "private",
+    "iv": "88D3B3269364CFD877B4B349E5232F78",
+    "key_seed": "D2721BAEDB71C77EAD4016BE0B47482E6FE7ED6D8BE89ECBF2874DC8379532B7",
+    "metadata_key": "E6CF02F6881821F85F695322B753C232",
+    "section_mic_hmac_key": "23BCDEBB78C2D48D14441FDF8E69E3419DED64FF26E80707BC4D74C23E9985EC",
+    "section_salt": "4FC550638C733514F55D80678B35E8BF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E29DEA8F8EB14530304F3980D3B1D734",
+    "aes_key": "36FCBB41B48F5DE8FAFE45582F12BCAD",
+    "data_elements": [
+      {
+        "contents": "BF2DD9987F4FFF036F7EBEA0",
+        "de_type": 648
+      },
+      {
+        "contents": "F6739557F6F35CC9D3",
+        "de_type": 600
+      },
+      {
+        "contents": "7A461FEDFE239F482570B8",
+        "de_type": 773
+      },
+      {
+        "contents": "755576B7F701C110D30DE8A8A6055E861330AD3038B48369",
+        "de_type": 910
+      }
+    ],
+    "encoded_section": "7B90134C1E3F6ECC9F2A87270584D6B556739B91100000B42582A3DDC746C8C72882FC1E3CF29001E801CB59638B55AD760247985729C427C701BF1FC270D0846820E3F3CDAF26FE33F9C42DCCE3B580CD8ED52C8C84A1497C02B8CF858E82598DE51CAE0A9222FC649F0F74FDEAB2980ABB47259919E6AD0E5BF8CD",
+    "identity_type": "private",
+    "iv": "45B269C614463C479DAFE5D92A9EA559",
+    "key_seed": "C35089F1053EEE4A91E2931F7A8AC693D00AAE4A81E7175018BEE21CBAE51145",
+    "metadata_key": "A458B645925159650706A2E4C8BFCB64",
+    "section_mic_hmac_key": "668DDB981A4777D6A00612FC5AC0B10287C5E786DEE8A47BC127A87734A51AB8",
+    "section_salt": "00B42582A3DDC746C8C72882FC1E3CF2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "2A1A6C8D295ECF8C0202668F1489A414",
+    "aes_key": "28CC2DD441CA8E4B7BB065E70D54F066",
+    "data_elements": [],
+    "encoded_section": "3790132CE9BA72A592AFC9A154431AD9BF678A9110006F7AFAA6E74352E98FC6F26F271B53A79001C1E8B3BC3B1DC537843A058B3CFC77CE",
+    "identity_type": "private",
+    "iv": "CEB816A49DA26AB4B8D0DA3F35D84FD4",
+    "key_seed": "33ED4D742A7EF0E3B7A7A3A6DFC520B17D56970B3882F8CE0093A65364F26BAB",
+    "metadata_key": "D013A0446A6D5925AEB112989FCF8B6A",
+    "section_mic_hmac_key": "A5C57E34BFE28F270E4D4DBFEE7B2B439825F138CE6246EF84DD1A1B362ACD34",
+    "section_salt": "6F7AFAA6E74352E98FC6F26F271B53A7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C57C5AEC61B254B68BFA1263F09D08ED",
+    "aes_key": "37606EE34F9AA21C044064B8C1A2886C",
+    "data_elements": [
+      {
+        "contents": "B11514CC76AABC274DF8F8C6CFC2ACB4E22B53",
+        "de_type": 472
+      },
+      {
+        "contents": "",
+        "de_type": 457
+      },
+      {
+        "contents": "508791F872F0B674D72C29",
+        "de_type": 688
+      }
+    ],
+    "encoded_section": "5E9013C8A8A7AFFD886F274CC65659F5A059E1911000B4610CB1B2740CD7D6BA48AE95773889900401416AF0F3FF6BE99E89149A173F289199DB5ADBE086901F6BB884EFE7B8F26B8447A95553BADBA369BFA1FC97FA8253CE897B05AF5679",
+    "identity_type": "provisioned",
+    "iv": "7745CE454FFD689BA9F97F294D8A88A8",
+    "key_seed": "0E252068D453031E6D3E8512F54A93023AB47D40DF65477E1799169584D49A34",
+    "metadata_key": "ADD4C2CE5C0675D81B04C0CBA49C24F8",
+    "section_mic_hmac_key": "A1BE55F257B3AEC15DB0CBEFE6B8C9EDF5EC2D5D5D80A2B8365C62E03A18FAF3",
+    "section_salt": "B4610CB1B2740CD7D6BA48AE95773889"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "010247C596F6FE045EC36550B5CF9BE0",
+    "aes_key": "56D59B20C8A02E3EA56FEC1F085E6B43",
+    "data_elements": [
+      {
+        "contents": "71885D121CE06D7983CE03903E41",
+        "de_type": 749
+      },
+      {
+        "contents": "6429B148C4524881",
+        "de_type": 197
+      },
+      {
+        "contents": "0C10",
+        "de_type": 915
+      }
+    ],
+    "encoded_section": "589013A6678EE465A615810F963BC8524823C49110005A5B7E64F50792684B2A8F6A79718EA7900406B7D7E7FCA48BD47114CFD66F0847C883DF7FD6782B352737A61D21EB05EFAF560E2E0CD50D9FD1E940752E6EB6E2D2D7",
+    "identity_type": "provisioned",
+    "iv": "F5A4C94B269FA033FE14BFA63ACBED1D",
+    "key_seed": "B69E0F9C1C0B1F48E8670D5DE996DEEF779C2DD31BA96E3D40FC6A91E97F5CD8",
+    "metadata_key": "DEA55C1AA38639015CE0CA62436712FE",
+    "section_mic_hmac_key": "2342FF7DB9270407FAC870A89EC58DA18193CD6761B4A6A186F1DFC8F5097EBB",
+    "section_salt": "5A5B7E64F50792684B2A8F6A79718EA7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "202E08A90937C2075EAD5A59F7E1F826",
+    "aes_key": "85AD6EF749C1F3785582882A509D2A38",
+    "data_elements": [
+      {
+        "contents": "5BC965A20DFA04542BEC2459E2BD3E6C124C1E6CF676ABDD2B9C",
+        "de_type": 722
+      }
+    ],
+    "encoded_section": "5490135A9C9FEAABD949E8780F74645F6A3C8E911000822CC18C14AD885BC2B6450890F27E1090046DA21AA7BBABC3DBB63EE5653FA4B3CC619F4000A1E82649C1F516F162FB6AE4CB3975928A5E12E27A7E5A47B1",
+    "identity_type": "provisioned",
+    "iv": "48D37CB313151B5A637562436E0AD944",
+    "key_seed": "1BED4881AA77F955F19F3E02484DC66EE385DB9780DBE97D61F72285EAC8C886",
+    "metadata_key": "3EE77F6213BD622E7A7FC71A63DF2F41",
+    "section_mic_hmac_key": "789EAE25B10C4671328052CF168517ED74AC64002E81384E4C27F676EBAFBD94",
+    "section_salt": "822CC18C14AD885BC2B6450890F27E10"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "25E36ADBBF4FE51E8692897477FBDF1E",
+    "aes_key": "E820954AF8A47313941F0DFF6F7D8E56",
+    "data_elements": [
+      {
+        "contents": "F0E521B07A2BA4632B7522FFCBC8868A84B596E0E788",
+        "de_type": 308
+      },
+      {
+        "contents": "BC1B944236DAA3",
+        "de_type": 650
+      },
+      {
+        "contents": "9DD55DF02A53DCF3EAC75B805A2E468FDE7293E8D033456CD75B84B2C2",
+        "de_type": 202
+      }
+    ],
+    "encoded_section": "7A901374488D1F21525687674574AC556A759D911000B989B1E6C00C664909F417385FC3184690015D885FA6EABFC8A8AF8155D6022A502AA86FF128A90F7E92CF2E05A9FD1AAA7572DC42D5EB157D8845E144108D4E528D1B247732774F1C7EEBA1441EFBEBC97B3B550F520D4A31AFBB7D94C248BC9883889333",
+    "identity_type": "private",
+    "iv": "2A718490018706C03F9A6E4D1058369A",
+    "key_seed": "0674E67302C41BA299713DE1C1EA641C82F9345120CFFBD8705C8CF1D99D9F24",
+    "metadata_key": "DF696B20166A8F6C89A3A4999ACC7E66",
+    "section_mic_hmac_key": "2230661E0FE82FC883CA43379DB99B5F867AC35A6C854FA271576E91DFD44FCD",
+    "section_salt": "B989B1E6C00C664909F417385FC31846"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "77A50A93AD1DE5BD21FBA890648EA0F6",
+    "aes_key": "A5C13EBB1931A7ECCB4D1FFC456D950D",
+    "data_elements": [
+      {
+        "contents": "F248E8798E08955BB2B8C739C290BB910A2876078AF4E2FC3EBC839080EE",
+        "de_type": 299
+      },
+      {
+        "contents": "",
+        "de_type": 115
+      },
+      {
+        "contents": "6E863CFDE1C1B9EC5C5CE6",
+        "de_type": 207
+      },
+      {
+        "contents": "A78CBD078A98045B5CA79E19",
+        "de_type": 62
+      }
+    ],
+    "encoded_section": "769013B2E1239BB6FEFB97B6EA19C9619129D191100030FE3722857D4340D20F7C483E37F2DC900249E2354F02B0D9DAFBE5ECB30730C4A70236F4C59860A3633EEF571C2A024510BD9EEA4A46C1604CE18E0EE914A6B9001FC07FB1FDDA5807E075E7F594DC16D60E86B75246E93F301F7595583BE980",
+    "identity_type": "trusted",
+    "iv": "FF98DAB9B88B46C4982566F95B068A02",
+    "key_seed": "E56913363141DD1C2F0D5F93FB6A9EA6CE5212D0DA2FDCAC3CCE6BB15097283E",
+    "metadata_key": "661BF758E6697E46F133979F25395A26",
+    "section_mic_hmac_key": "EE035FE53ADF345F73E4AE77C4BA8FFF96D12CE39F3924939DB827E14ABB715B",
+    "section_salt": "30FE3722857D4340D20F7C483E37F2DC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "EA8DA1BDB85D6AE965D351EE9B8EB881",
+    "aes_key": "042F1CC32A48B7714A58BB51469C260F",
+    "data_elements": [
+      {
+        "contents": "C24EE733EAC66F8A54A814A1",
+        "de_type": 708
+      },
+      {
+        "contents": "C24D41A652EC0E16DC1E23A473850585795417447B",
+        "de_type": 565
+      },
+      {
+        "contents": "CC8DA80690986563A3815792",
+        "de_type": 594
+      },
+      {
+        "contents": "5C279B02235F4678698B16545905C95D121FC57EE7B68A387F",
+        "de_type": 549
+      }
+    ],
+    "encoded_section": "899013132CE522524AD6D5864DC7C43C07D4EB911000EE856613E81A2B970A62219E03CC698E900172071B9F49F539C94EECF7B8736EE09CFEE8A70BA28CC824951769B286E21B889B408D20E9EEE2A57E93E0CFFCE13E3093224880C88EC85C6B253363B24BCD2CCA07129487B2552240BC7C99C3469521F171065D3F14DC9F02E282DC03185849325A",
+    "identity_type": "private",
+    "iv": "55654AA16120C9192CF4251DB48F6811",
+    "key_seed": "87EAA9BF3F195F050804C1E9CC5A29E15FA3D409EE515096E4AB412F341F63EC",
+    "metadata_key": "25C515A0D455F2EADF60C5CFD02F5704",
+    "section_mic_hmac_key": "0B106484613F91290A8AF8552F4FE3E517AB03AD99C7B49884E75E13D6A2F03D",
+    "section_salt": "EE856613E81A2B970A62219E03CC698E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "C83B117035EA70F9B5EE8514818D9563",
+    "aes_key": "5786A3D45C88BC5BF15E63BEABECC7DD",
+    "data_elements": [
+      {
+        "contents": "96DFAF82E5E8",
+        "de_type": 722
+      },
+      {
+        "contents": "1A52EE0785ED4F5E",
+        "de_type": 529
+      },
+      {
+        "contents": "4070E0708BEB0EC5715AE4BBC7614AE65D6EC5",
+        "de_type": 220
+      },
+      {
+        "contents": "078FDF57A9D79648DF0C6AE6650D3745B4E5AB8F4230328BFCFD2CFDE8",
+        "de_type": 534
+      },
+      {
+        "contents": "2A683899E3C29BE4296CD5E63F156DD06650B98B6C",
+        "de_type": 434
+      }
+    ],
+    "encoded_section": "999013C17A273FC6F3CC1726484BB95C107A5A91100087114931992E6A90DA25ECA40CAA7FA090028868628BFA23AA55C7CE84DC579C73667AE77FD0519B69DD4D27F5F7E274C52807FA63E8BD0646F5317F7109770240A53B3EE772E019E226051DFD5274D641EBCBD1CD122A2222FA5769A2DB47B0C351AFF6F70394D3D39472981534D00428DB1ED731882A0D746990A730B5BD00A15E0729",
+    "identity_type": "trusted",
+    "iv": "F9A836CAA147035106E7454E9DD33840",
+    "key_seed": "CCA2DEE077D57B7BD51A23F80E6E2B4E8CF22B489B31D50DFC0E2C8A51323DEB",
+    "metadata_key": "2DB7D7E9F6C9CC9ADB3CDA79F1A17A7D",
+    "section_mic_hmac_key": "0C0C3FBB7B4382A1965F1A0D21B0B76C80E9F5311D048B80C6279E53A9E59F0F",
+    "section_salt": "87114931992E6A90DA25ECA40CAA7FA0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "CB188E83DDB89D62C114F1F1360015DF",
+    "aes_key": "7BE45751AD3A8B7E49BE27F2D6247688",
+    "data_elements": [
+      {
+        "contents": "560C374E10F3B1004D6BDA",
+        "de_type": 930
+      }
+    ],
+    "encoded_section": "459013537088C101C2FB104B6D3769B2211B1A9110005A675076A273B1935CA8836A8F568EBC90040DDCEEB9121864F9364571A4765FF4B14ABC63F8816880AFAAE4DD3CACCE",
+    "identity_type": "provisioned",
+    "iv": "494F76CEC4C372BA61E09E832CA023D7",
+    "key_seed": "A6DB88D2495FD0F4DA2DDE97BFCF5799017DD7BFC5BB1AF9FB92B365D4690335",
+    "metadata_key": "45C398B6E4E8B0A5540E19300C0913E4",
+    "section_mic_hmac_key": "28FC3EAEEBD68AA836A746C2BBF26DE3ECB6AB774440232E986203C9D0F1DC77",
+    "section_salt": "5A675076A273B1935CA8836A8F568EBC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E2F803555E499AB4ADD6E1BE05823C79",
+    "aes_key": "5B23E3C06BE7BC3F4ED4E25348249AB1",
+    "data_elements": [
+      {
+        "contents": "DCAEF3A98B4FC0",
+        "de_type": 539
+      },
+      {
+        "contents": "D4D1",
+        "de_type": 417
+      },
+      {
+        "contents": "CC7A7E6C0801E825F2CF606643C8B4E1",
+        "de_type": 96
+      },
+      {
+        "contents": "C3695CBF18E06D255425E2210E6A0072109062A4883EB67E",
+        "de_type": 553
+      },
+      {
+        "contents": "B426A715DABAF6CDE325699E12F3488EC0B0AD4CC23BBE641DEE",
+        "de_type": 334
+      }
+    ],
+    "encoded_section": "9090137453B44CAD941E40F0B10F59070543CA9110006ABC65E438219705DA90C55843E268F590042B17F2F7D33F64EF416A906477269B3EB1E98B647E497F07BEEBE093B0439D16F08DA3AEDA48CB30BA4B1324432337A801C89DBA6DB87CB7335E34663B29B7AFC589B0B18EB82E60B39D235F1143458AD5A0D7CFD18CD4154F180F840BB20CAF7CA5F701428934279A",
+    "identity_type": "provisioned",
+    "iv": "0D1E0A06889E8F9607C7BFD987F16DCC",
+    "key_seed": "0442221D74C5BD01B2274C2A7C37280A192CC1D12208DC72B7DED708CAA5FCFA",
+    "metadata_key": "53DDA5FB2357A599D7650F5B3F3344EB",
+    "section_mic_hmac_key": "D56A4747E6404C01FFE0BCD9F85B7D99B07046CFDF5F6B9330F09161AD207FF5",
+    "section_salt": "6ABC65E438219705DA90C55843E268F5"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4B5EA533159CE934C52A8AED1C7FA66D",
+    "aes_key": "6979C3C75DF7004EE8EB62C5AFD4EB6B",
+    "data_elements": [
+      {
+        "contents": "4E3FB80E",
+        "de_type": 151
+      },
+      {
+        "contents": "4E637AC7ECFB76369C9B878CEA3EEB802A",
+        "de_type": 105
+      },
+      {
+        "contents": "34A2A98FE7C7EE",
+        "de_type": 134
+      },
+      {
+        "contents": "698C29A5FB482A7ED59214E49F2C2295F8",
+        "de_type": 992
+      },
+      {
+        "contents": "09B28A3CA96A72",
+        "de_type": 1
+      }
+    ],
+    "encoded_section": "7790134C59AE20A1D6653BEBD70DC858E3D81E911000D0329D85697985F6E05E42949541149690043EE28E5F836FC134AE452135DBE0EF28E3C8B01718233AAC3699D43C79AD0FF0FD315FFCBC70477A534EE60C7D0006B6B0098838A7A33E2C2D240CB7A38E5340268EA91D9A9A017B8499F5E4B5218F9D",
+    "identity_type": "provisioned",
+    "iv": "3356ED13FC96C65324E87673693A1432",
+    "key_seed": "8EC14F57AE7137067103789D1C2CC872D5F784DB8CFA491CA57D6EED842185F1",
+    "metadata_key": "969E204773BA54E9F873D6EB28624AE9",
+    "section_mic_hmac_key": "B502F11F87DAFE0E3700EF8AB8AD420D74DE34FE550E300E899D850C4DF5EC04",
+    "section_salt": "D0329D85697985F6E05E429495411496"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "17A088DCDAF83A58AF2753313613B039",
+    "aes_key": "1F2E0EE3496322D7D8D365E67EA1A0B9",
+    "data_elements": [
+      {
+        "contents": "62DD2615146476EDDBDA10A1D1F2FCC03BD164C53AFF75DE",
+        "de_type": 144
+      }
+    ],
+    "encoded_section": "529013C7B81E1AE9557999FD71E2ECE5F7663F911000749DC9438016B9B31672E361489B94D29002F0D3FDD1FB26395746C6E8145821FEF4DE853AF48008677E47057EA33AEAE5AFDD8A6815A57B9A5B58625A",
+    "identity_type": "trusted",
+    "iv": "DA09A3AA5D1AACBA826AFB2E549BFC80",
+    "key_seed": "EFB6CA23E03746A98605BBC2B163B08507D83D86AAFF789D08CA6DB1225F7D72",
+    "metadata_key": "E590519575ACD07B7CA73CE1A80E30CE",
+    "section_mic_hmac_key": "4241619E81FC51B75394A479F56F007762E3CEDC5722CA93375EC5B3FFA44124",
+    "section_salt": "749DC9438016B9B31672E361489B94D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9A580D81461EAADF79556203CA735C95",
+    "aes_key": "4045DA22088C072BF80A09B8C2BCE1F6",
+    "data_elements": [
+      {
+        "contents": "FEBDF44538E9E70781B5B0E283DF4C13BAB1E49B6DC8242EDBEEA1",
+        "de_type": 68
+      },
+      {
+        "contents": "350B4FB802500AFB0D769352F8A6B9DFCEC2BA61",
+        "de_type": 318
+      },
+      {
+        "contents": "A9ABA29AA6E72DEB67C8E824171876C26CD1",
+        "de_type": 379
+      },
+      {
+        "contents": "3D84",
+        "de_type": 212
+      },
+      {
+        "contents": "DFBA842E5EC56C53390D21A019801B6F0D",
+        "de_type": 431
+      }
+    ],
+    "encoded_section": "99901366302C66D9F00F5C3C65DEF7C64F0BE1911000CA70480E790B6FA473C74E3A4E003D269002D07BC8320C3B78FDEE1D1F68E4DCA09AE32B16573455513DEA228C33E7926D26BDCCA638518BF9CB2FD36566D9DB0D6ACD64D0A6F8B2B5EE6F3DB463FF3FDDC485D5BCAEC66F1E982ECC008D3A45A36CE1F81049F95AD6BB6309326428220E8E59EEBAF4AE38A5863886056B57E25D682A7E",
+    "identity_type": "trusted",
+    "iv": "D70E519F3DA3F2668D9F8AABB50810BA",
+    "key_seed": "AFD5C0D98921E1D241A7906F68D8A04F3AD3E81B1A0550D35EE4C6C8DB57DDFF",
+    "metadata_key": "DC273523F44A001AFA17F0F4FFE6057A",
+    "section_mic_hmac_key": "DD78AFB4D983C325EFDE1FE20D9BC988335CF2C9B37A75AB9A519DBF0776E6E9",
+    "section_salt": "CA70480E790B6FA473C74E3A4E003D26"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5033210306BA9AB77E2D3EA6B2A88AEE",
+    "aes_key": "58ABC0465E84B9EC15FCD58D2E34A481",
+    "data_elements": [
+      {
+        "contents": "D9485F980546BB684977FEE260590F8C94F3DBC5A4D5ABAF3CA68FE902C7",
+        "de_type": 891
+      },
+      {
+        "contents": "CEE448E265CD2D5B240D0389A1D19CC70C39",
+        "de_type": 962
+      }
+    ],
+    "encoded_section": "6D9013975E455A5A9DE86D218DF7B84D5B1D549110001B4A179B3A4048FDA263D917D21145EF9001B30134E7DF109B194C1342F0B49E2769BBDA370C5D76748EB77A583F75248CDD1A20CAC314C29429B88FB99979BE4B468B6A9EA4DBF9C3CED9AFBE95FE44E4761A501D8505BF",
+    "identity_type": "private",
+    "iv": "9DDE36E1B51C439ECB53A803239075B4",
+    "key_seed": "FBBA5082E277FF50246090C3607AE6B59192F350244A4E1B38F1F737E1297AAC",
+    "metadata_key": "078882BA8177D36A63C48E4FB81487D0",
+    "section_mic_hmac_key": "73B3E2977B6A0722AE497D1F9B52ECB47BF0AD7B0C53C91F66F27F0C4464B4BE",
+    "section_salt": "1B4A179B3A4048FDA263D917D21145EF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "24560C643ACF024603DBC6745F73BBFD",
+    "aes_key": "96648935E3EA6534930CCEF9FF46157C",
+    "data_elements": [
+      {
+        "contents": "E9F020541040899D",
+        "de_type": 609
+      },
+      {
+        "contents": "192E2705B3ED51257DE39187071CBE006F59FE797A380C690B7361",
+        "de_type": 884
+      },
+      {
+        "contents": "EA",
+        "de_type": 284
+      }
+    ],
+    "encoded_section": "6490130799AC2E188C075DE6FAFFFEB23E085F91100050AC82B4D7F3A6BBC2114DA1F733ACF2900469467DF82CC82A6C8D02AD6C485973D1DE960AEC200EC2925C15CC0AF18C59EF8A21F16C6247F07032029F42F727AAE4F0C0A02E8B92824556A6588409",
+    "identity_type": "provisioned",
+    "iv": "C369FA65B5EB270813A60DD29E99F52C",
+    "key_seed": "75B90F739FC2B807804A7D201D758B8F2CFA5023BC95546EB70AF106B3EFD2AF",
+    "metadata_key": "0FDB27FCE4A6AEBD5CF6440316B299E5",
+    "section_mic_hmac_key": "455CE9502152FC7EB6BB721DA5BD1095DB8A8581F1B3F893B5D5FDDF98DCDF55",
+    "section_salt": "50AC82B4D7F3A6BBC2114DA1F733ACF2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F18489FDCD6520D71418C0A0E7636910",
+    "aes_key": "C6A5270EE01BAD049F2823A3FB9B3B60",
+    "data_elements": [],
+    "encoded_section": "379013450221F90903BE11C937E8F2518999B691100078488DBF62F4D446B6213AB3AFD286AF9001D1AF3AF9D2172A123E854A9564EE1A80",
+    "identity_type": "private",
+    "iv": "2C15E2EDEABE3742E25A9EC8E8288C48",
+    "key_seed": "EFDC60A5D965B43E0181ACDEF1073D8C9CAEA8EB1133CE5538D17D00987411B5",
+    "metadata_key": "BFD25D2E0822E743638D21199C657DE0",
+    "section_mic_hmac_key": "12F2F8446F6E90B917D3453DD1543FECD35B7E35D16FE8B966E95A50221FCB88",
+    "section_salt": "78488DBF62F4D446B6213AB3AFD286AF"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DD8077D99C25E5AD861B96702256EF3B",
+    "aes_key": "4C007FBF6A6921EF95877D207A61EE5B",
+    "data_elements": [
+      {
+        "contents": "78B194E3A0895DC7",
+        "de_type": 835
+      },
+      {
+        "contents": "EFFC63F96EB172632387FB9B0AAAE82514388876D62D1B4C03",
+        "de_type": 419
+      },
+      {
+        "contents": "00945CF6A5A4",
+        "de_type": 585
+      }
+    ],
+    "encoded_section": "679013E41F6BF179F1F1AE413826061C017577911000EFB6DBDE8071C59CD70D626D43FECFE990013F29BDE37417ED94EC2EE33631A7B72D39ECB033BD9B6E12D923E007A716DC8A48BD159DCF6CB77C304394CFD2E198D43DA39B0E37870FB6F5AE1CE44FCE153A",
+    "identity_type": "private",
+    "iv": "3DC0231F80F3F2B132B09BDE9CC40759",
+    "key_seed": "7562411D7931D839A229013E52C55F4DC5A3EEFF1117E408AFA3F4AC426F10C5",
+    "metadata_key": "ED09172ECDC74F027C0AA0E418BB4AA7",
+    "section_mic_hmac_key": "CD75F9BE138CDC579730D22DF33B653D0250CC0747B1702A4878DE8302DB7C44",
+    "section_salt": "EFB6DBDE8071C59CD70D626D43FECFE9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A288ED7E1B68D033C3F4690420B90D7C",
+    "aes_key": "675CED7A7336FEF07E17C17F959EA288",
+    "data_elements": [],
+    "encoded_section": "37901300926ED675109AF07704A987C309566591100015847DEC4B348DCCCA189D05D7D5174C90019395E4BDFD6A6B7A68215CE58AF169AF",
+    "identity_type": "private",
+    "iv": "F2B76940B657CD501B1B9D188E69B582",
+    "key_seed": "C3D8A38ECF7392E4879D99A8C9E21759E23B95860D04E10C33D0F4FC988D219C",
+    "metadata_key": "B8A8C3055E2FDD6D00A905324E758F5A",
+    "section_mic_hmac_key": "C6F39BC5C3EFF0F8F09FF1FB23728F5DB138B208032B91EDDCC2888C1405647E",
+    "section_salt": "15847DEC4B348DCCCA189D05D7D5174C"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "623E52E555A5421C80C40236F560973B",
+    "aes_key": "201A7FC4CF51C7C389EB70B4528F0A4F",
+    "data_elements": [
+      {
+        "contents": "E696D48DEBC719E0BC6B9BFAA01B37363F213EA19B2508E3F65CB81A44",
+        "de_type": 776
+      },
+      {
+        "contents": "F6A3106D966E9E033943DA151E9D520B",
+        "de_type": 699
+      },
+      {
+        "contents": "3822C8B9",
+        "de_type": 473
+      },
+      {
+        "contents": "286476C80CE4C19E40D7F7096A30B4E1AAB2F1AF07",
+        "de_type": 964
+      },
+      {
+        "contents": "801E59E8",
+        "de_type": 196
+      }
+    ],
+    "encoded_section": "9090131E9A577C252A33B78982AB45DC475FF091100025F94B814B7033833230BB2CD9C0132A90043C21957E1606423DB86A914AC7B2451502B5206DD412CBAA364FE638AAA8DF0C9AC173462492AB53726A000223D6F74047E9D784B4377D0DC5930404A4C4AE0E3598CCAF70608D9CA0973A8D71C683C163EA16A5D9944F24A510DA586058A498C61CDD9A278D970C82",
+    "identity_type": "provisioned",
+    "iv": "402E1DF4ABC0651C160A910297E96D42",
+    "key_seed": "755AE4BA0D148487644F6661D42583CC5710CBC0C35A1F0CA1013B33378665EE",
+    "metadata_key": "2C5769C63A6C4DEF4DB33A0FA7C96D5B",
+    "section_mic_hmac_key": "928C6F5D55ECE19FD96C26CCB0F30481962702DB2E33218E05B5849057BF0221",
+    "section_salt": "25F94B814B7033833230BB2CD9C0132A"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "BD9442F4DA1F1E45298431632FBCA1BA",
+    "aes_key": "C86D801FF7EE0765384862985B3A8FFF",
+    "data_elements": [
+      {
+        "contents": "940AF7EFA6B964475032932CA2C94F6455CAE937032FE323D9A1EBBFD2",
+        "de_type": 584
+      },
+      {
+        "contents": "9A84386F3D32F5F816B255",
+        "de_type": 722
+      },
+      {
+        "contents": "FA216768C3D6FE14E93C86AF8A45CF2A05BBA5",
+        "de_type": 722
+      }
+    ],
+    "encoded_section": "7B901306526801CFB4D0DCB662F3B77BBF1539911000847811E9F14841A70D3129366BC733F39001BDA5621D9D26B5F59BF25279EF7A6A4FC7CA64AFC8F15B42B765D498DACFC4087145C2E8D580B3DCF2F9B3F6E8CF495CE47BD4DF868479F3CA530D0A24B0998A23AF4DCBFE6B6E432FC7EA66491240CE29EDBA2B",
+    "identity_type": "private",
+    "iv": "AD35B9BB2AD04BFFAD8A635D7DCB26F4",
+    "key_seed": "C10655F54E87123FC6B537E38DA1212E290613C97285C4D28BE15593E506919A",
+    "metadata_key": "487166EB4E0DA027A655BD7D5D952894",
+    "section_mic_hmac_key": "23B54AE40FE38715E903223F80F2149346D9D34E2A24414ABD7B3933A4CB4337",
+    "section_salt": "847811E9F14841A70D3129366BC733F3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "95A1E9359B39032DFD81BFBEAFD092F8",
+    "aes_key": "C4A0945C3A1352D1B8D62904D7F9EE9A",
+    "data_elements": [
+      {
+        "contents": "DDB9062EEE56D10231CF606B139CB1E2AB77BE00F7F12B9E85358111",
+        "de_type": 939
+      },
+      {
+        "contents": "344F840369",
+        "de_type": 67
+      },
+      {
+        "contents": "09DF9B7F9F0CA5708F2D2EAA28",
+        "de_type": 807
+      },
+      {
+        "contents": "90025E283882C5255D19FFB273FBF7AE",
+        "de_type": 115
+      },
+      {
+        "contents": "2D268EF42716C19253E88FCC196D731E774E7472F16D5C",
+        "de_type": 541
+      }
+    ],
+    "encoded_section": "9990131968FC75E9DB7C11135F77963495199A911000B2A08BBED54FECC10AC797794F3EC4309002CE86072EC393E15DF60923BFF3977190C76EB76737DA68A858A1A21B956681334E67CAA59B11E0186BE23474A30F87138D238C37608F498F56B70548D984E57959B5AE73731F4F5E20AD34B80909739F891A5E493667E1C6B316F4E0CE6BDE3D397449AD77F1653B1A3E2C43B5ED711387A8",
+    "identity_type": "trusted",
+    "iv": "6B19CF9740AE6EB6EBD37FA0CB3D3902",
+    "key_seed": "F87D44A4D5B28B4BA5D73383B98268E3114BF761756D000E85274BAC3032AE9C",
+    "metadata_key": "17DFA18739929CE57D4B46B0BC5B0E66",
+    "section_mic_hmac_key": "274695928C408DA10D19DC3DB46FA78F29D51CB0DDFE304FC5182C785AA21F4A",
+    "section_salt": "B2A08BBED54FECC10AC797794F3EC430"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0CBE6D655846706C41AA38BA89A49466",
+    "aes_key": "D1217535D1A28CA4A79A5D361D10381A",
+    "data_elements": [
+      {
+        "contents": "715FD19363404B5B4BF8814D7D6F988BE275D43E4C935E",
+        "de_type": 257
+      },
+      {
+        "contents": "5FECCFADB93B95ECC6E8EDE452FA15B0FD1A96A67A9FAE898A15810CC6",
+        "de_type": 255
+      },
+      {
+        "contents": "40BE80BAFB55E63E12B9F5D5F15E7417DE",
+        "de_type": 924
+      },
+      {
+        "contents": "3D878AB8B130EE71B7A74387CA7AF3466AAF2F14",
+        "de_type": 259
+      },
+      {
+        "contents": "1D6A8D083172AE3E8702D0EE72E9E4D287A4D5E38C3A7E1495E401CCE3BF",
+        "de_type": 539
+      }
+    ],
+    "encoded_section": "BD90134CC217C0FBD454E2D3D0949340E43A9D911000EE29E650BBB7FBD251916DF635D491D290040E58986C5A7EAF8ABC13233D237727F371CA25E439F4EC85113F22A1976C74DEBF832FDEF351800FE7F2905DE22D101751999D5B7DE13736E3E77A2F2D07023F8E8FFCD09D1AF91F1688047ABE64023E386EB8883400886CB44B5FE43D6F93CE97A54AA75D277798754B4F1B5F3022095772463B1D354C89E943EBD608C6120B65DA030FFC13F78298E9BBAAFC12B24896A11A8F6F56",
+    "identity_type": "provisioned",
+    "iv": "BBCA152795FB88152D57F449CA9603B1",
+    "key_seed": "6F2DEADD30B4CCA84A011C445661F91CC6FF5786B49AE3F9154CC5841FD56555",
+    "metadata_key": "35D37C707ECA65275536D1236D349205",
+    "section_mic_hmac_key": "D83FE1496B06CD24079B117B21F94EF6603338EA01D295FFE274131046071F58",
+    "section_salt": "EE29E650BBB7FBD251916DF635D491D2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0F459E925172A519DD2828299C75FE2B",
+    "aes_key": "1B1249ED7D76FE4886B6E526C6C9282E",
+    "data_elements": [
+      {
+        "contents": "308DE47A8F42DEB39111A2096C20F7356B9839FE3AABA7",
+        "de_type": 399
+      }
+    ],
+    "encoded_section": "51901322B7BBBF38950918837234007AA875FF911000264878B5796B1E75ADFE1ED50D18D19F9001049CA71F9B829E07EA5B5F30E7C9B2BAEC9D27BC5038EAD21DF880707BFFD71D641B82DAB89CAEFEEE01",
+    "identity_type": "private",
+    "iv": "AF47AAA871EB40799888E96730D541A9",
+    "key_seed": "EF12CF54E077C01AD5E5B289415D4AFFA7F2221BADF1D898E6F18629A0F1D91F",
+    "metadata_key": "77C71712C8591629DADB5FAEC758CDF9",
+    "section_mic_hmac_key": "8EFA1E5AD01997162F01D27CED8DD1A3EE69A32B54C6BDA3E46952F49E418DE0",
+    "section_salt": "264878B5796B1E75ADFE1ED50D18D19F"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3A6690DC2DDD695AA5A9075341B084EC",
+    "aes_key": "34DFB2535A916D318BAB185BF9A35783",
+    "data_elements": [
+      {
+        "contents": "F06FA2",
+        "de_type": 506
+      },
+      {
+        "contents": "D4CB2D400A28",
+        "de_type": 335
+      },
+      {
+        "contents": "6DCEC9E8A721AC77680D2F1662",
+        "de_type": 831
+      },
+      {
+        "contents": "D17C7919F930699E",
+        "de_type": 762
+      }
+    ],
+    "encoded_section": "619013C7CFFF40F84A407D614398DA241E9E4D911000D32C0F73924D558D708BEBB99A3EB0609002E22E4C8ADB99837CC58EC7E97001719A89E37F9B92E37168434E56311EBF0E5EBB3F9EE662EE2DFE006FDF44EE75196FA08CC8CC3D33B6CF236F",
+    "identity_type": "trusted",
+    "iv": "04F8366E46600D1C30CD191211A750DE",
+    "key_seed": "647DB8957DA90BA5FF55CF490C364BAA8C056638C1BD1D3D5F70302C92CD3A2A",
+    "metadata_key": "CD662BBD791D7F8C1E30395AF98E5D04",
+    "section_mic_hmac_key": "1A53E143075E92DE50221DF59303E82CB35533DD879EBFED762B353AFDBA1B5A",
+    "section_salt": "D32C0F73924D558D708BEBB99A3EB060"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6D431878AF6AC725647D2A3932D48049",
+    "aes_key": "05EE18F99215AD48B14552410229A4BF",
+    "data_elements": [],
+    "encoded_section": "37901341A817093CF4C8AAE012B9A9F6B79BB6911000290931A59120D1286A389550AAB835209002C91C9ADD7B5DC4E51AC8DAA513E4A209",
+    "identity_type": "trusted",
+    "iv": "4713233E1B8526CBDF59EBDAF4DF2A9F",
+    "key_seed": "2B25BBCB002C26DEBDAFF430909946F7B022041043BFC5232AFB086B348F1F42",
+    "metadata_key": "35BCFCCEEE33537EEDF1853BF0378767",
+    "section_mic_hmac_key": "0B1B7CEC50A244D8A31571BD3E1CCEDB22981CFE1AF50CA57626C072F9CD14C7",
+    "section_salt": "290931A59120D1286A389550AAB83520"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "07510B91F77CAE102F146FC8BE46C659",
+    "aes_key": "779622B3641D512BDEDF2AE0650BC794",
+    "data_elements": [],
+    "encoded_section": "379013993CC70660FF52F2412FFC739C7453679110000FD5F8913D590B72580DE20C140E88809002190029DE26AE807D727B820A4AF588A4",
+    "identity_type": "trusted",
+    "iv": "91B96C70926C3FB16CE4CAFE91CD827B",
+    "key_seed": "4F81B6AD805AC41891E439D788B1D5C1FD33F97457AA12D6CA697E328584A24A",
+    "metadata_key": "9F62C8E787A9B44783A738A566E1FE23",
+    "section_mic_hmac_key": "87ADAA31C70470F253F408E88D004DBC4B99B7BD22C0159DF93A1C268BB84B45",
+    "section_salt": "0FD5F8913D590B72580DE20C140E8880"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7C1B9BDF63664F7A78C8FF842A3E5BE5",
+    "aes_key": "B14C39586FEC0DA3E623173EDF55E246",
+    "data_elements": [
+      {
+        "contents": "68EB2518D2D2DC509CD7",
+        "de_type": 364
+      },
+      {
+        "contents": "A78A0427BF54D74DC902EC",
+        "de_type": 1000
+      },
+      {
+        "contents": "F234",
+        "de_type": 882
+      },
+      {
+        "contents": "E7",
+        "de_type": 916
+      }
+    ],
+    "encoded_section": "5B90137644015B5C1628811212B508B4EF15829110003826BEB04A106A0C2B31C1EDC4B1A3389002C812F2014CFFBE215C1E0E1B040ABE8141945625C65300B5D2BF5564AF2E364C119C51EDAD83D99F339C21E6DE0F64C6B9F15C2A",
+    "identity_type": "trusted",
+    "iv": "1A7EEEE592C2E95079FCC1C2DB5B3C87",
+    "key_seed": "2F9AD59747B7A30E2D1D22E49F0A80F5FF8BAD5A540E65970CF0A9E9158A9CC3",
+    "metadata_key": "178A25DC5E2BFB2F016763C039CAA9DA",
+    "section_mic_hmac_key": "98B93838BF427995042BF3FEBE6F53DE0BB0A01C400E80E6215E16ED3C8BD32B",
+    "section_salt": "3826BEB04A106A0C2B31C1EDC4B1A338"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "DFBE483FF56C948B67B543FA3C3B6810",
+    "aes_key": "0546270E29B03208CCF711096350B437",
+    "data_elements": [
+      {
+        "contents": "4938A69A3826",
+        "de_type": 976
+      },
+      {
+        "contents": "AD51E90DCE",
+        "de_type": 985
+      },
+      {
+        "contents": "50D528C99515",
+        "de_type": 915
+      }
+    ],
+    "encoded_section": "5190130C8A041604CB78FBD9BA86C48BDA6F5E9110001BF3E6C8ED3648CAAB9137B09117BF8E9001ED1A785EB628A70EBA116E5DB97F8D30605A40CC18B0D7493863758CD712B26F782CB123E25ACD13FBA1",
+    "identity_type": "private",
+    "iv": "8E27D6BD840DF5E03F5D9CF83E10A51F",
+    "key_seed": "BB595D62CC6E3A83C3CEB9FFC054E1EED6F7665F233FFE054DD17F93FB2DCB6A",
+    "metadata_key": "66E246479EF32D514A6203715F97CCA6",
+    "section_mic_hmac_key": "151D73D770876023679FB2AF853C5AC6180690F91A5464A8105025F6E963BF43",
+    "section_salt": "1BF3E6C8ED3648CAAB9137B09117BF8E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "993426DE3C76F95E6AE6EAF16EE882B1",
+    "aes_key": "23FF6D33822767F47C6EA2E7A3659F5A",
+    "data_elements": [
+      {
+        "contents": "9F4B62",
+        "de_type": 40
+      },
+      {
+        "contents": "DD75CCA8B6EE91CA96B0F660DA7AEA0C787B6E4DD0BB8C0D68BF63",
+        "de_type": 250
+      }
+    ],
+    "encoded_section": "5A901310EAAF5CC6F82AED3F7018345C326FED91100094461B35D320D920CFE92855684DC0889002752E76A47C2FFDC9C86586181F3AD4DEF62B1F4AD8AB6FD7832F108CA27D96405ED31670CE51A9582C2005E275A97EF3936F6E",
+    "identity_type": "trusted",
+    "iv": "908A568A36D18A8151DB2E23FEA891A6",
+    "key_seed": "891B77B866BC1361E8A953BF5776A9AEB8CE7AA8B34C48D0FD44EAE0C08137F0",
+    "metadata_key": "F7CE950ABACD4CC08649F5D72141AFAE",
+    "section_mic_hmac_key": "D948570C35BBC468884A3C9BF04ADB86D30132BAE6F39F4C6F6E4060D788AF43",
+    "section_salt": "94461B35D320D920CFE92855684DC088"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7EA92251924B66DF513A5012A6C6D568",
+    "aes_key": "7AF5D9EB8C289F13007A8024AA3E0954",
+    "data_elements": [
+      {
+        "contents": "1D5E12A67C6225BD455705E9C6D5AB253A",
+        "de_type": 56
+      }
+    ],
+    "encoded_section": "4A90130C02BBD5A0B4584C65E3B7D88A9EC7CA911000DD5511FCD7D808F50FF0080A6A41B3F99002965B9AA07C06770BDB145D5CC2C5D535D99E30DFD043BD92E9A89D29A0699B5F09A200",
+    "identity_type": "trusted",
+    "iv": "3A2CB91A70F515B1F1B9290FB1F0809E",
+    "key_seed": "25B553E985E762AA9F3B03F4B89BAC1FD0A3E9F7F9CCF586FF47F3F1E83DAD34",
+    "metadata_key": "980DE36843A6418160C53B68085FDBF7",
+    "section_mic_hmac_key": "D674880D748C81B5C248BF6EC8608323A5EE2F6E916E5AD2C24823C569492A0E",
+    "section_salt": "DD5511FCD7D808F50FF0080A6A41B3F9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E84BF8A1E7FBDA1FCAB241D541A4B647",
+    "aes_key": "5B21560F602267F7E7DB688C69B10A5E",
+    "data_elements": [
+      {
+        "contents": "BBD418E93E17C83B5AF5E67F2203094C",
+        "de_type": 667
+      },
+      {
+        "contents": "009A5DA2492D6E5DD01DED55B7A9BE695A",
+        "de_type": 849
+      },
+      {
+        "contents": "FB321D91",
+        "de_type": 529
+      },
+      {
+        "contents": "6D1B46C2935B79287C75EB347FEE52DD196F03B98188DFF4",
+        "de_type": 971
+      },
+      {
+        "contents": "D9299E84D9B7E84D3682BA",
+        "de_type": 68
+      }
+    ],
+    "encoded_section": "8D9013F0B3089838810E7704B15BD78D08A685911000295591FB4D665C4B3388BFAAF769AFD09004E208729A8980B56196049A6C2B389E7EEFDC1842D4B0738B62C6C9E4A00D7C998A329B13A54F7741EFD8C22B34E996ECAB49B5B3D8A549EFA1EFBABCC4B90C45D434DDDA3C0A19D2BFEAEEF1103BC0D5925BC692A04C1E7A7BF76EE82785D75507448921F48F",
+    "identity_type": "provisioned",
+    "iv": "960F4158B1AEBCA6DB066F0B48984889",
+    "key_seed": "9BA51AB24D27BEF6575942CBE58DE2795F2D6A9C67EBBA56F938C23C15531A48",
+    "metadata_key": "A174838932FD40B5E30FCCA95BC31E0F",
+    "section_mic_hmac_key": "2680C01C16E0EFEEE4C602D9AAAB80FE3B83D8F85A2CE1D52EBCC2C0A48DAB09",
+    "section_salt": "295591FB4D665C4B3388BFAAF769AFD0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0D89ECCEEE97F4AE796752548C4477B0",
+    "aes_key": "CB51E81286DECD8DABC11341AAF565E5",
+    "data_elements": [
+      {
+        "contents": "7B3636268051172202DBCB2BEF58FFB325",
+        "de_type": 125
+      },
+      {
+        "contents": "6BE1759110F2DE04CA9F033B49E2E5ADCEE66BC5",
+        "de_type": 383
+      }
+    ],
+    "encoded_section": "619013C9EBFF7BA86B7D87A821163495CD75AF91100063ECCD115CEE939180370ABB6AADB8E09004B8E73E111A704D49A74051C8D5A88261C3BBC9C79500E9F54203007442BB22C0C23AE735D4B462D85A6B31E0A77015E386C713DEFCC331C87688",
+    "identity_type": "provisioned",
+    "iv": "40553B60D6076492812FE60B01CA6804",
+    "key_seed": "26CB810DCB795E439A93DEEE6BB911B1F636B556FD8C53F23459F6302275C7C8",
+    "metadata_key": "8832629DC35BBB214C9B90ED4AC52608",
+    "section_mic_hmac_key": "107F6753902D9632AD49A70B0F9872D374E15B4FC9ACD9A4DD077550E73787C0",
+    "section_salt": "63ECCD115CEE939180370ABB6AADB8E0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8980475911C04D64CB9BBBE789A8ED79",
+    "aes_key": "8F48B997309C0264316824863B46A5E5",
+    "data_elements": [
+      {
+        "contents": "",
+        "de_type": 955
+      },
+      {
+        "contents": "85F677EB8010B1E049BBE2750E744709740338",
+        "de_type": 849
+      },
+      {
+        "contents": "545399ECE6558120CAC6843E616D2A66C625B46CAF51",
+        "de_type": 175
+      }
+    ],
+    "encoded_section": "699013F558FE32291733B23028F005263532F19110003532D026D9F6B2293231174EF173744390028FBEF73FC61522088993E06CCEB4BBDEA63ACA01E37D68A8241A8BD29CE0C58A17D7C278B9AB5D1BCE16FBD9489B8BFC30AFA25A2042DB00F97BB0DF285544B6D66D",
+    "identity_type": "trusted",
+    "iv": "29D344C509673521133F5850EA86AF2E",
+    "key_seed": "F2EA3582730BDFE282331B42AE97121E21BDF182DBD69B91727A205BAA579037",
+    "metadata_key": "99E2FF341D58AB75D0127FDD2D425200",
+    "section_mic_hmac_key": "881AAE5C6151C026780977F62A81903441024E55B9F186791CC3E38B63AB6056",
+    "section_salt": "3532D026D9F6B2293231174EF1737443"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "3D35695472AF0B0EABB5D2C51648E491",
+    "aes_key": "FA32718DEE6BCF406BBF3ED62D576156",
+    "data_elements": [
+      {
+        "contents": "8CEEA14D",
+        "de_type": 890
+      }
+    ],
+    "encoded_section": "3E9013BEA8415E76EB477D7CC18D98804303C19110001EE74524224EF14F78BFFFECEE148AD8900257A6CAABEBAE9381D8760C36858DACC5C915E94E62BB4C",
+    "identity_type": "trusted",
+    "iv": "C4E5EB3B1C38A64D16F6D998AEEA72ED",
+    "key_seed": "5F46CCC0833C98CC451ADD9220D928E9CE89E58D26DC1A0A2E33764B39B9F870",
+    "metadata_key": "2D5B9A4F7AFD2191247BBA150037597C",
+    "section_mic_hmac_key": "7730037D7F614061B40B893A02995EB25A63E4EC8AAC72DD8B8CEF2B461F3BC5",
+    "section_salt": "1EE74524224EF14F78BFFFECEE148AD8"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A5ECCE03A7C2509BAA2AB1D6BE71E928",
+    "aes_key": "0B587FBC29C6D813154219CCE15116F5",
+    "data_elements": [
+      {
+        "contents": "DF191813F52A",
+        "de_type": 647
+      },
+      {
+        "contents": "725563C23F3804C841FDE67E6E51461F0F2DC9F840",
+        "de_type": 899
+      },
+      {
+        "contents": "1B5D86F0D9C956574F6A3A27C2044B10AB81A255377D7D8AA9",
+        "de_type": 364
+      },
+      {
+        "contents": "D63DA88FC2DBD10C8A92B0",
+        "de_type": 256
+      }
+    ],
+    "encoded_section": "829013AD8991F88073B5CA5DAFB2FE708649929110006B0F8560F8FFD0C6E71A028CDDE232F390010E56B36364E1D87122920F29C303A359319472A2B83A3FB385359CFF3F51E2C87F1ECD965F036D359DC840E1B104E530C8F35B796C2E72447468E7219900C8484FAC302632DA4A8F447CE411CAFFFACF26066F40CB9BBA739C8A36",
+    "identity_type": "private",
+    "iv": "00429B2681196B02A26C1C02684BB3ED",
+    "key_seed": "78060E15116E06B5825588FB3C02A33BF1FA963E58CE8DA6C99E7C70137FA362",
+    "metadata_key": "0ABCAA033AE39B19FB9D30501F5819B8",
+    "section_mic_hmac_key": "09CA0501CD4C4E1C040C4BC108ABB945485B06655D749FB7793D11139657FC89",
+    "section_salt": "6B0F8560F8FFD0C6E71A028CDDE232F3"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B60D3EADB0A155E05F9BBE78238857EA",
+    "aes_key": "6FEEE0BCCBDB7BC1D3082DDE80DCF582",
+    "data_elements": [
+      {
+        "contents": "AAD964BBFDF41816E109E9A6A9C2B9FFEB5B08C45E2039",
+        "de_type": 271
+      },
+      {
+        "contents": "27F1E36F467A1DF69F379F26AF8C26652BF1189B33D2860620AD",
+        "de_type": 724
+      },
+      {
+        "contents": "D77DB60BA95D50366DAF4E0B23",
+        "de_type": 329
+      },
+      {
+        "contents": "C1C4B4CAA02C898493DDF5B8C0159C199A3AC2E3A50C",
+        "de_type": 528
+      }
+    ],
+    "encoded_section": "9790131AEB7D53743A85CDDA3D06FD34E5D30B911000F3F0F371BA25F95A5604E8812C8E2D819001A09AB5DA90086A8CFB40E9C57E544CD80CE73710CB80D8A4AF0B284883866397C4E741F4F16EDC191CBEA93E8F9C8C94AD22DD699741F68704B6CEE74C61CC59B07FA970378357BE11F4DAAB1157C045AACCF979342D934D5A7154574C5FAC9C522D0F8228BAF6F82D5AB851CEADED82",
+    "identity_type": "private",
+    "iv": "411A5DB92AEFACD6A6B37B000586D0AC",
+    "key_seed": "A04AD3E70302B99AEF07906B2B762047B970EF8A200D1ED6CBD28476BD85A331",
+    "metadata_key": "A023B5E00CA83ADAA212B1D64A5D06A1",
+    "section_mic_hmac_key": "3C1DEF68478B281B581A8747F7D8A5B2ADF5FB49A495EF554110685F2B7DC5D2",
+    "section_salt": "F3F0F371BA25F95A5604E8812C8E2D81"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5661C7B50F7399E237F33E4766620EF6",
+    "aes_key": "386BA145F32F66CDAF5F1216248C4FBE",
+    "data_elements": [
+      {
+        "contents": "12C2775438394CAC486D9352543D4F28970AB925AE",
+        "de_type": 708
+      },
+      {
+        "contents": "08FD1092CCC12B09D300519B0CDC6401DD",
+        "de_type": 706
+      },
+      {
+        "contents": "618B6E2DF482703D2CE2C8DAF386B929F8DABEB0CB7B203EA0",
+        "de_type": 395
+      },
+      {
+        "contents": "84DA0F232629",
+        "de_type": 95
+      },
+      {
+        "contents": "D8EFB0C07BB7F632E268EAEECBFD5580EC1A5B0EF432C03DD861A5",
+        "de_type": 570
+      }
+    ],
+    "encoded_section": "A5901317309D406C29FEF9E2B0625DF0610CFC9110000B472B8FBFFC54950637585AFA22D5509004FF43D777C9F0350F5CC37D073CCE92BF1304DA2FA06451DA01A1E1741040FCF892BE87A46E3599ED878980B2618C7877DFD0CF1D805062677CE60BF8EF94376E283B17D6BFD2B3E47A14B183E0A8DA63E193F90FA0C5B3A5CF88274725414FDE243394B596BD72CFF6764A983AC46FFF3E66EE489B2C480F63AE1D2A6672",
+    "identity_type": "provisioned",
+    "iv": "BC345684E602976E5451D5F182330582",
+    "key_seed": "8FB21F7DA6D21B3C74FA79DA8B1D2C1C9F08C6D5D92A788EBFBE686CDA2363F7",
+    "metadata_key": "BD24EEB64110C56897A7526D714C1B9D",
+    "section_mic_hmac_key": "966F0302B8CB8BA4C588CC61A8C613212E5AB8AA530C3FDE9956F4675D188453",
+    "section_salt": "0B472B8FBFFC54950637585AFA22D550"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "E8AC69F87CD8D8E7AC003EB05319318C",
+    "aes_key": "4762F0AF4F9DBE629D3FA4E7F5EF69ED",
+    "data_elements": [
+      {
+        "contents": "584B9E443F799CF5A237ED1A90BC64A5347D4CF5B6F6",
+        "de_type": 700
+      }
+    ],
+    "encoded_section": "5090133125A01F41198B89512B2E6789D97CBC9110009DEEFC57FD2CC2691604CDB0037C5ADA90011ED9AEBD11CDF10F03FA38E223D5EEB742C6A1FE96FCA9D8E574B3AFC3B23E9009B06F25DE8FA9149C",
+    "identity_type": "private",
+    "iv": "9E710005012C74225422BD12E64463A3",
+    "key_seed": "9E86D7D3AA5528D0D529681C941AEC12D605868B4D8504402A0E871AF45C0E72",
+    "metadata_key": "68DC6B506A83F52A9376958D6528B4AD",
+    "section_mic_hmac_key": "877EE9AAB694D7C9CFE7A28C7EFC208047CD35B6F802E0A4804C4ADB877037E8",
+    "section_salt": "9DEEFC57FD2CC2691604CDB0037C5ADA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "661FCB47FA67B5328E1C07086CF91032",
+    "aes_key": "4A67204896566D0EA552408DEFE37A2B",
+    "data_elements": [
+      {
+        "contents": "C6DEE49C7944A768E00242ECD44129EAD078153F7F5128B3",
+        "de_type": 825
+      },
+      {
+        "contents": "7951",
+        "de_type": 998
+      },
+      {
+        "contents": "8779555409E658B45F916687961397D88E2484D4",
+        "de_type": 21
+      },
+      {
+        "contents": "",
+        "de_type": 289
+      },
+      {
+        "contents": "77246DD4865D6982E24BA67FAAF627E5BE8370FF91ED97F2EA97DF",
+        "de_type": 75
+      }
+    ],
+    "encoded_section": "8D9013DEECEA5F0980DFE5FF791C6B9D245BA3911000995E99F9B9E2BDD3036ED14D6904D6B19004056DB3CDC392922A66EE7CB5AB5966BC3C8970EC5DDEA9A88237BC7BBBCFB6F30FD944F7820BD45CF5D63334BD3A5F392CAAC8BFC8460F60C17CEC1CE0D56839FCC1F9D412E47BB2E7B4D1C49908ABEBE1DD7BFE99D4F1C09116B47DB746E5D67A015B46908A",
+    "identity_type": "provisioned",
+    "iv": "A37E4E6E61BEF6E55B309AE5C746F5AC",
+    "key_seed": "FA6D33246E99E41066ACFD0381D778B908A0E298D510508C8238161EB9FB57C9",
+    "metadata_key": "A9E99B3DB7BC2DC0861959FA9EABA87F",
+    "section_mic_hmac_key": "532A8F76A3BBE0711005A126C8A63A59A76702A80372D6AA08301BBEA5878019",
+    "section_salt": "995E99F9B9E2BDD3036ED14D6904D6B1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "6C1F3486166215C3D44981140FA00E7E",
+    "aes_key": "03D881B6A9D22AE7E5393547A0AF68BD",
+    "data_elements": [
+      {
+        "contents": "93C31033E2",
+        "de_type": 236
+      },
+      {
+        "contents": "8516881D4AE2302077E4226597AE397845E301EDC63AF3DBBF254F3D84",
+        "de_type": 350
+      }
+    ],
+    "encoded_section": "5F9013BF2225F68FCF6A2A9CF8F08DC7BDE6559110005A42B78DFE6ECD8495FD94FFC5218D9B90041E49AC53C6D6FB0CD1B59CE9AA0FC8B5E584EF2AC261B30354675A04BA9CDD34C665732CA32F8BF64CA7A9E44A8D1BA0EADE42A4C2C7CCE9",
+    "identity_type": "provisioned",
+    "iv": "738D2E87250EBA0133B45061C943FD51",
+    "key_seed": "8A91F91C0C7164722766182BEFE0C7676AE00DEF732D440FAC83E1C046BE96F8",
+    "metadata_key": "C373EBB8A7AE60D0845F6D3E3DB0F466",
+    "section_mic_hmac_key": "A67E1FCB4BE3644D1F8B613607C1AA671F9271C33E463569600D799F07B6D557",
+    "section_salt": "5A42B78DFE6ECD8495FD94FFC5218D9B"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A4F5D9BA01D3BE606F216EBAD7775C60",
+    "aes_key": "A9ED3079B7139B65069F9D03015280B3",
+    "data_elements": [],
+    "encoded_section": "3790130E4539939983645FFCD1D23BA41A0C7B911000EC62B07DEFAAD4E56591479BEFBE6224900422DC0DE0453B7C022EA9CA53AE356878",
+    "identity_type": "provisioned",
+    "iv": "4E934E8CD83DF483CA10D638290AA616",
+    "key_seed": "44C2B3506DCEB5A58E373F469167188F4F806E5543358C29CF8A3BCEC1DD5722",
+    "metadata_key": "D2B68CCA820BEEBBD9F539D605DF3DCA",
+    "section_mic_hmac_key": "8D76FBB29C7430E47F34C044AFFFEB3F3BDFFD257B8DD69AA4F5C3FBC9E8A923",
+    "section_salt": "EC62B07DEFAAD4E56591479BEFBE6224"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5F6FB995D7CC9770A1045F3A9F40CA81",
+    "aes_key": "242F9B8083541ED747A8BBDFCA8ECDA9",
+    "data_elements": [
+      {
+        "contents": "0F12B68A338AAFA90DE62513B994AB5F8F1494C7079FFDF1",
+        "de_type": 233
+      }
+    ],
+    "encoded_section": "529013E54379FA3C4A05471414BB4A36EBAB09911000145B207075C013CA154C2913861B1AA09002ABC9352B5B4386BFC54CDF208613E44078F3A071B32DD27ED6033ACC3FA4C1FD4F207FF131DC16D300F123",
+    "identity_type": "trusted",
+    "iv": "F98E66FF52AB84CFA560C55213C7F797",
+    "key_seed": "E36464273854858918F264C2C20998686BBC15865B7800265D4CA044BCEDAFA4",
+    "metadata_key": "64DE8C2420A8C35F2790555177AD2FB5",
+    "section_mic_hmac_key": "2B5B7C883EDE52F3F0CDBB631C818C4F979DF1A577716C1F2DC06F5F187B66BD",
+    "section_salt": "145B207075C013CA154C2913861B1AA0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F87B918636F2CCA6489523D683C7794A",
+    "aes_key": "42C6CC3C0F38EF9F9F90D66FCE0E7F2A",
+    "data_elements": [
+      {
+        "contents": "CA17436867B321AB43AEDC6B17B5F7E2B70F",
+        "de_type": 287
+      },
+      {
+        "contents": "3F3980E7C64BEDC344F09E8A38EC428699F46B4730",
+        "de_type": 1000
+      },
+      {
+        "contents": "425DE4D96BE2CC3BC3157FDA90E79329D55A475866",
+        "de_type": 960
+      }
+    ],
+    "encoded_section": "7C901313F5E405835EFB18227A9A724CBDF2CB911000C071FB4FBFAD007203E02441A50CF9E7900408F48FC18E9E5AB227158F46527D2DF1E3E8B5860EF2B8D15F4267B131735E0E883A0EE7F9702CB3BB73EEB51FCC3086D903053EE88C2B19D0DA3D7854ACB4DF69317530486D18ED42617F74FD5820C7A1B33229E7",
+    "identity_type": "provisioned",
+    "iv": "EF3F84E7847D4B31B3FF9B5B0428550D",
+    "key_seed": "F486B9021DA5ED704CFDBD9825F6D70A5906482EDEABF0226FB45DD75FB969A8",
+    "metadata_key": "C5D3486E302957ADD4338FEFBE46B3D6",
+    "section_mic_hmac_key": "96D349AEC4ADB8D9510E3A3093A0C782CF8EA7B6FCF1CC8ED7B5EE269DB1948C",
+    "section_salt": "C071FB4FBFAD007203E02441A50CF9E7"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "A7711441846DEA01B5B115B07EE0E586",
+    "aes_key": "DF79F55B1148D2412CE4907F5017A956",
+    "data_elements": [],
+    "encoded_section": "37901336311674D31A1B1ABCA412E87C7206BF91100000E2924EE1771AC6B83C73EE8A6EF9C690013F081118E055F4F4DAA14FBC14EC82BA",
+    "identity_type": "private",
+    "iv": "18A45DB774486000FB318F4D68FC75DD",
+    "key_seed": "02F2C8B3CDA9BC0D8B46B5ABFF653966E444DB5F5A2471474CFB15D5F8D0FE64",
+    "metadata_key": "23BDAA88D6A6ABEB5C52575E903B68DE",
+    "section_mic_hmac_key": "55730CBE224F5744D3ABC9666FAFAE3075A3AB1BA891CA8D050E32BB644A4479",
+    "section_salt": "00E2924EE1771AC6B83C73EE8A6EF9C6"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "77A40860E9F2D85C18352FE4DA31AE6E",
+    "aes_key": "F7EB2CE11EE2C72B3E98A799AE37B71D",
+    "data_elements": [
+      {
+        "contents": "60ABBA2292C2",
+        "de_type": 249
+      },
+      {
+        "contents": "A4870338A81FFC6CEAE2C7",
+        "de_type": 779
+      },
+      {
+        "contents": "B63A10F37A861B79084AA7C6F0C79BE8DBE1B308C7A01C0ABC2A",
+        "de_type": 711
+      },
+      {
+        "contents": "640CDFF15C509989A5BFA77595B5CE348F4E31F6FD34027B08",
+        "de_type": 410
+      }
+    ],
+    "encoded_section": "8790133735FEFE7C6C40C0AE2247E7E636393191100025B25F70B4E9701CD2E3D445FBAE117890018D0D255253A4086BE0770494720E0660480571F5F2218A4DAC55FB99D9D18AC77ECD3E4D6C73B27443D8FD663193029BDA29F6394E6F93DB00C33C8F4FF3CC95AD718972008088394F42C6E7A13B8C1374D4F666D6B8179B1AFAAF9BB23E80A4",
+    "identity_type": "private",
+    "iv": "7A1B11E2E1BBFC21137D5DB6812BECF8",
+    "key_seed": "71564841B0C867D87B9EDCB4BD520E0697AF8F85E3782D3430B8BC37DD23B43D",
+    "metadata_key": "3A3DCC0C22746DF5545BDD3BA1684B67",
+    "section_mic_hmac_key": "5CC0B01B3F01D3099CBF99A7D3F71F0A91E6FDB26818353271F1B455763BCBAD",
+    "section_salt": "25B25F70B4E9701CD2E3D445FBAE1178"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "4F1859CAFEFC8C2B5658B634D7678C20",
+    "aes_key": "CFCE78B7C4624ADD1507D3D9A63EF82F",
+    "data_elements": [
+      {
+        "contents": "DE41EA88487B4999D93602",
+        "de_type": 499
+      },
+      {
+        "contents": "48C8543DF38BB0CB7A4B439160",
+        "de_type": 22
+      },
+      {
+        "contents": "35210282",
+        "de_type": 730
+      },
+      {
+        "contents": "75BD",
+        "de_type": 338
+      },
+      {
+        "contents": "92668CFD5C1B",
+        "de_type": 956
+      }
+    ],
+    "encoded_section": "69901392227E7E09CD7396BFBD624A49AABC7E9110000DB9529357BB517E42EDFDC2FE4DC8B090013B4FEF7464D942431636A3E5860668B2FED6C3283B785E83A3BC45B1512C66F382BF7AD7868A9CAB33ABB4D335035B21D1E4396C945F1B8066E8568CC40BCE5D9A5C",
+    "identity_type": "private",
+    "iv": "2259C71FC8CDC81D9403EF089F159308",
+    "key_seed": "7C22FDE6E42BEF50DB73033774ADC18BAF2A3C0A53CA30D36ACFC5582EB25100",
+    "metadata_key": "DB170CBF39A5D48D3F6B0D40140A4257",
+    "section_mic_hmac_key": "35235B50A5E921ABEFF4BF621956CA22F581D42BB3325A39C8C2D102F75D333E",
+    "section_salt": "0DB9529357BB517E42EDFDC2FE4DC8B0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "0985A4C1FC767EF248AFAA00E0ED2E47",
+    "aes_key": "0CE73306D8D0AB56045815F2AD20B25A",
+    "data_elements": [
+      {
+        "contents": "D3D3905C6BEA12C7123B74AB40858D04",
+        "de_type": 792
+      },
+      {
+        "contents": "713F3EB42E57458D4038D809B35106DFF259EA4C4F1F17819E96",
+        "de_type": 720
+      }
+    ],
+    "encoded_section": "6790130FC5A44C70B4AD43316DD6D38C4A4845911000026C2E6E34CC1156B5E7EE8221D4A7F290043DD0DB3E9C9BF801CB74473C77DDE2D6329F38BFBD336FE971057F3D2C8C8EF610AFCBF1A5D8C24EFDA93762195F1A863CDC617CB8D317746EA52A7BB0961F3F",
+    "identity_type": "provisioned",
+    "iv": "D732D335C908BBF51DFFC3F80FBC75C7",
+    "key_seed": "F72828A9E550CCB3EE653BEA22E097839072D8D60280AFC2FBE2435D5095979F",
+    "metadata_key": "ADC1B18C69F7FD30DAC6EC2696F70EAE",
+    "section_mic_hmac_key": "0F64E025E91492D0AC4434D844FF48CD98C61BCD3E25F9CCC8E1333A81D27A9D",
+    "section_salt": "026C2E6E34CC1156B5E7EE8221D4A7F2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F753952E84F321276818619F5E2DB7A5",
+    "aes_key": "BA5479576FEC84060B7986F71751215E",
+    "data_elements": [
+      {
+        "contents": "174BFD",
+        "de_type": 274
+      },
+      {
+        "contents": "99B7C0C5CE238C6F963A4722865CFACADBBA8B95B18C70AD4267727F81",
+        "de_type": 212
+      },
+      {
+        "contents": "2EF69250213CDA930A85A93BA85F087B9780",
+        "de_type": 81
+      },
+      {
+        "contents": "87",
+        "de_type": 13
+      }
+    ],
+    "encoded_section": "739013700384F06906581AC9BCFBCBC2AD496491100096C7B1C5DEFCAFC64251AC87CDCEFCED9001D2B0215328C8DB53DECBDB25F97DBA53A67D02E1DC1F83D6E91AC7B2CF8DCCA4277ED359F6838431E078A50199B4310AEA200307AB216B82348B0024206A6D0A3C79E89CBD254D8426E7BEC1",
+    "identity_type": "private",
+    "iv": "FFA79DBF3BA0EBDE530A72A2D8018930",
+    "key_seed": "132DDE0DAAAC4F4A03CF1CB2B8F4A8FE41327C212AC3CE1B1C854EFA2EE3060B",
+    "metadata_key": "E61C0407C95D18D5DA193C062801B3F2",
+    "section_mic_hmac_key": "65CF0A0155EEC7EAABA2C02875F773696CECBDC64FB57E0BB9B7884B174EAF42",
+    "section_salt": "96C7B1C5DEFCAFC64251AC87CDCEFCED"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "7C6A90B2F9FAC1C86AEFF121052D076C",
+    "aes_key": "E73FDA1B40CF93E9561E963B728E2D8B",
+    "data_elements": [
+      {
+        "contents": "B4F512F3B1639C980A124C94E365",
+        "de_type": 848
+      }
+    ],
+    "encoded_section": "489013E7D5DEA0D3B68FCB72D18D623072BDE991100089D76603BB207098A3E6631BFBEF7C329004FB1B665EBA76ACCCE96C07AD83F4BC53948171B9D2DD42122AAAEBF0827973918D",
+    "identity_type": "provisioned",
+    "iv": "7B8C0BE7E83DFE973D0817AEB6CB6F63",
+    "key_seed": "67E08A4FC51867E3A0F57543149D05A2B1DD58C2B77B39F5F4EC5B707007E46A",
+    "metadata_key": "AF5A1254567F43ED18CCC0C024010B4B",
+    "section_mic_hmac_key": "8914563971948EA279A2189CDC04749B53E5DA3429FDA1C6F161E96465A76413",
+    "section_salt": "89D76603BB207098A3E6631BFBEF7C32"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "FB3EAE2C571C503CED9B656B14BFD0B8",
+    "aes_key": "30A2ECDA5B5CADF19936D88CD6078144",
+    "data_elements": [
+      {
+        "contents": "908D4CC782C9EC6222B92FEF8662DF086B",
+        "de_type": 816
+      },
+      {
+        "contents": "2E23352D",
+        "de_type": 290
+      }
+    ],
+    "encoded_section": "5290131C34CA643645201E9143E49FEFFBC4C29110000290E81B48B49A315AF4EB0A583B626E9004D8209185C733910032E4252CF793BAD9F4F50FEFC22E595EF0FABD10B50361B7AEF6780F22A2AB9E82D359",
+    "identity_type": "provisioned",
+    "iv": "83D6520D6383658D1BCEE9223496A13B",
+    "key_seed": "C33B862F2494CC516A5CB13A5B8F8905E854AD720F4AEB3C2A0788B194920AC5",
+    "metadata_key": "1170B8A823A46A9F89D03AB849A8B6C7",
+    "section_mic_hmac_key": "618F13964E241E73FE3D19F653606FD22DC35E8B402BBE581766F12918B2C749",
+    "section_salt": "0290E81B48B49A315AF4EB0A583B626E"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "8CD348B153FFFF829FF59CE087B45052",
+    "aes_key": "0BA7C51985112928B9DC28E7F65425F1",
+    "data_elements": [
+      {
+        "contents": "5749",
+        "de_type": 817
+      },
+      {
+        "contents": "F5B9E550C46360EC4810134DAA69B4775E96F03AE0",
+        "de_type": 10
+      },
+      {
+        "contents": "C213FC8E1F6F5335E8",
+        "de_type": 937
+      }
+    ],
+    "encoded_section": "5F9013088BC9173D4977CA45D6A1C619348876911000C5D9A37193D9E39A5EDB0F67163977C49001D8FEA804E8BC4013FD7B414D7FEF6ECE162DB0B42893FFBC581ED0B3A3AEABD9530827277802B92E4C2C55F628405E6EA653E237A672ADB1",
+    "identity_type": "private",
+    "iv": "A135C384B47C184EC4482051FF8C2E31",
+    "key_seed": "07B091E071F437A31B8703BBC3936997184E61121AD4F7EB5F492E3DF8DCEA53",
+    "metadata_key": "01A9B84A7827975243E7B3B2003D084A",
+    "section_mic_hmac_key": "77B8E093C3E828051F2B2518EDEA3011F482628A8ADA7746887F96E340F412AE",
+    "section_salt": "C5D9A37193D9E39A5EDB0F67163977C4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "B40F18FA69C0FC048DFB0AAA5B0AF0BF",
+    "aes_key": "3709DF5F4E0A2AAE14602A75EF722DC2",
+    "data_elements": [
+      {
+        "contents": "B753D510831709EA0C3D738C6033D01A271601AD5978633E9D",
+        "de_type": 48
+      },
+      {
+        "contents": "8367AFEE3BBC94F736A29A7E2714845B5360021AD4FC68FE97E0DF36",
+        "de_type": 263
+      },
+      {
+        "contents": "05D52FCEF6F06D00BF235214C2207E8FB73E3574515D1325A0F8",
+        "de_type": 595
+      },
+      {
+        "contents": "4958A61B59ECC3D66E",
+        "de_type": 573
+      },
+      {
+        "contents": "C4E5F7EA67D7A3F95CF318762C89",
+        "de_type": 276
+      }
+    ],
+    "encoded_section": "AB901366A1922F253CFA26D8D248EC4A83156A911000664460D3622578B621D4F753C362904090041092245FE1A57603009BC851D8758A0C7BAEC65F18C94BEE0C0CF6B209BF24B4EC66421EADC280BF1E943750125723D6D59E2B4E0325F9D439BEC4C630B1BC28613DD0F07C2BCDEE6F0A87E8C503B0A4DB22EA76CCA4D86815FA48A96D034570E6CC5FD1E888AE0435D5B784012AA6F0B2E32A10FEC8E2365DBE2A379355E3D65553E2BB",
+    "identity_type": "provisioned",
+    "iv": "6F4B43F8D4FABA78459CD81AA33BE4CC",
+    "key_seed": "BACC0678BD1412CE8F69457D531543891E60D6D28FEA990794BFB40D21AA0949",
+    "metadata_key": "884C8032F452425CDD66B638C8FB39F6",
+    "section_mic_hmac_key": "3CEDAF60E90EA68B0E4B4FE3D631A93C699417513FCEC675EB4B0F685EC4BAD8",
+    "section_salt": "664460D3622578B621D4F753C3629040"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "83E1288467CC4B24710B345A19B062D5",
+    "aes_key": "3872F4A171D57E391B108FC34280941E",
+    "data_elements": [
+      {
+        "contents": "FE41644BF9217FC149AE426A3A110D8684EB",
+        "de_type": 837
+      },
+      {
+        "contents": "CEA178B6B05E1B76FAB7B6C490BC2EAC7704BFD6",
+        "de_type": 284
+      },
+      {
+        "contents": "BF",
+        "de_type": 363
+      },
+      {
+        "contents": "A08F2A4028CEAD4E909837",
+        "de_type": 141
+      },
+      {
+        "contents": "DD907152A5",
+        "de_type": 296
+      }
+    ],
+    "encoded_section": "7D90135402E36E007ECD6B8F063C2AF686CEC59110006EC04E6CB0B5DCBCCA90417478CA71FA90010CE62BF979B4123E409ACD9785748E8A30110CD82591D58B1090BCAE8031E1EBCB0B50B914F9C3A616D670ADBBEACF2DA6D5A9E7903EA5A285EAB9FC52D80D54B98576FDEDA10E108BBCE4A44725D5D11AB69EDB3A11",
+    "identity_type": "private",
+    "iv": "948B1C0AEFF273FA05E61AB83A67B1E7",
+    "key_seed": "948CFB8CE79FE0285B4F35335C83A9C12BE88049A60CDDA8A54F03EC5E8B188D",
+    "metadata_key": "14FB446FDF7BC2DB3BB63D91B78835ED",
+    "section_mic_hmac_key": "A50B781DE993B3D37EEED3B5957AF0A16DE356C4E5EA6206E010B8542B8180B8",
+    "section_salt": "6EC04E6CB0B5DCBCCA90417478CA71FA"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "F7FA2B1220E713D37D5D4219E841D866",
+    "aes_key": "6C09B48D2E9252886CB8476628E49EA6",
+    "data_elements": [
+      {
+        "contents": "FE93A34B0B728ECB4A1A23B7",
+        "de_type": 938
+      }
+    ],
+    "encoded_section": "469013713B65A9B2834CC302E660F1516FDC529110004BAED26B52E7D85BAD585AACA26600A990012172B89B62912AE533F371A8CE4F587B90B48A534F119A5F6CB20BDD6FCD32",
+    "identity_type": "private",
+    "iv": "A6AD44BD75DDB36D3E11CA72047ED68C",
+    "key_seed": "47690302DC37FEBF9C4D5CC6453DCEFC40DBB204E5A7A81D0B30E74247BCDA80",
+    "metadata_key": "C114855EDA0E56FA324577137E531FEC",
+    "section_mic_hmac_key": "B4904367A2141DBFE77167BAC1FE7D508DC07B7496B26448682FD7FF3215B8AB",
+    "section_salt": "4BAED26B52E7D85BAD585AACA26600A9"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "397B5F51522DFEA7E1B243BC5D947FDA",
+    "aes_key": "7BF127F44E510A7B407A4C35B82172B8",
+    "data_elements": [
+      {
+        "contents": "9E3AD15489CC97EFA791DBD20D6D59F1D9A1D055F080076C9E0849",
+        "de_type": 313
+      },
+      {
+        "contents": "0F8046",
+        "de_type": 262
+      },
+      {
+        "contents": "3A76F640ADDA98B2009266BAEC469C8F33D2991D9AE4F48D13E5",
+        "de_type": 693
+      },
+      {
+        "contents": "B98E5D7725F819C7860151C7C6E0B6",
+        "de_type": 970
+      },
+      {
+        "contents": "8E497812B532C1731A1E42BB0D",
+        "de_type": 131
+      }
+    ],
+    "encoded_section": "9A9013623FFEC846FA4EC80AEEE5874F724150911000E4DCFCC4EE61C6352DF5285906A7ACA19002CE3757CF407DBA7A4AC984C7CE89DC1E5E88F6B6DE50085A04894DD3DDB94DBACD840C7744A81D9273C6D6B389314C7DE82B39FA0EEA7F9EF932B412F2B43EF444E59722BA59A51E54162417D4D510FFF996861298FC0346008F9A960744495B72F646ACA5B3607F8EA4C345AFD418DFE65A5F",
+    "identity_type": "trusted",
+    "iv": "DC4BBB79EC29CCC02C79BEBD45C7BB70",
+    "key_seed": "874471CC674DCC5A5BD7E8207CB62F4862C69B6FB28F86BE947A8249F8AD45CA",
+    "metadata_key": "B8420F0DC2CAD8BE94C2878461F62CA7",
+    "section_mic_hmac_key": "A60A350281B1B0C59E0F9E44DE3F139D4D5278D21E9325B60A0C1099981C4D47",
+    "section_salt": "E4DCFCC4EE61C6352DF5285906A7ACA1"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "14A4E23F310594A923AC2B00CD26FDDF",
+    "aes_key": "033A7FAED90FD1A0FF7080EDC2D150AD",
+    "data_elements": [],
+    "encoded_section": "379013EE55550B8DB3B2D0626ABA7D899DCB1B911000F83C0914EC025DD986BF39B9AA4633D090018687E96989F94FF3D2365FB2CDB89BEF",
+    "identity_type": "private",
+    "iv": "E4838E64DC9F04328312FC0952FE1955",
+    "key_seed": "32AC43A2C4F720EA7255D9B5025B7219801F4A728DAD5DE4C841480BFC6CAF0B",
+    "metadata_key": "DCD150DA1D4622EA1FB364C64CC56352",
+    "section_mic_hmac_key": "5713D6A91073B3FC250693CF7608174F7B5C8BB0B89717849AF78745F4BB74FA",
+    "section_salt": "F83C0914EC025DD986BF39B9AA4633D0"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9A5A6E11C1791C48E6BC440FD2B275BC",
+    "aes_key": "54D9612F2A7BE396A390954DFD2F2DB0",
+    "data_elements": [],
+    "encoded_section": "37901371B7C653BFB0E41F1BDA3228F707E39E91100058E26761B259F743F644564A6B23A0CC900155CA0E1E76DF190C54E9142FDBE55CFE",
+    "identity_type": "private",
+    "iv": "6B14BB04BBC14392A524A69EB6316F51",
+    "key_seed": "965BB1781732640C7237DDD1679D07C089927C6A869442EBB23960B536262A9F",
+    "metadata_key": "7FA623CCF685E489F680D2898580DD72",
+    "section_mic_hmac_key": "D3FC8D9843906152A789A16A150C0BAACA74BB5AF33A886552CBFA7C6D529029",
+    "section_salt": "58E26761B259F743F644564A6B23A0CC"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "64006DB572776637FD097DE973732A7B",
+    "aes_key": "669E44E9F98F153D8179E44A19F25623",
+    "data_elements": [
+      {
+        "contents": "7B",
+        "de_type": 638
+      },
+      {
+        "contents": "F00D4AB2C34F139458F1AF9265FA9EA175ED4EE85167",
+        "de_type": 958
+      },
+      {
+        "contents": "87417FB6114F",
+        "de_type": 499
+      },
+      {
+        "contents": "683ED3E93B91EB3FAED44E29457BE80D878415985D41B5F460",
+        "de_type": 129
+      }
+    ],
+    "encoded_section": "7990133E374729219551A1BB61EFF4D5AD6B6791100034159DC9EEC690F4ECD6A20A569E8CD29002A28031BC640DEB07E8AC9C7F941289B1327A5247718B0AD60B2A8769AF9749567EAF8A236425CDDF878FE17A735BF4AAB4ECCC4FC34AF217238857F87A06AE9EFAEC7C85452D2439BC5E9E08CF568AB5C7FD",
+    "identity_type": "trusted",
+    "iv": "26F5D4D8B5EB6069AEF2B6E435D30DB8",
+    "key_seed": "15A1B8E687F0DF912101CE373495959EE40D2D1FECB951B41C87DB9A0B4C3EF2",
+    "metadata_key": "4ED47FC3167C69F90160E2A9BDDC6A8B",
+    "section_mic_hmac_key": "7DE079745790A823A62470384F692A5CE4AD1C757AFE96917811EF13AD2CC8BC",
+    "section_salt": "34159DC9EEC690F4ECD6A20A569E8CD2"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5DDB5AA2FA3F0A61D18C52E9DE22CDE6",
+    "aes_key": "E60C3ACE2E521468137DAE60C115B3F5",
+    "data_elements": [
+      {
+        "contents": "8DD936",
+        "de_type": 244
+      }
+    ],
+    "encoded_section": "3D90138C161B53E44488EDAE5C545A49CB632F9110007272DFA635A1B1F42A62BE9147CCC4429004CE40129E8D256DA63B8B6AFA1FD16791EB33FD546813",
+    "identity_type": "provisioned",
+    "iv": "C03127C86766B5299AA2A30C42931072",
+    "key_seed": "A0F876D63DFEBBBC68F52B9A52582992D53E8DBC84DCA86598DDD6B41F1994D8",
+    "metadata_key": "189A12F2813D0C3D6E6A852F1298AE8A",
+    "section_mic_hmac_key": "853A31A3BBD636810AE5DEA65BC5739408F9D7DC1661B56D0E54A60A9C59DFE8",
+    "section_salt": "7272DFA635A1B1F42A62BE9147CCC442"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "9D031FAD682DAA4BBCA6912CCBB83C09",
+    "aes_key": "E1B5FA0F1A67F72E01B807F6495C6393",
+    "data_elements": [
+      {
+        "contents": "BA0688D5",
+        "de_type": 327
+      },
+      {
+        "contents": "CB0502569855FDA6DDA289FB7CA7F8447CB118E542",
+        "de_type": 880
+      },
+      {
+        "contents": "99FF",
+        "de_type": 940
+      },
+      {
+        "contents": "",
+        "de_type": 195
+      }
+    ],
+    "encoded_section": "5E9013101E7BB804EC51155AFE647EF89D6FAB91100042441ECF37BAF5319477A42541165CE49001AB8ACECCD8F482909FBC48F308CE76945B74681CE578A664996962BF4F4960586B4D100A83BCEFC21C073BE5407B32F6FE37E4181A8416",
+    "identity_type": "private",
+    "iv": "006B7FFEC2A4BC7AF80376E12B9CF206",
+    "key_seed": "3FDC2376B9AA5ABAA54091F4C3D17E62453E5C4BCA3F7E97D02C087E3D3E56EC",
+    "metadata_key": "2A9A5CD0C8BBE65B4DA2AC93A3646ADB",
+    "section_mic_hmac_key": "409C1FA5A935DF46FD0B0BA1F4B6676DC8E53F92992C41B1E167DCAAF92C6B75",
+    "section_salt": "42441ECF37BAF5319477A42541165CE4"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "402E548FE3E9094AE8327C5D67323EF3",
+    "aes_key": "74A450709337C059E4B06AA7339A847A",
+    "data_elements": [
+      {
+        "contents": "DDEE0C575B876057217E9EBD9A54DC6DDEC5E09A7C8B5AF9B2699B2F4D",
+        "de_type": 370
+      },
+      {
+        "contents": "CD8ECC401DC9D100AB80772990FD586CD51C0F63BCC51C1BC1",
+        "de_type": 762
+      },
+      {
+        "contents": "D4219120DC8A3A5A31C38174E515",
+        "de_type": 447
+      },
+      {
+        "contents": "A7B56D78AA8970937A2B0E39A94148EFE9BE381F0B",
+        "de_type": 890
+      },
+      {
+        "contents": "4C4E4BB8BC53C76E9BDEDAAF9D853E00A0556A6A",
+        "de_type": 561
+      }
+    ],
+    "encoded_section": "B39013556E8D35D3BFBCC66BA7FE806642527C9110005AFB2CBC5F6FF709C77C5E5B44FEC2639001302F90C4EE1CC3A669EBC8C94F549755BCBC764D07AC7B44259C7E72BAD6B0603D2618A56A1D5D9D0F8F3361A4F4BA89B14F98D3E27F95F1CA5DB58B7C9710E5785C12C126D0199B28A6955E728FE9E0D56AEA4522B7289D149FFA9AC110B751ACC06CD17F40F3E0EE67191DAF9E12EF7897E526F0037E46E22CD772FFB6A8FA8A6075E7BD51BE635A620EE8",
+    "identity_type": "private",
+    "iv": "91B130A57119A917BE672E882CD24F0A",
+    "key_seed": "349BAC58EA19F4DFC1E615A8F712C39D4A8F9D9371C92914FF7FEB3273EAFA96",
+    "metadata_key": "ECB79F56C63D39774DA1093D67A2E2BE",
+    "section_mic_hmac_key": "EC055CD96AA83E58972330916292606A56E320F4078D3E37125FD521366D2C13",
+    "section_salt": "5AFB2CBC5F6FF709C77C5E5B44FEC263"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "5FC40591E60B01771FD86CA3E3EFBAA9",
+    "aes_key": "527134D81C8BB7C6BECF31F34C4FB7EF",
+    "data_elements": [
+      {
+        "contents": "342CFE0C131BCA582A2B7F241FDDC5ECF120E98493391304BAFA",
+        "de_type": 217
+      }
+    ],
+    "encoded_section": "5490131A3E437EC13FDD67C82E5A3E273E9CD391100014444BDF8E6863B041C4F0C1CDEC855D900484ADD7102010AF6513B7367DD4D398FC2D1670B31EB05EB75F6451ABC3AF64D23D067AD0B26AEDEC08DD6BF5F5",
+    "identity_type": "provisioned",
+    "iv": "B58720B7A9092A88B216BDC537A2C0C6",
+    "key_seed": "7795E9287DF02DB694AA5A17909EF3ABAF2B3A67D317F0BA403077B148680D3A",
+    "metadata_key": "719D474AF4AC20EA51773F7D689FCBC8",
+    "section_mic_hmac_key": "CA2941EF019C602CD34C2D7A728687EBB9D640E5DFA764616AB435EF32B4955E",
+    "section_salt": "14444BDF8E6863B041C4F0C1CDEC855D"
+  },
+  {
+    "adv_header_byte": "30",
+    "adv_salt": "64E4BB1721EA0A79B18FA4CF2DFCF10C",
+    "aes_key": "4FC66B746D81042C4012C9CA05EB0F52",
+    "data_elements": [
+      {
+        "contents": "F3F4EFB14E81119C7C2E98F2",
+        "de_type": 608
+      },
+      {
+        "contents": "C41DD9601061BB775DBC3608789A30523E95B3B05B",
+        "de_type": 966
+      },
+      {
+        "contents": "B33460D6D8E3DF0ADF19BDD666E4",
+        "de_type": 973
+      },
+      {
+        "contents": "CDE289B7ECC9B6CDE5EA6BB595AC3019FE7F",
+        "de_type": 480
+      }
+    ],
+    "encoded_section": "849013AACDF54AA823590AF5804916E75A4517911000EF56099BC3FE4347649E0E59527C7A6190015C377B56675F536A451BF7CCFB4F79940DFE2ACB47AFB42B017C572E08DF98CFA55C5EC810CBEC57BC340A59E1F3414E7FCA6E17CD675EC950EFCCA7F589D4187557EA6AEA5F0E752B32C9540691FA07A9904598AE2FF4703638729108",
+    "identity_type": "private",
+    "iv": "9862F303568F4CEEEE16790805706ADC",
+    "key_seed": "790EEE3F64023DF0E967BECC5F9C1881A0E23AABE20BF85D35F0CA9E212D4C9B",
+    "metadata_key": "5C624608CAB1BE8DE5DF6A058AC025AE",
+    "section_mic_hmac_key": "F6216E6FCE355E0BD447D8B39A621A566767EEC8EE2F3AF3E86777DCC894B63B",
+    "section_salt": "EF56099BC3FE4347649E0E59527C7A61"
+  }
+]
+
diff --git a/nearby/presence/np_adv/tests/examples_v0.rs b/nearby/presence/np_adv/tests/examples_v0.rs
new file mode 100644
index 0000000..e30e12f
--- /dev/null
+++ b/nearby/presence/np_adv/tests/examples_v0.rs
@@ -0,0 +1,101 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crypto_provider_default::CryptoProviderImpl;
+use ldt_np_adv::*;
+use np_adv::legacy::data_elements::TxPowerDataElement;
+use np_adv::{
+    credential::{
+        simple::SimpleV0Credential, source::SliceCredentialSource,
+        v0::MinimumFootprintV0CryptoMaterial,
+    },
+    de_type::*,
+    deserialize_v0_advertisement,
+    legacy::deserialize::*,
+    shared_data::*,
+    *,
+};
+
+#[test]
+fn v0_deser_plaintext() {
+    let creds =
+        SliceCredentialSource::<SimpleV0Credential<MinimumFootprintV0CryptoMaterial, ()>>::new(&[]);
+    let adv = deserialize_v0_advertisement::<_, _, CryptoProviderImpl>(
+        &[
+            0x00, // adv header
+            0x03, // public identity
+            0x15, 0x03, // Length 1 Tx Power DE with value 3
+        ],
+        &creds,
+    )
+    .unwrap();
+
+    match adv {
+        V0AdvContents::Plaintext(p) => {
+            assert_eq!(PlaintextIdentityMode::Public, p.identity());
+            assert_eq!(
+                vec![&PlainDataElement::TxPower(TxPowerDataElement::from(
+                    TxPower::try_from(3).unwrap()
+                )),],
+                p.data_elements().collect::<Vec<_>>()
+            );
+        }
+        _ => panic!("this example is plaintext"),
+    }
+}
+
+#[test]
+fn v0_deser_ciphertext() {
+    let key_seed = [0x11_u8; 32];
+    let metadata_key: [u8; NP_LEGACY_METADATA_KEY_LEN] = [0x33; NP_LEGACY_METADATA_KEY_LEN];
+
+    let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+    let metadata_key_hmac: [u8; 32] =
+        hkdf.legacy_metadata_key_hmac_key().calculate_hmac(&metadata_key);
+
+    // output of building a packet using AdvBuilder
+    let adv = &[
+        0x00, // adv header
+        0x21, // private DE w/ a 2 byte payload
+        0x22, 0x22, // salt
+        // ciphertext for metadata key & txpower DE
+        0x85, 0xBF, 0xA8, 0x83, 0x58, 0x7C, 0x50, 0xCF, 0x98, 0x38, 0xA7, 0x8A, 0xC0, 0x1C, 0x96,
+        0xF9,
+    ];
+
+    let credentials: [SimpleV0Credential<_, [u8; 32]>; 1] = [SimpleV0Credential::new(
+        MinimumFootprintV0CryptoMaterial::new(key_seed, metadata_key_hmac),
+        key_seed,
+    )];
+    let cred_source = SliceCredentialSource::new(credentials.as_slice());
+
+    let matched = match deserialize_v0_advertisement::<_, _, CryptoProviderImpl>(adv, &cred_source)
+        .unwrap()
+    {
+        V0AdvContents::Decrypted(c) => c,
+        _ => panic!("this examples is ciphertext"),
+    };
+
+    assert_eq!(&key_seed, matched.matched_credential().matched_data());
+    let decrypted = matched.contents();
+
+    assert_eq!(EncryptedIdentityDataElementType::Private, decrypted.identity_type());
+
+    assert_eq!(&metadata_key, decrypted.metadata_key());
+
+    assert_eq!(
+        vec![&PlainDataElement::TxPower(TxPowerDataElement::from(TxPower::try_from(3).unwrap())),],
+        decrypted.data_elements().collect::<Vec<_>>()
+    );
+}
diff --git a/nearby/presence/np_adv/tests/examples_v1.rs b/nearby/presence/np_adv/tests/examples_v1.rs
new file mode 100644
index 0000000..fbda763
--- /dev/null
+++ b/nearby/presence/np_adv/tests/examples_v1.rs
@@ -0,0 +1,181 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crypto_provider::{CryptoProvider, CryptoRng};
+use crypto_provider_default::CryptoProviderImpl;
+use np_adv::extended::data_elements::TxPowerDataElement;
+use np_adv::extended::serialize::SingleTypeDataElement;
+use np_adv::shared_data::TxPower;
+use np_adv::{
+    credential::{
+        simple::SimpleV1Credential, source::SliceCredentialSource,
+        v1::MinimumFootprintV1CryptoMaterial,
+    },
+    de_type::*,
+    deserialize_v1_advertisement,
+    extended::{
+        deserialize::{Section, VerificationMode},
+        serialize::{AdvBuilder, SignedEncrypted},
+        NP_V1_ADV_MAX_SECTION_COUNT,
+    },
+    PlaintextIdentityMode, *,
+};
+use np_hkdf::v1_salt;
+
+#[test]
+fn v1_deser_plaintext() {
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+    section_builder
+        .add_de(|_salt| TxPowerDataElement::from(TxPower::try_from(6).unwrap()))
+        .unwrap();
+    section_builder.add_to_advertisement();
+    let adv = adv_builder.into_advertisement();
+
+    let creds =
+        SliceCredentialSource::<SimpleV1Credential<MinimumFootprintV1CryptoMaterial, ()>>::new(&[]);
+    let contents =
+        deserialize_v1_advertisement::<_, _, CryptoProviderImpl>(adv.as_slice(), &creds).unwrap();
+
+    assert_eq!(0, contents.invalid_sections_count());
+
+    let sections = contents.sections().collect::<Vec<_>>();
+
+    assert_eq!(1, sections.len());
+
+    let section = match &sections[0] {
+        V1DeserializedSection::Plaintext(s) => s,
+        _ => panic!("this is a plaintext adv"),
+    };
+    assert_eq!(PlaintextIdentityMode::Public, section.identity());
+    let data_elements = section.data_elements().collect::<Vec<_>>();
+    assert_eq!(1, data_elements.len());
+
+    let de = &data_elements[0];
+    assert_eq!(v1_salt::DataElementOffset::from(1), de.offset());
+    assert_eq!(TxPowerDataElement::DE_TYPE, de.de_type());
+    assert_eq!(&[6], de.contents());
+}
+
+#[test]
+fn v1_deser_ciphertext() {
+    // identity material
+    let mut rng = <CryptoProviderImpl as CryptoProvider>::CryptoRng::new();
+    let metadata_key: [u8; 16] = rng.gen();
+    let key_pair = np_ed25519::KeyPair::<CryptoProviderImpl>::generate();
+    let key_seed = rng.gen();
+    let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&key_seed);
+
+    // prepare advertisement
+    let mut adv_builder = AdvBuilder::new();
+    let mut section_builder = adv_builder
+        .section_builder(SignedEncrypted::new_random_salt(
+            &mut rng,
+            EncryptedIdentityDataElementType::Private,
+            &metadata_key,
+            &key_pair,
+            &hkdf,
+        ))
+        .unwrap();
+    section_builder
+        .add_de(|_salt| TxPowerDataElement::from(TxPower::try_from(7).unwrap()))
+        .unwrap();
+    section_builder.add_to_advertisement();
+    let adv = adv_builder.into_advertisement();
+
+    let cred_array: [SimpleV1Credential<_, [u8; 32]>; 1] = [SimpleV1Credential::new(
+        MinimumFootprintV1CryptoMaterial::new(
+            key_seed,
+            [0; 32], // Zeroing out MIC HMAC, since it's unused in examples here.
+            hkdf.extended_signed_metadata_key_hmac_key().calculate_hmac(&metadata_key),
+            key_pair.public(),
+        ),
+        key_seed,
+    )];
+    let creds = SliceCredentialSource::new(&cred_array);
+    let contents =
+        deserialize_v1_advertisement::<_, _, CryptoProviderImpl>(adv.as_slice(), &creds).unwrap();
+
+    assert_eq!(0, contents.invalid_sections_count());
+
+    let sections = contents.sections().collect::<Vec<_>>();
+    assert_eq!(1, sections.len());
+
+    let matched_credential = match &sections[0] {
+        V1DeserializedSection::Decrypted(d) => d,
+        _ => panic!("this is a ciphertext adv"),
+    };
+
+    assert_eq!(&key_seed, matched_credential.matched_credential().matched_data());
+    let section = matched_credential.contents();
+
+    assert_eq!(EncryptedIdentityDataElementType::Private, section.identity_type());
+    assert_eq!(VerificationMode::Signature, section.verification_mode());
+    assert_eq!(&metadata_key, section.metadata_key());
+
+    let data_elements = section.data_elements().collect::<Vec<_>>();
+    assert_eq!(1, data_elements.len());
+
+    let de = &data_elements[0];
+    assert_eq!(v1_salt::DataElementOffset::from(2), de.offset());
+    assert_eq!(TxPowerDataElement::DE_TYPE, de.de_type());
+    assert_eq!(&[7], de.contents());
+}
+
+#[test]
+fn v1_deser_no_section() {
+    let adv_builder = AdvBuilder::new();
+    let adv = adv_builder.into_advertisement();
+    let creds =
+        SliceCredentialSource::<SimpleV1Credential<MinimumFootprintV1CryptoMaterial, ()>>::new(&[]);
+    let v1_deserialize_error =
+        deserialize_v1_advertisement::<_, _, CryptoProviderImpl>(adv.as_slice(), &creds)
+            .expect_err(" Expected an error");
+    assert_eq!(
+        v1_deserialize_error,
+        AdvDeserializationError::ParseError {
+            details_hazmat: AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+        }
+    );
+}
+
+#[test]
+fn v1_deser_plaintext_over_max_sections() {
+    let mut adv_builder = AdvBuilder::new();
+    for _ in 0..NP_V1_ADV_MAX_SECTION_COUNT {
+        let mut section_builder = adv_builder.section_builder(PublicIdentity::default()).unwrap();
+        section_builder
+            .add_de(|_salt| TxPowerDataElement::from(TxPower::try_from(7).unwrap()))
+            .unwrap();
+        section_builder.add_to_advertisement();
+    }
+    let mut adv = adv_builder.into_advertisement().as_slice().to_vec();
+    // Push an extra section
+    adv.extend_from_slice(
+        [
+            0x01, // Section header
+            0x03, // Public identity
+        ]
+        .as_slice(),
+    );
+    let creds =
+        SliceCredentialSource::<SimpleV1Credential<MinimumFootprintV1CryptoMaterial, ()>>::new(&[]);
+    assert_eq!(
+        deserialize_v1_advertisement::<_, _, CryptoProviderImpl>(adv.as_slice(), &creds)
+            .unwrap_err(),
+        AdvDeserializationError::ParseError {
+            details_hazmat: AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError
+        }
+    );
+}
diff --git a/nearby/presence/np_c_ffi/Cargo.lock b/nearby/presence/np_c_ffi/Cargo.lock
new file mode 100644
index 0000000..ca23800
--- /dev/null
+++ b/nearby/presence/np_c_ffi/Cargo.lock
@@ -0,0 +1,1207 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "bytes",
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "aes-gcm-siv"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae0784134ba9375416d469ec31e7c5f9fa94405049cf08c5ce5b4698be673e0d"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "polyval",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "array_ref"
+version = "0.1.0"
+
+[[package]]
+name = "array_view"
+version = "0.1.0"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "bytes"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cbindgen"
+version = "0.24.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b922faaf31122819ec80c4047cc684c6979a087366c069611e33649bf98e18d"
+dependencies = [
+ "clap",
+ "heck",
+ "indexmap",
+ "log",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_json",
+ "syn 1.0.109",
+ "tempfile",
+ "toml",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_lex",
+ "indexmap",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "const-oid"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6340df57935414636969091153f35f68d9f00bbc8fb4a9c6054706c213e6c6bc"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "typenum",
+]
+
+[[package]]
+name = "crypto_provider"
+version = "0.1.0"
+
+[[package]]
+name = "crypto_provider_default"
+version = "0.1.0"
+dependencies = [
+ "cfg-if",
+ "crypto_provider",
+ "crypto_provider_rustcrypto",
+]
+
+[[package]]
+name = "crypto_provider_rustcrypto"
+version = "0.1.0"
+dependencies = [
+ "aead",
+ "aes",
+ "aes-gcm-siv",
+ "cbc",
+ "cfg-if",
+ "crypto_provider",
+ "ctr",
+ "ed25519-dalek",
+ "hkdf",
+ "hmac",
+ "p256",
+ "rand",
+ "rand_chacha",
+ "rand_core",
+ "sec1",
+ "sha2",
+ "subtle",
+ "x25519-dalek",
+]
+
+[[package]]
+name = "ctr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "digest",
+ "fiat-crypto",
+ "platforms",
+ "rustc_version",
+ "subtle",
+]
+
+[[package]]
+name = "curve25519-dalek-derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.23",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
+dependencies = [
+ "const-oid",
+ "zeroize",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "ed25519"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fb04eee5d9d907f29e80ee6b0e78f7e2c82342c63e3580d8c4f69d9d5aad963"
+dependencies = [
+ "signature",
+]
+
+[[package]]
+name = "ed25519-dalek"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
+dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+ "rand_core",
+ "sha2",
+]
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
+dependencies = [
+ "base16ct",
+ "crypto-bigint",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "hkdf",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "fiat-crypto"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+ "zeroize",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "handle_map"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+ "hashbrown 0.14.0",
+ "lock_api",
+ "portable-atomic",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
+name = "hkdf"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi 0.3.2",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "ldt"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+ "ldt_tbc",
+]
+
+[[package]]
+name = "ldt_np_adv"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "ldt",
+ "ldt_tbc",
+ "np_hkdf",
+ "xts_aes",
+]
+
+[[package]]
+name = "ldt_tbc"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.147"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "lock_api"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "np_adv"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "lazy_static",
+ "ldt",
+ "ldt_np_adv",
+ "nom",
+ "np_ed25519",
+ "np_hkdf",
+ "rand",
+ "sink",
+ "strum",
+ "strum_macros",
+ "tinyvec",
+ "xts_aes",
+]
+
+[[package]]
+name = "np_c_ffi"
+version = "0.1.0"
+dependencies = [
+ "cbindgen",
+ "crypto_provider_default",
+ "np_ffi_core",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "np_ed25519"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "sink",
+ "tinyvec",
+]
+
+[[package]]
+name = "np_ffi_core"
+version = "0.1.0"
+dependencies = [
+ "array_view",
+ "crypto_provider",
+ "crypto_provider_default",
+ "handle_map",
+ "np_adv",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "np_hkdf"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+ "ldt",
+ "xts_aes",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+
+[[package]]
+name = "p256"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
+dependencies = [
+ "elliptic-curve",
+ "primeorder",
+]
+
+[[package]]
+name = "platforms"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
+
+[[package]]
+name = "polyval"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "primeorder"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
+dependencies = [
+ "elliptic-curve",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.37.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
+
+[[package]]
+name = "ryu"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "sec1"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+
+[[package]]
+name = "serde"
+version = "1.0.166"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.166"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.23",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.100"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "signature"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
+
+[[package]]
+name = "sink"
+version = "0.1.0"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strum"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "fastrand",
+ "redox_syscall",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "typenum"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+
+[[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+
+[[package]]
+name = "x25519-dalek"
+version = "2.0.0-rc.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
+dependencies = [
+ "curve25519-dalek",
+ "rand_core",
+]
+
+[[package]]
+name = "xts_aes"
+version = "0.1.0"
+dependencies = [
+ "array_ref",
+ "crypto_provider",
+ "ldt_tbc",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
diff --git a/nearby/presence/np_c_ffi/Cargo.toml b/nearby/presence/np_c_ffi/Cargo.toml
new file mode 100644
index 0000000..1dd9f32
--- /dev/null
+++ b/nearby/presence/np_c_ffi/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+name = "np_c_ffi"
+version = "0.1.0"
+edition = "2021"
+publish = false
+
+[dependencies]
+# TODO: We need to make this configurable for this crate and for np_ffi below it.
+crypto_provider_default = {path = "../../crypto/crypto_provider_default", features = ["rustcrypto"]}
+np_ffi_core = {path = "../np_ffi_core"}
+spin = "0.9.8"
+
+[build-dependencies]
+cbindgen = "0.24.5"
+
+[lib]
+# boringssl and bssl-sys are built as a static lib, so we need to as well
+crate-type = ["staticlib"]
\ No newline at end of file
diff --git a/nearby/presence/np_c_ffi/build.rs b/nearby/presence/np_c_ffi/build.rs
new file mode 100644
index 0000000..b282709
--- /dev/null
+++ b/nearby/presence/np_c_ffi/build.rs
@@ -0,0 +1,63 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use cbindgen::ItemType::*;
+use std::vec;
+
+const C_CONFIG: &str = "cbindgen_configs/c_config.toml";
+const C_OUTPUT_HEADER_FILE: &str = "include/c/np_c_ffi.h";
+
+const CPP_CONFIG: &str = "cbindgen_configs/cpp_config.toml";
+const CPP_INCLUDE_DIR_BASE: &str = "include/cpp/";
+const CPP_PUBLIC_HEADER_FILE: &str = "np_cpp_ffi_types.h";
+const CPP_INTERNAL_HEADER_FILE: &str = "np_cpp_ffi_functions.h";
+
+fn main() {
+    let crate_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
+
+    let config_file = format!("{crate_dir}/{C_CONFIG}");
+    let config = cbindgen::Config::from_file(config_file).expect("Config file should exist");
+    generate_c_header(&crate_dir, config);
+
+    let config_file = format!("{crate_dir}/{CPP_CONFIG}");
+    let config = cbindgen::Config::from_file(config_file).expect("Config file should exist");
+    generate_private_cpp_header(&crate_dir, config.clone());
+    generate_public_cpp_header(&crate_dir, config);
+}
+
+fn generate_c_header(crate_dir: &String, config: cbindgen::Config) {
+    let output_header_file = format!("{crate_dir}/{C_OUTPUT_HEADER_FILE}");
+    generate_header(&output_header_file, crate_dir, config);
+}
+
+fn generate_private_cpp_header(crate_dir: &String, mut config: cbindgen::Config) {
+    config.export.item_types.append(&mut vec![Functions]);
+    config.includes.push(CPP_PUBLIC_HEADER_FILE.to_string());
+    let output_header_file =
+        format!("{crate_dir}/{CPP_INCLUDE_DIR_BASE}/{CPP_INTERNAL_HEADER_FILE}");
+    generate_header(&output_header_file, crate_dir, config);
+}
+
+fn generate_public_cpp_header(crate_dir: &String, mut config: cbindgen::Config) {
+    config.export.item_types.append(&mut vec![Enums, Structs]);
+    let output_header_file = format!("{crate_dir}/{CPP_INCLUDE_DIR_BASE}/{CPP_PUBLIC_HEADER_FILE}");
+    generate_header(&output_header_file, crate_dir, config);
+}
+
+fn generate_header(output_file: &String, crate_dir: &String, config: cbindgen::Config) {
+    let _ = cbindgen::generate_with_config(crate_dir, config)
+        .map_err(|e| println!("cargo:warning=ERROR: {e}"))
+        .expect("c header file generation failed")
+        .write_to_file(output_file);
+}
diff --git a/nearby/presence/np_c_ffi/cbindgen_configs/c_config.toml b/nearby/presence/np_c_ffi/cbindgen_configs/c_config.toml
new file mode 100644
index 0000000..88483b0
--- /dev/null
+++ b/nearby/presence/np_c_ffi/cbindgen_configs/c_config.toml
@@ -0,0 +1,50 @@
+language = "C"
+
+# Instead go through CPP generated header
+cpp_compat = false
+
+style = "type"
+header = """
+/*
+ Copyright 2023 Google LLC
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+"""
+pragma_once = true
+autogen_warning = """
+/*
+ WARNING: this file is autogenerated by cbindgen. Don't modify this manually.
+ Additionally, you should _not_ rely upon the layouts of the generated
+ structs and unions if you want your code to be forward-compatible,
+ unless a given type explicitly states in its documentation that it has
+ a guaranteed forward-compatible layout.
+ Instead, you should use _only_ the provided exported function symbols.
+*/"""
+include_version = true
+
+sort_by = "None" # Use order specified in Rust
+
+[export]
+# Prefix to add before the name of every item
+prefix = "np_ffi_"
+
+[enum]
+rename_variants = "QualifiedScreamingSnakeCase"
+
+[parse]
+parse_deps = true
+include = ["np_c_ffi", "np_ffi_core"]
+
+[parse.expand]
+crates = ["np_ffi_core"]
+default_features = true
diff --git a/nearby/presence/np_c_ffi/cbindgen_configs/cpp_config.toml b/nearby/presence/np_c_ffi/cbindgen_configs/cpp_config.toml
new file mode 100644
index 0000000..5a2ba2a
--- /dev/null
+++ b/nearby/presence/np_c_ffi/cbindgen_configs/cpp_config.toml
@@ -0,0 +1,44 @@
+language = "C++"
+
+style = "type"
+header = """
+/*
+ Copyright 2023 Google LLC
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+"""
+pragma_once = true
+autogen_warning = """
+/*
+ WARNING: this file is autogenerated by cbindgen. Don't modify this manually.
+ Additionally, you should _not_ rely upon the layouts of the generated
+ structs and unions if you want your code to be forward-compatible,
+ unless a given type explicitly states in its documentation that it has
+ a guaranteed forward-compatible layout.
+ Instead, you should use _only_ the provided exported function symbols.
+*/"""
+include_version = true
+namespaces = ["np_ffi", "internal"]
+
+sort_by = "None" # Use order specified in Rust
+
+[enum]
+rename_variants = "None"
+
+[parse]
+parse_deps = true
+include = ["np_c_ffi", "np_ffi_core"]
+
+[parse.expand]
+crates = ["np_ffi_core"]
+default_features = true
diff --git a/nearby/presence/np_c_ffi/include/c/np_c_ffi.h b/nearby/presence/np_c_ffi/include/c/np_c_ffi.h
new file mode 100644
index 0000000..03e5821
--- /dev/null
+++ b/nearby/presence/np_c_ffi/include/c/np_c_ffi.h
@@ -0,0 +1,890 @@
+/*
+ Copyright 2023 Google LLC
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#pragma once
+
+/* Generated with cbindgen:0.24.5 */
+
+/*
+ WARNING: this file is autogenerated by cbindgen. Don't modify this manually.
+ Additionally, you should _not_ rely upon the layouts of the generated
+ structs and unions if you want your code to be forward-compatible,
+ unless a given type explicitly states in its documentation that it has
+ a guaranteed forward-compatible layout.
+ Instead, you should use _only_ the provided exported function symbols.
+*/
+
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+/**
+ * The possible boolean action types which can be present in an Actions data element
+ */
+enum np_ffi_BooleanActionType {
+  NP_FFI_BOOLEAN_ACTION_TYPE_ACTIVE_UNLOCK = 8,
+  NP_FFI_BOOLEAN_ACTION_TYPE_NEARBY_SHARE = 9,
+  NP_FFI_BOOLEAN_ACTION_TYPE_INSTANT_TETHERING = 10,
+  NP_FFI_BOOLEAN_ACTION_TYPE_PHONE_HUB = 11,
+  NP_FFI_BOOLEAN_ACTION_TYPE_PRESENCE_MANAGER = 12,
+  NP_FFI_BOOLEAN_ACTION_TYPE_FINDER = 13,
+  NP_FFI_BOOLEAN_ACTION_TYPE_FAST_PAIR_SASS = 14,
+};
+typedef uint8_t np_ffi_BooleanActionType;
+
+/**
+ * Discriminant for `CreateCredentialBookResult`
+ */
+enum np_ffi_CreateCredentialBookResultKind {
+  /**
+   * There was no space left to create a new credential book
+   */
+  NP_FFI_CREATE_CREDENTIAL_BOOK_RESULT_KIND_NO_SPACE_LEFT = 0,
+  /**
+   * We created a new credential book behind the given handle.
+   * The associated payload may be obtained via
+   * `CreateCredentialBookResult#into_success()`.
+   */
+  NP_FFI_CREATE_CREDENTIAL_BOOK_RESULT_KIND_SUCCESS = 1,
+};
+typedef uint8_t np_ffi_CreateCredentialBookResultKind;
+
+/**
+ * A result-type enum which tells the caller whether/not a deallocation
+ * succeeded or failed due to the requested handle not being present.
+ */
+typedef enum {
+  /**
+   * The requested handle to deallocate was not present in the map
+   */
+  NP_FFI_DEALLOCATE_RESULT_NOT_PRESENT = 0,
+  /**
+   * The object behind the handle was successfully deallocated
+   */
+  NP_FFI_DEALLOCATE_RESULT_SUCCESS = 1,
+} np_ffi_DeallocateResult;
+
+/**
+ * Discriminant for `DeserializeAdvertisementResult`.
+ */
+enum np_ffi_DeserializeAdvertisementResultKind {
+  /**
+   * Deserializing the advertisement failed, for some reason or another.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_KIND_ERROR = 0,
+  /**
+   * The advertisement was correctly deserialized, and it's a V0 advertisement.
+   * `DeserializeAdvertisementResult#into_v0()` is the corresponding cast
+   * to the associated enum variant.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_KIND_V0 = 1,
+  /**
+   * The advertisement was correctly deserialized, and it's a V1 advertisement.
+   * `DeserializeAdvertisementResult#into_v1()` is the corresponding cast
+   * to the associated enum variant.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_KIND_V1 = 2,
+};
+typedef uint8_t np_ffi_DeserializeAdvertisementResultKind;
+
+/**
+ * Discriminant for possible results of V0 advertisement deserialization
+ */
+enum np_ffi_DeserializedV0AdvertisementKind {
+  /**
+   * The deserialized V0 advertisement was legible.
+   * The associated payload may be obtained via
+   * `DeserializedV0Advertisement#into_legible`.
+   */
+  NP_FFI_DESERIALIZED_V0_ADVERTISEMENT_KIND_LEGIBLE = 0,
+  /**
+   * The deserialized V0 advertisement is illegible,
+   * likely meaning that the receiver does not hold
+   * the proper credentials to be able to read
+   * the received advertisement.
+   */
+  NP_FFI_DESERIALIZED_V0_ADVERTISEMENT_KIND_NO_MATCHING_CREDENTIALS = 1,
+};
+typedef uint8_t np_ffi_DeserializedV0AdvertisementKind;
+
+/**
+ * Represents deserialized information about the V0 identity utilized
+ * by a deserialized V0 advertisement
+ */
+typedef enum {
+  NP_FFI_DESERIALIZED_V0_IDENTITY_PLAINTEXT,
+  NP_FFI_DESERIALIZED_V0_IDENTITY_DECRYPTED,
+} np_ffi_DeserializedV0Identity;
+
+/**
+ * Discriminant for `DeserializedV0Identity`.
+ */
+enum np_ffi_DeserializedV0IdentityKind {
+  /**
+   * The deserialized identity was a plaintext identity.
+   */
+  NP_FFI_DESERIALIZED_V0_IDENTITY_KIND_PLAINTEXT = 0,
+  /**
+   * The deserialized identity was some decrypted identity.
+   */
+  NP_FFI_DESERIALIZED_V0_IDENTITY_KIND_DECRYPTED = 1,
+};
+typedef uint8_t np_ffi_DeserializedV0IdentityKind;
+
+/**
+ * Discriminant for `DeserializedV1Identity`.
+ */
+enum np_ffi_DeserializedV1IdentityKind {
+  /**
+   * The deserialized v1 identity was plaintext
+   */
+  NP_FFI_DESERIALIZED_V1_IDENTITY_KIND_PLAINTEXT = 0,
+  /**
+   * The deserialized v1 identity corresponded
+   * to some kind of decrypted identity.
+   */
+  NP_FFI_DESERIALIZED_V1_IDENTITY_KIND_DECRYPTED = 1,
+};
+typedef uint8_t np_ffi_DeserializedV1IdentityKind;
+
+/**
+ * Discriminant of `GetV0DEResult`.
+ */
+enum np_ffi_GetV0DEResultKind {
+  /**
+   * The attempt to get the DE succeeded.
+   * The associated payload may be obtained via
+   * `GetV0DEResult#into_success`.
+   */
+  NP_FFI_GET_V0DE_RESULT_KIND_SUCCESS = 0,
+  /**
+   * The attempt to get the DE failed,
+   * possibly due to the requested index being
+   * out-of-bounds or due to the advertisement
+   * having been previously deallocated.
+   */
+  NP_FFI_GET_V0DE_RESULT_KIND_ERROR = 1,
+};
+typedef uint8_t np_ffi_GetV0DEResultKind;
+
+/**
+ * Discriminant for the `GetV1DEResult` enum.
+ */
+enum np_ffi_GetV1DEResultKind {
+  /**
+   * Attempting to get the DE at the given position failed,
+   * possibly due to the index being out-of-bounds or due
+   * to the whole advertisement having been previously deallocated.
+   */
+  NP_FFI_GET_V1DE_RESULT_KIND_ERROR = 0,
+  /**
+   * Attempting to get the DE at the given position succeeded.
+   * The underlying DE may be extracted with `GetV1DEResult#into_success`.
+   */
+  NP_FFI_GET_V1DE_RESULT_KIND_SUCCESS = 1,
+};
+typedef uint8_t np_ffi_GetV1DEResultKind;
+
+/**
+ * Discriminant for `GetV1SectionResult`
+ */
+enum np_ffi_GetV1SectionResultKind {
+  /**
+   * The attempt to get the section failed,
+   * possibly due to the section index being
+   * out-of-bounds or due to the underlying
+   * advertisement having already been deallocated.
+   */
+  NP_FFI_GET_V1_SECTION_RESULT_KIND_ERROR = 0,
+  /**
+   * The attempt to get the section succeeded.
+   * The wrapped section may be obtained via
+   * `GetV1SectionResult#into_success`.
+   */
+  NP_FFI_GET_V1_SECTION_RESULT_KIND_SUCCESS = 1,
+};
+typedef uint8_t np_ffi_GetV1SectionResultKind;
+
+/**
+ * Structure for categorized reasons for why a NP C FFI call may
+ * be panicking.
+ */
+enum np_ffi_PanicReason {
+  /**
+   * Some enum cast to a variant failed. Utilized
+   * for failed enum casts of all enums.
+   *
+   * (That is, this is the catch-all panic reason for enum
+   * casts where there is not a more specific reason
+   * in some other variant of this enum.)
+   */
+  NP_FFI_PANIC_REASON_ENUM_CAST_FAILED = 0,
+  /**
+   * The panic handler is used to assert conditions are true to avoid programmer errors.
+   * If a failed assert condition is hit, this panic handler is invoked with this reason.
+   */
+  NP_FFI_PANIC_REASON_ASSERT_FAILED = 1,
+  /**
+   * Error returned if action bits inside of a V0Actions struct are invalid. If the struct was
+   * created by this deserializer, the bits will always be valid, they are only invalid if
+   * a user reaches in and changes them to something invalid.
+   */
+  NP_FFI_PANIC_REASON_INVALID_ACTION_BITS = 2,
+};
+typedef uint8_t np_ffi_PanicReason;
+
+/**
+ * Discriminant for `V0DataElement`.
+ */
+enum np_ffi_V0DataElementKind {
+  /**
+   * A transmission Power (Tx Power) data-element.
+   * The associated payload may be obtained via
+   * `V0DataElement#into_tx_power`.
+   */
+  NP_FFI_V0_DATA_ELEMENT_KIND_TX_POWER = 0,
+  /**
+   * The Actions data-element.
+   * The associated payload may be obtained via
+   * `V0DataElement#into_actions`.
+   */
+  NP_FFI_V0_DATA_ELEMENT_KIND_ACTIONS = 1,
+};
+typedef uint8_t np_ffi_V0DataElementKind;
+
+/**
+ *A `#[repr(C)]` handle to a value of type `super::CredentialBookInternals`.
+ */
+typedef struct {
+  uint64_t handle_id;
+} np_ffi_CredentialBook;
+
+/**
+ * Result type for `create_credential_book`
+ */
+enum np_ffi_CreateCredentialBookResult_Tag {
+  NP_FFI_CREATE_CREDENTIAL_BOOK_RESULT_NO_SPACE_LEFT = 0,
+  NP_FFI_CREATE_CREDENTIAL_BOOK_RESULT_SUCCESS = 1,
+};
+typedef uint8_t np_ffi_CreateCredentialBookResult_Tag;
+
+typedef union {
+  np_ffi_CreateCredentialBookResult_Tag tag;
+  struct {
+    np_ffi_CreateCredentialBookResult_Tag success_tag;
+    np_ffi_CredentialBook success;
+  };
+} np_ffi_CreateCredentialBookResult;
+
+/**
+ *A `#[repr(C)]` handle to a value of type `super::V0PayloadInternals`.
+ */
+typedef struct {
+  uint64_t handle_id;
+} np_ffi_V0Payload;
+
+/**
+ * Represents a deserialized V0 advertisement whose DE contents may be read
+ */
+typedef struct {
+  uint8_t num_des;
+  np_ffi_V0Payload payload;
+  np_ffi_DeserializedV0Identity identity;
+} np_ffi_LegibleDeserializedV0Advertisement;
+
+/**
+ * Represents a deserialized V0 advertisement
+ */
+typedef enum {
+  NP_FFI_DESERIALIZED_V0_ADVERTISEMENT_LEGIBLE,
+  NP_FFI_DESERIALIZED_V0_ADVERTISEMENT_NO_MATCHING_CREDENTIALS,
+} np_ffi_DeserializedV0Advertisement_Tag;
+
+typedef struct {
+  np_ffi_DeserializedV0Advertisement_Tag tag;
+  union {
+    struct {
+      np_ffi_LegibleDeserializedV0Advertisement legible;
+    };
+  };
+} np_ffi_DeserializedV0Advertisement;
+
+/**
+ *A `#[repr(C)]` handle to a value of type `super::LegibleV1SectionsInternals`.
+ */
+typedef struct {
+  uint64_t handle_id;
+} np_ffi_LegibleV1Sections;
+
+/**
+ * Representation of a deserialized V1 advertisement
+ */
+typedef struct {
+  uint8_t num_legible_sections;
+  uint8_t num_undecryptable_sections;
+  np_ffi_LegibleV1Sections legible_sections;
+} np_ffi_DeserializedV1Advertisement;
+
+/**
+ * The result of calling `np_ffi_deserialize_advertisement`.
+ * Must be explicitly deallocated after use with
+ * a corresponding `np_ffi_deallocate_deserialize_advertisement_result`
+ */
+enum np_ffi_DeserializeAdvertisementResult_Tag {
+  /**
+   * Deserializing the advertisement failed, for some reason or another.
+   * `DeserializeAdvertisementResultKind::Error` is the associated enum tag.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_ERROR,
+  /**
+   * The advertisement was correctly deserialized, and it's a V0 advertisement.
+   * `DeserializeAdvertisementResultKind::V0` is the associated enum tag.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_V0,
+  /**
+   * The advertisement was correctly deserialized, and it's a V1 advertisement.
+   * `DeserializeAdvertisementResultKind::V1` is the associated enum tag.
+   */
+  NP_FFI_DESERIALIZE_ADVERTISEMENT_RESULT_V1,
+};
+typedef uint8_t np_ffi_DeserializeAdvertisementResult_Tag;
+
+typedef union {
+  np_ffi_DeserializeAdvertisementResult_Tag tag;
+  struct {
+    np_ffi_DeserializeAdvertisementResult_Tag v0_tag;
+    np_ffi_DeserializedV0Advertisement v0;
+  };
+  struct {
+    np_ffi_DeserializeAdvertisementResult_Tag v1_tag;
+    np_ffi_DeserializedV1Advertisement v1;
+  };
+} np_ffi_DeserializeAdvertisementResult;
+
+/**
+ * A byte-string with a maximum size of N,
+ * where only the first `len` bytes are considered
+ * to contain the actual payload. N is only
+ * permitted to be between 0 and 255.
+ */
+typedef struct {
+  uint8_t len;
+  uint8_t bytes[255];
+} np_ffi_ByteBuffer_255;
+
+/**
+ * Represents the raw contents of the service payload data
+ * under the Nearby Presence service UUID
+ */
+typedef struct {
+  np_ffi_ByteBuffer_255 bytes;
+} np_ffi_RawAdvertisementPayload;
+
+/**
+ * Representation of a transmission power,
+ * as used for the Tx Power DE in V0 and V1.
+ */
+typedef struct {
+  int8_t tx_power;
+} np_ffi_TxPower;
+
+/**
+ * The bitfield data of a VOActions data element
+ */
+typedef struct {
+  uint32_t bitfield;
+} np_ffi_V0ActionBits;
+
+/**
+ * Representation of the Actions DE in V0.
+ */
+typedef enum {
+  /**
+   * A set of action bits which were present in a plaintext identity advertisement
+   */
+  NP_FFI_V0_ACTIONS_PLAINTEXT,
+  /**
+   * A set of action bits which were present in a encrypted identity advertisement
+   */
+  NP_FFI_V0_ACTIONS_ENCRYPTED,
+} np_ffi_V0Actions_Tag;
+
+typedef struct {
+  np_ffi_V0Actions_Tag tag;
+  union {
+    struct {
+      np_ffi_V0ActionBits plaintext;
+    };
+    struct {
+      np_ffi_V0ActionBits encrypted;
+    };
+  };
+} np_ffi_V0Actions;
+
+/**
+ * Representation of a V0 data element.
+ */
+typedef enum {
+  NP_FFI_V0_DATA_ELEMENT_TX_POWER,
+  NP_FFI_V0_DATA_ELEMENT_ACTIONS,
+} np_ffi_V0DataElement_Tag;
+
+typedef struct {
+  np_ffi_V0DataElement_Tag tag;
+  union {
+    struct {
+      np_ffi_TxPower tx_power;
+    };
+    struct {
+      np_ffi_V0Actions actions;
+    };
+  };
+} np_ffi_V0DataElement;
+
+/**
+ * The result of `V0Payload#get_de`.
+ */
+typedef enum {
+  NP_FFI_GET_V0DE_RESULT_SUCCESS,
+  NP_FFI_GET_V0DE_RESULT_ERROR,
+} np_ffi_GetV0DEResult_Tag;
+
+typedef struct {
+  np_ffi_GetV0DEResult_Tag tag;
+  union {
+    struct {
+      np_ffi_V0DataElement success;
+    };
+  };
+} np_ffi_GetV0DEResult;
+
+/**
+ * Handle to a deserialized V1 section
+ */
+typedef struct {
+  np_ffi_LegibleV1Sections legible_sections_handle;
+  uint8_t legible_section_index;
+  uint8_t num_des;
+  np_ffi_DeserializedV1IdentityKind identity_tag;
+} np_ffi_DeserializedV1Section;
+
+/**
+ * The result of attempting to get a particular V1 section
+ * from its' index within the list of legible sections
+ * via `DeserializedV1Advertisement::get_section`.
+ */
+typedef enum {
+  NP_FFI_GET_V1_SECTION_RESULT_ERROR,
+  NP_FFI_GET_V1_SECTION_RESULT_SUCCESS,
+} np_ffi_GetV1SectionResult_Tag;
+
+typedef struct {
+  np_ffi_GetV1SectionResult_Tag tag;
+  union {
+    struct {
+      np_ffi_DeserializedV1Section success;
+    };
+  };
+} np_ffi_GetV1SectionResult;
+
+/**
+ * Representation of the data-element type tag
+ * of a V1 data element.
+ */
+typedef struct {
+  uint32_t code;
+} np_ffi_V1DEType;
+
+/**
+ * A byte-string with a maximum size of N,
+ * where only the first `len` bytes are considered
+ * to contain the actual payload. N is only
+ * permitted to be between 0 and 255.
+ */
+typedef struct {
+  uint8_t len;
+  uint8_t bytes[127];
+} np_ffi_ByteBuffer_127;
+
+/**
+ * FFI-transmissible representation of a generic V1 data-element.
+ * This representation is stable, and so you may directly
+ * reference this struct's fields if you wish.
+ */
+typedef struct {
+  /**
+   * The DE type code of this generic data-element.
+   */
+  np_ffi_V1DEType de_type;
+  /**
+   * The raw data-element byte payload, up to
+   * 127 bytes in length.
+   */
+  np_ffi_ByteBuffer_127 payload;
+} np_ffi_GenericV1DataElement;
+
+/**
+ * FFI-transmissible representation of a V1 data-element
+ */
+typedef enum {
+  /**
+   * A "generic" V1 data-element, for which we have no
+   * particular information about its schema (just
+   * a DE type code and a byte payload.)
+   */
+  NP_FFI_V1_DATA_ELEMENT_GENERIC,
+} np_ffi_V1DataElement_Tag;
+
+typedef struct {
+  np_ffi_V1DataElement_Tag tag;
+  union {
+    struct {
+      np_ffi_GenericV1DataElement generic;
+    };
+  };
+} np_ffi_V1DataElement;
+
+/**
+ * Represents the result of the `DeserializedV1Section#get_de` operation.
+ */
+typedef enum {
+  NP_FFI_GET_V1DE_RESULT_ERROR,
+  NP_FFI_GET_V1DE_RESULT_SUCCESS,
+} np_ffi_GetV1DEResult_Tag;
+
+typedef struct {
+  np_ffi_GetV1DEResult_Tag tag;
+  union {
+    struct {
+      np_ffi_V1DataElement success;
+    };
+  };
+} np_ffi_GetV1DEResult;
+
+/**
+ * Overrides the global panic handler to be used when NP C FFI calls panic.
+ * This method will only have an effect on the global panic-handler
+ * the first time it's called, and this method will return `true`
+ * to indicate that the panic handler was successfully set.
+ * All subsequent calls to this method
+ * will simply ignore the argument and return `false`.
+ *
+ * If the passed function pointer is non-null,
+ * then we will call it upon every panic,
+ * followed by the default panicking behavior for
+ * the platform (in the case where the user-specified
+ * function does not terminate or hang the running process.)
+ *
+ * Otherwise, we will resort to the
+ * default panicking behavior for the system, which
+ * is a printed stack trace followed by an abort
+ * when this crate is compiled with `std`,
+ * but a bare `loop { }` when this crate is compiled without.
+ */
+bool np_ffi_global_config_panic_handler(void (*handler)(np_ffi_PanicReason));
+
+/**
+ * Sets an override to the number of shards to employ in the NP FFI's
+ * internal handle-maps, which places an upper bound on the number
+ * of writing threads which may make progress at any one time
+ * when concurrently accessing handles of the same type.
+ *
+ * By default, this value will be set to 16, or in `std` environments,
+ * the minimum of 16 and the number of available hardware threads.
+ * A shard value override of zero will be interpreted the same
+ * as this default.
+ *
+ * Setting this value will have no effect if the handle-maps for the
+ * API have already begun being used by the client code, and any
+ * values set will take effect upon the first usage of _any_ non-`np_ffi_global_config_set`
+ * API call.
+ */
+void np_ffi_global_config_set_num_shards(uint8_t num_shards);
+
+/**
+ * Sets the maximum number of active handles to credential books
+ * which may be active at any one time.
+ * Default value: Max value.
+ * Max value: `u32::MAX - 1`.
+ *
+ * Useful for bounding the maximum memory used by the client application
+ * on credential books in constrained-memory environments.
+ *
+ * Setting this value will have no effect if the handle-maps for the
+ * API have already begun being used by the client code, and any
+ * values set will take effect upon the first usage of any API
+ * call utilizing credential books.
+ */
+void np_ffi_global_config_set_max_num_credential_books(uint32_t max_num_credential_books);
+
+/**
+ * Sets the maximum number of active handles to deserialized v0
+ * advertisements which may be active at any one time.
+ *
+ * Useful for bounding the maximum memory used by the client application
+ * on v0 advertisements in constrained-memory environments.
+ *
+ * Default value: Max value.
+ * Max value: `u32::MAX - 1`.
+ *
+ * Setting this value will have no effect if the handle-maps for the
+ * API have already begun being used by the client code, and any
+ * values set will take effect upon the first usage of any API
+ * call which references or returns a deserialized V0 advertisement.
+ */
+void np_ffi_global_config_set_max_num_deserialized_v0_advertisements(uint32_t max_num_deserialized_v0_advertisements);
+
+/**
+ * Sets the maximum number of active handles to deserialized v1
+ * advertisements which may be active at any one time.
+ *
+ * Useful for bounding the maximum memory used by the client application
+ * on v1 advertisements in constrained-memory environments.
+ *
+ * Default value: Max value.
+ * Max value: `u32::MAX - 1`.
+ *
+ * Setting this value will have no effect if the handle-maps for the
+ * API have already begun being used by the client code, and any
+ * values set will take effect upon the first usage of any API
+ * call which references or returns a deserialized V1 advertisement.
+ */
+void np_ffi_global_config_set_max_num_deserialized_v1_advertisements(uint32_t max_num_deserialized_v1_advertisements);
+
+/**
+ * Allocates a new credential-book, returning a handle to the created object
+ */
+np_ffi_CreateCredentialBookResult np_ffi_create_credential_book(void);
+
+/**
+ * Gets the tag of a `CreateCredentialBookResult` tagged enum.
+ */
+np_ffi_CreateCredentialBookResultKind np_ffi_CreateCredentialBookResult_kind(np_ffi_CreateCredentialBookResult result);
+
+/**
+ * Casts a `CreateCredentialBookResult` to the `SUCCESS` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_CredentialBook np_ffi_CreateCredentialBookResult_into_SUCCESS(np_ffi_CreateCredentialBookResult result);
+
+/**
+ * Deallocates a credential-book by its handle
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_credential_book(np_ffi_CredentialBook credential_book);
+
+/**
+ * Attempts to deserialize an advertisement with the given service-data
+ * payload (presumed to be under the NP service UUID) using credentials
+ * pulled from the given credential-book.
+ */
+np_ffi_DeserializeAdvertisementResult np_ffi_deserialize_advertisement(np_ffi_RawAdvertisementPayload adv_payload,
+                                                                       np_ffi_CredentialBook credential_book);
+
+/**
+ * Gets the tag of a `DeserializeAdvertisementResult` tagged-union.
+ */
+np_ffi_DeserializeAdvertisementResultKind np_ffi_DeserializeAdvertisementResult_kind(np_ffi_DeserializeAdvertisementResult result);
+
+/**
+ * Casts a `DeserializeAdvertisementResult` to the `V0` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_DeserializedV0Advertisement np_ffi_DeserializeAdvertisementResult_into_V0(np_ffi_DeserializeAdvertisementResult result);
+
+/**
+ * Casts a `DeserializeAdvertisementResult` to the `V1` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_DeserializedV1Advertisement np_ffi_DeserializeAdvertisementResult_into_V1(np_ffi_DeserializeAdvertisementResult result);
+
+/**
+ * Deallocates any internal data referenced by a `DeserializeAdvertisementResult`. This should only
+ * be used if into_V0 or into_V1, have not been called yet as it shares the same underlying
+ * resource.
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_deserialize_advertisement_result(np_ffi_DeserializeAdvertisementResult result);
+
+/**
+ * Deallocates any internal data referenced by a `DeserializedV0Advertisement`
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_deserialized_V0_advertisement(np_ffi_DeserializedV0Advertisement adv);
+
+/**
+ * Deallocates any internal data referenced by a `DeserializedV1Advertisement`
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_deserialized_V1_advertisement(np_ffi_DeserializedV1Advertisement adv);
+
+/**
+ * Gets the tag of a `DeserializedV0Advertisement` tagged-union.
+ */
+np_ffi_DeserializedV0AdvertisementKind np_ffi_DeserializedV0Advertisement_kind(np_ffi_DeserializedV0Advertisement result);
+
+/**
+ * Casts a `DeserializedV0Advertisement` to the `Legible` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_LegibleDeserializedV0Advertisement np_ffi_DeserializedV0Advertisement_into_LEGIBLE(np_ffi_DeserializedV0Advertisement adv);
+
+/**
+ * Gets the number of DEs in a legible deserialized advertisement.
+ * Suitable as an iteration bound for `V0Payload#get_de`.
+ */
+uint8_t np_ffi_LegibleDeserializedV0Advertisement_get_num_des(np_ffi_LegibleDeserializedV0Advertisement adv);
+
+/**
+ * Gets just the data-element payload of a `LegibleDeserializedV0Advertisement`.
+ */
+np_ffi_V0Payload np_ffi_LegibleDeserializedV0Advertisement_into_payload(np_ffi_LegibleDeserializedV0Advertisement adv);
+
+/**
+ * Gets just the identity information associated with a `LegibleDeserializedV0Advertisement`.
+ */
+np_ffi_DeserializedV0Identity np_ffi_LegibleDeserializedV0Advertisement_into_identity(np_ffi_LegibleDeserializedV0Advertisement adv);
+
+/**
+ * Deallocates any internal data of a `LegibleDeserializedV0Advertisement`
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_legible_v0_advertisement(np_ffi_LegibleDeserializedV0Advertisement adv);
+
+/**
+ * Gets the tag of the `DeserializedV0Identity` tagged-union.
+ */
+np_ffi_DeserializedV0IdentityKind np_ffi_DeserializedV0Identity_kind(np_ffi_DeserializedV0Identity identity);
+
+/**
+ * Attempts to get the data-element with the given index in the passed v0 adv payload
+ */
+np_ffi_GetV0DEResult np_ffi_V0Payload_get_de(np_ffi_V0Payload payload, uint8_t index);
+
+/**
+ * Deallocates any internal data of a `V0Payload`
+ */
+np_ffi_DeallocateResult np_ffi_deallocate_v0_payload(np_ffi_V0Payload payload);
+
+/**
+ * Gets the tag of a `GetV0DEResult` tagged-union.
+ */
+np_ffi_GetV0DEResultKind np_ffi_GetV0DEResult_kind(np_ffi_GetV0DEResult result);
+
+/**
+ * Casts a `GetV0DEResult` to the `Success` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_V0DataElement np_ffi_GetV0DEResult_into_SUCCESS(np_ffi_GetV0DEResult result);
+
+/**
+ * Gets the tag of a `V0DataElement` tagged-union.
+ */
+np_ffi_V0DataElementKind np_ffi_V0DataElement_kind(np_ffi_V0DataElement de);
+
+/**
+ * Casts a `V0DataElement` to the `TxPower` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_TxPower np_ffi_V0DataElement_into_TX_POWER(np_ffi_V0DataElement de);
+
+/**
+ * Casts a `V0DataElement` to the `Actions` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_V0Actions np_ffi_V0DataElement_into_ACTIONS(np_ffi_V0DataElement de);
+
+/**
+ * Return whether a boolean action type is set in this data element
+ */
+bool np_ffi_V0Actions_has_action(np_ffi_V0Actions actions, np_ffi_BooleanActionType action_type);
+
+/**
+ * Gets the 4 bit context sync sequence number as a u8 from this data element
+ */
+uint8_t np_ffi_V0Actions_get_context_sync_sequence_number(np_ffi_V0Actions actions);
+
+/**
+ * Return whether a boolean action type is set in this data element
+ */
+uint32_t np_ffi_V0Actions_as_u32(np_ffi_V0Actions actions);
+
+/**
+ * Gets the number of legible sections on a deserialized V1 advertisement.
+ * Suitable as an index bound for the second argument of
+ * `np_ffi_DeserializedV1Advertisement#get_section`.
+ */
+uint8_t np_ffi_DeserializedV1Advertisement_get_num_legible_sections(np_ffi_DeserializedV1Advertisement adv);
+
+/**
+ * Gets the number of sections on a deserialized V1 advertisement which
+ * were unable to be decrypted with the credentials that the receiver possesses.
+ */
+uint8_t np_ffi_DeserializedV1Advertisement_get_num_undecryptable_sections(np_ffi_DeserializedV1Advertisement adv);
+
+/**
+ * Gets the legible section with the given index in a deserialized V1 advertisement.
+ */
+np_ffi_GetV1SectionResult np_ffi_DeserializedV1Advertisement_get_section(np_ffi_DeserializedV1Advertisement adv,
+                                                                         uint8_t legible_section_index);
+
+/**
+ * Gets the tag of the `GetV1SectionResult` tagged-union.
+ */
+np_ffi_GetV1SectionResultKind np_ffi_GetV1SectionResult_kind(np_ffi_GetV1SectionResult result);
+
+/**
+ * Casts a `GetV1SectionResult` to the `Success` variant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_DeserializedV1Section np_ffi_GetV1SectionResult_into_SUCCESS(np_ffi_GetV1SectionResult result);
+
+/**
+ * Gets the number of data elements in a deserialized v1 section.
+ * Suitable as an iteration bound for the second argument of
+ * `np_ffi_DeserializedV1Section_get_de`.
+ */
+uint8_t np_ffi_DeserializedV1Section_get_num_des(np_ffi_DeserializedV1Section section);
+
+/**
+ * Gets the tag of the identity tagged-union used for the passed section.
+ */
+np_ffi_DeserializedV1IdentityKind np_ffi_DeserializedV1Section_get_identity_kind(np_ffi_DeserializedV1Section section);
+
+/**
+ * Gets the data-element with the given index in the passed section.
+ */
+np_ffi_GetV1DEResult np_ffi_DeserializedV1Section_get_de(np_ffi_DeserializedV1Section section,
+                                                         uint8_t de_index);
+
+/**
+ * Gets the tag of the `GetV1DEResult` tagged-union.
+ */
+np_ffi_GetV1DEResultKind np_ffi_GetV1DEResult_kind(np_ffi_GetV1DEResult result);
+
+/**
+ * Casts a `GetV1DEResult` to the `Success` vartiant, panicking in the
+ * case where the passed value is of a different enum variant.
+ */
+np_ffi_V1DataElement np_ffi_GetV1DEResult_into_SUCCESS(np_ffi_GetV1DEResult result);
+
+/**
+ * Converts a `V1DataElement` to a `GenericV1DataElement` which
+ * only maintains information about the DE's type-code and payload.
+ */
+np_ffi_GenericV1DataElement np_ffi_V1DataElement_to_generic(np_ffi_V1DataElement de);
+
+/**
+ * Extracts the numerical value of the given V1 DE type code as
+ * an unsigned 32-bit integer.
+ */
+uint32_t np_ffi_V1DEType_to_uint32_t(np_ffi_V1DEType de_type);
diff --git a/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_functions.h b/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_functions.h
new file mode 100644
index 0000000..3361c5d
--- /dev/null
+++ b/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_functions.h
@@ -0,0 +1,268 @@
+/*
+ Copyright 2023 Google LLC
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#pragma once
+
+/* Generated with cbindgen:0.24.5 */
+
+/*
+ WARNING: this file is autogenerated by cbindgen. Don't modify this manually.
+ Additionally, you should _not_ rely upon the layouts of the generated
+ structs and unions if you want your code to be forward-compatible,
+ unless a given type explicitly states in its documentation that it has
+ a guaranteed forward-compatible layout.
+ Instead, you should use _only_ the provided exported function symbols.
+*/
+
+#include <cstdarg>
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
+#include <new>
+#include "np_cpp_ffi_types.h"
+
+namespace np_ffi {
+namespace internal {
+
+extern "C" {
+
+/// Overrides the global panic handler to be used when NP C FFI calls panic.
+/// This method will only have an effect on the global panic-handler
+/// the first time it's called, and this method will return `true`
+/// to indicate that the panic handler was successfully set.
+/// All subsequent calls to this method
+/// will simply ignore the argument and return `false`.
+///
+/// If the passed function pointer is non-null,
+/// then we will call it upon every panic,
+/// followed by the default panicking behavior for
+/// the platform (in the case where the user-specified
+/// function does not terminate or hang the running process.)
+///
+/// Otherwise, we will resort to the
+/// default panicking behavior for the system, which
+/// is a printed stack trace followed by an abort
+/// when this crate is compiled with `std`,
+/// but a bare `loop { }` when this crate is compiled without.
+bool np_ffi_global_config_panic_handler(void (*handler)(PanicReason));
+
+/// Sets an override to the number of shards to employ in the NP FFI's
+/// internal handle-maps, which places an upper bound on the number
+/// of writing threads which may make progress at any one time
+/// when concurrently accessing handles of the same type.
+///
+/// By default, this value will be set to 16, or in `std` environments,
+/// the minimum of 16 and the number of available hardware threads.
+/// A shard value override of zero will be interpreted the same
+/// as this default.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of _any_ non-`np_ffi_global_config_set`
+/// API call.
+void np_ffi_global_config_set_num_shards(uint8_t num_shards);
+
+/// Sets the maximum number of active handles to credential books
+/// which may be active at any one time.
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on credential books in constrained-memory environments.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call utilizing credential books.
+void np_ffi_global_config_set_max_num_credential_books(uint32_t max_num_credential_books);
+
+/// Sets the maximum number of active handles to deserialized v0
+/// advertisements which may be active at any one time.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on v0 advertisements in constrained-memory environments.
+///
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V0 advertisement.
+void np_ffi_global_config_set_max_num_deserialized_v0_advertisements(uint32_t max_num_deserialized_v0_advertisements);
+
+/// Sets the maximum number of active handles to deserialized v1
+/// advertisements which may be active at any one time.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on v1 advertisements in constrained-memory environments.
+///
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V1 advertisement.
+void np_ffi_global_config_set_max_num_deserialized_v1_advertisements(uint32_t max_num_deserialized_v1_advertisements);
+
+/// Allocates a new credential-book, returning a handle to the created object
+CreateCredentialBookResult np_ffi_create_credential_book();
+
+/// Gets the tag of a `CreateCredentialBookResult` tagged enum.
+CreateCredentialBookResultKind np_ffi_CreateCredentialBookResult_kind(CreateCredentialBookResult result);
+
+/// Casts a `CreateCredentialBookResult` to the `SUCCESS` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+CredentialBook np_ffi_CreateCredentialBookResult_into_SUCCESS(CreateCredentialBookResult result);
+
+/// Deallocates a credential-book by its handle
+DeallocateResult np_ffi_deallocate_credential_book(CredentialBook credential_book);
+
+/// Attempts to deserialize an advertisement with the given service-data
+/// payload (presumed to be under the NP service UUID) using credentials
+/// pulled from the given credential-book.
+DeserializeAdvertisementResult np_ffi_deserialize_advertisement(RawAdvertisementPayload adv_payload,
+                                                                CredentialBook credential_book);
+
+/// Gets the tag of a `DeserializeAdvertisementResult` tagged-union.
+DeserializeAdvertisementResultKind np_ffi_DeserializeAdvertisementResult_kind(DeserializeAdvertisementResult result);
+
+/// Casts a `DeserializeAdvertisementResult` to the `V0` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+DeserializedV0Advertisement np_ffi_DeserializeAdvertisementResult_into_V0(DeserializeAdvertisementResult result);
+
+/// Casts a `DeserializeAdvertisementResult` to the `V1` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+DeserializedV1Advertisement np_ffi_DeserializeAdvertisementResult_into_V1(DeserializeAdvertisementResult result);
+
+/// Deallocates any internal data referenced by a `DeserializeAdvertisementResult`. This should only
+/// be used if into_V0 or into_V1, have not been called yet as it shares the same underlying
+/// resource.
+DeallocateResult np_ffi_deallocate_deserialize_advertisement_result(DeserializeAdvertisementResult result);
+
+/// Deallocates any internal data referenced by a `DeserializedV0Advertisement`
+DeallocateResult np_ffi_deallocate_deserialized_V0_advertisement(DeserializedV0Advertisement adv);
+
+/// Deallocates any internal data referenced by a `DeserializedV1Advertisement`
+DeallocateResult np_ffi_deallocate_deserialized_V1_advertisement(DeserializedV1Advertisement adv);
+
+/// Gets the tag of a `DeserializedV0Advertisement` tagged-union.
+DeserializedV0AdvertisementKind np_ffi_DeserializedV0Advertisement_kind(DeserializedV0Advertisement result);
+
+/// Casts a `DeserializedV0Advertisement` to the `Legible` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+LegibleDeserializedV0Advertisement np_ffi_DeserializedV0Advertisement_into_LEGIBLE(DeserializedV0Advertisement adv);
+
+/// Gets the number of DEs in a legible deserialized advertisement.
+/// Suitable as an iteration bound for `V0Payload#get_de`.
+uint8_t np_ffi_LegibleDeserializedV0Advertisement_get_num_des(LegibleDeserializedV0Advertisement adv);
+
+/// Gets just the data-element payload of a `LegibleDeserializedV0Advertisement`.
+V0Payload np_ffi_LegibleDeserializedV0Advertisement_into_payload(LegibleDeserializedV0Advertisement adv);
+
+/// Gets just the identity information associated with a `LegibleDeserializedV0Advertisement`.
+DeserializedV0Identity np_ffi_LegibleDeserializedV0Advertisement_into_identity(LegibleDeserializedV0Advertisement adv);
+
+/// Deallocates any internal data of a `LegibleDeserializedV0Advertisement`
+DeallocateResult np_ffi_deallocate_legible_v0_advertisement(LegibleDeserializedV0Advertisement adv);
+
+/// Gets the tag of the `DeserializedV0Identity` tagged-union.
+DeserializedV0IdentityKind np_ffi_DeserializedV0Identity_kind(DeserializedV0Identity identity);
+
+/// Attempts to get the data-element with the given index in the passed v0 adv payload
+GetV0DEResult np_ffi_V0Payload_get_de(V0Payload payload, uint8_t index);
+
+/// Deallocates any internal data of a `V0Payload`
+DeallocateResult np_ffi_deallocate_v0_payload(V0Payload payload);
+
+/// Gets the tag of a `GetV0DEResult` tagged-union.
+GetV0DEResultKind np_ffi_GetV0DEResult_kind(GetV0DEResult result);
+
+/// Casts a `GetV0DEResult` to the `Success` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+V0DataElement np_ffi_GetV0DEResult_into_SUCCESS(GetV0DEResult result);
+
+/// Gets the tag of a `V0DataElement` tagged-union.
+V0DataElementKind np_ffi_V0DataElement_kind(V0DataElement de);
+
+/// Casts a `V0DataElement` to the `TxPower` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+TxPower np_ffi_V0DataElement_into_TX_POWER(V0DataElement de);
+
+/// Casts a `V0DataElement` to the `Actions` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+V0Actions np_ffi_V0DataElement_into_ACTIONS(V0DataElement de);
+
+/// Return whether a boolean action type is set in this data element
+bool np_ffi_V0Actions_has_action(V0Actions actions, BooleanActionType action_type);
+
+/// Gets the 4 bit context sync sequence number as a u8 from this data element
+uint8_t np_ffi_V0Actions_get_context_sync_sequence_number(V0Actions actions);
+
+/// Return whether a boolean action type is set in this data element
+uint32_t np_ffi_V0Actions_as_u32(V0Actions actions);
+
+/// Gets the number of legible sections on a deserialized V1 advertisement.
+/// Suitable as an index bound for the second argument of
+/// `np_ffi_DeserializedV1Advertisement#get_section`.
+uint8_t np_ffi_DeserializedV1Advertisement_get_num_legible_sections(DeserializedV1Advertisement adv);
+
+/// Gets the number of sections on a deserialized V1 advertisement which
+/// were unable to be decrypted with the credentials that the receiver possesses.
+uint8_t np_ffi_DeserializedV1Advertisement_get_num_undecryptable_sections(DeserializedV1Advertisement adv);
+
+/// Gets the legible section with the given index in a deserialized V1 advertisement.
+GetV1SectionResult np_ffi_DeserializedV1Advertisement_get_section(DeserializedV1Advertisement adv,
+                                                                  uint8_t legible_section_index);
+
+/// Gets the tag of the `GetV1SectionResult` tagged-union.
+GetV1SectionResultKind np_ffi_GetV1SectionResult_kind(GetV1SectionResult result);
+
+/// Casts a `GetV1SectionResult` to the `Success` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+DeserializedV1Section np_ffi_GetV1SectionResult_into_SUCCESS(GetV1SectionResult result);
+
+/// Gets the number of data elements in a deserialized v1 section.
+/// Suitable as an iteration bound for the second argument of
+/// `np_ffi_DeserializedV1Section_get_de`.
+uint8_t np_ffi_DeserializedV1Section_get_num_des(DeserializedV1Section section);
+
+/// Gets the tag of the identity tagged-union used for the passed section.
+DeserializedV1IdentityKind np_ffi_DeserializedV1Section_get_identity_kind(DeserializedV1Section section);
+
+/// Gets the data-element with the given index in the passed section.
+GetV1DEResult np_ffi_DeserializedV1Section_get_de(DeserializedV1Section section, uint8_t de_index);
+
+/// Gets the tag of the `GetV1DEResult` tagged-union.
+GetV1DEResultKind np_ffi_GetV1DEResult_kind(GetV1DEResult result);
+
+/// Casts a `GetV1DEResult` to the `Success` vartiant, panicking in the
+/// case where the passed value is of a different enum variant.
+V1DataElement np_ffi_GetV1DEResult_into_SUCCESS(GetV1DEResult result);
+
+/// Converts a `V1DataElement` to a `GenericV1DataElement` which
+/// only maintains information about the DE's type-code and payload.
+GenericV1DataElement np_ffi_V1DataElement_to_generic(V1DataElement de);
+
+/// Extracts the numerical value of the given V1 DE type code as
+/// an unsigned 32-bit integer.
+uint32_t np_ffi_V1DEType_to_uint32_t(V1DEType de_type);
+
+} // extern "C"
+
+} // namespace internal
+} // namespace np_ffi
diff --git a/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_types.h b/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_types.h
new file mode 100644
index 0000000..4d66308
--- /dev/null
+++ b/nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_types.h
@@ -0,0 +1,456 @@
+/*
+ Copyright 2023 Google LLC
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+
+#pragma once
+
+/* Generated with cbindgen:0.24.5 */
+
+/*
+ WARNING: this file is autogenerated by cbindgen. Don't modify this manually.
+ Additionally, you should _not_ rely upon the layouts of the generated
+ structs and unions if you want your code to be forward-compatible,
+ unless a given type explicitly states in its documentation that it has
+ a guaranteed forward-compatible layout.
+ Instead, you should use _only_ the provided exported function symbols.
+*/
+
+#include <cstdarg>
+#include <cstdint>
+#include <cstdlib>
+#include <ostream>
+#include <new>
+
+namespace np_ffi {
+namespace internal {
+
+/// The possible boolean action types which can be present in an Actions data element
+enum class BooleanActionType : uint8_t {
+  ActiveUnlock = 8,
+  NearbyShare = 9,
+  InstantTethering = 10,
+  PhoneHub = 11,
+  PresenceManager = 12,
+  Finder = 13,
+  FastPairSass = 14,
+};
+
+/// Discriminant for `CreateCredentialBookResult`
+enum class CreateCredentialBookResultKind : uint8_t {
+  /// There was no space left to create a new credential book
+  NoSpaceLeft = 0,
+  /// We created a new credential book behind the given handle.
+  /// The associated payload may be obtained via
+  /// `CreateCredentialBookResult#into_success()`.
+  Success = 1,
+};
+
+/// A result-type enum which tells the caller whether/not a deallocation
+/// succeeded or failed due to the requested handle not being present.
+enum class DeallocateResult {
+  /// The requested handle to deallocate was not present in the map
+  NotPresent = 0,
+  /// The object behind the handle was successfully deallocated
+  Success = 1,
+};
+
+/// Discriminant for `DeserializeAdvertisementResult`.
+enum class DeserializeAdvertisementResultKind : uint8_t {
+  /// Deserializing the advertisement failed, for some reason or another.
+  Error = 0,
+  /// The advertisement was correctly deserialized, and it's a V0 advertisement.
+  /// `DeserializeAdvertisementResult#into_v0()` is the corresponding cast
+  /// to the associated enum variant.
+  V0 = 1,
+  /// The advertisement was correctly deserialized, and it's a V1 advertisement.
+  /// `DeserializeAdvertisementResult#into_v1()` is the corresponding cast
+  /// to the associated enum variant.
+  V1 = 2,
+};
+
+/// Discriminant for possible results of V0 advertisement deserialization
+enum class DeserializedV0AdvertisementKind : uint8_t {
+  /// The deserialized V0 advertisement was legible.
+  /// The associated payload may be obtained via
+  /// `DeserializedV0Advertisement#into_legible`.
+  Legible = 0,
+  /// The deserialized V0 advertisement is illegible,
+  /// likely meaning that the receiver does not hold
+  /// the proper credentials to be able to read
+  /// the received advertisement.
+  NoMatchingCredentials = 1,
+};
+
+/// Represents deserialized information about the V0 identity utilized
+/// by a deserialized V0 advertisement
+enum class DeserializedV0Identity {
+  Plaintext,
+  Decrypted,
+};
+
+/// Discriminant for `DeserializedV0Identity`.
+enum class DeserializedV0IdentityKind : uint8_t {
+  /// The deserialized identity was a plaintext identity.
+  Plaintext = 0,
+  /// The deserialized identity was some decrypted identity.
+  Decrypted = 1,
+};
+
+/// Discriminant for `DeserializedV1Identity`.
+enum class DeserializedV1IdentityKind : uint8_t {
+  /// The deserialized v1 identity was plaintext
+  Plaintext = 0,
+  /// The deserialized v1 identity corresponded
+  /// to some kind of decrypted identity.
+  Decrypted = 1,
+};
+
+/// Discriminant of `GetV0DEResult`.
+enum class GetV0DEResultKind : uint8_t {
+  /// The attempt to get the DE succeeded.
+  /// The associated payload may be obtained via
+  /// `GetV0DEResult#into_success`.
+  Success = 0,
+  /// The attempt to get the DE failed,
+  /// possibly due to the requested index being
+  /// out-of-bounds or due to the advertisement
+  /// having been previously deallocated.
+  Error = 1,
+};
+
+/// Discriminant for the `GetV1DEResult` enum.
+enum class GetV1DEResultKind : uint8_t {
+  /// Attempting to get the DE at the given position failed,
+  /// possibly due to the index being out-of-bounds or due
+  /// to the whole advertisement having been previously deallocated.
+  Error = 0,
+  /// Attempting to get the DE at the given position succeeded.
+  /// The underlying DE may be extracted with `GetV1DEResult#into_success`.
+  Success = 1,
+};
+
+/// Discriminant for `GetV1SectionResult`
+enum class GetV1SectionResultKind : uint8_t {
+  /// The attempt to get the section failed,
+  /// possibly due to the section index being
+  /// out-of-bounds or due to the underlying
+  /// advertisement having already been deallocated.
+  Error = 0,
+  /// The attempt to get the section succeeded.
+  /// The wrapped section may be obtained via
+  /// `GetV1SectionResult#into_success`.
+  Success = 1,
+};
+
+/// Structure for categorized reasons for why a NP C FFI call may
+/// be panicking.
+enum class PanicReason : uint8_t {
+  /// Some enum cast to a variant failed. Utilized
+  /// for failed enum casts of all enums.
+  ///
+  /// (That is, this is the catch-all panic reason for enum
+  /// casts where there is not a more specific reason
+  /// in some other variant of this enum.)
+  EnumCastFailed = 0,
+  /// The panic handler is used to assert conditions are true to avoid programmer errors.
+  /// If a failed assert condition is hit, this panic handler is invoked with this reason.
+  AssertFailed = 1,
+  /// Error returned if action bits inside of a V0Actions struct are invalid. If the struct was
+  /// created by this deserializer, the bits will always be valid, they are only invalid if
+  /// a user reaches in and changes them to something invalid.
+  InvalidActionBits = 2,
+};
+
+/// Discriminant for `V0DataElement`.
+enum class V0DataElementKind : uint8_t {
+  /// A transmission Power (Tx Power) data-element.
+  /// The associated payload may be obtained via
+  /// `V0DataElement#into_tx_power`.
+  TxPower = 0,
+  /// The Actions data-element.
+  /// The associated payload may be obtained via
+  /// `V0DataElement#into_actions`.
+  Actions = 1,
+};
+
+///A `#[repr(C)]` handle to a value of type `super::CredentialBookInternals`.
+struct CredentialBook {
+  uint64_t handle_id;
+};
+
+/// Result type for `create_credential_book`
+union CreateCredentialBookResult {
+  enum class Tag : uint8_t {
+    NoSpaceLeft = 0,
+    Success = 1,
+  };
+
+  struct Success_Body {
+    Tag tag;
+    CredentialBook _0;
+  };
+
+  struct {
+    Tag tag;
+  };
+  Success_Body success;
+};
+
+///A `#[repr(C)]` handle to a value of type `super::V0PayloadInternals`.
+struct V0Payload {
+  uint64_t handle_id;
+};
+
+/// Represents a deserialized V0 advertisement whose DE contents may be read
+struct LegibleDeserializedV0Advertisement {
+  uint8_t num_des;
+  V0Payload payload;
+  DeserializedV0Identity identity;
+};
+
+/// Represents a deserialized V0 advertisement
+struct DeserializedV0Advertisement {
+  enum class Tag {
+    Legible,
+    NoMatchingCredentials,
+  };
+
+  struct Legible_Body {
+    LegibleDeserializedV0Advertisement _0;
+  };
+
+  Tag tag;
+  union {
+    Legible_Body legible;
+  };
+};
+
+///A `#[repr(C)]` handle to a value of type `super::LegibleV1SectionsInternals`.
+struct LegibleV1Sections {
+  uint64_t handle_id;
+};
+
+/// Representation of a deserialized V1 advertisement
+struct DeserializedV1Advertisement {
+  uint8_t num_legible_sections;
+  uint8_t num_undecryptable_sections;
+  LegibleV1Sections legible_sections;
+};
+
+/// The result of calling `np_ffi_deserialize_advertisement`.
+/// Must be explicitly deallocated after use with
+/// a corresponding `np_ffi_deallocate_deserialize_advertisement_result`
+union DeserializeAdvertisementResult {
+  enum class Tag : uint8_t {
+    /// Deserializing the advertisement failed, for some reason or another.
+    /// `DeserializeAdvertisementResultKind::Error` is the associated enum tag.
+    Error,
+    /// The advertisement was correctly deserialized, and it's a V0 advertisement.
+    /// `DeserializeAdvertisementResultKind::V0` is the associated enum tag.
+    V0,
+    /// The advertisement was correctly deserialized, and it's a V1 advertisement.
+    /// `DeserializeAdvertisementResultKind::V1` is the associated enum tag.
+    V1,
+  };
+
+  struct V0_Body {
+    Tag tag;
+    DeserializedV0Advertisement _0;
+  };
+
+  struct V1_Body {
+    Tag tag;
+    DeserializedV1Advertisement _0;
+  };
+
+  struct {
+    Tag tag;
+  };
+  V0_Body v0;
+  V1_Body v1;
+};
+
+/// A byte-string with a maximum size of N,
+/// where only the first `len` bytes are considered
+/// to contain the actual payload. N is only
+/// permitted to be between 0 and 255.
+template<uintptr_t N>
+struct ByteBuffer {
+  uint8_t len;
+  uint8_t bytes[N];
+};
+
+/// Represents the raw contents of the service payload data
+/// under the Nearby Presence service UUID
+struct RawAdvertisementPayload {
+  ByteBuffer<255> bytes;
+};
+
+/// Representation of a transmission power,
+/// as used for the Tx Power DE in V0 and V1.
+struct TxPower {
+  int8_t tx_power;
+};
+
+/// The bitfield data of a VOActions data element
+struct V0ActionBits {
+  uint32_t bitfield;
+};
+
+/// Representation of the Actions DE in V0.
+struct V0Actions {
+  enum class Tag {
+    /// A set of action bits which were present in a plaintext identity advertisement
+    Plaintext,
+    /// A set of action bits which were present in a encrypted identity advertisement
+    Encrypted,
+  };
+
+  struct Plaintext_Body {
+    V0ActionBits _0;
+  };
+
+  struct Encrypted_Body {
+    V0ActionBits _0;
+  };
+
+  Tag tag;
+  union {
+    Plaintext_Body plaintext;
+    Encrypted_Body encrypted;
+  };
+};
+
+/// Representation of a V0 data element.
+struct V0DataElement {
+  enum class Tag {
+    TxPower,
+    Actions,
+  };
+
+  struct TxPower_Body {
+    TxPower _0;
+  };
+
+  struct Actions_Body {
+    V0Actions _0;
+  };
+
+  Tag tag;
+  union {
+    TxPower_Body tx_power;
+    Actions_Body actions;
+  };
+};
+
+/// The result of `V0Payload#get_de`.
+struct GetV0DEResult {
+  enum class Tag {
+    Success,
+    Error,
+  };
+
+  struct Success_Body {
+    V0DataElement _0;
+  };
+
+  Tag tag;
+  union {
+    Success_Body success;
+  };
+};
+
+/// Handle to a deserialized V1 section
+struct DeserializedV1Section {
+  LegibleV1Sections legible_sections_handle;
+  uint8_t legible_section_index;
+  uint8_t num_des;
+  DeserializedV1IdentityKind identity_tag;
+};
+
+/// The result of attempting to get a particular V1 section
+/// from its' index within the list of legible sections
+/// via `DeserializedV1Advertisement::get_section`.
+struct GetV1SectionResult {
+  enum class Tag {
+    Error,
+    Success,
+  };
+
+  struct Success_Body {
+    DeserializedV1Section _0;
+  };
+
+  Tag tag;
+  union {
+    Success_Body success;
+  };
+};
+
+/// Representation of the data-element type tag
+/// of a V1 data element.
+struct V1DEType {
+  uint32_t code;
+};
+
+/// FFI-transmissible representation of a generic V1 data-element.
+/// This representation is stable, and so you may directly
+/// reference this struct's fields if you wish.
+struct GenericV1DataElement {
+  /// The DE type code of this generic data-element.
+  V1DEType de_type;
+  /// The raw data-element byte payload, up to
+  /// 127 bytes in length.
+  ByteBuffer<127> payload;
+};
+
+/// FFI-transmissible representation of a V1 data-element
+struct V1DataElement {
+  enum class Tag {
+    /// A "generic" V1 data-element, for which we have no
+    /// particular information about its schema (just
+    /// a DE type code and a byte payload.)
+    Generic,
+  };
+
+  struct Generic_Body {
+    GenericV1DataElement _0;
+  };
+
+  Tag tag;
+  union {
+    Generic_Body generic;
+  };
+};
+
+/// Represents the result of the `DeserializedV1Section#get_de` operation.
+struct GetV1DEResult {
+  enum class Tag {
+    Error,
+    Success,
+  };
+
+  struct Success_Body {
+    V1DataElement _0;
+  };
+
+  Tag tag;
+  union {
+    Success_Body success;
+  };
+};
+
+} // namespace internal
+} // namespace np_ffi
diff --git a/nearby/presence/np_c_ffi/rust-toolchain.toml b/nearby/presence/np_c_ffi/rust-toolchain.toml
new file mode 100644
index 0000000..271800c
--- /dev/null
+++ b/nearby/presence/np_c_ffi/rust-toolchain.toml
@@ -0,0 +1,2 @@
+[toolchain]
+channel = "nightly"
\ No newline at end of file
diff --git a/nearby/presence/np_c_ffi/src/credentials.rs b/nearby/presence/np_c_ffi/src/credentials.rs
new file mode 100644
index 0000000..6b60545
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/credentials.rs
@@ -0,0 +1,51 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Credential-related data-types and functions
+
+use crate::{unwrap, PanicReason};
+use np_ffi_core::common::*;
+use np_ffi_core::credentials::credential_book::CredentialBook;
+use np_ffi_core::credentials::*;
+use np_ffi_core::utils::FfiEnum;
+
+/// Allocates a new credential-book, returning a handle to the created object
+#[no_mangle]
+pub extern "C" fn np_ffi_create_credential_book() -> CreateCredentialBookResult {
+    create_credential_book()
+}
+
+/// Gets the tag of a `CreateCredentialBookResult` tagged enum.
+#[no_mangle]
+pub extern "C" fn np_ffi_CreateCredentialBookResult_kind(
+    result: CreateCredentialBookResult,
+) -> CreateCredentialBookResultKind {
+    result.kind()
+}
+
+/// Casts a `CreateCredentialBookResult` to the `SUCCESS` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_CreateCredentialBookResult_into_SUCCESS(
+    result: CreateCredentialBookResult,
+) -> CredentialBook {
+    unwrap(result.into_success(), PanicReason::EnumCastFailed)
+}
+
+/// Deallocates a credential-book by its handle
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_credential_book(
+    credential_book: CredentialBook,
+) -> DeallocateResult {
+    deallocate_credential_book(credential_book)
+}
diff --git a/nearby/presence/np_c_ffi/src/deserialize/mod.rs b/nearby/presence/np_c_ffi/src/deserialize/mod.rs
new file mode 100644
index 0000000..9f2cea8
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/deserialize/mod.rs
@@ -0,0 +1,87 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crate::{unwrap, PanicReason};
+use np_ffi_core::common::*;
+use np_ffi_core::credentials::credential_book::CredentialBook;
+use np_ffi_core::deserialize::v0::*;
+use np_ffi_core::deserialize::v1::*;
+use np_ffi_core::deserialize::*;
+use np_ffi_core::utils::FfiEnum;
+
+mod v0;
+mod v1;
+
+/// Attempts to deserialize an advertisement with the given service-data
+/// payload (presumed to be under the NP service UUID) using credentials
+/// pulled from the given credential-book.
+#[no_mangle]
+pub extern "C" fn np_ffi_deserialize_advertisement(
+    adv_payload: RawAdvertisementPayload,
+    credential_book: CredentialBook,
+) -> DeserializeAdvertisementResult {
+    deserialize_advertisement(&adv_payload, credential_book)
+}
+
+/// Gets the tag of a `DeserializeAdvertisementResult` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializeAdvertisementResult_kind(
+    result: DeserializeAdvertisementResult,
+) -> DeserializeAdvertisementResultKind {
+    result.kind()
+}
+
+/// Casts a `DeserializeAdvertisementResult` to the `V0` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializeAdvertisementResult_into_V0(
+    result: DeserializeAdvertisementResult,
+) -> DeserializedV0Advertisement {
+    unwrap(result.into_v0(), PanicReason::EnumCastFailed)
+}
+
+/// Casts a `DeserializeAdvertisementResult` to the `V1` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializeAdvertisementResult_into_V1(
+    result: DeserializeAdvertisementResult,
+) -> DeserializedV1Advertisement {
+    unwrap(result.into_v1(), PanicReason::EnumCastFailed)
+}
+
+/// Deallocates any internal data referenced by a `DeserializeAdvertisementResult`. This should only
+/// be used if into_V0 or into_V1, have not been called yet as it shares the same underlying
+/// resource.
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_deserialize_advertisement_result(
+    result: DeserializeAdvertisementResult,
+) -> DeallocateResult {
+    result.deallocate()
+}
+
+/// Deallocates any internal data referenced by a `DeserializedV0Advertisement`
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_deserialized_V0_advertisement(
+    adv: DeserializedV0Advertisement,
+) -> DeallocateResult {
+    adv.deallocate()
+}
+
+/// Deallocates any internal data referenced by a `DeserializedV1Advertisement`
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_deserialized_V1_advertisement(
+    adv: DeserializedV1Advertisement,
+) -> DeallocateResult {
+    adv.deallocate()
+}
diff --git a/nearby/presence/np_c_ffi/src/deserialize/v0.rs b/nearby/presence/np_c_ffi/src/deserialize/v0.rs
new file mode 100644
index 0000000..877cee5
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/deserialize/v0.rs
@@ -0,0 +1,149 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crate::{panic, unwrap, PanicReason};
+use np_ffi_core::common::DeallocateResult;
+use np_ffi_core::deserialize::v0::v0_payload::V0Payload;
+use np_ffi_core::deserialize::v0::*;
+use np_ffi_core::utils::FfiEnum;
+
+/// Gets the tag of a `DeserializedV0Advertisement` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV0Advertisement_kind(
+    result: DeserializedV0Advertisement,
+) -> DeserializedV0AdvertisementKind {
+    result.kind()
+}
+
+/// Casts a `DeserializedV0Advertisement` to the `Legible` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV0Advertisement_into_LEGIBLE(
+    adv: DeserializedV0Advertisement,
+) -> LegibleDeserializedV0Advertisement {
+    unwrap(adv.into_legible(), PanicReason::EnumCastFailed)
+}
+
+/// Gets the number of DEs in a legible deserialized advertisement.
+/// Suitable as an iteration bound for `V0Payload#get_de`.
+#[no_mangle]
+pub extern "C" fn np_ffi_LegibleDeserializedV0Advertisement_get_num_des(
+    adv: LegibleDeserializedV0Advertisement,
+) -> u8 {
+    adv.num_des()
+}
+
+/// Gets just the data-element payload of a `LegibleDeserializedV0Advertisement`.
+#[no_mangle]
+pub extern "C" fn np_ffi_LegibleDeserializedV0Advertisement_into_payload(
+    adv: LegibleDeserializedV0Advertisement,
+) -> V0Payload {
+    adv.into_payload()
+}
+
+/// Gets just the identity information associated with a `LegibleDeserializedV0Advertisement`.
+#[no_mangle]
+pub extern "C" fn np_ffi_LegibleDeserializedV0Advertisement_into_identity(
+    adv: LegibleDeserializedV0Advertisement,
+) -> DeserializedV0Identity {
+    adv.into_identity()
+}
+
+/// Deallocates any internal data of a `LegibleDeserializedV0Advertisement`
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_legible_v0_advertisement(
+    adv: LegibleDeserializedV0Advertisement,
+) -> DeallocateResult {
+    adv.deallocate()
+}
+
+/// Gets the tag of the `DeserializedV0Identity` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV0Identity_kind(
+    identity: DeserializedV0Identity,
+) -> DeserializedV0IdentityKind {
+    identity.kind()
+}
+
+/// Attempts to get the data-element with the given index in the passed v0 adv payload
+#[no_mangle]
+pub extern "C" fn np_ffi_V0Payload_get_de(payload: V0Payload, index: u8) -> GetV0DEResult {
+    payload.get_de(index)
+}
+
+/// Deallocates any internal data of a `V0Payload`
+#[no_mangle]
+pub extern "C" fn np_ffi_deallocate_v0_payload(payload: V0Payload) -> DeallocateResult {
+    payload.deallocate_payload()
+}
+
+/// Gets the tag of a `GetV0DEResult` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV0DEResult_kind(result: GetV0DEResult) -> GetV0DEResultKind {
+    result.kind()
+}
+
+/// Casts a `GetV0DEResult` to the `Success` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV0DEResult_into_SUCCESS(result: GetV0DEResult) -> V0DataElement {
+    unwrap(result.into_success(), PanicReason::EnumCastFailed)
+}
+
+/// Gets the tag of a `V0DataElement` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_V0DataElement_kind(de: V0DataElement) -> V0DataElementKind {
+    de.kind()
+}
+
+/// Casts a `V0DataElement` to the `TxPower` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_V0DataElement_into_TX_POWER(de: V0DataElement) -> TxPower {
+    unwrap(de.into_tx_power(), PanicReason::EnumCastFailed)
+}
+
+/// Casts a `V0DataElement` to the `Actions` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_V0DataElement_into_ACTIONS(de: V0DataElement) -> V0Actions {
+    unwrap(de.into_actions(), PanicReason::EnumCastFailed)
+}
+
+/// Return whether a boolean action type is set in this data element
+#[no_mangle]
+pub extern "C" fn np_ffi_V0Actions_has_action(
+    actions: V0Actions,
+    action_type: BooleanActionType,
+) -> bool {
+    match actions.has_action(&action_type) {
+        Ok(b) => b,
+        Err(_) => panic(PanicReason::InvalidActionBits),
+    }
+}
+
+/// Gets the 4 bit context sync sequence number as a u8 from this data element
+#[no_mangle]
+pub extern "C" fn np_ffi_V0Actions_get_context_sync_sequence_number(actions: V0Actions) -> u8 {
+    match actions.get_context_sync_seq_num() {
+        Ok(b) => b,
+        Err(_) => panic(PanicReason::InvalidActionBits),
+    }
+}
+
+/// Return whether a boolean action type is set in this data element
+#[no_mangle]
+pub extern "C" fn np_ffi_V0Actions_as_u32(actions: V0Actions) -> u32 {
+    actions.as_u32()
+}
diff --git a/nearby/presence/np_c_ffi/src/deserialize/v1.rs b/nearby/presence/np_c_ffi/src/deserialize/v1.rs
new file mode 100644
index 0000000..dc682a3
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/deserialize/v1.rs
@@ -0,0 +1,114 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+use crate::{unwrap, PanicReason};
+use np_ffi_core::deserialize::v1::*;
+use np_ffi_core::utils::FfiEnum;
+
+/// Gets the number of legible sections on a deserialized V1 advertisement.
+/// Suitable as an index bound for the second argument of
+/// `np_ffi_DeserializedV1Advertisement#get_section`.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Advertisement_get_num_legible_sections(
+    adv: DeserializedV1Advertisement,
+) -> u8 {
+    adv.num_legible_sections()
+}
+
+/// Gets the number of sections on a deserialized V1 advertisement which
+/// were unable to be decrypted with the credentials that the receiver possesses.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Advertisement_get_num_undecryptable_sections(
+    adv: DeserializedV1Advertisement,
+) -> u8 {
+    adv.num_undecryptable_sections()
+}
+
+/// Gets the legible section with the given index in a deserialized V1 advertisement.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Advertisement_get_section(
+    adv: DeserializedV1Advertisement,
+    legible_section_index: u8,
+) -> GetV1SectionResult {
+    adv.get_section(legible_section_index)
+}
+
+/// Gets the tag of the `GetV1SectionResult` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV1SectionResult_kind(
+    result: GetV1SectionResult,
+) -> GetV1SectionResultKind {
+    result.kind()
+}
+
+/// Casts a `GetV1SectionResult` to the `Success` variant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV1SectionResult_into_SUCCESS(
+    result: GetV1SectionResult,
+) -> DeserializedV1Section {
+    unwrap(result.into_success(), PanicReason::EnumCastFailed)
+}
+
+/// Gets the number of data elements in a deserialized v1 section.
+/// Suitable as an iteration bound for the second argument of
+/// `np_ffi_DeserializedV1Section_get_de`.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Section_get_num_des(section: DeserializedV1Section) -> u8 {
+    section.num_des()
+}
+
+/// Gets the tag of the identity tagged-union used for the passed section.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Section_get_identity_kind(
+    section: DeserializedV1Section,
+) -> DeserializedV1IdentityKind {
+    section.identity_kind()
+}
+
+/// Gets the data-element with the given index in the passed section.
+#[no_mangle]
+pub extern "C" fn np_ffi_DeserializedV1Section_get_de(
+    section: DeserializedV1Section,
+    de_index: u8,
+) -> GetV1DEResult {
+    section.get_de(de_index)
+}
+
+/// Gets the tag of the `GetV1DEResult` tagged-union.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV1DEResult_kind(result: GetV1DEResult) -> GetV1DEResultKind {
+    result.kind()
+}
+
+/// Casts a `GetV1DEResult` to the `Success` vartiant, panicking in the
+/// case where the passed value is of a different enum variant.
+#[no_mangle]
+pub extern "C" fn np_ffi_GetV1DEResult_into_SUCCESS(result: GetV1DEResult) -> V1DataElement {
+    unwrap(result.into_success(), PanicReason::EnumCastFailed)
+}
+
+/// Converts a `V1DataElement` to a `GenericV1DataElement` which
+/// only maintains information about the DE's type-code and payload.
+#[no_mangle]
+pub extern "C" fn np_ffi_V1DataElement_to_generic(de: V1DataElement) -> GenericV1DataElement {
+    de.to_generic()
+}
+
+/// Extracts the numerical value of the given V1 DE type code as
+/// an unsigned 32-bit integer.
+#[no_mangle]
+pub extern "C" fn np_ffi_V1DEType_to_uint32_t(de_type: V1DEType) -> u32 {
+    de_type.to_u32()
+}
diff --git a/nearby/presence/np_c_ffi/src/lib.rs b/nearby/presence/np_c_ffi/src/lib.rs
new file mode 100644
index 0000000..bd475ab
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/lib.rs
@@ -0,0 +1,221 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! NP Rust C FFI
+
+#![cfg_attr(not(test), no_std)]
+#![allow(dead_code)]
+extern crate alloc;
+extern crate core;
+
+pub mod credentials;
+pub mod deserialize;
+
+/// Structure for categorized reasons for why a NP C FFI call may
+/// be panicking.
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum PanicReason {
+    /// Some enum cast to a variant failed. Utilized
+    /// for failed enum casts of all enums.
+    ///
+    /// (That is, this is the catch-all panic reason for enum
+    /// casts where there is not a more specific reason
+    /// in some other variant of this enum.)
+    EnumCastFailed = 0,
+    /// The panic handler is used to assert conditions are true to avoid programmer errors.
+    /// If a failed assert condition is hit, this panic handler is invoked with this reason.
+    AssertFailed = 1,
+    /// Error returned if action bits inside of a V0Actions struct are invalid. If the struct was
+    /// created by this deserializer, the bits will always be valid, they are only invalid if
+    /// a user reaches in and changes them to something invalid.
+    InvalidActionBits = 2,
+}
+
+/// Structure which maintains information about the panic-handler
+/// for panicking calls in the NP C FFI.
+#[derive(Debug)]
+struct PanicHandler {
+    /// Optional function-pointer to client-specified panic behavior.
+    handler: Option<unsafe extern "C" fn(PanicReason) -> ()>,
+
+    /// Fuse to prevent setting the panic-handler more than once.
+    /// We do not use the presence/absence of `self.handler` for this,
+    /// since it's possible for the client to explicitly pass "NULL"
+    /// to set the panic-handler to the platform-default (and ensure
+    /// that the panic-handler never changes from the platform-default.)
+    handler_set_by_client: bool,
+}
+
+impl PanicHandler {
+    pub(crate) const fn new() -> Self {
+        Self { handler: None, handler_set_by_client: false }
+    }
+    pub(crate) fn set_handler(
+        &mut self,
+        handler: Option<unsafe extern "C" fn(PanicReason) -> ()>,
+    ) -> bool {
+        // Only allow setting the panic handler once
+        if !self.handler_set_by_client {
+            self.handler = handler;
+            self.handler_set_by_client = true;
+            true
+        } else {
+            false
+        }
+    }
+    pub(crate) fn panic(&self, panic_reason: PanicReason) -> ! {
+        if let Some(handler) = self.handler {
+            unsafe { handler(panic_reason) }
+        }
+        Self::system_handler(panic_reason)
+    }
+    #[cfg(feature = "std")]
+    fn system_handler(panic_reason: PanicReason) -> ! {
+        eprintln!("NP FFI Panicked: {:?}", panic_reason);
+        let backtrace = std::backtrace::Backtrace::capture();
+        eprintln!("Stack trace: {}", backtrace);
+        std::process::abort!();
+    }
+    #[cfg(not(feature = "std"))]
+    #[allow(clippy::empty_loop)]
+    fn system_handler(_: PanicReason) -> ! {
+        // Looping is the only platform-independent thing
+        // that we can really do in this scenario.
+        // (Even clippy's explanation for the empty-loop
+        // lint mentions platform-specific intrinsics
+        // as being the only true way to avoid this
+        // in a no_std environment.)
+        loop {}
+    }
+}
+
+static PANIC_HANDLER: spin::RwLock<PanicHandler> = spin::RwLock::new(PanicHandler::new());
+
+pub(crate) fn panic(reason: PanicReason) -> ! {
+    PANIC_HANDLER.read().panic(reason)
+}
+
+pub(crate) fn unwrap<T>(value: Option<T>, panic_reason: PanicReason) -> T {
+    match value {
+        Some(x) => x,
+        None => panic(panic_reason),
+    }
+}
+
+/// Overrides the global panic handler to be used when NP C FFI calls panic.
+/// This method will only have an effect on the global panic-handler
+/// the first time it's called, and this method will return `true`
+/// to indicate that the panic handler was successfully set.
+/// All subsequent calls to this method
+/// will simply ignore the argument and return `false`.
+///
+/// If the passed function pointer is non-null,
+/// then we will call it upon every panic,
+/// followed by the default panicking behavior for
+/// the platform (in the case where the user-specified
+/// function does not terminate or hang the running process.)
+///
+/// Otherwise, we will resort to the
+/// default panicking behavior for the system, which
+/// is a printed stack trace followed by an abort
+/// when this crate is compiled with `std`,
+/// but a bare `loop { }` when this crate is compiled without.
+#[no_mangle]
+pub extern "C" fn np_ffi_global_config_panic_handler(
+    handler: Option<unsafe extern "C" fn(PanicReason) -> ()>,
+) -> bool {
+    let mut panic_handler = PANIC_HANDLER.write();
+    panic_handler.set_handler(handler)
+}
+
+/// Sets an override to the number of shards to employ in the NP FFI's
+/// internal handle-maps, which places an upper bound on the number
+/// of writing threads which may make progress at any one time
+/// when concurrently accessing handles of the same type.
+///
+/// By default, this value will be set to 16, or in `std` environments,
+/// the minimum of 16 and the number of available hardware threads.
+/// A shard value override of zero will be interpreted the same
+/// as this default.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of _any_ non-`np_ffi_global_config_set`
+/// API call.
+#[no_mangle]
+pub extern "C" fn np_ffi_global_config_set_num_shards(num_shards: u8) {
+    np_ffi_core::common::global_config_set_num_shards(num_shards)
+}
+
+/// Sets the maximum number of active handles to credential books
+/// which may be active at any one time.
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on credential books in constrained-memory environments.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call utilizing credential books.
+#[no_mangle]
+pub extern "C" fn np_ffi_global_config_set_max_num_credential_books(max_num_credential_books: u32) {
+    np_ffi_core::common::global_config_set_max_num_credential_books(max_num_credential_books)
+}
+
+/// Sets the maximum number of active handles to deserialized v0
+/// advertisements which may be active at any one time.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on v0 advertisements in constrained-memory environments.
+///
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V0 advertisement.
+#[no_mangle]
+pub extern "C" fn np_ffi_global_config_set_max_num_deserialized_v0_advertisements(
+    max_num_deserialized_v0_advertisements: u32,
+) {
+    np_ffi_core::common::global_config_set_max_num_deserialized_v0_advertisements(
+        max_num_deserialized_v0_advertisements,
+    )
+}
+
+/// Sets the maximum number of active handles to deserialized v1
+/// advertisements which may be active at any one time.
+///
+/// Useful for bounding the maximum memory used by the client application
+/// on v1 advertisements in constrained-memory environments.
+///
+/// Default value: Max value.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V1 advertisement.
+#[no_mangle]
+pub extern "C" fn np_ffi_global_config_set_max_num_deserialized_v1_advertisements(
+    max_num_deserialized_v1_advertisements: u32,
+) {
+    np_ffi_core::common::global_config_set_max_num_deserialized_v1_advertisements(
+        max_num_deserialized_v1_advertisements,
+    )
+}
diff --git a/nearby/presence/np_cpp_ffi/CMakeLists.txt b/nearby/presence/np_cpp_ffi/CMakeLists.txt
new file mode 100644
index 0000000..27c9132
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/CMakeLists.txt
@@ -0,0 +1,48 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# include ABSL third_party dir which will add it to the cmake build tree
+set(ABSL_PROPAGATE_CXX_STD ON)
+add_subdirectory(${THIRD_PARTY_DIR}/abseil-cpp ${THIRD_PARTY_DIR}/abseil-cpp/build)
+
+add_library(nearby_protocol nearby_protocol.cc)
+
+target_link_libraries(nearby_protocol
+        "${CMAKE_SOURCE_DIR}/np_c_ffi/target/release/${CMAKE_STATIC_LIBRARY_PREFIX}np_c_ffi${CMAKE_STATIC_LIBRARY_SUFFIX}"
+        absl::statusor)
+
+target_include_directories(nearby_protocol PUBLIC
+        include/
+        ${CMAKE_SOURCE_DIR}/np_c_ffi/include/cpp/)
+
+target_include_directories(nearby_protocol PRIVATE
+        ${CMAKE_SOURCE_DIR}/np_c_ffi/include/cpp/internal/)
+
+add_subdirectory(sample)
+
+# shared testing utilities between sample, tests, and fuzzers
+add_library(shared_test_util shared/shared_test_util.cc)
+target_include_directories(shared_test_util PUBLIC shared/)
+target_include_directories(shared_test_util PRIVATE include/)
+target_link_libraries(shared_test_util nearby_protocol absl::statusor)
+
+if (ENABLE_TESTS)
+    message(STATUS "Enabling np_cpp tests")
+    add_subdirectory(tests)
+    add_subdirectory(benchmarks)
+endif ()
+
+if (ENABLE_FUZZ)
+    add_subdirectory(fuzz)
+endif ()
diff --git a/nearby/presence/np_cpp_ffi/benchmarks/CMakeLists.txt b/nearby/presence/np_cpp_ffi/benchmarks/CMakeLists.txt
new file mode 100644
index 0000000..c7d8343
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/benchmarks/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Copyright 2022 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+add_executable(np_ffi_bench np_ffi_bench.cc)
+
+target_link_libraries(
+        np_ffi_bench
+        nearby_protocol
+        benchmark::benchmark)
+
+if (UNIX)
+    target_link_libraries(
+            np_ffi_bench
+            dl -fsanitize=address
+    )
+elseif (MSVC)
+    target_link_libraries(
+            np_ffi_bench
+            bcrypt ntdll userenv ws2_32
+    )
+endif ()
diff --git a/nearby/presence/np_cpp_ffi/benchmarks/np_ffi_bench.cc b/nearby/presence/np_cpp_ffi/benchmarks/np_ffi_bench.cc
new file mode 100644
index 0000000..72a3f91
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/benchmarks/np_ffi_bench.cc
@@ -0,0 +1,102 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+
+#include "np_cpp_ffi_functions.h"
+#include "np_cpp_ffi_types.h"
+
+#include "benchmark/benchmark.h"
+
+// Internal C struct representation of a v0 payload
+static np_ffi::internal::RawAdvertisementPayload payload{
+    {7,
+     {
+         0x00,             // Adv Header
+         0x03,             // Public DE header
+         0x15, 0x05,       // Tx Power value 5
+         0x26, 0x00, 0x46, // Length 2 Actions
+     }}};
+
+static nearby_protocol::RawAdvertisementPayload
+    v0_adv(nearby_protocol::ByteBuffer(payload.bytes));
+
+class NpCppBenchmark : public benchmark::Fixture {
+  void SetUp(const ::benchmark::State &state) override {}
+
+  void TearDown(const ::benchmark::State &state) override {}
+};
+
+BENCHMARK_DEFINE_F(NpCppBenchmark, V0PlaintextAdvertisement)
+(benchmark::State &state) {
+  auto cred_book = nearby_protocol::CredentialBook::TryCreate();
+  assert(cred_book.ok());
+  auto num_ciphers = state.range(0);
+
+  for ([[maybe_unused]] auto _ : state) {
+    for (int i = 0; i < num_ciphers; i++) {
+      auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+          v0_adv, cred_book.value());
+      assert(result.GetKind() ==
+             nearby_protocol::DeserializeAdvertisementResultKind::V0);
+    }
+  }
+}
+
+BENCHMARK_REGISTER_F(NpCppBenchmark, V0PlaintextAdvertisement)
+    ->RangeMultiplier(10)
+    ->Range(1, 1000)
+    ->Unit(benchmark::kMicrosecond);
+
+class NpCBenchmark : public benchmark::Fixture {
+  void SetUp(const ::benchmark::State &state) override {}
+
+  void TearDown(const ::benchmark::State &state) override {}
+};
+
+BENCHMARK_DEFINE_F(NpCBenchmark, V0PlaintextAdvertisement)
+(benchmark::State &state) {
+  auto num_ciphers = state.range(0);
+  auto book_result = np_ffi::internal::np_ffi_create_credential_book();
+  assert(
+      np_ffi::internal::np_ffi_CreateCredentialBookResult_kind(book_result) ==
+      np_ffi::internal::CreateCredentialBookResultKind::Success);
+  auto book = np_ffi::internal::np_ffi_CreateCredentialBookResult_into_SUCCESS(
+      book_result);
+
+  for ([[maybe_unused]] auto _ : state) {
+    for (int i = 0; i < num_ciphers; i++) {
+      auto result =
+          np_ffi::internal::np_ffi_deserialize_advertisement({payload}, book);
+      assert(np_ffi::internal::np_ffi_DeserializeAdvertisementResult_kind(
+                 result) ==
+             np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+      auto deallocate_result =
+          np_ffi::internal::np_ffi_deallocate_deserialize_advertisement_result(
+              result);
+      assert(deallocate_result == np_ffi::internal::DeallocateResult::Success);
+    }
+  }
+
+  auto deallocate_result =
+      np_ffi::internal::np_ffi_deallocate_credential_book(book);
+  assert(deallocate_result == np_ffi::internal::DeallocateResult::Success);
+}
+
+BENCHMARK_REGISTER_F(NpCBenchmark, V0PlaintextAdvertisement)
+    ->RangeMultiplier(10)
+    ->Range(1, 1000)
+    ->Unit(benchmark::kMicrosecond);
+
+BENCHMARK_MAIN();
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/fuzz/CMakeLists.txt b/nearby/presence/np_cpp_ffi/fuzz/CMakeLists.txt
new file mode 100644
index 0000000..17f2f1f
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cmake_minimum_required(VERSION 3.0)
+
+# libfuzzer needs clang
+SET(CMAKE_C_COMPILER "clang")
+
+add_compile_definitions("CORPUS_DIR=${CMAKE_CURRENT_SOURCE_DIR}/corpus")
+file(COPY corpus DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
+add_executable(generate_fuzz_corpus generate_fuzz_corpus.cc)
+target_link_libraries(generate_fuzz_corpus nearby_protocol shared_test_util)
+
+add_executable(fuzzer_np_cpp_deserialize fuzzer_np_cpp_deserialize.cc)
+target_compile_options(fuzzer_np_cpp_deserialize PRIVATE -fsanitize=fuzzer,address)
+target_link_libraries(fuzzer_np_cpp_deserialize nearby_protocol -fsanitize=fuzzer,address)
+
+add_executable(fuzzer_np_cpp_valid_header fuzzer_np_cpp_valid_header.cc)
+target_compile_options(fuzzer_np_cpp_valid_header PRIVATE -fsanitize=fuzzer,address)
+target_link_libraries(fuzzer_np_cpp_valid_header nearby_protocol -fsanitize=fuzzer,address)
diff --git a/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvEmpty b/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvEmpty
new file mode 100644
index 0000000..f76dd23
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvEmpty
Binary files differ
diff --git a/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvSimple b/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvSimple
new file mode 100644
index 0000000..fac97f6
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvSimple
Binary files differ
diff --git a/nearby/presence/np_cpp_ffi/fuzz/corpus/V1AdvSimple b/nearby/presence/np_cpp_ffi/fuzz/corpus/V1AdvSimple
new file mode 100644
index 0000000..4acdf33
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/corpus/V1AdvSimple
@@ -0,0 +1 @@
+ 
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_deserialize.cc b/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_deserialize.cc
new file mode 100644
index 0000000..84d7247
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_deserialize.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "nearby_protocol.h"
+
+#include <cstdint>
+#include <string>
+
+#include "absl/strings/escaping.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+  // won't fit into a FfiByteBuffer<255>
+  if (size > 255) {
+    return -1;
+  }
+
+  nearby_protocol::FfiByteBuffer<255> raw_bytes;
+  memcpy(&raw_bytes.bytes, data, size);
+  raw_bytes.len = size;
+
+  nearby_protocol::RawAdvertisementPayload payload(
+      (nearby_protocol::ByteBuffer<255>(raw_bytes)));
+
+  auto credential_book = nearby_protocol::CredentialBook::TryCreate();
+  if (!credential_book.ok()) {
+    printf("Error: create Credential book failed\n");
+    __builtin_trap();
+  }
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          payload, credential_book.value());
+
+  return 0;
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_valid_header.cc b/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_valid_header.cc
new file mode 100644
index 0000000..c08b6cd
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_valid_header.cc
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "nearby_protocol.h"
+
+#include <cstdint>
+
+// Fuzz input data beginning with a valid header
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+  // Won't fit into a FfiByteBuffer<255>
+  if (size > 255) {
+    return -1;
+  }
+
+  nearby_protocol::FfiByteBuffer<255> raw_bytes;
+  memcpy(&raw_bytes.bytes, data, size);
+  raw_bytes.len = size;
+
+  nearby_protocol::RawAdvertisementPayload payload(
+      (nearby_protocol::ByteBuffer<255>(raw_bytes)));
+
+  auto credential_book = nearby_protocol::CredentialBook::TryCreate();
+  if (!credential_book.ok()) {
+    printf("Error: create Credential book failed\n");
+    __builtin_trap();
+  }
+
+  // Force it to go down the v0 deserialization path
+  raw_bytes.bytes[0] = 0x00;
+
+  auto v0_result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      payload, credential_book.value());
+
+  // Force it down the v1 deserialization path
+  raw_bytes.bytes[0] = 0x20;
+
+  auto v1_result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      payload, credential_book.value());
+
+  return 0;
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/fuzz/generate_fuzz_corpus.cc b/nearby/presence/np_cpp_ffi/fuzz/generate_fuzz_corpus.cc
new file mode 100644
index 0000000..9d28f7a
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/generate_fuzz_corpus.cc
@@ -0,0 +1,44 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include <fstream>
+#include <iostream>
+
+#define STRING(x) #x
+#define XSTRING(x) STRING(x)
+
+void write_corpus_data_file(std::string file_name,
+                            nearby_protocol::RawAdvertisementPayload payload) {
+  // Get the current source directory.
+  std::string current_source_dir = XSTRING(CORPUS_DIR);
+
+  // Print the current source directory to the console.
+  std::cout << "Writing to file: " << current_source_dir << "/" << file_name
+            << std::endl;
+
+  std::ofstream out(current_source_dir + "/" + file_name,
+                    std::ios::out | std::ios::binary);
+  auto vec_data = payload.buffer_.ToVector();
+  out.write(reinterpret_cast<const char *>(vec_data.data()), vec_data.size());
+  out.close();
+}
+
+int main() {
+  write_corpus_data_file("V0AdvSimple", V0AdvSimple);
+  write_corpus_data_file("V1AdvSimple", V1AdvSimple);
+  write_corpus_data_file("V0AdvEmpty", V0AdvEmpty);
+}
diff --git a/nearby/presence/np_cpp_ffi/include/nearby_protocol.h b/nearby/presence/np_cpp_ffi/include/nearby_protocol.h
new file mode 100644
index 0000000..e7e46e7
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/include/nearby_protocol.h
@@ -0,0 +1,518 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef NEARBY_PRESENCE_NP_CPP_FFI_INCLUDE_NP_PROTOCOL_H_
+#define NEARBY_PRESENCE_NP_CPP_FFI_INCLUDE_NP_PROTOCOL_H_
+
+#include "absl/status/statusor.h"
+#include "absl/strings/str_format.h"
+#include "np_cpp_ffi_types.h"
+
+// This namespace provides a C++ API surface to the Rust nearby protocol
+// implementation. This is a wrapper over the np_ffi::internal namespace defined
+// in the headers np_cpp_ffi_functions.h and np_cpp_ffi_types.h which are
+// autogenerated by cbindgen based on the rust crate np_c_ffi.
+//
+// Classes in this namespace which have explicitly deleted copy-assignment and
+// copy-constructor functions are backed by a C handle allocated in the
+// underlying rust library. These handles are managed by the C++ classes which
+// hold them and will be freed automatically when the corresponding  type which
+// currently owns the handle goes out of scope.
+//
+// A note on conventions in this API surface:
+//
+// Function prefixed with `Into` will transfer ownership of the current instance
+// into a the newly returned object type, meaning that the previous instance is
+// no longer valid. Attempting to use a type which has already been moved out of
+// will result in the panic handler being invoked, which by default triggers
+// std::abort();
+//
+// Functions prefixed with `As` will not transfer ownership and instead return a
+// casted version of the previous object.
+//
+// Functions prefixed with `Try` are fallible and will return an
+// absl::StatusOr<T> result that needs to be checked before its used
+//
+// DO NOT DIRECTLY access the types defined in np_ffi::internal::*, these are
+// auto-generated and are easy to mis-use. Instead use the public types exposed
+// via the `nearby_protocol` namespace.
+namespace nearby_protocol {
+
+// Re-exporting cbindgen generated types which are used in the public API
+using np_ffi::internal::BooleanActionType;
+using np_ffi::internal::CreateCredentialBookResultKind;
+using np_ffi::internal::DeserializeAdvertisementResultKind;
+using np_ffi::internal::DeserializedV0AdvertisementKind;
+using np_ffi::internal::DeserializedV0IdentityKind;
+using np_ffi::internal::DeserializedV1IdentityKind;
+using np_ffi::internal::GetV0DEResultKind;
+using np_ffi::internal::PanicReason;
+using np_ffi::internal::TxPower;
+using np_ffi::internal::V0DataElementKind;
+
+template <uintptr_t N> using FfiByteBuffer = np_ffi::internal::ByteBuffer<N>;
+
+// All of the types defined in this header
+class RawAdvertisementPayload;
+class CredentialBook;
+class Deserializer;
+class DeserializeAdvertisementResult;
+
+// V0 Classes
+class DeserializedV0Advertisement;
+class DeserializedV0Identity;
+class LegibleDeserializedV0Advertisement;
+class V0DataElement;
+class V0Payload;
+class V0Actions;
+
+// V1 Classes
+class DeserializedV1Advertisement;
+class DeserializedV1Section;
+class V1DataElement;
+
+// Global static singleton class used to customize the deserialization library.
+// If no values are set, then the default values will be used. In most cases the
+// default max instance values won't need to be changed unless you are running
+// in a constrained resources environment, and need to specify an upper limit
+// on memory consumption. See np_ffi_global_config_* functions in
+// np_cpp_ffi_functions.h for more info
+class GlobalConfig {
+public:
+  // This class provides the static methods needed for global configuration,
+  // so it does not need to be constructable, cloneable, or assignable.
+  GlobalConfig(GlobalConfig const &) = delete;
+  void operator=(GlobalConfig const &) = delete;
+  GlobalConfig() = delete;
+
+  // Provides a user specified panic handler. This method will only have an
+  // effect on the global panic-handler the first time it's called, and this
+  // method will return `true` to indicate that the panic handler was
+  // successfully set. All subsequent calls to this method will simply ignore
+  // the argument and return `false`. see np_ffi_global_config_panic_handler in
+  // np_cpp_ffi_functions.h for more info
+  [[nodiscard]] static bool SetPanicHandler(void (*handler)(PanicReason));
+
+  // Sets an override to the number of shards employed in the libraries internal
+  // handle maps, used to set an upper limit on memory consumption, see
+  // np_ffi_global_config_set_num_shards in np_cpp_ffi_functions.h for more info
+  static void SetNumShards(uint8_t num_shards);
+
+  // Sets the maximum number of active handles to credential books which may be
+  // active at any one time. See
+  // np_ffi_global_config_set_max_num_credential_books in np_cpp_ffi_functions.h
+  // for more info
+  static void SetMaxNumCredentialBooks(uint32_t max_num_credential_books);
+
+  // Sets the maximum number of active handles to deserialized v0 advertisements
+  // which may be active at any one time. See
+  // np_ffi_global_config_set_max_num_deserialized_v0_advertisements for more
+  // info.
+  static void SetMaxNumDeserializedV0Advertisements(
+      uint32_t max_num_deserialized_v0_advertisements);
+
+  // Sets the maximum number of active handles to deserialized v1 advertisements
+  // which may be active at any one time
+  static void SetMaxNumDeserializedV1Advertisements(
+      uint32_t max_num_deserialized_v1_advertisements);
+};
+
+// Holds the credentials used when decrypting data of an advertisement.
+// This needs to be passed to Deserializer::DeserializeAdvertisement() when
+// attempting to deserialize a payload
+class CredentialBook {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying handle being freed multiple times
+  CredentialBook(const CredentialBook &other) = delete;
+  CredentialBook &operator=(const CredentialBook &other) = delete;
+
+  // Move constructor and move assignment are needed in order to wrap this class
+  // in absl::StatusOr
+  CredentialBook(CredentialBook &&other) noexcept;
+  CredentialBook &operator=(CredentialBook &&other) noexcept;
+
+  // The destructor for a CredentialBook, this will be called when a
+  // CredentialBook instance goes out of scope and will free the underlying
+  // resources
+  ~CredentialBook();
+
+  // Creates a new instance of a CredentialBook, returns the CredentialBook on
+  // success or a Status code on failure
+  [[nodiscard]] static absl::StatusOr<CredentialBook> TryCreate();
+
+private:
+  friend class Deserializer;
+  explicit CredentialBook(np_ffi::internal::CredentialBook credential_book)
+      : credential_book_(credential_book), moved_(false) {}
+
+  np_ffi::internal::CredentialBook credential_book_;
+  bool moved_;
+};
+
+// Representation of a buffer of bytes returned from deserialization APIs
+template <size_t N> class ByteBuffer {
+public:
+  // Constructor for a fixed length buffer of bytes from its internal struct
+  // data representation consisting of a length and array of unint8_t bytes.
+  [[nodiscard]] explicit ByteBuffer(FfiByteBuffer<N> internal)
+      : internal_(internal) {}
+
+  // Creates a ByteBuffer from a absl::string_view of bytes, returning an
+  // absl::OutOfRangeError in the case where bytes is too large to fit into the
+  // buffer. On success the returned type contains a copy of the provided bytes.
+  [[nodiscard]] static absl::StatusOr<ByteBuffer<N>>
+  CopyFrom(absl::string_view bytes) {
+    if (bytes.length() > N) {
+      return absl::OutOfRangeError(
+          absl::StrFormat("Provided bytes of length %d will not fit into a "
+                          "ByteBuffer<N> of size N=%d",
+                          bytes.length(), N));
+    }
+    np_ffi::internal::ByteBuffer<N> internal =
+        np_ffi::internal::ByteBuffer<N>();
+    internal.len = bytes.length();
+    std::copy(std::begin(bytes), std::end(bytes), internal.bytes);
+    return ByteBuffer(internal);
+  }
+
+  // Helper method to convert the ByteBuffer into a vector. The vector will
+  // contain a copy of the bytes and won't share the underlying buffer.
+  [[nodiscard]] std::vector<uint8_t> ToVector() {
+    std::vector<uint8_t> result(internal_.bytes,
+                                internal_.bytes + internal_.len);
+    return result;
+  }
+
+  // Helper method to convert the ByteBuffer into a std::string. The returned
+  // string will contain a copy of the bytes and won't share the underlying
+  // buffer.
+  [[nodiscard]] std::string ToString() {
+    std::string result;
+    result.assign(internal_.bytes, internal_.bytes + internal_.len);
+    return result;
+  }
+
+private:
+  friend class V1DataElement;
+  friend class Deserializer;
+  np_ffi::internal::ByteBuffer<N> internal_;
+};
+
+class RawAdvertisementPayload {
+public:
+  // Creates a RawAdvertisementPayload from a ByteBuffer.
+  explicit RawAdvertisementPayload(ByteBuffer<255> bytes) : buffer_(bytes) {}
+
+  ByteBuffer<255> buffer_;
+
+private:
+  friend class Deserializer;
+};
+
+// A global static Deserializer, configured by GlobalConfig and used to
+// deserialize advertisement payloads
+class Deserializer {
+public:
+  // Attempts to deserialize an advertisement with the given service-data
+  // payload (presumed to be under the NP service UUID) using credentials pulled
+  // from the given credential-book. See np_ffi_deserialize_advertisement in
+  // np_cpp_ffi_functions.h for more info
+  [[nodiscard]] static DeserializeAdvertisementResult
+  DeserializeAdvertisement(RawAdvertisementPayload &payload,
+                           const CredentialBook &credential_book);
+};
+
+// The result type returned from Deserializer::DeserializeAdvertisement(). Can
+// be used to further process the advertisement and inspect its contents
+class DeserializeAdvertisementResult {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying handle being freed multiple times
+  DeserializeAdvertisementResult(const DeserializeAdvertisementResult &other) =
+      delete;
+  DeserializeAdvertisementResult &
+  operator=(const DeserializeAdvertisementResult &other) = delete;
+
+  // Move constructor and move assignment operators
+  DeserializeAdvertisementResult(
+      DeserializeAdvertisementResult &&other) noexcept;
+  DeserializeAdvertisementResult &
+  operator=(DeserializeAdvertisementResult &&other) noexcept;
+
+  // Frees the underlying resources of the result.
+  ~DeserializeAdvertisementResult();
+
+  // Returns the DeserializeAdvertisementResultKind of the Result
+  [[nodiscard]] DeserializeAdvertisementResultKind GetKind();
+
+  // Casts a `DeserializeAdvertisementResult` to the `V0` variant, panicking in
+  // the case where the passed value is of a different enum variant. This can
+  // only be called once. When called, this object is moved into the
+  // returned 'DeserializedV0Advertisement' and this object is no longer valid.
+  [[nodiscard]] DeserializedV0Advertisement IntoV0();
+
+  // Casts a `DeserializeAdvertisementResult` to the `V1` variant, panicking in
+  // the case where the passed value is of a different enum variant. This can
+  // only be called once. After this is cast into a `V1` variant this result
+  // is no longer valid.
+  [[nodiscard]] DeserializedV1Advertisement IntoV1();
+
+private:
+  friend class Deserializer;
+  explicit DeserializeAdvertisementResult(
+      np_ffi::internal::DeserializeAdvertisementResult result)
+      : result_(result), moved_(false) {}
+
+  np_ffi::internal::DeserializeAdvertisementResult result_;
+  bool moved_;
+};
+
+// A deserialized V0 advertisement payload
+class DeserializedV0Advertisement {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying handle being freed multiple times
+  DeserializedV0Advertisement(const DeserializedV0Advertisement &other) =
+      delete;
+  DeserializedV0Advertisement &
+  operator=(const DeserializedV0Advertisement &other) = delete;
+
+  // Move constructor and move assignment operators
+  DeserializedV0Advertisement(DeserializedV0Advertisement &&other) noexcept;
+  DeserializedV0Advertisement &
+  operator=(DeserializedV0Advertisement &&other) noexcept;
+
+  // The destructor which will be called when a DeserializedV0Advertisement
+  // instance goes out of scope, and will free the underlying resources
+  ~DeserializedV0Advertisement();
+
+  // Returns the DeserializedV0AdvertisementKind of the advertisement
+  [[nodiscard]] DeserializedV0AdvertisementKind GetKind();
+
+  // Casts a `DeserializedV0Advertisement` to the `Legible` variant, panicking
+  // in the case where the passed value is of a different enum variant.
+  // After calling this the object is moved into the returned
+  // `LegibleDeserializedV0Advertisement`, and this object is no longer valid.
+  [[nodiscard]] LegibleDeserializedV0Advertisement IntoLegible();
+
+private:
+  friend class DeserializeAdvertisementResult;
+  explicit DeserializedV0Advertisement(
+      np_ffi::internal::DeserializedV0Advertisement v0_advertisement)
+      : v0_advertisement_(v0_advertisement), moved_(false) {}
+
+  np_ffi::internal::DeserializedV0Advertisement v0_advertisement_;
+  bool moved_;
+};
+
+// A Legible deserialized V0 advertisement, which means the contents of it are
+// either plaintext OR have already been decrypted successfully by a matching
+// credential in the provided CredentialBook
+class LegibleDeserializedV0Advertisement {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying handle being freed multiple times
+  LegibleDeserializedV0Advertisement(
+      const LegibleDeserializedV0Advertisement &other) = delete;
+  LegibleDeserializedV0Advertisement &
+  operator=(const LegibleDeserializedV0Advertisement &other) = delete;
+
+  // Move constructor and move assignment operators
+  LegibleDeserializedV0Advertisement(
+      LegibleDeserializedV0Advertisement &&other) noexcept;
+  LegibleDeserializedV0Advertisement &
+  operator=(LegibleDeserializedV0Advertisement &&other) noexcept;
+
+  // The destructor which will be called when a this instance goes out of scope,
+  // and will free the underlying parent handle.
+  ~LegibleDeserializedV0Advertisement();
+
+  // Returns just the identity information associated with the advertisement
+  [[nodiscard]] DeserializedV0Identity GetIdentity();
+  // Returns the number of data elements in the advertisement
+  [[nodiscard]] uint8_t GetNumberOfDataElements();
+  // Returns just the data-element payload of the advertisement
+  [[nodiscard]] V0Payload IntoPayload();
+
+private:
+  friend class DeserializedV0Advertisement;
+  explicit LegibleDeserializedV0Advertisement(
+      np_ffi::internal::LegibleDeserializedV0Advertisement
+          legible_v0_advertisement)
+      : legible_v0_advertisement_(legible_v0_advertisement), moved_(false) {}
+
+  np_ffi::internal::LegibleDeserializedV0Advertisement
+      legible_v0_advertisement_;
+  bool moved_;
+};
+
+// A V0 identity of an advertisement
+class DeserializedV0Identity {
+public:
+  // Returns the DeserializedV0IdentityKind of the advertisement
+  [[nodiscard]] DeserializedV0IdentityKind GetKind();
+
+private:
+  friend class LegibleDeserializedV0Advertisement;
+  explicit DeserializedV0Identity(
+      np_ffi::internal::DeserializedV0Identity v0_identity)
+      : v0_identity_(v0_identity) {}
+  np_ffi::internal::DeserializedV0Identity v0_identity_;
+};
+
+// A data element payload of a Deserialized V0 Advertisement.
+class V0Payload {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying parent handle being freed multiple times.
+  V0Payload(const V0Payload &other) = delete;
+  V0Payload &operator=(const V0Payload &other) = delete;
+
+  // Move constructor and move assignment operators
+  V0Payload(V0Payload &&other) noexcept;
+  V0Payload &operator=(V0Payload &&other) noexcept;
+
+  // Frees the underlying handle when this goes out of scope
+  ~V0Payload();
+
+  // Tries to retrieve the data element at the given index, returns the data
+  // element if it exists otherwise returns an Error status code
+  [[nodiscard]] absl::StatusOr<V0DataElement> TryGetDataElement(uint8_t index);
+
+private:
+  friend class LegibleDeserializedV0Advertisement;
+  explicit V0Payload(np_ffi::internal::V0Payload v0_payload)
+      : v0_payload_(v0_payload), moved_(false) {}
+
+  np_ffi::internal::V0Payload v0_payload_;
+  bool moved_;
+};
+
+// A single deserialized V0 data element
+class V0DataElement {
+public:
+  // Yields the V0DataElementKind of the data element
+  [[nodiscard]] V0DataElementKind GetKind();
+  // Casts the V0DataElement into the TxPower variant, panicking in the case
+  // where the data element is of a different enum variant
+  [[nodiscard]] TxPower AsTxPower();
+  // Casts the V0DataElement into the Actions variant, panicking in the case
+  // where the data element is of a different enum variant
+  [[nodiscard]] V0Actions AsActions();
+
+private:
+  friend class V0Payload;
+  explicit V0DataElement(np_ffi::internal::V0DataElement v0_data_element)
+      : v0_data_element_(v0_data_element) {}
+  np_ffi::internal::V0DataElement v0_data_element_;
+};
+
+// A V0 Actions Data Element
+class V0Actions {
+public:
+  // Gets the V0 Action bits as represented by a u32 where the last 8 bits are
+  // always 0 since V0 actions can only hold up to 24 bits.
+  [[nodiscard]] uint32_t GetAsU32();
+
+  /// Return whether a boolean action type is present in this data element
+  [[nodiscard]] bool HasAction(BooleanActionType action);
+
+  /// Gets the 4 bit context sync sequence number as a uint8_t from this data
+  /// element
+  [[nodiscard]] uint8_t GetContextSyncSequenceNumber();
+
+private:
+  friend class V0DataElement;
+  explicit V0Actions(np_ffi::internal::V0Actions actions) : actions_(actions) {}
+  np_ffi::internal::V0Actions actions_;
+};
+
+// A deserialized V1 Advertisement payload
+class DeserializedV1Advertisement {
+public:
+  // Don't allow copy constructor or copy assignment, since that would result in
+  // the underlying handle being freed multiple times
+  DeserializedV1Advertisement(const DeserializedV1Advertisement &other) =
+      delete;
+  DeserializedV1Advertisement &
+  operator=(const DeserializedV1Advertisement &other) = delete;
+
+  // Move constructor and move assignment operators
+  DeserializedV1Advertisement(DeserializedV1Advertisement &&other) noexcept;
+  DeserializedV1Advertisement &
+  operator=(DeserializedV1Advertisement &&other) noexcept;
+
+  // Gets the number of legible sections on a deserialized V1 advertisement.
+  // This is usable as an iteration bound for the section_index of TryGetSection
+  [[nodiscard]] uint8_t GetNumLegibleSections();
+  // Gets the number of sections on a deserialized V1 advertisement which
+  // were unable to be decrypted with the credentials that the receiver
+  // possesses
+  [[nodiscard]] uint8_t GetNumUndecryptableSections();
+  // Tries to get the section with the given index in a deserialized V1
+  // advertisement. Returns a error code in the result of an invalid index
+  [[nodiscard]] absl::StatusOr<DeserializedV1Section>
+  TryGetSection(uint8_t section_index);
+
+private:
+  friend class DeserializeAdvertisementResult;
+  explicit DeserializedV1Advertisement(
+      np_ffi::internal::DeserializedV1Advertisement v1_advertisement);
+
+  std::shared_ptr<np_ffi::internal::DeserializedV1Advertisement>
+      v1_advertisement_;
+};
+
+// A Deserialized V1 Section of an advertisement
+class DeserializedV1Section {
+public:
+  // Returns the number of data elements present in the section
+  [[nodiscard]] uint8_t NumberOfDataElements();
+  // Returns the DeserializedV1IdentityKind of the identity
+  [[nodiscard]] DeserializedV1IdentityKind GetIdentityKind();
+  // Tries to get the data element in the section at the given index
+  [[nodiscard]] absl::StatusOr<V1DataElement> TryGetDataElement(uint8_t index);
+
+private:
+  friend class DeserializedV1Advertisement;
+  explicit DeserializedV1Section(
+      np_ffi::internal::DeserializedV1Section section,
+      std::shared_ptr<np_ffi::internal::DeserializedV1Advertisement>
+          owning_v1_advertisement)
+      : section_(section),
+        owning_v1_advertisement_(std::move(owning_v1_advertisement)) {}
+  np_ffi::internal::DeserializedV1Section section_;
+  std::shared_ptr<np_ffi::internal::DeserializedV1Advertisement>
+      owning_v1_advertisement_;
+};
+
+// A V1 Data Element
+class V1DataElement {
+public:
+  // Yields the unsigned 32-bit integer V1 DE type code
+  [[nodiscard]] uint32_t GetDataElementTypeCode() const;
+  // Yields the payload bytes of the data element
+  [[nodiscard]] ByteBuffer<127> GetPayload() const;
+
+private:
+  friend class DeserializedV1Section;
+  explicit V1DataElement(np_ffi::internal::V1DataElement v1_data_element)
+      : v1_data_element_(v1_data_element) {}
+  np_ffi::internal::V1DataElement v1_data_element_;
+};
+
+} //  namespace nearby_protocol
+
+#endif // NEARBY_PRESENCE_NP_CPP_FFI_INCLUDE_NP_PROTOCOL_H_
diff --git a/nearby/presence/np_cpp_ffi/nearby_protocol.cc b/nearby/presence/np_cpp_ffi/nearby_protocol.cc
new file mode 100644
index 0000000..3ee5c63
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/nearby_protocol.cc
@@ -0,0 +1,486 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "include/nearby_protocol.h"
+
+#include "np_cpp_ffi_functions.h"
+
+#ifdef __FILE_NAME__
+#define __ASSERT_FILE_NAME __FILE_NAME__
+#else /* __FILE_NAME__ */
+#define __ASSERT_FILE_NAME __FILE__
+#endif /* __FILE_NAME__ */
+
+namespace nearby_protocol {
+
+static void panic_handler(PanicReason reason);
+
+struct PanicHandler {
+  void (*handler)(PanicReason);
+  bool set_by_client;
+};
+
+static PanicHandler gPanicHandler = PanicHandler{panic_handler, false};
+
+// C++ layer internal panic handler
+static void panic_handler(PanicReason reason) {
+  // Give clients a chance to use their own panic handler, but if they don't
+  // terminate the process we will make sure it happens.
+  if (gPanicHandler.set_by_client) {
+    gPanicHandler.handler(reason);
+  }
+  std::abort();
+}
+
+static void _assert_panic(bool condition, const char *func, const char *file,
+                          int line) {
+  if (!condition) {
+    std::cout << "Assert failed: \n function: " << func << "\n file: " << file
+              << "\n line: " << line << "\n";
+    panic_handler(PanicReason::AssertFailed);
+  }
+}
+
+#define assert_panic(e) _assert_panic(e, __func__, __ASSERT_FILE_NAME, __LINE__)
+
+bool GlobalConfig::SetPanicHandler(void (*handler)(PanicReason)) {
+  if (!gPanicHandler.set_by_client) {
+    gPanicHandler.handler = handler;
+    gPanicHandler.set_by_client = true;
+    return np_ffi::internal::np_ffi_global_config_panic_handler(panic_handler);
+  }
+  return false;
+}
+
+void GlobalConfig::SetNumShards(uint8_t num_shards) {
+  np_ffi::internal::np_ffi_global_config_set_num_shards(num_shards);
+}
+
+void GlobalConfig::SetMaxNumCredentialBooks(uint32_t max_num_credential_books) {
+  np_ffi::internal::np_ffi_global_config_set_max_num_credential_books(
+      max_num_credential_books);
+}
+
+void GlobalConfig::SetMaxNumDeserializedV0Advertisements(
+    uint32_t max_num_deserialized_v0_advertisements) {
+  np_ffi::internal::
+      np_ffi_global_config_set_max_num_deserialized_v0_advertisements(
+          max_num_deserialized_v0_advertisements);
+}
+
+void GlobalConfig::SetMaxNumDeserializedV1Advertisements(
+    uint32_t max_num_deserialized_v1_advertisements) {
+  np_ffi::internal::
+      np_ffi_global_config_set_max_num_deserialized_v1_advertisements(
+          max_num_deserialized_v1_advertisements);
+}
+
+absl::StatusOr<CredentialBook> CredentialBook::TryCreate() {
+  auto result = np_ffi::internal::np_ffi_create_credential_book();
+  auto kind = np_ffi::internal::np_ffi_CreateCredentialBookResult_kind(result);
+
+  switch (kind) {
+  case CreateCredentialBookResultKind::Success: {
+    auto book = CredentialBook(
+        np_ffi::internal::np_ffi_CreateCredentialBookResult_into_SUCCESS(
+            result));
+    return book;
+  }
+  case CreateCredentialBookResultKind::NoSpaceLeft: {
+    return absl::ResourceExhaustedError(
+        "No space left to create credential book");
+  }
+  }
+}
+
+CredentialBook::~CredentialBook() {
+  if (!this->moved_) {
+    auto result =
+        np_ffi::internal::np_ffi_deallocate_credential_book(credential_book_);
+    assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  }
+}
+
+CredentialBook::CredentialBook(CredentialBook &&other) noexcept
+    : credential_book_(other.credential_book_), moved_(other.moved_) {
+  other.credential_book_ = {};
+  other.moved_ = true;
+}
+
+CredentialBook &CredentialBook::operator=(CredentialBook &&other) noexcept {
+  if (this != &other) {
+    if (!this->moved_) {
+      auto result = np_ffi::internal::np_ffi_deallocate_credential_book(
+          this->credential_book_);
+      assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+    }
+
+    this->credential_book_ = other.credential_book_;
+    this->moved_ = other.moved_;
+
+    other.credential_book_ = {};
+    other.moved_ = true;
+  }
+  return *this;
+}
+
+DeserializeAdvertisementResult
+Deserializer::DeserializeAdvertisement(RawAdvertisementPayload &payload,
+                                       const CredentialBook &credential_book) {
+  assert_panic(!credential_book.moved_);
+  auto result = np_ffi::internal::np_ffi_deserialize_advertisement(
+      {payload.buffer_.internal_}, credential_book.credential_book_);
+  return DeserializeAdvertisementResult(result);
+}
+
+DeserializeAdvertisementResultKind DeserializeAdvertisementResult::GetKind() {
+  assert_panic(!this->moved_);
+  return np_ffi::internal::np_ffi_DeserializeAdvertisementResult_kind(result_);
+}
+
+DeserializedV0Advertisement DeserializeAdvertisementResult::IntoV0() {
+  assert_panic(!this->moved_);
+  auto result =
+      np_ffi::internal::np_ffi_DeserializeAdvertisementResult_into_V0(result_);
+  this->moved_ = true;
+  return DeserializedV0Advertisement(result);
+}
+
+DeserializedV1Advertisement DeserializeAdvertisementResult::IntoV1() {
+  assert_panic(!this->moved_);
+  auto v1_adv =
+      np_ffi::internal::np_ffi_DeserializeAdvertisementResult_into_V1(result_);
+  this->moved_ = true;
+  return DeserializedV1Advertisement(v1_adv);
+}
+
+DeserializeAdvertisementResult::~DeserializeAdvertisementResult() {
+  if (!this->moved_) {
+    auto result =
+        np_ffi::internal::np_ffi_deallocate_deserialize_advertisement_result(
+            result_);
+    assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  }
+}
+
+DeserializeAdvertisementResult::DeserializeAdvertisementResult(
+    DeserializeAdvertisementResult &&other) noexcept
+    : result_(other.result_), moved_(other.moved_) {
+  other.result_ = {};
+  other.moved_ = true;
+}
+
+DeserializeAdvertisementResult &DeserializeAdvertisementResult::operator=(
+    DeserializeAdvertisementResult &&other) noexcept {
+  if (this != &other) {
+    if (!this->moved_) {
+      auto result =
+          np_ffi::internal::np_ffi_deallocate_deserialize_advertisement_result(
+              result_);
+      assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+    }
+    this->result_ = other.result_;
+    this->moved_ = other.moved_;
+
+    other.result_ = {};
+    other.moved_ = true;
+  }
+  return *this;
+}
+
+// V0 Stuff
+DeserializedV0Advertisement::DeserializedV0Advertisement(
+    DeserializedV0Advertisement &&other) noexcept
+    : v0_advertisement_(other.v0_advertisement_), moved_(other.moved_) {
+  other.v0_advertisement_ = {};
+  other.moved_ = true;
+}
+
+DeserializedV0Advertisement &DeserializedV0Advertisement::operator=(
+    DeserializedV0Advertisement &&other) noexcept {
+  if (this != &other) {
+    if (!this->moved_) {
+      auto result =
+          np_ffi::internal::np_ffi_deallocate_deserialized_V0_advertisement(
+              v0_advertisement_);
+      assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+    }
+    this->v0_advertisement_ = other.v0_advertisement_;
+    this->moved_ = other.moved_;
+
+    other.v0_advertisement_ = {};
+    other.moved_ = true;
+  }
+  return *this;
+}
+
+DeserializedV0Advertisement::~DeserializedV0Advertisement() {
+  if (!this->moved_) {
+    auto result =
+        np_ffi::internal::np_ffi_deallocate_deserialized_V0_advertisement(
+            v0_advertisement_);
+    assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  }
+}
+
+np_ffi::internal::DeserializedV0AdvertisementKind
+DeserializedV0Advertisement::GetKind() {
+  assert_panic(!this->moved_);
+  return np_ffi::internal::np_ffi_DeserializedV0Advertisement_kind(
+      v0_advertisement_);
+}
+
+LegibleDeserializedV0Advertisement DeserializedV0Advertisement::IntoLegible() {
+  assert_panic(!this->moved_);
+  auto result =
+      np_ffi::internal::np_ffi_DeserializedV0Advertisement_into_LEGIBLE(
+          v0_advertisement_);
+  this->moved_ = true;
+  this->v0_advertisement_ = {};
+  return LegibleDeserializedV0Advertisement(result);
+}
+
+LegibleDeserializedV0Advertisement::LegibleDeserializedV0Advertisement(
+    LegibleDeserializedV0Advertisement &&other) noexcept
+    : legible_v0_advertisement_(other.legible_v0_advertisement_),
+      moved_(other.moved_) {
+  other.moved_ = true;
+  other.legible_v0_advertisement_ = {};
+}
+
+LegibleDeserializedV0Advertisement &
+LegibleDeserializedV0Advertisement::operator=(
+    LegibleDeserializedV0Advertisement &&other) noexcept {
+  if (this != &other) {
+    if (!this->moved_) {
+      auto result =
+          np_ffi::internal::np_ffi_deallocate_legible_v0_advertisement(
+              this->legible_v0_advertisement_);
+      assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+    }
+    this->legible_v0_advertisement_ = other.legible_v0_advertisement_;
+    this->moved_ = other.moved_;
+
+    other.moved_ = true;
+    other.legible_v0_advertisement_ = {};
+  }
+  return *this;
+}
+
+LegibleDeserializedV0Advertisement::~LegibleDeserializedV0Advertisement() {
+  if (!this->moved_) {
+    auto result = np_ffi::internal::np_ffi_deallocate_legible_v0_advertisement(
+        this->legible_v0_advertisement_);
+    assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  }
+}
+
+DeserializedV0Identity LegibleDeserializedV0Advertisement::GetIdentity() {
+  assert_panic(!this->moved_);
+  auto result =
+      np_ffi::internal::np_ffi_LegibleDeserializedV0Advertisement_into_identity(
+          legible_v0_advertisement_);
+  return DeserializedV0Identity(result);
+}
+
+uint8_t LegibleDeserializedV0Advertisement::GetNumberOfDataElements() {
+  assert_panic(!this->moved_);
+  return np_ffi::internal::
+      np_ffi_LegibleDeserializedV0Advertisement_get_num_des(
+          legible_v0_advertisement_);
+}
+
+V0Payload LegibleDeserializedV0Advertisement::IntoPayload() {
+  assert_panic(!this->moved_);
+  auto result = np_ffi_LegibleDeserializedV0Advertisement_into_payload(
+      legible_v0_advertisement_);
+  this->moved_ = true;
+  return V0Payload(result);
+}
+
+np_ffi::internal::DeserializedV0IdentityKind DeserializedV0Identity::GetKind() {
+  return np_ffi::internal::np_ffi_DeserializedV0Identity_kind(v0_identity_);
+}
+
+V0Payload::V0Payload(V0Payload &&other) noexcept
+    : v0_payload_(other.v0_payload_), moved_(other.moved_) {
+  other.v0_payload_ = {};
+  other.moved_ = true;
+}
+
+V0Payload &V0Payload::operator=(V0Payload &&other) noexcept {
+  if (this != &other) {
+    if (!this->moved_) {
+      auto result =
+          np_ffi::internal::np_ffi_deallocate_v0_payload(this->v0_payload_);
+      assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+    }
+    this->v0_payload_ = other.v0_payload_;
+    this->moved_ = other.moved_;
+
+    other.moved_ = true;
+    other.v0_payload_ = {};
+  }
+  return *this;
+}
+
+V0Payload::~V0Payload() {
+  if (!this->moved_) {
+    auto result =
+        np_ffi::internal::np_ffi_deallocate_v0_payload(this->v0_payload_);
+    assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  }
+}
+
+absl::StatusOr<V0DataElement> V0Payload::TryGetDataElement(uint8_t index) {
+  assert_panic(!this->moved_);
+  auto result = np_ffi::internal::np_ffi_V0Payload_get_de(v0_payload_, index);
+  auto kind = np_ffi::internal::np_ffi_GetV0DEResult_kind(result);
+  switch (kind) {
+  case GetV0DEResultKind::Success: {
+    auto de = np_ffi_GetV0DEResult_into_SUCCESS(result);
+    return V0DataElement(de);
+  }
+  case GetV0DEResultKind::Error: {
+    return absl::OutOfRangeError("Invalid Data Element index");
+  }
+  }
+}
+
+V0DataElementKind V0DataElement::GetKind() {
+  return np_ffi::internal::np_ffi_V0DataElement_kind(v0_data_element_);
+}
+
+TxPower V0DataElement::AsTxPower() {
+  return np_ffi::internal::np_ffi_V0DataElement_into_TX_POWER(v0_data_element_);
+}
+
+V0Actions V0DataElement::AsActions() {
+  auto internal =
+      np_ffi::internal::np_ffi_V0DataElement_into_ACTIONS(v0_data_element_);
+  return V0Actions(internal);
+}
+
+uint32_t V0Actions::GetAsU32() {
+  return np_ffi::internal::np_ffi_V0Actions_as_u32(actions_);
+}
+
+bool V0Actions::HasAction(BooleanActionType action) {
+  return np_ffi::internal::np_ffi_V0Actions_has_action(actions_, action);
+}
+
+uint8_t V0Actions::GetContextSyncSequenceNumber() {
+  return np_ffi::internal::np_ffi_V0Actions_get_context_sync_sequence_number(
+      actions_);
+}
+
+// This is called after all references to the shared_ptr have gone out of scope
+auto DeallocateV1Adv(
+    np_ffi::internal::DeserializedV1Advertisement *v1_advertisement) {
+  auto result =
+      np_ffi::internal::np_ffi_deallocate_deserialized_V1_advertisement(
+          *v1_advertisement);
+  assert_panic(result == np_ffi::internal::DeallocateResult::Success);
+  delete v1_advertisement;
+}
+
+DeserializedV1Advertisement::DeserializedV1Advertisement(
+    np_ffi::internal::DeserializedV1Advertisement v1_advertisement) {
+  v1_advertisement_ =
+      std::shared_ptr<np_ffi::internal::DeserializedV1Advertisement>(
+          new np_ffi::internal::DeserializedV1Advertisement(v1_advertisement),
+          DeallocateV1Adv);
+}
+
+DeserializedV1Advertisement::DeserializedV1Advertisement(
+    DeserializedV1Advertisement &&other) noexcept
+    : v1_advertisement_(std::move(other.v1_advertisement_)) {}
+
+DeserializedV1Advertisement &DeserializedV1Advertisement::operator=(
+    DeserializedV1Advertisement &&other) noexcept {
+  if (this != &other) {
+    this->v1_advertisement_ = std::move(other.v1_advertisement_);
+  }
+  return *this;
+}
+
+// V1 Stuff
+uint8_t DeserializedV1Advertisement::GetNumLegibleSections() {
+  assert_panic(this->v1_advertisement_ != nullptr);
+  return np_ffi::internal::
+      np_ffi_DeserializedV1Advertisement_get_num_legible_sections(
+          *v1_advertisement_);
+}
+
+uint8_t DeserializedV1Advertisement::GetNumUndecryptableSections() {
+  assert_panic(this->v1_advertisement_ != nullptr);
+  return np_ffi::internal::
+      np_ffi_DeserializedV1Advertisement_get_num_undecryptable_sections(
+          *v1_advertisement_);
+}
+
+absl::StatusOr<DeserializedV1Section>
+DeserializedV1Advertisement::TryGetSection(uint8_t section_index) {
+  assert_panic(this->v1_advertisement_ != nullptr);
+  auto result =
+      np_ffi::internal::np_ffi_DeserializedV1Advertisement_get_section(
+          *v1_advertisement_, section_index);
+  auto kind = np_ffi::internal::np_ffi_GetV1SectionResult_kind(result);
+  switch (kind) {
+  case np_ffi::internal::GetV1SectionResultKind::Error: {
+    return absl::OutOfRangeError("Invalid section index");
+  }
+  case np_ffi::internal::GetV1SectionResultKind::Success: {
+    auto section =
+        np_ffi::internal::np_ffi_GetV1SectionResult_into_SUCCESS(result);
+    return DeserializedV1Section(section, v1_advertisement_);
+  }
+  }
+}
+
+uint8_t DeserializedV1Section::NumberOfDataElements() {
+  return np_ffi::internal::np_ffi_DeserializedV1Section_get_num_des(section_);
+}
+
+DeserializedV1IdentityKind DeserializedV1Section::GetIdentityKind() {
+  return np_ffi::internal::np_ffi_DeserializedV1Section_get_identity_kind(
+      section_);
+}
+
+absl::StatusOr<V1DataElement>
+DeserializedV1Section::TryGetDataElement(uint8_t index) {
+  auto result =
+      np_ffi::internal::np_ffi_DeserializedV1Section_get_de(section_, index);
+  auto kind = np_ffi::internal::np_ffi_GetV1DEResult_kind(result);
+  switch (kind) {
+  case np_ffi::internal::GetV1DEResultKind::Error: {
+    return absl::OutOfRangeError("Invalid data element index for this section");
+  }
+  case np_ffi::internal::GetV1DEResultKind::Success: {
+    return V1DataElement(
+        np_ffi::internal::np_ffi_GetV1DEResult_into_SUCCESS(result));
+  }
+  }
+}
+
+uint32_t V1DataElement::GetDataElementTypeCode() const {
+  return np_ffi::internal::np_ffi_V1DEType_to_uint32_t(
+      v1_data_element_.generic._0.de_type);
+}
+
+ByteBuffer<127> V1DataElement::GetPayload() const {
+  return ByteBuffer(v1_data_element_.generic._0.payload);
+}
+
+} // namespace nearby_protocol
diff --git a/nearby/presence/np_cpp_ffi/sample/CMakeLists.txt b/nearby/presence/np_cpp_ffi/sample/CMakeLists.txt
new file mode 100644
index 0000000..da33258
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/sample/CMakeLists.txt
@@ -0,0 +1,29 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+add_executable(np_cpp_sample main.cpp)
+
+target_link_libraries(np_cpp_sample nearby_protocol)
+
+if (UNIX)
+    target_link_libraries(
+            np_cpp_sample
+            dl -fsanitize=address
+    )
+elseif (MSVC)
+    target_link_libraries(
+            np_cpp_sample
+            bcrypt ntdll userenv ws2_32
+    )
+endif ()
diff --git a/nearby/presence/np_cpp_ffi/sample/main.cpp b/nearby/presence/np_cpp_ffi/sample/main.cpp
new file mode 100644
index 0000000..114ed64
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/sample/main.cpp
@@ -0,0 +1,272 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+
+#include <bitset>
+#include <iostream>
+
+#include "absl/strings/escaping.h"
+
+static void SamplePanicHandler(nearby_protocol::PanicReason reason);
+
+void HandleAdvertisementResult(nearby_protocol::DeserializeAdvertisementResult);
+
+void HandleV0Adv(nearby_protocol::DeserializedV0Advertisement);
+void HandleLegibleV0Adv(nearby_protocol::LegibleDeserializedV0Advertisement);
+void HandleV0Identity(nearby_protocol::DeserializedV0Identity);
+void HandleDataElement(nearby_protocol::V0DataElement);
+
+void HandleV1Adv(nearby_protocol::DeserializedV1Advertisement);
+void HandleV1Section(nearby_protocol::DeserializedV1Section);
+void HandleV1DataElement(nearby_protocol::V1DataElement);
+
+int main() {
+  auto result =
+      nearby_protocol::GlobalConfig::SetPanicHandler(SamplePanicHandler);
+  if (result) {
+    std::cout << "Successfully registered panic handler\n";
+  } else {
+    std::cout << "Failed register panic handler\n";
+    return -1;
+  }
+  nearby_protocol::GlobalConfig::SetNumShards(4);
+
+  std::cout << "\n========= Example V0 Adv ==========\n";
+  std::cout << "Hex bytes: 00031503260046\n\n";
+
+  // Create an empty credential book and verify that is is successful
+  auto cred_book_result = nearby_protocol::CredentialBook::TryCreate();
+  if (!cred_book_result.ok()) {
+    std::cout << cred_book_result.status().ToString();
+    return -1;
+  }
+
+  auto v0_byte_string = "00"      // Adv Header
+                        "03"      // Public DE header
+                        "1503"    // Length 1 Tx Power DE with value 3
+                        "260046"; // Length 2 Actions
+
+  auto v0_bytes = absl::HexStringToBytes(v0_byte_string);
+  auto v0_buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(v0_bytes);
+  nearby_protocol::RawAdvertisementPayload v0_payload(v0_buffer.value());
+
+  // Try to deserialize a V0 payload
+  auto deserialize_v0_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          v0_payload, cred_book_result.value());
+  HandleAdvertisementResult(std::move(deserialize_v0_result));
+
+  std::cout << "\n========= Example V1 Adv ==========\n";
+  std::cout << "Hex bytes: 20040326004603031505\n\n";
+
+  auto v1_byte_string = "20"     // V1 Advertisement header
+                        "04"     // Section Header
+                        "03"     // Public Identity DE header
+                        "260046" // Length 2 Actions DE
+                        "03"     // Section Header
+                        "03"     // Public Identity DE header
+                        "1505";  // Length 1 Tx Power DE with value 5
+  auto v1_bytes = absl::HexStringToBytes(v1_byte_string);
+  auto v1_buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(v1_bytes);
+  nearby_protocol::RawAdvertisementPayload v1_payload(v1_buffer.value());
+
+  // Try to deserialize a V1 payload
+  auto deserialize_v1_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          v1_payload, cred_book_result.value());
+  HandleAdvertisementResult(std::move(deserialize_v1_result));
+
+  std::cout << "\n========= User input sample ==========\n\n";
+  while (true) {
+    std::string user_input;
+    std::cout << "Enter the hex of the advertisement you would like to parse "
+                 "(see above examples): ";
+    std::cin >> user_input;
+    auto bytes = absl::HexStringToBytes(user_input);
+    auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+    if (!buffer.ok()) {
+      std::cout << "Too many bytes provided, must fit into a max length 255 "
+                   "byte BLE advertisement\n";
+      continue;
+    }
+    nearby_protocol::RawAdvertisementPayload user_input_payload(buffer.value());
+
+    // Try to deserialize user input
+    auto user_input_result =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            user_input_payload, cred_book_result.value());
+    HandleAdvertisementResult(std::move(user_input_result));
+
+    char choice;
+    do {
+      std::cout << "Do you want to continue? (Y/N) ";
+      std::cin >> choice;
+    } while (choice != 'Y' && choice != 'N' && choice != 'n' && choice != 'y');
+
+    if (choice == 'N' || choice == 'n') {
+      return 0;
+    }
+  }
+}
+
+static void SamplePanicHandler(nearby_protocol::PanicReason reason) {
+  std::cout << "Panicking! Reason: ";
+  switch (reason) {
+  case nearby_protocol::PanicReason::EnumCastFailed: {
+    std::cout << "EnumCastFailed \n";
+    break;
+  }
+  case nearby_protocol::PanicReason::AssertFailed: {
+    std::cout << "AssertFailed \n";
+    break;
+  }
+  case np_ffi::internal::PanicReason::InvalidActionBits: {
+    std::cout << "InvalidActionBits \n";
+    break;
+  }
+  }
+  std::abort();
+}
+
+void HandleAdvertisementResult(
+    nearby_protocol::DeserializeAdvertisementResult result) {
+  switch (result.GetKind()) {
+  case nearby_protocol::DeserializeAdvertisementResultKind::Error:
+    std::cout << "Error in deserializing advertisement!\n";
+    break;
+  case nearby_protocol::DeserializeAdvertisementResultKind::V0:
+    std::cout << "Successfully deserialized a V0 advertisement!\n";
+    HandleV0Adv(result.IntoV0());
+    break;
+  case nearby_protocol::DeserializeAdvertisementResultKind::V1:
+    std::cout << "Successfully deserialized a V1 advertisement\n";
+    HandleV1Adv(result.IntoV1());
+    break;
+  }
+}
+
+void HandleV0Adv(nearby_protocol::DeserializedV0Advertisement result) {
+  switch (result.GetKind()) {
+  case nearby_protocol::DeserializedV0AdvertisementKind::Legible:
+    std::cout << "\tThe Advertisement is plaintext \n";
+    HandleLegibleV0Adv(result.IntoLegible());
+    break;
+  case nearby_protocol::DeserializedV0AdvertisementKind::NoMatchingCredentials:
+    std::cout << "\tNo matching credentials found for this adv\n";
+    return;
+  }
+}
+
+void HandleLegibleV0Adv(
+    nearby_protocol::LegibleDeserializedV0Advertisement legible_adv) {
+  HandleV0Identity(legible_adv.GetIdentity());
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  std::cout << "\t\tAdv contains " << unsigned(num_des) << " data elements \n";
+  auto payload = legible_adv.IntoPayload();
+  for (int i = 0; i < num_des; i++) {
+    auto de_result = payload.TryGetDataElement(i);
+    if (!de_result.ok()) {
+      std::cout << "\t\tError getting DE at index: " << i << "\n";
+      return;
+    }
+    std::cout << "\t\tSuccessfully retrieved De at index " << i << "\n";
+    HandleDataElement(de_result.value());
+  }
+}
+
+void HandleV0Identity(nearby_protocol::DeserializedV0Identity identity) {
+  switch (identity.GetKind()) {
+  case np_ffi::internal::DeserializedV0IdentityKind::Plaintext: {
+    std::cout << "\t\tIdentity is Plaintext\n";
+    break;
+  }
+  case np_ffi::internal::DeserializedV0IdentityKind::Decrypted: {
+    std::cout << "\t\tIdentity is Encrypted\n";
+    break;
+  }
+  }
+}
+
+void HandleDataElement(nearby_protocol::V0DataElement de) {
+  switch (de.GetKind()) {
+  case nearby_protocol::V0DataElementKind::TxPower: {
+    std::cout << "\t\t\tDE Type is TxPower\n";
+    auto tx_power = de.AsTxPower();
+    std::cout << "\t\t\tpower: " << int(tx_power.tx_power) << "\n";
+    return;
+  }
+  case nearby_protocol::V0DataElementKind::Actions: {
+    std::cout << "\t\t\tDE Type is Actions\n";
+    auto actions = de.AsActions();
+    std::cout << "\t\t\tactions: " << std::bitset<32>(actions.GetAsU32())
+              << "\n";
+    return;
+  }
+  }
+}
+
+void HandleV1Adv(nearby_protocol::DeserializedV1Advertisement adv) {
+  auto legible_sections = adv.GetNumLegibleSections();
+  std::cout << "\tAdv has " << unsigned(legible_sections)
+            << " legible sections \n";
+
+  auto encrypted_sections = adv.GetNumUndecryptableSections();
+  std::cout << "\tAdv has " << unsigned(encrypted_sections)
+            << " undecryptable sections\n";
+
+  for (auto i = 0; i < legible_sections; i++) {
+    auto section_result = adv.TryGetSection(i);
+    if (!section_result.ok()) {
+      std::cout << "\tError getting Section at index: " << i << "\n";
+      return;
+    }
+    std::cout << "\tSuccessfully retrieved section at index " << i << "\n";
+    HandleV1Section(section_result.value());
+  }
+}
+
+void HandleV1Section(nearby_protocol::DeserializedV1Section section) {
+  switch (section.GetIdentityKind()) {
+  case np_ffi::internal::DeserializedV1IdentityKind::Plaintext: {
+    std::cout << "\t\tIdentity is Plaintext\n";
+    break;
+  }
+  case np_ffi::internal::DeserializedV1IdentityKind::Decrypted: {
+    std::cout << "\t\tIdentity is Encrypted\n";
+    break;
+  }
+  }
+
+  auto num_des = section.NumberOfDataElements();
+  std::cout << "\t\tSection has " << unsigned(num_des) << " data elements \n";
+  for (auto i = 0; i < num_des; i++) {
+    auto de_result = section.TryGetDataElement(i);
+    if (!de_result.ok()) {
+      std::cout << "\t\tError getting de at index: " << i << "\n";
+      return;
+    }
+    std::cout << "\t\tSuccessfully retrieved data element at index " << i
+              << "\n";
+    HandleV1DataElement(de_result.value());
+  }
+}
+
+void HandleV1DataElement(nearby_protocol::V1DataElement de) {
+  std::cout << "\t\t\tData Element type code: "
+            << unsigned(de.GetDataElementTypeCode()) << "\n";
+  std::cout << "\t\t\tPayload bytes as hex: "
+            << absl::BytesToHexString(de.GetPayload().ToString()) << "\n";
+}
diff --git a/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc b/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc
new file mode 100644
index 0000000..27e98a6
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/shared/shared_test_util.cc
@@ -0,0 +1,50 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+
+std::string PanicReasonToString(nearby_protocol::PanicReason reason) {
+  switch (reason) {
+  case nearby_protocol::PanicReason::EnumCastFailed: {
+    return "EnumCastFailed";
+  }
+  case nearby_protocol::PanicReason::AssertFailed: {
+    return "AssertFailed";
+  }
+  case np_ffi::internal::PanicReason::InvalidActionBits: {
+    return "InvalidActionBits";
+  }
+  }
+}
+
+void test_panic_handler(nearby_protocol::PanicReason reason) {
+  std::cout << "Panicking! Reason: " << PanicReasonToString(reason);
+  std::abort();
+}
+
+std::string generate_hex_string(const size_t length) {
+  char *str = new char[length];
+
+  // hexadecimal characters
+  char hex_characters[] = {'0', '1', '2', '3', '4', '5', '6', '7',
+                           '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+  size_t i;
+  for (i = 0; i < length; i++) {
+    str[i] = hex_characters[rand() % 16]; // NOLINT(cert-msc50-cpp)
+  }
+  str[length] = 0;
+  std::string result(str, length);
+  delete[] str;
+  return result;
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/shared/shared_test_util.h b/nearby/presence/np_cpp_ffi/shared/shared_test_util.h
new file mode 100644
index 0000000..52c5363
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/shared/shared_test_util.h
@@ -0,0 +1,58 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef NEARBY_PRESENCE_NP_CPP_FFI_TESTS_SHARED_TEST_UTILS_H_
+#define NEARBY_PRESENCE_NP_CPP_FFI_TESTS_SHARED_TEST_UTILS_H_
+
+#include "nearby_protocol.h"
+
+inline nearby_protocol::RawAdvertisementPayload
+    V0AdvEmpty(nearby_protocol::ByteBuffer<255>({1, {0x00}}));
+
+inline nearby_protocol::RawAdvertisementPayload
+    V0AdvSimple(nearby_protocol::ByteBuffer<255>({
+        4,
+        {0x00,       // Adv Header
+         0x03,       // Public DE header
+         0x15, 0x03} // Length 1 Tx Power DE with value 3
+    }));
+
+inline nearby_protocol::RawAdvertisementPayload
+    V1AdvSimple(nearby_protocol::ByteBuffer<255>(
+        {5,
+         {
+             0x20,      // V1 Advertisement header
+             0x03,      // Section Header
+             0x03,      // Public Identity DE header
+             0x15, 0x03 // Length 1 Tx Power DE with value 3
+         }}));
+
+inline nearby_protocol::RawAdvertisementPayload
+    V1AdvMultipleSections(nearby_protocol::ByteBuffer<255>(
+        {10,
+         {
+             0x20,             // V1 Advertisement header
+             0x04,             // Section Header
+             0x03,             // Public Identity DE header
+             0x26, 0x00, 0x46, // Length 2 Actions DE
+             0x03,             // Section Header
+             0x03,             // Public Identity DE header
+             0x15, 0x03        // Length 1 Tx Power DE with value 3
+         }}));
+
+void test_panic_handler(nearby_protocol::PanicReason reason);
+
+std::string generate_hex_string(size_t length);
+
+#endif // NEARBY_PRESENCE_NP_CPP_FFI_TESTS_SHARED_TEST_UTILS_H_
diff --git a/nearby/presence/np_cpp_ffi/tests/CMakeLists.txt b/nearby/presence/np_cpp_ffi/tests/CMakeLists.txt
new file mode 100644
index 0000000..bddda64
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+add_executable(
+        np_ffi_tests
+        deserialize_result_tests.cc
+        deserialize_v0_tests.cc
+        deserialize_v1_tests.cc
+        global_config_tests.cc
+        credential_book_tests.cc
+        byte_buffer_tests.cc
+)
+
+target_link_libraries(
+        np_ffi_tests
+        nearby_protocol
+        shared_test_util
+        GTest::gtest_main
+)
+
+if (UNIX)
+    target_link_libraries(
+            np_ffi_tests
+            dl -fsanitize=address
+    )
+elseif (MSVC)
+    target_link_libraries(
+            np_ffi_tests
+            bcrypt ntdll userenv ws2_32
+    )
+endif ()
+
+gtest_discover_tests(np_ffi_tests)
diff --git a/nearby/presence/np_cpp_ffi/tests/byte_buffer_tests.cc b/nearby/presence/np_cpp_ffi/tests/byte_buffer_tests.cc
new file mode 100644
index 0000000..4bca8ec
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/byte_buffer_tests.cc
@@ -0,0 +1,84 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on a "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include "absl/strings/escaping.h"
+#include "gtest/gtest.h"
+
+TEST(ByteBufferTests, ByteBufferMaxLength) {
+  // Each hex byte takes up 2 characters so length 510 string = 255 bytes of hex
+  auto str_bytes = generate_hex_string(510);
+  auto bytes = absl::HexStringToBytes(str_bytes);
+  auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+  ASSERT_TRUE(buffer.ok());
+  auto string = buffer.value().ToString();
+  ASSERT_EQ(bytes, string);
+}
+
+TEST(ByteBufferTooLarge, ByteBufferInvalidLength) {
+  // 256 bytes should fail
+  auto str_bytes = generate_hex_string(512);
+  auto bytes = absl::HexStringToBytes(str_bytes);
+  auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+  ASSERT_FALSE(buffer.ok());
+}
+
+TEST(ByteBufferTests, ByteBufferRoundTrip) {
+  auto bytes = absl::HexStringToBytes("2003031503");
+  auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+  auto string = buffer.value().ToString();
+  ASSERT_EQ(bytes, string);
+}
+
+TEST(ByteBufferTests, ByteBufferPayloadWrongSize) {
+  auto bytes = absl::HexStringToBytes("1111111111111111111111");
+  auto buffer = nearby_protocol::ByteBuffer<10>::CopyFrom(bytes);
+  ASSERT_FALSE(buffer.ok());
+}
+
+TEST(ByteBufferTests, ByteBufferEmptyString) {
+  auto bytes = absl::HexStringToBytes("");
+  auto buffer = nearby_protocol::ByteBuffer<10>::CopyFrom(bytes);
+  ASSERT_TRUE(buffer.ok());
+}
+
+TEST(ByteBufferTests, ByteBufferToVector) {
+  auto bytes = absl::HexStringToBytes("1234567890");
+  auto buffer = nearby_protocol::ByteBuffer<100>::CopyFrom(bytes);
+  auto vec = buffer.value().ToVector();
+  std::vector<uint8_t> expected{0x12, 0x34, 0x56, 0x78, 0x90};
+  ASSERT_EQ(vec, expected);
+}
+
+TEST(ByteBufferTests, ByteBufferEndToEndPayloadAsString) {
+  std::string bytes = absl::HexStringToBytes("2003031503");
+  auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+  ASSERT_TRUE(buffer.ok());
+
+  nearby_protocol::RawAdvertisementPayload adv(buffer.value());
+
+  auto credential_book = nearby_protocol::CredentialBook::TryCreate();
+  auto str = nearby_protocol::Deserializer::DeserializeAdvertisement(
+                 adv, credential_book.value())
+                 .IntoV1()
+                 .TryGetSection(0)
+                 .value()
+                 .TryGetDataElement(0)
+                 .value()
+                 .GetPayload()
+                 .ToString();
+  ASSERT_EQ(str, absl::HexStringToBytes("03"));
+}
diff --git a/nearby/presence/np_cpp_ffi/tests/credential_book_tests.cc b/nearby/presence/np_cpp_ffi/tests/credential_book_tests.cc
new file mode 100644
index 0000000..5eb9ce2
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/credential_book_tests.cc
@@ -0,0 +1,80 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include "gtest/gtest.h"
+
+TEST(NpFfiCredentialBookTests, TestMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Move the credential book into a new object. Using the new object should
+  // still result in success
+  nearby_protocol::CredentialBook next_book(std::move(book));
+  auto deserialize_result_moved =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty,
+                                                              next_book);
+  ASSERT_EQ(deserialize_result_moved.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // The old object should now lead to use after moved assert failure
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   nearby_protocol::Deserializer::DeserializeAdvertisement(
+                       V0AdvEmpty, book), // NOLINT(bugprone-use-after-move)
+               "");
+
+  // moving again should still lead to a use after moved assert failure
+  nearby_protocol::CredentialBook another_moved_book(std::move(book));
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   nearby_protocol::Deserializer::DeserializeAdvertisement(
+                       V0AdvEmpty, another_moved_book),
+               "");
+}
+
+TEST(NpFfiCredentialBookTests, TestMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // create a second empty credential book
+  auto other_book = nearby_protocol::CredentialBook::TryCreate().value();
+  other_book = std::move(book);
+
+  // new credential book should still be successful
+  auto deserialize_result_other =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty,
+                                                              other_book);
+  ASSERT_EQ(deserialize_result_other.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // The old object should now lead to use after moved assert failure
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   nearby_protocol::Deserializer::DeserializeAdvertisement(
+                       V0AdvEmpty, book), // NOLINT(bugprone-use-after-move)
+               "");
+
+  // moving again should still lead to a use after moved assert failure
+  auto another_moved_book = std::move(book);
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   nearby_protocol::Deserializer::DeserializeAdvertisement(
+                       V0AdvEmpty, another_moved_book),
+               "");
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/tests/deserialize_result_tests.cc b/nearby/presence/np_cpp_ffi/tests/deserialize_result_tests.cc
new file mode 100644
index 0000000..e3a44d5
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/deserialize_result_tests.cc
@@ -0,0 +1,286 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include "absl/strings/escaping.h"
+#include "gtest/gtest.h"
+
+TEST(NpFfiDeserializeResultTests, TestResultMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Now move the result into a new value, and make sure its still valid
+  nearby_protocol::DeserializeAdvertisementResult moved_result(
+      std::move(result));
+  ASSERT_EQ(moved_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto v0 = moved_result.IntoV0();
+  ASSERT_EQ(v0.GetKind(),
+            np_ffi::internal::DeserializedV0AdvertisementKind::Legible);
+
+  // trying to use the moved object should result in a use after free which
+  // triggers an abort
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   result.IntoV0(), // NOLINT(bugprone-use-after-move
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = result.GetKind(), "");
+
+  // moving again should still preserve the moved state and also lead to an
+  // abort
+  nearby_protocol::DeserializeAdvertisementResult moved_again(
+      std::move(moved_result));
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoV0(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetKind(), "");
+}
+
+TEST(NpFfiDeserializeResultTests, DeserializeFromStringView) {
+  auto bytes = absl::HexStringToBytes("00031503");
+  auto buffer = nearby_protocol::ByteBuffer<255>::CopyFrom(bytes);
+  ASSERT_TRUE(buffer.ok());
+
+  nearby_protocol::RawAdvertisementPayload adv(buffer.value());
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          adv, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+  auto payload = legible_adv.IntoPayload();
+
+  auto de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(de_result.ok());
+  auto de = de_result.value();
+
+  ASSERT_EQ(de.GetKind(), nearby_protocol::V0DataElementKind::TxPower);
+  auto tx_power = de.AsTxPower();
+  ASSERT_EQ(tx_power.tx_power, 3);
+}
+
+TEST(NpFfiDeserializeResultTests, TestResultMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // create a second result
+  auto another_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(another_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // move result into another_result. The original another_result should be
+  // de-allocated.
+  another_result = std::move(result);
+  auto v0 = another_result.IntoV0();
+  ASSERT_EQ(v0.GetKind(),
+            np_ffi::internal::DeserializedV0AdvertisementKind::Legible);
+
+  // original result should now be invalid, using it will trigger a use after
+  // free abort.
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   result.IntoV0(), // NOLINT(bugprone-use-after-move)
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = result.GetKind(), "");
+
+  // moving again should still lead to an error
+  auto moved_again = std::move(result);
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoV0(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetKind(), "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestInvalidPayloadHeader) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+
+  // An invalid header result should result in error
+  nearby_protocol::RawAdvertisementPayload InvalidHeaderPayload(
+      nearby_protocol::ByteBuffer<255>({1, {0xFF}}));
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          InvalidHeaderPayload, maybe_credential_book.value());
+
+  // Errors cannot be casted into further types
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::Error);
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV0(); },
+               "");
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV1(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestInvalidV0Cast) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V1);
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV0(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestInvalidV1Cast) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+
+  // Create an empty credential book and verify that is is successful
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV1(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, V0UseResultTwice) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Once this goes out of scope, the entire result will be invalid
+  auto v0_adv = deserialize_result.IntoV0();
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV0(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, V1UseResultTwice) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+
+  // Once this goes out of scope, the entire result will be invalid
+  auto v1_adv = deserialize_result.IntoV1();
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV1(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, IntoV0AfterOutOfScope) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Once this goes out of scope, the entire result will be invalid
+  { auto v0_adv = deserialize_result.IntoV0(); }
+
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV0(); },
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, IntoV1AfterOutOfScope) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+
+  // Once this goes out of scope, the entire result will be invalid
+  { auto v0_adv = deserialize_result.IntoV1(); }
+
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV1(); },
+               "");
+}
+
+TEST(NpFfiDeserializeV0Tests, V0ResultKindAfterOutOfScope) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Once this goes out of scope, the entire result will be invalid
+  { auto v0_adv = deserialize_result.IntoV0(); }
+
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH(
+      { [[maybe_unused]] auto failure = deserialize_result.GetKind(); }, "");
+}
+
+TEST(NpFfiDeserializeResultTests, V1ResultKindAfterOutOfScope) {
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, book_result.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+
+  // Once this goes out of scope, the entire result will be invalid
+  { auto v0_adv = deserialize_result.IntoV1(); }
+
+  // Calling intoV0 for a second time is a programmer error and will result
+  // in a crash.
+  ASSERT_DEATH(
+      { [[maybe_unused]] auto failure = deserialize_result.GetKind(); }, "");
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/tests/deserialize_v0_tests.cc b/nearby/presence/np_cpp_ffi/tests/deserialize_v0_tests.cc
new file mode 100644
index 0000000..9781720
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/deserialize_v0_tests.cc
@@ -0,0 +1,610 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include "gtest/gtest.h"
+
+TEST(NpFfiDeserializeV0Tests, V0SingleDataElementTxPower) {
+  nearby_protocol::RawAdvertisementPayload adv(
+      nearby_protocol::ByteBuffer<255>({
+          4,
+          {0x00,       // Adv Header
+           0x03,       // Public DE header
+           0x15, 0x03} // Length 1 Tx Power DE with value 3
+      }));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          adv, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+  auto payload = legible_adv.IntoPayload();
+
+  auto de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(de_result.ok());
+  auto de = de_result.value();
+
+  ASSERT_EQ(de.GetKind(), nearby_protocol::V0DataElementKind::TxPower);
+  auto tx_power = de.AsTxPower();
+  ASSERT_EQ(tx_power.tx_power, 3);
+}
+
+TEST(NpFfiDeserializeV0Tests, V0LengthOneActionsDataElement) {
+  nearby_protocol::RawAdvertisementPayload adv(
+      nearby_protocol::ByteBuffer<255>({
+          4,
+          {0x00,       // Adv Header
+           0x03,       // Public DE header
+           0x16, 0x00} // Length 1 Actions DE
+      }));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          adv, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+  auto payload = legible_adv.IntoPayload();
+
+  auto de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(de_result.ok());
+  auto de = de_result.value();
+
+  ASSERT_EQ(de.GetKind(), nearby_protocol::V0DataElementKind::Actions);
+  auto actions = de.AsActions();
+  ASSERT_EQ(actions.GetAsU32(), 0);
+}
+
+TEST(NpFfiDeserializeV0Tests, V0LengthTwoActionsDataElement) {
+  nearby_protocol::RawAdvertisementPayload adv(
+      nearby_protocol::ByteBuffer<255>({
+          5,
+          {0x00,             // Adv Header
+           0x03,             // Public DE header
+           0x26, 0xD0, 0x46} // Length 2 Actions DE
+      }));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          adv, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+
+  auto payload = legible_adv.IntoPayload();
+  auto de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(de_result.ok());
+  auto de = de_result.value();
+
+  ASSERT_EQ(de.GetKind(), nearby_protocol::V0DataElementKind::Actions);
+  auto actions = de.AsActions();
+  ASSERT_EQ(actions.GetAsU32(), 0xD0460000);
+
+  ASSERT_TRUE(
+      actions.HasAction(nearby_protocol::BooleanActionType::NearbyShare));
+  ASSERT_TRUE(actions.HasAction(nearby_protocol::BooleanActionType::Finder));
+  ASSERT_TRUE(
+      actions.HasAction(nearby_protocol::BooleanActionType::FastPairSass));
+
+  ASSERT_FALSE(
+      actions.HasAction(nearby_protocol::BooleanActionType::ActiveUnlock));
+  ASSERT_FALSE(
+      actions.HasAction(nearby_protocol::BooleanActionType::InstantTethering));
+  ASSERT_FALSE(actions.HasAction(nearby_protocol::BooleanActionType::PhoneHub));
+  ASSERT_FALSE(
+      actions.HasAction(nearby_protocol::BooleanActionType::PresenceManager));
+
+  ASSERT_EQ(actions.GetContextSyncSequenceNumber(), 0xD);
+}
+
+TEST(NpFfiDeserializeV0Tests, V0MultipleDataElements) {
+  nearby_protocol::RawAdvertisementPayload adv(nearby_protocol::ByteBuffer<255>(
+      {7,
+       {
+           0x00,             // Adv Header
+           0x03,             // Public DE header
+           0x15, 0x05,       // Tx Power value 5
+           0x26, 0x00, 0x46, // Length 2 Actions
+       }}));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          adv, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 2);
+  auto payload = legible_adv.IntoPayload();
+
+  auto first_de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(first_de_result.ok());
+  auto first_de = first_de_result.value();
+
+  ASSERT_EQ(first_de.GetKind(), nearby_protocol::V0DataElementKind::TxPower);
+  auto power = first_de.AsTxPower();
+  ASSERT_EQ(power.tx_power, 5);
+
+  auto second_de_result = payload.TryGetDataElement(1);
+  ASSERT_TRUE(second_de_result.ok());
+  auto second_de = second_de_result.value();
+
+  ASSERT_EQ(second_de.GetKind(), nearby_protocol::V0DataElementKind::Actions);
+  auto actions = second_de.AsActions();
+  ASSERT_EQ(actions.GetAsU32(), 0x00460000);
+  ASSERT_EQ(actions.GetContextSyncSequenceNumber(), 0);
+}
+
+TEST(NpFfiDeserializeV0Tests, V0EmptyPayload) {
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 0);
+  auto payload = legible_adv.IntoPayload();
+
+  auto result = payload.TryGetDataElement(0);
+  ASSERT_FALSE(result.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(result.status()));
+}
+
+TEST(NpFfiDeserializeV0Tests, TestV0AdvMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto adv = result.IntoV0();
+
+  // Now move the adv into a new value, and make sure its still valid
+  nearby_protocol::DeserializedV0Advertisement moved_adv(std::move(adv));
+  ASSERT_EQ(moved_adv.GetKind(),
+            np_ffi::internal::DeserializedV0AdvertisementKind::Legible);
+
+  // trying to use the moved object should result in a use after free which
+  // triggers an abort
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   adv.IntoLegible(), // NOLINT(bugprone-use-after-move
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = adv.GetKind(), "");
+
+  // moving again should still preserve the moved state and also lead to an
+  // abort
+  nearby_protocol::DeserializedV0Advertisement moved_again(std::move(adv));
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoLegible(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetKind(), "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestV0AdvMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto adv = result.IntoV0();
+
+  // create a second result
+  auto another_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(another_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto adv2 = another_result.IntoV0();
+
+  // move adv2 into adv, the original should be deallocated by assignment
+  adv2 = std::move(adv);
+  ASSERT_EQ(adv2.GetKind(),
+            np_ffi::internal::DeserializedV0AdvertisementKind::Legible);
+
+  // original result should now be invalid, using it will trigger a use after
+  // free abort.
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   adv.IntoLegible(), // NOLINT(bugprone-use-after-move)
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = adv.GetKind(), "");
+
+  // moving again should still lead to an error
+  auto moved_again = std::move(adv);
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoLegible(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetKind(), "");
+}
+
+TEST(NpFfiDeserializeV0Tests, V0AdvDestructor) {
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV0Advertisements(1);
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+  {
+    auto deserialize_result =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V0AdvEmpty, book_result.value());
+    ASSERT_EQ(deserialize_result.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+    // Going over max amount should result in error
+    auto deserialize_result2 =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V0AdvEmpty, book_result.value());
+    ASSERT_EQ(deserialize_result2.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::Error);
+
+    // Calling IntoV0() should move the underlying resources into the v0 object
+    // when both go out of scope only one should be freed
+    auto v0_adv = deserialize_result.IntoV0();
+  }
+
+  // Now that the first v0 adv is out of scope, it should be de-allocated which
+  // will create room for one more to be created.
+  auto deserialize_result3 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, book_result.value());
+  ASSERT_EQ(deserialize_result3.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+}
+
+TEST(NpFfiDeserializeV0Tests, V0AdvUseAfterMove) {
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvSimple, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+
+  // Moves the adv into a legible adv, so the original v0_adv is no longer valid
+  [[maybe_unused]] auto legible_adv = v0_adv.IntoLegible();
+  ASSERT_DEATH([[maybe_unused]] auto failure = v0_adv.GetKind(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = v0_adv.IntoLegible(), "");
+}
+
+TEST(NpFfiDeserializeV0Tests, TestLegibleAdvMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto legible = result.IntoV0().IntoLegible();
+
+  // Now move the adv into a new value, and make sure its still valid
+  nearby_protocol::LegibleDeserializedV0Advertisement moved(std::move(legible));
+  ASSERT_EQ(moved.GetNumberOfDataElements(), 0);
+  ASSERT_EQ(moved.GetIdentity().GetKind(),
+            np_ffi::internal::DeserializedV0IdentityKind::Plaintext);
+
+  // trying to use the moved object should result in a use after free which
+  // triggers an abort
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   legible.GetIdentity(), // NOLINT(bugprone-use-after-move
+               "");
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure = legible.GetNumberOfDataElements(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = legible.IntoPayload(), "");
+
+  // moving again should still preserve the moved state and also lead to an
+  // abort
+  nearby_protocol::LegibleDeserializedV0Advertisement moved_again(
+      std::move(legible));
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetIdentity(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   moved_again.GetNumberOfDataElements(),
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoPayload(), "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestLegibleAdvMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto legible = result.IntoV0().IntoLegible();
+
+  // create a second result
+  auto another_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(another_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto legible2 = another_result.IntoV0().IntoLegible();
+
+  // move adv2 into adv, the original should be deallocated by assignment
+  legible2 = std::move(legible);
+  ASSERT_EQ(legible2.GetIdentity().GetKind(),
+            np_ffi::internal::DeserializedV0IdentityKind::Plaintext);
+
+  // original result should now be invalid, using it will trigger a use after
+  // free abort.
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   legible.GetIdentity(), // NOLINT(bugprone-use-after-move)
+               "");
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure = legible.GetNumberOfDataElements(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = legible.IntoPayload(), "");
+
+  // moving again should still lead to an error
+  auto moved_again = std::move(legible);
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.IntoPayload(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.GetIdentity(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   moved_again.GetNumberOfDataElements(),
+               "");
+}
+
+nearby_protocol::LegibleDeserializedV0Advertisement
+CreateLegibleAdv(nearby_protocol::CredentialBook &book) {
+  auto adv = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  auto v0_adv = adv.IntoV0();
+  return v0_adv.IntoLegible();
+}
+
+TEST(NpFfiDeserializeV0Tests, V0LegibleAdvUseAfterMove) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto legible_adv = CreateLegibleAdv(book);
+
+  // Should be able to use the valid legible adv even though its original parent
+  // is now out of scope.
+  ASSERT_EQ(legible_adv.GetIdentity().GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+  ASSERT_EQ(legible_adv.GetNumberOfDataElements(), 1);
+  [[maybe_unused]] auto payload = legible_adv.IntoPayload();
+
+  // now that the legible adv has moved into the payload it should no longer be
+  // valid
+  ASSERT_DEATH([[maybe_unused]] auto failure = legible_adv.GetIdentity(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   legible_adv.GetNumberOfDataElements(),
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = legible_adv.IntoPayload(), "");
+}
+
+TEST(NpFfiDeserializeV0Tests, LegibleAdvDestructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV0Advertisements(1);
+  {
+    auto legible_adv = CreateLegibleAdv(book);
+
+    // check that legible adv is valid.
+    ASSERT_EQ(legible_adv.GetIdentity().GetKind(),
+              nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+    ASSERT_EQ(legible_adv.GetNumberOfDataElements(), 1);
+
+    // allocation slots should be full
+    ASSERT_EQ(nearby_protocol::Deserializer::DeserializeAdvertisement(
+                  V0AdvSimple, book)
+                  .GetKind(),
+              nearby_protocol::DeserializeAdvertisementResultKind::Error);
+  }
+
+  // Verify the handle was de-allocated when legible adv went out of scope
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+}
+
+nearby_protocol::V0Payload
+CreatePayload(nearby_protocol::CredentialBook &book) {
+  auto legible_adv = CreateLegibleAdv(book);
+  return legible_adv.IntoPayload();
+}
+
+TEST(NpFfiDeserializeV0Tests, V0PayloadDestructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV0Advertisements(1);
+  {
+    auto payload = CreatePayload(book);
+
+    // check that payload adv is valid even though its parent is out of scope
+    ASSERT_TRUE(payload.TryGetDataElement(0).ok());
+
+    // allocation slots should be full
+    ASSERT_EQ(nearby_protocol::Deserializer::DeserializeAdvertisement(
+                  V0AdvSimple, book)
+                  .GetKind(),
+              nearby_protocol::DeserializeAdvertisementResultKind::Error);
+  }
+
+  // Now that the payload is out of scope its destructor should have been called
+  // freeing the parent handle
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+}
+
+TEST(NpFfiDeserializeV0Tests, TestV0PayloadMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto payload = result.IntoV0().IntoLegible().IntoPayload();
+
+  // Now move the adv into a new value, and make sure its still valid
+  nearby_protocol::V0Payload moved(std::move(payload));
+  ASSERT_TRUE(moved.TryGetDataElement(0).ok());
+  ASSERT_TRUE(absl::IsOutOfRange(moved.TryGetDataElement(1).status()));
+
+  // trying to use the moved object should result in a use after free which
+  // triggers an abort
+  ASSERT_DEATH([[maybe_unused]] auto failure = payload.TryGetDataElement(
+                   0), // NOLINT(bugprone-use-after-move
+               "");
+
+  // moving again should still preserve the moved state and also lead to an
+  // abort
+  nearby_protocol::V0Payload moved_again(std::move(payload));
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.TryGetDataElement(0),
+               "");
+}
+
+TEST(NpFfiDeserializeResultTests, TestV0PayloadMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto payload = result.IntoV0().IntoLegible().IntoPayload();
+
+  // create a second result
+  auto another_result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V0AdvSimple, book);
+  ASSERT_EQ(another_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto payload2 = another_result.IntoV0().IntoLegible().IntoPayload();
+
+  // original should be deallocated by assignment
+  payload2 = std::move(payload);
+  ASSERT_TRUE(payload2.TryGetDataElement(0).ok());
+
+  // original result should now be invalid, using it will trigger a use after
+  // free abort.
+  ASSERT_DEATH([[maybe_unused]] auto failure = payload.TryGetDataElement(
+                   0), // NOLINT(bugprone-use-after-move)
+               "");
+
+  // moving again should still lead to an error
+  auto moved_again = std::move(payload);
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.TryGetDataElement(0),
+               "");
+}
+
+TEST(NpFfiDeserializeV0Tests, InvalidDataElementCast) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvSimple, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+  auto payload = legible_adv.IntoPayload();
+
+  auto de_result = payload.TryGetDataElement(0);
+  ASSERT_TRUE(de_result.ok());
+  auto de = de_result.value();
+
+  ASSERT_EQ(de.GetKind(), nearby_protocol::V0DataElementKind::TxPower);
+  ASSERT_DEATH([[maybe_unused]] auto failure = de.AsActions();, "");
+}
+
+TEST(NpFfiDeserializeV0Tests, InvalidDataElementIndex) {
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvSimple, maybe_credential_book.value());
+
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V0);
+  auto v0_adv = deserialize_result.IntoV0();
+
+  ASSERT_EQ(v0_adv.GetKind(),
+            nearby_protocol::DeserializedV0AdvertisementKind::Legible);
+  auto legible_adv = v0_adv.IntoLegible();
+  auto identity = legible_adv.GetIdentity();
+  ASSERT_EQ(identity.GetKind(),
+            nearby_protocol::DeserializedV0IdentityKind::Plaintext);
+
+  auto num_des = legible_adv.GetNumberOfDataElements();
+  ASSERT_EQ(num_des, 1);
+  auto payload = legible_adv.IntoPayload();
+
+  auto de_result = payload.TryGetDataElement(1);
+  ASSERT_FALSE(de_result.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(de_result.status()));
+}
diff --git a/nearby/presence/np_cpp_ffi/tests/deserialize_v1_tests.cc b/nearby/presence/np_cpp_ffi/tests/deserialize_v1_tests.cc
new file mode 100644
index 0000000..48b881b
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/deserialize_v1_tests.cc
@@ -0,0 +1,254 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include "gtest/gtest.h"
+
+TEST(NpFfiDeserializeV1Tests, V1SimpleTestCase) {
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, maybe_credential_book.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V1);
+
+  auto v1_adv = deserialize_result.IntoV1();
+  ASSERT_EQ(v1_adv.GetNumLegibleSections(), 1);
+  ASSERT_EQ(v1_adv.GetNumUndecryptableSections(), 0);
+
+  auto invalid = v1_adv.TryGetSection(1);
+  ASSERT_FALSE(invalid.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(invalid.status()));
+
+  auto section = v1_adv.TryGetSection(0);
+  ASSERT_TRUE(section.ok());
+  ASSERT_EQ(section.value().GetIdentityKind(),
+            nearby_protocol::DeserializedV1IdentityKind::Plaintext);
+  ASSERT_EQ(section.value().NumberOfDataElements(), 1);
+
+  auto invalid_de = section.value().TryGetDataElement(1);
+  ASSERT_FALSE(invalid_de.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(invalid_de.status()));
+
+  auto de = section.value().TryGetDataElement(0);
+  ASSERT_TRUE(de.ok());
+  ASSERT_EQ(de.value().GetDataElementTypeCode(), 5);
+
+  auto payload = de.value().GetPayload();
+  auto vec = payload.ToVector();
+  std::vector<uint8_t> expected{3};
+  ASSERT_EQ(vec, expected);
+}
+
+TEST(NpFfiDeserializeV1Tests, V1MultipleSections) {
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvMultipleSections, maybe_credential_book.value());
+  ASSERT_EQ(deserialize_result.GetKind(),
+            nearby_protocol::DeserializeAdvertisementResultKind::V1);
+
+  auto v1_adv = deserialize_result.IntoV1();
+  ASSERT_EQ(v1_adv.GetNumLegibleSections(), 2);
+  ASSERT_EQ(v1_adv.GetNumUndecryptableSections(), 0);
+
+  auto invalid = v1_adv.TryGetSection(2);
+  ASSERT_FALSE(invalid.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(invalid.status()));
+
+  auto section = v1_adv.TryGetSection(0);
+  ASSERT_TRUE(section.ok());
+  ASSERT_EQ(section.value().GetIdentityKind(),
+            nearby_protocol::DeserializedV1IdentityKind::Plaintext);
+  ASSERT_EQ(section.value().NumberOfDataElements(), 1);
+
+  auto invalid_de = section.value().TryGetDataElement(1);
+  ASSERT_FALSE(invalid_de.ok());
+  ASSERT_TRUE(absl::IsOutOfRange(invalid_de.status()));
+
+  auto de = section.value().TryGetDataElement(0);
+  ASSERT_TRUE(de.ok());
+  ASSERT_EQ(de.value().GetDataElementTypeCode(), 6);
+
+  auto payload = de.value().GetPayload();
+  auto vec = payload.ToVector();
+  std::vector<uint8_t> expected{0x00, 0x46};
+  ASSERT_EQ(vec, expected);
+
+  auto section2 = v1_adv.TryGetSection(1);
+  ASSERT_TRUE(section2.ok());
+  ASSERT_EQ(section2.value().GetIdentityKind(),
+            nearby_protocol::DeserializedV1IdentityKind::Plaintext);
+  ASSERT_EQ(section2.value().NumberOfDataElements(), 1);
+}
+
+TEST(NpFfiDeserializeV1Tests, TestV1AdvMoveConstructor) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V1AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+  auto adv = result.IntoV1();
+
+  // Now move the adv into a new value, and make sure its still valid
+  nearby_protocol::DeserializedV1Advertisement moved_adv(std::move(adv));
+  ASSERT_EQ(moved_adv.GetNumLegibleSections(), 1);
+
+  // trying to use the moved object should result in a use after free which
+  // triggers an abort
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure =
+          adv.GetNumLegibleSections(), // NOLINT(bugprone-use-after-move
+      "");
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure = adv.GetNumUndecryptableSections(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = adv.TryGetSection(0), "");
+
+  // moving again should still preserve the moved state and also lead to an
+  // abort
+  nearby_protocol::DeserializedV1Advertisement moved_again(std::move(adv));
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure =
+          moved_again.GetNumLegibleSections(), // NOLINT(bugprone-use-after-move
+      "");
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   moved_again.GetNumUndecryptableSections(),
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.TryGetSection(0),
+               "");
+}
+
+TEST(NpFfiDeserializeV1Tests, TestV1AdvMoveAssignment) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V1AdvSimple, book);
+  ASSERT_EQ(result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+  auto adv = result.IntoV1();
+
+  // create a second result
+  auto another_result = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V1AdvSimple, book);
+  ASSERT_EQ(another_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+  auto adv2 = another_result.IntoV1();
+
+  // move adv2 into adv, the original should be deallocated by assignment
+  adv2 = std::move(adv);
+  ASSERT_EQ(adv2.GetNumLegibleSections(), 1);
+
+  // original result should now be invalid, using it will trigger a use after
+  // free abort.
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure =
+          adv.GetNumLegibleSections(), // NOLINT(bugprone-use-after-move
+      "");
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure = adv.GetNumUndecryptableSections(), "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = adv.TryGetSection(0), "");
+
+  // moving again should still lead to an error
+  auto moved_again = std::move(adv);
+  ASSERT_DEATH(
+      [[maybe_unused]] auto failure =
+          moved_again.GetNumLegibleSections(), // NOLINT(bugprone-use-after-move
+      "");
+  ASSERT_DEATH([[maybe_unused]] auto failure =
+                   moved_again.GetNumUndecryptableSections(),
+               "");
+  ASSERT_DEATH([[maybe_unused]] auto failure = moved_again.TryGetSection(0),
+               "");
+}
+
+nearby_protocol::DeserializedV1Section
+GetSection(nearby_protocol::CredentialBook &book) {
+  // Create the adv in this scope, so its de-allocated at the end of this call.
+  // The section should still be valid
+  auto v1_adv =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V1AdvSimple, book)
+          .IntoV1();
+  auto section = v1_adv.TryGetSection(0);
+  return section.value();
+}
+
+bool TryDeserializeNewV1Adv(nearby_protocol::CredentialBook &book) {
+  auto adv = nearby_protocol::Deserializer::DeserializeAdvertisement(
+      V1AdvSimple, book);
+  return adv.GetKind() ==
+         np_ffi::internal::DeserializeAdvertisementResultKind::V1;
+}
+
+TEST(NpFfiDeserializeV1Tests, TestSectionOwnership) {
+  // Capping the max number so we can verify that de-allocations are happening
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV1Advertisements(1);
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+
+  {
+    auto section = GetSection(maybe_credential_book.value());
+    ASSERT_EQ(section.GetIdentityKind(),
+              nearby_protocol::DeserializedV1IdentityKind::Plaintext);
+    ASSERT_EQ(section.NumberOfDataElements(), 1);
+    ASSERT_TRUE(section.TryGetDataElement(0).ok());
+
+    ASSERT_FALSE(TryDeserializeNewV1Adv(maybe_credential_book.value()));
+  }
+
+  // now that the section has gone out of scope, deserializing a new adv should
+  // succeed
+  ASSERT_TRUE(TryDeserializeNewV1Adv(maybe_credential_book.value()));
+}
+
+void NestedGetSectionsPart2(nearby_protocol::DeserializedV1Advertisement &adv,
+                            nearby_protocol::CredentialBook &book) {
+  { auto section = adv.TryGetSection(1); }
+  assert(!TryDeserializeNewV1Adv(book));
+}
+
+nearby_protocol::DeserializedV1Section
+NestedGetSections(nearby_protocol::CredentialBook &book) {
+  auto v1_adv = nearby_protocol::Deserializer::DeserializeAdvertisement(
+                    V1AdvMultipleSections, book)
+                    .IntoV1();
+  auto section = v1_adv.TryGetSection(0);
+  NestedGetSectionsPart2(v1_adv, book);
+  return section.value();
+}
+
+// Make sure handle stays in scope until all of the sections and adv have gone
+// out of scope
+TEST(NpFfiDeserializeV1Tests, TestSectionOwnershipMultipleSections) {
+  // Capping the max number so we can verify that de-allocations are happening
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV1Advertisements(1);
+  auto maybe_credential_book = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(maybe_credential_book.ok());
+  {
+    auto section = NestedGetSections(maybe_credential_book.value());
+    ASSERT_EQ(section.GetIdentityKind(),
+              nearby_protocol::DeserializedV1IdentityKind::Plaintext);
+    ASSERT_EQ(section.NumberOfDataElements(), 1);
+
+    ASSERT_FALSE(TryDeserializeNewV1Adv(maybe_credential_book.value()));
+  }
+
+  // now that the section has gone out of scope, deserializing a new adv should
+  // succeed
+  ASSERT_TRUE(TryDeserializeNewV1Adv(maybe_credential_book.value()));
+}
\ No newline at end of file
diff --git a/nearby/presence/np_cpp_ffi/tests/global_config_tests.cc b/nearby/presence/np_cpp_ffi/tests/global_config_tests.cc
new file mode 100644
index 0000000..e120aee
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/global_config_tests.cc
@@ -0,0 +1,205 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "nearby_protocol.h"
+#include "shared_test_util.h"
+
+#include <iostream>
+
+#include "gtest/gtest.h"
+
+TEST(NpFfiGlobalConfigTests, TestPanicHandler) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Now try to cast the result into the wrong type and verify the process
+  // aborts
+  ASSERT_DEATH({ [[maybe_unused]] auto failure = deserialize_result.IntoV1(); },
+               "");
+}
+
+TEST(NpFfiGlobalConfigTests, TestPanicHandlerTwice) {
+  ASSERT_TRUE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+
+  // Second time trying to set should fail
+  ASSERT_FALSE(
+      nearby_protocol::GlobalConfig::SetPanicHandler(test_panic_handler));
+}
+
+// There is not much we can actually test here since this will affect memory
+// consumption. This is more of just a simple check that things still work after
+// configuring this
+TEST(NpFfiGlobalConfigTests, TestSetMaxShardsDefault) {
+  // 0 should still work as default behavior
+  nearby_protocol::GlobalConfig::SetNumShards(0);
+
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto book2 = nearby_protocol::CredentialBook::TryCreate().value();
+  auto book3 = nearby_protocol::CredentialBook::TryCreate().value();
+  auto deserialize_result =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+
+  // Should still work
+  ASSERT_EQ(deserialize_result.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+  // Call again with a lower number, should have no effect. books 2 and 3 should
+  // still work.
+  nearby_protocol::GlobalConfig::SetNumShards(1);
+  auto deserialize_result_2 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty,
+                                                              book2);
+  ASSERT_EQ(deserialize_result_2.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto deserialize_result_3 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty,
+                                                              book3);
+  ASSERT_EQ(deserialize_result_3.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+}
+
+TEST(NpFfiGlobalConfigTests, TestSetMaxShardsSmall) {
+  nearby_protocol::GlobalConfig::SetNumShards(1);
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+
+  // should still be able to parse 2 payloads with only one shard
+  auto deserialize_result1 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(deserialize_result1.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+  auto deserialize_result2 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(V0AdvEmpty, book);
+  ASSERT_EQ(deserialize_result2.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+}
+
+TEST(NpFfiGlobalConfigTests, TestSetMaxCredBooks) {
+  nearby_protocol::GlobalConfig::SetMaxNumCredentialBooks(1);
+  auto book1_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book1_result.ok());
+
+  auto book2_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_FALSE(book2_result.ok());
+  ASSERT_TRUE(absl::IsResourceExhausted(book2_result.status()));
+}
+
+TEST(NpFfiGlobalConfigTests, TestSetMaxCredBooksAfterFirstCall) {
+  auto book = nearby_protocol::CredentialBook::TryCreate().value();
+  auto book2 = nearby_protocol::CredentialBook::TryCreate().value();
+  auto book3 = nearby_protocol::CredentialBook::TryCreate().value();
+
+  // setting this after books have already been created should have no affect
+  nearby_protocol::GlobalConfig::SetMaxNumCredentialBooks(1);
+  auto book4_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book4_result.ok());
+}
+
+TEST(NpFfiGlobalConfigTests, TestSetMaxV0Advs) {
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV0Advertisements(1);
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  {
+    auto deserialize_result =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V0AdvEmpty, book_result.value());
+    ASSERT_EQ(deserialize_result.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+
+    // Going over max amount should result in error
+    auto deserialize_result2 =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V0AdvEmpty, book_result.value());
+    ASSERT_EQ(deserialize_result2.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::Error);
+  }
+
+  // Now that the first v0 adv is out of scope, it will be de-allocated which
+  // will create room for one more to be created.
+  auto deserialize_result3 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V0AdvEmpty, book_result.value());
+  ASSERT_EQ(deserialize_result3.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V0);
+}
+
+TEST(NpFfiGlobalConfigTests, TestSetMaxV1Advs) {
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV1Advertisements(1);
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  {
+    auto deserialize_result =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V1AdvSimple, book_result.value());
+    ASSERT_EQ(deserialize_result.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+
+    // Going over max amount should result in error
+    auto deserialize_result2 =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V1AdvSimple, book_result.value());
+    ASSERT_EQ(deserialize_result2.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::Error);
+  }
+
+  // Now that the first v1 adv is out of scope, it will be de-allocated which
+  // will create room for one more to be created.
+  auto deserialize_result3 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, book_result.value());
+  ASSERT_EQ(deserialize_result3.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+}
+
+// Same test case as above, but verifies that the de-allocation still succeeds
+// after calling IntoV1() and that no double frees occur.
+TEST(NpFfiGlobalConfigTests, TestSetMaxV1AdvsFreeAfterInto) {
+  nearby_protocol::GlobalConfig::SetMaxNumDeserializedV1Advertisements(1);
+  auto book_result = nearby_protocol::CredentialBook::TryCreate();
+  ASSERT_TRUE(book_result.ok());
+
+  {
+    auto deserialize_result =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V1AdvSimple, book_result.value());
+    ASSERT_EQ(deserialize_result.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+
+    // Going over max amount should result in error
+    auto deserialize_result2 =
+        nearby_protocol::Deserializer::DeserializeAdvertisement(
+            V1AdvSimple, book_result.value());
+    ASSERT_EQ(deserialize_result2.GetKind(),
+              np_ffi::internal::DeserializeAdvertisementResultKind::Error);
+
+    // Calling IntoV1() should move the underlying resources into the v0 object
+    // when both go out of scope only one should be freed
+    auto v0_adv = deserialize_result.IntoV1();
+  }
+
+  // Now that the first v1 adv is out of scope, it will be de-allocated which
+  // will create room for one more to be created.
+  auto deserialize_result3 =
+      nearby_protocol::Deserializer::DeserializeAdvertisement(
+          V1AdvSimple, book_result.value());
+  ASSERT_EQ(deserialize_result3.GetKind(),
+            np_ffi::internal::DeserializeAdvertisementResultKind::V1);
+}
\ No newline at end of file
diff --git a/nearby/presence/np_ed25519/Cargo.toml b/nearby/presence/np_ed25519/Cargo.toml
new file mode 100644
index 0000000..b4bca66
--- /dev/null
+++ b/nearby/presence/np_ed25519/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "np_ed25519"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+array_view.workspace = true
+crypto_provider.workspace = true
+sink.workspace = true
+tinyvec.workspace = true
+
+[features]
+std = ["crypto_provider/std"]
diff --git a/nearby/presence/np_ed25519/src/lib.rs b/nearby/presence/np_ed25519/src/lib.rs
new file mode 100644
index 0000000..60c8302
--- /dev/null
+++ b/nearby/presence/np_ed25519/src/lib.rs
@@ -0,0 +1,286 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! Wrappers around NP's usage of ed25519 signatures.
+//!
+//! All of NP's usages of ed25519 signatures are performed
+//! with "context" bytes prepended to the payload to be signed
+//! or verified. These "context" bytes allow for usage of the
+//! same base key-pair for different purposes in the protocol.
+#![no_std]
+#![forbid(unsafe_code)]
+#![deny(missing_docs, clippy::indexing_slicing)]
+
+extern crate core;
+
+use array_view::ArrayView;
+use crypto_provider::ed25519::{
+    Ed25519Provider, KeyPair as _, PublicKey as _, RawPrivateKey, RawPublicKey, RawSignature,
+    Signature as _, SignatureError,
+};
+use crypto_provider::CryptoProvider;
+use sink::{Sink, SinkWriter};
+use tinyvec::ArrayVec;
+
+/// Convenient type-alias for a crypto-provider's Ed25519 key-pair
+type CpKeyPair<C> = <<C as CryptoProvider>::Ed25519 as Ed25519Provider>::KeyPair;
+
+/// Type-alias for the Ed25519 public key type
+type CpPublicKey<C> = <<C as CryptoProvider>::Ed25519 as Ed25519Provider>::PublicKey;
+
+/// Type-alias for the Ed25519 signature type
+type CpSignature<C> = <<C as CryptoProvider>::Ed25519 as Ed25519Provider>::Signature;
+
+/// Maximum length of the combined (context len byte) + (context bytes) + (signing payload)
+/// byte-array which an ed25519 signature will be computed over. This is deliberately
+/// chosen to be large enough to incorporate an entire v1 adv as the signing payload.
+pub const MAX_SIGNATURE_BUFFER_LEN: usize = 512;
+
+/// Representation of an Ed25519 key-pair using the given
+/// [`CryptoProvider`] to back its implementation.
+/// Contains both the public and secret halves of an
+/// asymmetric key, and so it may be used to
+/// both sign and verify message signatures.
+pub struct KeyPair<C: CryptoProvider>(CpKeyPair<C>);
+
+impl<C: CryptoProvider> KeyPair<C> {
+    /// Returns the `KeyPair`'s private key bytes. This method should only ever be called by code
+    /// which securely stores private credentials.
+    pub fn private_key(&self) -> RawPrivateKey {
+        self.0.private_key()
+    }
+
+    /// Builds this key-pair from an array of its private key bytes in the yielded by `private_key`.
+    /// This method should only ever be called by code which securely stores private credentials.
+    pub fn from_private_key(private_key: &RawPrivateKey) -> Self {
+        Self(CpKeyPair::<C>::from_private_key(private_key))
+    }
+
+    /// Sign the given message with the given context and
+    /// return a digital signature. The message is represented
+    /// using a [`SinkWriter`] to allow the caller to construct
+    /// the payload to sign without requiring a fully-assembled
+    /// payload available as a slice.
+    ///
+    /// If the message writer writes too much data (greater than 256 bytes),
+    /// this will return `None` instead of a valid signature,
+    /// and so uses in `np_adv` will use `.expect` on the returned value
+    /// to indicate that this length constraint has been considered.
+    pub fn sign_with_context<W: SinkWriter<DataType = u8>>(
+        &self,
+        context: &SignatureContext,
+        msg_writer: W,
+    ) -> Option<Signature<C>> {
+        let mut buffer = context.create_signature_buffer();
+        buffer.try_extend_from_writer(msg_writer).map(|_| Signature(self.0.sign(buffer.as_ref())))
+    }
+
+    /// Gets the public key of this key-pair
+    pub fn public(&self) -> PublicKey<C> {
+        PublicKey { public_key: self.0.public() }
+    }
+
+    /// Generates an ed25519 keypair from a CSPRNG
+    /// generate is not available in `no-std`
+    #[cfg(feature = "std")]
+    pub fn generate() -> Self {
+        Self(CpKeyPair::<C>::generate())
+    }
+}
+
+/// Error raised when attempting to deserialize a key-pair
+/// from a byte-array, but the bytes do not represent a valid
+/// ed25519 key-pair
+#[derive(Debug)]
+pub struct InvalidKeyPairBytes;
+
+/// Errors yielded when attempting to verify an ed25519 signature.
+#[derive(Debug, PartialEq, Eq)]
+pub enum SignatureVerificationError {
+    /// The payload that we attempted to verify the signature of was too big
+    PayloadTooBig,
+    /// The signature we were checking was invalid for the given payload
+    SignatureInvalid,
+}
+
+impl From<SignatureError> for SignatureVerificationError {
+    fn from(_: SignatureError) -> Self {
+        Self::SignatureInvalid
+    }
+}
+
+/// Representation of an Ed25519 public key used for
+/// signature verification.
+pub struct PublicKey<C: CryptoProvider> {
+    public_key: CpPublicKey<C>,
+}
+
+impl<C: CryptoProvider> PublicKey<C> {
+    /// Succeeds if the signature was a valid signature created via the corresponding
+    /// keypair to this public key using the given [`SignatureContext`] on the given
+    /// message payload. The message payload is represented
+    /// using a [`SinkWriter`] to allow the caller to construct
+    /// the payload to sign without requiring a fully-assembled
+    /// payload available as a slice.
+    ///
+    /// If the message writer writes too much data (greater than 256 bytes),
+    /// this will return `None` instead of a valid signature,
+    /// and so uses in `np_adv` will use `.expect` on the returned value
+    /// to indicate that this length constraint has been considered.
+    pub fn verify_signature_with_context<W: SinkWriter<DataType = u8>>(
+        &self,
+        context: &SignatureContext,
+        msg_writer: W,
+        signature: &Signature<C>,
+    ) -> Result<(), SignatureVerificationError> {
+        let mut buffer = context.create_signature_buffer();
+        let maybe_write_success = buffer.try_extend_from_writer(msg_writer);
+        match maybe_write_success {
+            Some(_) => {
+                self.public_key.verify_strict(buffer.as_ref(), &signature.0)?;
+                Ok(())
+            }
+            None => Err(SignatureVerificationError::PayloadTooBig),
+        }
+    }
+
+    /// Builds an ed25519 public key from an array of bytes in
+    /// the format yielded by `to_bytes`.
+    pub fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidPublicKeyBytes> {
+        CpPublicKey::<C>::from_bytes(bytes)
+            .map(|public_key| Self { public_key })
+            .map_err(|_| InvalidPublicKeyBytes)
+    }
+
+    /// Yields the bytes of this ed25519 public key
+    pub fn to_bytes(&self) -> RawPublicKey {
+        self.public_key.to_bytes()
+    }
+}
+
+impl<C: CryptoProvider> Clone for PublicKey<C> {
+    fn clone(&self) -> Self {
+        Self::from_bytes(&self.to_bytes()).unwrap()
+    }
+}
+
+/// Error raised when attempting to deserialize a public key
+/// from a byte-array, but the bytes do not represent a valid
+/// ed25519 public key
+#[derive(Debug)]
+pub struct InvalidPublicKeyBytes;
+
+/// Representation of an Ed25519 message signature,
+/// which can be checked against a [`PublicKey`]
+/// for validity.
+pub struct Signature<C: CryptoProvider>(CpSignature<C>);
+
+impl<C: CryptoProvider> Signature<C> {
+    /// Returns a slice of the signature bytes
+    pub fn to_bytes(&self) -> RawSignature {
+        self.0.to_bytes()
+    }
+}
+
+/// Error raised when attempting to construct a [`Signature`]
+/// from a byte-array which is not of the proper length or format.
+#[derive(Debug)]
+pub struct InvalidSignatureBytes;
+
+impl<C: CryptoProvider> TryFrom<&[u8]> for Signature<C> {
+    type Error = InvalidSignatureBytes;
+    fn try_from(bytes: &[u8]) -> Result<Self, Self::Error> {
+        bytes
+            .try_into()
+            .map(|sig| Self(CpSignature::<C>::from_bytes(sig)))
+            .map_err(|_| InvalidSignatureBytes)
+    }
+}
+
+/// Minimum length (in bytes) for a [`SignatureContext`] (which cannot be empty).
+pub const MIN_SIGNATURE_CONTEXT_LEN: usize = 1;
+
+/// Maximum length (in bytes) for a [`SignatureContext`] (which uses a 8-bit length field).
+pub const MAX_SIGNATURE_CONTEXT_LEN: usize = 255;
+
+/// (Non-empty) context bytes to use in the construction of NP's
+/// Ed25519 signatures. The context bytes should uniquely
+/// identify the component of the protocol performing the
+/// signature/verification (e.g: advertisement signing,
+/// connection signing), and should be between 1 and
+/// 255 bytes in length.
+pub struct SignatureContext {
+    data: ArrayView<u8, MAX_SIGNATURE_CONTEXT_LEN>,
+}
+
+impl SignatureContext {
+    /// Creates a signature buffer with size bounded by MAX_SIGNATURE_BUFFER_LEN
+    /// which is pre-populated with the contents yielded by
+    /// [`SignatureContext#write_length_prefixed`].
+    fn create_signature_buffer(&self) -> impl Sink<u8> + AsRef<[u8]> {
+        let mut buffer = ArrayVec::<[u8; MAX_SIGNATURE_BUFFER_LEN]>::new();
+        self.write_length_prefixed(&mut buffer).expect("Context should always fit into sig buffer");
+        buffer
+    }
+
+    /// Writes the contents of this signature context, prefixed
+    /// by the length of the context payload to the given byte-sink.
+    /// If writing to the sink failed at some point during this operation,
+    /// `None` will be returned, and the data written to the sink should
+    /// be considered to be invalid.
+    fn write_length_prefixed<S: Sink<u8>>(&self, sink: &mut S) -> Option<()> {
+        let length_byte = self.data.len() as u8;
+        sink.try_push(length_byte)?;
+        sink.try_extend_from_slice(self.data.as_slice())
+    }
+
+    /// Attempts to construct a signature context from the utf-8 bytes
+    /// of the given string. Returns `None` if the passed string
+    /// is invalid to use for signature context bytes.
+    pub const fn from_string_bytes(data_str: &str) -> Result<Self, SignatureContextInvalidLength> {
+        let data_bytes = data_str.as_bytes();
+        Self::from_bytes(data_bytes)
+    }
+
+    #[allow(clippy::indexing_slicing)]
+    const fn from_bytes(bytes: &[u8]) -> Result<Self, SignatureContextInvalidLength> {
+        let num_bytes = bytes.len();
+        if num_bytes < MIN_SIGNATURE_CONTEXT_LEN || num_bytes > MAX_SIGNATURE_CONTEXT_LEN {
+            Err(SignatureContextInvalidLength)
+        } else {
+            let mut array = [0u8; MAX_SIGNATURE_CONTEXT_LEN];
+            let mut i = 0;
+            while i < num_bytes {
+                array[i] = bytes[i];
+                i += 1;
+            }
+            let data = ArrayView::const_from_array(array, bytes.len());
+            Ok(Self { data })
+        }
+    }
+}
+
+/// Error raised when attempting to construct a
+/// [`SignatureContext`] out of data with an
+/// invalid length in bytes.
+#[derive(Debug)]
+pub struct SignatureContextInvalidLength;
+
+impl TryFrom<&[u8]> for SignatureContext {
+    type Error = SignatureContextInvalidLength;
+
+    fn try_from(value: &[u8]) -> Result<Self, Self::Error> {
+        Self::from_bytes(value)
+    }
+}
diff --git a/nearby/presence/np_ffi_core/Cargo.toml b/nearby/presence/np_ffi_core/Cargo.toml
new file mode 100644
index 0000000..5be03a6
--- /dev/null
+++ b/nearby/presence/np_ffi_core/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "np_ffi_core"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+array_view.workspace = true
+np_adv.workspace = true
+handle_map.workspace = true
+crypto_provider.workspace = true
+#TODO: Allow this to be configurable!
+crypto_provider_default = {workspace = true, features = ["rustcrypto"]}
+spin.workspace = true
+
+[features]
+std = []
diff --git a/nearby/presence/np_ffi_core/src/common.rs b/nearby/presence/np_ffi_core/src/common.rs
new file mode 100644
index 0000000..f00c358
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/common.rs
@@ -0,0 +1,293 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Common externally-accessible FFI constructs which are needed
+//! in order to define the interfaces in this crate's various modules.
+
+use alloc::string::String;
+use array_view::ArrayView;
+use handle_map::HandleNotPresentError;
+
+const DEFAULT_MAX_HANDLES: u32 = u32::MAX - 1;
+
+/// Configuration for top-level constants to be used
+/// by the rest of the FFI which are independent of
+/// the programming language which we ultimately
+/// interface with at a higher level.
+#[repr(C)]
+pub struct CommonConfig {
+    /// The number of shards to employ in all handle-maps,
+    /// or zero if we want to use the default.
+    ///
+    /// The default number of shards will depend on whether
+    /// this crate was compiled with the `std` feature or not:
+    /// - If compiled with the `std` feature, the default number
+    ///   of shards will be set to
+    ///   `min(16, std::thread::available_parallelism().unwrap())`,
+    ///   assuming that that call completes successfully.
+    /// - In all other cases, 16 shards will be used by default.
+    num_shards: u8,
+
+    /// The maximum number of credential books which may be active
+    /// at any one time. By default, this value will be set to
+    /// `u32::MAX - 1`, which is the upper-bound on this value.
+    max_num_credential_books: u32,
+
+    /// The maximum number of deserialized v0 advertisements
+    /// which may be active at any one time. By default, this
+    /// value will be set to `u32::MAX - 1`, which is the upper-bound
+    /// on this value.
+    max_num_deserialized_v0_advertisements: u32,
+
+    /// The maximum number of deserialized v1 advertisements
+    /// which may be active at any one time. By default, this
+    /// value will be set to `u32::MAX - 1`, which is the upper-bound
+    /// on this value.
+    max_num_deserialized_v1_advertisements: u32,
+}
+
+impl Default for CommonConfig {
+    fn default() -> Self {
+        Self::new()
+    }
+}
+
+impl CommonConfig {
+    pub(crate) const fn new() -> Self {
+        Self {
+            num_shards: 0,
+            max_num_credential_books: DEFAULT_MAX_HANDLES,
+            max_num_deserialized_v0_advertisements: DEFAULT_MAX_HANDLES,
+            max_num_deserialized_v1_advertisements: DEFAULT_MAX_HANDLES,
+        }
+    }
+    #[cfg(feature = "std")]
+    pub(crate) fn num_shards(&self) -> u8 {
+        if self.num_shards == 0 {
+            match std::thread::available_parallelism() {
+                Ok(parallelism) => 16u8.min(parallelism),
+                Err(_) => 16u8,
+            }
+        } else {
+            self.num_shards
+        }
+    }
+    #[cfg(not(feature = "std"))]
+    pub(crate) fn num_shards(&self) -> u8 {
+        if self.num_shards == 0 {
+            16u8
+        } else {
+            self.num_shards
+        }
+    }
+    pub(crate) fn max_num_credential_books(&self) -> u32 {
+        self.max_num_credential_books
+    }
+    pub(crate) fn max_num_deserialized_v0_advertisements(&self) -> u32 {
+        self.max_num_deserialized_v0_advertisements
+    }
+    pub(crate) fn max_num_deserialized_v1_advertisements(&self) -> u32 {
+        self.max_num_deserialized_v1_advertisements
+    }
+    pub(crate) fn set_num_shards(&mut self, num_shards: u8) {
+        self.num_shards = num_shards
+    }
+
+    /// Sets the maximum number of active handles to credential-books
+    /// which may be active at any one time.
+    /// Max value: `u32::MAX - 1`.
+    pub fn set_max_num_credential_books(&mut self, max_num_credential_books: u32) {
+        self.max_num_credential_books = DEFAULT_MAX_HANDLES.min(max_num_credential_books)
+    }
+
+    /// Sets the maximum number of active handles to deserialized v0
+    /// advertisements which may be active at any one time.
+    /// Max value: `u32::MAX - 1`.
+    pub fn set_max_num_deserialized_v0_advertisements(
+        &mut self,
+        max_num_deserialized_v0_advertisements: u32,
+    ) {
+        self.max_num_deserialized_v0_advertisements =
+            DEFAULT_MAX_HANDLES.min(max_num_deserialized_v0_advertisements)
+    }
+
+    /// Sets the maximum number of active handles to deserialized v0
+    /// advertisements which may be active at any one time.
+    /// Max value: `u32::MAX - 1`.
+    pub fn set_max_num_deserialized_v1_advertisements(
+        &mut self,
+        max_num_deserialized_v1_advertisements: u32,
+    ) {
+        self.max_num_deserialized_v1_advertisements =
+            DEFAULT_MAX_HANDLES.min(max_num_deserialized_v1_advertisements)
+    }
+}
+
+static COMMON_CONFIG: spin::RwLock<CommonConfig> = spin::RwLock::new(CommonConfig::new());
+
+pub(crate) fn global_num_shards() -> u8 {
+    COMMON_CONFIG.read().num_shards()
+}
+pub(crate) fn global_max_num_credential_books() -> u32 {
+    COMMON_CONFIG.read().max_num_credential_books()
+}
+pub(crate) fn global_max_num_deserialized_v0_advertisements() -> u32 {
+    COMMON_CONFIG.read().max_num_deserialized_v0_advertisements()
+}
+pub(crate) fn global_max_num_deserialized_v1_advertisements() -> u32 {
+    COMMON_CONFIG.read().max_num_deserialized_v1_advertisements()
+}
+
+/// Sets an override to the number of shards to employ in the NP FFI's
+/// internal handle-maps, which places an upper bound on the number
+/// of writing threads which may make progress at any one time
+/// when concurrently accessing handles of the same type.
+///
+/// By default, this value will be set to 16, or in `std` environments,
+/// the minimum of 16 and the number of available hardware threads.
+/// A shard value override of zero will be interpreted the same
+/// as this default.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of _any_ non-`global_config_set`
+/// API call.
+pub fn global_config_set_num_shards(num_shards: u8) {
+    let mut config = COMMON_CONFIG.write();
+    config.set_num_shards(num_shards);
+}
+
+/// Sets the maximum number of active handles to credential books
+/// which may be active at any one time. Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call utilizing credential books.
+pub fn global_config_set_max_num_credential_books(max_num_credential_books: u32) {
+    let mut config = COMMON_CONFIG.write();
+    config.set_max_num_credential_books(max_num_credential_books);
+}
+
+/// Sets the maximum number of active handles to deserialized v0
+/// advertisements which may be active at any one time.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V0 advertisement.
+pub fn global_config_set_max_num_deserialized_v0_advertisements(
+    max_num_deserialized_v0_advertisements: u32,
+) {
+    let mut config = COMMON_CONFIG.write();
+    config.set_max_num_deserialized_v0_advertisements(max_num_deserialized_v0_advertisements);
+}
+
+/// Sets the maximum number of active handles to deserialized v1
+/// advertisements which may be active at any one time.
+/// Max value: `u32::MAX - 1`.
+///
+/// Setting this value will have no effect if the handle-maps for the
+/// API have already begun being used by the client code, and any
+/// values set will take effect upon the first usage of any API
+/// call which references or returns a deserialized V1 advertisement.
+pub fn global_config_set_max_num_deserialized_v1_advertisements(
+    max_num_deserialized_v1_advertisements: u32,
+) {
+    let mut config = COMMON_CONFIG.write();
+    config.set_max_num_deserialized_v1_advertisements(max_num_deserialized_v1_advertisements);
+}
+
+// API surfaces:
+
+/// A result-type enum which tells the caller whether/not a deallocation
+/// succeeded or failed due to the requested handle not being present.
+#[repr(C)]
+pub enum DeallocateResult {
+    /// The requested handle to deallocate was not present in the map
+    NotPresent = 0,
+    /// The object behind the handle was successfully deallocated
+    Success = 1,
+}
+
+impl From<Result<(), HandleNotPresentError>> for DeallocateResult {
+    fn from(result: Result<(), HandleNotPresentError>) -> Self {
+        match result {
+            Ok(_) => DeallocateResult::Success,
+            Err(_) => DeallocateResult::NotPresent,
+        }
+    }
+}
+
+/// Represents the raw contents of the service payload data
+/// under the Nearby Presence service UUID
+#[repr(C)]
+pub struct RawAdvertisementPayload {
+    bytes: ByteBuffer<255>,
+}
+
+impl RawAdvertisementPayload {
+    /// Yields a slice of the bytes in this raw advertisement payload.
+    pub fn as_slice(&self) -> &[u8] {
+        self.bytes.as_slice()
+    }
+}
+
+/// A byte-string with a maximum size of N,
+/// where only the first `len` bytes are considered
+/// to contain the actual payload. N is only
+/// permitted to be between 0 and 255.
+#[derive(Clone)]
+#[repr(C)]
+// TODO: Once generic const exprs are stabilized,
+// we could instead make N into a compile-time u8.
+pub struct ByteBuffer<const N: usize> {
+    len: u8,
+    bytes: [u8; N],
+}
+
+impl<const N: usize> ByteBuffer<N> {
+    /// Constructs a byte-buffer from a Rust-side-derived
+    /// ArrayView, which is assumed to be trusted to be
+    /// properly initialized, and with a size-bound
+    /// under 255 bytes.
+    pub(crate) fn from_array_view(array_view: ArrayView<u8, N>) -> Self {
+        let (len, bytes) = array_view.into_raw_parts();
+        let len = len as u8;
+        Self { len, bytes }
+    }
+    /// Yields a slice of the first `self.len` bytes of `self.bytes`.
+    pub fn as_slice(&self) -> &[u8] {
+        &self.bytes[..(self.len as usize)]
+    }
+}
+
+/// Error raised when attempting to cast an enum to
+/// one of its variants, but the value is actually
+/// of a different variant than the requested one.
+pub struct EnumCastError {
+    pub(crate) projection_method_name: String,
+    pub(crate) variant_enum_name: String,
+    pub(crate) variant_type_name: String,
+}
+
+impl core::fmt::Debug for EnumCastError {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        write!(
+            f,
+            "Attempted to cast a non-{} to a {} via {}",
+            &self.variant_enum_name, &self.variant_type_name, &self.projection_method_name
+        )
+    }
+}
diff --git a/nearby/presence/np_ffi_core/src/credentials.rs b/nearby/presence/np_ffi_core/src/credentials.rs
new file mode 100644
index 0000000..412ebc1
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/credentials.rs
@@ -0,0 +1,88 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Credential-related data-types and functions
+
+use crate::common::*;
+use crate::utils::FfiEnum;
+use handle_map::{declare_handle_map, HandleLike, HandleMapDimensions, HandleMapFullError};
+
+/// Internal, Rust-side implementation of a credential-book.
+/// See [`CredentialBook`] for the FFI-side handles.
+// TODO(b/283249542): Give this a real definition!
+pub struct CredentialBookInternals;
+
+fn get_credential_book_handle_map_dimensions() -> HandleMapDimensions {
+    HandleMapDimensions {
+        num_shards: global_num_shards(),
+        max_active_handles: global_max_num_credential_books(),
+    }
+}
+
+declare_handle_map! {credential_book, CredentialBook, super::CredentialBookInternals, super::get_credential_book_handle_map_dimensions()}
+use credential_book::CredentialBook;
+
+/// Discriminant for `CreateCredentialBookResult`
+#[repr(u8)]
+pub enum CreateCredentialBookResultKind {
+    /// There was no space left to create a new credential book
+    NoSpaceLeft = 0,
+    /// We created a new credential book behind the given handle.
+    /// The associated payload may be obtained via
+    /// `CreateCredentialBookResult#into_success()`.
+    Success = 1,
+}
+
+/// Result type for `create_credential_book`
+#[repr(u8)]
+#[allow(missing_docs)]
+pub enum CreateCredentialBookResult {
+    NoSpaceLeft = 0,
+    Success(CredentialBook) = 1,
+}
+
+impl From<Result<CredentialBook, HandleMapFullError>> for CreateCredentialBookResult {
+    fn from(result: Result<CredentialBook, HandleMapFullError>) -> Self {
+        match result {
+            Ok(book) => CreateCredentialBookResult::Success(book),
+            Err(_) => CreateCredentialBookResult::NoSpaceLeft,
+        }
+    }
+}
+
+/// Allocates a new credential-book, returning a handle to the created object
+pub fn create_credential_book() -> CreateCredentialBookResult {
+    CredentialBook::allocate(|| CredentialBookInternals).into()
+}
+
+impl FfiEnum for CreateCredentialBookResult {
+    type Kind = CreateCredentialBookResultKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            CreateCredentialBookResult::NoSpaceLeft => CreateCredentialBookResultKind::NoSpaceLeft,
+            CreateCredentialBookResult::Success(_) => CreateCredentialBookResultKind::Success,
+        }
+    }
+}
+
+impl CreateCredentialBookResult {
+    declare_enum_cast! {into_success, Success, CredentialBook}
+}
+
+/// Deallocates a credential-book by its handle
+pub fn deallocate_credential_book(credential_book: CredentialBook) -> DeallocateResult {
+    credential_book.deallocate().map(|_| ()).into()
+}
+
+/// A handle on a particular v0 shared credential stored within a credential book
+pub struct V0SharedCredential;
diff --git a/nearby/presence/np_ffi_core/src/deserialize/mod.rs b/nearby/presence/np_ffi_core/src/deserialize/mod.rs
new file mode 100644
index 0000000..a651bcf
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/deserialize/mod.rs
@@ -0,0 +1,168 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Core NP Rust FFI structures and methods for advertisement deserialization.
+
+use crate::common::*;
+use crate::credentials::credential_book::CredentialBook;
+use crate::deserialize::v0::*;
+use crate::deserialize::v1::*;
+use crate::utils::FfiEnum;
+use crypto_provider_default::CryptoProviderImpl;
+use handle_map::{HandleLike, HandleMapFullError, HandleNotPresentError};
+
+pub mod v0;
+pub mod v1;
+
+/// Discriminant for `DeserializeAdvertisementResult`.
+#[repr(u8)]
+pub enum DeserializeAdvertisementResultKind {
+    /// Deserializing the advertisement failed, for some reason or another.
+    Error = 0,
+    /// The advertisement was correctly deserialized, and it's a V0 advertisement.
+    /// `DeserializeAdvertisementResult#into_v0()` is the corresponding cast
+    /// to the associated enum variant.
+    V0 = 1,
+    /// The advertisement was correctly deserialized, and it's a V1 advertisement.
+    /// `DeserializeAdvertisementResult#into_v1()` is the corresponding cast
+    /// to the associated enum variant.
+    V1 = 2,
+}
+
+/// The result of calling `np_ffi_deserialize_advertisement`.
+/// Must be explicitly deallocated after use with
+/// a corresponding `np_ffi_deallocate_deserialize_advertisement_result`
+#[repr(u8)]
+pub enum DeserializeAdvertisementResult {
+    /// Deserializing the advertisement failed, for some reason or another.
+    /// `DeserializeAdvertisementResultKind::Error` is the associated enum tag.
+    Error,
+    /// The advertisement was correctly deserialized, and it's a V0 advertisement.
+    /// `DeserializeAdvertisementResultKind::V0` is the associated enum tag.
+    V0(DeserializedV0Advertisement),
+    /// The advertisement was correctly deserialized, and it's a V1 advertisement.
+    /// `DeserializeAdvertisementResultKind::V1` is the associated enum tag.
+    V1(DeserializedV1Advertisement),
+}
+
+impl FfiEnum for DeserializeAdvertisementResult {
+    type Kind = DeserializeAdvertisementResultKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            DeserializeAdvertisementResult::Error => DeserializeAdvertisementResultKind::Error,
+            DeserializeAdvertisementResult::V0(_) => DeserializeAdvertisementResultKind::V0,
+            DeserializeAdvertisementResult::V1(_) => DeserializeAdvertisementResultKind::V1,
+        }
+    }
+}
+
+impl DeserializeAdvertisementResult {
+    declare_enum_cast! {into_v0, V0, DeserializedV0Advertisement}
+    declare_enum_cast! {into_v1, V1, DeserializedV1Advertisement}
+
+    /// Deallocates any internal data referenced by a `DeserializeAdvertisementResult`
+    pub fn deallocate(self) -> DeallocateResult {
+        match self {
+            DeserializeAdvertisementResult::Error => DeallocateResult::Success,
+            DeserializeAdvertisementResult::V0(adv) => adv.deallocate(),
+            DeserializeAdvertisementResult::V1(adv) => adv.deallocate(),
+        }
+    }
+}
+
+//TODO: Once the `FromResidual` trait is stabilized, we won't need to do this
+enum DeserializeAdvertisementSuccess {
+    V0(DeserializedV0Advertisement),
+    V1(DeserializedV1Advertisement),
+}
+
+struct DeserializeAdvertisementError;
+
+impl From<HandleMapFullError> for DeserializeAdvertisementError {
+    fn from(_: HandleMapFullError) -> Self {
+        DeserializeAdvertisementError
+    }
+}
+
+impl From<HandleNotPresentError> for DeserializeAdvertisementError {
+    fn from(_: HandleNotPresentError) -> Self {
+        DeserializeAdvertisementError
+    }
+}
+
+impl From<np_adv::AdvDeserializationError> for DeserializeAdvertisementError {
+    fn from(_: np_adv::AdvDeserializationError) -> Self {
+        DeserializeAdvertisementError
+    }
+}
+
+type DefaultV0Credential = np_adv::credential::simple::SimpleV0Credential<
+    np_adv::credential::v0::MinimumFootprintV0CryptoMaterial,
+    (),
+>;
+type DefaultV1Credential = np_adv::credential::simple::SimpleV1Credential<
+    np_adv::credential::v1::MinimumFootprintV1CryptoMaterial,
+    (),
+>;
+type DefaultBothCredentialSource =
+    np_adv::credential::source::OwnedBothCredentialSource<DefaultV0Credential, DefaultV1Credential>;
+
+fn deserialize_advertisement_from_slice_internal(
+    adv_payload: &[u8],
+    credential_book: CredentialBook,
+) -> Result<DeserializeAdvertisementSuccess, DeserializeAdvertisementError> {
+    // Deadlock Safety: Credential-book locks always live longer than deserialized advs.
+    let _credential_book_read_guard = credential_book.get()?;
+
+    //TODO(b/283249542): Use an actual credential source
+    let cred_source: DefaultBothCredentialSource = DefaultBothCredentialSource::new_empty();
+
+    let deserialized_advertisement =
+        np_adv::deserialize_advertisement::<_, _, _, _, CryptoProviderImpl>(
+            adv_payload,
+            &cred_source,
+        )?;
+    match deserialized_advertisement {
+        np_adv::DeserializedAdvertisement::V0(adv_contents) => {
+            let adv_handle = DeserializedV0Advertisement::allocate_with_contents(adv_contents)?;
+            Ok(DeserializeAdvertisementSuccess::V0(adv_handle))
+        }
+        np_adv::DeserializedAdvertisement::V1(adv_contents) => {
+            let adv_handle = DeserializedV1Advertisement::allocate_with_contents(adv_contents)?;
+            Ok(DeserializeAdvertisementSuccess::V1(adv_handle))
+        }
+    }
+}
+
+/// Attempts to deserialize an advertisement with the given payload.
+/// Suitable for langs which have a suitably expressive slice-type.
+pub fn deserialize_advertisement_from_slice(
+    adv_payload: &[u8],
+    credential_book: CredentialBook,
+) -> DeserializeAdvertisementResult {
+    let result = deserialize_advertisement_from_slice_internal(adv_payload, credential_book);
+    match result {
+        Ok(DeserializeAdvertisementSuccess::V0(x)) => DeserializeAdvertisementResult::V0(x),
+        Ok(DeserializeAdvertisementSuccess::V1(x)) => DeserializeAdvertisementResult::V1(x),
+        Err(_) => DeserializeAdvertisementResult::Error,
+    }
+}
+
+/// Attempts to deserialize an advertisement with the given payload.
+/// Suitable for langs which don't have an expressive-enough slice type.
+pub fn deserialize_advertisement(
+    adv_payload: &RawAdvertisementPayload,
+    credential_book: CredentialBook,
+) -> DeserializeAdvertisementResult {
+    deserialize_advertisement_from_slice(adv_payload.as_slice(), credential_book)
+}
diff --git a/nearby/presence/np_ffi_core/src/deserialize/v0.rs b/nearby/presence/np_ffi_core/src/deserialize/v0.rs
new file mode 100644
index 0000000..0f4b24b
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/deserialize/v0.rs
@@ -0,0 +1,445 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Core NP Rust FFI structures and methods for v0 advertisement deserialization.
+
+use crate::common::*;
+use crate::credentials::credential_book::CredentialBook;
+use crate::utils::{FfiEnum, LocksLongerThan};
+use alloc::vec::Vec;
+use handle_map::{declare_handle_map, HandleLike, HandleMapDimensions, HandleMapFullError};
+use np_adv::legacy::actions::ActionsDataElement;
+use np_adv::legacy::{data_elements as np_adv_de, Ciphertext, PacketFlavorEnum, Plaintext};
+
+/// Discriminant for possible results of V0 advertisement deserialization
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum DeserializedV0AdvertisementKind {
+    /// The deserialized V0 advertisement was legible.
+    /// The associated payload may be obtained via
+    /// `DeserializedV0Advertisement#into_legible`.
+    Legible = 0,
+    /// The deserialized V0 advertisement is illegible,
+    /// likely meaning that the receiver does not hold
+    /// the proper credentials to be able to read
+    /// the received advertisement.
+    NoMatchingCredentials = 1,
+}
+
+/// Represents a deserialized V0 advertisement
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum DeserializedV0Advertisement {
+    Legible(LegibleDeserializedV0Advertisement),
+    NoMatchingCredentials,
+}
+
+impl FfiEnum for DeserializedV0Advertisement {
+    type Kind = DeserializedV0AdvertisementKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            DeserializedV0Advertisement::Legible(_) => DeserializedV0AdvertisementKind::Legible,
+            DeserializedV0Advertisement::NoMatchingCredentials => {
+                DeserializedV0AdvertisementKind::NoMatchingCredentials
+            }
+        }
+    }
+}
+
+impl DeserializedV0Advertisement {
+    /// Attempts to deallocate memory utilized internally by this V0 advertisement
+    /// (which contains a handle to actual advertisement contents behind-the-scenes).
+    pub fn deallocate(self) -> DeallocateResult {
+        match self {
+            DeserializedV0Advertisement::Legible(adv) => adv.deallocate(),
+            DeserializedV0Advertisement::NoMatchingCredentials => DeallocateResult::Success,
+        }
+    }
+
+    pub(crate) fn allocate_with_contents<'m, M: np_adv::credential::MatchedCredential<'m>>(
+        contents: np_adv::V0AdvContents<'m, M>,
+    ) -> Result<Self, HandleMapFullError> {
+        match contents {
+            np_adv::V0AdvContents::Plaintext(plaintext_contents) => {
+                let adv = LegibleDeserializedV0Advertisement::allocate_with_plaintext_contents(
+                    plaintext_contents,
+                )?;
+                Ok(Self::Legible(adv))
+            }
+            np_adv::V0AdvContents::Decrypted(_) => {
+                unimplemented!();
+            }
+            np_adv::V0AdvContents::NoMatchingCredentials => Ok(Self::NoMatchingCredentials),
+        }
+    }
+
+    declare_enum_cast! {into_legible, Legible, LegibleDeserializedV0Advertisement}
+}
+
+/// Represents a deserialized V0 advertisement whose DE contents may be read
+#[repr(C)]
+pub struct LegibleDeserializedV0Advertisement {
+    num_des: u8,
+    payload: V0Payload,
+    identity: DeserializedV0Identity,
+}
+
+impl LegibleDeserializedV0Advertisement {
+    pub(crate) fn allocate_with_plaintext_contents(
+        contents: np_adv::legacy::deserialize::PlaintextAdvContents,
+    ) -> Result<Self, HandleMapFullError> {
+        let data_elements = contents.to_data_elements();
+        let num_des = data_elements.len() as u8;
+        let payload = V0Payload::allocate_with_data_elements(data_elements)?;
+        Ok(Self { num_des, payload, identity: DeserializedV0Identity::Plaintext })
+    }
+    /// Gets the number of data-elements in this adv's payload
+    /// Suitable as an iteration bound for `Self.into_payload().get_de(...)`.
+    pub fn num_des(&self) -> u8 {
+        self.num_des
+    }
+    /// Destructures this legible advertisement into just the payload
+    pub fn into_payload(self) -> V0Payload {
+        self.payload
+    }
+    /// Destructures this legible advertisement into just the identity information
+    pub fn into_identity(self) -> DeserializedV0Identity {
+        self.identity
+    }
+    /// Deallocates the underlying handle of the payload
+    pub fn deallocate(self) -> DeallocateResult {
+        self.payload.deallocate().map(|_| ()).into()
+    }
+}
+
+/// Discriminant for `DeserializedV0Identity`.
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum DeserializedV0IdentityKind {
+    /// The deserialized identity was a plaintext identity.
+    Plaintext = 0,
+    /// The deserialized identity was some decrypted identity.
+    Decrypted = 1,
+}
+
+/// Represents deserialized information about the V0 identity utilized
+/// by a deserialized V0 advertisement
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum DeserializedV0Identity {
+    Plaintext,
+    // TODO: This gets a payload once we support creds
+    Decrypted,
+}
+
+impl FfiEnum for DeserializedV0Identity {
+    type Kind = DeserializedV0IdentityKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            DeserializedV0Identity::Plaintext => DeserializedV0IdentityKind::Plaintext,
+            DeserializedV0Identity::Decrypted => DeserializedV0IdentityKind::Decrypted,
+        }
+    }
+}
+
+/// The internal data-structure used for storing
+/// the payload of a deserialized V0 advertisement.
+pub struct V0PayloadInternals {
+    des: Vec<V0DataElement>,
+}
+
+impl V0PayloadInternals {
+    /// Attempts to get the DE with the given index
+    /// in this v0 payload.
+    fn get_de(&self, index: u8) -> GetV0DEResult {
+        match self.des.get(index as usize) {
+            Some(de) => GetV0DEResult::Success(de.clone()),
+            None => GetV0DEResult::Error,
+        }
+    }
+}
+
+fn get_v0_payload_handle_map_dimensions() -> HandleMapDimensions {
+    HandleMapDimensions {
+        num_shards: global_num_shards(),
+        max_active_handles: global_max_num_deserialized_v0_advertisements(),
+    }
+}
+
+declare_handle_map! {v0_payload, V0Payload, super::V0PayloadInternals, super::get_v0_payload_handle_map_dimensions() }
+use v0_payload::V0Payload;
+
+impl LocksLongerThan<V0Payload> for CredentialBook {}
+
+impl V0Payload {
+    pub(crate) fn allocate_with_data_elements<F: np_adv::legacy::PacketFlavor>(
+        data_elements: Vec<np_adv::legacy::deserialize::PlainDataElement<F>>,
+    ) -> Result<Self, HandleMapFullError> {
+        Self::allocate(move || {
+            let des = data_elements.into_iter().map(V0DataElement::from).collect();
+            V0PayloadInternals { des }
+        })
+    }
+    /// Gets the data-element with the given index in this v0 adv payload
+    pub fn get_de(&self, index: u8) -> GetV0DEResult {
+        match self.get() {
+            Ok(read_guard) => read_guard.get_de(index),
+            Err(_) => GetV0DEResult::Error,
+        }
+    }
+
+    /// Deallocates any underlying data held by a V0Payload
+    pub fn deallocate_payload(&self) -> DeallocateResult {
+        self.deallocate().map(|_| ()).into()
+    }
+}
+
+/// Discriminant of `GetV0DEResult`.
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum GetV0DEResultKind {
+    /// The attempt to get the DE succeeded.
+    /// The associated payload may be obtained via
+    /// `GetV0DEResult#into_success`.
+    Success = 0,
+    /// The attempt to get the DE failed,
+    /// possibly due to the requested index being
+    /// out-of-bounds or due to the advertisement
+    /// having been previously deallocated.
+    Error = 1,
+}
+
+/// The result of `V0Payload#get_de`.
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum GetV0DEResult {
+    Success(V0DataElement),
+    Error,
+}
+
+impl FfiEnum for GetV0DEResult {
+    type Kind = GetV0DEResultKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            GetV0DEResult::Success(_) => GetV0DEResultKind::Success,
+            GetV0DEResult::Error => GetV0DEResultKind::Error,
+        }
+    }
+}
+
+impl GetV0DEResult {
+    declare_enum_cast! {into_success, Success, V0DataElement}
+}
+
+/// Discriminant for `V0DataElement`.
+#[repr(u8)]
+pub enum V0DataElementKind {
+    /// A transmission Power (Tx Power) data-element.
+    /// The associated payload may be obtained via
+    /// `V0DataElement#into_tx_power`.
+    TxPower = 0,
+    /// The Actions data-element.
+    /// The associated payload may be obtained via
+    /// `V0DataElement#into_actions`.
+    Actions = 1,
+}
+
+/// Representation of a V0 data element.
+#[repr(C)]
+#[allow(missing_docs)]
+#[derive(Clone)]
+pub enum V0DataElement {
+    TxPower(TxPower),
+    Actions(V0Actions),
+}
+
+impl<F: np_adv::legacy::PacketFlavor> From<np_adv::legacy::deserialize::PlainDataElement<F>>
+    for V0DataElement
+{
+    fn from(de: np_adv::legacy::deserialize::PlainDataElement<F>) -> Self {
+        use np_adv::legacy::deserialize::PlainDataElement;
+        match de {
+            PlainDataElement::Actions(x) => V0DataElement::Actions(x.into()),
+            PlainDataElement::TxPower(x) => V0DataElement::TxPower(x.into()),
+        }
+    }
+}
+
+impl FfiEnum for V0DataElement {
+    type Kind = V0DataElementKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            V0DataElement::Actions(_) => V0DataElementKind::Actions,
+            V0DataElement::TxPower(_) => V0DataElementKind::TxPower,
+        }
+    }
+}
+
+impl V0DataElement {
+    declare_enum_cast! {into_tx_power, TxPower, TxPower}
+    declare_enum_cast! {into_actions, Actions, V0Actions}
+}
+
+/// Representation of a transmission power,
+/// as used for the Tx Power DE in V0 and V1.
+#[derive(Clone)]
+#[repr(C)]
+pub struct TxPower {
+    tx_power: i8,
+}
+
+impl TxPower {
+    /// Yields this Tx Power value as an i8.
+    pub fn as_i8(&self) -> i8 {
+        self.tx_power
+    }
+}
+
+impl From<np_adv_de::TxPowerDataElement> for TxPower {
+    fn from(de: np_adv_de::TxPowerDataElement) -> Self {
+        Self { tx_power: de.tx_power_value() }
+    }
+}
+
+/// Representation of the Actions DE in V0.
+#[derive(Clone)]
+#[repr(C)]
+pub enum V0Actions {
+    /// A set of action bits which were present in a plaintext identity advertisement
+    Plaintext(V0ActionBits),
+    /// A set of action bits which were present in a encrypted identity advertisement
+    Encrypted(V0ActionBits),
+}
+
+impl<F: np_adv::legacy::PacketFlavor> From<np_adv::legacy::actions::ActionsDataElement<F>>
+    for V0Actions
+{
+    fn from(value: ActionsDataElement<F>) -> Self {
+        match F::ENUM_VARIANT {
+            PacketFlavorEnum::Plaintext => {
+                Self::Plaintext(V0ActionBits { bitfield: value.as_u32() })
+            }
+            PacketFlavorEnum::Ciphertext => {
+                Self::Encrypted(V0ActionBits { bitfield: value.as_u32() })
+            }
+        }
+    }
+}
+
+#[repr(C)]
+#[derive(Clone)]
+/// The bitfield data of a VOActions data element
+pub struct V0ActionBits {
+    bitfield: u32,
+}
+
+#[allow(missing_docs)]
+#[repr(u8)]
+/// The possible boolean action types which can be present in an Actions data element
+pub enum BooleanActionType {
+    ActiveUnlock = 8,
+    NearbyShare = 9,
+    InstantTethering = 10,
+    PhoneHub = 11,
+    PresenceManager = 12,
+    Finder = 13,
+    FastPairSass = 14,
+}
+
+impl From<&BooleanActionType> for np_adv::legacy::actions::ActionType {
+    fn from(value: &BooleanActionType) -> Self {
+        match value {
+            BooleanActionType::ActiveUnlock => np_adv::legacy::actions::ActionType::ActiveUnlock,
+            BooleanActionType::NearbyShare => np_adv::legacy::actions::ActionType::NearbyShare,
+            BooleanActionType::InstantTethering => {
+                np_adv::legacy::actions::ActionType::InstantTethering
+            }
+            BooleanActionType::PhoneHub => np_adv::legacy::actions::ActionType::PhoneHub,
+            BooleanActionType::Finder => np_adv::legacy::actions::ActionType::Finder,
+            BooleanActionType::FastPairSass => np_adv::legacy::actions::ActionType::FastPairSass,
+            BooleanActionType::PresenceManager => {
+                np_adv::legacy::actions::ActionType::PresenceManager
+            }
+        }
+    }
+}
+
+/// Error returned if action bits inside of a V0Actions struct are invalid. If the struct was
+/// created by the np_adv deserializer, the bits will always be valid, they are only invalid if a
+/// user reaches in and changes them to something invalid.
+#[derive(Debug)]
+pub struct InvalidActionBits;
+
+impl V0Actions {
+    /// Gets the V0 Action bits as represented by a u32 where the last 8 bits are
+    /// always 0 since V0 actions can only hold up to 24 bits.
+    pub fn as_u32(&self) -> u32 {
+        match self {
+            V0Actions::Plaintext(bits) => bits.bitfield,
+            V0Actions::Encrypted(bits) => bits.bitfield,
+        }
+    }
+
+    /// Return whether a boolean action type is set in this data element
+    #[allow(clippy::expect_used)]
+    pub fn has_action(&self, action_type: &BooleanActionType) -> Result<bool, InvalidActionBits> {
+        match self {
+            V0Actions::Plaintext(action_bits) => {
+                let bits = np_adv::legacy::actions::ActionBits::<Plaintext>::try_from(
+                    action_bits.bitfield,
+                )
+                .map_err(|_| InvalidActionBits)?;
+
+                let actions_de = np_adv::legacy::actions::ActionsDataElement::from(bits);
+                Ok(actions_de
+                    .has_action(&action_type.into())
+                    .expect("BooleanActionType only has one bit"))
+            }
+            V0Actions::Encrypted(action_bits) => {
+                let bits = np_adv::legacy::actions::ActionBits::<Ciphertext>::try_from(
+                    action_bits.bitfield,
+                )
+                .map_err(|_| InvalidActionBits)?;
+
+                let actions_de = np_adv::legacy::actions::ActionsDataElement::from(bits);
+                Ok(actions_de
+                    .has_action(&action_type.into())
+                    .expect("BooleanActionType only has one bit"))
+            }
+        }
+    }
+
+    /// Return the context sequence number from this data element
+    #[allow(clippy::expect_used)]
+    pub fn get_context_sync_seq_num(&self) -> Result<u8, InvalidActionBits> {
+        match self {
+            V0Actions::Plaintext(action_bits) => {
+                let bits = np_adv::legacy::actions::ActionBits::<Plaintext>::try_from(
+                    action_bits.bitfield,
+                )
+                .map_err(|_| InvalidActionBits)?;
+
+                let actions_de = np_adv::legacy::actions::ActionsDataElement::from(bits);
+                Ok(actions_de.context_sync_seq_num().as_u8())
+            }
+            V0Actions::Encrypted(action_bits) => {
+                let bits = np_adv::legacy::actions::ActionBits::<Ciphertext>::try_from(
+                    action_bits.bitfield,
+                )
+                .map_err(|_| InvalidActionBits)?;
+                let actions_de = np_adv::legacy::actions::ActionsDataElement::from(bits);
+                Ok(actions_de.context_sync_seq_num().as_u8())
+            }
+        }
+    }
+}
diff --git a/nearby/presence/np_ffi_core/src/deserialize/v1.rs b/nearby/presence/np_ffi_core/src/deserialize/v1.rs
new file mode 100644
index 0000000..9b4a3f4
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/deserialize/v1.rs
@@ -0,0 +1,401 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Core NP Rust FFI structures and methods for v1 advertisement deserialization.
+
+use crate::common::*;
+use crate::credentials::credential_book::CredentialBook;
+use crate::utils::*;
+use alloc::vec::Vec;
+use array_view::ArrayView;
+use handle_map::{declare_handle_map, HandleLike, HandleMapDimensions, HandleMapFullError};
+
+/// Representation of a deserialized V1 advertisement
+#[repr(C)]
+pub struct DeserializedV1Advertisement {
+    num_legible_sections: u8,
+    num_undecryptable_sections: u8,
+    legible_sections: LegibleV1Sections,
+}
+
+impl DeserializedV1Advertisement {
+    /// Gets the number of legible sections in this deserialized V1 advertisement.
+    pub fn num_legible_sections(&self) -> u8 {
+        self.num_legible_sections
+    }
+
+    /// Gets the number of undecryptable sections in this deserialized V1 advertisement.
+    pub fn num_undecryptable_sections(&self) -> u8 {
+        self.num_undecryptable_sections
+    }
+
+    /// Gets the legible section with the given index
+    /// (which is bounded in `0..self.num_legible_sections()`)
+    pub fn get_section(&self, legible_section_index: u8) -> GetV1SectionResult {
+        match self.legible_sections.get() {
+            Ok(sections_read_guard) => {
+                sections_read_guard.get_section(self.legible_sections, legible_section_index)
+            }
+            Err(_) => GetV1SectionResult::Error,
+        }
+    }
+
+    /// Attempts to deallocate memory utilized internally by this V1 advertisement
+    /// (which contains a handle to actual advertisement contents behind-the-scenes).
+    pub fn deallocate(self) -> DeallocateResult {
+        self.legible_sections.deallocate().map(|_| ()).into()
+    }
+
+    pub(crate) fn allocate_with_contents<'m, M: np_adv::credential::MatchedCredential<'m>>(
+        contents: np_adv::V1AdvContents<'m, M>,
+    ) -> Result<Self, HandleMapFullError> {
+        // 16-section limit enforced by np_adv
+        let num_undecryptable_sections = contents.invalid_sections_count() as u8;
+        let legible_sections = contents.into_valid_sections();
+        let num_legible_sections = legible_sections.len() as u8;
+        let legible_sections = LegibleV1Sections::allocate_with_contents(legible_sections)?;
+        Ok(Self { num_undecryptable_sections, num_legible_sections, legible_sections })
+    }
+}
+
+/// Internal, Rust-side implementation of a listing of legible sections
+/// in a deserialized V1 advertisement
+pub struct LegibleV1SectionsInternals {
+    sections: Vec<DeserializedV1SectionInternals>,
+}
+
+impl LegibleV1SectionsInternals {
+    fn get_section_internals(
+        &self,
+        legible_section_index: u8,
+    ) -> Option<&DeserializedV1SectionInternals> {
+        self.sections.get(legible_section_index as usize)
+    }
+    fn get_section(
+        &self,
+        legible_sections_handle: LegibleV1Sections,
+        legible_section_index: u8,
+    ) -> GetV1SectionResult {
+        match self.get_section_internals(legible_section_index) {
+            Some(section_ref) => {
+                // Determine whether the section is plaintext
+                // or decrypted to report back to the caller,
+                // and also determine the number of contained DEs.
+                let num_des = section_ref.num_des();
+                let identity_tag = section_ref.identity_kind();
+                GetV1SectionResult::Success(DeserializedV1Section {
+                    legible_sections_handle,
+                    legible_section_index,
+                    num_des,
+                    identity_tag,
+                })
+            }
+            None => GetV1SectionResult::Error,
+        }
+    }
+}
+
+impl<'m, M: np_adv::credential::MatchedCredential<'m>>
+    From<Vec<np_adv::V1DeserializedSection<'m, M>>> for LegibleV1SectionsInternals
+{
+    fn from(contents: Vec<np_adv::V1DeserializedSection<'m, M>>) -> Self {
+        let sections = contents.into_iter().map(DeserializedV1SectionInternals::from).collect();
+        Self { sections }
+    }
+}
+
+fn get_legible_v1_sections_handle_map_dimensions() -> HandleMapDimensions {
+    HandleMapDimensions {
+        num_shards: global_num_shards(),
+        max_active_handles: global_max_num_deserialized_v1_advertisements(),
+    }
+}
+
+declare_handle_map! {legible_v1_sections, LegibleV1Sections, super::LegibleV1SectionsInternals, super::get_legible_v1_sections_handle_map_dimensions() }
+use legible_v1_sections::LegibleV1Sections;
+
+impl LocksLongerThan<LegibleV1Sections> for CredentialBook {}
+
+impl LegibleV1Sections {
+    pub(crate) fn allocate_with_contents<'m, M: np_adv::credential::MatchedCredential<'m>>(
+        contents: Vec<np_adv::V1DeserializedSection<'m, M>>,
+    ) -> Result<Self, HandleMapFullError> {
+        Self::allocate(move || LegibleV1SectionsInternals::from(contents))
+    }
+}
+
+/// Discriminant for `GetV1SectionResult`
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum GetV1SectionResultKind {
+    /// The attempt to get the section failed,
+    /// possibly due to the section index being
+    /// out-of-bounds or due to the underlying
+    /// advertisement having already been deallocated.
+    Error = 0,
+    /// The attempt to get the section succeeded.
+    /// The wrapped section may be obtained via
+    /// `GetV1SectionResult#into_success`.
+    Success = 1,
+}
+
+/// The result of attempting to get a particular V1 section
+/// from its' index within the list of legible sections
+/// via `DeserializedV1Advertisement::get_section`.
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum GetV1SectionResult {
+    Error,
+    Success(DeserializedV1Section),
+}
+
+impl FfiEnum for GetV1SectionResult {
+    type Kind = GetV1SectionResultKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            GetV1SectionResult::Error => GetV1SectionResultKind::Error,
+            GetV1SectionResult::Success(_) => GetV1SectionResultKind::Success,
+        }
+    }
+}
+
+impl GetV1SectionResult {
+    declare_enum_cast! {into_success, Success, DeserializedV1Section}
+}
+
+/// The internal FFI-friendly representation of a deserialized v1 section
+pub struct DeserializedV1SectionInternals {
+    des: Vec<V1DataElement>,
+    identity: DeserializedV1Identity,
+}
+
+impl DeserializedV1SectionInternals {
+    /// Gets the number of data-elements in this section.
+    fn num_des(&self) -> u8 {
+        self.des.len() as u8
+    }
+    /// Gets the enum tag of the identity used for this section.
+    fn identity_kind(&self) -> DeserializedV1IdentityKind {
+        self.identity.kind()
+    }
+    /// Attempts to get the DE with the given index in this section.
+    fn get_de(&self, index: u8) -> GetV1DEResult {
+        match self.des.get(index as usize) {
+            Some(de) => GetV1DEResult::Success(de.clone()),
+            None => GetV1DEResult::Error,
+        }
+    }
+}
+
+impl<'m, M: np_adv::credential::MatchedCredential<'m>> From<np_adv::V1DeserializedSection<'m, M>>
+    for DeserializedV1SectionInternals
+{
+    fn from(section: np_adv::V1DeserializedSection<'m, M>) -> Self {
+        use np_adv::extended::deserialize::Section;
+        use np_adv::V1DeserializedSection;
+        match section {
+            V1DeserializedSection::Plaintext(section) => {
+                let des = section.data_elements().map(V1DataElement::from).collect();
+                let identity = DeserializedV1Identity::Plaintext;
+                Self { des, identity }
+            }
+            V1DeserializedSection::Decrypted(_) => {
+                unimplemented!();
+            }
+        }
+    }
+}
+/// Discriminant for `DeserializedV1Identity`.
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum DeserializedV1IdentityKind {
+    /// The deserialized v1 identity was plaintext
+    Plaintext = 0,
+    /// The deserialized v1 identity corresponded
+    /// to some kind of decrypted identity.
+    Decrypted = 1,
+}
+
+/// Deserialized information about the identity
+/// employed in a V1 adveritsement section.
+#[derive(Clone, Copy)]
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum DeserializedV1Identity {
+    Plaintext,
+    // TODO: This gets a payload once we support creds
+    Decrypted,
+}
+
+impl FfiEnum for DeserializedV1Identity {
+    type Kind = DeserializedV1IdentityKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            DeserializedV1Identity::Plaintext => DeserializedV1IdentityKind::Plaintext,
+            DeserializedV1Identity::Decrypted => DeserializedV1IdentityKind::Decrypted,
+        }
+    }
+}
+
+/// Handle to a deserialized V1 section
+#[repr(C)]
+pub struct DeserializedV1Section {
+    legible_sections_handle: LegibleV1Sections,
+    legible_section_index: u8,
+    num_des: u8,
+    identity_tag: DeserializedV1IdentityKind,
+}
+
+impl DeserializedV1Section {
+    /// Gets the number of data elements contained in this section.
+    /// Suitable as an iteration bound on `Self::get_de`.
+    pub fn num_des(&self) -> u8 {
+        self.num_des
+    }
+
+    /// Gets the enum tag of the identity employed by this deserialized section.
+    pub fn identity_kind(&self) -> DeserializedV1IdentityKind {
+        self.identity_tag
+    }
+
+    /// Gets the DE with the given index in this section.
+    pub fn get_de(&self, de_index: u8) -> GetV1DEResult {
+        // TODO: Once the `FromResidual` trait is stabilized, this can be simplified.
+        match self.legible_sections_handle.get() {
+            Ok(legible_sections_read_guard) => {
+                match legible_sections_read_guard.get_section_internals(self.legible_section_index)
+                {
+                    Some(section_ref) => section_ref.get_de(de_index),
+                    None => GetV1DEResult::Error,
+                }
+            }
+            Err(_) => GetV1DEResult::Error,
+        }
+    }
+}
+
+/// Discriminant for the `GetV1DEResult` enum.
+#[derive(Clone, Copy)]
+#[repr(u8)]
+pub enum GetV1DEResultKind {
+    /// Attempting to get the DE at the given position failed,
+    /// possibly due to the index being out-of-bounds or due
+    /// to the whole advertisement having been previously deallocated.
+    Error = 0,
+    /// Attempting to get the DE at the given position succeeded.
+    /// The underlying DE may be extracted with `GetV1DEResult#into_success`.
+    Success = 1,
+}
+
+/// Represents the result of the `DeserializedV1Section#get_de` operation.
+#[repr(C)]
+#[allow(missing_docs)]
+pub enum GetV1DEResult {
+    Error,
+    Success(V1DataElement),
+}
+
+impl FfiEnum for GetV1DEResult {
+    type Kind = GetV1DEResultKind;
+    fn kind(&self) -> Self::Kind {
+        match self {
+            GetV1DEResult::Error => GetV1DEResultKind::Error,
+            GetV1DEResult::Success(_) => GetV1DEResultKind::Success,
+        }
+    }
+}
+
+impl GetV1DEResult {
+    declare_enum_cast! {into_success, Success, V1DataElement}
+}
+
+/// FFI-transmissible representation of a V1 data-element
+#[derive(Clone)]
+#[repr(C)]
+pub enum V1DataElement {
+    /// A "generic" V1 data-element, for which we have no
+    /// particular information about its schema (just
+    /// a DE type code and a byte payload.)
+    Generic(GenericV1DataElement),
+}
+
+impl V1DataElement {
+    // Note: not using declare_enum_cast! for this one, because if V1DataElement
+    // gets more variants, this will have a different internal implementation
+    /// Converts a `V1DataElement` to a `GenericV1DataElement` which
+    /// only maintains information about the DE's type-code and payload.
+    pub fn to_generic(self) -> GenericV1DataElement {
+        match self {
+            V1DataElement::Generic(x) => x,
+        }
+    }
+}
+
+impl<'a> From<np_adv::extended::deserialize::DataElement<'a>> for V1DataElement {
+    fn from(de: np_adv::extended::deserialize::DataElement<'a>) -> Self {
+        let de_type = V1DEType::from(de.de_type());
+        let contents_as_slice = de.contents();
+        //Guaranteed not to panic due DE size limit.
+        #[allow(clippy::unwrap_used)]
+        let array_view: ArrayView<u8, 127> = ArrayView::try_from_slice(contents_as_slice).unwrap();
+        let payload = ByteBuffer::from_array_view(array_view);
+        Self::Generic(GenericV1DataElement { de_type, payload })
+    }
+}
+
+/// FFI-transmissible representation of a generic V1 data-element.
+/// This representation is stable, and so you may directly
+/// reference this struct's fields if you wish.
+#[derive(Clone)]
+#[repr(C)]
+pub struct GenericV1DataElement {
+    /// The DE type code of this generic data-element.
+    pub de_type: V1DEType,
+    /// The raw data-element byte payload, up to
+    /// 127 bytes in length.
+    pub payload: ByteBuffer<127>,
+}
+
+impl GenericV1DataElement {
+    /// Gets the DE-type of this generic V1 data element.
+    pub fn de_type(&self) -> V1DEType {
+        self.de_type
+    }
+    /// Destructures this `GenericV1DataElement` into just the
+    /// DE payload byte-buffer.
+    pub fn into_payload(self) -> ByteBuffer<127> {
+        self.payload
+    }
+}
+
+/// Representation of the data-element type tag
+/// of a V1 data element.
+#[derive(Clone, Copy)]
+#[repr(C)]
+pub struct V1DEType {
+    code: u32,
+}
+
+impl From<np_adv::extended::de_type::DeType> for V1DEType {
+    fn from(de_type: np_adv::extended::de_type::DeType) -> Self {
+        let code = de_type.as_u32();
+        Self { code }
+    }
+}
+
+impl V1DEType {
+    /// Yields this V1 DE type code as a u32.
+    pub fn to_u32(&self) -> u32 {
+        self.code
+    }
+}
diff --git a/nearby/presence/np_ffi_core/src/lib.rs b/nearby/presence/np_ffi_core/src/lib.rs
new file mode 100644
index 0000000..dd9e49e
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/lib.rs
@@ -0,0 +1,32 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Core functionality common to all NP Rust FFI layers
+#![cfg_attr(not(feature = "std"), no_std)]
+#![forbid(unsafe_code)]
+#![deny(
+    missing_docs,
+    clippy::indexing_slicing,
+    clippy::unwrap_used,
+    clippy::panic,
+    clippy::expect_used
+)]
+
+extern crate alloc;
+extern crate core;
+
+#[macro_use]
+pub mod utils;
+pub mod common;
+pub mod credentials;
+pub mod deserialize;
diff --git a/nearby/presence/np_ffi_core/src/utils.rs b/nearby/presence/np_ffi_core/src/utils.rs
new file mode 100644
index 0000000..e547a89
--- /dev/null
+++ b/nearby/presence/np_ffi_core/src/utils.rs
@@ -0,0 +1,51 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//! Common utilities used by other modules within this crate.
+
+use handle_map::HandleLike;
+
+/// Type-level predicate for handle types which uniformly hold a lock
+/// for longer than some other handle type in API calls.
+pub(crate) trait LocksLongerThan<H: HandleLike>: HandleLike {}
+
+/// Trait which canonicalizes the relationship between FFI
+/// tagged-unions and their tags
+pub trait FfiEnum {
+    /// The [FFI-safe] type of tags used to identify
+    /// variants of this tagged union.
+    type Kind;
+
+    /// Returns the tag for this FFI-safe tagged union.
+    fn kind(&self) -> Self::Kind;
+}
+
+/// Declares a method of the given name which attempts to cast
+/// the enclosing enum to the payload held under the given
+/// variant name, yielding a result of the given type wrapped
+/// in an `Option::Some`.
+///
+/// If the enclosing enum turns out to not be the requested
+/// variant, the generated method will return `None`.
+macro_rules! declare_enum_cast {
+    ($projection_method_name:ident, $variant_enum_name:ident, $variant_type_name:ty) => {
+        #[doc = concat!("Attempts to cast `self` to the `", stringify!($variant_enum_name),
+          "` variant, returning `None` in the \ncase where the passed value is of a different enum variant.")]
+        pub fn $projection_method_name(self) -> Option<$variant_type_name> {
+            match self {
+                Self::$variant_enum_name(x) => Some(x),
+                _ => None,
+            }
+        }
+    }
+}
diff --git a/nearby/presence/sink/Cargo.toml b/nearby/presence/sink/Cargo.toml
new file mode 100644
index 0000000..a0322b6
--- /dev/null
+++ b/nearby/presence/sink/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "sink"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+tinyvec.workspace = true
+
+[features]
+std = []
+
diff --git a/nearby/presence/sink/src/lib.rs b/nearby/presence/sink/src/lib.rs
new file mode 100644
index 0000000..75c7c1d
--- /dev/null
+++ b/nearby/presence/sink/src/lib.rs
@@ -0,0 +1,91 @@
+// Copyright 2023 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//! A no_std-friendly data-writing "sink" trait which allows for convenient expression
+//! of "write me into a limited-size buffer"-type methods on traits.
+#![cfg_attr(not(feature = "std"), no_std)]
+#![forbid(unsafe_code)]
+#![deny(
+    missing_docs,
+    clippy::indexing_slicing,
+    clippy::unwrap_used,
+    clippy::panic,
+    clippy::expect_used
+)]
+
+/// An append-only, limited-size collection.
+pub trait Sink<T> {
+    /// Returns `Some` if the slice was appended, `None` otherwise, in which case nothing was written
+    fn try_extend_from_slice(&mut self, items: &[T]) -> Option<()>;
+
+    /// Returns `Some` if the item could be pushed, `None` otherwise
+    fn try_push(&mut self, item: T) -> Option<()>;
+
+    /// Uses the given [`SinkWriter`] to write to this sink.
+    fn try_extend_from_writer<W: SinkWriter<DataType = T>>(&mut self, writer: W) -> Option<()>
+    where
+        Self: Sized,
+    {
+        writer.write_payload(self)
+    }
+}
+
+/// A use-once trait (like `FnOnce`) which represents some
+/// code which writes data to a [`Sink`].
+pub trait SinkWriter {
+    /// The type of data being written to the [`Sink`].
+    type DataType;
+
+    /// Returns `Some` if all data was successfully written to the [`Sink`],
+    /// but if doing so failed at any point, returns `None`. If this method
+    /// fails, the contents of the [`Sink`] should be considered to be invalid.
+    fn write_payload<S: Sink<Self::DataType> + ?Sized>(self, sink: &mut S) -> Option<()>;
+}
+
+impl<T, A> Sink<T> for tinyvec::ArrayVec<A>
+where
+    A: tinyvec::Array<Item = T>,
+    T: Clone,
+{
+    fn try_extend_from_slice(&mut self, items: &[T]) -> Option<()> {
+        if items.len() > (self.capacity() - self.len()) {
+            return None;
+        }
+        // won't panic: just checked the length
+        self.extend_from_slice(items);
+        Some(())
+    }
+
+    fn try_push(&mut self, item: T) -> Option<()> {
+        // tinyvec uses None to indicate success, whereas for our limited purposes we want the
+        // opposite
+        match tinyvec::ArrayVec::try_push(self, item) {
+            None => Some(()),
+            Some(_) => None,
+        }
+    }
+}
+
+#[cfg(feature = "std")]
+impl<T: Clone> Sink<T> for std::vec::Vec<T> {
+    fn try_extend_from_slice(&mut self, items: &[T]) -> Option<()> {
+        self.extend_from_slice(items);
+        Some(())
+    }
+
+    fn try_push(&mut self, item: T) -> Option<()> {
+        self.push(item);
+        Some(())
+    }
+}
diff --git a/nearby/presence/xts_aes/fuzz/Cargo.lock b/nearby/presence/xts_aes/fuzz/Cargo.lock
index 2bdaef3..f0b7f56 100644
--- a/nearby/presence/xts_aes/fuzz/Cargo.lock
+++ b/nearby/presence/xts_aes/fuzz/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "aead"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
 dependencies = [
  "bytes",
  "crypto-common",
@@ -15,9 +15,9 @@
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -69,9 +69,9 @@
 
 [[package]]
 name = "block-padding"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
 dependencies = [
  "generic-array",
 ]
@@ -118,24 +118,24 @@
 
 [[package]]
 name = "const-oid"
-version = "0.9.2"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913"
+checksum = "795bc6e66a8e340f075fcf6227e417a2dc976b92b91f3cdc778bb858778b6747"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -193,23 +193,36 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.0.0-rc.2"
+version = "4.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
+checksum = "436ace70fc06e06f7f689d2624dc4e2f0ea666efb5aa704215f7249ae6e047a7"
 dependencies = [
  "cfg-if",
+ "cpufeatures",
+ "curve25519-dalek-derive",
  "digest",
  "fiat-crypto",
- "packed_simd_2",
  "platforms",
+ "rustc_version",
  "subtle",
 ]
 
 [[package]]
-name = "der"
-version = "0.7.1"
+name = "curve25519-dalek-derive"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "der"
+version = "0.7.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
 dependencies = [
  "const-oid",
  "zeroize",
@@ -217,9 +230,9 @@
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7"
+checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -228,9 +241,9 @@
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -248,9 +261,9 @@
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
+checksum = "faa8e9049d5d72bfc12acbc05914731b5322f79b5e2f195e9f2d705fca22ab4c"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
@@ -260,9 +273,9 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.13.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -295,9 +308,9 @@
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -306,9 +319,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
 dependencies = [
  "cfg-if",
  "libc",
@@ -372,9 +385,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.147"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 
 [[package]]
 name = "libfuzzer-sys"
@@ -388,16 +401,10 @@
 ]
 
 [[package]]
-name = "libm"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
-
-[[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "opaque-debug"
@@ -407,25 +414,15 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
  "elliptic-curve",
  "primeorder",
 ]
 
 [[package]]
-name = "packed_simd_2"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
-
-[[package]]
 name = "platforms"
 version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -433,9 +430,9 @@
 
 [[package]]
 name = "polyval"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -451,27 +448,27 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
 dependencies = [
  "elliptic-curve",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.53"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 dependencies = [
  "proc-macro2",
 ]
@@ -505,10 +502,19 @@
 ]
 
 [[package]]
-name = "sec1"
-version = "0.7.1"
+name = "rustc_version"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
 dependencies = [
  "base16ct",
  "der",
@@ -518,10 +524,16 @@
 ]
 
 [[package]]
-name = "sha2"
-version = "0.10.6"
+name = "semver"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
+name = "sha2"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -536,15 +548,15 @@
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -559,15 +571,15 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "universal-hash"
-version = "0.5.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
  "subtle",
@@ -587,9 +599,9 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-rc.2"
+version = "2.0.0-rc.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
+checksum = "ec7fae07da688e17059d5886712c933bb0520f15eff2e09cfa18e30968f4e63a"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
@@ -618,6 +630,6 @@
 
 [[package]]
 name = "zeroize"
-version = "1.5.7"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
+checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
diff --git a/nearby/src/ffi.rs b/nearby/src/ffi.rs
index e0efce5..44479be 100644
--- a/nearby/src/ffi.rs
+++ b/nearby/src/ffi.rs
@@ -15,8 +15,32 @@
 use crate::{run_cmd_shell, run_cmd_shell_with_color, YellowStderr};
 use std::{fs, path};
 
+// wrapper for checking all ffi related things
+pub fn check_everything(root: &path::Path) -> anyhow::Result<()> {
+    check_np_ffi(root)?;
+    check_ldt_ffi(root)?;
+    check_cmake_projects(root)?;
+
+    Ok(())
+}
+
+pub fn check_np_ffi(root: &path::Path) -> anyhow::Result<()> {
+    log::info!("Checking np_c_ffi cargo build");
+    let mut ffi_dir = root.to_path_buf();
+    ffi_dir.push("presence/np_c_ffi");
+    for cargo_cmd in [
+        "fmt --check",
+        // Default build, RustCrypto + no_std
+        "build --release",
+        "clippy --release",
+    ] {
+        run_cmd_shell(&ffi_dir, format!("cargo {}", cargo_cmd))?;
+    }
+    Ok(())
+}
+
 pub fn check_ldt_ffi(root: &path::Path) -> anyhow::Result<()> {
-    log::info!("Checking LDT ffi");
+    log::info!("Checking LFT ffi cargo build");
     let mut ffi_dir = root.to_path_buf();
     ffi_dir.push("presence/ldt_np_adv_ffi");
 
@@ -43,6 +67,11 @@
         run_cmd_shell(&ffi_dir, format!("cargo {}", cargo_cmd))?;
     }
 
+    Ok(())
+}
+
+pub fn check_cmake_projects(root: &path::Path) -> anyhow::Result<()> {
+    log::info!("Checking CMake build and tests (for ffi c/c++ code)");
     let mut build_dir = root.to_path_buf();
     build_dir.push("presence/cmake-build");
     fs::create_dir_all(&build_dir)?;
@@ -50,8 +79,18 @@
     run_cmd_shell_with_color::<YellowStderr>(&build_dir, "cmake .. -DENABLE_TESTS=true")?;
     run_cmd_shell_with_color::<YellowStderr>(&build_dir, "cmake --build .")?;
 
-    let mut tests_dir = build_dir;
-    tests_dir.push("ldt_np_c_sample/tests");
+    // run the np_cpp_ffi unit tests
+    let mut np_cpp_tests_dir = build_dir.clone();
+    np_cpp_tests_dir.push("np_cpp_ffi/tests");
+    run_cmd_shell_with_color::<YellowStderr>(&np_cpp_tests_dir, "ctest")?;
+
+    // Run the LDT ffi unit tests. These are rebuilt and tested against all of the different
+    // Cargo build configurations based on the feature flags.
+    let mut ldt_tests_dir = build_dir.clone();
+    ldt_tests_dir.push("ldt_np_c_sample/tests");
+
+    let mut ldt_ffi_crate_dir = root.to_path_buf();
+    ldt_ffi_crate_dir.push("presence/ldt_np_adv_ffi");
 
     for build_config in [
         // test with default build settings (rustcrypto, no_std)
@@ -65,9 +104,11 @@
         // test without defaults and std feature flag
         "build --no-default-features --features std --release",
     ] {
-        run_cmd_shell(&ffi_dir, format!("cargo {}", build_config))?;
-        run_cmd_shell_with_color::<YellowStderr>(&tests_dir, "cmake --build .")?;
-        run_cmd_shell_with_color::<YellowStderr>(&tests_dir, "ctest")?;
+        run_cmd_shell(&ldt_ffi_crate_dir, format!("cargo {}", build_config))?;
+        // Force detection of updated `ldt_np_adv_ffi` static lib
+        run_cmd_shell_with_color::<YellowStderr>(&build_dir, "rm -rf ldt_np_c_sample/tests/*")?;
+        run_cmd_shell_with_color::<YellowStderr>(&build_dir, "cmake --build .")?;
+        run_cmd_shell_with_color::<YellowStderr>(&ldt_tests_dir, "ctest")?;
     }
 
     Ok(())
diff --git a/nearby/src/license.rs b/nearby/src/license.rs
index fd9af83..657a62e 100644
--- a/nearby/src/license.rs
+++ b/nearby/src/license.rs
@@ -94,5 +94,10 @@
         "**/Session.vim",
         "**/*.properties",
         "**/third_party/**",
+        "**/*.png",
+        "**/*.ico",
+        "**/node_modules/**",
+        "**/.angular/**",
+        "**/.editorconfig",
     ]
 }
diff --git a/nearby/src/main.rs b/nearby/src/main.rs
index b7d002b..4c1104f 100644
--- a/nearby/src/main.rs
+++ b/nearby/src/main.rs
@@ -37,6 +37,11 @@
     );
 
     match cli.subcommand {
+        Subcommand::CheckEverything { ref check_options, ref bssl_options } => {
+            check_everything(&root_dir, check_options, bssl_options)?
+        }
+        Subcommand::CheckWorkspace(ref options) => check_workspace(&root_dir, options)?,
+        Subcommand::FfiCheckEverything => ffi::check_everything(&root_dir)?,
         Subcommand::BuildBoringssl(ref bssl_options) => {
             crypto_ffi::build_boringssl(&root_dir, bssl_options)?
         }
@@ -49,13 +54,11 @@
         Subcommand::BuildFfiFuzzers => fuzzers::build_ffi_fuzzers(&root_dir)?,
         Subcommand::CheckLicenseHeaders => license::check_license_headers(&root_dir)?,
         Subcommand::AddLicenseHeaders => license::add_license_headers(&root_dir)?,
-        Subcommand::CheckWorkspace(ref options) => check_workspace(&root_dir, options)?,
         Subcommand::CheckLdtFfi => ffi::check_ldt_ffi(&root_dir)?,
-        Subcommand::CheckEverything { ref check_options, ref bssl_options } => {
-            check_everything(&root_dir, check_options, bssl_options)?
-        }
         Subcommand::CheckUkey2Ffi => ukey2::check_ukey2_ffi(&root_dir)?,
         Subcommand::CheckLdtJni => jni::check_ldt_jni(&root_dir)?,
+        Subcommand::CheckNpFfi => ffi::check_np_ffi(&root_dir)?,
+        Subcommand::CheckCmakeProjects => ffi::check_cmake_projects(&root_dir)?,
     }
 
     Ok(())
@@ -95,7 +98,7 @@
     check_workspace(root, check_options)?;
     crypto_ffi::check_boringssl(root, bssl_options)?;
     crypto_ffi::check_openssl(root)?;
-    ffi::check_ldt_ffi(root)?;
+    ffi::check_everything(root)?;
     jni::check_ldt_jni(root)?;
     ukey2::check_ukey2_ffi(root)?;
     fuzzers::run_rust_fuzzers(root)?;
@@ -112,6 +115,15 @@
 
 #[derive(clap::Subcommand, Debug, Clone)]
 enum Subcommand {
+    /// Checks everything in beto-rust
+    CheckEverything {
+        #[command(flatten)]
+        check_options: CheckOptions,
+        #[command(flatten)]
+        bssl_options: BuildBoringSslOptions,
+    },
+    /// Checks everything included in the top level workspace
+    CheckWorkspace(CheckOptions),
     /// Clones boringssl and uses bindgen to generate the rust crate
     BuildBoringssl(BuildBoringSslOptions),
     /// Run crypto provider tests using boringssl backend
@@ -125,21 +137,19 @@
     RunRustFuzzers,
     /// Build FFI fuzzers
     BuildFfiFuzzers,
-    /// Builds and runs all tests for all combinations of features for the LDT FFI
+    /// Builds and runs tests for all C/C++ projects. This is a combination of CheckNpFfi,
+    /// CheckLdtFfi, and CheckCmakeBuildAndTests
+    FfiCheckEverything,
+    /// Builds the crate checks the cbindgen generation of C/C++ bindings
+    CheckNpFfi,
+    /// Builds ldt_np_adv_ffi crate with all possible different sets of feature flags
     CheckLdtFfi,
+    /// Checks the CMake build and runs all of the C/C++ tests
+    CheckCmakeProjects,
     /// Checks the workspace 3rd party crates and makes sure they have a valid license
     CheckLicenseHeaders,
     /// Generate new headers for any files that are missing them
     AddLicenseHeaders,
-    /// Checks everything included in the top level workspace
-    CheckWorkspace(CheckOptions),
-    /// Checks everything in beto-rust
-    CheckEverything {
-        #[command(flatten)]
-        check_options: CheckOptions,
-        #[command(flatten)]
-        bssl_options: BuildBoringSslOptions,
-    },
     /// Builds and runs tests for the UKEY2 FFI
     CheckUkey2Ffi,
     /// Checks the build of ldt_jni wrapper with non default features, ie rust-openssl, and boringssl
diff --git a/nearby/src/ukey2.rs b/nearby/src/ukey2.rs
index c54fbb3..f0e1081 100644
--- a/nearby/src/ukey2.rs
+++ b/nearby/src/ukey2.rs
@@ -34,7 +34,7 @@
     ffi_build_dir.push("cpp/build");
     fs::create_dir_all(&ffi_build_dir)?;
     run_cmd_shell_with_color::<YellowStderr>(&ffi_build_dir, "cmake ..")?;
-    run_cmd_shell_with_color::<YellowStderr>(&ffi_build_dir, "make all")?;
+    run_cmd_shell_with_color::<YellowStderr>(&ffi_build_dir, "cmake --build .")?;
     run_cmd_shell_with_color::<YellowStderr>(&ffi_build_dir, "ctest")?;
 
     Ok(())
