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/Dockerfile b/nearby/Dockerfile
deleted file mode 100644
index cd60ac8..0000000
--- a/nearby/Dockerfile
+++ /dev/null
@@ -1,58 +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.
-
-FROM ubuntu:22.10
-
-# install system deps
-RUN apt-get update && apt-get install -y build-essential cmake gcc wget vim \
-clang git checkinstall zlib1g-dev libjsoncpp-dev libbenchmark-dev curl \
-protobuf-compiler pkg-config libdbus-1-dev libssl-dev ninja-build
-RUN apt upgrade -y
-
-# install cargo with default settings
-RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.68.1
-ENV PATH="/root/.cargo/bin:${PATH}"
-RUN cargo install --locked cargo-deny --color never 2>&1
-RUN cargo install cargo-fuzz --color never 2>&1
-# unreleased PR https://github.com/ehuss/cargo-prefetch/pull/6
-RUN cargo install cargo-prefetch \
-    --git https://github.com/marshallpierce/cargo-prefetch.git \
-    --rev f6affa68e950275f9fd773f2646ab7ee4db82897 \
-    --color never 2>&1
-# needed for generating boringssl bindings
-# 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 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
-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 . .
-
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(())
